* [linux-next:master 2547/2825] mm/mempolicy.c:3131:17: sparse: sparse: incorrect type in argument 1 (different address spaces)
@ 2024-01-30 0:31 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2024-01-30 0:31 UTC (permalink / raw)
To: Rakie Kim
Cc: oe-kbuild-all, Linux Memory Management List, Andrew Morton,
Honggyu Kim, Gregory Price, Hyeongtak Ji
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 596764183be8ebb13352b281a442a1f1151c9b06
commit: 25506bd0b31e4e9d89dc293aba8f4c6e2110dccf [2547/2825] mm/mempolicy: implement the sysfs-based weighted_interleave interface
config: loongarch-randconfig-r113-20240129 (https://download.01.org/0day-ci/archive/20240130/202401300823.Ozj10LjA-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20240130/202401300823.Ozj10LjA-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/202401300823.Ozj10LjA-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
mm/mempolicy.c:3094:15: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *table @@ got unsigned char * @@
mm/mempolicy.c:3094:15: sparse: expected unsigned char [noderef] [usertype] __rcu *table
mm/mempolicy.c:3094:15: sparse: got unsigned char *
mm/mempolicy.c:3123:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *new @@ got void * @@
mm/mempolicy.c:3123:13: sparse: expected unsigned char [noderef] [usertype] __rcu *new
mm/mempolicy.c:3123:13: sparse: got void *
mm/mempolicy.c:3128:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *old @@ got unsigned char * @@
mm/mempolicy.c:3128:13: sparse: expected unsigned char [noderef] [usertype] __rcu *old
mm/mempolicy.c:3128:13: sparse: got unsigned char *
>> mm/mempolicy.c:3131:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *__to @@ got unsigned char [noderef] [usertype] __rcu *new @@
mm/mempolicy.c:3131:17: sparse: expected void *__to
mm/mempolicy.c:3131:17: sparse: got unsigned char [noderef] [usertype] __rcu *new
>> mm/mempolicy.c:3131:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *__from @@ got unsigned char [noderef] [usertype] __rcu *old @@
mm/mempolicy.c:3131:17: sparse: expected void const *__from
mm/mempolicy.c:3131:17: sparse: got unsigned char [noderef] [usertype] __rcu *old
>> mm/mempolicy.c:3133:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *__s @@ got unsigned char [noderef] [usertype] __rcu *new @@
mm/mempolicy.c:3133:17: sparse: expected void *__s
mm/mempolicy.c:3133:17: sparse: got unsigned char [noderef] [usertype] __rcu *new
mm/mempolicy.c:3138:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *objp @@ got unsigned char [noderef] [usertype] __rcu *old @@
mm/mempolicy.c:3138:15: sparse: expected void const *objp
mm/mempolicy.c:3138:15: sparse: got unsigned char [noderef] [usertype] __rcu *old
mm/mempolicy.c:3234:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *old @@ got unsigned char * @@
mm/mempolicy.c:3234:13: sparse: expected unsigned char [noderef] [usertype] __rcu *old
mm/mempolicy.c:3234:13: sparse: got unsigned char *
mm/mempolicy.c:3239:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *objp @@ got unsigned char [noderef] [usertype] __rcu *old @@
mm/mempolicy.c:3239:15: sparse: expected void const *objp
mm/mempolicy.c:3239:15: sparse: got unsigned char [noderef] [usertype] __rcu *old
mm/mempolicy.c: note: in included file (through include/linux/rbtree.h, include/linux/mm_types.h, include/linux/mmzone.h, ...):
include/linux/rcupdate.h:781:9: sparse: sparse: context imbalance in 'queue_folios_pte_range' - unexpected unlock
mm/mempolicy.c:3095:31: sparse: sparse: dereference of noderef expression
mm/mempolicy.c:3134:12: sparse: sparse: dereference of noderef expression
vim +3131 mm/mempolicy.c
3100
3101 static ssize_t node_store(struct kobject *kobj, struct kobj_attribute *attr,
3102 const char *buf, size_t count)
3103 {
3104 struct iw_node_attr *node_attr;
3105 u8 __rcu *new;
3106 u8 __rcu *old;
3107 u8 weight = 0;
3108
3109 node_attr = container_of(attr, struct iw_node_attr, kobj_attr);
3110 if (count == 0 || sysfs_streq(buf, ""))
3111 weight = 0;
3112 else if (kstrtou8(buf, 0, &weight))
3113 return -EINVAL;
3114
3115 /*
3116 * The default weight is 1, for now. When the kernel-internal
3117 * default weight array is implemented, 0 will be a directive to
3118 * the allocators to use the system-default weight instead.
3119 */
3120 if (!weight)
3121 weight = 1;
3122
3123 new = kmalloc(nr_node_ids, GFP_KERNEL);
3124 if (!new)
3125 return -ENOMEM;
3126
3127 mutex_lock(&iw_table_lock);
3128 old = rcu_dereference_protected(iw_table,
3129 lockdep_is_held(&iw_table_lock));
3130 if (old)
> 3131 memcpy(new, old, nr_node_ids);
3132 else
> 3133 memset(new, 1, nr_node_ids);
3134 new[node_attr->nid] = weight;
3135 rcu_assign_pointer(iw_table, new);
3136 mutex_unlock(&iw_table_lock);
3137 synchronize_rcu();
3138 kfree(old);
3139 return count;
3140 }
3141
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* [linux-next:master 2547/2825] mm/mempolicy.c:3131:17: sparse: sparse: incorrect type in argument 1 (different address spaces)
@ 2024-01-30 12:51 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2024-01-30 12:51 UTC (permalink / raw)
To: Rakie Kim
Cc: oe-kbuild-all, Linux Memory Management List, Andrew Morton,
Honggyu Kim, Gregory Price, Hyeongtak Ji
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 41d66f96d0f15a0a2ad6fa2208f6bac1a66cbd52
commit: 25506bd0b31e4e9d89dc293aba8f4c6e2110dccf [2547/2825] mm/mempolicy: implement the sysfs-based weighted_interleave interface
config: loongarch-randconfig-r113-20240129 (https://download.01.org/0day-ci/archive/20240130/202401302054.sXdwijhd-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20240130/202401302054.sXdwijhd-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/202401302054.sXdwijhd-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
mm/mempolicy.c:3094:15: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *table @@ got unsigned char * @@
mm/mempolicy.c:3094:15: sparse: expected unsigned char [noderef] [usertype] __rcu *table
mm/mempolicy.c:3094:15: sparse: got unsigned char *
mm/mempolicy.c:3123:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *new @@ got void * @@
mm/mempolicy.c:3123:13: sparse: expected unsigned char [noderef] [usertype] __rcu *new
mm/mempolicy.c:3123:13: sparse: got void *
mm/mempolicy.c:3128:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *old @@ got unsigned char * @@
mm/mempolicy.c:3128:13: sparse: expected unsigned char [noderef] [usertype] __rcu *old
mm/mempolicy.c:3128:13: sparse: got unsigned char *
>> mm/mempolicy.c:3131:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *__to @@ got unsigned char [noderef] [usertype] __rcu *new @@
mm/mempolicy.c:3131:17: sparse: expected void *__to
mm/mempolicy.c:3131:17: sparse: got unsigned char [noderef] [usertype] __rcu *new
>> mm/mempolicy.c:3131:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *__from @@ got unsigned char [noderef] [usertype] __rcu *old @@
mm/mempolicy.c:3131:17: sparse: expected void const *__from
mm/mempolicy.c:3131:17: sparse: got unsigned char [noderef] [usertype] __rcu *old
>> mm/mempolicy.c:3133:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *__s @@ got unsigned char [noderef] [usertype] __rcu *new @@
mm/mempolicy.c:3133:17: sparse: expected void *__s
mm/mempolicy.c:3133:17: sparse: got unsigned char [noderef] [usertype] __rcu *new
mm/mempolicy.c:3138:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *objp @@ got unsigned char [noderef] [usertype] __rcu *old @@
mm/mempolicy.c:3138:15: sparse: expected void const *objp
mm/mempolicy.c:3138:15: sparse: got unsigned char [noderef] [usertype] __rcu *old
mm/mempolicy.c:3234:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __rcu *old @@ got unsigned char * @@
mm/mempolicy.c:3234:13: sparse: expected unsigned char [noderef] [usertype] __rcu *old
mm/mempolicy.c:3234:13: sparse: got unsigned char *
mm/mempolicy.c:3239:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *objp @@ got unsigned char [noderef] [usertype] __rcu *old @@
mm/mempolicy.c:3239:15: sparse: expected void const *objp
mm/mempolicy.c:3239:15: sparse: got unsigned char [noderef] [usertype] __rcu *old
mm/mempolicy.c: note: in included file (through include/linux/rbtree.h, include/linux/mm_types.h, include/linux/mmzone.h, ...):
include/linux/rcupdate.h:781:9: sparse: sparse: context imbalance in 'queue_folios_pte_range' - unexpected unlock
mm/mempolicy.c:3095:31: sparse: sparse: dereference of noderef expression
mm/mempolicy.c:3134:12: sparse: sparse: dereference of noderef expression
vim +3131 mm/mempolicy.c
3100
3101 static ssize_t node_store(struct kobject *kobj, struct kobj_attribute *attr,
3102 const char *buf, size_t count)
3103 {
3104 struct iw_node_attr *node_attr;
3105 u8 __rcu *new;
3106 u8 __rcu *old;
3107 u8 weight = 0;
3108
3109 node_attr = container_of(attr, struct iw_node_attr, kobj_attr);
3110 if (count == 0 || sysfs_streq(buf, ""))
3111 weight = 0;
3112 else if (kstrtou8(buf, 0, &weight))
3113 return -EINVAL;
3114
3115 /*
3116 * The default weight is 1, for now. When the kernel-internal
3117 * default weight array is implemented, 0 will be a directive to
3118 * the allocators to use the system-default weight instead.
3119 */
3120 if (!weight)
3121 weight = 1;
3122
3123 new = kmalloc(nr_node_ids, GFP_KERNEL);
3124 if (!new)
3125 return -ENOMEM;
3126
3127 mutex_lock(&iw_table_lock);
3128 old = rcu_dereference_protected(iw_table,
3129 lockdep_is_held(&iw_table_lock));
3130 if (old)
> 3131 memcpy(new, old, nr_node_ids);
3132 else
> 3133 memset(new, 1, nr_node_ids);
3134 new[node_attr->nid] = weight;
3135 rcu_assign_pointer(iw_table, new);
3136 mutex_unlock(&iw_table_lock);
3137 synchronize_rcu();
3138 kfree(old);
3139 return count;
3140 }
3141
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-01-30 12:53 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-30 0:31 [linux-next:master 2547/2825] mm/mempolicy.c:3131:17: sparse: sparse: incorrect type in argument 1 (different address spaces) kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2024-01-30 12:51 kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).