> >> /** > >> * struct usb_udc - describes one usb device controller @@ -127,12 > >> +128,45 @@ void usb_gadget_giveback_request(struct usb_ep *ep, } > >> EXPORT_SYMBOL_GPL(usb_gadget_giveback_request); > >> > >> +int usb_gadget_register_notify(struct usb_gadget *gadget, > >> + struct notifier_block *nb) { > >> + unsigned long flags; > >> + int ret; > >> + > >> + spin_lock_irqsave(&gadget->lock, flags); > > > > I find you use so many spin_lock_irqsave, any reasons for that? > > Why mutex_lock can't be used? > > > > The spin_lock_irqsave() can make it as a atomic notifier, that can make sure the > gadget state event can be quickly reported to the user who register a notifier > on the gadget device. Is it OK? > I don't think it is a good reason, spin_lock_irqsave is usually used for protecting data which is accessed at atomic environment. Peter {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I