On Fr, 2018-10-05 at 10:24 +0000, Igor Russkikh wrote:
> From: Dmitry Bezrukov <dmitry.bezru...@aquantia.com>
> 
> Reset, stop callbacks, driver unbind callback.
> More register defines required for these callbacks.
> 
> Signed-off-by: Dmitry Bezrukov <dmitry.bezru...@aquantia.com>
> Signed-off-by: Igor Russkikh <igor.russk...@aquantia.com>
> ---
>  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, &reg16);

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

Reply via email to