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:   Mon, 17 Aug 2020 08:39:11 +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/message/fusion/mptbase.c:3754:9: sparse: sparse: cast
 removes address space '__iomem' of expression

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   9123e3a74ec7b934a4a099e98af6a61c2f80bbf5
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date:   8 weeks ago
config: riscv-randconfig-s031-20200817 (attached as .config)
compiler: riscv32-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=riscv 

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/message/fusion/mptbase.c:640:25: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:3141:37: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3142:37: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:3143:40: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3144:36: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3145:37: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:3146:26: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3149:42: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3150:43: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3161:41: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3166:49: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:3168:36: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3175:33: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:3176:40: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3178:33: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:3180:33: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3181:42: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:3190:46: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:3299:30: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:3300:29: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3301:30: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:3302:30: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3303:30: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3304:33: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3305:39: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3306:36: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3307:33: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3371:37: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [addressable] [assigned] [usertype] MsgVersion @@     got restricted __le16 [usertype] @@
   drivers/message/fusion/mptbase.c:3371:37: sparse:     expected unsigned short [addressable] [assigned] [usertype] MsgVersion
   drivers/message/fusion/mptbase.c:3371:37: sparse:     got restricted __le16 [usertype]
   drivers/message/fusion/mptbase.c:3372:40: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [addressable] [assigned] [usertype] HeaderVersion @@     got restricted __le16 [usertype] @@
   drivers/message/fusion/mptbase.c:3372:40: sparse:     expected unsigned short [addressable] [assigned] [usertype] HeaderVersion
   drivers/message/fusion/mptbase.c:3372:40: sparse:     got restricted __le16 [usertype]
   drivers/message/fusion/mptbase.c:3379:33: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [addressable] [assigned] [usertype] ReplyFrameSize @@     got restricted __le16 [usertype] @@
   drivers/message/fusion/mptbase.c:3379:33: sparse:     expected unsigned short [addressable] [assigned] [usertype] ReplyFrameSize
   drivers/message/fusion/mptbase.c:3379:33: sparse:     got restricted __le16 [usertype]
   drivers/message/fusion/mptbase.c:3385:42: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [addressable] [assigned] [usertype] HostMfaHighAddr @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:3385:42: sparse:     expected unsigned int [addressable] [assigned] [usertype] HostMfaHighAddr
   drivers/message/fusion/mptbase.c:3385:42: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:3386:46: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [addressable] [assigned] [usertype] SenseBufferHighAddr @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:3386:46: sparse:     expected unsigned int [addressable] [assigned] [usertype] SenseBufferHighAddr
   drivers/message/fusion/mptbase.c:3386:46: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:3389:42: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [addressable] [assigned] [usertype] HostMfaHighAddr @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:3389:42: sparse:     expected unsigned int [addressable] [assigned] [usertype] HostMfaHighAddr
   drivers/message/fusion/mptbase.c:3389:42: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:3390:46: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [addressable] [assigned] [usertype] SenseBufferHighAddr @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:3390:46: sparse:     expected unsigned int [addressable] [assigned] [usertype] SenseBufferHighAddr
   drivers/message/fusion/mptbase.c:3390:46: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:3619:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] ImageSize @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:3619:27: sparse:     expected unsigned int [usertype] ImageSize
   drivers/message/fusion/mptbase.c:3619:27: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:3643:26: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:3647:21: sparse: sparse: cast to restricted __le32
