Re: [PATCH v2 10/20] linux/container_of.h: Remove unnecessary cast

From: kernel test robot
Date: Sat Nov 20 2021 - 14:17:23 EST


Hi Alejandro,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on robh/for-next]
[also build test WARNING on linux/master linus/master v5.16-rc1 next-20211118]
[cannot apply to drm-intel/for-linux-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Alejandro-Colomar/linux-stddef-h-linux-offsetof-h-Split-offsetof-into-a-separate-header/20211120-220144
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: csky-randconfig-s031-20211118 (attached as .config)
compiler: csky-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://github.com/0day-ci/linux/commit/ed03be33a3de1708b5a06ea31cc6cd8573890649
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Alejandro-Colomar/linux-stddef-h-linux-offsetof-h-Split-offsetof-into-a-separate-header/20211120-220144
git checkout ed03be33a3de1708b5a06ea31cc6cd8573890649
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=csky

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)
drivers/char/ipmi/ipmi_msghandler.c:200:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/char/ipmi/ipmi_msghandler.c:200:17: sparse: struct ipmi_user [noderef] __rcu *
drivers/char/ipmi/ipmi_msghandler.c:200:17: sparse: struct ipmi_user *
drivers/char/ipmi/ipmi_msghandler.c:1251:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/char/ipmi/ipmi_msghandler.c:1251:9: sparse: struct ipmi_user [noderef] __rcu *
drivers/char/ipmi/ipmi_msghandler.c:1251:9: sparse: struct ipmi_user *
drivers/char/ipmi/ipmi_msghandler.c:1320:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/char/ipmi/ipmi_msghandler.c:1320:9: sparse: struct ipmi_user [noderef] __rcu *
drivers/char/ipmi/ipmi_msghandler.c:1320:9: sparse: struct ipmi_user *
>> drivers/char/ipmi/ipmi_msghandler.c:3701:25: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const *__mptr @@ got struct list_head [noderef] __rcu * @@
drivers/char/ipmi/ipmi_msghandler.c:203:9: sparse: sparse: context imbalance in 'acquire_ipmi_user' - different lock contexts for basic block
drivers/char/ipmi/ipmi_msghandler.c: note: in included file (through include/linux/notifier.h, include/linux/memory_hotplug.h, include/linux/mmzone.h, ...):
include/linux/srcu.h:188:9: sparse: sparse: context imbalance in 'release_ipmi_user' - unexpected unlock
drivers/char/ipmi/ipmi_msghandler.c:942:9: sparse: sparse: context imbalance in 'deliver_response' - different lock contexts for basic block
drivers/char/ipmi/ipmi_msghandler.c:1303:13: sparse: sparse: context imbalance in '_ipmi_destroy_user' - wrong count at exit
drivers/char/ipmi/ipmi_msghandler.c:1385:5: sparse: sparse: context imbalance in 'ipmi_get_version' - wrong count at exit
drivers/char/ipmi/ipmi_msghandler.c:1407:5: sparse: sparse: context imbalance in 'ipmi_set_my_address' - wrong count at exit
drivers/char/ipmi/ipmi_msghandler.c:1429:5: sparse: sparse: context imbalance in 'ipmi_get_my_address' - wrong count at exit
drivers/char/ipmi/ipmi_msghandler.c:1451:5: sparse: sparse: context imbalance in 'ipmi_set_my_LUN' - wrong count at exit
drivers/char/ipmi/ipmi_msghandler.c:1473:5: sparse: sparse: context imbalance in 'ipmi_get_my_LUN' - wrong count at exit
drivers/char/ipmi/ipmi_msghandler.c:1495:5: sparse: sparse: context imbalance in 'ipmi_get_maintenance_mode' - wrong count at exit
drivers/char/ipmi/ipmi_msghandler.c:1520:5: sparse: sparse: context imbalance in 'ipmi_set_maintenance_mode' - wrong count at exit
drivers/char/ipmi/ipmi_msghandler.c:1562:5: sparse: sparse: context imbalance in 'ipmi_set_gets_events' - wrong count at exit
drivers/char/ipmi/ipmi_msghandler.c:1659:5: sparse: sparse: context imbalance in 'ipmi_register_for_cmd' - wrong count at exit
drivers/char/ipmi/ipmi_msghandler.c:1704:5: sparse: sparse: context imbalance in 'ipmi_unregister_for_cmd' - wrong count at exit
drivers/char/ipmi/ipmi_msghandler.c:1869:39: sparse: sparse: context imbalance in 'smi_send' - unexpected unlock
drivers/char/ipmi/ipmi_msghandler.c:2372:5: sparse: sparse: context imbalance in 'ipmi_request_settime' - wrong count at exit
drivers/char/ipmi/ipmi_msghandler.c:2411:5: sparse: sparse: context imbalance in 'ipmi_request_supply_msgs' - wrong count at exit
drivers/char/ipmi/ipmi_msghandler.c:4687:39: sparse: sparse: context imbalance in 'handle_new_recv_msgs' - unexpected unlock
drivers/char/ipmi/ipmi_msghandler.c:4744:9: sparse: sparse: context imbalance in 'smi_recv_tasklet' - different lock contexts for basic block
drivers/char/ipmi/ipmi_msghandler.c:4779:39: sparse: sparse: context imbalance in 'ipmi_smi_msg_received' - unexpected unlock
drivers/char/ipmi/ipmi_msghandler.c:4875:39: sparse: sparse: context imbalance in 'check_msg_timeout' - unexpected unlock

