* drivers/usb/gadget/function/u_ether.c:233:13: warning: Either the condition 'if(skb)' is redundant or there is possible null pointer dereference: skb.
@ 2020-12-30 21:13 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-12-30 21:13 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 11438 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Masahiro Yamada <masahiroy@kernel.org>
CC: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 139711f033f636cc78b6aaf7363252241b9698ef
commit: df8df5e4bc37e39010cfdf5d50cf726fe08aae5b usb: get rid of 'choice' for legacy gadget drivers
date: 10 months ago
:::::: branch date: 21 hours ago
:::::: commit date: 10 months ago
compiler: xtensa-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
cppcheck possible warnings: (new ones prefixed by >>, may not real problems)
>> drivers/usb/gadget/function/u_ether.c:233:13: warning: Either the condition 'if(skb)' is redundant or there is possible null pointer dereference: skb. [nullPointerRedundantCheck]
req->buf = skb->data;
^
drivers/usb/gadget/function/u_ether.c:244:6: note: Assuming that condition 'if(skb)' is not redundant
if (skb)
^
drivers/usb/gadget/function/u_ether.c:233:13: note: Null pointer dereference
req->buf = skb->data;
^
vim +233 drivers/usb/gadget/function/u_ether.c
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 173
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 174 static int
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 175 rx_submit(struct eth_dev *dev, struct usb_request *req, gfp_t gfp_flags)
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 176 {
387f869d2579e37 drivers/usb/gadget/function/u_ether.c Felipe Balbi 2017-03-22 177 struct usb_gadget *g = dev->gadget;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 178 struct sk_buff *skb;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 179 int retval = -ENOMEM;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 180 size_t size = 0;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 181 struct usb_ep *out;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 182 unsigned long flags;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 183
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 184 spin_lock_irqsave(&dev->lock, flags);
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 185 if (dev->port_usb)
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 186 out = dev->port_usb->out_ep;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 187 else
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 188 out = NULL;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 189
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 190 if (!out)
d29fcf7078bc8be drivers/usb/gadget/function/u_ether.c Kiruthika Varadarajan 2019-06-18 191 {
d29fcf7078bc8be drivers/usb/gadget/function/u_ether.c Kiruthika Varadarajan 2019-06-18 192 spin_unlock_irqrestore(&dev->lock, flags);
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 193 return -ENOTCONN;
d29fcf7078bc8be drivers/usb/gadget/function/u_ether.c Kiruthika Varadarajan 2019-06-18 194 }
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 195
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 196 /* Padding up to RX_EXTRA handles minor disagreements with host.
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 197 * Normally we use the USB "terminate on short read" convention;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 198 * so allow up to (N*maxpacket), since that memory is normally
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 199 * already allocated. Some hardware doesn't deal well with short
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 200 * reads (e.g. DMA must be N*maxpacket), so for now don't trim a
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 201 * byte off the end (to force hardware errors on overflow).
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 202 *
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 203 * RNDIS uses internal framing, and explicitly allows senders to
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 204 * pad to end-of-packet. That's potentially nice for speed, but
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 205 * means receivers can't recover lost synch on their own (because
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 206 * new packets don't only start after a short RX).
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 207 */
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 208 size += sizeof(struct ethhdr) + dev->net->mtu + RX_EXTRA;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 209 size += dev->port_usb->header_len;
387f869d2579e37 drivers/usb/gadget/function/u_ether.c Felipe Balbi 2017-03-22 210
387f869d2579e37 drivers/usb/gadget/function/u_ether.c Felipe Balbi 2017-03-22 211 if (g->quirk_ep_out_aligned_size) {
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 212 size += out->maxpacket - 1;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 213 size -= size % out->maxpacket;
387f869d2579e37 drivers/usb/gadget/function/u_ether.c Felipe Balbi 2017-03-22 214 }
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 215
5c1168dbc508282 drivers/usb/gadget/u_ether.c Yauheni Kaliuta 2010-12-08 216 if (dev->port_usb->is_fixed)
45d1b7ae205e39e drivers/usb/gadget/u_ether.c Stephen Hemminger 2011-03-01 217 size = max_t(size_t, size, dev->port_usb->fixed_out_len);
d29fcf7078bc8be drivers/usb/gadget/function/u_ether.c Kiruthika Varadarajan 2019-06-18 218 spin_unlock_irqrestore(&dev->lock, flags);
5c1168dbc508282 drivers/usb/gadget/u_ether.c Yauheni Kaliuta 2010-12-08 219
18d4689643b08c6 drivers/usb/gadget/function/u_ether.c Torsten Polle 2016-09-19 220 skb = __netdev_alloc_skb(dev->net, size + NET_IP_ALIGN, gfp_flags);
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 221 if (skb == NULL) {
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 222 DBG(dev, "no rx skb\n");
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 223 goto enomem;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 224 }
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 225
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 226 /* Some platforms perform better when IP packets are aligned,
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 227 * but on at least one, checksumming fails otherwise. Note:
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 228 * RNDIS headers involve variable numbers of LE32 values.
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 229 */
05f6b0ff68429bb drivers/usb/gadget/function/u_ether.c Yoshihiro Shimoda 2016-08-22 230 if (likely(!dev->no_skb_reserve))
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 231 skb_reserve(skb, NET_IP_ALIGN);
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 232
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 @233 req->buf = skb->data;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 234 req->length = size;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 235 req->complete = rx_complete;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 236 req->context = skb;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 237
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 238 retval = usb_ep_queue(out, req, gfp_flags);
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 239 if (retval == -ENOMEM)
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 240 enomem:
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 241 defer_kevent(dev, WORK_RX_MEMORY);
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 242 if (retval) {
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 243 DBG(dev, "rx submit --> %d\n", retval);
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 244 if (skb)
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 245 dev_kfree_skb_any(skb);
9189a330936fe05 drivers/usb/gadget/u_ether.c Felipe Balbi 2014-04-21 246 spin_lock_irqsave(&dev->req_lock, flags);
9189a330936fe05 drivers/usb/gadget/u_ether.c Felipe Balbi 2014-04-21 247 list_add(&req->list, &dev->rx_reqs);
9189a330936fe05 drivers/usb/gadget/u_ether.c Felipe Balbi 2014-04-21 248 spin_unlock_irqrestore(&dev->req_lock, flags);
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 249 }
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 250 return retval;
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 251 }
2b3d942c4878084 drivers/usb/gadget/u_ether.c David Brownell 2008-06-19 252
:::::: The code at line 233 was first introduced by commit
:::::: 2b3d942c4878084a37991a65e66512c02b8fa2ad usb ethernet gadget: split out network core
:::::: TO: David Brownell <dbrownell@users.sourceforge.net>
:::::: CC: Greg Kroah-Hartman <gregkh@suse.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-12-30 21:13 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-30 21:13 drivers/usb/gadget/function/u_ether.c:233:13: warning: Either the condition 'if(skb)' is redundant or there is possible null pointer dereference: skb kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.