Re: Stack dump when try to store uframe_periodic_max

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

 



On Mon, Aug 17, 2015 at 12:04:07PM -0400, Alan Stern wrote:
> On Mon, 17 Aug 2015, Peter Zijlstra wrote:
> 
> > On Mon, Aug 17, 2015 at 10:32:20AM -0400, Alan Stern wrote:
> > > On Mon, 17 Aug 2015, Peter Chen wrote:
> > > 
> > > > Hi Alan,
> > > > 
> > > > When run "echo 105  > /sys/bus/platform/devices/ci_hdrc.1/uframe_periodic_max",
> > > > if lockdep check is enabled, there is below dump, I am afraid it can't
> > > > find how to fix it, the warning shows the key is not persistent.
> > > > (see line 757, kernel/locking/lockdep.c).
> > > > 
> > > > 
> > > > [   70.190430] INFO: trying to register non-static key.
> > > > [   70.195437] the code is fine but needs lockdep annotation.
> > > > [   70.200939] turning off the locking correctness validator.
> > 
> > > I don't understand this either.
> > > 
> > > Maybe Peter Z. can help.  This dump is triggered by the
> > > spin_lock_irqsave() call in
> > > drivers/usb/host/ehci-sysfs.c:store_uframe_periodic_max().  That
> > > function doesn't appear to be unusual in any way.
> > 
> > Can it happen this code is called before a corresponding
> > spin_lock_init()?
> 
> No; the spinlock gets initialized in ehci_init() long before the sysfs
> file is registered.
> 
> > Alternatively, memory corruption is an option. If something stomped on
> > the lockdep state you can trigger this I suppose.
> 

oops, sorry, it is memory corruption.

The chipidea driver overrides platform device's drvdata as its
private data (struct ci_hdrc *), this data was expected as struct
usb_hcd * at store_uframe_periodic_max.

-- 

Best Regards,
Peter Chen
--
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