vim +3701 drivers/char/ipmi/ipmi_msghandler.c

b2c03941b50944 Corey Minyard 2006-12-06 3674
6a0d23ed338ed7 Corey Minyard 2018-04-11 3675 void ipmi_unregister_smi(struct ipmi_smi *intf)
^1da177e4c3f41 Linus Torvalds 2005-04-16 3676 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3677 struct ipmi_smi_watcher *w;
e86ee2d44b4405 Corey Minyard 2018-04-05 3678 int intf_num = intf->intf_num, index;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3679
bca0324d09e413 Corey Minyard 2006-12-06 3680 mutex_lock(&ipmi_interfaces_mutex);
b2c03941b50944 Corey Minyard 2006-12-06 3681 intf->intf_num = -1;
7ea0ed2b5be817 Corey Minyard 2014-11-06 3682 intf->in_shutdown = true;
bca0324d09e413 Corey Minyard 2006-12-06 3683 list_del_rcu(&intf->link);
bca0324d09e413 Corey Minyard 2006-12-06 3684 mutex_unlock(&ipmi_interfaces_mutex);
e86ee2d44b4405 Corey Minyard 2018-04-05 3685 synchronize_srcu(&ipmi_interfaces_srcu);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3686
e86ee2d44b4405 Corey Minyard 2018-04-05 3687 /* At this point no users can be added to the interface. */
^1da177e4c3f41 Linus Torvalds 2005-04-16 3688
c70d749986f6f1 Corey Minyard 2008-04-29 3689 /*
c70d749986f6f1 Corey Minyard 2008-04-29 3690 * Call all the watcher interfaces to tell them that
e86ee2d44b4405 Corey Minyard 2018-04-05 3691 * an interface is going away.
c70d749986f6f1 Corey Minyard 2008-04-29 3692 */
e86ee2d44b4405 Corey Minyard 2018-04-05 3693 mutex_lock(&smi_watchers_mutex);
393d2cc354d150 Corey Minyard 2005-11-07 3694 list_for_each_entry(w, &smi_watchers, link)
b2c03941b50944 Corey Minyard 2006-12-06 3695 w->smi_gone(intf_num);
b2c03941b50944 Corey Minyard 2006-12-06 3696 mutex_unlock(&smi_watchers_mutex);
393d2cc354d150 Corey Minyard 2005-11-07 3697
e86ee2d44b4405 Corey Minyard 2018-04-05 3698 index = srcu_read_lock(&intf->users_srcu);
e86ee2d44b4405 Corey Minyard 2018-04-05 3699 while (!list_empty(&intf->users)) {
e86ee2d44b4405 Corey Minyard 2018-04-05 3700 struct ipmi_user *user =
e86ee2d44b4405 Corey Minyard 2018-04-05 @3701 container_of(list_next_rcu(&intf->users),
e86ee2d44b4405 Corey Minyard 2018-04-05 3702 struct ipmi_user, link);
e86ee2d44b4405 Corey Minyard 2018-04-05 3703
e86ee2d44b4405 Corey Minyard 2018-04-05 3704 _ipmi_destroy_user(user);
e86ee2d44b4405 Corey Minyard 2018-04-05 3705 }
e86ee2d44b4405 Corey Minyard 2018-04-05 3706 srcu_read_unlock(&intf->users_srcu, index);
e86ee2d44b4405 Corey Minyard 2018-04-05 3707
2512e40e48d21d Corey Minyard 2018-08-22 3708 if (intf->handlers->shutdown)
e86ee2d44b4405 Corey Minyard 2018-04-05 3709 intf->handlers->shutdown(intf->send_info);
e86ee2d44b4405 Corey Minyard 2018-04-05 3710
e86ee2d44b4405 Corey Minyard 2018-04-05 3711 cleanup_smi_msgs(intf);
e86ee2d44b4405 Corey Minyard 2018-04-05 3712
e86ee2d44b4405 Corey Minyard 2018-04-05 3713 ipmi_bmc_unregister(intf);
e86ee2d44b4405 Corey Minyard 2018-04-05 3714
e86ee2d44b4405 Corey Minyard 2018-04-05 3715 cleanup_srcu_struct(&intf->users_srcu);
393d2cc354d150 Corey Minyard 2005-11-07 3716 kref_put(&intf->refcount, intf_free);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3717 }
c70d749986f6f1 Corey Minyard 2008-04-29 3718 EXPORT_SYMBOL(ipmi_unregister_smi);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3719

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip