RE: [usb gadget]use dev_kfree_skb_irq instead of dev_kfree_skb

From: Lipengcheng
Date: Fri Dec 22 2017 - 03:19:24 EST


Hi,
> -----Original Message-----
> From: Greg KH [mailto:gregkh@xxxxxxxxxxxxxxxxxxx]
> Sent: Friday, December 22, 2017 3:50 PM
> To: Lipengcheng
> Cc: balbi@xxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [usb gadget]use dev_kfree_skb_irq instead of dev_kfree_skb
>
> On Fri, Dec 22, 2017 at 03:43:15PM +0800, lpc.li wrote:
> > Hi,
> > Ethernet Gadget (with CDC Ethernet support) and RNDIS support, device
> > is Hisilicon asic and host is PC Windows. Howerver, it has one
> > warning. In the rndis_add_header of the file f_rndis.c,
> > dev_kfree_skb_irq replaces dev_kfree_skb. And the waning is
> > eliminated. I think we can't use dev_kfree_skb in irq disable context,
> > because spin_lock_irqsave make sure we are always in irq disable
> > context, use dev_kfree_skb_irq instead of dev_kfree_skb is better than
> > dev_kfree_skb_any.
>
> Can you make up a patch for this please?
Ok.
>
> >
> > #<--CO------------[ cut here ]------------
> > WARNING: CPU: 0 PID: 22 at kernel/softirq.c:146
> > __local_bh_enable_ip+0x8c/0xb4() Modules linked in: g_ether usb_f_ecm
> > usb_f_rndis u_ether libcomposite configfs udc_hisi hi_gpio(O) hifb(O)
> > hi3559_tde(PO) hi3559_sys(PO) hi3559_base(PO) hi_osal(O) hi_ipcm(O)
> > CPU: 0 PID: 22 Comm: kworker/0:1 Tainted: P O 3.18.20 #1
>
> Note, 3.18 is _VERY_ old, are you sure this isn't resolved in a modern and secure kernel release? :)
The problem still exists in a modern and secure kernel release
>
> thanks,
>
> greg k-h