lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Tue, 18 Aug 2020 19:25:22 +0800
From:   kernel test robot <lkp@...el.com>
To:     Luc Van Oostenryck <luc.vanoostenryck@...il.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: drivers/irqchip/irq-ath79-misc.c:36:36: sparse: sparse: incorrect
 type in initializer (different address spaces)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   06a4ec1d9dc652e17ee3ac2ceb6c7cf6c2b75cdd
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date:   9 weeks ago
config: mips-randconfig-s032-20200818 (attached as .config)
compiler: mips-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.2-180-g49f7e13a-dirty
        git checkout 670d0a4b10704667765f7d18f7592993d02783aa
        # 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=mips 

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


sparse warnings: (new ones prefixed by >>)

>> drivers/irqchip/irq-ath79-misc.c:36:36: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void [noderef] __iomem *base @@     got void *host_data @@
>> drivers/irqchip/irq-ath79-misc.c:36:36: sparse:     expected void [noderef] __iomem *base
   drivers/irqchip/irq-ath79-misc.c:36:36: sparse:     got void *host_data
>> drivers/irqchip/irq-ath79-misc.c:62:56: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void [noderef] __iomem *base @@     got void * @@
   drivers/irqchip/irq-ath79-misc.c:62:56: sparse:     expected void [noderef] __iomem *base
   drivers/irqchip/irq-ath79-misc.c:62:56: sparse:     got void *
   drivers/irqchip/irq-ath79-misc.c:75:56: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void [noderef] __iomem *base @@     got void * @@
   drivers/irqchip/irq-ath79-misc.c:75:56: sparse:     expected void [noderef] __iomem *base
   drivers/irqchip/irq-ath79-misc.c:75:56: sparse:     got void *
   drivers/irqchip/irq-ath79-misc.c:88:56: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void [noderef] __iomem *base @@     got void * @@
   drivers/irqchip/irq-ath79-misc.c:88:56: sparse:     expected void [noderef] __iomem *base
   drivers/irqchip/irq-ath79-misc.c:88:56: sparse:     got void *
   drivers/irqchip/irq-ath79-misc.c:120:36: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void [noderef] __iomem *base @@     got void *host_data @@
   drivers/irqchip/irq-ath79-misc.c:120:36: sparse:     expected void [noderef] __iomem *base
   drivers/irqchip/irq-ath79-misc.c:120:36: sparse:     got void *host_data
>> drivers/irqchip/irq-ath79-misc.c:151:55: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected void *host_data @@     got void [noderef] __iomem *[assigned] base @@
   drivers/irqchip/irq-ath79-misc.c:151:55: sparse:     expected void *host_data
>> drivers/irqchip/irq-ath79-misc.c:151:55: sparse:     got void [noderef] __iomem *[assigned] base
>> drivers/irqchip/irq-ath79-misc.c:192:60: sparse: sparse: incorrect type in argument 6 (different address spaces) @@     expected void *host_data @@     got void [noderef] __iomem *regs @@
   drivers/irqchip/irq-ath79-misc.c:192:60: sparse:     expected void *host_data
>> drivers/irqchip/irq-ath79-misc.c:192:60: sparse:     got void [noderef] __iomem *regs
   drivers/irqchip/irq-ath79-misc.c:181:13: sparse: sparse: symbol 'ath79_misc_irq_init' was not declared. Should it be static?
--
>> drivers/watchdog/ath79_wdt.c:161:37: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected char const [noderef] __user *__gu_ptr @@     got char const * @@
>> drivers/watchdog/ath79_wdt.c:161:37: sparse:     expected char const [noderef] __user *__gu_ptr
   drivers/watchdog/ath79_wdt.c:161:37: sparse:     got char const *
   drivers/watchdog/ath79_wdt.c:235:27: sparse: sparse: incorrect type in initializer (incompatible argument 2 (different address spaces)) @@     expected int ( *write )( ... ) @@     got int ( * )( ... ) @@
   drivers/watchdog/ath79_wdt.c:235:27: sparse:     expected int ( *write )( ... )
   drivers/watchdog/ath79_wdt.c:235:27: sparse:     got int ( * )( ... )

# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=670d0a4b10704667765f7d18f7592993d02783aa
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 670d0a4b10704667765f7d18f7592993d02783aa
vim +36 drivers/irqchip/irq-ath79-misc.c

