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
| ||
|
Date: Sun, 5 Jun 2022 07:30:12 +0800 From: kernel test robot <lkp@...el.com> To: Pavel Begunkov <asml.silence@...il.com> Cc: kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org, Jens Axboe <axboe@...nel.dk> Subject: drivers/scsi/myrs.c:2439:13: sparse: sparse: incorrect type in assignment (different base types) Hi Pavel, First bad commit (maybe != root cause): tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 032dcf09e2bf7c822be25b4abef7a6c913870d98 commit: 769e683715211ad3cbed5908a86b97dd54d60970 io-wq: don't repeat IO_WQ_BIT_EXIT check by worker date: 12 months ago config: riscv-allyesconfig (https://download.01.org/0day-ci/archive/20220605/202206050706.pgoCCPgv-lkp@intel.com/config) compiler: riscv64-linux-gcc (GCC) 11.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.4-18-g56afb504-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=769e683715211ad3cbed5908a86b97dd54d60970 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 769e683715211ad3cbed5908a86b97dd54d60970 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=riscv SHELL=/bin/bash drivers/ net/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@...el.com> sparse warnings: (new ones prefixed by >>) drivers/scsi/myrs.c:2272:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __iomem *base @@ got struct myrs_hba *cs @@ drivers/scsi/myrs.c:2272:34: sparse: expected void [noderef] __iomem *base drivers/scsi/myrs.c:2272:34: sparse: got struct myrs_hba *cs drivers/scsi/myrs.c:2424:9: sparse: sparse: cast from restricted __le32 drivers/scsi/myrs.c:2477:9: sparse: sparse: cast from restricted __le32 drivers/scsi/myrs.c:2417:9: sparse: sparse: cast from restricted __le32 drivers/scsi/myrs.c:2477:9: sparse: sparse: cast from restricted __le32 drivers/scsi/myrs.c:2410:9: sparse: sparse: cast from restricted __le32 >> drivers/scsi/myrs.c:2439:13: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] val @@ got unsigned int [assigned] [usertype] __v @@ drivers/scsi/myrs.c:2439:13: sparse: expected restricted __le32 [usertype] val drivers/scsi/myrs.c:2439:13: sparse: got unsigned int [assigned] [usertype] __v drivers/scsi/myrs.c:2509:13: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] val @@ got unsigned int [assigned] [usertype] __v @@ drivers/scsi/myrs.c:2509:13: sparse: expected restricted __le32 [usertype] val drivers/scsi/myrs.c:2509:13: sparse: got unsigned int [assigned] [usertype] __v drivers/scsi/myrs.c:2512:18: sparse: sparse: restricted __le32 degrades to integer drivers/scsi/myrs.c:2417:9: sparse: sparse: cast from restricted __le32 drivers/scsi/myrs.c:2470:9: sparse: sparse: cast from restricted __le32 drivers/scsi/myrs.c:2455:9: sparse: sparse: cast from restricted __le32 drivers/scsi/myrs.c:2431:13: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] val @@ got unsigned int [assigned] [usertype] __v @@ drivers/scsi/myrs.c:2431:13: sparse: expected restricted __le32 [usertype] val drivers/scsi/myrs.c:2431:13: sparse: got unsigned int [assigned] [usertype] __v drivers/scsi/myrs.c:2403:9: sparse: sparse: cast from restricted __le32 drivers/scsi/myrs.c:2462:13: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] val @@ got unsigned int [assigned] [usertype] __v @@ drivers/scsi/myrs.c:2462:13: sparse: expected restricted __le32 [usertype] val drivers/scsi/myrs.c:2462:13: sparse: got unsigned int [assigned] [usertype] __v drivers/scsi/myrs.c:2447:9: sparse: sparse: cast from restricted __le32 drivers/scsi/myrs.c:2410:9: sparse: sparse: cast from restricted __le32 -- >> drivers/mcb/mcb-parse.c:54:14: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] reg1 @@ got unsigned int [assigned] [usertype] __v @@ drivers/mcb/mcb-parse.c:54:14: sparse: expected restricted __le32 [usertype] reg1 drivers/mcb/mcb-parse.c:54:14: sparse: got unsigned int [assigned] [usertype] __v >> drivers/mcb/mcb-parse.c:55:14: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] reg2 @@ got unsigned int [assigned] [usertype] __v @@ drivers/mcb/mcb-parse.c:55:14: sparse: expected restricted __le32 [usertype] reg2 drivers/mcb/mcb-parse.c:55:14: sparse: got unsigned int [assigned] [usertype] __v drivers/mcb/mcb-parse.c:59:20: sparse: sparse: restricted __le32 degrades to integer drivers/mcb/mcb-parse.c:60:21: sparse: sparse: restricted __le32 degrades to integer drivers/mcb/mcb-parse.c:61:21: sparse: sparse: restricted __le32 degrades to integer drivers/mcb/mcb-parse.c:62:21: sparse: sparse: restricted __le32 degrades to integer drivers/mcb/mcb-parse.c:63:23: sparse: sparse: restricted __le32 degrades to integer drivers/mcb/mcb-parse.c:64:22: sparse: sparse: restricted __le32 degrades to integer drivers/mcb/mcb-parse.c:93:27: sparse: sparse: restricted __le32 degrades to integer drivers/mcb/mcb-parse.c:94:25: sparse: sparse: restricted __le32 degrades to integer >> drivers/mcb/mcb-parse.c:150:21: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] reg @@ got unsigned int [assigned] [usertype] __v @@ drivers/mcb/mcb-parse.c:150:21: sparse: expected restricted __le32 [usertype] reg drivers/mcb/mcb-parse.c:150:21: sparse: got unsigned int [assigned] [usertype] __v drivers/mcb/mcb-parse.c:152:29: sparse: sparse: restricted __le32 degrades to integer drivers/mcb/mcb-parse.c:198:25: sparse: sparse: cast to restricted __le16 -- >> drivers/clocksource/timer-clint.c:237:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void * @@ got struct clock_event_device [noderef] __percpu * @@ drivers/clocksource/timer-clint.c:237:36: sparse: expected void * drivers/clocksource/timer-clint.c:237:36: sparse: got struct clock_event_device [noderef] __percpu * -- >> net/mptcp/mib.c:60:13: sparse: sparse: cast removes address space '__percpu' of expression vim +2439 drivers/scsi/myrs.c 77266186397c6c7 Hannes Reinecke 2018-10-17 2263 77266186397c6c7 Hannes Reinecke 2018-10-17 2264 static void myrs_cleanup(struct myrs_hba *cs) 77266186397c6c7 Hannes Reinecke 2018-10-17 2265 { 77266186397c6c7 Hannes Reinecke 2018-10-17 2266 struct pci_dev *pdev = cs->pdev; 77266186397c6c7 Hannes Reinecke 2018-10-17 2267 77266186397c6c7 Hannes Reinecke 2018-10-17 2268 /* Free the memory mailbox, status, and related structures */ 77266186397c6c7 Hannes Reinecke 2018-10-17 2269 myrs_unmap(cs); 77266186397c6c7 Hannes Reinecke 2018-10-17 2270 77266186397c6c7 Hannes Reinecke 2018-10-17 2271 if (cs->mmio_base) { 77266186397c6c7 Hannes Reinecke 2018-10-17 @2272 cs->disable_intr(cs); 77266186397c6c7 Hannes Reinecke 2018-10-17 2273 iounmap(cs->mmio_base); 2bb817712e2f774 Lv Yunlong 2021-03-10 2274 cs->mmio_base = NULL; 77266186397c6c7 Hannes Reinecke 2018-10-17 2275 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2276 if (cs->irq) 77266186397c6c7 Hannes Reinecke 2018-10-17 2277 free_irq(cs->irq, cs); 77266186397c6c7 Hannes Reinecke 2018-10-17 2278 if (cs->io_addr) 77266186397c6c7 Hannes Reinecke 2018-10-17 2279 release_region(cs->io_addr, 0x80); 77266186397c6c7 Hannes Reinecke 2018-10-17 2280 pci_set_drvdata(pdev, NULL); 77266186397c6c7 Hannes Reinecke 2018-10-17 2281 pci_disable_device(pdev); 77266186397c6c7 Hannes Reinecke 2018-10-17 2282 scsi_host_put(cs->host); 77266186397c6c7 Hannes Reinecke 2018-10-17 2283 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2284 77266186397c6c7 Hannes Reinecke 2018-10-17 2285 static struct myrs_hba *myrs_detect(struct pci_dev *pdev, 77266186397c6c7 Hannes Reinecke 2018-10-17 2286 const struct pci_device_id *entry) 77266186397c6c7 Hannes Reinecke 2018-10-17 2287 { 77266186397c6c7 Hannes Reinecke 2018-10-17 2288 struct myrs_privdata *privdata = 77266186397c6c7 Hannes Reinecke 2018-10-17 2289 (struct myrs_privdata *)entry->driver_data; 77266186397c6c7 Hannes Reinecke 2018-10-17 2290 irq_handler_t irq_handler = privdata->irq_handler; 77266186397c6c7 Hannes Reinecke 2018-10-17 2291 unsigned int mmio_size = privdata->mmio_size; 77266186397c6c7 Hannes Reinecke 2018-10-17 2292 struct myrs_hba *cs = NULL; 77266186397c6c7 Hannes Reinecke 2018-10-17 2293 77266186397c6c7 Hannes Reinecke 2018-10-17 2294 cs = myrs_alloc_host(pdev, entry); 77266186397c6c7 Hannes Reinecke 2018-10-17 2295 if (!cs) { 77266186397c6c7 Hannes Reinecke 2018-10-17 2296 dev_err(&pdev->dev, "Unable to allocate Controller\n"); 77266186397c6c7 Hannes Reinecke 2018-10-17 2297 return NULL; 77266186397c6c7 Hannes Reinecke 2018-10-17 2298 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2299 cs->pdev = pdev; 77266186397c6c7 Hannes Reinecke 2018-10-17 2300 77266186397c6c7 Hannes Reinecke 2018-10-17 2301 if (pci_enable_device(pdev)) 77266186397c6c7 Hannes Reinecke 2018-10-17 2302 goto Failure; 77266186397c6c7 Hannes Reinecke 2018-10-17 2303 77266186397c6c7 Hannes Reinecke 2018-10-17 2304 cs->pci_addr = pci_resource_start(pdev, 0); 77266186397c6c7 Hannes Reinecke 2018-10-17 2305 77266186397c6c7 Hannes Reinecke 2018-10-17 2306 pci_set_drvdata(pdev, cs); 77266186397c6c7 Hannes Reinecke 2018-10-17 2307 spin_lock_init(&cs->queue_lock); 77266186397c6c7 Hannes Reinecke 2018-10-17 2308 /* Map the Controller Register Window. */ 77266186397c6c7 Hannes Reinecke 2018-10-17 2309 if (mmio_size < PAGE_SIZE) 77266186397c6c7 Hannes Reinecke 2018-10-17 2310 mmio_size = PAGE_SIZE; 4bdc0d676a64314 Christoph Hellwig 2020-01-06 2311 cs->mmio_base = ioremap(cs->pci_addr & PAGE_MASK, mmio_size); 77266186397c6c7 Hannes Reinecke 2018-10-17 2312 if (cs->mmio_base == NULL) { 77266186397c6c7 Hannes Reinecke 2018-10-17 2313 dev_err(&pdev->dev, 77266186397c6c7 Hannes Reinecke 2018-10-17 2314 "Unable to map Controller Register Window\n"); 77266186397c6c7 Hannes Reinecke 2018-10-17 2315 goto Failure; 77266186397c6c7 Hannes Reinecke 2018-10-17 2316 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2317 77266186397c6c7 Hannes Reinecke 2018-10-17 2318 cs->io_base = cs->mmio_base + (cs->pci_addr & ~PAGE_MASK); 77266186397c6c7 Hannes Reinecke 2018-10-17 2319 if (privdata->hw_init(pdev, cs, cs->io_base)) 77266186397c6c7 Hannes Reinecke 2018-10-17 2320 goto Failure; 77266186397c6c7 Hannes Reinecke 2018-10-17 2321 77266186397c6c7 Hannes Reinecke 2018-10-17 2322 /* Acquire shared access to the IRQ Channel. */ 77266186397c6c7 Hannes Reinecke 2018-10-17 2323 if (request_irq(pdev->irq, irq_handler, IRQF_SHARED, "myrs", cs) < 0) { 77266186397c6c7 Hannes Reinecke 2018-10-17 2324 dev_err(&pdev->dev, 77266186397c6c7 Hannes Reinecke 2018-10-17 2325 "Unable to acquire IRQ Channel %d\n", pdev->irq); 77266186397c6c7 Hannes Reinecke 2018-10-17 2326 goto Failure; 77266186397c6c7 Hannes Reinecke 2018-10-17 2327 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2328 cs->irq = pdev->irq; 77266186397c6c7 Hannes Reinecke 2018-10-17 2329 return cs; 77266186397c6c7 Hannes Reinecke 2018-10-17 2330 77266186397c6c7 Hannes Reinecke 2018-10-17 2331 Failure: 77266186397c6c7 Hannes Reinecke 2018-10-17 2332 dev_err(&pdev->dev, 77266186397c6c7 Hannes Reinecke 2018-10-17 2333 "Failed to initialize Controller\n"); 77266186397c6c7 Hannes Reinecke 2018-10-17 2334 myrs_cleanup(cs); 77266186397c6c7 Hannes Reinecke 2018-10-17 2335 return NULL; 77266186397c6c7 Hannes Reinecke 2018-10-17 2336 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2337 8a692fdb1d04f56 Lee Jones 2020-07-13 2338 /* 77266186397c6c7 Hannes Reinecke 2018-10-17 2339 * myrs_err_status reports Controller BIOS Messages passed through 8a692fdb1d04f56 Lee Jones 2020-07-13 2340 * the Error Status Register when the driver performs the BIOS handshaking. 8a692fdb1d04f56 Lee Jones 2020-07-13 2341 * It returns true for fatal errors and false otherwise. 77266186397c6c7 Hannes Reinecke 2018-10-17 2342 */ 77266186397c6c7 Hannes Reinecke 2018-10-17 2343 77266186397c6c7 Hannes Reinecke 2018-10-17 2344 static bool myrs_err_status(struct myrs_hba *cs, unsigned char status, 77266186397c6c7 Hannes Reinecke 2018-10-17 2345 unsigned char parm0, unsigned char parm1) 77266186397c6c7 Hannes Reinecke 2018-10-17 2346 { 77266186397c6c7 Hannes Reinecke 2018-10-17 2347 struct pci_dev *pdev = cs->pdev; 77266186397c6c7 Hannes Reinecke 2018-10-17 2348 77266186397c6c7 Hannes Reinecke 2018-10-17 2349 switch (status) { 77266186397c6c7 Hannes Reinecke 2018-10-17 2350 case 0x00: 77266186397c6c7 Hannes Reinecke 2018-10-17 2351 dev_info(&pdev->dev, 77266186397c6c7 Hannes Reinecke 2018-10-17 2352 "Physical Device %d:%d Not Responding\n", 77266186397c6c7 Hannes Reinecke 2018-10-17 2353 parm1, parm0); 77266186397c6c7 Hannes Reinecke 2018-10-17 2354 break; 77266186397c6c7 Hannes Reinecke 2018-10-17 2355 case 0x08: 77266186397c6c7 Hannes Reinecke 2018-10-17 2356 dev_notice(&pdev->dev, "Spinning Up Drives\n"); 77266186397c6c7 Hannes Reinecke 2018-10-17 2357 break; 77266186397c6c7 Hannes Reinecke 2018-10-17 2358 case 0x30: 77266186397c6c7 Hannes Reinecke 2018-10-17 2359 dev_notice(&pdev->dev, "Configuration Checksum Error\n"); 77266186397c6c7 Hannes Reinecke 2018-10-17 2360 break; 77266186397c6c7 Hannes Reinecke 2018-10-17 2361 case 0x60: 77266186397c6c7 Hannes Reinecke 2018-10-17 2362 dev_notice(&pdev->dev, "Mirror Race Recovery Failed\n"); 77266186397c6c7 Hannes Reinecke 2018-10-17 2363 break; 77266186397c6c7 Hannes Reinecke 2018-10-17 2364 case 0x70: 77266186397c6c7 Hannes Reinecke 2018-10-17 2365 dev_notice(&pdev->dev, "Mirror Race Recovery In Progress\n"); 77266186397c6c7 Hannes Reinecke 2018-10-17 2366 break; 77266186397c6c7 Hannes Reinecke 2018-10-17 2367 case 0x90: 77266186397c6c7 Hannes Reinecke 2018-10-17 2368 dev_notice(&pdev->dev, "Physical Device %d:%d COD Mismatch\n", 77266186397c6c7 Hannes Reinecke 2018-10-17 2369 parm1, parm0); 77266186397c6c7 Hannes Reinecke 2018-10-17 2370 break; 77266186397c6c7 Hannes Reinecke 2018-10-17 2371 case 0xA0: 77266186397c6c7 Hannes Reinecke 2018-10-17 2372 dev_notice(&pdev->dev, "Logical Drive Installation Aborted\n"); 77266186397c6c7 Hannes Reinecke 2018-10-17 2373 break; 77266186397c6c7 Hannes Reinecke 2018-10-17 2374 case 0xB0: 77266186397c6c7 Hannes Reinecke 2018-10-17 2375 dev_notice(&pdev->dev, "Mirror Race On A Critical Logical Drive\n"); 77266186397c6c7 Hannes Reinecke 2018-10-17 2376 break; 77266186397c6c7 Hannes Reinecke 2018-10-17 2377 case 0xD0: 77266186397c6c7 Hannes Reinecke 2018-10-17 2378 dev_notice(&pdev->dev, "New Controller Configuration Found\n"); 77266186397c6c7 Hannes Reinecke 2018-10-17 2379 break; 77266186397c6c7 Hannes Reinecke 2018-10-17 2380 case 0xF0: 77266186397c6c7 Hannes Reinecke 2018-10-17 2381 dev_err(&pdev->dev, "Fatal Memory Parity Error\n"); 77266186397c6c7 Hannes Reinecke 2018-10-17 2382 return true; 77266186397c6c7 Hannes Reinecke 2018-10-17 2383 default: 77266186397c6c7 Hannes Reinecke 2018-10-17 2384 dev_err(&pdev->dev, "Unknown Initialization Error %02X\n", 77266186397c6c7 Hannes Reinecke 2018-10-17 2385 status); 77266186397c6c7 Hannes Reinecke 2018-10-17 2386 return true; 77266186397c6c7 Hannes Reinecke 2018-10-17 2387 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2388 return false; 77266186397c6c7 Hannes Reinecke 2018-10-17 2389 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2390 77266186397c6c7 Hannes Reinecke 2018-10-17 2391 /* 77266186397c6c7 Hannes Reinecke 2018-10-17 2392 * Hardware-specific functions 77266186397c6c7 Hannes Reinecke 2018-10-17 2393 */ 77266186397c6c7 Hannes Reinecke 2018-10-17 2394 77266186397c6c7 Hannes Reinecke 2018-10-17 2395 /* 77266186397c6c7 Hannes Reinecke 2018-10-17 2396 * DAC960 GEM Series Controllers. 77266186397c6c7 Hannes Reinecke 2018-10-17 2397 */ 77266186397c6c7 Hannes Reinecke 2018-10-17 2398 77266186397c6c7 Hannes Reinecke 2018-10-17 2399 static inline void DAC960_GEM_hw_mbox_new_cmd(void __iomem *base) 77266186397c6c7 Hannes Reinecke 2018-10-17 2400 { 77266186397c6c7 Hannes Reinecke 2018-10-17 2401 __le32 val = cpu_to_le32(DAC960_GEM_IDB_HWMBOX_NEW_CMD << 24); 77266186397c6c7 Hannes Reinecke 2018-10-17 2402 77266186397c6c7 Hannes Reinecke 2018-10-17 2403 writel(val, base + DAC960_GEM_IDB_READ_OFFSET); 77266186397c6c7 Hannes Reinecke 2018-10-17 2404 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2405 77266186397c6c7 Hannes Reinecke 2018-10-17 2406 static inline void DAC960_GEM_ack_hw_mbox_status(void __iomem *base) 77266186397c6c7 Hannes Reinecke 2018-10-17 2407 { 77266186397c6c7 Hannes Reinecke 2018-10-17 2408 __le32 val = cpu_to_le32(DAC960_GEM_IDB_HWMBOX_ACK_STS << 24); 77266186397c6c7 Hannes Reinecke 2018-10-17 2409 77266186397c6c7 Hannes Reinecke 2018-10-17 2410 writel(val, base + DAC960_GEM_IDB_CLEAR_OFFSET); 77266186397c6c7 Hannes Reinecke 2018-10-17 2411 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2412 77266186397c6c7 Hannes Reinecke 2018-10-17 2413 static inline void DAC960_GEM_reset_ctrl(void __iomem *base) 77266186397c6c7 Hannes Reinecke 2018-10-17 2414 { 77266186397c6c7 Hannes Reinecke 2018-10-17 2415 __le32 val = cpu_to_le32(DAC960_GEM_IDB_CTRL_RESET << 24); 77266186397c6c7 Hannes Reinecke 2018-10-17 2416 77266186397c6c7 Hannes Reinecke 2018-10-17 2417 writel(val, base + DAC960_GEM_IDB_READ_OFFSET); 77266186397c6c7 Hannes Reinecke 2018-10-17 2418 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2419 77266186397c6c7 Hannes Reinecke 2018-10-17 2420 static inline void DAC960_GEM_mem_mbox_new_cmd(void __iomem *base) 77266186397c6c7 Hannes Reinecke 2018-10-17 2421 { 77266186397c6c7 Hannes Reinecke 2018-10-17 2422 __le32 val = cpu_to_le32(DAC960_GEM_IDB_HWMBOX_NEW_CMD << 24); 77266186397c6c7 Hannes Reinecke 2018-10-17 2423 77266186397c6c7 Hannes Reinecke 2018-10-17 2424 writel(val, base + DAC960_GEM_IDB_READ_OFFSET); 77266186397c6c7 Hannes Reinecke 2018-10-17 2425 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2426 77266186397c6c7 Hannes Reinecke 2018-10-17 2427 static inline bool DAC960_GEM_hw_mbox_is_full(void __iomem *base) 77266186397c6c7 Hannes Reinecke 2018-10-17 2428 { 77266186397c6c7 Hannes Reinecke 2018-10-17 2429 __le32 val; 77266186397c6c7 Hannes Reinecke 2018-10-17 2430 77266186397c6c7 Hannes Reinecke 2018-10-17 2431 val = readl(base + DAC960_GEM_IDB_READ_OFFSET); 77266186397c6c7 Hannes Reinecke 2018-10-17 2432 return (le32_to_cpu(val) >> 24) & DAC960_GEM_IDB_HWMBOX_FULL; 77266186397c6c7 Hannes Reinecke 2018-10-17 2433 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2434 77266186397c6c7 Hannes Reinecke 2018-10-17 2435 static inline bool DAC960_GEM_init_in_progress(void __iomem *base) 77266186397c6c7 Hannes Reinecke 2018-10-17 2436 { 77266186397c6c7 Hannes Reinecke 2018-10-17 2437 __le32 val; 77266186397c6c7 Hannes Reinecke 2018-10-17 2438 77266186397c6c7 Hannes Reinecke 2018-10-17 @2439 val = readl(base + DAC960_GEM_IDB_READ_OFFSET); 77266186397c6c7 Hannes Reinecke 2018-10-17 2440 return (le32_to_cpu(val) >> 24) & DAC960_GEM_IDB_INIT_IN_PROGRESS; 77266186397c6c7 Hannes Reinecke 2018-10-17 2441 } 77266186397c6c7 Hannes Reinecke 2018-10-17 2442 :::::: The code at line 2439 was first introduced by commit :::::: 77266186397c6c782a3f670d32808a9671806ec5 scsi: myrs: Add Mylex RAID controller (SCSI interface) :::::: TO: Hannes Reinecke <hare@...e.com> :::::: CC: Martin K. Petersen <martin.petersen@...cle.com> -- 0-DAY CI Kernel Test Service https://01.org/lkp
Powered by blists - more mailing lists