Re: [PATCH net-next] net: mdio: access c22 registers via debugfs
by kernel test robot
Hi "Pavel,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on net-next/master]
url: https://github.com/0day-ci/linux/commits/Pavel-imerda/net-mdio-access-c22...
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 9ab7e76aefc97a9aa664accb59d6e8dc5e52514a
config: powerpc-adder875_defconfig (attached as .config)
compiler: powerpc-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/22d74f4896850840331d36d6867f7bc5c...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Pavel-imerda/net-mdio-access-c22-registers-via-debugfs/20210117-053409
git checkout 22d74f4896850840331d36d6867f7bc5ce728bbd
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/net/phy/mdio-debugfs.c:170:6: warning: no previous prototype for 'mdio_debugfs_add' [-Wmissing-prototypes]
170 | void mdio_debugfs_add(struct mii_bus *bus)
| ^~~~~~~~~~~~~~~~
>> drivers/net/phy/mdio-debugfs.c:177:6: warning: no previous prototype for 'mdio_debugfs_remove' [-Wmissing-prototypes]
177 | void mdio_debugfs_remove(struct mii_bus *bus)
| ^~~~~~~~~~~~~~~~~~~
>> drivers/net/phy/mdio-debugfs.c:184:12: warning: no previous prototype for 'mdio_debugfs_init' [-Wmissing-prototypes]
184 | int __init mdio_debugfs_init(void)
| ^~~~~~~~~~~~~~~~~
>> drivers/net/phy/mdio-debugfs.c:192:13: warning: no previous prototype for 'mdio_debugfs_exit' [-Wmissing-prototypes]
192 | void __exit mdio_debugfs_exit(void)
| ^~~~~~~~~~~~~~~~~
vim +/mdio_debugfs_add +170 drivers/net/phy/mdio-debugfs.c
169
> 170 void mdio_debugfs_add(struct mii_bus *bus)
171 {
172 bus->debugfs_dentry = debugfs_create_dir(dev_name(&bus->dev), mdio_debugfs_dentry);
173 debugfs_create_file("control", 0600, bus->debugfs_dentry, bus, &mdio_debug_fops);
174 }
175 EXPORT_SYMBOL_GPL(mdio_debugfs_add);
176
> 177 void mdio_debugfs_remove(struct mii_bus *bus)
178 {
179 debugfs_remove(bus->debugfs_dentry);
180 bus->debugfs_dentry = NULL;
181 }
182 EXPORT_SYMBOL_GPL(mdio_debugfs_remove);
183
> 184 int __init mdio_debugfs_init(void)
185 {
186 mdio_debugfs_dentry = debugfs_create_dir("mdio", NULL);
187
188 return PTR_ERR_OR_ZERO(mdio_debugfs_dentry);
189 }
190 module_init(mdio_debugfs_init);
191
> 192 void __exit mdio_debugfs_exit(void)
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 8 months
sound/soc/samsung/aries_wm8994.c:525:34: warning: unused variable 'samsung_wm8994_of_match'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1d94330a437a573cfdf848f6743b1ed169242c8a
commit: 84569f329f7fcb40b7b1860f273b2909dabf2a2b Merge remote-tracking branch 'asoc/for-5.9' into asoc-next
date: 6 months ago
config: arm-randconfig-r033-20210117 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project d7bc3b7ce23b664d6620cdc32370a8614523ca2f)
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...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 84569f329f7fcb40b7b1860f273b2909dabf2a2b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> sound/soc/samsung/aries_wm8994.c:525:34: warning: unused variable 'samsung_wm8994_of_match' [-Wunused-const-variable]
static const struct of_device_id samsung_wm8994_of_match[] = {
^
1 warning generated.
vim +/samsung_wm8994_of_match +525 sound/soc/samsung/aries_wm8994.c
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 524
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 @525 static const struct of_device_id samsung_wm8994_of_match[] = {
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 526 {
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 527 .compatible = "samsung,fascinate4g-wm8994",
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 528 .data = &fascinate4g_variant,
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 529 },
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 530 {
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 531 .compatible = "samsung,aries-wm8994",
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 532 .data = &aries_variant,
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 533 },
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 534 { /* sentinel */ },
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 535 };
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 536 MODULE_DEVICE_TABLE(of, samsung_wm8994_of_match);
7a3a7671fa6c7e90 Jonathan Bakker 2020-06-14 537
:::::: The code at line 525 was first introduced by commit
:::::: 7a3a7671fa6c7e90aff5f4242add2a40587b85ef ASoC: samsung: Add driver for Aries boards
:::::: TO: Jonathan Bakker <xc-racer2(a)live.ca>
:::::: CC: Mark Brown <broonie(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 8 months
drivers/net/ethernet/google/gve/gve_tx.c:507:25: warning: variable 'buf' set but not used
by kernel test robot
Hi Catherine,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1d94330a437a573cfdf848f6743b1ed169242c8a
commit: 6f007c6486d69967ac1d9e67df9ae9c77d49f1cc gve: Add support for raw addressing in the tx path
date: 6 weeks ago
config: i386-randconfig-r026-20210117 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 6f007c6486d69967ac1d9e67df9ae9c77d49f1cc
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/net/ethernet/google/gve/gve_tx.c: In function 'gve_tx_add_skb_no_copy':
>> drivers/net/ethernet/google/gve/gve_tx.c:507:25: warning: variable 'buf' set but not used [-Wunused-but-set-variable]
507 | struct gve_tx_dma_buf *buf;
| ^~~
vim +/buf +507 drivers/net/ethernet/google/gve/gve_tx.c
497
498 static int gve_tx_add_skb_no_copy(struct gve_priv *priv, struct gve_tx_ring *tx,
499 struct sk_buff *skb)
500 {
501 const struct skb_shared_info *shinfo = skb_shinfo(skb);
502 int hlen, payload_nfrags, l4_hdr_offset;
503 union gve_tx_desc *pkt_desc, *seg_desc;
504 struct gve_tx_buffer_state *info;
505 bool is_gso = skb_is_gso(skb);
506 u32 idx = tx->req & tx->mask;
> 507 struct gve_tx_dma_buf *buf;
508 u64 addr;
509 u32 len;
510 int i;
511
512 info = &tx->info[idx];
513 pkt_desc = &tx->desc[idx];
514
515 l4_hdr_offset = skb_checksum_start_offset(skb);
516 /* If the skb is gso, then we want only up to the tcp header in the first segment
517 * to efficiently replicate on each segment otherwise we want the linear portion
518 * of the skb (which will contain the checksum because skb->csum_start and
519 * skb->csum_offset are given relative to skb->head) in the first segment.
520 */
521 hlen = is_gso ? l4_hdr_offset + tcp_hdrlen(skb) : skb_headlen(skb);
522 len = skb_headlen(skb);
523
524 info->skb = skb;
525
526 addr = dma_map_single(tx->dev, skb->data, len, DMA_TO_DEVICE);
527 if (unlikely(dma_mapping_error(tx->dev, addr))) {
528 tx->dma_mapping_error++;
529 goto drop;
530 }
531 buf = &info->buf;
532 dma_unmap_len_set(buf, len, len);
533 dma_unmap_addr_set(buf, dma, addr);
534
535 payload_nfrags = shinfo->nr_frags;
536 if (hlen < len) {
537 /* For gso the rest of the linear portion of the skb needs to
538 * be in its own descriptor.
539 */
540 payload_nfrags++;
541 gve_tx_fill_pkt_desc(pkt_desc, skb, is_gso, l4_hdr_offset,
542 1 + payload_nfrags, hlen, addr);
543
544 len -= hlen;
545 addr += hlen;
546 idx = (tx->req + 1) & tx->mask;
547 seg_desc = &tx->desc[idx];
548 gve_tx_fill_seg_desc(seg_desc, skb, is_gso, len, addr);
549 } else {
550 gve_tx_fill_pkt_desc(pkt_desc, skb, is_gso, l4_hdr_offset,
551 1 + payload_nfrags, hlen, addr);
552 }
553
554 for (i = 0; i < shinfo->nr_frags; i++) {
555 const skb_frag_t *frag = &shinfo->frags[i];
556
557 idx = (idx + 1) & tx->mask;
558 seg_desc = &tx->desc[idx];
559 len = skb_frag_size(frag);
560 addr = skb_frag_dma_map(tx->dev, frag, 0, len, DMA_TO_DEVICE);
561 if (unlikely(dma_mapping_error(tx->dev, addr))) {
562 tx->dma_mapping_error++;
563 goto unmap_drop;
564 }
565 buf = &tx->info[idx].buf;
566 tx->info[idx].skb = NULL;
567 dma_unmap_len_set(buf, len, len);
568 dma_unmap_addr_set(buf, dma, addr);
569
570 gve_tx_fill_seg_desc(seg_desc, skb, is_gso, len, addr);
571 }
572
573 return 1 + payload_nfrags;
574
575 unmap_drop:
576 i += (payload_nfrags == shinfo->nr_frags ? 1 : 2);
577 while (i--) {
578 idx--;
579 gve_tx_unmap_buf(tx->dev, &tx->info[idx & tx->mask]);
580 }
581 drop:
582 tx->dropped_pkt++;
583 return 0;
584 }
585
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 8 months
[PATCH] media: i2c: fix odd_ptr_err.cocci warnings
by Julia Lawall
From: kernel test robot <lkp(a)intel.com>
PTR_ERR should access the value just tested by IS_ERR
Generated by: scripts/coccinelle/tests/odd_ptr_err.cocci
Fixes: 11c0d8fdccc5 ("media: i2c: Add support for the OV8865 image sensor")
CC: Paul Kocialkowski <paul.kocialkowski(a)bootlin.com>
Reported-by: kernel test robot <lkp(a)intel.com>
Signed-off-by: kernel test robot <lkp(a)intel.com>
Signed-off-by: Julia Lawall <julia.lawall(a)inria.fr>
---
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: b3a3cbdec55b090d22a09f75efb7c7d34cb97f25
commit: 11c0d8fdccc56fa15cb15906480b4737c31dd085 [2650/3956] media: i2c: Add support for the OV8865 image sensor
:::::: branch date: 2 days ago
:::::: commit date: 4 days ago
ov8865.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/media/i2c/ov8865.c
+++ b/drivers/media/i2c/ov8865.c
@@ -2849,7 +2849,7 @@ static int ov8865_probe(struct i2c_clien
sensor->avdd = devm_regulator_get(dev, "avdd");
if (IS_ERR(sensor->avdd)) {
dev_err(dev, "cannot get AVDD (analog) regulator\n");
- ret = PTR_ERR(sensor->dvdd);
+ ret = PTR_ERR(sensor->avdd);
goto error_endpoint;
}
1 year, 8 months
arch/sh/include/asm/mmu_context.h:151:9: sparse: sparse: incorrect type in argument 1 (different base types)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1d94330a437a573cfdf848f6743b1ed169242c8a
commit: e5fc436f06eef54ef512ea55a9db8eb9f2e76959 sparse: use static inline for __chk_{user,io}_ptr()
date: 5 months ago
config: sh-randconfig-s032-20210117 (attached as .config)
compiler: sh4-linux-gcc (GCC) 9.3.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.3-208-g46a52ca4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout e5fc436f06eef54ef512ea55a9db8eb9f2e76959
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=sh
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
"sparse warnings: (new ones prefixed by >>)"
arch/sh/kernel/setup.c: note: in included file:
>> arch/sh/include/asm/mmu_context.h:151:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/asm/mmu_context.h:151:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/asm/mmu_context.h:151:9: sparse: got unsigned int
--
arch/sh/kernel/traps_32.c:493:51: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got unsigned short [usertype] * @@
arch/sh/kernel/traps_32.c:493:51: sparse: expected void const [noderef] __user *from
arch/sh/kernel/traps_32.c:493:51: sparse: got unsigned short [usertype] *
>> arch/sh/kernel/traps_32.c:617:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned short const *__gu_addr @@
arch/sh/kernel/traps_32.c:617:9: sparse: expected void const volatile [noderef] __user *ptr
arch/sh/kernel/traps_32.c:617:9: sparse: got unsigned short const *__gu_addr
arch/sh/kernel/traps_32.c:702:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned short const *__gu_addr @@
arch/sh/kernel/traps_32.c:702:9: sparse: expected void const volatile [noderef] __user *ptr
arch/sh/kernel/traps_32.c:702:9: sparse: got unsigned short const *__gu_addr
arch/sh/kernel/traps_32.c:704:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned short const *__gu_addr @@
arch/sh/kernel/traps_32.c:704:17: sparse: expected void const volatile [noderef] __user *ptr
arch/sh/kernel/traps_32.c:704:17: sparse: got unsigned short const *__gu_addr
--
>> arch/sh/kernel/ftrace.c:50:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned char * @@
arch/sh/kernel/ftrace.c:50:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/ftrace.c:50:9: sparse: got unsigned char *
arch/sh/kernel/ftrace.c:57:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned char * @@
arch/sh/kernel/ftrace.c:57:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/ftrace.c:57:9: sparse: got unsigned char *
--
>> arch/sh/mm/cache-sh3.c:50:32: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr @@
arch/sh/mm/cache-sh3.c:50:32: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/mm/cache-sh3.c:50:32: sparse: got unsigned long [assigned] addr
arch/sh/mm/cache-sh3.c:55:33: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr @@
arch/sh/mm/cache-sh3.c:55:33: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/mm/cache-sh3.c:55:33: sparse: got unsigned long [assigned] addr
arch/sh/mm/cache-sh3.c:86:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr @@
arch/sh/mm/cache-sh3.c:86:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/mm/cache-sh3.c:86:17: sparse: got unsigned long [assigned] addr
--
>> arch/sh/kernel/cpu/sh3/probe.c:30:18: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr0 @@
arch/sh/kernel/cpu/sh3/probe.c:30:18: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/probe.c:30:18: sparse: got unsigned long [assigned] addr0
arch/sh/kernel/cpu/sh3/probe.c:31:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr0 @@
arch/sh/kernel/cpu/sh3/probe.c:31:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/probe.c:31:9: sparse: got unsigned long [assigned] addr0
>> arch/sh/kernel/cpu/sh3/probe.c:32:18: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr1 @@
arch/sh/kernel/cpu/sh3/probe.c:32:18: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/probe.c:32:18: sparse: got unsigned long [assigned] addr1
arch/sh/kernel/cpu/sh3/probe.c:33:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr1 @@
arch/sh/kernel/cpu/sh3/probe.c:33:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/probe.c:33:9: sparse: got unsigned long [assigned] addr1
arch/sh/kernel/cpu/sh3/probe.c:36:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr0 @@
arch/sh/kernel/cpu/sh3/probe.c:36:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/probe.c:36:17: sparse: got unsigned long [assigned] addr0
arch/sh/kernel/cpu/sh3/probe.c:38:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr0 @@
arch/sh/kernel/cpu/sh3/probe.c:38:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/probe.c:38:9: sparse: got unsigned long [assigned] addr0
arch/sh/kernel/cpu/sh3/probe.c:39:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr1 @@
arch/sh/kernel/cpu/sh3/probe.c:39:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/probe.c:39:17: sparse: got unsigned long [assigned] addr1
arch/sh/kernel/cpu/sh3/probe.c:41:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr1 @@
arch/sh/kernel/cpu/sh3/probe.c:41:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/probe.c:41:9: sparse: got unsigned long [assigned] addr1
arch/sh/kernel/cpu/sh3/probe.c:42:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr0 @@
arch/sh/kernel/cpu/sh3/probe.c:42:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/probe.c:42:17: sparse: got unsigned long [assigned] addr0
arch/sh/kernel/cpu/sh3/probe.c:45:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr0 @@
arch/sh/kernel/cpu/sh3/probe.c:45:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/probe.c:45:9: sparse: got unsigned long [assigned] addr0
arch/sh/kernel/cpu/sh3/probe.c:46:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long [assigned] addr1 @@
arch/sh/kernel/cpu/sh3/probe.c:46:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/probe.c:46:9: sparse: got unsigned long [assigned] addr1
--
>> arch/sh/kernel/cpu/sh3/setup-sh3.c:59:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long @@
arch/sh/kernel/cpu/sh3/setup-sh3.c:59:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/setup-sh3.c:59:17: sparse: got unsigned long
>> arch/sh/kernel/cpu/sh3/setup-sh3.c:59:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long @@
arch/sh/kernel/cpu/sh3/setup-sh3.c:59:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/setup-sh3.c:59:17: sparse: got unsigned long
--
>> arch/sh/kernel/cpu/sh3/clock-sh7710.c:26:31: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/kernel/cpu/sh3/clock-sh7710.c:26:31: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/clock-sh7710.c:26:31: sparse: got unsigned int
arch/sh/kernel/cpu/sh3/clock-sh7710.c:35:20: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/kernel/cpu/sh3/clock-sh7710.c:35:20: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/clock-sh7710.c:35:20: sparse: got unsigned int
arch/sh/kernel/cpu/sh3/clock-sh7710.c:45:20: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/kernel/cpu/sh3/clock-sh7710.c:45:20: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/clock-sh7710.c:45:20: sparse: got unsigned int
arch/sh/kernel/cpu/sh3/clock-sh7710.c:55:20: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/kernel/cpu/sh3/clock-sh7710.c:55:20: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/clock-sh7710.c:55:20: sparse: got unsigned int
--
>> arch/sh/kernel/cpu/sh3/serial-sh7710.c:13:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/kernel/cpu/sh3/serial-sh7710.c:13:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/serial-sh7710.c:13:17: sparse: got unsigned int
>> arch/sh/kernel/cpu/sh3/serial-sh7710.c:13:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/kernel/cpu/sh3/serial-sh7710.c:13:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/serial-sh7710.c:13:17: sparse: got unsigned int
arch/sh/kernel/cpu/sh3/serial-sh7710.c:14:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/kernel/cpu/sh3/serial-sh7710.c:14:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/serial-sh7710.c:14:17: sparse: got unsigned int
arch/sh/kernel/cpu/sh3/serial-sh7710.c:14:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/kernel/cpu/sh3/serial-sh7710.c:14:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/serial-sh7710.c:14:17: sparse: got unsigned int
arch/sh/kernel/cpu/sh3/serial-sh7710.c:16:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/kernel/cpu/sh3/serial-sh7710.c:16:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/serial-sh7710.c:16:17: sparse: got unsigned int
arch/sh/kernel/cpu/sh3/serial-sh7710.c:16:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/kernel/cpu/sh3/serial-sh7710.c:16:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/sh3/serial-sh7710.c:16:17: sparse: got unsigned int
--
>> arch/sh/kernel/cpu/irq/ipr.c:35:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long addr @@
arch/sh/kernel/cpu/irq/ipr.c:35:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/irq/ipr.c:35:9: sparse: got unsigned long addr
>> arch/sh/kernel/cpu/irq/ipr.c:35:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long addr @@
arch/sh/kernel/cpu/irq/ipr.c:35:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/irq/ipr.c:35:9: sparse: got unsigned long addr
arch/sh/kernel/cpu/irq/ipr.c:36:15: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long addr @@
arch/sh/kernel/cpu/irq/ipr.c:36:15: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/irq/ipr.c:36:15: sparse: got unsigned long addr
arch/sh/kernel/cpu/irq/ipr.c:44:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long addr @@
arch/sh/kernel/cpu/irq/ipr.c:44:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/irq/ipr.c:44:9: sparse: got unsigned long addr
arch/sh/kernel/cpu/irq/ipr.c:44:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned long addr @@
arch/sh/kernel/cpu/irq/ipr.c:44:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/kernel/cpu/irq/ipr.c:44:9: sparse: got unsigned long addr
--
arch/sh/math-emu/math.c: note: in included file:
include/math-emu/single.h:50:5: sparse: sparse: undefined preprocessor identifier '__LITTLE_ENDIAN'
arch/sh/math-emu/math.c: note: in included file:
include/math-emu/double.h:59:5: sparse: sparse: undefined preprocessor identifier '__LITTLE_ENDIAN'
arch/sh/math-emu/math.c:54:9: sparse: sparse: preprocessor token WRITE redefined
arch/sh/math-emu/math.c: note: in included file:
include/linux/kernel.h:41:9: sparse: this was the original definition
arch/sh/math-emu/math.c:55:9: sparse: sparse: preprocessor token READ redefined
include/linux/kernel.h:40:9: sparse: this was the original definition
arch/sh/math-emu/math.c:122:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:122:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:122:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:122:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:122:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:122:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:122:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:122:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:122:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:122:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:129:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:129:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:129:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:129:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:145:9: sparse: sparse: asm output is not an lvalue
arch/sh/math-emu/math.c:145:9: sparse: sparse: asm output is not an lvalue
>> arch/sh/math-emu/math.c:160:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long const *__gu_addr @@
arch/sh/math-emu/math.c:160:17: sparse: expected void const volatile [noderef] __user *ptr
arch/sh/math-emu/math.c:160:17: sparse: got unsigned long const *__gu_addr
arch/sh/math-emu/math.c:162:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long const *__gu_addr @@
arch/sh/math-emu/math.c:162:17: sparse: expected void const volatile [noderef] __user *ptr
arch/sh/math-emu/math.c:162:17: sparse: got unsigned long const *__gu_addr
arch/sh/math-emu/math.c:164:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long const *__gu_addr @@
arch/sh/math-emu/math.c:164:17: sparse: expected void const volatile [noderef] __user *ptr
arch/sh/math-emu/math.c:164:17: sparse: got unsigned long const *__gu_addr
arch/sh/math-emu/math.c:176:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long const *__gu_addr @@
arch/sh/math-emu/math.c:176:17: sparse: expected void const volatile [noderef] __user *ptr
arch/sh/math-emu/math.c:176:17: sparse: got unsigned long const *__gu_addr
arch/sh/math-emu/math.c:178:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long const *__gu_addr @@
arch/sh/math-emu/math.c:178:17: sparse: expected void const volatile [noderef] __user *ptr
arch/sh/math-emu/math.c:178:17: sparse: got unsigned long const *__gu_addr
arch/sh/math-emu/math.c:180:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long const *__gu_addr @@
arch/sh/math-emu/math.c:180:17: sparse: expected void const volatile [noderef] __user *ptr
arch/sh/math-emu/math.c:180:17: sparse: got unsigned long const *__gu_addr
arch/sh/math-emu/math.c:192:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long const *__gu_addr @@
arch/sh/math-emu/math.c:192:17: sparse: expected void const volatile [noderef] __user *ptr
arch/sh/math-emu/math.c:192:17: sparse: got unsigned long const *__gu_addr
arch/sh/math-emu/math.c:194:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long const *__gu_addr @@
arch/sh/math-emu/math.c:194:17: sparse: expected void const volatile [noderef] __user *ptr
arch/sh/math-emu/math.c:194:17: sparse: got unsigned long const *__gu_addr
arch/sh/math-emu/math.c:197:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long const *__gu_addr @@
arch/sh/math-emu/math.c:197:17: sparse: expected void const volatile [noderef] __user *ptr
arch/sh/math-emu/math.c:197:17: sparse: got unsigned long const *__gu_addr
arch/sh/math-emu/math.c:210:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long [noderef] __user *__pu_addr @@ got unsigned long * @@
arch/sh/math-emu/math.c:210:17: sparse: expected unsigned long [noderef] __user *__pu_addr
arch/sh/math-emu/math.c:210:17: sparse: got unsigned long *
arch/sh/math-emu/math.c:212:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long [noderef] __user *__pu_addr @@ got unsigned long * @@
arch/sh/math-emu/math.c:212:17: sparse: expected unsigned long [noderef] __user *__pu_addr
arch/sh/math-emu/math.c:212:17: sparse: got unsigned long *
arch/sh/math-emu/math.c:214:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long [noderef] __user *__pu_addr @@ got unsigned long * @@
arch/sh/math-emu/math.c:214:17: sparse: expected unsigned long [noderef] __user *__pu_addr
arch/sh/math-emu/math.c:214:17: sparse: got unsigned long *
arch/sh/math-emu/math.c:226:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long [noderef] __user *__pu_addr @@ got unsigned long * @@
arch/sh/math-emu/math.c:226:17: sparse: expected unsigned long [noderef] __user *__pu_addr
arch/sh/math-emu/math.c:226:17: sparse: got unsigned long *
arch/sh/math-emu/math.c:228:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long [noderef] __user *__pu_addr @@ got unsigned long * @@
arch/sh/math-emu/math.c:228:17: sparse: expected unsigned long [noderef] __user *__pu_addr
arch/sh/math-emu/math.c:228:17: sparse: got unsigned long *
arch/sh/math-emu/math.c:230:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long [noderef] __user *__pu_addr @@ got unsigned long * @@
arch/sh/math-emu/math.c:230:17: sparse: expected unsigned long [noderef] __user *__pu_addr
arch/sh/math-emu/math.c:230:17: sparse: got unsigned long *
arch/sh/math-emu/math.c:243:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long [noderef] __user *__pu_addr @@ got unsigned long * @@
arch/sh/math-emu/math.c:243:17: sparse: expected unsigned long [noderef] __user *__pu_addr
arch/sh/math-emu/math.c:243:17: sparse: got unsigned long *
arch/sh/math-emu/math.c:245:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long [noderef] __user *__pu_addr @@ got unsigned long * @@
arch/sh/math-emu/math.c:245:17: sparse: expected unsigned long [noderef] __user *__pu_addr
arch/sh/math-emu/math.c:245:17: sparse: got unsigned long *
arch/sh/math-emu/math.c:248:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long [noderef] __user *__pu_addr @@ got unsigned long * @@
arch/sh/math-emu/math.c:248:17: sparse: expected unsigned long [noderef] __user *__pu_addr
arch/sh/math-emu/math.c:248:17: sparse: got unsigned long *
arch/sh/math-emu/math.c:448:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long [noderef] __user *__pu_addr @@ got unsigned long * @@
arch/sh/math-emu/math.c:448:17: sparse: expected unsigned long [noderef] __user *__pu_addr
arch/sh/math-emu/math.c:448:17: sparse: got unsigned long *
arch/sh/math-emu/math.c:452:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long const *__gu_addr @@
arch/sh/math-emu/math.c:452:17: sparse: expected void const volatile [noderef] __user *ptr
arch/sh/math-emu/math.c:452:17: sparse: got unsigned long const *__gu_addr
arch/sh/math-emu/math.c:122:9: sparse: sparse: generating address of non-lvalue (11)
arch/sh/math-emu/math.c:122:9: sparse: sparse: generating address of non-lvalue (11)
arch/sh/math-emu/math.c:122:9: sparse: sparse: generating address of non-lvalue (1)
arch/sh/math-emu/math.c:122:9: sparse: sparse: generating address of non-lvalue (1)
arch/sh/math-emu/math.c:122:9: sparse: sparse: generating address of non-lvalue (1)
arch/sh/math-emu/math.c:122:9: sparse: sparse: generating address of non-lvalue (1)
arch/sh/math-emu/math.c:122:9: sparse: sparse: generating address of non-lvalue (11)
arch/sh/math-emu/math.c:122:9: sparse: sparse: generating address of non-lvalue (11)
arch/sh/math-emu/math.c:122:9: sparse: sparse: generating address of non-lvalue (11)
arch/sh/math-emu/math.c:122:9: sparse: sparse: generating address of non-lvalue (11)
arch/sh/math-emu/math.c:129:9: sparse: sparse: generating address of non-lvalue (11)
arch/sh/math-emu/math.c:129:9: sparse: sparse: generating address of non-lvalue (11)
arch/sh/math-emu/math.c:129:9: sparse: sparse: generating address of non-lvalue (11)
arch/sh/math-emu/math.c:129:9: sparse: sparse: generating address of non-lvalue (11)
arch/sh/math-emu/math.c:145:9: sparse: sparse: generating address of non-lvalue (11)
arch/sh/math-emu/math.c:145:9: sparse: sparse: generating address of non-lvalue (11)
--
arch/sh/boards/mach-se/770x/setup.c: note: in included file (through include/linux/scatterlist.h, include/linux/dma-mapping.h, include/linux/skbuff.h, ...):
arch/sh/include/asm/io.h:184:1: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char volatile [usertype] *__addr @@ got void [noderef] __iomem * @@
arch/sh/include/asm/io.h:184:1: sparse: expected unsigned char volatile [usertype] *__addr
arch/sh/include/asm/io.h:184:1: sparse: got void [noderef] __iomem *
arch/sh/include/asm/io.h:184:1: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char volatile [usertype] *__addr @@ got void [noderef] __iomem * @@
arch/sh/include/asm/io.h:184:1: sparse: expected unsigned char volatile [usertype] *__addr
arch/sh/include/asm/io.h:184:1: sparse: got void [noderef] __iomem *
arch/sh/include/asm/io.h:184:1: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char volatile [usertype] *__addr @@ got void [noderef] __iomem * @@
arch/sh/include/asm/io.h:184:1: sparse: expected unsigned char volatile [usertype] *__addr
arch/sh/include/asm/io.h:184:1: sparse: got void [noderef] __iomem *
arch/sh/include/asm/io.h:184:1: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char volatile [usertype] *__addr @@ got void [noderef] __iomem * @@
arch/sh/include/asm/io.h:184:1: sparse: expected unsigned char volatile [usertype] *__addr
arch/sh/include/asm/io.h:184:1: sparse: got void [noderef] __iomem *
arch/sh/include/asm/io.h:184:1: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char volatile [usertype] *__addr @@ got void [noderef] __iomem * @@
arch/sh/include/asm/io.h:184:1: sparse: expected unsigned char volatile [usertype] *__addr
arch/sh/include/asm/io.h:184:1: sparse: got void [noderef] __iomem *
arch/sh/boards/mach-se/770x/setup.c: note: in included file:
>> arch/sh/include/mach-se/mach/mrshpc.h:9:14: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:9:14: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:9:14: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:12:14: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:12:14: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:12:14: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:13:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:13:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:13:17: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:15:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:15:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:15:17: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:23:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:23:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:23:9: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:24:13: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:24:13: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:24:13: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:26:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:26:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:26:17: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:29:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:29:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:29:17: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:32:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:32:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:32:9: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:33:14: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:33:14: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:33:14: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:35:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:35:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:35:17: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:38:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:38:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:38:17: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:41:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:41:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:41:9: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:42:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:42:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:42:9: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:43:14: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:43:14: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:43:14: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:44:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:44:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:44:17: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:46:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:46:17: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:46:17: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:48:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:48:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:48:9: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:49:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:49:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:49:9: sparse: got unsigned int
arch/sh/include/mach-se/mach/mrshpc.h:50:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/mach-se/mach/mrshpc.h:50:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/mach-se/mach/mrshpc.h:50:9: sparse: got unsigned int
--
>> arch/sh/boards/mach-se/770x/irq.c:100:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/boards/mach-se/770x/irq.c:100:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/boards/mach-se/770x/irq.c:100:9: sparse: got unsigned int
arch/sh/boards/mach-se/770x/irq.c:101:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/boards/mach-se/770x/irq.c:101:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/boards/mach-se/770x/irq.c:101:9: sparse: got unsigned int
arch/sh/boards/mach-se/770x/irq.c:102:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/boards/mach-se/770x/irq.c:102:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/boards/mach-se/770x/irq.c:102:9: sparse: got unsigned int
arch/sh/boards/mach-se/770x/irq.c:103:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/boards/mach-se/770x/irq.c:103:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/boards/mach-se/770x/irq.c:103:9: sparse: got unsigned int
arch/sh/boards/mach-se/770x/irq.c:104:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/boards/mach-se/770x/irq.c:104:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/boards/mach-se/770x/irq.c:104:9: sparse: got unsigned int
arch/sh/boards/mach-se/770x/irq.c:105:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/boards/mach-se/770x/irq.c:105:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/boards/mach-se/770x/irq.c:105:9: sparse: got unsigned int
arch/sh/boards/mach-se/770x/irq.c:106:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/boards/mach-se/770x/irq.c:106:9: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/boards/mach-se/770x/irq.c:106:9: sparse: got unsigned int
--
fs/binfmt_flat.c:402:9: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const *__gu_addr @@ got unsigned long [noderef] __user *[assigned] ptr @@
fs/binfmt_flat.c:402:9: sparse: expected unsigned long const *__gu_addr
fs/binfmt_flat.c:402:9: sparse: got unsigned long [noderef] __user *[assigned] ptr
>> fs/binfmt_flat.c:402:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long const *__gu_addr @@
fs/binfmt_flat.c:402:9: sparse: expected void const volatile [noderef] __user *ptr
fs/binfmt_flat.c:402:9: sparse: got unsigned long const *__gu_addr
fs/binfmt_flat.c:775:29: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user *[assigned] rp @@
fs/binfmt_flat.c:775:29: sparse: expected unsigned int const *__gu_addr
fs/binfmt_flat.c:775:29: sparse: got unsigned int [noderef] [usertype] __user *[assigned] rp
fs/binfmt_flat.c:775:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int const *__gu_addr @@
fs/binfmt_flat.c:775:29: sparse: expected void const volatile [noderef] __user *ptr
fs/binfmt_flat.c:775:29: sparse: got unsigned int const *__gu_addr
fs/binfmt_flat.c:812:29: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected restricted __be32 const *__gu_addr @@ got restricted __be32 [noderef] [usertype] __user * @@
fs/binfmt_flat.c:812:29: sparse: expected restricted __be32 const *__gu_addr
fs/binfmt_flat.c:812:29: sparse: got restricted __be32 [noderef] [usertype] __user *
fs/binfmt_flat.c:812:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got restricted __be32 const *__gu_addr @@
fs/binfmt_flat.c:812:29: sparse: expected void const volatile [noderef] __user *ptr
fs/binfmt_flat.c:812:29: sparse: got restricted __be32 const *__gu_addr
fs/binfmt_flat.c:855:29: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected restricted __be32 const *__gu_addr @@ got restricted __be32 [noderef] [usertype] __user * @@
fs/binfmt_flat.c:855:29: sparse: expected restricted __be32 const *__gu_addr
fs/binfmt_flat.c:855:29: sparse: got restricted __be32 [noderef] [usertype] __user *
fs/binfmt_flat.c:855:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got restricted __be32 const *__gu_addr @@
fs/binfmt_flat.c:855:29: sparse: expected void const volatile [noderef] __user *ptr
fs/binfmt_flat.c:855:29: sparse: got restricted __be32 const *__gu_addr
fs/binfmt_flat.c:865:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got void [noderef] __user *__cl_addr @@
fs/binfmt_flat.c:865:13: sparse: expected void *addr
fs/binfmt_flat.c:865:13: sparse: got void [noderef] __user *__cl_addr
--
sound/core/hwdep.c:265:29: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user * @@
sound/core/hwdep.c:265:29: sparse: expected int const *__gu_addr
sound/core/hwdep.c:265:29: sparse: got int [noderef] __user *
>> sound/core/hwdep.c:265:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/hwdep.c:265:29: sparse: expected void const volatile [noderef] __user *ptr
sound/core/hwdep.c:265:29: sparse: got int const *__gu_addr
sound/core/hwdep.c:294:29: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] __user * @@
sound/core/hwdep.c:294:29: sparse: expected unsigned int const *__gu_addr
sound/core/hwdep.c:294:29: sparse: got unsigned int [noderef] __user *
>> sound/core/hwdep.c:294:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int const *__gu_addr @@
sound/core/hwdep.c:294:29: sparse: expected void const volatile [noderef] __user *ptr
sound/core/hwdep.c:294:29: sparse: got unsigned int const *__gu_addr
--
sound/core/timer.c:2045:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/timer.c:2045:13: sparse: expected int const *__gu_addr
sound/core/timer.c:2045:13: sparse: got int [noderef] __user *p
>> sound/core/timer.c:2045:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/timer.c:2045:13: sparse: expected void const volatile [noderef] __user *ptr
sound/core/timer.c:2045:13: sparse: got int const *__gu_addr
sound/core/timer.c:790:25: sparse: sparse: context imbalance in 'snd_timer_process_callbacks' - unexpected unlock
--
sound/core/oss/pcm_oss.c:2592:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2592:21: sparse: expected int const *__gu_addr
sound/core/oss/pcm_oss.c:2592:21: sparse: got int [noderef] __user *p
>> sound/core/oss/pcm_oss.c:2592:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/oss/pcm_oss.c:2592:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/oss/pcm_oss.c:2592:21: sparse: got int const *__gu_addr
sound/core/oss/pcm_oss.c:2603:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2603:21: sparse: expected int const *__gu_addr
sound/core/oss/pcm_oss.c:2603:21: sparse: got int [noderef] __user *p
sound/core/oss/pcm_oss.c:2603:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/oss/pcm_oss.c:2603:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/oss/pcm_oss.c:2603:21: sparse: got int const *__gu_addr
sound/core/oss/pcm_oss.c:2615:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2615:21: sparse: expected int const *__gu_addr
sound/core/oss/pcm_oss.c:2615:21: sparse: got int [noderef] __user *p
sound/core/oss/pcm_oss.c:2615:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/oss/pcm_oss.c:2615:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/oss/pcm_oss.c:2615:21: sparse: got int const *__gu_addr
sound/core/oss/pcm_oss.c:2627:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2627:21: sparse: expected int const *__gu_addr
sound/core/oss/pcm_oss.c:2627:21: sparse: got int [noderef] __user *p
sound/core/oss/pcm_oss.c:2627:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/oss/pcm_oss.c:2627:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/oss/pcm_oss.c:2627:21: sparse: got int const *__gu_addr
sound/core/oss/pcm_oss.c:2644:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2644:21: sparse: expected int const *__gu_addr
sound/core/oss/pcm_oss.c:2644:21: sparse: got int [noderef] __user *p
sound/core/oss/pcm_oss.c:2644:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/oss/pcm_oss.c:2644:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/oss/pcm_oss.c:2644:21: sparse: got int const *__gu_addr
sound/core/oss/pcm_oss.c:2651:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2651:21: sparse: expected int const *__gu_addr
sound/core/oss/pcm_oss.c:2651:21: sparse: got int [noderef] __user *p
sound/core/oss/pcm_oss.c:2651:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/oss/pcm_oss.c:2651:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/oss/pcm_oss.c:2651:21: sparse: got int const *__gu_addr
sound/core/oss/pcm_oss.c:2678:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2678:21: sparse: expected int const *__gu_addr
sound/core/oss/pcm_oss.c:2678:21: sparse: got int [noderef] __user *p
sound/core/oss/pcm_oss.c:2678:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/oss/pcm_oss.c:2678:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/oss/pcm_oss.c:2678:21: sparse: got int const *__gu_addr
--
sound/sh/sh_dac_audio.c:167:51: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *dst @@ got char * @@
sound/sh/sh_dac_audio.c:167:51: sparse: expected void volatile [noderef] __iomem *dst
sound/sh/sh_dac_audio.c:167:51: sparse: got char *
sound/sh/sh_dac_audio.c:186:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got char * @@
sound/sh/sh_dac_audio.c:186:39: sparse: expected void volatile [noderef] __iomem *
sound/sh/sh_dac_audio.c:186:39: sparse: got char *
sound/sh/sh_dac_audio.c:204:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got char * @@
sound/sh/sh_dac_audio.c:204:37: sparse: expected void volatile [noderef] __iomem *
sound/sh/sh_dac_audio.c:204:37: sparse: got char *
sound/sh/sh_dac_audio.c: note: in included file:
>> arch/sh/include/cpu-sh3/cpu/dac.h:38:21: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/cpu-sh3/cpu/dac.h:38:21: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/cpu-sh3/cpu/dac.h:38:21: sparse: got unsigned int
arch/sh/include/cpu-sh3/cpu/dac.h:39:14: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __iomem *ptr @@ got unsigned int @@
arch/sh/include/cpu-sh3/cpu/dac.h:39:14: sparse: expected void const volatile [noderef] __iomem *ptr
arch/sh/include/cpu-sh3/cpu/dac.h:39:14: sparse: got unsigned int
--
sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *arg @@
sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: got int [noderef] __user *arg
>> sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *arg @@
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: got int [noderef] __user *arg
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *arg @@
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: got int [noderef] __user *arg
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: got int const *__gu_addr
--
sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: got int [noderef] __user *p
>> sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: got int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: expected int const *__gu_addr
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: got int [noderef] __user *p
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: expected void const volatile [noderef] __user *ptr
sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: got int const *__gu_addr
vim +151 arch/sh/include/asm/mmu_context.h
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 139
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 140 #if defined(CONFIG_CPU_SH3) || defined(CONFIG_CPU_SH4)
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 141 /*
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 142 * If this processor has an MMU, we need methods to turn it off/on ..
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 143 * paging_init() will also have to be updated for the processor in
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 144 * question.
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 145 */
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 146 static inline void enable_mmu(void)
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 147 {
aec5e0e1c179fac4 include/asm-sh/mmu_context.h Paul Mundt 2006-12-25 148 unsigned int cpu = smp_processor_id();
aec5e0e1c179fac4 include/asm-sh/mmu_context.h Paul Mundt 2006-12-25 149
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 150 /* Enable MMU */
9d56dd3b083a3bec arch/sh/include/asm/mmu_context.h Paul Mundt 2010-01-26 @151 __raw_writel(MMU_CONTROL_INIT, MMUCR);
298476220d1f793c include/asm-sh/mmu_context.h Paul Mundt 2006-09-27 152 ctrl_barrier();
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 153
aec5e0e1c179fac4 include/asm-sh/mmu_context.h Paul Mundt 2006-12-25 154 if (asid_cache(cpu) == NO_CONTEXT)
aec5e0e1c179fac4 include/asm-sh/mmu_context.h Paul Mundt 2006-12-25 155 asid_cache(cpu) = MMU_CONTEXT_FIRST_VERSION;
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 156
aec5e0e1c179fac4 include/asm-sh/mmu_context.h Paul Mundt 2006-12-25 157 set_asid(asid_cache(cpu) & MMU_CONTEXT_ASID_MASK);
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 158 }
^1da177e4c3f4152 include/asm-sh/mmu_context.h Linus Torvalds 2005-04-16 159
:::::: The code at line 151 was first introduced by commit
:::::: 9d56dd3b083a3bec56e9da35ce07baca81030b03 sh: Mass ctrl_in/outX to __raw_read/writeX conversion.
:::::: TO: Paul Mundt <lethal(a)linux-sh.org>
:::::: CC: Paul Mundt <lethal(a)linux-sh.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 8 months
include/linux/jump_label.h:470:40: error: 'struct static_key' has no member named 'key'
by kernel test robot
tree: https://github.com/0day-ci/linux/commits/UPDATE-20210116-135743/Cun-Li/KV...
head: 78f2c3f8b1c431e97205e2bdb8a26958abf08770
commit: 78f2c3f8b1c431e97205e2bdb8a26958abf08770 KVM: update depracated and inappropriate jump label API
date: 13 hours ago
config: x86_64-rhel-8.3-kbuiltin (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/78f2c3f8b1c431e97205e2bdb8a26958a...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review UPDATE-20210116-135743/Cun-Li/KVM-update-depracated-jump-label-API/20210111-232923
git checkout 78f2c3f8b1c431e97205e2bdb8a26958abf08770
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/dynamic_debug.h:6,
from include/linux/printk.h:409,
from include/linux/kernel.h:16,
from include/asm-generic/bug.h:20,
from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/percpu.h:5,
from include/linux/context_tracking_state.h:5,
from include/linux/hardirq.h:5,
from include/linux/kvm_host.h:7,
from arch/x86/kvm/../../../virt/kvm/irqchip.c:15:
arch/x86/kvm/lapic.h: In function 'lapic_in_kernel':
>> include/linux/jump_label.h:470:40: error: 'struct static_key' has no member named 'key'
470 | branch = arch_static_branch_jump(&(x)->key, false); \
| ^~
arch/x86/kvm/lapic.h:179:6: note: in expansion of macro 'static_branch_unlikely'
179 | if (static_branch_unlikely(&kvm_no_apic_vcpu))
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/jump_label.h:472:35: error: 'struct static_key' has no member named 'key'
472 | branch = arch_static_branch(&(x)->key, false); \
| ^~
arch/x86/kvm/lapic.h:179:6: note: in expansion of macro 'static_branch_unlikely'
179 | if (static_branch_unlikely(&kvm_no_apic_vcpu))
| ^~~~~~~~~~~~~~~~~~~~~~
arch/x86/kvm/lapic.h: In function 'kvm_apic_hw_enabled':
>> include/linux/jump_label.h:470:40: error: 'struct static_key' has no member named 'key'
470 | branch = arch_static_branch_jump(&(x)->key, false); \
| ^~
arch/x86/kvm/lapic.h:188:6: note: in expansion of macro 'static_branch_unlikely'
188 | if (static_branch_unlikely(&apic_hw_disabled.key))
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/jump_label.h:472:35: error: 'struct static_key' has no member named 'key'
472 | branch = arch_static_branch(&(x)->key, false); \
| ^~
arch/x86/kvm/lapic.h:188:6: note: in expansion of macro 'static_branch_unlikely'
188 | if (static_branch_unlikely(&apic_hw_disabled.key))
| ^~~~~~~~~~~~~~~~~~~~~~
arch/x86/kvm/lapic.h: In function 'kvm_apic_sw_enabled':
>> include/linux/jump_label.h:470:40: error: 'struct static_key' has no member named 'key'
470 | branch = arch_static_branch_jump(&(x)->key, false); \
| ^~
arch/x86/kvm/lapic.h:197:6: note: in expansion of macro 'static_branch_unlikely'
197 | if (static_branch_unlikely(&apic_sw_disabled.key))
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/jump_label.h:472:35: error: 'struct static_key' has no member named 'key'
472 | branch = arch_static_branch(&(x)->key, false); \
| ^~
arch/x86/kvm/lapic.h:197:6: note: in expansion of macro 'static_branch_unlikely'
197 | if (static_branch_unlikely(&apic_sw_disabled.key))
| ^~~~~~~~~~~~~~~~~~~~~~
--
In file included from include/linux/dynamic_debug.h:6,
from include/linux/printk.h:409,
from include/linux/kernel.h:16,
from include/asm-generic/bug.h:20,
from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/percpu.h:5,
from include/linux/context_tracking_state.h:5,
from include/linux/hardirq.h:5,
from include/linux/kvm_host.h:7,
from arch/x86/kvm/x86.c:19:
arch/x86/kvm/lapic.h: In function 'lapic_in_kernel':
>> include/linux/jump_label.h:470:40: error: 'struct static_key' has no member named 'key'
470 | branch = arch_static_branch_jump(&(x)->key, false); \
| ^~
arch/x86/kvm/lapic.h:179:6: note: in expansion of macro 'static_branch_unlikely'
179 | if (static_branch_unlikely(&kvm_no_apic_vcpu))
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/jump_label.h:472:35: error: 'struct static_key' has no member named 'key'
472 | branch = arch_static_branch(&(x)->key, false); \
| ^~
arch/x86/kvm/lapic.h:179:6: note: in expansion of macro 'static_branch_unlikely'
179 | if (static_branch_unlikely(&kvm_no_apic_vcpu))
| ^~~~~~~~~~~~~~~~~~~~~~
arch/x86/kvm/lapic.h: In function 'kvm_apic_hw_enabled':
>> include/linux/jump_label.h:470:40: error: 'struct static_key' has no member named 'key'
470 | branch = arch_static_branch_jump(&(x)->key, false); \
| ^~
arch/x86/kvm/lapic.h:188:6: note: in expansion of macro 'static_branch_unlikely'
188 | if (static_branch_unlikely(&apic_hw_disabled.key))
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/jump_label.h:472:35: error: 'struct static_key' has no member named 'key'
472 | branch = arch_static_branch(&(x)->key, false); \
| ^~
arch/x86/kvm/lapic.h:188:6: note: in expansion of macro 'static_branch_unlikely'
188 | if (static_branch_unlikely(&apic_hw_disabled.key))
| ^~~~~~~~~~~~~~~~~~~~~~
arch/x86/kvm/lapic.h: In function 'kvm_apic_sw_enabled':
>> include/linux/jump_label.h:470:40: error: 'struct static_key' has no member named 'key'
470 | branch = arch_static_branch_jump(&(x)->key, false); \
| ^~
arch/x86/kvm/lapic.h:197:6: note: in expansion of macro 'static_branch_unlikely'
197 | if (static_branch_unlikely(&apic_sw_disabled.key))
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/jump_label.h:472:35: error: 'struct static_key' has no member named 'key'
472 | branch = arch_static_branch(&(x)->key, false); \
| ^~
arch/x86/kvm/lapic.h:197:6: note: in expansion of macro 'static_branch_unlikely'
197 | if (static_branch_unlikely(&apic_sw_disabled.key))
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/dynamic_debug.h:6,
from include/linux/printk.h:409,
from include/linux/kernel.h:16,
from include/asm-generic/bug.h:20,
from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/percpu.h:5,
from include/linux/context_tracking_state.h:5,
from include/linux/hardirq.h:5,
from include/linux/kvm_host.h:7,
from arch/x86/kvm/x86.c:19:
arch/x86/kvm/x86.c: In function 'kvm_arch_vcpu_create':
include/linux/jump_label.h:489:55: error: 'struct static_key' has no member named 'key'
489 | #define static_branch_inc(x) static_key_slow_inc(&(x)->key)
| ^~
arch/x86/kvm/x86.c:9939:3: note: in expansion of macro 'static_branch_inc'
9939 | static_branch_inc(&kvm_no_apic_vcpu);
| ^~~~~~~~~~~~~~~~~
arch/x86/kvm/x86.c: In function 'kvm_arch_vcpu_destroy':
include/linux/jump_label.h:490:55: error: 'struct static_key' has no member named 'key'
490 | #define static_branch_dec(x) static_key_slow_dec(&(x)->key)
| ^~
arch/x86/kvm/x86.c:10068:3: note: in expansion of macro 'static_branch_dec'
10068 | static_branch_dec(&kvm_no_apic_vcpu);
| ^~~~~~~~~~~~~~~~~
arch/x86/kvm/x86.c: At top level:
>> arch/x86/kvm/x86.c:10322:39: error: conflicting types for 'kvm_no_apic_vcpu'
10322 | __read_mostly DEFINE_STATIC_KEY_FALSE(kvm_no_apic_vcpu);
| ^~~~~~~~~~~~~~~~
include/linux/jump_label.h:367:26: note: in definition of macro 'DEFINE_STATIC_KEY_FALSE'
367 | struct static_key_false name = STATIC_KEY_FALSE_INIT
| ^~~~
In file included from arch/x86/kvm/cpuid.h:5,
from arch/x86/kvm/mmu.h:7,
from arch/x86/kvm/x86.c:22:
arch/x86/kvm/x86.h:297:26: note: previous declaration of 'kvm_no_apic_vcpu' was here
297 | extern struct static_key kvm_no_apic_vcpu;
| ^~~~~~~~~~~~~~~~
In file included from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from include/asm-generic/bug.h:20,
from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/percpu.h:5,
from include/linux/context_tracking_state.h:5,
from include/linux/hardirq.h:5,
from include/linux/kvm_host.h:7,
from arch/x86/kvm/x86.c:19:
arch/x86/kvm/x86.c:10323:19: error: conflicting types for 'kvm_no_apic_vcpu'
10323 | EXPORT_SYMBOL_GPL(kvm_no_apic_vcpu);
| ^~~~~~~~~~~~~~~~
include/linux/export.h:98:21: note: in definition of macro '___EXPORT_SYMBOL'
98 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:155:34: note: in expansion of macro '__EXPORT_SYMBOL'
155 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
| ^~~~~~~~~~~~~~~
include/linux/export.h:159:33: note: in expansion of macro '_EXPORT_SYMBOL'
159 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
| ^~~~~~~~~~~~~~
arch/x86/kvm/x86.c:10323:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
10323 | EXPORT_SYMBOL_GPL(kvm_no_apic_vcpu);
| ^~~~~~~~~~~~~~~~~
In file included from arch/x86/kvm/cpuid.h:5,
from arch/x86/kvm/mmu.h:7,
from arch/x86/kvm/x86.c:22:
arch/x86/kvm/x86.h:297:26: note: previous declaration of 'kvm_no_apic_vcpu' was here
297 | extern struct static_key kvm_no_apic_vcpu;
| ^~~~~~~~~~~~~~~~
vim +470 include/linux/jump_label.h
11276d5306b8e5b4 Peter Zijlstra 2015-07-24 465
11276d5306b8e5b4 Peter Zijlstra 2015-07-24 466 #define static_branch_unlikely(x) \
11276d5306b8e5b4 Peter Zijlstra 2015-07-24 467 ({ \
11276d5306b8e5b4 Peter Zijlstra 2015-07-24 468 bool branch; \
11276d5306b8e5b4 Peter Zijlstra 2015-07-24 469 if (__builtin_types_compatible_p(typeof(*x), struct static_key_true)) \
11276d5306b8e5b4 Peter Zijlstra 2015-07-24 @470 branch = arch_static_branch_jump(&(x)->key, false); \
11276d5306b8e5b4 Peter Zijlstra 2015-07-24 471 else if (__builtin_types_compatible_p(typeof(*x), struct static_key_false)) \
11276d5306b8e5b4 Peter Zijlstra 2015-07-24 472 branch = arch_static_branch(&(x)->key, false); \
11276d5306b8e5b4 Peter Zijlstra 2015-07-24 473 else \
11276d5306b8e5b4 Peter Zijlstra 2015-07-24 474 branch = ____wrong_branch_error(); \
81dcf89f03204d7e Peter Zijlstra 2018-01-18 475 unlikely(branch); \
11276d5306b8e5b4 Peter Zijlstra 2015-07-24 476 })
11276d5306b8e5b4 Peter Zijlstra 2015-07-24 477
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 8 months
fs/xfs/xfs_rtalloc.c:898:1: warning: stack frame size of 1056 bytes in function 'xfs_growfs_rt'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1d94330a437a573cfdf848f6743b1ed169242c8a
commit: f4c32e87de7d66074d5612567c5eac7325024428 xfs: fix realtime bitmap/summary file truncation when growing rt volume
date: 3 months ago
config: mips-randconfig-r023-20210116 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project d7bc3b7ce23b664d6620cdc32370a8614523ca2f)
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 mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout f4c32e87de7d66074d5612567c5eac7325024428
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> fs/xfs/xfs_rtalloc.c:898:1: warning: stack frame size of 1056 bytes in function 'xfs_growfs_rt' [-Wframe-larger-than=]
xfs_growfs_rt(
^
1 warning generated.
vim +/xfs_growfs_rt +898 fs/xfs/xfs_rtalloc.c
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 889
^1da177e4c3f4152 Linus Torvalds 2005-04-16 890 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 891 * Visible (exported) functions.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 892 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 893
^1da177e4c3f4152 Linus Torvalds 2005-04-16 894 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 895 * Grow the realtime area of the filesystem.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 896 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 897 int
^1da177e4c3f4152 Linus Torvalds 2005-04-16 @898 xfs_growfs_rt(
^1da177e4c3f4152 Linus Torvalds 2005-04-16 899 xfs_mount_t *mp, /* mount point for filesystem */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 900 xfs_growfs_rt_t *in) /* growfs rt input struct */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 901 {
^1da177e4c3f4152 Linus Torvalds 2005-04-16 902 xfs_rtblock_t bmbno; /* bitmap block number */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 903 xfs_buf_t *bp; /* temporary buffer */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 904 int error; /* error return value */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 905 xfs_mount_t *nmp; /* new (fake) mount structure */
d5cf09baced0ef3d Christoph Hellwig 2014-07-30 906 xfs_rfsblock_t nrblocks; /* new number of realtime blocks */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 907 xfs_extlen_t nrbmblocks; /* new number of rt bitmap blocks */
d5cf09baced0ef3d Christoph Hellwig 2014-07-30 908 xfs_rtblock_t nrextents; /* new number of realtime extents */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 909 uint8_t nrextslog; /* new log2 of sb_rextents */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 910 xfs_extlen_t nrsumblocks; /* new number of summary blocks */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 911 uint nrsumlevels; /* new rt summary levels */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 912 uint nrsumsize; /* new size of rt summary, bytes */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 913 xfs_sb_t *nsbp; /* new superblock */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 914 xfs_extlen_t rbmblocks; /* current number of rt bitmap blocks */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 915 xfs_extlen_t rsumblocks; /* current number of rt summary blks */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 916 xfs_sb_t *sbp; /* old superblock */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 917 xfs_fsblock_t sumbno; /* summary block number */
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 918 uint8_t *rsum_cache; /* old summary cache */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 919
^1da177e4c3f4152 Linus Torvalds 2005-04-16 920 sbp = &mp->m_sb;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 921 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 922 * Initial error checking.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 923 */
743bb4650da9e259 sandeen(a)sandeen.net 2008-11-25 924 if (!capable(CAP_SYS_ADMIN))
2451337dd043901b Dave Chinner 2014-06-25 925 return -EPERM;
73024cf11522c023 Eric Sesterhenn 2006-06-28 926 if (mp->m_rtdev_targp == NULL || mp->m_rbmip == NULL ||
^1da177e4c3f4152 Linus Torvalds 2005-04-16 927 (nrblocks = in->newblocks) <= sbp->sb_rblocks ||
^1da177e4c3f4152 Linus Torvalds 2005-04-16 928 (sbp->sb_rblocks && (in->extsize != sbp->sb_rextsize)))
2451337dd043901b Dave Chinner 2014-06-25 929 return -EINVAL;
4cc929ee305c6957 Nathan Scott 2007-05-14 930 if ((error = xfs_sb_validate_fsb_count(sbp, nrblocks)))
4cc929ee305c6957 Nathan Scott 2007-05-14 931 return error;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 932 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 933 * Read in the last block of the device, make sure it exists.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 934 */
ba3726742c1712c4 Dave Chinner 2014-10-02 935 error = xfs_buf_read_uncached(mp->m_rtdev_targp,
4cc929ee305c6957 Nathan Scott 2007-05-14 936 XFS_FSB_TO_BB(mp, nrblocks - 1),
ba3726742c1712c4 Dave Chinner 2014-10-02 937 XFS_FSB_TO_BB(mp, 1), 0, &bp, NULL);
ba3726742c1712c4 Dave Chinner 2014-10-02 938 if (error)
eab4e63368b4cfa5 Dave Chinner 2012-11-12 939 return error;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 940 xfs_buf_relse(bp);
1922c949c59f93be Dave Chinner 2010-09-22 941
^1da177e4c3f4152 Linus Torvalds 2005-04-16 942 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 943 * Calculate new parameters. These are the final values to be reached.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 944 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 945 nrextents = nrblocks;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 946 do_div(nrextents, in->extsize);
68c3271515f11f66 Nathan Scott 2006-09-28 947 nrbmblocks = howmany_64(nrextents, NBBY * sbp->sb_blocksize);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 948 nrextslog = xfs_highbit32(nrextents);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 949 nrsumlevels = nrextslog + 1;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 950 nrsumsize = (uint)sizeof(xfs_suminfo_t) * nrsumlevels * nrbmblocks;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 951 nrsumblocks = XFS_B_TO_FSB(mp, nrsumsize);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 952 nrsumsize = XFS_FSB_TO_B(mp, nrsumblocks);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 953 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 954 * New summary size can't be more than half the size of
^1da177e4c3f4152 Linus Torvalds 2005-04-16 955 * the log. This prevents us from getting a log overflow,
^1da177e4c3f4152 Linus Torvalds 2005-04-16 956 * since we'll log basically the whole summary file at once.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 957 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 958 if (nrsumblocks > (mp->m_sb.sb_logblocks >> 1))
2451337dd043901b Dave Chinner 2014-06-25 959 return -EINVAL;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 960 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 961 * Get the old block counts for bitmap and summary inodes.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 962 * These can't change since other growfs callers are locked out.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 963 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 964 rbmblocks = XFS_B_TO_FSB(mp, mp->m_rbmip->i_d.di_size);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 965 rsumblocks = XFS_B_TO_FSB(mp, mp->m_rsumip->i_d.di_size);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 966 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 967 * Allocate space to the bitmap and summary files, as necessary.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 968 */
1050c71e2925ab0c Christoph Hellwig 2011-02-13 969 error = xfs_growfs_rt_alloc(mp, rbmblocks, nrbmblocks, mp->m_rbmip);
1050c71e2925ab0c Christoph Hellwig 2011-02-13 970 if (error)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 971 return error;
1050c71e2925ab0c Christoph Hellwig 2011-02-13 972 error = xfs_growfs_rt_alloc(mp, rsumblocks, nrsumblocks, mp->m_rsumip);
1050c71e2925ab0c Christoph Hellwig 2011-02-13 973 if (error)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 974 return error;
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 975
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 976 rsum_cache = mp->m_rsum_cache;
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 977 if (nrbmblocks != sbp->sb_rbmblocks)
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 978 xfs_alloc_rsum_cache(mp, nrbmblocks);
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 979
d432c80e68e3c283 Nathan Scott 2006-09-28 980 /*
d432c80e68e3c283 Nathan Scott 2006-09-28 981 * Allocate a new (fake) mount/sb.
d432c80e68e3c283 Nathan Scott 2006-09-28 982 */
707e0ddaf67e8942 Tetsuo Handa 2019-08-26 983 nmp = kmem_alloc(sizeof(*nmp), 0);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 984 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 985 * Loop over the bitmap blocks.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 986 * We will do everything one bitmap block at a time.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 987 * Skip the current block if it is exactly full.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 988 * This also deals with the case where there were no rtextents before.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 989 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 990 for (bmbno = sbp->sb_rbmblocks -
^1da177e4c3f4152 Linus Torvalds 2005-04-16 991 ((sbp->sb_rextents & ((1 << mp->m_blkbit_log) - 1)) != 0);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 992 bmbno < nrbmblocks;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 993 bmbno++) {
0924b585fc49bf37 Dave Chinner 2008-11-28 994 xfs_trans_t *tp;
0924b585fc49bf37 Dave Chinner 2008-11-28 995
^1da177e4c3f4152 Linus Torvalds 2005-04-16 996 *nmp = *mp;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 997 nsbp = &nmp->m_sb;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 998 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 999 * Calculate new sb and mount fields for this round.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1000 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1001 nsbp->sb_rextsize = in->extsize;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1002 nsbp->sb_rbmblocks = bmbno + 1;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1003 nsbp->sb_rblocks =
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1004 XFS_RTMIN(nrblocks,
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1005 nsbp->sb_rbmblocks * NBBY *
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1006 nsbp->sb_blocksize * nsbp->sb_rextsize);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1007 nsbp->sb_rextents = nsbp->sb_rblocks;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1008 do_div(nsbp->sb_rextents, nsbp->sb_rextsize);
79071eb0b2f142b9 David Chinner 2008-08-13 1009 ASSERT(nsbp->sb_rextents != 0);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1010 nsbp->sb_rextslog = xfs_highbit32(nsbp->sb_rextents);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1011 nrsumlevels = nmp->m_rsumlevels = nsbp->sb_rextslog + 1;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1012 nrsumsize =
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1013 (uint)sizeof(xfs_suminfo_t) * nrsumlevels *
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1014 nsbp->sb_rbmblocks;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1015 nrsumblocks = XFS_B_TO_FSB(mp, nrsumsize);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1016 nmp->m_rsumsize = nrsumsize = XFS_FSB_TO_B(mp, nrsumblocks);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1017 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1018 * Start a transaction, get the log reservation.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1019 */
253f4911f297b837 Christoph Hellwig 2016-04-06 1020 error = xfs_trans_alloc(mp, &M_RES(mp)->tr_growrtfree, 0, 0, 0,
253f4911f297b837 Christoph Hellwig 2016-04-06 1021 &tp);
3d3c8b5222b92447 Jie Liu 2013-08-12 1022 if (error)
253f4911f297b837 Christoph Hellwig 2016-04-06 1023 break;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1024 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1025 * Lock out other callers by grabbing the bitmap inode lock.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1026 */
1050c71e2925ab0c Christoph Hellwig 2011-02-13 1027 xfs_ilock(mp->m_rbmip, XFS_ILOCK_EXCL);
ddc3415aba1cb2f8 Christoph Hellwig 2011-09-19 1028 xfs_trans_ijoin(tp, mp->m_rbmip, XFS_ILOCK_EXCL);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1029 /*
f4c32e87de7d6607 Darrick J. Wong 2020-10-07 1030 * Update the bitmap inode's size ondisk and incore. We need
f4c32e87de7d6607 Darrick J. Wong 2020-10-07 1031 * to update the incore size so that inode inactivation won't
f4c32e87de7d6607 Darrick J. Wong 2020-10-07 1032 * punch what it thinks are "posteof" blocks.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1033 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1034 mp->m_rbmip->i_d.di_size =
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1035 nsbp->sb_rbmblocks * nsbp->sb_blocksize;
f4c32e87de7d6607 Darrick J. Wong 2020-10-07 1036 i_size_write(VFS_I(mp->m_rbmip), mp->m_rbmip->i_d.di_size);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1037 xfs_trans_log_inode(tp, mp->m_rbmip, XFS_ILOG_CORE);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1038 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1039 * Get the summary inode into the transaction.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1040 */
1050c71e2925ab0c Christoph Hellwig 2011-02-13 1041 xfs_ilock(mp->m_rsumip, XFS_ILOCK_EXCL);
ddc3415aba1cb2f8 Christoph Hellwig 2011-09-19 1042 xfs_trans_ijoin(tp, mp->m_rsumip, XFS_ILOCK_EXCL);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1043 /*
f4c32e87de7d6607 Darrick J. Wong 2020-10-07 1044 * Update the summary inode's size. We need to update the
f4c32e87de7d6607 Darrick J. Wong 2020-10-07 1045 * incore size so that inode inactivation won't punch what it
f4c32e87de7d6607 Darrick J. Wong 2020-10-07 1046 * thinks are "posteof" blocks.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1047 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1048 mp->m_rsumip->i_d.di_size = nmp->m_rsumsize;
f4c32e87de7d6607 Darrick J. Wong 2020-10-07 1049 i_size_write(VFS_I(mp->m_rsumip), mp->m_rsumip->i_d.di_size);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1050 xfs_trans_log_inode(tp, mp->m_rsumip, XFS_ILOG_CORE);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1051 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1052 * Copy summary data from old to new sizes.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1053 * Do this when the real size (not block-aligned) changes.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1054 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1055 if (sbp->sb_rbmblocks != nsbp->sb_rbmblocks ||
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1056 mp->m_rsumlevels != nmp->m_rsumlevels) {
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1057 error = xfs_rtcopy_summary(mp, nmp, tp);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1058 if (error)
0924b585fc49bf37 Dave Chinner 2008-11-28 1059 goto error_cancel;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1060 }
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1061 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1062 * Update superblock fields.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1063 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1064 if (nsbp->sb_rextsize != sbp->sb_rextsize)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1065 xfs_trans_mod_sb(tp, XFS_TRANS_SB_REXTSIZE,
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1066 nsbp->sb_rextsize - sbp->sb_rextsize);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1067 if (nsbp->sb_rbmblocks != sbp->sb_rbmblocks)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1068 xfs_trans_mod_sb(tp, XFS_TRANS_SB_RBMBLOCKS,
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1069 nsbp->sb_rbmblocks - sbp->sb_rbmblocks);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1070 if (nsbp->sb_rblocks != sbp->sb_rblocks)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1071 xfs_trans_mod_sb(tp, XFS_TRANS_SB_RBLOCKS,
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1072 nsbp->sb_rblocks - sbp->sb_rblocks);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1073 if (nsbp->sb_rextents != sbp->sb_rextents)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1074 xfs_trans_mod_sb(tp, XFS_TRANS_SB_REXTENTS,
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1075 nsbp->sb_rextents - sbp->sb_rextents);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1076 if (nsbp->sb_rextslog != sbp->sb_rextslog)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1077 xfs_trans_mod_sb(tp, XFS_TRANS_SB_REXTSLOG,
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1078 nsbp->sb_rextslog - sbp->sb_rextslog);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1079 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1080 * Free new extent.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1081 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1082 bp = NULL;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1083 error = xfs_rtfree_range(nmp, tp, sbp->sb_rextents,
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1084 nsbp->sb_rextents - sbp->sb_rextents, &bp, &sumbno);
0924b585fc49bf37 Dave Chinner 2008-11-28 1085 if (error) {
0924b585fc49bf37 Dave Chinner 2008-11-28 1086 error_cancel:
4906e21545814e41 Christoph Hellwig 2015-06-04 1087 xfs_trans_cancel(tp);
d432c80e68e3c283 Nathan Scott 2006-09-28 1088 break;
0924b585fc49bf37 Dave Chinner 2008-11-28 1089 }
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1090 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1091 * Mark more blocks free in the superblock.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1092 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1093 xfs_trans_mod_sb(tp, XFS_TRANS_SB_FREXTENTS,
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1094 nsbp->sb_rextents - sbp->sb_rextents);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1095 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1096 * Update mp values into the real mp structure.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1097 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1098 mp->m_rsumlevels = nrsumlevels;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1099 mp->m_rsumsize = nrsumsize;
e5720eec0548c089 David Chinner 2008-04-10 1100
70393313dd0b26a6 Christoph Hellwig 2015-06-04 1101 error = xfs_trans_commit(tp);
0924b585fc49bf37 Dave Chinner 2008-11-28 1102 if (error)
e5720eec0548c089 David Chinner 2008-04-10 1103 break;
e5720eec0548c089 David Chinner 2008-04-10 1104 }
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1105
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1106 /*
d432c80e68e3c283 Nathan Scott 2006-09-28 1107 * Free the fake mp structure.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1108 */
f0e2d93c29dc39ff Denys Vlasenko 2008-05-19 1109 kmem_free(nmp);
d432c80e68e3c283 Nathan Scott 2006-09-28 1110
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1111 /*
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1112 * If we had to allocate a new rsum_cache, we either need to free the
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1113 * old one (if we succeeded) or free the new one and restore the old one
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1114 * (if there was an error).
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1115 */
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1116 if (rsum_cache != mp->m_rsum_cache) {
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1117 if (error) {
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1118 kmem_free(mp->m_rsum_cache);
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1119 mp->m_rsum_cache = rsum_cache;
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1120 } else {
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1121 kmem_free(rsum_cache);
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1122 }
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1123 }
65eed012d1f2d0f0 Omar Sandoval 2018-12-21 1124
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1125 return error;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1126 }
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1127
:::::: The code at line 898 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds(a)ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds(a)ppc970.osdl.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 8 months
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c:1405:12: warning: stack frame size of 1072 bytes in function 'cdns_mhdp_link_up'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1d94330a437a573cfdf848f6743b1ed169242c8a
commit: 6a6155f664e31c9be43cd690541a9a682ba3dc22 ubsan: introduce CONFIG_UBSAN_LOCAL_BOUNDS for Clang
date: 3 months ago
config: mips-randconfig-r023-20210116 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project d7bc3b7ce23b664d6620cdc32370a8614523ca2f)
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 mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 6a6155f664e31c9be43cd690541a9a682ba3dc22
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c:1405:12: warning: stack frame size of 1072 bytes in function 'cdns_mhdp_link_up' [-Wframe-larger-than=]
static int cdns_mhdp_link_up(struct cdns_mhdp_device *mhdp)
^
1 warning generated.
vim +/cdns_mhdp_link_up +1405 drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1404
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 @1405 static int cdns_mhdp_link_up(struct cdns_mhdp_device *mhdp)
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1406 {
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1407 u8 dpcd[DP_RECEIVER_CAP_SIZE], amp[2];
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1408 u32 resp, interval, interval_us;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1409 u8 ext_cap_chk = 0;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1410 unsigned int addr;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1411 int err;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1412
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1413 WARN_ON(!mutex_is_locked(&mhdp->link_mutex));
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1414
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1415 drm_dp_dpcd_readb(&mhdp->aux, DP_TRAINING_AUX_RD_INTERVAL,
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1416 &ext_cap_chk);
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1417
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1418 if (ext_cap_chk & DP_EXTENDED_RECEIVER_CAP_FIELD_PRESENT)
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1419 addr = DP_DP13_DPCD_REV;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1420 else
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1421 addr = DP_DPCD_REV;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1422
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1423 err = drm_dp_dpcd_read(&mhdp->aux, addr, dpcd, DP_RECEIVER_CAP_SIZE);
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1424 if (err < 0) {
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1425 dev_err(mhdp->dev, "Failed to read receiver capabilities\n");
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1426 return err;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1427 }
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1428
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1429 mhdp->link.revision = dpcd[0];
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1430 mhdp->link.rate = drm_dp_bw_code_to_link_rate(dpcd[1]);
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1431 mhdp->link.num_lanes = dpcd[2] & DP_MAX_LANE_COUNT_MASK;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1432
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1433 if (dpcd[2] & DP_ENHANCED_FRAME_CAP)
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1434 mhdp->link.capabilities |= DP_LINK_CAP_ENHANCED_FRAMING;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1435
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1436 dev_dbg(mhdp->dev, "Set sink device power state via DPCD\n");
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1437 cdns_mhdp_link_power_up(&mhdp->aux, &mhdp->link);
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1438
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1439 cdns_mhdp_fill_sink_caps(mhdp, dpcd);
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1440
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1441 mhdp->link.rate = cdns_mhdp_max_link_rate(mhdp);
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1442 mhdp->link.num_lanes = cdns_mhdp_max_num_lanes(mhdp);
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1443
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1444 /* Disable framer for link training */
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1445 err = cdns_mhdp_reg_read(mhdp, CDNS_DP_FRAMER_GLOBAL_CONFIG, &resp);
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1446 if (err < 0) {
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1447 dev_err(mhdp->dev,
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1448 "Failed to read CDNS_DP_FRAMER_GLOBAL_CONFIG %d\n",
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1449 err);
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1450 return err;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1451 }
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1452
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1453 resp &= ~CDNS_DP_FRAMER_EN;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1454 cdns_mhdp_reg_write(mhdp, CDNS_DP_FRAMER_GLOBAL_CONFIG, resp);
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1455
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1456 /* Spread AMP if required, enable 8b/10b coding */
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1457 amp[0] = cdns_mhdp_get_ssc_supported(mhdp) ? DP_SPREAD_AMP_0_5 : 0;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1458 amp[1] = DP_SET_ANSI_8B10B;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1459 drm_dp_dpcd_write(&mhdp->aux, DP_DOWNSPREAD_CTRL, amp, 2);
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1460
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1461 if (mhdp->host.fast_link & mhdp->sink.fast_link) {
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1462 dev_err(mhdp->dev, "fastlink not supported\n");
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1463 return -EOPNOTSUPP;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1464 }
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1465
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1466 interval = dpcd[DP_TRAINING_AUX_RD_INTERVAL] & DP_TRAINING_AUX_RD_MASK;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1467 interval_us = cdns_mhdp_get_training_interval_us(mhdp, interval);
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1468 if (!interval_us ||
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1469 cdns_mhdp_link_training(mhdp, interval_us)) {
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1470 dev_err(mhdp->dev, "Link training failed. Exiting.\n");
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1471 return -EIO;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1472 }
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1473
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1474 mhdp->link_up = true;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1475
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1476 return 0;
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1477 }
fb43aa0acdfd600c Swapnil Jakhade 2020-09-18 1478
:::::: The code at line 1405 was first introduced by commit
:::::: fb43aa0acdfd600c75b8c877bdf9f6e9893ffc9b drm: bridge: Add support for Cadence MHDP8546 DPI/DP bridge
:::::: TO: Swapnil Jakhade <sjakhade(a)cadence.com>
:::::: CC: Tomi Valkeinen <tomi.valkeinen(a)ti.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 8 months
[jpirko-mlxsw:petrm_res_integ_v1 23/66] include/linux/compiler_types.h:320:38: error: call to '__compiletime_assert_579' declared with attribute error: BUILD_BUG_ON failed: RTM_MAX != (RTM_NEWVLAN + 3)
by kernel test robot
tree: https://github.com/jpirko/linux_mlxsw petrm_res_integ_v1
head: 678afe10ebec90d96c1653b127ade78af9cf0f43
commit: ea7a8e9972e4be1cd719b732566d98dd88d959d1 [23/66] nexthop: Add netlink defines and enumerators for resilient NH groups
config: x86_64-rhel (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/jpirko/linux_mlxsw/commit/ea7a8e9972e4be1cd719b732566d...
git remote add jpirko-mlxsw https://github.com/jpirko/linux_mlxsw
git fetch --no-tags jpirko-mlxsw petrm_res_integ_v1
git checkout ea7a8e9972e4be1cd719b732566d98dd88d959d1
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from <command-line>:
security/selinux/nlmsgtab.c: In function 'selinux_nlmsg_lookup':
>> include/linux/compiler_types.h:320:38: error: call to '__compiletime_assert_579' declared with attribute error: BUILD_BUG_ON failed: RTM_MAX != (RTM_NEWVLAN + 3)
320 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:301:4: note: in definition of macro '__compiletime_assert'
301 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:320:2: note: in expansion of macro '_compiletime_assert'
320 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
security/selinux/nlmsgtab.c:174:3: note: in expansion of macro 'BUILD_BUG_ON'
174 | BUILD_BUG_ON(RTM_MAX != (RTM_NEWVLAN + 3));
| ^~~~~~~~~~~~
vim +/__compiletime_assert_579 +320 include/linux/compiler_types.h
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 306
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 307 #define _compiletime_assert(condition, msg, prefix, suffix) \
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 308 __compiletime_assert(condition, msg, prefix, suffix)
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 309
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 310 /**
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 311 * compiletime_assert - break build and emit msg if condition is false
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 312 * @condition: a compile-time constant condition to check
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 313 * @msg: a message to emit if condition is false
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 314 *
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 315 * In tradition of POSIX assert, this macro will break the build if the
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 316 * supplied condition is *false*, emitting the supplied error message if the
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 317 * compiler has support to do so.
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 318 */
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 319 #define compiletime_assert(condition, msg) \
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 @320 _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 321
:::::: The code at line 320 was first introduced by commit
:::::: eb5c2d4b45e3d2d5d052ea6b8f1463976b1020d5 compiler.h: Move compiletime_assert() macros into compiler_types.h
:::::: TO: Will Deacon <will(a)kernel.org>
:::::: CC: Will Deacon <will(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 8 months
[linux-next:master 952/3956] crypto/blake2b_generic.c:73:13: warning: stack frame size of 9776 bytes in function 'blake2b_compress_one_generic'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: b3a3cbdec55b090d22a09f75efb7c7d34cb97f25
commit: 28dcca4cc0c01e2467549a36b1b0eacfdb01236c [952/3956] crypto: blake2b - sync with blake2s implementation
config: powerpc64-randconfig-r021-20210115 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 5b42fd8dd4e7e29125a09a41a33af7c9cb57d144)
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 powerpc64 cross compiling tool for clang build
# apt-get install binutils-powerpc64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commi...
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 28dcca4cc0c01e2467549a36b1b0eacfdb01236c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> crypto/blake2b_generic.c:73:13: warning: stack frame size of 9776 bytes in function 'blake2b_compress_one_generic' [-Wframe-larger-than=]
static void blake2b_compress_one_generic(struct blake2b_state *S,
^
1 warning generated.
vim +/blake2b_compress_one_generic +73 crypto/blake2b_generic.c
48
49 #define G(r,i,a,b,c,d) \
50 do { \
51 a = a + b + m[blake2b_sigma[r][2*i+0]]; \
52 d = ror64(d ^ a, 32); \
53 c = c + d; \
54 b = ror64(b ^ c, 24); \
55 a = a + b + m[blake2b_sigma[r][2*i+1]]; \
56 d = ror64(d ^ a, 16); \
57 c = c + d; \
58 b = ror64(b ^ c, 63); \
59 } while (0)
60
61 #define ROUND(r) \
62 do { \
63 G(r,0,v[ 0],v[ 4],v[ 8],v[12]); \
64 G(r,1,v[ 1],v[ 5],v[ 9],v[13]); \
65 G(r,2,v[ 2],v[ 6],v[10],v[14]); \
66 G(r,3,v[ 3],v[ 7],v[11],v[15]); \
67 G(r,4,v[ 0],v[ 5],v[10],v[15]); \
68 G(r,5,v[ 1],v[ 6],v[11],v[12]); \
69 G(r,6,v[ 2],v[ 7],v[ 8],v[13]); \
70 G(r,7,v[ 3],v[ 4],v[ 9],v[14]); \
71 } while (0)
72
> 73 static void blake2b_compress_one_generic(struct blake2b_state *S,
74 const u8 block[BLAKE2B_BLOCK_SIZE])
75 {
76 u64 m[16];
77 u64 v[16];
78 size_t i;
79
80 for (i = 0; i < 16; ++i)
81 m[i] = get_unaligned_le64(block + i * sizeof(m[i]));
82
83 for (i = 0; i < 8; ++i)
84 v[i] = S->h[i];
85
86 v[ 8] = BLAKE2B_IV0;
87 v[ 9] = BLAKE2B_IV1;
88 v[10] = BLAKE2B_IV2;
89 v[11] = BLAKE2B_IV3;
90 v[12] = BLAKE2B_IV4 ^ S->t[0];
91 v[13] = BLAKE2B_IV5 ^ S->t[1];
92 v[14] = BLAKE2B_IV6 ^ S->f[0];
93 v[15] = BLAKE2B_IV7 ^ S->f[1];
94
95 ROUND(0);
96 ROUND(1);
97 ROUND(2);
98 ROUND(3);
99 ROUND(4);
100 ROUND(5);
101 ROUND(6);
102 ROUND(7);
103 ROUND(8);
104 ROUND(9);
105 ROUND(10);
106 ROUND(11);
107 #ifdef CONFIG_CC_IS_CLANG
108 #pragma nounroll /* https://bugs.llvm.org/show_bug.cgi?id=45803 */
109 #endif
110 for (i = 0; i < 8; ++i)
111 S->h[i] = S->h[i] ^ v[i] ^ v[i + 8];
112 }
113
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 8 months