On Fr, 2018-10-05 at 10:24 +0000, Igor Russkikh wrote:
> From: Dmitry Bezrukov <[email protected]>
>
> Reset, stop callbacks, driver unbind callback.
> More register defines required for these callbacks.
>
> Signed-off-by: Dmitry Bezrukov <[email protected]>
> Signed-off-by: Igor Russkikh <[email protected]>
> ---
> 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