On Fr, 2018-10-05 at 10:24 +0000, Igor Russkikh wrote: > From: Dmitry Bezrukov <dmitry.bezrukov@xxxxxxxxxxxx> > > Reset, stop callbacks, driver unbind callback. > More register defines required for these callbacks. > > Signed-off-by: Dmitry Bezrukov <dmitry.bezrukov@xxxxxxxxxxxx> > Signed-off-by: Igor Russkikh <igor.russkikh@xxxxxxxxxxxx> > --- > drivers/net/usb/aqc111.c | 48 ++++++++++++++++++++++ > drivers/net/usb/aqc111.h | 101 +++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 149 insertions(+) > > diff --git a/drivers/net/usb/aqc111.c b/drivers/net/usb/aqc111.c > index 7f3e5a615750..22bb259d71fb 100644 > --- a/drivers/net/usb/aqc111.c > +++ b/drivers/net/usb/aqc111.c > @@ -169,12 +169,60 @@ static int aqc111_bind(struct usbnet *dev, struct usb_interface *intf) > > static void aqc111_unbind(struct usbnet *dev, struct usb_interface *intf) > { > + u8 reg8; > + u16 reg16; > + > + /* Force bz */ > + reg16 = SFR_PHYPWR_RSTCTL_BZ; > + aqc111_write_cmd_nopm(dev, AQ_ACCESS_MAC, SFR_PHYPWR_RSTCTL, > + 2, 2, ®16); No, I am sorry, you are doing DMA on the kernel stack. That is not allowed. These functions will all have to be fixed. Regards Oliver