All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: alsa-devel@alsa-project.org, kbuild-all@lists.01.org
Subject: [sound:for-next 92/92] sound/isa/sc6000.c:534:35: sparse: sparse: incorrect type in initializer (different address spaces)
Date: Wed, 21 Jul 2021 05:47:17 +0800	[thread overview]
Message-ID: <202107210511.SnFqlZMa-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 6140 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
head:   9b7843d1e125dca0d6ed0af9e8dd709d41eb25ad
commit: 9b7843d1e125dca0d6ed0af9e8dd709d41eb25ad [92/92] ALSA: sc6000: Assign vport directly on card's private_data
config: x86_64-randconfig-s021-20210718 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-341-g8af24329-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/commit/?id=9b7843d1e125dca0d6ed0af9e8dd709d41eb25ad
        git remote add sound https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
        git fetch --no-tags sound for-next
        git checkout 9b7843d1e125dca0d6ed0af9e8dd709d41eb25ad
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 

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


sparse warnings: (new ones prefixed by >>)
>> sound/isa/sc6000.c:534:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected char [noderef] __iomem *vport @@     got void *private_data @@
   sound/isa/sc6000.c:534:35: sparse:     expected char [noderef] __iomem *vport
   sound/isa/sc6000.c:534:35: sparse:     got void *private_data
>> sound/isa/sc6000.c:585:28: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void *private_data @@     got char [noderef] __iomem *[assigned] vport @@
   sound/isa/sc6000.c:585:28: sparse:     expected void *private_data
   sound/isa/sc6000.c:585:28: sparse:     got char [noderef] __iomem *[assigned] vport

vim +534 sound/isa/sc6000.c

   531	
   532	static void snd_sc6000_free(struct snd_card *card)
   533	{
 > 534		char __iomem *vport = card->private_data;
   535	
   536		if (vport)
   537			sc6000_setup_board(vport, 0);
   538	}
   539	
   540	static int snd_sc6000_probe(struct device *devptr, unsigned int dev)
   541	{
   542		static const int possible_irqs[] = { 5, 7, 9, 10, 11, -1 };
   543		static const int possible_dmas[] = { 1, 3, 0, -1 };
   544		int err;
   545		int xirq = irq[dev];
   546		int xdma = dma[dev];
   547		struct snd_card *card;
   548		struct snd_wss *chip;
   549		struct snd_opl3 *opl3;
   550		char __iomem *vport;
   551		char __iomem *vmss_port;
   552	
   553		err = snd_devm_card_new(devptr, index[dev], id[dev], THIS_MODULE,
   554					0, &card);
   555		if (err < 0)
   556			return err;
   557	
   558		if (xirq == SNDRV_AUTO_IRQ) {
   559			xirq = snd_legacy_find_free_irq(possible_irqs);
   560			if (xirq < 0) {
   561				snd_printk(KERN_ERR PFX "unable to find a free IRQ\n");
   562				return -EBUSY;
   563			}
   564		}
   565	
   566		if (xdma == SNDRV_AUTO_DMA) {
   567			xdma = snd_legacy_find_free_dma(possible_dmas);
   568			if (xdma < 0) {
   569				snd_printk(KERN_ERR PFX "unable to find a free DMA\n");
   570				return -EBUSY;
   571			}
   572		}
   573	
   574		if (!devm_request_region(devptr, port[dev], 0x10, DRV_NAME)) {
   575			snd_printk(KERN_ERR PFX
   576				   "I/O port region is already in use.\n");
   577			return -EBUSY;
   578		}
   579		vport = devm_ioport_map(devptr, port[dev], 0x10);
   580		if (!vport) {
   581			snd_printk(KERN_ERR PFX
   582				   "I/O port cannot be iomapped.\n");
   583			return -EBUSY;
   584		}
 > 585		card->private_data = vport;
   586	
   587		/* to make it marked as used */
   588		if (!devm_request_region(devptr, mss_port[dev], 4, DRV_NAME)) {
   589			snd_printk(KERN_ERR PFX
   590				   "SC-6000 port I/O port region is already in use.\n");
   591			return -EBUSY;
   592		}
   593		vmss_port = devm_ioport_map(devptr, mss_port[dev], 4);
   594		if (!vmss_port) {
   595			snd_printk(KERN_ERR PFX
   596				   "MSS port I/O cannot be iomapped.\n");
   597			return -EBUSY;
   598		}
   599	
   600		snd_printd("Initializing BASE[0x%lx] IRQ[%d] DMA[%d] MIRQ[%d]\n",
   601			   port[dev], xirq, xdma,
   602			   mpu_irq[dev] == SNDRV_AUTO_IRQ ? 0 : mpu_irq[dev]);
   603	
   604		err = sc6000_init_board(vport, vmss_port, dev);
   605		if (err < 0)
   606			return err;
   607		card->private_free = snd_sc6000_free;
   608	
   609		err = snd_wss_create(card, mss_port[dev] + 4,  -1, xirq, xdma, -1,
   610				     WSS_HW_DETECT, 0, &chip);
   611		if (err < 0)
   612			return err;
   613	
   614		err = snd_wss_pcm(chip, 0);
   615		if (err < 0) {
   616			snd_printk(KERN_ERR PFX
   617				   "error creating new WSS PCM device\n");
   618			return err;
   619		}
   620		err = snd_wss_mixer(chip);
   621		if (err < 0) {
   622			snd_printk(KERN_ERR PFX "error creating new WSS mixer\n");
   623			return err;
   624		}
   625		err = snd_sc6000_mixer(chip);
   626		if (err < 0) {
   627			snd_printk(KERN_ERR PFX "the mixer rewrite failed\n");
   628			return err;
   629		}
   630		if (snd_opl3_create(card,
   631				    0x388, 0x388 + 2,
   632				    OPL3_HW_AUTO, 0, &opl3) < 0) {
   633			snd_printk(KERN_ERR PFX "no OPL device at 0x%x-0x%x ?\n",
   634				   0x388, 0x388 + 2);
   635		} else {
   636			err = snd_opl3_hwdep_new(opl3, 0, 1, NULL);
   637			if (err < 0)
   638				return err;
   639		}
   640	
   641		if (mpu_port[dev] != SNDRV_AUTO_PORT) {
   642			if (mpu_irq[dev] == SNDRV_AUTO_IRQ)
   643				mpu_irq[dev] = -1;
   644			if (snd_mpu401_uart_new(card, 0,
   645						MPU401_HW_MPU401,
   646						mpu_port[dev], 0,
   647						mpu_irq[dev], NULL) < 0)
   648				snd_printk(KERN_ERR "no MPU-401 device at 0x%lx ?\n",
   649						mpu_port[dev]);
   650		}
   651	
   652		strcpy(card->driver, DRV_NAME);
   653		strcpy(card->shortname, "SC-6000");
   654		sprintf(card->longname, "Gallant SC-6000 at 0x%lx, irq %d, dma %d",
   655			mss_port[dev], xirq, xdma);
   656	
   657		err = snd_card_register(card);
   658		if (err < 0)
   659			return err;
   660	
   661		dev_set_drvdata(devptr, card);
   662		return 0;
   663	}
   664	

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 44401 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [sound:for-next 92/92] sound/isa/sc6000.c:534:35: sparse: sparse: incorrect type in initializer (different address spaces)
Date: Wed, 21 Jul 2021 05:47:17 +0800	[thread overview]
Message-ID: <202107210511.SnFqlZMa-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 6304 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
head:   9b7843d1e125dca0d6ed0af9e8dd709d41eb25ad
commit: 9b7843d1e125dca0d6ed0af9e8dd709d41eb25ad [92/92] ALSA: sc6000: Assign vport directly on card's private_data
config: x86_64-randconfig-s021-20210718 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-341-g8af24329-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/commit/?id=9b7843d1e125dca0d6ed0af9e8dd709d41eb25ad
        git remote add sound https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
        git fetch --no-tags sound for-next
        git checkout 9b7843d1e125dca0d6ed0af9e8dd709d41eb25ad
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 

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


