Message ID | 20201011092408.1766-1-socketcan@hartkopp.net |
---|---|
State | New |
Headers | show |
Series | [net-next,v2,1/2] can-isotp: implement cleanups / improvements from review | expand |
On Sun, 11 Oct 2020 11:24:07 +0200 Oliver Hartkopp wrote: > diff --git a/net/can/isotp.c b/net/can/isotp.c > index e6ff032b5426..22187669c5c9 100644 > --- a/net/can/isotp.c > +++ b/net/can/isotp.c > @@ -79,6 +79,8 @@ MODULE_LICENSE("Dual BSD/GPL"); > MODULE_AUTHOR("Oliver Hartkopp <socketcan@hartkopp.net>"); > MODULE_ALIAS("can-proto-6"); > > +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt You need to move this before the includes: net/can/isotp.c:82: warning: "pr_fmt" redefined 82 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | In file included from ../include/linux/kernel.h:15, from ../include/linux/list.h:9, from ../include/linux/module.h:12, from ../net/can/isotp.c:56: include/linux/printk.h:297: note: this is the location of the previous definition 297 | #define pr_fmt(fmt) fmt | net/can/isotp.c:82:9: warning: preprocessor token pr_fmt redefined net/can/isotp.c: note: in included file (through ../include/linux/kernel.h, ../include/linux/list.h, ../include/linux/module.h): include/linux/printk.h:297:9: this was the original definition
On Sun, 11 Oct 2020 11:24:07 +0200 Oliver Hartkopp wrote: > @@ -769,7 +771,7 @@ static enum hrtimer_restart isotp_tx_timer_handler(struct hrtimer *hrtimer) > > isotp_tx_burst: > skb = alloc_skb(so->ll.mtu + sizeof(struct can_skb_priv), > - gfp_any()); > + GFP_KERNEL); hrtimer will need GFP_ATOMIC
Hi Oliver, I love your patch! Perhaps something to improve: [auto build test WARNING on net-next/master] url: https://github.com/0day-ci/linux/commits/Oliver-Hartkopp/can-isotp-implement-cleanups-improvements-from-review/20201012-000055 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git df41c19abbeaae6e24c8e31cff5fdb48632be380 config: xtensa-allyesconfig (attached as .config) compiler: xtensa-linux-gcc (GCC) 9.3.0 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 # https://github.com/0day-ci/linux/commit/693c9b4e8c5710e7b536ec9d6a969a7d7343a100 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Oliver-Hartkopp/can-isotp-implement-cleanups-improvements-from-review/20201012-000055 git checkout 693c9b4e8c5710e7b536ec9d6a969a7d7343a100 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=xtensa If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> net/can/isotp.c:82: warning: "pr_fmt" redefined 82 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | In file included from include/linux/kernel.h:15, from include/linux/list.h:9, from include/linux/module.h:12, from net/can/isotp.c:56: include/linux/printk.h:297: note: this is the location of the previous definition 297 | #define pr_fmt(fmt) fmt | vim +/pr_fmt +82 net/can/isotp.c 81 > 82 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 83 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
On 11.10.20 17:44, Jakub Kicinski wrote: > On Sun, 11 Oct 2020 11:24:07 +0200 Oliver Hartkopp wrote: >> diff --git a/net/can/isotp.c b/net/can/isotp.c >> index e6ff032b5426..22187669c5c9 100644 >> --- a/net/can/isotp.c >> +++ b/net/can/isotp.c >> @@ -79,6 +79,8 @@ MODULE_LICENSE("Dual BSD/GPL"); >> MODULE_AUTHOR("Oliver Hartkopp <socketcan@hartkopp.net>"); >> MODULE_ALIAS("can-proto-6"); >> >> +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt > > You need to move this before the includes: > > net/can/isotp.c:82: warning: "pr_fmt" redefined > 82 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt > | > In file included from ../include/linux/kernel.h:15, > from ../include/linux/list.h:9, > from ../include/linux/module.h:12, > from ../net/can/isotp.c:56: > include/linux/printk.h:297: note: this is the location of the previous definition > 297 | #define pr_fmt(fmt) fmt > | > net/can/isotp.c:82:9: warning: preprocessor token pr_fmt redefined > net/can/isotp.c: note: in included file (through ../include/linux/kernel.h, ../include/linux/list.h, ../include/linux/module.h): > include/linux/printk.h:297:9: this was the original definition > Hm - don't know why my build process didn't complain about it. Or why I possibly overlooked it. I'll do the cosmetic pr_fmt() improvements for the entire CAN network layer stuff later as it is not relevant for this net-next window. The v3 patch will fix the GFP_ATOMIC too. Thanks for your patience, Oliver
diff --git a/include/uapi/linux/can/isotp.h b/include/uapi/linux/can/isotp.h index 553006509f4e..7793b26aa154 100644 --- a/include/uapi/linux/can/isotp.h +++ b/include/uapi/linux/can/isotp.h @@ -160,7 +160,6 @@ struct can_isotp_ll_options { * these default settings can be changed via sockopts. * For that reason the STmin value is intentionally _not_ checked for * consistency and copied directly into the flow control (FC) frame. - * */ #endif /* !_UAPI_CAN_ISOTP_H */ diff --git a/net/can/Kconfig b/net/can/Kconfig index 021fe03a8ed6..224e5e0283a9 100644 --- a/net/can/Kconfig +++ b/net/can/Kconfig @@ -57,7 +57,6 @@ source "net/can/j1939/Kconfig" config CAN_ISOTP tristate "ISO 15765-2:2016 CAN transport protocol" - default y help CAN Transport Protocols offer support for segmented Point-to-Point communication between CAN nodes via two defined CAN Identifiers. @@ -67,6 +66,8 @@ config CAN_ISOTP vehicle diagnosis (UDS, ISO 14229) or IP-over-CAN traffic. This protocol driver implements data transfers according to ISO 15765-2:2016 for 'classic' CAN and CAN FD frame types. + If you want to perform automotive vehicle diagnostic services (UDS), + say 'y'. source "drivers/net/can/Kconfig" diff --git a/net/can/isotp.c b/net/can/isotp.c index e6ff032b5426..22187669c5c9 100644 --- a/net/can/isotp.c +++ b/net/can/isotp.c @@ -79,6 +79,8 @@ MODULE_LICENSE("Dual BSD/GPL"); MODULE_AUTHOR("Oliver Hartkopp <socketcan@hartkopp.net>"); MODULE_ALIAS("can-proto-6"); +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + #define SINGLE_MASK(id) (((id) & CAN_EFF_FLAG) ? \ (CAN_EFF_MASK | CAN_EFF_FLAG | CAN_RTR_FLAG) : \ (CAN_SFF_MASK | CAN_EFF_FLAG | CAN_RTR_FLAG)) @@ -222,8 +224,8 @@ static int isotp_send_fc(struct sock *sk, int ae, u8 flowstatus) can_send_ret = can_send(nskb, 1); if (can_send_ret) - printk_once(KERN_NOTICE "can-isotp: %s: can_send_ret %d\n", - __func__, can_send_ret); + pr_notice_once("%s: can_send_ret %d\n", + __func__, can_send_ret); dev_put(dev); @@ -769,7 +771,7 @@ static enum hrtimer_restart isotp_tx_timer_handler(struct hrtimer *hrtimer) isotp_tx_burst: skb = alloc_skb(so->ll.mtu + sizeof(struct can_skb_priv), - gfp_any()); + GFP_KERNEL); if (!skb) { dev_put(dev); break; @@ -798,8 +800,8 @@ static enum hrtimer_restart isotp_tx_timer_handler(struct hrtimer *hrtimer) can_send_ret = can_send(skb, 1); if (can_send_ret) - printk_once(KERN_NOTICE "can-isotp: %s: can_send_ret %d\n", - __func__, can_send_ret); + pr_notice_once("%s: can_send_ret %d\n", + __func__, can_send_ret); if (so->tx.idx >= so->tx.len) { /* we are done */ @@ -942,8 +944,7 @@ static int isotp_sendmsg(struct socket *sock, struct msghdr *msg, size_t size) err = can_send(skb, 1); dev_put(dev); if (err) { - printk_once(KERN_NOTICE "can-isotp: %s: can_send_ret %d\n", - __func__, err); + pr_notice_once("%s: can_send_ret %d\n", __func__, err); return err; } @@ -1408,11 +1409,11 @@ static __init int isotp_module_init(void) { int err; - pr_info("can: isotp protocol (rev " CAN_ISOTP_VERSION ")\n"); + pr_info("isotp protocol (rev " CAN_ISOTP_VERSION ")\n"); err = can_proto_register(&isotp_can_proto); if (err < 0) - pr_err("can: registration of isotp protocol failed\n"); + pr_err("registration of isotp protocol failed\n"); return err; }
As pointed out by Jakub Kicinski here: http://lore.kernel.org/r/20201009175751.5c54097f@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com this patch addresses the remarked issues: - remove empty line in comment - remove default=y for CAN_ISOTP in Kconfig - make use of pr_notice_once() - use GFP_KERNEL instead of gfp_any() in soft hrtimer context - make use of pr_fmt() [suggested my Marc Kleine-Budde] The version strings in the CAN subsystem are removed by a separate patch. Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net> --- include/uapi/linux/can/isotp.h | 1 - net/can/Kconfig | 3 ++- net/can/isotp.c | 19 ++++++++++--------- 3 files changed, 12 insertions(+), 11 deletions(-)