On Fri, Jul 26, 2013 at 07:14:45PM +1000, NeilBrown wrote: > > Hi, > the commit: > > commit 09fc7d22b024692b2fe8a943b246de1af307132b > Author: Felipe Balbi <balbi@xxxxxx> > Date: Wed Apr 24 17:21:42 2013 +0300 > > usb: musb: fix incorrect usage of resource pointer > > We can't simply pass the resource pointer from our > device down to our children, otherwise module > reinsertion will not work as the resource will > continue to be marked as busy. > > Fix it by building a proper struct resource for > our child musb device. > > > (even with the subsequent compile fix applied) breaks my USB-OTG port on my > GTA04. > > I must admit that I don't see the point of the patch at all. > Instead of passing one array to platform_device_add_resources() > which will copy it into malloced space, it copies bits of the array onto > the stack on passes that for platform_device_add_resources to copy. > What is the value of the second copy?? if you don't do that, the resource will already be busy and ioremap will fail on second modprobe. > But that isn't the real problem. The real problem is that in omap2430_probe, > on my board at least, pdev->num_resources == 3. But only the first 2 entries > in the array are copied. > > If I make the array one entry larger and copy the extra entry it works. Of > course that might break for someone else who only has 2 resources to copy.... > > Can we go back to just leaving it to platform_device_add_resources to do the > copying it have I missed something? (I can't see where the new old code > would mark something as 'busy' that the new code won't mark as busy...) patches already in Greg's queue -- balbi
Attachment:
signature.asc
Description: Digital signature