> @@ -322,9 +398,21 @@ static int tb_switch_nvm_add(struct tb_switch *sw)
>       u32 val;
>       int ret;
> 
> -     if (!sw->dma_port)
> +     if (!nvm_readable(sw))
>               return 0;
> 
> +     /*
> +      * The NVM format of non-Intel hardware is not known so
> +      * currently restrict NVM upgrade for Intel hardware. We may
> +      * relax this in the future when we learn other NVM formats.
> +      */
> +     if (sw->config.vendor_id != PCI_VENDOR_ID_INTEL) {
> +             dev_info(&sw->dev,
> +                      "NVM format of vendor %#x is not known, disabling NVM
> upgrade\n",
> +                      sw->config.vendor_id);
> +             return 0;
> +     }
> +

Don't you actually have an attribute you can use here for this exact purpose 
that you
could  be setting rather than returning immediately?
sw->no_nvm_upgrade

Then potentially you can at least let users "dump out" the nvm on !Intel but 
don't let
it be written until ready to relax further.

>       nvm = kzalloc(sizeof(*nvm), GFP_KERNEL);
>       if (!nvm)
>               return -ENOMEM;

Reply via email to