Oliver Neukum <oneu...@suse.com> writes:

> 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.

Huh?  No, he doesn't.  That's the whole point with
usbnet_read_cmd_nopm(), isn't it?



Bjørn

Reply via email to