Re: [PATCH] [PATCH] qla4xxx: Fix a sleep-in-atomic bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jia-Ju,

[auto build test ERROR on scsi/for-next]
[also build test ERROR on v4.12-rc3 next-20170530]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Jia-Ju-Bai/qla4xxx-Fix-a-sleep-in-atomic-bug/20170531-104628
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
config: x86_64-randconfig-x006-201722 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers/scsi/qla4xxx/ql4_nx.c: In function 'qla4_82xx_wr_32':
>> drivers/scsi/qla4xxx/ql4_nx.c:389:3: error: too many arguments to function 'qla4_82xx_crb_win_lock'
      qla4_82xx_crb_win_lock(ha, flags);
      ^~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/scsi/qla4xxx/ql4_nx.c:12:0:
   drivers/scsi/qla4xxx/ql4_glbl.h:118:5: note: declared here
    int qla4_82xx_crb_win_lock(struct scsi_qla_host *);
        ^~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/qla4xxx/ql4_nx.c: In function 'qla4_82xx_rd_32':
   drivers/scsi/qla4xxx/ql4_nx.c:413:3: error: too many arguments to function 'qla4_82xx_crb_win_lock'
      qla4_82xx_crb_win_lock(ha, flags);
      ^~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/scsi/qla4xxx/ql4_nx.c:12:0:
   drivers/scsi/qla4xxx/ql4_glbl.h:118:5: note: declared here
    int qla4_82xx_crb_win_lock(struct scsi_qla_host *);
        ^~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/qla4xxx/ql4_nx.c: At top level:
>> drivers/scsi/qla4xxx/ql4_nx.c:479:5: error: conflicting types for 'qla4_82xx_crb_win_lock'
    int qla4_82xx_crb_win_lock(struct scsi_qla_host *ha, unsigned long flags)
        ^~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/scsi/qla4xxx/ql4_nx.c:12:0:
   drivers/scsi/qla4xxx/ql4_glbl.h:118:5: note: previous declaration of 'qla4_82xx_crb_win_lock' was here
    int qla4_82xx_crb_win_lock(struct scsi_qla_host *);
        ^~~~~~~~~~~~~~~~~~~~~~

vim +/qla4_82xx_crb_win_lock +389 drivers/scsi/qla4xxx/ql4_nx.c

   383		rv = qla4_82xx_pci_get_crb_addr_2M(ha, &off);
   384	
   385		BUG_ON(rv == -1);
   386	
   387		if (rv == 1) {
   388			write_lock_irqsave(&ha->hw_lock, flags);
 > 389			qla4_82xx_crb_win_lock(ha, flags);
   390			qla4_82xx_pci_set_crbwindow_2M(ha, &off);
   391		}
   392	
   393		writel(data, (void __iomem *)off);
   394	
   395		if (rv == 1) {
   396			qla4_82xx_crb_win_unlock(ha);
   397			write_unlock_irqrestore(&ha->hw_lock, flags);
   398		}
   399	}
   400	
   401	uint32_t qla4_82xx_rd_32(struct scsi_qla_host *ha, ulong off)
   402	{
   403		unsigned long flags = 0;
   404		int rv;
   405		u32 data;
   406	
   407		rv = qla4_82xx_pci_get_crb_addr_2M(ha, &off);
   408	
   409		BUG_ON(rv == -1);
   410	
   411		if (rv == 1) {
   412			write_lock_irqsave(&ha->hw_lock, flags);
 > 413			qla4_82xx_crb_win_lock(ha, flags);
   414			qla4_82xx_pci_set_crbwindow_2M(ha, &off);
   415		}
   416		data = readl((void __iomem *)off);
   417	
   418		if (rv == 1) {
   419			qla4_82xx_crb_win_unlock(ha);
   420			write_unlock_irqrestore(&ha->hw_lock, flags);
   421		}
   422		return data;
   423	}
   424	
   425	/* Minidump related functions */
   426	int qla4_82xx_md_rd_32(struct scsi_qla_host *ha, uint32_t off, uint32_t *data)
   427	{
   428		uint32_t win_read, off_value;
   429		int rval = QLA_SUCCESS;
   430	
   431		off_value  = off & 0xFFFF0000;
   432		writel(off_value, (void __iomem *)(CRB_WINDOW_2M + ha->nx_pcibase));
   433	
   434		/*
   435		 * Read back value to make sure write has gone through before trying
   436		 * to use it.
   437		 */
   438		win_read = readl((void __iomem *)(CRB_WINDOW_2M + ha->nx_pcibase));
   439		if (win_read != off_value) {
   440			DEBUG2(ql4_printk(KERN_INFO, ha,
   441					  "%s: Written (0x%x) != Read (0x%x), off=0x%x\n",
   442					  __func__, off_value, win_read, off));
   443			rval = QLA_ERROR;
   444		} else {
   445			off_value  = off & 0x0000FFFF;
   446			*data = readl((void __iomem *)(off_value + CRB_INDIRECT_2M +
   447						       ha->nx_pcibase));
   448		}
   449		return rval;
   450	}
   451	
   452	int qla4_82xx_md_wr_32(struct scsi_qla_host *ha, uint32_t off, uint32_t data)
   453	{
   454		uint32_t win_read, off_value;
   455		int rval = QLA_SUCCESS;
   456	
   457		off_value  = off & 0xFFFF0000;
   458		writel(off_value, (void __iomem *)(CRB_WINDOW_2M + ha->nx_pcibase));
   459	
   460		/* Read back value to make sure write has gone through before trying
   461		 * to use it.
   462		 */
   463		win_read = readl((void __iomem *)(CRB_WINDOW_2M + ha->nx_pcibase));
   464		if (win_read != off_value) {
   465			DEBUG2(ql4_printk(KERN_INFO, ha,
   466					  "%s: Written (0x%x) != Read (0x%x), off=0x%x\n",
   467					  __func__, off_value, win_read, off));
   468			rval = QLA_ERROR;
   469		} else {
   470			off_value  = off & 0x0000FFFF;
   471			writel(data, (void __iomem *)(off_value + CRB_INDIRECT_2M +
   472						      ha->nx_pcibase));
   473		}
   474		return rval;
   475	}
   476	
   477	#define CRB_WIN_LOCK_TIMEOUT 100000000
   478	
 > 479	int qla4_82xx_crb_win_lock(struct scsi_qla_host *ha, unsigned long flags)
   480	{
   481		int i;
   482		int done = 0, timeout = 0;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux