* [bug report] net: thunderx: add ndo_set_rx_mode callback implementation for VF
@ 2018-04-04 11:16 Dan Carpenter
2018-04-04 12:15 ` Vadim Lomovtsev
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Dan Carpenter @ 2018-04-04 11:16 UTC (permalink / raw)
To: kernel-janitors
Hello Vadim Lomovtsev,
The patch 37c3347eb247: "net: thunderx: add ndo_set_rx_mode callback
implementation for VF" from Mar 30, 2018, leads to the following
static checker warning:
drivers/net/ethernet/cavium/thunder/nicvf_main.c:2006 nicvf_set_rx_mode()
error: potential null dereference 'xaddr'. (kmalloc returns null)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1980 static void nicvf_set_rx_mode(struct net_device *netdev)
1981 {
1982 struct nicvf *nic = netdev_priv(netdev);
1983 struct netdev_hw_addr *ha;
1984 struct xcast_addr_list *mc_list = NULL;
1985 u8 mode = 0;
1986
1987 if (netdev->flags & IFF_PROMISC) {
1988 mode = BGX_XCAST_BCAST_ACCEPT | BGX_XCAST_MCAST_ACCEPT;
1989 } else {
1990 if (netdev->flags & IFF_BROADCAST)
1991 mode |= BGX_XCAST_BCAST_ACCEPT;
1992
1993 if (netdev->flags & IFF_ALLMULTI) {
1994 mode |= BGX_XCAST_MCAST_ACCEPT;
1995 } else if (netdev->flags & IFF_MULTICAST) {
1996 mode |= BGX_XCAST_MCAST_FILTER;
1997 /* here we need to copy mc addrs */
1998 if (netdev_mc_count(netdev)) {
1999 struct xcast_addr *xaddr;
2000
2001 mc_list = kmalloc(sizeof(*mc_list), GFP_ATOMIC);
^^^^^^^^^^^^^^^^^
Not checked.
2002 INIT_LIST_HEAD(&mc_list->list);
2003 netdev_hw_addr_list_for_each(ha, &netdev->mc) {
2004 xaddr = kmalloc(sizeof(*xaddr),
^^^^^^^^^^^^^^^
Also not checked.
2005 GFP_ATOMIC);
2006 xaddr->addr 2007 ether_addr_to_u64(ha->addr);
2008 list_add_tail(&xaddr->list,
2009 &mc_list->list);
2010 mc_list->count++;
2011 }
2012 }
2013 }
2014 }
2015 nic->rx_mode_work.mc = mc_list;
2016 nic->rx_mode_work.mode = mode;
2017 queue_delayed_work(nicvf_rx_mode_wq, &nic->rx_mode_work.work, 2 * HZ);
2018 }
regards,
dan carpenter
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [bug report] net: thunderx: add ndo_set_rx_mode callback implementation for VF
2018-04-04 11:16 [bug report] net: thunderx: add ndo_set_rx_mode callback implementation for VF Dan Carpenter
@ 2018-04-04 12:15 ` Vadim Lomovtsev
2018-04-04 12:19 ` Dan Carpenter
2018-04-04 12:42 ` Vadim Lomovtsev
2 siblings, 0 replies; 4+ messages in thread
From: Vadim Lomovtsev @ 2018-04-04 12:15 UTC (permalink / raw)
To: kernel-janitors
Hello Dan,
Thank you for your feedback on this.
I'll update driver accordingly with next patch series.
Sorry for wasting your time, my bad - I should check such things at my side.
WBR,
Vadim
On Wed, Apr 04, 2018 at 02:16:45PM +0300, Dan Carpenter wrote:
> Hello Vadim Lomovtsev,
>
> The patch 37c3347eb247: "net: thunderx: add ndo_set_rx_mode callback
> implementation for VF" from Mar 30, 2018, leads to the following
> static checker warning:
>
> drivers/net/ethernet/cavium/thunder/nicvf_main.c:2006 nicvf_set_rx_mode()
> error: potential null dereference 'xaddr'. (kmalloc returns null)
>
> drivers/net/ethernet/cavium/thunder/nicvf_main.c
> 1980 static void nicvf_set_rx_mode(struct net_device *netdev)
> 1981 {
> 1982 struct nicvf *nic = netdev_priv(netdev);
> 1983 struct netdev_hw_addr *ha;
> 1984 struct xcast_addr_list *mc_list = NULL;
> 1985 u8 mode = 0;
> 1986
> 1987 if (netdev->flags & IFF_PROMISC) {
> 1988 mode = BGX_XCAST_BCAST_ACCEPT | BGX_XCAST_MCAST_ACCEPT;
> 1989 } else {
> 1990 if (netdev->flags & IFF_BROADCAST)
> 1991 mode |= BGX_XCAST_BCAST_ACCEPT;
> 1992
> 1993 if (netdev->flags & IFF_ALLMULTI) {
> 1994 mode |= BGX_XCAST_MCAST_ACCEPT;
> 1995 } else if (netdev->flags & IFF_MULTICAST) {
> 1996 mode |= BGX_XCAST_MCAST_FILTER;
> 1997 /* here we need to copy mc addrs */
> 1998 if (netdev_mc_count(netdev)) {
> 1999 struct xcast_addr *xaddr;
> 2000
> 2001 mc_list = kmalloc(sizeof(*mc_list), GFP_ATOMIC);
> ^^^^^^^^^^^^^^^^^
> Not checked.
>
> 2002 INIT_LIST_HEAD(&mc_list->list);
> 2003 netdev_hw_addr_list_for_each(ha, &netdev->mc) {
> 2004 xaddr = kmalloc(sizeof(*xaddr),
> ^^^^^^^^^^^^^^^
> Also not checked.
>
> 2005 GFP_ATOMIC);
> 2006 xaddr->addr > 2007 ether_addr_to_u64(ha->addr);
> 2008 list_add_tail(&xaddr->list,
> 2009 &mc_list->list);
> 2010 mc_list->count++;
> 2011 }
> 2012 }
> 2013 }
> 2014 }
> 2015 nic->rx_mode_work.mc = mc_list;
> 2016 nic->rx_mode_work.mode = mode;
> 2017 queue_delayed_work(nicvf_rx_mode_wq, &nic->rx_mode_work.work, 2 * HZ);
> 2018 }
>
> regards,
> dan carpenter
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [bug report] net: thunderx: add ndo_set_rx_mode callback implementation for VF
2018-04-04 11:16 [bug report] net: thunderx: add ndo_set_rx_mode callback implementation for VF Dan Carpenter
2018-04-04 12:15 ` Vadim Lomovtsev
@ 2018-04-04 12:19 ` Dan Carpenter
2018-04-04 12:42 ` Vadim Lomovtsev
2 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2018-04-04 12:19 UTC (permalink / raw)
To: kernel-janitors
On Wed, Apr 04, 2018 at 05:15:28AM -0700, Vadim Lomovtsev wrote:
> Hello Dan,
>
> Thank you for your feedback on this.
>
> I'll update driver accordingly with next patch series.
>
> Sorry for wasting your time, my bad - I should check such things at my side.
>
I'm just forwarding static checker output. It's not like I'm judging
you or that I've never skipped a kmalloc() check...
regards,
dan carpenter
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [bug report] net: thunderx: add ndo_set_rx_mode callback implementation for VF
2018-04-04 11:16 [bug report] net: thunderx: add ndo_set_rx_mode callback implementation for VF Dan Carpenter
2018-04-04 12:15 ` Vadim Lomovtsev
2018-04-04 12:19 ` Dan Carpenter
@ 2018-04-04 12:42 ` Vadim Lomovtsev
2 siblings, 0 replies; 4+ messages in thread
From: Vadim Lomovtsev @ 2018-04-04 12:42 UTC (permalink / raw)
To: kernel-janitors
On Wed, Apr 04, 2018 at 03:19:27PM +0300, Dan Carpenter wrote:
> On Wed, Apr 04, 2018 at 05:15:28AM -0700, Vadim Lomovtsev wrote:
> > Hello Dan,
> >
> > Thank you for your feedback on this.
> >
> > I'll update driver accordingly with next patch series.
> >
> > Sorry for wasting your time, my bad - I should check such things at my side.
> >
>
> I'm just forwarding static checker output. It's not like I'm judging
> you or that I've never skipped a kmalloc() check...
This is much appreciated, thank you.
WBR,
Vadim
>
> regards,
> dan carpenter
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-04-04 12:42 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-04 11:16 [bug report] net: thunderx: add ndo_set_rx_mode callback implementation for VF Dan Carpenter
2018-04-04 12:15 ` Vadim Lomovtsev
2018-04-04 12:19 ` Dan Carpenter
2018-04-04 12:42 ` Vadim Lomovtsev
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).