[Xenial][Patch] UBUNTU: SAUCE: mwifiex: Use PCI ID instead of DMI ID to identify Edge Gateways

Seth Forshee seth.forshee at canonical.com
Wed Nov 9 13:45:39 UTC 2016


On Wed, Nov 09, 2016 at 07:34:04AM -0600, Seth Forshee wrote:
> On Wed, Nov 09, 2016 at 07:03:55PM +0800, jesse.sung at canonical.com wrote:
> > From: Wen-chien Jesse Sung <jesse.sung at canonical.com>
> > 
> > BugLink: https://launchpad.net/bugs/1640418
> > 
> > The DMI ID string may be changed in some models. Use PCI ID as an
> > indentification instead.
> > 
> > Signed-off-by: Wen-chien Jesse Sung <jesse.sung at canonical.com>
> > ---
> >  drivers/net/wireless/mwifiex/pcie.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/net/wireless/mwifiex/pcie.c b/drivers/net/wireless/mwifiex/pcie.c
> > index 0dbb528..644e28f7 100644
> > --- a/drivers/net/wireless/mwifiex/pcie.c
> > +++ b/drivers/net/wireless/mwifiex/pcie.c
> > @@ -219,8 +219,8 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev,
> >  	}
> >  
> >  	priv = mwifiex_get_priv(card->adapter, MWIFIEX_BSS_ROLE_STA);
> > -	if (dmi_match(DMI_PRODUCT_NAME, "Edge Gateway 5000") ||
> > -		dmi_match(DMI_PRODUCT_NAME, "Edge Gateway 5100"))
> > +	if (pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID, 0x1028, 0x0720, NULL) ||
> > +		pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID, 0x1028, 0x0733, NULL))
> >  		priv->is_edge_gateway = true;
> >  	return 0;
> >  }
> 
> pci_get_subsys() increments the device refcount, so don't you have a
> resource leak here?

You have a pointer to the pci_dev, can't you just check the ids there?
I.e.:

  if (pdev->subsystem_vendor == 0x1028 &&
      (pdev->subsystem_device == 0x0720 || pdev->subsystem_device == 0x0733))

Would that work?




More information about the kernel-team mailing list