* drivers/net/ethernet/engleder/tsnep_rxnfc.c:186:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
@ 2023-03-05 9:29 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-03-05 9:29 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp
::::::
:::::: Manual check reason: "low confidence static check warning: drivers/net/ethernet/engleder/tsnep_rxnfc.c:186:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]"
::::::
BCC: lkp@intel.com
CC: llvm@lists.linux.dev
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Gerhard Engleder <gerhard@engleder-embedded.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: b01fe98d34f3bed944a93bd8119fed80c856fad8
commit: 308ce1426509c18b4203dcaa38b9da858312a765 tsnep: Add EtherType RX flow classification support
date: 5 months ago
:::::: branch date: 11 hours ago
:::::: commit date: 5 months ago
config: arm-randconfig-c002-20230302 (https://download.01.org/0day-ci/archive/20230305/202303051700.dsC3gV4J-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 67409911353323ca5edf2049ef0df54132fa1ca7)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=308ce1426509c18b4203dcaa38b9da858312a765
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 308ce1426509c18b4203dcaa38b9da858312a765
# save the config file
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/r/202303051700.dsC3gV4J-lkp@intel.com/
clang_analyzer warnings: (new ones prefixed by >>)
strcpy(card->driver, f_midi_longname);
^~~~~~
drivers/usb/gadget/function/f_midi.c:822:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(card->longname, f_midi_longname);
^~~~~~
drivers/usb/gadget/function/f_midi.c:822:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(card->longname, f_midi_longname);
^~~~~~
drivers/usb/gadget/function/f_midi.c:823:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(card->shortname, f_midi_shortname);
^~~~~~
drivers/usb/gadget/function/f_midi.c:823:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(card->shortname, f_midi_shortname);
^~~~~~
drivers/usb/gadget/function/f_midi.c:835:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(rmidi->name, card->shortname);
^~~~~~
drivers/usb/gadget/function/f_midi.c:835:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(rmidi->name, card->shortname);
^~~~~~
1 warning generated.
drivers/usb/gadget/function/f_printer.c:385:2: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
DBG(dev, "printer_close\n");
^
include/linux/usb/composite.h:623:11: note: expanded from macro 'DBG'
dev_dbg(&(d)->gadget->dev , fmt , ## args)
~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:158:25: note: expanded from macro 'dev_dbg'
dev_printk(KERN_DEBUG, dev, dev_fmt(fmt), ##__VA_ARGS__)
~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:129:22: note: expanded from macro 'dev_printk'
_dev_printk(level, dev, fmt, ##__VA_ARGS__); \
^~~
drivers/usb/gadget/function/f_printer.c:377:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&dev->lock, flags);
^
include/linux/spinlock.h:379:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:240:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/usb/gadget/function/f_printer.c:377:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&dev->lock, flags);
^
include/linux/spinlock.h:377:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/usb/gadget/function/f_printer.c:384:2: note: Calling 'kref_put'
kref_put(&dev->kref, printer_dev_free);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/kref.h:64:2: note: Taking true branch
if (refcount_dec_and_test(&kref->refcount)) {
^
include/linux/kref.h:65:3: note: Calling 'printer_dev_free'
release(kref);
^~~~~~~~~~~~~
drivers/usb/gadget/function/f_printer.c:228:2: note: Memory is released
kfree(dev);
^~~~~~~~~~
include/linux/kref.h:65:3: note: Returning; memory was released
release(kref);
^~~~~~~~~~~~~
drivers/usb/gadget/function/f_printer.c:384:2: note: Returning; memory was released
kref_put(&dev->kref, printer_dev_free);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/usb/gadget/function/f_printer.c:385:2: note: Loop condition is false. Exiting loop
DBG(dev, "printer_close\n");
^
include/linux/usb/composite.h:623:2: note: expanded from macro 'DBG'
dev_dbg(&(d)->gadget->dev , fmt , ## args)
^
include/linux/dev_printk.h:158:2: note: expanded from macro 'dev_dbg'
dev_printk(KERN_DEBUG, dev, dev_fmt(fmt), ##__VA_ARGS__)
^
include/linux/dev_printk.h:128:3: note: expanded from macro 'dev_printk'
dev_printk_index_emit(level, fmt); \
^
include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
printk_index_subsys_emit("%s %s: ", level, fmt)
^
include/linux/printk.h:431:2: note: expanded from macro 'printk_index_subsys_emit'
__printk_index_emit(fmt, level, subsys_fmt_prefix)
^
include/linux/printk.h:410:34: note: expanded from macro '__printk_index_emit'
#define __printk_index_emit(...) do {} while (0)
^
drivers/usb/gadget/function/f_printer.c:385:2: note: Use of memory after it is freed
DBG(dev, "printer_close\n");
^
include/linux/usb/composite.h:623:11: note: expanded from macro 'DBG'
dev_dbg(&(d)->gadget->dev , fmt , ## args)
~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:158:25: note: expanded from macro 'dev_dbg'
dev_printk(KERN_DEBUG, dev, dev_fmt(fmt), ##__VA_ARGS__)
~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:129:22: note: expanded from macro 'dev_printk'
_dev_printk(level, dev, fmt, ##__VA_ARGS__); \
^~~
2 warnings generated.
>> drivers/net/ethernet/engleder/tsnep_rxnfc.c:186:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct net_device *dev = adapter->netdev;
^~~ ~~~~~~~~~~~~~~~
drivers/net/ethernet/engleder/tsnep_rxnfc.c:186:21: note: Value stored to 'dev' during its initialization is never read
struct net_device *dev = adapter->netdev;
^~~ ~~~~~~~~~~~~~~~
>> drivers/net/ethernet/engleder/tsnep_rxnfc.c:204:21: warning: Value stored to 'netdev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct net_device *netdev = adapter->netdev;
^~~~~~ ~~~~~~~~~~~~~~~
drivers/net/ethernet/engleder/tsnep_rxnfc.c:204:21: note: Value stored to 'netdev' during its initialization is never read
struct net_device *netdev = adapter->netdev;
^~~~~~ ~~~~~~~~~~~~~~~
6 warnings generated.
drivers/net/ethernet/freescale/fec_main.c:1630:27: warning: Access to field 'ts' results in a dereference of a null pointer (loaded from variable 'ebdp') [clang-analyzer-core.NullDereference]
fec_enet_hwtstamp(fep, fec32_to_cpu(ebdp->ts),
^
drivers/net/ethernet/freescale/fec.h:207:22: note: expanded from macro 'fec32_to_cpu'
#define fec32_to_cpu le32_to_cpu
^
include/linux/byteorder/generic.h:89:21: note: expanded from macro 'le32_to_cpu'
#define le32_to_cpu __le32_to_cpu
^
include/uapi/linux/byteorder/little_endian.h:35:50: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
^
drivers/net/ethernet/freescale/fec_main.c:1748:11: note: Calling 'fec_enet_rx'
done += fec_enet_rx(ndev, budget - done);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/freescale/fec_main.c:1701:35: note: Assuming 'i' is >= 0
for (i = fep->num_rx_queues - 1; i >= 0; i--)
^~~~~~
drivers/net/ethernet/freescale/fec_main.c:1701:2: note: Loop condition is true. Entering loop body
for (i = fep->num_rx_queues - 1; i >= 0; i--)
^
drivers/net/ethernet/freescale/fec_main.c:1702:11: note: Calling 'fec_enet_rx_queue'
done += fec_enet_rx_queue(ndev, budget - done, i);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/freescale/fec_main.c:1533:9: note: Assuming the condition is true
while (!((status = fec16_to_cpu(bdp->cbd_sc)) & BD_ENET_RX_EMPTY)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/freescale/fec_main.c:1533:2: note: Loop condition is true. Entering loop body
while (!((status = fec16_to_cpu(bdp->cbd_sc)) & BD_ENET_RX_EMPTY)) {
^
drivers/net/ethernet/freescale/fec_main.c:1535:7: note: Assuming 'pkt_received' is < 'budget'
if (pkt_received >= budget)
^~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/freescale/fec_main.c:1535:3: note: Taking false branch
if (pkt_received >= budget)
^
drivers/net/ethernet/freescale/fec_main.c:1539:3: note: Loop condition is false. Exiting loop
writel(FEC_ENET_RXF_GET(queue_id), fep->hwp + FEC_IEVENT);
^
arch/arm/include/asm/io.h:290:25: note: expanded from macro 'writel'
#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
^
arch/arm/include/asm/io.h:168:20: note: expanded from macro '__iowmb'
#define __iowmb() do { } while (0)
^
drivers/net/ethernet/freescale/fec_main.c:1539:10: note: Assuming 'queue_id' is not equal to 0
writel(FEC_ENET_RXF_GET(queue_id), fep->hwp + FEC_IEVENT);
^
drivers/net/ethernet/freescale/fec.h:383:31: note: expanded from macro 'FEC_ENET_RXF_GET'
#define FEC_ENET_RXF_GET(X) (((X) == 0) ? FEC_ENET_RXF_0 : \
^
arch/arm/include/asm/io.h:290:51: note: expanded from macro 'writel'
#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
~~~~~~~~~~~~~~~^~~~
arch/arm/include/asm/io.h:282:68: note: expanded from macro 'writel_relaxed'
#define writel_relaxed(v,c) __raw_writel((__force u32) cpu_to_le32(v),c)
~~~~~~~~~~~~^~
include/uapi/linux/byteorder/little_endian.h:34:51: note: expanded from macro '__cpu_to_le32'
#define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
^
drivers/net/ethernet/freescale/fec_main.c:1539:10: note: '?' condition is false
writel(FEC_ENET_RXF_GET(queue_id), fep->hwp + FEC_IEVENT);
^
drivers/net/ethernet/freescale/fec.h:383:30: note: expanded from macro 'FEC_ENET_RXF_GET'
#define FEC_ENET_RXF_GET(X) (((X) == 0) ? FEC_ENET_RXF_0 : \
^
drivers/net/ethernet/freescale/fec_main.c:1539:10: note: Assuming 'queue_id' is not equal to 1
writel(FEC_ENET_RXF_GET(queue_id), fep->hwp + FEC_IEVENT);
^
drivers/net/ethernet/freescale/fec.h:384:7: note: expanded from macro 'FEC_ENET_RXF_GET'
(((X) == 1) ? FEC_ENET_RXF_1 : \
^
arch/arm/include/asm/io.h:290:51: note: expanded from macro 'writel'
#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
~~~~~~~~~~~~~~~^~~~
arch/arm/include/asm/io.h:282:68: note: expanded from macro 'writel_relaxed'
#define writel_relaxed(v,c) __raw_writel((__force u32) cpu_to_le32(v),c)
~~~~~~~~~~~~^~
include/uapi/linux/byteorder/little_endian.h:34:51: note: expanded from macro '__cpu_to_le32'
#define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
^
drivers/net/ethernet/freescale/fec_main.c:1539:10: note: '?' condition is false
writel(FEC_ENET_RXF_GET(queue_id), fep->hwp + FEC_IEVENT);
^
drivers/net/ethernet/freescale/fec.h:384:6: note: expanded from macro 'FEC_ENET_RXF_GET'
(((X) == 1) ? FEC_ENET_RXF_1 : \
^
drivers/net/ethernet/freescale/fec_main.c:1543:7: note: Assuming the condition is false
if (status & (BD_ENET_RX_LG | BD_ENET_RX_SH | BD_ENET_RX_NO |
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/freescale/fec_main.c:1543:3: note: Taking false branch
if (status & (BD_ENET_RX_LG | BD_ENET_RX_SH | BD_ENET_RX_NO |
^
drivers/net/ethernet/freescale/fec_main.c:1579:18: note: Calling 'fec_enet_copybreak'
vim +/dev +186 drivers/net/ethernet/engleder/tsnep_rxnfc.c
308ce1426509c1 Gerhard Engleder 2022-09-27 182
308ce1426509c1 Gerhard Engleder 2022-09-27 183 static int tsnep_rxnfc_check_rule(struct tsnep_adapter *adapter,
308ce1426509c1 Gerhard Engleder 2022-09-27 184 struct tsnep_rxnfc_rule *rule)
308ce1426509c1 Gerhard Engleder 2022-09-27 185 {
308ce1426509c1 Gerhard Engleder 2022-09-27 @186 struct net_device *dev = adapter->netdev;
308ce1426509c1 Gerhard Engleder 2022-09-27 187 struct tsnep_rxnfc_rule *tmp;
308ce1426509c1 Gerhard Engleder 2022-09-27 188
308ce1426509c1 Gerhard Engleder 2022-09-27 189 list_for_each_entry(tmp, &adapter->rxnfc_rules, list) {
308ce1426509c1 Gerhard Engleder 2022-09-27 190 if (!memcmp(&rule->filter, &tmp->filter, sizeof(rule->filter)) &&
308ce1426509c1 Gerhard Engleder 2022-09-27 191 tmp->location != rule->location) {
308ce1426509c1 Gerhard Engleder 2022-09-27 192 netdev_dbg(dev, "rule already exists\n");
308ce1426509c1 Gerhard Engleder 2022-09-27 193
308ce1426509c1 Gerhard Engleder 2022-09-27 194 return -EEXIST;
308ce1426509c1 Gerhard Engleder 2022-09-27 195 }
308ce1426509c1 Gerhard Engleder 2022-09-27 196 }
308ce1426509c1 Gerhard Engleder 2022-09-27 197
308ce1426509c1 Gerhard Engleder 2022-09-27 198 return 0;
308ce1426509c1 Gerhard Engleder 2022-09-27 199 }
308ce1426509c1 Gerhard Engleder 2022-09-27 200
308ce1426509c1 Gerhard Engleder 2022-09-27 201 int tsnep_rxnfc_add_rule(struct tsnep_adapter *adapter,
308ce1426509c1 Gerhard Engleder 2022-09-27 202 struct ethtool_rxnfc *cmd)
308ce1426509c1 Gerhard Engleder 2022-09-27 203 {
308ce1426509c1 Gerhard Engleder 2022-09-27 @204 struct net_device *netdev = adapter->netdev;
308ce1426509c1 Gerhard Engleder 2022-09-27 205 struct ethtool_rx_flow_spec *fsp =
308ce1426509c1 Gerhard Engleder 2022-09-27 206 (struct ethtool_rx_flow_spec *)&cmd->fs;
308ce1426509c1 Gerhard Engleder 2022-09-27 207 struct tsnep_rxnfc_rule *rule, *old_rule;
308ce1426509c1 Gerhard Engleder 2022-09-27 208 int retval;
308ce1426509c1 Gerhard Engleder 2022-09-27 209
308ce1426509c1 Gerhard Engleder 2022-09-27 210 /* only EtherType is supported */
308ce1426509c1 Gerhard Engleder 2022-09-27 211 if (fsp->flow_type != ETHER_FLOW ||
308ce1426509c1 Gerhard Engleder 2022-09-27 212 !is_zero_ether_addr(fsp->m_u.ether_spec.h_dest) ||
308ce1426509c1 Gerhard Engleder 2022-09-27 213 !is_zero_ether_addr(fsp->m_u.ether_spec.h_source) ||
308ce1426509c1 Gerhard Engleder 2022-09-27 214 fsp->m_u.ether_spec.h_proto != ETHER_TYPE_FULL_MASK) {
308ce1426509c1 Gerhard Engleder 2022-09-27 215 netdev_dbg(netdev, "only ethernet protocol is supported\n");
308ce1426509c1 Gerhard Engleder 2022-09-27 216
308ce1426509c1 Gerhard Engleder 2022-09-27 217 return -EOPNOTSUPP;
308ce1426509c1 Gerhard Engleder 2022-09-27 218 }
308ce1426509c1 Gerhard Engleder 2022-09-27 219
308ce1426509c1 Gerhard Engleder 2022-09-27 220 if (fsp->ring_cookie >
308ce1426509c1 Gerhard Engleder 2022-09-27 221 (TSNEP_RX_ASSIGN_QUEUE_MASK >> TSNEP_RX_ASSIGN_QUEUE_SHIFT)) {
308ce1426509c1 Gerhard Engleder 2022-09-27 222 netdev_dbg(netdev, "invalid action\n");
308ce1426509c1 Gerhard Engleder 2022-09-27 223
308ce1426509c1 Gerhard Engleder 2022-09-27 224 return -EINVAL;
308ce1426509c1 Gerhard Engleder 2022-09-27 225 }
308ce1426509c1 Gerhard Engleder 2022-09-27 226
308ce1426509c1 Gerhard Engleder 2022-09-27 227 if (fsp->location != RX_CLS_LOC_ANY &&
308ce1426509c1 Gerhard Engleder 2022-09-27 228 fsp->location >= adapter->rxnfc_max) {
308ce1426509c1 Gerhard Engleder 2022-09-27 229 netdev_dbg(netdev, "invalid location\n");
308ce1426509c1 Gerhard Engleder 2022-09-27 230
308ce1426509c1 Gerhard Engleder 2022-09-27 231 return -EINVAL;
308ce1426509c1 Gerhard Engleder 2022-09-27 232 }
308ce1426509c1 Gerhard Engleder 2022-09-27 233
308ce1426509c1 Gerhard Engleder 2022-09-27 234 rule = kzalloc(sizeof(*rule), GFP_KERNEL);
308ce1426509c1 Gerhard Engleder 2022-09-27 235 if (!rule)
308ce1426509c1 Gerhard Engleder 2022-09-27 236 return -ENOMEM;
308ce1426509c1 Gerhard Engleder 2022-09-27 237
308ce1426509c1 Gerhard Engleder 2022-09-27 238 mutex_lock(&adapter->rxnfc_lock);
308ce1426509c1 Gerhard Engleder 2022-09-27 239
308ce1426509c1 Gerhard Engleder 2022-09-27 240 if (fsp->location == RX_CLS_LOC_ANY) {
308ce1426509c1 Gerhard Engleder 2022-09-27 241 retval = tsnep_rxnfc_find_location(adapter);
308ce1426509c1 Gerhard Engleder 2022-09-27 242 if (retval < 0)
308ce1426509c1 Gerhard Engleder 2022-09-27 243 goto failed;
308ce1426509c1 Gerhard Engleder 2022-09-27 244 fsp->location = retval;
308ce1426509c1 Gerhard Engleder 2022-09-27 245 }
308ce1426509c1 Gerhard Engleder 2022-09-27 246
308ce1426509c1 Gerhard Engleder 2022-09-27 247 tsnep_rxnfc_init_rule(rule, fsp);
308ce1426509c1 Gerhard Engleder 2022-09-27 248
308ce1426509c1 Gerhard Engleder 2022-09-27 249 retval = tsnep_rxnfc_check_rule(adapter, rule);
308ce1426509c1 Gerhard Engleder 2022-09-27 250 if (retval)
308ce1426509c1 Gerhard Engleder 2022-09-27 251 goto failed;
308ce1426509c1 Gerhard Engleder 2022-09-27 252
308ce1426509c1 Gerhard Engleder 2022-09-27 253 old_rule = tsnep_get_rule(adapter, fsp->location);
308ce1426509c1 Gerhard Engleder 2022-09-27 254 if (old_rule)
308ce1426509c1 Gerhard Engleder 2022-09-27 255 tsnep_delete_rule(adapter, old_rule);
308ce1426509c1 Gerhard Engleder 2022-09-27 256
308ce1426509c1 Gerhard Engleder 2022-09-27 257 tsnep_add_rule(adapter, rule);
308ce1426509c1 Gerhard Engleder 2022-09-27 258
308ce1426509c1 Gerhard Engleder 2022-09-27 259 mutex_unlock(&adapter->rxnfc_lock);
308ce1426509c1 Gerhard Engleder 2022-09-27 260
308ce1426509c1 Gerhard Engleder 2022-09-27 261 return 0;
308ce1426509c1 Gerhard Engleder 2022-09-27 262
308ce1426509c1 Gerhard Engleder 2022-09-27 263 failed:
308ce1426509c1 Gerhard Engleder 2022-09-27 264 mutex_unlock(&adapter->rxnfc_lock);
308ce1426509c1 Gerhard Engleder 2022-09-27 265 kfree(rule);
308ce1426509c1 Gerhard Engleder 2022-09-27 266 return retval;
308ce1426509c1 Gerhard Engleder 2022-09-27 267 }
308ce1426509c1 Gerhard Engleder 2022-09-27 268
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-03-05 9:30 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-05 9:29 drivers/net/ethernet/engleder/tsnep_rxnfc.c:186:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores] 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.