>> drivers/message/fusion/mptbase.c:3754:9: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/message/fusion/mptbase.c:3754:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
>> drivers/message/fusion/mptbase.c:3754:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/message/fusion/mptbase.c:3754:9: sparse:     got void *
   drivers/message/fusion/mptbase.c:3761:17: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/message/fusion/mptbase.c:3761:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/message/fusion/mptbase.c:3761:17: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/message/fusion/mptbase.c:3761:17: sparse:     got void *
   drivers/message/fusion/mptbase.c:3775:17: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/message/fusion/mptbase.c:3775:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/message/fusion/mptbase.c:3775:17: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/message/fusion/mptbase.c:3775:17: sparse:     got void *
   drivers/message/fusion/mptbase.c:3778:25: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/message/fusion/mptbase.c:3778:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/message/fusion/mptbase.c:3778:25: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/message/fusion/mptbase.c:3778:25: sparse:     got void *
   drivers/message/fusion/mptbase.c:3785:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/message/fusion/mptbase.c:3785:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/message/fusion/mptbase.c:3785:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/message/fusion/mptbase.c:3785:9: sparse:     got void *
   drivers/message/fusion/mptbase.c:3789:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/message/fusion/mptbase.c:3789:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/message/fusion/mptbase.c:3789:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/message/fusion/mptbase.c:3789:9: sparse:     got void *
   drivers/message/fusion/mptbase.c:3799:17: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/message/fusion/mptbase.c:3799:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/message/fusion/mptbase.c:3799:17: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/message/fusion/mptbase.c:3799:17: sparse:     got void *
   drivers/message/fusion/mptbase.c:3800:30: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/message/fusion/mptbase.c:3800:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