07ba4b061a79896 Alban Bedel  2016-01-23   31  
07ba4b061a79896 Alban Bedel  2016-01-23   32  static void ath79_misc_irq_handler(struct irq_desc *desc)
07ba4b061a79896 Alban Bedel  2016-01-23   33  {
07ba4b061a79896 Alban Bedel  2016-01-23   34  	struct irq_domain *domain = irq_desc_get_handler_data(desc);
07ba4b061a79896 Alban Bedel  2016-01-23   35  	struct irq_chip *chip = irq_desc_get_chip(desc);
07ba4b061a79896 Alban Bedel  2016-01-23  @36  	void __iomem *base = domain->host_data;
07ba4b061a79896 Alban Bedel  2016-01-23   37  	u32 pending;
07ba4b061a79896 Alban Bedel  2016-01-23   38  
07ba4b061a79896 Alban Bedel  2016-01-23   39  	chained_irq_enter(chip, desc);
07ba4b061a79896 Alban Bedel  2016-01-23   40  
07ba4b061a79896 Alban Bedel  2016-01-23   41  	pending = __raw_readl(base + AR71XX_RESET_REG_MISC_INT_STATUS) &
07ba4b061a79896 Alban Bedel  2016-01-23   42  		  __raw_readl(base + AR71XX_RESET_REG_MISC_INT_ENABLE);
07ba4b061a79896 Alban Bedel  2016-01-23   43  
07ba4b061a79896 Alban Bedel  2016-01-23   44  	if (!pending) {
07ba4b061a79896 Alban Bedel  2016-01-23   45  		spurious_interrupt();
07ba4b061a79896 Alban Bedel  2016-01-23   46  		chained_irq_exit(chip, desc);
07ba4b061a79896 Alban Bedel  2016-01-23   47  		return;
07ba4b061a79896 Alban Bedel  2016-01-23   48  	}
07ba4b061a79896 Alban Bedel  2016-01-23   49  
07ba4b061a79896 Alban Bedel  2016-01-23   50  	while (pending) {
07ba4b061a79896 Alban Bedel  2016-01-23   51  		int bit = __ffs(pending);
07ba4b061a79896 Alban Bedel  2016-01-23   52  
07ba4b061a79896 Alban Bedel  2016-01-23   53  		generic_handle_irq(irq_linear_revmap(domain, bit));
07ba4b061a79896 Alban Bedel  2016-01-23   54  		pending &= ~BIT(bit);
07ba4b061a79896 Alban Bedel  2016-01-23   55  	}
07ba4b061a79896 Alban Bedel  2016-01-23   56  
07ba4b061a79896 Alban Bedel  2016-01-23   57  	chained_irq_exit(chip, desc);
07ba4b061a79896 Alban Bedel  2016-01-23   58  }
07ba4b061a79896 Alban Bedel  2016-01-23   59  
07ba4b061a79896 Alban Bedel  2016-01-23   60  static void ar71xx_misc_irq_unmask(struct irq_data *d)
07ba4b061a79896 Alban Bedel  2016-01-23   61  {
07ba4b061a79896 Alban Bedel  2016-01-23  @62  	void __iomem *base = irq_data_get_irq_chip_data(d);
07ba4b061a79896 Alban Bedel  2016-01-23   63  	unsigned int irq = d->hwirq;
07ba4b061a79896 Alban Bedel  2016-01-23   64  	u32 t;
07ba4b061a79896 Alban Bedel  2016-01-23   65  
07ba4b061a79896 Alban Bedel  2016-01-23   66  	t = __raw_readl(base + AR71XX_RESET_REG_MISC_INT_ENABLE);
07ba4b061a79896 Alban Bedel  2016-01-23   67  	__raw_writel(t | BIT(irq), base + AR71XX_RESET_REG_MISC_INT_ENABLE);
07ba4b061a79896 Alban Bedel  2016-01-23   68  
07ba4b061a79896 Alban Bedel  2016-01-23   69  	/* flush write */
07ba4b061a79896 Alban Bedel  2016-01-23   70  	__raw_readl(base + AR71XX_RESET_REG_MISC_INT_ENABLE);
07ba4b061a79896 Alban Bedel  2016-01-23   71  }
07ba4b061a79896 Alban Bedel  2016-01-23   72  
07ba4b061a79896 Alban Bedel  2016-01-23   73  static void ar71xx_misc_irq_mask(struct irq_data *d)
07ba4b061a79896 Alban Bedel  2016-01-23   74  {
07ba4b061a79896 Alban Bedel  2016-01-23   75  	void __iomem *base = irq_data_get_irq_chip_data(d);
07ba4b061a79896 Alban Bedel  2016-01-23   76  	unsigned int irq = d->hwirq;
07ba4b061a79896 Alban Bedel  2016-01-23   77  	u32 t;
07ba4b061a79896 Alban Bedel  2016-01-23   78  
07ba4b061a79896 Alban Bedel  2016-01-23   79  	t = __raw_readl(base + AR71XX_RESET_REG_MISC_INT_ENABLE);
07ba4b061a79896 Alban Bedel  2016-01-23   80  	__raw_writel(t & ~BIT(irq), base + AR71XX_RESET_REG_MISC_INT_ENABLE);
07ba4b061a79896 Alban Bedel  2016-01-23   81  
07ba4b061a79896 Alban Bedel  2016-01-23   82  	/* flush write */
07ba4b061a79896 Alban Bedel  2016-01-23   83  	__raw_readl(base + AR71XX_RESET_REG_MISC_INT_ENABLE);
07ba4b061a79896 Alban Bedel  2016-01-23   84  }
07ba4b061a79896 Alban Bedel  2016-01-23   85  
07ba4b061a79896 Alban Bedel  2016-01-23   86  static void ar724x_misc_irq_ack(struct irq_data *d)
07ba4b061a79896 Alban Bedel  2016-01-23   87  {
07ba4b061a79896 Alban Bedel  2016-01-23   88  	void __iomem *base = irq_data_get_irq_chip_data(d);
07ba4b061a79896 Alban Bedel  2016-01-23   89  	unsigned int irq = d->hwirq;
07ba4b061a79896 Alban Bedel  2016-01-23   90  	u32 t;
07ba4b061a79896 Alban Bedel  2016-01-23   91  
07ba4b061a79896 Alban Bedel  2016-01-23   92  	t = __raw_readl(base + AR71XX_RESET_REG_MISC_INT_STATUS);
07ba4b061a79896 Alban Bedel  2016-01-23   93  	__raw_writel(t & ~BIT(irq), base + AR71XX_RESET_REG_MISC_INT_STATUS);
07ba4b061a79896 Alban Bedel  2016-01-23   94  
07ba4b061a79896 Alban Bedel  2016-01-23   95  	/* flush write */
07ba4b061a79896 Alban Bedel  2016-01-23   96  	__raw_readl(base + AR71XX_RESET_REG_MISC_INT_STATUS);
07ba4b061a79896 Alban Bedel  2016-01-23   97  }
07ba4b061a79896 Alban Bedel  2016-01-23   98  
07ba4b061a79896 Alban Bedel  2016-01-23   99  static struct irq_chip ath79_misc_irq_chip = {
07ba4b061a79896 Alban Bedel  2016-01-23  100  	.name		= "MISC",
07ba4b061a79896 Alban Bedel  2016-01-23  101  	.irq_unmask	= ar71xx_misc_irq_unmask,
07ba4b061a79896 Alban Bedel  2016-01-23  102  	.irq_mask	= ar71xx_misc_irq_mask,
07ba4b061a79896 Alban Bedel  2016-01-23  103  };
07ba4b061a79896 Alban Bedel  2016-01-23  104  
07ba4b061a79896 Alban Bedel  2016-01-23  105  static int misc_map(struct irq_domain *d, unsigned int irq, irq_hw_number_t hw)
07ba4b061a79896 Alban Bedel  2016-01-23  106  {
07ba4b061a79896 Alban Bedel  2016-01-23  107  	irq_set_chip_and_handler(irq, &ath79_misc_irq_chip, handle_level_irq);
07ba4b061a79896 Alban Bedel  2016-01-23  108  	irq_set_chip_data(irq, d->host_data);
07ba4b061a79896 Alban Bedel  2016-01-23  109  	return 0;
07ba4b061a79896 Alban Bedel  2016-01-23  110  }
07ba4b061a79896 Alban Bedel  2016-01-23  111  
07ba4b061a79896 Alban Bedel  2016-01-23  112  static const struct irq_domain_ops misc_irq_domain_ops = {
07ba4b061a79896 Alban Bedel  2016-01-23  113  	.xlate = irq_domain_xlate_onecell,
07ba4b061a79896 Alban Bedel  2016-01-23  114  	.map = misc_map,
07ba4b061a79896 Alban Bedel  2016-01-23  115  };
07ba4b061a79896 Alban Bedel  2016-01-23  116  
07ba4b061a79896 Alban Bedel  2016-01-23  117  static void __init ath79_misc_intc_domain_init(
07ba4b061a79896 Alban Bedel  2016-01-23  118  	struct irq_domain *domain, int irq)
07ba4b061a79896 Alban Bedel  2016-01-23  119  {
07ba4b061a79896 Alban Bedel  2016-01-23  120  	void __iomem *base = domain->host_data;
07ba4b061a79896 Alban Bedel  2016-01-23  121  
a1e8783db8e0d58 Petr Štetiar 2019-04-12  122  	ath79_perfcount_irq = irq_create_mapping(domain, ATH79_MISC_PERF_IRQ);
a1e8783db8e0d58 Petr Štetiar 2019-04-12  123  
07ba4b061a79896 Alban Bedel  2016-01-23  124  	/* Disable and clear all interrupts */
07ba4b061a79896 Alban Bedel  2016-01-23  125  	__raw_writel(0, base + AR71XX_RESET_REG_MISC_INT_ENABLE);
07ba4b061a79896 Alban Bedel  2016-01-23  126  	__raw_writel(0, base + AR71XX_RESET_REG_MISC_INT_STATUS);
07ba4b061a79896 Alban Bedel  2016-01-23  127  
07ba4b061a79896 Alban Bedel  2016-01-23  128  	irq_set_chained_handler_and_data(irq, ath79_misc_irq_handler, domain);
07ba4b061a79896 Alban Bedel  2016-01-23  129  }
07ba4b061a79896 Alban Bedel  2016-01-23  130  
07ba4b061a79896 Alban Bedel  2016-01-23  131  static int __init ath79_misc_intc_of_init(
07ba4b061a79896 Alban Bedel  2016-01-23  132  	struct device_node *node, struct device_node *parent)
07ba4b061a79896 Alban Bedel  2016-01-23  133  {
07ba4b061a79896 Alban Bedel  2016-01-23  134  	struct irq_domain *domain;
07ba4b061a79896 Alban Bedel  2016-01-23  135  	void __iomem *base;
07ba4b061a79896 Alban Bedel  2016-01-23  136  	int irq;
07ba4b061a79896 Alban Bedel  2016-01-23  137  
07ba4b061a79896 Alban Bedel  2016-01-23  138  	irq = irq_of_parse_and_map(node, 0);
07ba4b061a79896 Alban Bedel  2016-01-23  139  	if (!irq) {
07ba4b061a79896 Alban Bedel  2016-01-23  140  		pr_err("Failed to get MISC IRQ\n");
07ba4b061a79896 Alban Bedel  2016-01-23  141  		return -EINVAL;
07ba4b061a79896 Alban Bedel  2016-01-23  142  	}
07ba4b061a79896 Alban Bedel  2016-01-23  143  
07ba4b061a79896 Alban Bedel  2016-01-23  144  	base = of_iomap(node, 0);
07ba4b061a79896 Alban Bedel  2016-01-23  145  	if (!base) {
07ba4b061a79896 Alban Bedel  2016-01-23  146  		pr_err("Failed to get MISC IRQ registers\n");
07ba4b061a79896 Alban Bedel  2016-01-23  147  		return -ENOMEM;
07ba4b061a79896 Alban Bedel  2016-01-23  148  	}
07ba4b061a79896 Alban Bedel  2016-01-23  149  
07ba4b061a79896 Alban Bedel  2016-01-23  150  	domain = irq_domain_add_linear(node, ATH79_MISC_IRQ_COUNT,
07ba4b061a79896 Alban Bedel  2016-01-23 @151  				&misc_irq_domain_ops, base);
07ba4b061a79896 Alban Bedel  2016-01-23  152  	if (!domain) {
07ba4b061a79896 Alban Bedel  2016-01-23  153  		pr_err("Failed to add MISC irqdomain\n");
07ba4b061a79896 Alban Bedel  2016-01-23  154  		return -EINVAL;
07ba4b061a79896 Alban Bedel  2016-01-23  155  	}
07ba4b061a79896 Alban Bedel  2016-01-23  156  
07ba4b061a79896 Alban Bedel  2016-01-23  157  	ath79_misc_intc_domain_init(domain, irq);
07ba4b061a79896 Alban Bedel  2016-01-23  158  	return 0;
07ba4b061a79896 Alban Bedel  2016-01-23  159  }
07ba4b061a79896 Alban Bedel  2016-01-23  160  
07ba4b061a79896 Alban Bedel  2016-01-23  161  static int __init ar7100_misc_intc_of_init(
07ba4b061a79896 Alban Bedel  2016-01-23  162  	struct device_node *node, struct device_node *parent)
07ba4b061a79896 Alban Bedel  2016-01-23  163  {
07ba4b061a79896 Alban Bedel  2016-01-23  164  	ath79_misc_irq_chip.irq_mask_ack = ar71xx_misc_irq_mask;
07ba4b061a79896 Alban Bedel  2016-01-23  165  	return ath79_misc_intc_of_init(node, parent);
07ba4b061a79896 Alban Bedel  2016-01-23  166  }
07ba4b061a79896 Alban Bedel  2016-01-23  167  
07ba4b061a79896 Alban Bedel  2016-01-23  168  IRQCHIP_DECLARE(ar7100_misc_intc, "qca,ar7100-misc-intc",
07ba4b061a79896 Alban Bedel  2016-01-23  169  		ar7100_misc_intc_of_init);
07ba4b061a79896 Alban Bedel  2016-01-23  170  
07ba4b061a79896 Alban Bedel  2016-01-23  171  static int __init ar7240_misc_intc_of_init(
07ba4b061a79896 Alban Bedel  2016-01-23  172  	struct device_node *node, struct device_node *parent)
07ba4b061a79896 Alban Bedel  2016-01-23  173  {
07ba4b061a79896 Alban Bedel  2016-01-23  174  	ath79_misc_irq_chip.irq_ack = ar724x_misc_irq_ack;
07ba4b061a79896 Alban Bedel  2016-01-23  175  	return ath79_misc_intc_of_init(node, parent);
07ba4b061a79896 Alban Bedel  2016-01-23  176  }
07ba4b061a79896 Alban Bedel  2016-01-23  177  
07ba4b061a79896 Alban Bedel  2016-01-23  178  IRQCHIP_DECLARE(ar7240_misc_intc, "qca,ar7240-misc-intc",
07ba4b061a79896 Alban Bedel  2016-01-23  179  		ar7240_misc_intc_of_init);
07ba4b061a79896 Alban Bedel  2016-01-23  180  
07ba4b061a79896 Alban Bedel  2016-01-23  181  void __init ath79_misc_irq_init(void __iomem *regs, int irq,
07ba4b061a79896 Alban Bedel  2016-01-23  182  				int irq_base, bool is_ar71xx)
07ba4b061a79896 Alban Bedel  2016-01-23  183  {
07ba4b061a79896 Alban Bedel  2016-01-23  184  	struct irq_domain *domain;
07ba4b061a79896 Alban Bedel  2016-01-23  185  
07ba4b061a79896 Alban Bedel  2016-01-23  186  	if (is_ar71xx)
07ba4b061a79896 Alban Bedel  2016-01-23  187  		ath79_misc_irq_chip.irq_mask_ack = ar71xx_misc_irq_mask;
07ba4b061a79896 Alban Bedel  2016-01-23  188  	else
07ba4b061a79896 Alban Bedel  2016-01-23  189  		ath79_misc_irq_chip.irq_ack = ar724x_misc_irq_ack;
07ba4b061a79896 Alban Bedel  2016-01-23  190  
07ba4b061a79896 Alban Bedel  2016-01-23  191  	domain = irq_domain_add_legacy(NULL, ATH79_MISC_IRQ_COUNT,
07ba4b061a79896 Alban Bedel  2016-01-23 @192  			irq_base, 0, &misc_irq_domain_ops, regs);

:::::: The code at line 36 was first introduced by commit
:::::: 07ba4b061a79896315a7be4b123de12df6a9d2bd irqchip/ath79-misc: Move the MISC driver from arch/mips/ath79/

:::::: TO: Alban Bedel <albeu@...e.fr>
:::::: CC: Jason Cooper <jason@...edaemon.net>

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

Download attachment ".config.gz" of type "application/gzip" (31028 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