Re: [PATCH] usb: musb: Fix glue_to_musb macro

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

 



On Wed, Feb 09, 2011 at 10:33:48AM +0530, Hema HK wrote:
> Fix the glue_to_musb macro when CONFIG_USB_MUSB_HDRC_HCD is defined.
> 
> Signed-off-by: Hema HK <hemahk@xxxxxx>

this isn't needed. platform_get_drvdata() should always return the
correct pointer. I sent a patch to Greg fixing this:

commit 456bb1697ec08c034449c81e03094fe26bedb9e9
Author: Ming Lei <tom.leiming@xxxxxxxxx>
Date:   Tue Dec 21 21:16:11 2010 +0800

    usb: musb: fix kernel panic during s2ram(v2)
    
    This patch fixes kernel panic during s2ram, which is caused
    by the below:
    
        - musb is not put into drv data of musb platform device if
        CONFIG_USB_MUSB_HDRC_HCD is defined
    
        - glue layer driver always get musb instance via platform_get_drvdata.
    
    The patch fixes the issue by always puting musb into drv data
    of musb platform device, which is doable even the platform device
    is a host controller device.
    
    Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
    Cc: Sergei Shtylyov <sshtylyov@xxxxxxxxxx>
    Signed-off-by: Ming Lei <tom.leiming@xxxxxxxxx>
    Signed-off-by: Felipe Balbi <balbi@xxxxxx>

diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 07cf394..12b515b 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -128,12 +128,7 @@ MODULE_ALIAS("platform:" MUSB_DRIVER_NAME);
 
 static inline struct musb *dev_to_musb(struct device *dev)
 {
-#ifdef CONFIG_USB_MUSB_HDRC_HCD
-       /* usbcore insists dev->driver_data is a "struct hcd *" */
-       return hcd_to_musb(dev_get_drvdata(dev));
-#else
        return dev_get_drvdata(dev);
-#endif
 }
 
 /*-------------------------------------------------------------------------*/
@@ -1876,10 +1871,9 @@ allocate_instance(struct device *dev,
        musb = kzalloc(sizeof *musb, GFP_KERNEL);
        if (!musb)
                return NULL;
-       dev_set_drvdata(dev, musb);
 
 #endif
-
+       dev_set_drvdata(dev, musb);
        musb->mregs = mbase;
        musb->ctrl_base = mbase;
        musb->nIrq = -ENODEV;

-- 
balbi
--
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