Oliver Neukum <oneukum@xxxxxxxx> writes: > 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. Huh? No, he doesn't. That's the whole point with usbnet_read_cmd_nopm(), isn't it? Bjørn