From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH V2 04/25] smartpqi: add support for raid5 and raid6 writes
Date: Wed, 09 Dec 2020 19:31:25 +0800 [thread overview]
Message-ID: <202012091911.Z73pJbxl-lkp@intel.com> (raw)
In-Reply-To: <160745621830.13450.13731287908882422804.stgit@brunhilda>
[-- Attachment #1: Type: text/plain, Size: 6055 bytes --]
Hi Don,
I love your patch! Yet something to improve:
[auto build test ERROR on mkp-scsi/for-next]
[also build test ERROR on scsi/for-next v5.10-rc7 next-20201208]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Don-Brace/smartpqi-updates/20201209-052139
base: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
config: i386-randconfig-a016-20201209 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/40d844929a7bc0c61a3c37bc16ebc46b0901e56a
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Don-Brace/smartpqi-updates/20201209-052139
git checkout 40d844929a7bc0c61a3c37bc16ebc46b0901e56a
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
ld: drivers/scsi/smartpqi/smartpqi_init.o: in function `pqi_calc_aio_r5_or_r6':
>> drivers/scsi/smartpqi/smartpqi_init.c:2546: undefined reference to `__udivdi3'
vim +2546 drivers/scsi/smartpqi/smartpqi_init.c
2445
2446 static int pqi_calc_aio_r5_or_r6(struct pqi_scsi_dev_raid_map_data *rmd,
2447 struct raid_map *raid_map)
2448 {
2449 #if BITS_PER_LONG == 32
2450 u64 tmpdiv;
2451 #endif
2452 /* RAID 50/60 */
2453 /* Verify first and last block are in same RAID group */
2454 rmd->stripesize = rmd->blocks_per_row * rmd->layout_map_count;
2455 #if BITS_PER_LONG == 32
2456 tmpdiv = rmd->first_block;
2457 rmd->first_group = do_div(tmpdiv, rmd->stripesize);
2458 tmpdiv = rmd->first_group;
2459 do_div(tmpdiv, rmd->blocks_per_row);
2460 rmd->first_group = tmpdiv;
2461 tmpdiv = rmd->last_block;
2462 rmd->last_group = do_div(tmpdiv, rmd->stripesize);
2463 tmpdiv = rmd->last_group;
2464 do_div(tmpdiv, rmd->blocks_per_row);
2465 rmd->last_group = tmpdiv;
2466 #else
2467 rmd->first_group = (rmd->first_block % rmd->stripesize) / rmd->blocks_per_row;
2468 rmd->last_group = (rmd->last_block % rmd->stripesize) / rmd->blocks_per_row;
2469 #endif
2470 if (rmd->first_group != rmd->last_group)
2471 return PQI_RAID_BYPASS_INELIGIBLE;
2472
2473 /* Verify request is in a single row of RAID 5/6 */
2474 #if BITS_PER_LONG == 32
2475 tmpdiv = rmd->first_block;
2476 do_div(tmpdiv, rmd->stripesize);
2477 rmd->first_row = tmpdiv;
2478 rmd->r5or6_first_row = tmpdiv;
2479 tmpdiv = rmd->last_block;
2480 do_div(tmpdiv, rmd->stripesize);
2481 rmd->r5or6_last_row = tmpdiv;
2482 #else
2483 rmd->first_row = rmd->r5or6_first_row =
2484 rmd->first_block / rmd->stripesize;
2485 rmd->r5or6_last_row = rmd->last_block / rmd->stripesize;
2486 #endif
2487 if (rmd->r5or6_first_row != rmd->r5or6_last_row)
2488 return PQI_RAID_BYPASS_INELIGIBLE;
2489
2490 /* Verify request is in a single column */
2491 #if BITS_PER_LONG == 32
2492 tmpdiv = rmd->first_block;
2493 rmd->first_row_offset = do_div(tmpdiv, rmd->stripesize);
2494 tmpdiv = rmd->first_row_offset;
2495 rmd->first_row_offset = (u32)do_div(tmpdiv, rmd->blocks_per_row);
2496 rmd->r5or6_first_row_offset = rmd->first_row_offset;
2497 tmpdiv = rmd->last_block;
2498 rmd->r5or6_last_row_offset = do_div(tmpdiv, rmd->stripesize);
2499 tmpdiv = rmd->r5or6_last_row_offset;
2500 rmd->r5or6_last_row_offset = do_div(tmpdiv, rmd->blocks_per_row);
2501 tmpdiv = rmd->r5or6_first_row_offset;
2502 do_div(tmpdiv, rmd->strip_size);
2503 rmd->first_column = rmd->r5or6_first_column = tmpdiv;
2504 tmpdiv = rmd->r5or6_last_row_offset;
2505 do_div(tmpdiv, rmd->strip_size);
2506 rmd->r5or6_last_column = tmpdiv;
2507 #else
2508 rmd->first_row_offset = rmd->r5or6_first_row_offset =
2509 (u32)((rmd->first_block %
2510 rmd->stripesize) %
2511 rmd->blocks_per_row);
2512
2513 rmd->r5or6_last_row_offset =
2514 (u32)((rmd->last_block % rmd->stripesize) %
2515 rmd->blocks_per_row);
2516
2517 rmd->first_column =
2518 rmd->r5or6_first_row_offset / rmd->strip_size;
2519 rmd->r5or6_first_column = rmd->first_column;
2520 rmd->r5or6_last_column = rmd->r5or6_last_row_offset / rmd->strip_size;
2521 #endif
2522 if (rmd->r5or6_first_column != rmd->r5or6_last_column)
2523 return PQI_RAID_BYPASS_INELIGIBLE;
2524
2525 /* Request is eligible */
2526 rmd->map_row =
2527 ((u32)(rmd->first_row >> raid_map->parity_rotation_shift)) %
2528 get_unaligned_le16(&raid_map->row_cnt);
2529
2530 rmd->map_index = (rmd->first_group *
2531 (get_unaligned_le16(&raid_map->row_cnt) *
2532 rmd->total_disks_per_row)) +
2533 (rmd->map_row * rmd->total_disks_per_row) + rmd->first_column;
2534
2535 if (rmd->is_write) {
2536 rmd->p_index = (rmd->map_row * rmd->total_disks_per_row) + rmd->data_disks_per_row;
2537 rmd->p_parity_it_nexus = raid_map->disk_data[rmd->p_index].aio_handle;
2538 if (rmd->raid_level == SA_RAID_6) {
2539 rmd->q_index = (rmd->map_row * rmd->total_disks_per_row) +
2540 (rmd->data_disks_per_row + 1);
2541 rmd->q_parity_it_nexus = raid_map->disk_data[rmd->q_index].aio_handle;
2542 rmd->xor_mult = raid_map->disk_data[rmd->map_index].xor_mult[1];
2543 }
2544 if (rmd->blocks_per_row == 0)
2545 return PQI_RAID_BYPASS_INELIGIBLE;
> 2546 rmd->row = rmd->first_block / rmd->blocks_per_row;
2547 }
2548
2549 return 0;
2550 }
2551
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32329 bytes --]
next prev parent reply other threads:[~2020-12-09 11:31 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-08 19:36 [PATCH V2 00/25] smartpqi updates Don Brace
2020-12-08 19:36 ` [PATCH V2 01/25] smartpqi: add support for product id Don Brace
2020-12-08 19:36 ` [PATCH V2 02/25] smartpqi: refactor aio submission code Don Brace
2020-12-08 19:36 ` [PATCH V2 03/25] smartpqi: refactor build sg list code Don Brace
2020-12-08 19:36 ` [PATCH V2 04/25] smartpqi: add support for raid5 and raid6 writes Don Brace
2020-12-09 11:31 ` kernel test robot [this message]
2020-12-10 8:56 ` kernel test robot
2020-12-08 19:37 ` [PATCH V2 05/25] smartpqi: add support for raid1 writes Don Brace
2020-12-08 19:37 ` [PATCH V2 06/25] smartpqi: add support for BMIC sense feature cmd and feature bits Don Brace
2020-12-08 19:37 ` [PATCH V2 07/25] smartpqi: update AIO Sub Page 0x02 support Don Brace
2020-12-08 19:37 ` [PATCH V2 08/25] smartpqi: add support for long firmware version Don Brace
2020-12-08 19:37 ` [PATCH V2 09/25] smartpqi: align code with oob driver Don Brace
2020-12-08 19:37 ` [PATCH V2 10/25] smartpqi: add stream detection Don Brace
2020-12-08 19:37 ` [PATCH V2 11/25] smartpqi: add host level stream detection enable Don Brace
2020-12-08 19:37 ` [PATCH V2 12/25] smartpqi: enable support for NVMe encryption Don Brace
2020-12-08 19:37 ` [PATCH V2 13/25] smartpqi: disable write_same for nvme hba disks Don Brace
2020-12-08 19:37 ` [PATCH V2 14/25] smartpqi: fix driver synchronization issues Don Brace
2020-12-08 19:38 ` [PATCH V2 15/25] smartpqi: fix host qdepth limit Don Brace
2020-12-08 19:38 ` [PATCH V2 16/25] smartpqi: convert snprintf to scnprintf Don Brace
2020-12-08 19:38 ` [PATCH V2 17/25] smartpqi: change timing of release of QRM memory during OFA Don Brace
2020-12-08 19:38 ` [PATCH V2 18/25] smartpqi: return busy indication for IOCTLs when ofa is active Don Brace
2020-12-08 19:38 ` [PATCH V2 19/25] smartpqi: add phy id support for the physical drives Don Brace
2020-12-08 19:38 ` [PATCH V2 20/25] smartpqi: update sas initiator_port_protocols and target_port_protocols Don Brace
2020-12-08 19:38 ` [PATCH V2 21/25] smartpqi: add additional logging for LUN resets Don Brace
2020-12-08 19:38 ` [PATCH V2 22/25] smartpqi: update enclosure identifier in sysf Don Brace
2020-12-08 19:38 ` [PATCH V2 23/25] smartpqi: correct system hangs when resuming from hibernation Don Brace
2020-12-08 19:38 ` [PATCH V2 24/25] smartpqi: add new pci ids Don Brace
2020-12-08 19:39 ` [PATCH V2 25/25] smartpqi: update version to 2.1.6-005 Don Brace
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=202012091911.Z73pJbxl-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/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.