>> drivers/message/fusion/mptbase.c:3800:30: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/message/fusion/mptbase.c:3800:30: sparse:     got void *
   drivers/message/fusion/mptbase.c:3802:17: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/message/fusion/mptbase.c:3802:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/message/fusion/mptbase.c:3802:17: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/message/fusion/mptbase.c:3802:17: sparse:     got void *
   drivers/message/fusion/mptbase.c:3803:17: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/message/fusion/mptbase.c:3803:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/message/fusion/mptbase.c:3803:17: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/message/fusion/mptbase.c:3803:17: sparse:     got void *
   drivers/message/fusion/mptbase.c:4884:38: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:4889:46: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:4905:25: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:5334:44: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:5428:54: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:5429:59: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:5510:47: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:5537:38: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:5544:40: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:5548:49: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:6180:23: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:6182:31: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:6188:58: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] CoalescingTimeout @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:6188:58: sparse:     expected unsigned int [usertype] CoalescingTimeout
   drivers/message/fusion/mptbase.c:6188:58: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:6287:24: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [addressable] [assigned] [usertype] MsgContext @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:6287:24: sparse:     expected unsigned int [addressable] [assigned] [usertype] MsgContext
   drivers/message/fusion/mptbase.c:6287:24: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:1321:21: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:7710:17: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:7711:21: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:7713:27: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:7759:61: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:529:19: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:539:20: sparse: sparse: cast to restricted __le16
   drivers/message/fusion/mptbase.c:541:37: sparse: sparse: cast to restricted __le32
   drivers/message/fusion/mptbase.c:919:55: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] req_idx @@     got restricted __le16 [usertype] @@
   drivers/message/fusion/mptbase.c:919:55: sparse:     expected unsigned short [usertype] req_idx
   drivers/message/fusion/mptbase.c:919:55: sparse:     got restricted __le16 [usertype]
   drivers/message/fusion/mptbase.c:969:47: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] req_idx @@     got restricted __le16 [usertype] @@
   drivers/message/fusion/mptbase.c:969:47: sparse:     expected unsigned short [usertype] req_idx
   drivers/message/fusion/mptbase.c:969:47: sparse:     got restricted __le16 [usertype]
   drivers/message/fusion/mptbase.c:1004:47: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] req_idx @@     got restricted __le16 [usertype] @@
   drivers/message/fusion/mptbase.c:1004:47: sparse:     expected unsigned short [usertype] req_idx
   drivers/message/fusion/mptbase.c:1004:47: sparse:     got restricted __le16 [usertype]
   drivers/message/fusion/mptbase.c:1031:13: sparse: sparse: restricted __le32 degrades to integer
   drivers/message/fusion/mptbase.c:1034:34: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] arg1 @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:1034:34: sparse:     expected unsigned int [usertype] arg1
   drivers/message/fusion/mptbase.c:1034:34: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:1057:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] FlagsLength @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:1057:27: sparse:     expected unsigned int [usertype] FlagsLength
   drivers/message/fusion/mptbase.c:1057:27: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:1058:23: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] Address @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:1058:23: sparse:     expected unsigned int [usertype] Address
   drivers/message/fusion/mptbase.c:1058:23: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:1074:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] Low @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:1074:27: sparse:     expected unsigned int [usertype] Low
   drivers/message/fusion/mptbase.c:1074:27: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:1076:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] High @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:1076:28: sparse:     expected unsigned int [usertype] High
   drivers/message/fusion/mptbase.c:1076:28: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:1078:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] FlagsLength @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:1078:27: sparse:     expected unsigned int [usertype] FlagsLength
   drivers/message/fusion/mptbase.c:1078:27: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:1097:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] Low @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:1097:27: sparse:     expected unsigned int [usertype] Low
   drivers/message/fusion/mptbase.c:1097:27: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:1115:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] High @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:1115:28: sparse:     expected unsigned int [usertype] High
   drivers/message/fusion/mptbase.c:1115:28: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:1116:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] FlagsLength @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:1116:27: sparse:     expected unsigned int [usertype] FlagsLength
   drivers/message/fusion/mptbase.c:1116:27: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:1134:24: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] Length @@     got restricted __le16 [usertype] @@
   drivers/message/fusion/mptbase.c:1134:24: sparse:     expected unsigned short [usertype] Length
   drivers/message/fusion/mptbase.c:1134:24: sparse:     got restricted __le16 [usertype]
   drivers/message/fusion/mptbase.c:1137:25: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] Address @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:1137:25: sparse:     expected unsigned int [usertype] Address
   drivers/message/fusion/mptbase.c:1137:25: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:1155:24: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] Length @@     got restricted __le16 [usertype] @@
   drivers/message/fusion/mptbase.c:1155:24: sparse:     expected unsigned short [usertype] Length
   drivers/message/fusion/mptbase.c:1155:24: sparse:     got restricted __le16 [usertype]
   drivers/message/fusion/mptbase.c:1161:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] Low @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:1161:29: sparse:     expected unsigned int [usertype] Low
   drivers/message/fusion/mptbase.c:1161:29: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:1163:30: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] High @@     got restricted __le32 [usertype] @@
   drivers/message/fusion/mptbase.c:1163:30: sparse:     expected unsigned int [usertype] High
   drivers/message/fusion/mptbase.c:1163:30: sparse:     got restricted __le32 [usertype]
   drivers/message/fusion/mptbase.c:1203:55: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] req_idx @@     got restricted __le16 [usertype] @@
   drivers/message/fusion/mptbase.c:1203:55: sparse:     expected unsigned short [usertype] req_idx
   drivers/message/fusion/mptbase.c:1203:55: sparse:     got restricted __le16 [usertype]
   drivers/message/fusion/mptbase.c:2155:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] device_state @@     got restricted pci_power_t @@
   drivers/message/fusion/mptbase.c:2155:22: sparse:     expected unsigned int [usertype] device_state
   drivers/message/fusion/mptbase.c:2155:22: sparse:     got restricted pci_power_t
   drivers/message/fusion/mptbase.c:2180:35: sparse: sparse: too many warnings

# 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 +/__iomem +3754 drivers/message/fusion/mptbase.c

^1da177e4c3f41 Linus Torvalds    2005-04-16  3663  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3664  /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
d9489fb6061479 Randy Dunlap      2006-12-06  3665  /**
^1da177e4c3f41 Linus Torvalds    2005-04-16  3666   *	mpt_downloadboot - DownloadBoot code
^1da177e4c3f41 Linus Torvalds    2005-04-16  3667   *	@ioc: Pointer to MPT_ADAPTER structure
d9489fb6061479 Randy Dunlap      2006-12-06  3668   *	@pFwHeader: Pointer to firmware header info
^1da177e4c3f41 Linus Torvalds    2005-04-16  3669   *	@sleepFlag: Specifies whether the process can sleep
^1da177e4c3f41 Linus Torvalds    2005-04-16  3670   *
^1da177e4c3f41 Linus Torvalds    2005-04-16  3671   *	FwDownloadBoot requires Programmed IO access.
^1da177e4c3f41 Linus Torvalds    2005-04-16  3672   *
^1da177e4c3f41 Linus Torvalds    2005-04-16  3673   *	Returns 0 for success
^1da177e4c3f41 Linus Torvalds    2005-04-16  3674   *		-1 FW Image size is 0
^1da177e4c3f41 Linus Torvalds    2005-04-16  3675   *		-2 No valid cached_fw Pointer
^1da177e4c3f41 Linus Torvalds    2005-04-16  3676   *		<0 for fw upload failure.
^1da177e4c3f41 Linus Torvalds    2005-04-16  3677   */
^1da177e4c3f41 Linus Torvalds    2005-04-16  3678  static int
82ffb671640647 Christoph Hellwig 2005-09-09  3679  mpt_downloadboot(MPT_ADAPTER *ioc, MpiFwHeader_t *pFwHeader, int sleepFlag)
^1da177e4c3f41 Linus Torvalds    2005-04-16  3680  {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3681  	MpiExtImageHeader_t	*pExtImage;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3682  	u32			 fwSize;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3683  	u32			 diag0val;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3684  	int			 count;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3685  	u32			*ptrFw;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3686  	u32			 diagRwData;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3687  	u32			 nextImage;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3688  	u32			 load_addr;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3689  	u32 			 ioc_state=0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3690  
436ace725f35eb Prakash, Sathya   2007-07-24  3691  	ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "downloadboot: fw size 0x%x (%d), FW Ptr %p\n",
82ffb671640647 Christoph Hellwig 2005-09-09  3692  				ioc->name, pFwHeader->ImageSize, pFwHeader->ImageSize, pFwHeader));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3693  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3694  	CHIPREG_WRITE32(&ioc->chip->WriteSequence, 0xFF);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3695  	CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_1ST_KEY_VALUE);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3696  	CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_2ND_KEY_VALUE);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3697  	CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_3RD_KEY_VALUE);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3698  	CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_4TH_KEY_VALUE);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3699  	CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_5TH_KEY_VALUE);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3700  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3701  	CHIPREG_WRITE32(&ioc->chip->Diagnostic, (MPI_DIAG_PREVENT_IOC_BOOT | MPI_DIAG_DISABLE_ARM));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3702  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3703  	/* wait 1 msec */
^1da177e4c3f41 Linus Torvalds    2005-04-16  3704  	if (sleepFlag == CAN_SLEEP) {
d6be06c84da962 Michael Reed      2006-05-24  3705  		msleep(1);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3706  	} else {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3707  		mdelay (1);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3708  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3709  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3710  	diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3711  	CHIPREG_WRITE32(&ioc->chip->Diagnostic, diag0val | MPI_DIAG_RESET_ADAPTER);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3712  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3713  	for (count = 0; count < 30; count ++) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3714  		diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3715  		if (!(diag0val & MPI_DIAG_RESET_ADAPTER)) {
436ace725f35eb Prakash, Sathya   2007-07-24  3716  			ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "RESET_ADAPTER cleared, count=%d\n",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3717  				ioc->name, count));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3718  			break;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3719  		}
82ffb671640647 Christoph Hellwig 2005-09-09  3720  		/* wait .1 sec */
^1da177e4c3f41 Linus Torvalds    2005-04-16  3721  		if (sleepFlag == CAN_SLEEP) {
d6be06c84da962 Michael Reed      2006-05-24  3722  			msleep (100);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3723  		} else {
82ffb671640647 Christoph Hellwig 2005-09-09  3724  			mdelay (100);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3725  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3726  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3727  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3728  	if ( count == 30 ) {
436ace725f35eb Prakash, Sathya   2007-07-24  3729  		ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "downloadboot failed! "
82ffb671640647 Christoph Hellwig 2005-09-09  3730  		"Unable to get MPI_DIAG_DRWE mode, diag0val=%x\n",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3731  		ioc->name, diag0val));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3732  		return -3;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3733  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3734  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3735  	CHIPREG_WRITE32(&ioc->chip->WriteSequence, 0xFF);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3736  	CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_1ST_KEY_VALUE);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3737  	CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_2ND_KEY_VALUE);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3738  	CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_3RD_KEY_VALUE);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3739  	CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_4TH_KEY_VALUE);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3740  	CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_5TH_KEY_VALUE);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3741  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3742  	/* Set the DiagRwEn and Disable ARM bits */
^1da177e4c3f41 Linus Torvalds    2005-04-16  3743  	CHIPREG_WRITE32(&ioc->chip->Diagnostic, (MPI_DIAG_RW_ENABLE | MPI_DIAG_DISABLE_ARM));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3744  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3745  	fwSize = (pFwHeader->ImageSize + 3)/4;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3746  	ptrFw = (u32 *) pFwHeader;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3747  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3748  	/* Write the LoadStartAddress to the DiagRw Address Register
^1da177e4c3f41 Linus Torvalds    2005-04-16  3749  	 * using Programmed IO
^1da177e4c3f41 Linus Torvalds    2005-04-16  3750  	 */
3fadc59d603caf Moore, Eric Dean  2005-05-11  3751  	if (ioc->errata_flag_1064)
3fadc59d603caf Moore, Eric Dean  2005-05-11  3752  		pci_enable_io_access(ioc->pcidev);
3fadc59d603caf Moore, Eric Dean  2005-05-11  3753  
^1da177e4c3f41 Linus Torvalds    2005-04-16 @3754  	CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwAddress, pFwHeader->LoadStartAddress);
436ace725f35eb Prakash, Sathya   2007-07-24  3755  	ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "LoadStart addr written 0x%x \n",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3756  		ioc->name, pFwHeader->LoadStartAddress));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3757  
436ace725f35eb Prakash, Sathya   2007-07-24  3758  	ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Write FW Image: 0x%x bytes @ %p\n",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3759  				ioc->name, fwSize*4, ptrFw));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3760  	while (fwSize--) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3761  		CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwData, *ptrFw++);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3762  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3763  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3764  	nextImage = pFwHeader->NextImageHeaderOffset;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3765  	while (nextImage) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3766  		pExtImage = (MpiExtImageHeader_t *) ((char *)pFwHeader + nextImage);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3767  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3768  		load_addr = pExtImage->LoadStartAddress;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3769  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3770  		fwSize = (pExtImage->ImageSize + 3) >> 2;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3771  		ptrFw = (u32 *)pExtImage;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3772  
436ace725f35eb Prakash, Sathya   2007-07-24  3773  		ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Write Ext Image: 0x%x (%d) bytes @ %p load_addr=%x\n",
c6678e0cfb41b0 Christoph Hellwig 2005-08-18  3774  						ioc->name, fwSize*4, fwSize*4, ptrFw, load_addr));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3775  		CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwAddress, load_addr);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3776  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3777  		while (fwSize--) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3778  			CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwData, *ptrFw++);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3779  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3780  		nextImage = pExtImage->NextImageHeaderOffset;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3781  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3782  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3783  	/* Write the IopResetVectorRegAddr */
436ace725f35eb Prakash, Sathya   2007-07-24  3784  	ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Write IopResetVector Addr=%x! \n", ioc->name, 	pFwHeader->IopResetRegAddr));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3785  	CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwAddress, pFwHeader->IopResetRegAddr);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3786  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3787  	/* Write the IopResetVectorValue */
436ace725f35eb Prakash, Sathya   2007-07-24  3788  	ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Write IopResetVector Value=%x! \n", ioc->name, pFwHeader->IopResetVectorValue));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3789  	CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwData, pFwHeader->IopResetVectorValue);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3790  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3791  	/* Clear the internal flash bad bit - autoincrementing register,
^1da177e4c3f41 Linus Torvalds    2005-04-16  3792  	 * so must do two writes.
^1da177e4c3f41 Linus Torvalds    2005-04-16  3793  	 */
a9b2937a1eab29 Moore, Eric Dean  2005-11-16  3794  	if (ioc->bus_type == SPI) {
82ffb671640647 Christoph Hellwig 2005-09-09  3795  		/*
82ffb671640647 Christoph Hellwig 2005-09-09  3796  		 * 1030 and 1035 H/W errata, workaround to access
82ffb671640647 Christoph Hellwig 2005-09-09  3797  		 * the ClearFlashBadSignatureBit
82ffb671640647 Christoph Hellwig 2005-09-09  3798  		 */
^1da177e4c3f41 Linus Torvalds    2005-04-16  3799  		CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwAddress, 0x3F000000);
^1da177e4c3f41 Linus Torvalds    2005-04-16 @3800  		diagRwData = CHIPREG_PIO_READ32(&ioc->pio_chip->DiagRwData);
82ffb671640647 Christoph Hellwig 2005-09-09  3801  		diagRwData |= 0x40000000;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3802  		CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwAddress, 0x3F000000);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3803  		CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwData, diagRwData);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3804  
82ffb671640647 Christoph Hellwig 2005-09-09  3805  	} else /* if((ioc->bus_type == SAS) || (ioc->bus_type == FC)) */ {
82ffb671640647 Christoph Hellwig 2005-09-09  3806  		diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
82ffb671640647 Christoph Hellwig 2005-09-09  3807  		CHIPREG_WRITE32(&ioc->chip->Diagnostic, diag0val |
82ffb671640647 Christoph Hellwig 2005-09-09  3808  		    MPI_DIAG_CLEAR_FLASH_BAD_SIG);
82ffb671640647 Christoph Hellwig 2005-09-09  3809  
82ffb671640647 Christoph Hellwig 2005-09-09  3810  		/* wait 1 msec */
82ffb671640647 Christoph Hellwig 2005-09-09  3811  		if (sleepFlag == CAN_SLEEP) {
d6be06c84da962 Michael Reed      2006-05-24  3812  			msleep (1);
82ffb671640647 Christoph Hellwig 2005-09-09  3813  		} else {
82ffb671640647 Christoph Hellwig 2005-09-09  3814  			mdelay (1);
82ffb671640647 Christoph Hellwig 2005-09-09  3815  		}
82ffb671640647 Christoph Hellwig 2005-09-09  3816  	}
82ffb671640647 Christoph Hellwig 2005-09-09  3817  
3fadc59d603caf Moore, Eric Dean  2005-05-11  3818  	if (ioc->errata_flag_1064)
3fadc59d603caf Moore, Eric Dean  2005-05-11  3819  		pci_disable_io_access(ioc->pcidev);
3fadc59d603caf Moore, Eric Dean  2005-05-11  3820  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3821  	diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
436ace725f35eb Prakash, Sathya   2007-07-24  3822  	ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "downloadboot diag0val=%x, "
82ffb671640647 Christoph Hellwig 2005-09-09  3823  		"turning off PREVENT_IOC_BOOT, DISABLE_ARM, RW_ENABLE\n",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3824  		ioc->name, diag0val));
82ffb671640647 Christoph Hellwig 2005-09-09  3825  	diag0val &= ~(MPI_DIAG_PREVENT_IOC_BOOT | MPI_DIAG_DISABLE_ARM | MPI_DIAG_RW_ENABLE);
436ace725f35eb Prakash, Sathya   2007-07-24  3826  	ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "downloadboot now diag0val=%x\n",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3827  		ioc->name, diag0val));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3828  	CHIPREG_WRITE32(&ioc->chip->Diagnostic, diag0val);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3829  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3830  	/* Write 0xFF to reset the sequencer */
^1da177e4c3f41 Linus Torvalds    2005-04-16  3831  	CHIPREG_WRITE32(&ioc->chip->WriteSequence, 0xFF);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3832  
82ffb671640647 Christoph Hellwig 2005-09-09  3833  	if (ioc->bus_type == SAS) {
82ffb671640647 Christoph Hellwig 2005-09-09  3834  		ioc_state = mpt_GetIocState(ioc, 0);
82ffb671640647 Christoph Hellwig 2005-09-09  3835  		if ( (GetIocFacts(ioc, sleepFlag,
82ffb671640647 Christoph Hellwig 2005-09-09  3836  				MPT_HOSTEVENT_IOC_BRINGUP)) != 0 ) {
436ace725f35eb Prakash, Sathya   2007-07-24  3837  			ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "GetIocFacts failed: IocState=%x\n",
82ffb671640647 Christoph Hellwig 2005-09-09  3838  					ioc->name, ioc_state));
82ffb671640647 Christoph Hellwig 2005-09-09  3839  			return -EFAULT;
82ffb671640647 Christoph Hellwig 2005-09-09  3840  		}
82ffb671640647 Christoph Hellwig 2005-09-09  3841  	}
82ffb671640647 Christoph Hellwig 2005-09-09  3842  
^1da177e4c3f41 Linus Torvalds    2005-04-16  3843  	for (count=0; count<HZ*20; count++) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3844  		if ((ioc_state = mpt_GetIocState(ioc, 0)) & MPI_IOC_STATE_READY) {
436ace725f35eb Prakash, Sathya   2007-07-24  3845  			ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
436ace725f35eb Prakash, Sathya   2007-07-24  3846  				"downloadboot successful! (count=%d) IocState=%x\n",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3847  				ioc->name, count, ioc_state));
82ffb671640647 Christoph Hellwig 2005-09-09  3848  			if (ioc->bus_type == SAS) {
82ffb671640647 Christoph Hellwig 2005-09-09  3849  				return 0;
82ffb671640647 Christoph Hellwig 2005-09-09  3850  			}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3851  			if ((SendIocInit(ioc, sleepFlag)) != 0) {
436ace725f35eb Prakash, Sathya   2007-07-24  3852  				ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
436ace725f35eb Prakash, Sathya   2007-07-24  3853  					"downloadboot: SendIocInit failed\n",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3854  					ioc->name));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3855  				return -EFAULT;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3856  			}
436ace725f35eb Prakash, Sathya   2007-07-24  3857  			ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
436ace725f35eb Prakash, Sathya   2007-07-24  3858  					"downloadboot: SendIocInit successful\n",
^1da177e4c3f41 Linus Torvalds    2005-04-16  3859  					ioc->name));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3860  			return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3861  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3862  		if (sleepFlag == CAN_SLEEP) {
d6be06c84da962 Michael Reed      2006-05-24  3863  			msleep (10);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3864  		} else {
^1da177e4c3f41 Linus Torvalds    2005-04-16  3865  			mdelay (10);
^1da177e4c3f41 Linus Torvalds    2005-04-16  3866  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  3867  	}
436ace725f35eb Prakash, Sathya   2007-07-24  3868  	ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
436ace725f35eb Prakash, Sathya   2007-07-24  3869  		"downloadboot failed! IocState=%x\n",ioc->name, ioc_state));
^1da177e4c3f41 Linus Torvalds    2005-04-16  3870  	return -EFAULT;
^1da177e4c3f41 Linus Torvalds    2005-04-16  3871  }
^1da177e4c3f41 Linus Torvalds    2005-04-16  3872  

:::::: The code at line 3754 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds@...970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@...970.osdl.org>

---
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" (25374 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