All of lore.kernel.org
 help / color / mirror / Atom feed
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 --]

  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.