sparse warnings: (new ones prefixed by >>)
>> sound/isa/sc6000.c:534:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected char [noderef] __iomem *vport @@     got void *private_data @@
   sound/isa/sc6000.c:534:35: sparse:     expected char [noderef] __iomem *vport
   sound/isa/sc6000.c:534:35: sparse:     got void *private_data
>> sound/isa/sc6000.c:585:28: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void *private_data @@     got char [noderef] __iomem *[assigned] vport @@
   sound/isa/sc6000.c:585:28: sparse:     expected void *private_data
   sound/isa/sc6000.c:585:28: sparse:     got char [noderef] __iomem *[assigned] vport

vim +534 sound/isa/sc6000.c

   531	
   532	static void snd_sc6000_free(struct snd_card *card)
   533	{
 > 534		char __iomem *vport = card->private_data;
   535	
   536		if (vport)
   537			sc6000_setup_board(vport, 0);
   538	}
   539	
   540	static int snd_sc6000_probe(struct device *devptr, unsigned int dev)
   541	{
   542		static const int possible_irqs[] = { 5, 7, 9, 10, 11, -1 };
   543		static const int possible_dmas[] = { 1, 3, 0, -1 };
   544		int err;
   545		int xirq = irq[dev];
   546		int xdma = dma[dev];
   547		struct snd_card *card;
   548		struct snd_wss *chip;
   549		struct snd_opl3 *opl3;
   550		char __iomem *vport;
   551		char __iomem *vmss_port;
   552	
   553		err = snd_devm_card_new(devptr, index[dev], id[dev], THIS_MODULE,
   554					0, &card);
   555		if (err < 0)
   556			return err;
   557	
   558		if (xirq == SNDRV_AUTO_IRQ) {
   559			xirq = snd_legacy_find_free_irq(possible_irqs);
   560			if (xirq < 0) {
   561				snd_printk(KERN_ERR PFX "unable to find a free IRQ\n");
   562				return -EBUSY;
   563			}
   564		}
   565	
   566		if (xdma == SNDRV_AUTO_DMA) {
   567			xdma = snd_legacy_find_free_dma(possible_dmas);
   568			if (xdma < 0) {
   569				snd_printk(KERN_ERR PFX "unable to find a free DMA\n");
   570				return -EBUSY;
   571			}
   572		}
   573	
   574		if (!devm_request_region(devptr, port[dev], 0x10, DRV_NAME)) {
   575			snd_printk(KERN_ERR PFX
   576				   "I/O port region is already in use.\n");
   577			return -EBUSY;
   578		}
   579		vport = devm_ioport_map(devptr, port[dev], 0x10);
   580		if (!vport) {
   581			snd_printk(KERN_ERR PFX
   582				   "I/O port cannot be iomapped.\n");
   583			return -EBUSY;
   584		}
 > 585		card->private_data = vport;
   586	
   587		/* to make it marked as used */
   588		if (!devm_request_region(devptr, mss_port[dev], 4, DRV_NAME)) {
   589			snd_printk(KERN_ERR PFX
   590				   "SC-6000 port I/O port region is already in use.\n");
   591			return -EBUSY;
   592		}
   593		vmss_port = devm_ioport_map(devptr, mss_port[dev], 4);
   594		if (!vmss_port) {
   595			snd_printk(KERN_ERR PFX
   596				   "MSS port I/O cannot be iomapped.\n");
   597			return -EBUSY;
   598		}
   599	
   600		snd_printd("Initializing BASE[0x%lx] IRQ[%d] DMA[%d] MIRQ[%d]\n",
   601			   port[dev], xirq, xdma,
   602			   mpu_irq[dev] == SNDRV_AUTO_IRQ ? 0 : mpu_irq[dev]);
   603	
   604		err = sc6000_init_board(vport, vmss_port, dev);
   605		if (err < 0)
   606			return err;
   607		card->private_free = snd_sc6000_free;
   608	
   609		err = snd_wss_create(card, mss_port[dev] + 4,  -1, xirq, xdma, -1,
   610				     WSS_HW_DETECT, 0, &chip);
   611		if (err < 0)
   612			return err;
   613	
   614		err = snd_wss_pcm(chip, 0);
   615		if (err < 0) {
   616			snd_printk(KERN_ERR PFX
   617				   "error creating new WSS PCM device\n");
   618			return err;
   619		}
   620		err = snd_wss_mixer(chip);
   621		if (err < 0) {
   622			snd_printk(KERN_ERR PFX "error creating new WSS mixer\n");
   623			return err;
   624		}
   625		err = snd_sc6000_mixer(chip);
   626		if (err < 0) {
   627			snd_printk(KERN_ERR PFX "the mixer rewrite failed\n");
   628			return err;
   629		}
   630		if (snd_opl3_create(card,
   631				    0x388, 0x388 + 2,
   632				    OPL3_HW_AUTO, 0, &opl3) < 0) {
   633			snd_printk(KERN_ERR PFX "no OPL device at 0x%x-0x%x ?\n",
   634				   0x388, 0x388 + 2);
   635		} else {
   636			err = snd_opl3_hwdep_new(opl3, 0, 1, NULL);
   637			if (err < 0)
   638				return err;
   639		}
   640	
   641		if (mpu_port[dev] != SNDRV_AUTO_PORT) {
   642			if (mpu_irq[dev] == SNDRV_AUTO_IRQ)
   643				mpu_irq[dev] = -1;
   644			if (snd_mpu401_uart_new(card, 0,
   645						MPU401_HW_MPU401,
   646						mpu_port[dev], 0,
   647						mpu_irq[dev], NULL) < 0)
   648				snd_printk(KERN_ERR "no MPU-401 device@0x%lx ?\n",
   649						mpu_port[dev]);
   650		}
   651	
   652		strcpy(card->driver, DRV_NAME);
   653		strcpy(card->shortname, "SC-6000");
   654		sprintf(card->longname, "Gallant SC-6000 at 0x%lx, irq %d, dma %d",
   655			mss_port[dev], xirq, xdma);
   656	
   657		err = snd_card_register(card);
   658		if (err < 0)
   659			return err;
   660	
   661		dev_set_drvdata(devptr, card);
   662		return 0;
   663	}
   664	

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 44401 bytes --]

             reply	other threads:[~2021-07-20 21:49 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-20 21:47 kernel test robot [this message]
2021-07-20 21:47 ` [sound:for-next 92/92] sound/isa/sc6000.c:534:35: sparse: sparse: incorrect type in initializer (different address spaces) kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202107210511.SnFqlZMa-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=kbuild-all@lists.01.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.