On Fri, Sep 06, 2019 at 05:25:14PM +0200, Pascal van Leeuwen wrote: > This patch fixes an unused variable warning from the compiler when the > driver is being compiled without PCI support in the kernel. > > changes since v1: > - capture the platform_register_driver error code as well > - actually return the (last) error code > - swapped registration to do PCI first as that's just for development > boards anyway, so in case both are done we want the platform error > or no error at all if that passes > - also fixes some indentation issue in the affected code > > changes since v2: > - handle the situation where both CONFIG_PCI and CONFIG_OF are undefined > by always returning a -EINVAL error > - only unregister PCI or OF if it was previously successfully registered > > Signed-off-by: Pascal van Leeuwen <pvanleeuwen@xxxxxxxxxxxxxx> > --- > drivers/crypto/inside-secure/safexcel.c | 35 ++++++++++++++++++++++----------- > 1 file changed, 24 insertions(+), 11 deletions(-) > > diff --git a/drivers/crypto/inside-secure/safexcel.c b/drivers/crypto/inside-secure/safexcel.c > index e12a2a3..925c90f 100644 > --- a/drivers/crypto/inside-secure/safexcel.c > +++ b/drivers/crypto/inside-secure/safexcel.c > @@ -1501,32 +1501,45 @@ void safexcel_pci_remove(struct pci_dev *pdev) > }; > #endif > > -static int __init safexcel_init(void) > -{ > - int rc; > - > +/* Unfortunately, we have to resort to global variables here */ > +#if IS_ENABLED(CONFIG_PCI) > +int pcireg_rc = -EINVAL; /* Default safe value */ > +#endif > #if IS_ENABLED(CONFIG_OF) > - /* Register platform driver */ > - platform_driver_register(&crypto_safexcel); > +int ofreg_rc = -EINVAL; /* Default safe value */ > #endif > > +static int __init safexcel_init(void) > +{ > #if IS_ENABLED(CONFIG_PCI) > - /* Register PCI driver */ > - rc = pci_register_driver(&safexcel_pci_driver); > + /* Register PCI driver */ > + pcireg_rc = pci_register_driver(&safexcel_pci_driver); > #endif > > - return 0; > +#if IS_ENABLED(CONFIG_OF) > + /* Register platform driver */ > + ofreg_rc = platform_driver_register(&crypto_safexcel); > + return ofreg_rc; If OF registration fails then you will return an error even if PCI registration succeeded without undoing the PCI registration. Cheers, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt