Re: [RFC][PATCH 1/4 v3] usb: host: ehci-platform: BUG_ON() to WARN_ON() on probe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 6 Aug 2012, Simon Horman wrote:

> On Sun, Aug 05, 2012 at 06:51:34PM -0700, kuninori.morimoto.gx@xxxxxxxxxxx wrote:
> > We should avoid using BUG_ON() in drivers.
> > This patch switch to use WARN_ON() from BUG_ON(),
> > and avoid NULL pointer access by new macro.
> > 
> > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>
> > ---
> > v2 -> v3
> > 
> >  - BUG_ON -> WARN_ON
> > 
> >  drivers/usb/host/ehci-platform.c |   18 ++++++++++--------
> >  1 files changed, 10 insertions(+), 8 deletions(-)
> > 
> > diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c
> > index 4b1d896..db27dfe 100644
> > --- a/drivers/usb/host/ehci-platform.c
> > +++ b/drivers/usb/host/ehci-platform.c
> > @@ -21,6 +21,8 @@
> >  #include <linux/platform_device.h>
> >  #include <linux/usb/ehci_pdriver.h>
> >  
> > +#define ehci_pdata_get(pdata, x) ((pdata) ? (pdata)->x : 0)
> > +
> 
> FWIW, I think that an inline function would be a slight improvement over
> a macro here.  Likewise for the 2nd patch of this series.

No; we should not have either an inline function or a macro.  This 
computation isn't necessary at all.

If you're worried about the possibility that pdata might be NULL, 
just return -ENODEV from ehci_platform_probe() if it is:

	int irq;
	int err = -ENOMEM;

-	BUG_ON(!dev->dev.platform_data);
+	if (!dev->dev.platform_data) {
+		WARN_ON(1);
+		return -ENODEV;
+	}

	if (usb_disabled())
		return -ENODEV;

But even that may be unnecessary.  Simply removing the BUG_ON will
accomplish pretty much the same thing; people will realize something is
wrong pretty quickly when the computer gets an access violation from
trying to dereference a null pointer.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux