From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org, Damien Le Moal <damien.lemoal@wdc.com>,
linux-block@vger.kernel.org, Jens Axboe <axboe@kernel.dk>,
linux-scsi@vger.kernel.org,
"Martin K . Petersen" <martin.petersen@oracle.com>,
linux-ide@vger.kernel.org
Cc: lkp@intel.com, kbuild-all@lists.01.org
Subject: Re: [PATCH 2/4] scsi: sd: add concurrent positioning ranges support
Date: Wed, 21 Jul 2021 21:01:36 +0300 [thread overview]
Message-ID: <202107220019.vhjyS5ei-lkp@intel.com> (raw)
In-Reply-To: <20210721104205.885115-3-damien.lemoal@wdc.com>
Hi Damien,
url: https://github.com/0day-ci/linux/commits/Damien-Le-Moal/Initial-support-for-multi-actuator-HDDs/20210721-185447
base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next
config: x86_64-randconfig-m001-20210720 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/scsi/sd.c:3204 sd_read_cpr() error: uninitialized symbol 'buffer'.
vim +/buffer +3204 drivers/scsi/sd.c
331fc9cf44c011 Damien Le Moal 2021-07-21 3137 static void sd_read_cpr(struct scsi_disk *sdkp)
331fc9cf44c011 Damien Le Moal 2021-07-21 3138 {
331fc9cf44c011 Damien Le Moal 2021-07-21 3139 unsigned char *buffer, *desc;
^^^^^^
331fc9cf44c011 Damien Le Moal 2021-07-21 3140 struct blk_cranges *cr = NULL;
331fc9cf44c011 Damien Le Moal 2021-07-21 3141 unsigned int nr_cpr = 0;
331fc9cf44c011 Damien Le Moal 2021-07-21 3142 int i, vpd_len, buf_len = SD_BUF_SIZE;
331fc9cf44c011 Damien Le Moal 2021-07-21 3143
331fc9cf44c011 Damien Le Moal 2021-07-21 3144 /*
331fc9cf44c011 Damien Le Moal 2021-07-21 3145 * We need to have the capacity set first for the block layer to be
331fc9cf44c011 Damien Le Moal 2021-07-21 3146 * able to check the ranges.
331fc9cf44c011 Damien Le Moal 2021-07-21 3147 */
331fc9cf44c011 Damien Le Moal 2021-07-21 3148 if (sdkp->first_scan)
331fc9cf44c011 Damien Le Moal 2021-07-21 3149 return;
331fc9cf44c011 Damien Le Moal 2021-07-21 3150
331fc9cf44c011 Damien Le Moal 2021-07-21 3151 if (!sdkp->capacity)
331fc9cf44c011 Damien Le Moal 2021-07-21 3152 goto out;
^^^^^^^^^
This should just return probably?
331fc9cf44c011 Damien Le Moal 2021-07-21 3153
331fc9cf44c011 Damien Le Moal 2021-07-21 3154 /*
331fc9cf44c011 Damien Le Moal 2021-07-21 3155 * Concurrent Positioning Ranges VPD: there can be at most 256 ranges,
331fc9cf44c011 Damien Le Moal 2021-07-21 3156 * leading to a maximum page size of 64 + 256*32 bytes.
331fc9cf44c011 Damien Le Moal 2021-07-21 3157 */
331fc9cf44c011 Damien Le Moal 2021-07-21 3158 buf_len = 64 + 256*32;
331fc9cf44c011 Damien Le Moal 2021-07-21 3159 buffer = kmalloc(buf_len, GFP_KERNEL);
331fc9cf44c011 Damien Le Moal 2021-07-21 3160 if (!buffer || scsi_get_vpd_page(sdkp->device, 0xb9, buffer, buf_len))
331fc9cf44c011 Damien Le Moal 2021-07-21 3161 goto out;
331fc9cf44c011 Damien Le Moal 2021-07-21 3162
331fc9cf44c011 Damien Le Moal 2021-07-21 3163 /* We must have at least a 64B header and one 32B range descriptor */
331fc9cf44c011 Damien Le Moal 2021-07-21 3164 vpd_len = get_unaligned_be16(&buffer[2]) + 3;
331fc9cf44c011 Damien Le Moal 2021-07-21 3165 if (vpd_len > buf_len || vpd_len < 64 + 32 || (vpd_len & 31)) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3166 sd_printk(KERN_ERR, sdkp,
331fc9cf44c011 Damien Le Moal 2021-07-21 3167 "Invalid Concurrent Positioning Ranges VPD page\n");
331fc9cf44c011 Damien Le Moal 2021-07-21 3168 goto out;
331fc9cf44c011 Damien Le Moal 2021-07-21 3169 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3170
331fc9cf44c011 Damien Le Moal 2021-07-21 3171 nr_cpr = (vpd_len - 64) / 32;
331fc9cf44c011 Damien Le Moal 2021-07-21 3172 if (nr_cpr == 1) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3173 nr_cpr = 0;
331fc9cf44c011 Damien Le Moal 2021-07-21 3174 goto out;
331fc9cf44c011 Damien Le Moal 2021-07-21 3175 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3176
331fc9cf44c011 Damien Le Moal 2021-07-21 3177 cr = blk_alloc_cranges(sdkp->disk, nr_cpr);
331fc9cf44c011 Damien Le Moal 2021-07-21 3178 if (!cr) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3179 nr_cpr = 0;
331fc9cf44c011 Damien Le Moal 2021-07-21 3180 goto out;
331fc9cf44c011 Damien Le Moal 2021-07-21 3181 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3182
331fc9cf44c011 Damien Le Moal 2021-07-21 3183 desc = &buffer[64];
331fc9cf44c011 Damien Le Moal 2021-07-21 3184 for (i = 0; i < nr_cpr; i++, desc += 32) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3185 if (desc[0] != i) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3186 sd_printk(KERN_ERR, sdkp,
331fc9cf44c011 Damien Le Moal 2021-07-21 3187 "Invalid Concurrent Positioning Range number\n");
331fc9cf44c011 Damien Le Moal 2021-07-21 3188 nr_cpr = 0;
331fc9cf44c011 Damien Le Moal 2021-07-21 3189 break;
331fc9cf44c011 Damien Le Moal 2021-07-21 3190 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3191
331fc9cf44c011 Damien Le Moal 2021-07-21 3192 cr->ranges[i].sector = sd64_to_sectors(sdkp, desc + 8);
331fc9cf44c011 Damien Le Moal 2021-07-21 3193 cr->ranges[i].nr_sectors = sd64_to_sectors(sdkp, desc + 16);
331fc9cf44c011 Damien Le Moal 2021-07-21 3194 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3195
331fc9cf44c011 Damien Le Moal 2021-07-21 3196 out:
331fc9cf44c011 Damien Le Moal 2021-07-21 3197 blk_queue_set_cranges(sdkp->disk, cr);
331fc9cf44c011 Damien Le Moal 2021-07-21 3198 if (nr_cpr && sdkp->nr_actuators != nr_cpr) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3199 sd_printk(KERN_NOTICE, sdkp,
331fc9cf44c011 Damien Le Moal 2021-07-21 3200 "%u concurrent positioning ranges\n", nr_cpr);
331fc9cf44c011 Damien Le Moal 2021-07-21 3201 sdkp->nr_actuators = nr_cpr;
331fc9cf44c011 Damien Le Moal 2021-07-21 3202 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3203
331fc9cf44c011 Damien Le Moal 2021-07-21 @3204 kfree(buffer);
^^^^^^^^^^^^^
331fc9cf44c011 Damien Le Moal 2021-07-21 3205 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH 2/4] scsi: sd: add concurrent positioning ranges support
Date: Thu, 22 Jul 2021 00:44:30 +0800 [thread overview]
Message-ID: <202107220019.vhjyS5ei-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 7012 bytes --]
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20210721104205.885115-3-damien.lemoal@wdc.com>
References: <20210721104205.885115-3-damien.lemoal@wdc.com>
TO: Damien Le Moal <damien.lemoal@wdc.com>
TO: linux-block(a)vger.kernel.org
TO: Jens Axboe <axboe@kernel.dk>
TO: linux-scsi(a)vger.kernel.org
TO: "Martin K . Petersen" <martin.petersen@oracle.com>
TO: linux-ide(a)vger.kernel.org
Hi Damien,
I love your patch! Perhaps something to improve:
[auto build test WARNING on block/for-next]
[also build test WARNING on scsi/for-next mkp-scsi/for-next v5.14-rc2 next-20210721]
[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/Damien-Le-Moal/Initial-support-for-multi-actuator-HDDs/20210721-185447
base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next
:::::: branch date: 6 hours ago
:::::: commit date: 6 hours ago
config: x86_64-randconfig-m001-20210720 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/scsi/sd.c:3204 sd_read_cpr() error: uninitialized symbol 'buffer'.
vim +/buffer +3204 drivers/scsi/sd.c
331fc9cf44c011 Damien Le Moal 2021-07-21 3132
331fc9cf44c011 Damien Le Moal 2021-07-21 3133 /**
331fc9cf44c011 Damien Le Moal 2021-07-21 3134 * sd_read_cpr - Query concurrent positioning ranges
331fc9cf44c011 Damien Le Moal 2021-07-21 3135 * @sdkp: disk to query
331fc9cf44c011 Damien Le Moal 2021-07-21 3136 */
331fc9cf44c011 Damien Le Moal 2021-07-21 3137 static void sd_read_cpr(struct scsi_disk *sdkp)
331fc9cf44c011 Damien Le Moal 2021-07-21 3138 {
331fc9cf44c011 Damien Le Moal 2021-07-21 3139 unsigned char *buffer, *desc;
331fc9cf44c011 Damien Le Moal 2021-07-21 3140 struct blk_cranges *cr = NULL;
331fc9cf44c011 Damien Le Moal 2021-07-21 3141 unsigned int nr_cpr = 0;
331fc9cf44c011 Damien Le Moal 2021-07-21 3142 int i, vpd_len, buf_len = SD_BUF_SIZE;
331fc9cf44c011 Damien Le Moal 2021-07-21 3143
331fc9cf44c011 Damien Le Moal 2021-07-21 3144 /*
331fc9cf44c011 Damien Le Moal 2021-07-21 3145 * We need to have the capacity set first for the block layer to be
331fc9cf44c011 Damien Le Moal 2021-07-21 3146 * able to check the ranges.
331fc9cf44c011 Damien Le Moal 2021-07-21 3147 */
331fc9cf44c011 Damien Le Moal 2021-07-21 3148 if (sdkp->first_scan)
331fc9cf44c011 Damien Le Moal 2021-07-21 3149 return;
331fc9cf44c011 Damien Le Moal 2021-07-21 3150
331fc9cf44c011 Damien Le Moal 2021-07-21 3151 if (!sdkp->capacity)
331fc9cf44c011 Damien Le Moal 2021-07-21 3152 goto out;
331fc9cf44c011 Damien Le Moal 2021-07-21 3153
331fc9cf44c011 Damien Le Moal 2021-07-21 3154 /*
331fc9cf44c011 Damien Le Moal 2021-07-21 3155 * Concurrent Positioning Ranges VPD: there can be at most 256 ranges,
331fc9cf44c011 Damien Le Moal 2021-07-21 3156 * leading to a maximum page size of 64 + 256*32 bytes.
331fc9cf44c011 Damien Le Moal 2021-07-21 3157 */
331fc9cf44c011 Damien Le Moal 2021-07-21 3158 buf_len = 64 + 256*32;
331fc9cf44c011 Damien Le Moal 2021-07-21 3159 buffer = kmalloc(buf_len, GFP_KERNEL);
331fc9cf44c011 Damien Le Moal 2021-07-21 3160 if (!buffer || scsi_get_vpd_page(sdkp->device, 0xb9, buffer, buf_len))
331fc9cf44c011 Damien Le Moal 2021-07-21 3161 goto out;
331fc9cf44c011 Damien Le Moal 2021-07-21 3162
331fc9cf44c011 Damien Le Moal 2021-07-21 3163 /* We must have at least a 64B header and one 32B range descriptor */
331fc9cf44c011 Damien Le Moal 2021-07-21 3164 vpd_len = get_unaligned_be16(&buffer[2]) + 3;
331fc9cf44c011 Damien Le Moal 2021-07-21 3165 if (vpd_len > buf_len || vpd_len < 64 + 32 || (vpd_len & 31)) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3166 sd_printk(KERN_ERR, sdkp,
331fc9cf44c011 Damien Le Moal 2021-07-21 3167 "Invalid Concurrent Positioning Ranges VPD page\n");
331fc9cf44c011 Damien Le Moal 2021-07-21 3168 goto out;
331fc9cf44c011 Damien Le Moal 2021-07-21 3169 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3170
331fc9cf44c011 Damien Le Moal 2021-07-21 3171 nr_cpr = (vpd_len - 64) / 32;
331fc9cf44c011 Damien Le Moal 2021-07-21 3172 if (nr_cpr == 1) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3173 nr_cpr = 0;
331fc9cf44c011 Damien Le Moal 2021-07-21 3174 goto out;
331fc9cf44c011 Damien Le Moal 2021-07-21 3175 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3176
331fc9cf44c011 Damien Le Moal 2021-07-21 3177 cr = blk_alloc_cranges(sdkp->disk, nr_cpr);
331fc9cf44c011 Damien Le Moal 2021-07-21 3178 if (!cr) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3179 nr_cpr = 0;
331fc9cf44c011 Damien Le Moal 2021-07-21 3180 goto out;
331fc9cf44c011 Damien Le Moal 2021-07-21 3181 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3182
331fc9cf44c011 Damien Le Moal 2021-07-21 3183 desc = &buffer[64];
331fc9cf44c011 Damien Le Moal 2021-07-21 3184 for (i = 0; i < nr_cpr; i++, desc += 32) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3185 if (desc[0] != i) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3186 sd_printk(KERN_ERR, sdkp,
331fc9cf44c011 Damien Le Moal 2021-07-21 3187 "Invalid Concurrent Positioning Range number\n");
331fc9cf44c011 Damien Le Moal 2021-07-21 3188 nr_cpr = 0;
331fc9cf44c011 Damien Le Moal 2021-07-21 3189 break;
331fc9cf44c011 Damien Le Moal 2021-07-21 3190 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3191
331fc9cf44c011 Damien Le Moal 2021-07-21 3192 cr->ranges[i].sector = sd64_to_sectors(sdkp, desc + 8);
331fc9cf44c011 Damien Le Moal 2021-07-21 3193 cr->ranges[i].nr_sectors = sd64_to_sectors(sdkp, desc + 16);
331fc9cf44c011 Damien Le Moal 2021-07-21 3194 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3195
331fc9cf44c011 Damien Le Moal 2021-07-21 3196 out:
331fc9cf44c011 Damien Le Moal 2021-07-21 3197 blk_queue_set_cranges(sdkp->disk, cr);
331fc9cf44c011 Damien Le Moal 2021-07-21 3198 if (nr_cpr && sdkp->nr_actuators != nr_cpr) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3199 sd_printk(KERN_NOTICE, sdkp,
331fc9cf44c011 Damien Le Moal 2021-07-21 3200 "%u concurrent positioning ranges\n", nr_cpr);
331fc9cf44c011 Damien Le Moal 2021-07-21 3201 sdkp->nr_actuators = nr_cpr;
331fc9cf44c011 Damien Le Moal 2021-07-21 3202 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3203
331fc9cf44c011 Damien Le Moal 2021-07-21 @3204 kfree(buffer);
331fc9cf44c011 Damien Le Moal 2021-07-21 3205 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3206
---
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: 34086 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 2/4] scsi: sd: add concurrent positioning ranges support
Date: Wed, 21 Jul 2021 21:01:36 +0300 [thread overview]
Message-ID: <202107220019.vhjyS5ei-lkp@intel.com> (raw)
In-Reply-To: <20210721104205.885115-3-damien.lemoal@wdc.com>
[-- Attachment #1: Type: text/plain, Size: 6063 bytes --]
Hi Damien,
url: https://github.com/0day-ci/linux/commits/Damien-Le-Moal/Initial-support-for-multi-actuator-HDDs/20210721-185447
base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next
config: x86_64-randconfig-m001-20210720 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/scsi/sd.c:3204 sd_read_cpr() error: uninitialized symbol 'buffer'.
vim +/buffer +3204 drivers/scsi/sd.c
331fc9cf44c011 Damien Le Moal 2021-07-21 3137 static void sd_read_cpr(struct scsi_disk *sdkp)
331fc9cf44c011 Damien Le Moal 2021-07-21 3138 {
331fc9cf44c011 Damien Le Moal 2021-07-21 3139 unsigned char *buffer, *desc;
^^^^^^
331fc9cf44c011 Damien Le Moal 2021-07-21 3140 struct blk_cranges *cr = NULL;
331fc9cf44c011 Damien Le Moal 2021-07-21 3141 unsigned int nr_cpr = 0;
331fc9cf44c011 Damien Le Moal 2021-07-21 3142 int i, vpd_len, buf_len = SD_BUF_SIZE;
331fc9cf44c011 Damien Le Moal 2021-07-21 3143
331fc9cf44c011 Damien Le Moal 2021-07-21 3144 /*
331fc9cf44c011 Damien Le Moal 2021-07-21 3145 * We need to have the capacity set first for the block layer to be
331fc9cf44c011 Damien Le Moal 2021-07-21 3146 * able to check the ranges.
331fc9cf44c011 Damien Le Moal 2021-07-21 3147 */
331fc9cf44c011 Damien Le Moal 2021-07-21 3148 if (sdkp->first_scan)
331fc9cf44c011 Damien Le Moal 2021-07-21 3149 return;
331fc9cf44c011 Damien Le Moal 2021-07-21 3150
331fc9cf44c011 Damien Le Moal 2021-07-21 3151 if (!sdkp->capacity)
331fc9cf44c011 Damien Le Moal 2021-07-21 3152 goto out;
^^^^^^^^^
This should just return probably?
331fc9cf44c011 Damien Le Moal 2021-07-21 3153
331fc9cf44c011 Damien Le Moal 2021-07-21 3154 /*
331fc9cf44c011 Damien Le Moal 2021-07-21 3155 * Concurrent Positioning Ranges VPD: there can be at most 256 ranges,
331fc9cf44c011 Damien Le Moal 2021-07-21 3156 * leading to a maximum page size of 64 + 256*32 bytes.
331fc9cf44c011 Damien Le Moal 2021-07-21 3157 */
331fc9cf44c011 Damien Le Moal 2021-07-21 3158 buf_len = 64 + 256*32;
331fc9cf44c011 Damien Le Moal 2021-07-21 3159 buffer = kmalloc(buf_len, GFP_KERNEL);
331fc9cf44c011 Damien Le Moal 2021-07-21 3160 if (!buffer || scsi_get_vpd_page(sdkp->device, 0xb9, buffer, buf_len))
331fc9cf44c011 Damien Le Moal 2021-07-21 3161 goto out;
331fc9cf44c011 Damien Le Moal 2021-07-21 3162
331fc9cf44c011 Damien Le Moal 2021-07-21 3163 /* We must have at least a 64B header and one 32B range descriptor */
331fc9cf44c011 Damien Le Moal 2021-07-21 3164 vpd_len = get_unaligned_be16(&buffer[2]) + 3;
331fc9cf44c011 Damien Le Moal 2021-07-21 3165 if (vpd_len > buf_len || vpd_len < 64 + 32 || (vpd_len & 31)) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3166 sd_printk(KERN_ERR, sdkp,
331fc9cf44c011 Damien Le Moal 2021-07-21 3167 "Invalid Concurrent Positioning Ranges VPD page\n");
331fc9cf44c011 Damien Le Moal 2021-07-21 3168 goto out;
331fc9cf44c011 Damien Le Moal 2021-07-21 3169 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3170
331fc9cf44c011 Damien Le Moal 2021-07-21 3171 nr_cpr = (vpd_len - 64) / 32;
331fc9cf44c011 Damien Le Moal 2021-07-21 3172 if (nr_cpr == 1) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3173 nr_cpr = 0;
331fc9cf44c011 Damien Le Moal 2021-07-21 3174 goto out;
331fc9cf44c011 Damien Le Moal 2021-07-21 3175 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3176
331fc9cf44c011 Damien Le Moal 2021-07-21 3177 cr = blk_alloc_cranges(sdkp->disk, nr_cpr);
331fc9cf44c011 Damien Le Moal 2021-07-21 3178 if (!cr) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3179 nr_cpr = 0;
331fc9cf44c011 Damien Le Moal 2021-07-21 3180 goto out;
331fc9cf44c011 Damien Le Moal 2021-07-21 3181 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3182
331fc9cf44c011 Damien Le Moal 2021-07-21 3183 desc = &buffer[64];
331fc9cf44c011 Damien Le Moal 2021-07-21 3184 for (i = 0; i < nr_cpr; i++, desc += 32) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3185 if (desc[0] != i) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3186 sd_printk(KERN_ERR, sdkp,
331fc9cf44c011 Damien Le Moal 2021-07-21 3187 "Invalid Concurrent Positioning Range number\n");
331fc9cf44c011 Damien Le Moal 2021-07-21 3188 nr_cpr = 0;
331fc9cf44c011 Damien Le Moal 2021-07-21 3189 break;
331fc9cf44c011 Damien Le Moal 2021-07-21 3190 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3191
331fc9cf44c011 Damien Le Moal 2021-07-21 3192 cr->ranges[i].sector = sd64_to_sectors(sdkp, desc + 8);
331fc9cf44c011 Damien Le Moal 2021-07-21 3193 cr->ranges[i].nr_sectors = sd64_to_sectors(sdkp, desc + 16);
331fc9cf44c011 Damien Le Moal 2021-07-21 3194 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3195
331fc9cf44c011 Damien Le Moal 2021-07-21 3196 out:
331fc9cf44c011 Damien Le Moal 2021-07-21 3197 blk_queue_set_cranges(sdkp->disk, cr);
331fc9cf44c011 Damien Le Moal 2021-07-21 3198 if (nr_cpr && sdkp->nr_actuators != nr_cpr) {
331fc9cf44c011 Damien Le Moal 2021-07-21 3199 sd_printk(KERN_NOTICE, sdkp,
331fc9cf44c011 Damien Le Moal 2021-07-21 3200 "%u concurrent positioning ranges\n", nr_cpr);
331fc9cf44c011 Damien Le Moal 2021-07-21 3201 sdkp->nr_actuators = nr_cpr;
331fc9cf44c011 Damien Le Moal 2021-07-21 3202 }
331fc9cf44c011 Damien Le Moal 2021-07-21 3203
331fc9cf44c011 Damien Le Moal 2021-07-21 @3204 kfree(buffer);
^^^^^^^^^^^^^
331fc9cf44c011 Damien Le Moal 2021-07-21 3205 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next parent reply other threads:[~2021-07-21 18:02 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-21 16:44 kernel test robot [this message]
2021-07-21 18:01 ` [PATCH 2/4] scsi: sd: add concurrent positioning ranges support Dan Carpenter
2021-07-21 18:01 ` Dan Carpenter
-- strict thread matches above, loose matches on Subject: below --
2021-07-21 10:42 [PATCH 0/4] Initial support for multi-actuator HDDs Damien Le Moal
2021-07-21 10:42 ` [PATCH 1/4] block: Add concurrent positioning ranges support Damien Le Moal
2021-07-22 16:11 ` Hannes Reinecke
2021-07-22 23:20 ` Damien Le Moal
2021-07-22 23:59 ` Damien Le Moal
2021-07-21 10:42 ` [PATCH 2/4] scsi: sd: add " Damien Le Moal
2021-07-22 16:14 ` Hannes Reinecke
2021-07-22 23:26 ` Damien Le Moal
2021-07-21 10:42 ` [PATCH 3/4] libata: support concurrent positioning ranges log Damien Le Moal
2021-07-22 17:34 ` Hannes Reinecke
2021-07-22 23:27 ` Damien Le Moal
2021-07-21 10:42 ` [PATCH 4/4] doc: document sysfs queue/cranges attributes Damien Le Moal
2021-07-22 15:58 ` [PATCH 0/4] Initial support for multi-actuator HDDs Hannes Reinecke
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=202107220019.vhjyS5ei-lkp@intel.com \
--to=dan.carpenter@oracle.com \
--cc=axboe@kernel.dk \
--cc=damien.lemoal@wdc.com \
--cc=kbuild-all@lists.01.org \
--cc=kbuild@lists.01.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=lkp@intel.com \
--cc=martin.petersen@oracle.com \
/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.