drivers/staging/octeon/ethernet-tx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Use the new api DECLARE_TASKLET instead of DECLARE_TASKLET_OLD
introduced in commit 12cc923f1ccc ("tasklet: Introduce new
initialization API").
Signed-off-by: Abhishek Tamboli <abhishektamboli9@gmail.com>
---
drivers/staging/octeon/ethernet-tx.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/octeon/ethernet-tx.c b/drivers/staging/octeon/ethernet-tx.c
index bbf33b88bb7c..ae1bac99b461 100644
--- a/drivers/staging/octeon/ethernet-tx.c
+++ b/drivers/staging/octeon/ethernet-tx.c
@@ -40,8 +40,8 @@
#define GET_SKBUFF_QOS(skb) 0
#endif
-static void cvm_oct_tx_do_cleanup(unsigned long arg);
-static DECLARE_TASKLET_OLD(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup);
+static void cvm_oct_tx_do_cleanup(struct tasklet_struct clean);
+static DECLARE_TASKLET(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup);
/* Maximum number of SKBs to try to free per xmit packet. */
#define MAX_SKB_TO_FREE (MAX_OUT_QUEUE_DEPTH * 2)
@@ -670,7 +670,7 @@ void cvm_oct_tx_shutdown_dev(struct net_device *dev)
}
}
-static void cvm_oct_tx_do_cleanup(unsigned long arg)
+static void cvm_oct_tx_do_cleanup(struct tasklet_struct clean)
{
int port;
--
2.34.1
Hi Abhishek, kernel test robot noticed the following build errors: [auto build test ERROR on staging/staging-testing] url: https://github.com/intel-lab-lkp/linux/commits/Abhishek-Tamboli/staging-octeon-Use-new-initialization-api-for-tasklet/20240913-012448 base: staging/staging-testing patch link: https://lore.kernel.org/r/20240912172231.369566-1-abhishektamboli9%40gmail.com patch subject: [PATCH] staging: octeon: Use new initialization api for tasklet config: hexagon-allmodconfig (https://download.01.org/0day-ci/archive/20240913/202409132323.MbFMwNBU-lkp@intel.com/config) compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project bf684034844c660b778f0eba103582f582b710c9) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240913/202409132323.MbFMwNBU-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202409132323.MbFMwNBU-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from drivers/staging/octeon/ethernet-tx.c:10: In file included from include/linux/netdevice.h:38: In file included from include/net/net_namespace.h:43: In file included from include/linux/skbuff.h:17: In file included from include/linux/bvec.h:10: In file included from include/linux/highmem.h:10: In file included from include/linux/mm.h:2228: include/linux/vmstat.h:514:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 514 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ In file included from drivers/staging/octeon/ethernet-tx.c:10: In file included from include/linux/netdevice.h:38: In file included from include/net/net_namespace.h:43: In file included from include/linux/skbuff.h:17: In file included from include/linux/bvec.h:10: In file included from include/linux/highmem.h:12: In file included from include/linux/hardirq.h:11: In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:17: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:14: In file included from arch/hexagon/include/asm/io.h:328: include/asm-generic/io.h:548:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 548 | val = __raw_readb(PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:561:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 561 | val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr)); | ~~~~~~~~~~ ^ include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu' 37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x)) | ^ In file included from drivers/staging/octeon/ethernet-tx.c:10: In file included from include/linux/netdevice.h:38: In file included from include/net/net_namespace.h:43: In file included from include/linux/skbuff.h:17: In file included from include/linux/bvec.h:10: In file included from include/linux/highmem.h:12: In file included from include/linux/hardirq.h:11: In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:17: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:14: In file included from arch/hexagon/include/asm/io.h:328: include/asm-generic/io.h:574:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 574 | val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr)); | ~~~~~~~~~~ ^ include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu' 35 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x)) | ^ In file included from drivers/staging/octeon/ethernet-tx.c:10: In file included from include/linux/netdevice.h:38: In file included from include/net/net_namespace.h:43: In file included from include/linux/skbuff.h:17: In file included from include/linux/bvec.h:10: In file included from include/linux/highmem.h:12: In file included from include/linux/hardirq.h:11: In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:17: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:14: In file included from arch/hexagon/include/asm/io.h:328: include/asm-generic/io.h:585:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 585 | __raw_writeb(value, PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:595:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 595 | __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:605:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 605 | __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr); | ~~~~~~~~~~ ^ >> drivers/staging/octeon/ethernet-tx.c:44:52: error: incompatible function pointer types initializing 'void (*)(struct tasklet_struct *)' with an expression of type 'void (struct tasklet_struct)' [-Wincompatible-function-pointer-types] 44 | static DECLARE_TASKLET(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup); | ^~~~~~~~~~~~~~~~~~~~~ include/linux/interrupt.h:665:14: note: expanded from macro 'DECLARE_TASKLET' 665 | .callback = _callback, \ | ^~~~~~~~~ 7 warnings and 1 error generated. vim +44 drivers/staging/octeon/ethernet-tx.c 42 43 static void cvm_oct_tx_do_cleanup(struct tasklet_struct clean); > 44 static DECLARE_TASKLET(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup); 45 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
Hi Abhishek, kernel test robot noticed the following build errors: [auto build test ERROR on staging/staging-testing] url: https://github.com/intel-lab-lkp/linux/commits/Abhishek-Tamboli/staging-octeon-Use-new-initialization-api-for-tasklet/20240913-012448 base: staging/staging-testing patch link: https://lore.kernel.org/r/20240912172231.369566-1-abhishektamboli9%40gmail.com patch subject: [PATCH] staging: octeon: Use new initialization api for tasklet config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20240913/202409132123.Kfncs3AN-lkp@intel.com/config) compiler: m68k-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240913/202409132123.Kfncs3AN-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202409132123.Kfncs3AN-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from include/linux/kernel_stat.h:8, from include/linux/cgroup.h:25, from include/net/netprio_cgroup.h:11, from include/linux/netdevice.h:42, from drivers/staging/octeon/ethernet-tx.c:10: >> drivers/staging/octeon/ethernet-tx.c:44:52: error: initialization of 'void (*)(struct tasklet_struct *)' from incompatible pointer type 'void (*)(struct tasklet_struct)' [-Wincompatible-pointer-types] 44 | static DECLARE_TASKLET(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup); | ^~~~~~~~~~~~~~~~~~~~~ include/linux/interrupt.h:665:21: note: in definition of macro 'DECLARE_TASKLET' 665 | .callback = _callback, \ | ^~~~~~~~~ drivers/staging/octeon/ethernet-tx.c:44:52: note: (near initialization for 'cvm_oct_tx_cleanup_tasklet.<anonymous>.callback') 44 | static DECLARE_TASKLET(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup); | ^~~~~~~~~~~~~~~~~~~~~ include/linux/interrupt.h:665:21: note: in definition of macro 'DECLARE_TASKLET' 665 | .callback = _callback, \ | ^~~~~~~~~ vim +44 drivers/staging/octeon/ethernet-tx.c > 10 #include <linux/netdevice.h> 11 #include <linux/etherdevice.h> 12 #include <linux/ip.h> 13 #include <linux/ratelimit.h> 14 #include <linux/string.h> 15 #include <linux/interrupt.h> 16 #include <net/dst.h> 17 #ifdef CONFIG_XFRM 18 #include <linux/xfrm.h> 19 #include <net/xfrm.h> 20 #endif /* CONFIG_XFRM */ 21 22 #include <linux/atomic.h> 23 #include <net/sch_generic.h> 24 25 #include "octeon-ethernet.h" 26 #include "ethernet-defines.h" 27 #include "ethernet-tx.h" 28 #include "ethernet-util.h" 29 30 #define CVM_OCT_SKB_CB(skb) ((u64 *)((skb)->cb)) 31 32 /* 33 * You can define GET_SKBUFF_QOS() to override how the skbuff output 34 * function determines which output queue is used. The default 35 * implementation always uses the base queue for the port. If, for 36 * example, you wanted to use the skb->priority field, define 37 * GET_SKBUFF_QOS as: #define GET_SKBUFF_QOS(skb) ((skb)->priority) 38 */ 39 #ifndef GET_SKBUFF_QOS 40 #define GET_SKBUFF_QOS(skb) 0 41 #endif 42 43 static void cvm_oct_tx_do_cleanup(struct tasklet_struct clean); > 44 static DECLARE_TASKLET(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup); 45 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
Hi Abhishek, On 12 Sep 24 22:52, Abhishek Tamboli wrote: > Use the new api DECLARE_TASKLET instead of DECLARE_TASKLET_OLD > introduced in commit 12cc923f1ccc ("tasklet: Introduce new > initialization API"). > > Signed-off-by: Abhishek Tamboli <abhishektamboli9@gmail.com> > --- > drivers/staging/octeon/ethernet-tx.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/staging/octeon/ethernet-tx.c b/drivers/staging/octeon/ethernet-tx.c > index bbf33b88bb7c..ae1bac99b461 100644 > --- a/drivers/staging/octeon/ethernet-tx.c > +++ b/drivers/staging/octeon/ethernet-tx.c > @@ -40,8 +40,8 @@ > #define GET_SKBUFF_QOS(skb) 0 > #endif > > -static void cvm_oct_tx_do_cleanup(unsigned long arg); > -static DECLARE_TASKLET_OLD(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup); > +static void cvm_oct_tx_do_cleanup(struct tasklet_struct clean); > +static DECLARE_TASKLET(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup); This fails to compile for me: In file included from ./include/linux/kernel_stat.h:8, from ./include/linux/cgroup.h:25, from ./include/net/netprio_cgroup.h:11, from ./include/linux/netdevice.h:42, from drivers/staging/octeon/ethernet-tx.c:10: drivers/staging/octeon/ethernet-tx.c:44:52: error: initialization of ‘void (*)(struct tasklet_struct *)’ from incompatible pointer type ‘void (*)(struct tasklet_struct)’ [-Wincompatible-pointer-types] 44 | static DECLARE_TASKLET(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup); | ^~~~~~~~~~~~~~~~~~~~~ ./include/linux/interrupt.h:665:21: note: in definition of macro ‘DECLARE_TASKLET’ 665 | .callback = _callback, \ | ^~~~~~~~~ drivers/staging/octeon/ethernet-tx.c:44:52: note: (near initialization for ‘cvm_oct_tx_cleanup_tasklet.<anonymous>.callback’) 44 | static DECLARE_TASKLET(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup); | ^~~~~~~~~~~~~~~~~~~~~ ./include/linux/interrupt.h:665:21: note: in definition of macro ‘DECLARE_TASKLET’ 665 | .callback = _callback, \ | ^~~~~~~~~ CC mm/memfd.o CC fs/proc/fd.o CC fs/jbd2/transaction.o CC drivers/firmware/efi/libstub/gop.o make[5]: *** [scripts/Makefile.build:244: drivers/staging/octeon/ethernet-tx.o] Error 1 make[4]: *** [scripts/Makefile.build:485: drivers/staging/octeon] Error 2 make[3]: *** [scripts/Makefile.build:485: drivers/staging] Error 2 > > /* Maximum number of SKBs to try to free per xmit packet. */ > #define MAX_SKB_TO_FREE (MAX_OUT_QUEUE_DEPTH * 2) > @@ -670,7 +670,7 @@ void cvm_oct_tx_shutdown_dev(struct net_device *dev) > } > } > > -static void cvm_oct_tx_do_cleanup(unsigned long arg) > +static void cvm_oct_tx_do_cleanup(struct tasklet_struct clean) > { > int port; > > -- > 2.34.1 >
Hi Ricardo, > > This fails to compile for me: > > In file included from ./include/linux/kernel_stat.h:8, > from ./include/linux/cgroup.h:25, > from ./include/net/netprio_cgroup.h:11, > from ./include/linux/netdevice.h:42, > from drivers/staging/octeon/ethernet-tx.c:10: > drivers/staging/octeon/ethernet-tx.c:44:52: error: initialization of ‘void (*)(struct tasklet_struct *)’ from incompatible pointer type ‘void (*)(struct tasklet_struct)’ [-Wincompatible-pointer-types] > 44 | static DECLARE_TASKLET(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup); > | ^~~~~~~~~~~~~~~~~~~~~ > ./include/linux/interrupt.h:665:21: note: in definition of macro ‘DECLARE_TASKLET’ > 665 | .callback = _callback, \ > | ^~~~~~~~~ > drivers/staging/octeon/ethernet-tx.c:44:52: note: (near initialization for ‘cvm_oct_tx_cleanup_tasklet.<anonymous>.callback’) > 44 | static DECLARE_TASKLET(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup); > | ^~~~~~~~~~~~~~~~~~~~~ > ./include/linux/interrupt.h:665:21: note: in definition of macro ‘DECLARE_TASKLET’ > 665 | .callback = _callback, \ > | ^~~~~~~~~ > CC mm/memfd.o > CC fs/proc/fd.o > CC fs/jbd2/transaction.o > CC drivers/firmware/efi/libstub/gop.o > make[5]: *** [scripts/Makefile.build:244: drivers/staging/octeon/ethernet-tx.o] Error 1 > make[4]: *** [scripts/Makefile.build:485: drivers/staging/octeon] Error 2 > make[3]: *** [scripts/Makefile.build:485: drivers/staging] Error 2 Thank you for pointing out the issue. I’ll be more cautious to avoid such issues in the future and will resubmit the patch. Regards, Abhishek
© 2016 - 2024 Red Hat, Inc.