* drivers/nvme/host/pr.c:268:23-26: ERROR: reference preceded by free on line 278
@ 2023-12-29 5:17 kernel test robot
0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2023-12-29 5:17 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Julia Lawall
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Mike Christie <michael.christie@oracle.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: Chaitanya Kulkarni <kch@nvidia.com>
CC: Christoph Hellwig <hch@lst.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8735c7c84d1bc5c3e481c02b6b6163bdefe4132f
commit: 28c97ba38ff9c00bc177887c2d8568b7115a44e0 nvme: Add pr_ops read_reservation support
date: 9 months ago
:::::: branch date: 5 hours ago
:::::: commit date: 9 months ago
config: hexagon-randconfig-r052-20231228 (https://download.01.org/0day-ci/archive/20231229/202312291332.lt9ANNxl-lkp@intel.com/config)
compiler: clang version 18.0.0git (https://github.com/llvm/llvm-project d3ef86708241a3bee902615c190dead1638c4e09)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202312291332.lt9ANNxl-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/nvme/host/pr.c:268:23-26: ERROR: reference preceded by free on line 278
vim +268 drivers/nvme/host/pr.c
5fd96a4e15de84 Mike Christie 2023-04-07 244
28c97ba38ff9c0 Mike Christie 2023-04-07 245 static int nvme_pr_read_reservation(struct block_device *bdev,
28c97ba38ff9c0 Mike Christie 2023-04-07 246 struct pr_held_reservation *resv)
28c97ba38ff9c0 Mike Christie 2023-04-07 247 {
28c97ba38ff9c0 Mike Christie 2023-04-07 248 struct nvme_reservation_status_ext tmp_rse, *rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 249 int ret, i, num_regs;
28c97ba38ff9c0 Mike Christie 2023-04-07 250 u32 rse_len;
28c97ba38ff9c0 Mike Christie 2023-04-07 251 bool eds;
28c97ba38ff9c0 Mike Christie 2023-04-07 252
28c97ba38ff9c0 Mike Christie 2023-04-07 253 get_num_regs:
28c97ba38ff9c0 Mike Christie 2023-04-07 254 /*
28c97ba38ff9c0 Mike Christie 2023-04-07 255 * Get the number of registrations so we know how big to allocate
28c97ba38ff9c0 Mike Christie 2023-04-07 256 * the response buffer.
28c97ba38ff9c0 Mike Christie 2023-04-07 257 */
28c97ba38ff9c0 Mike Christie 2023-04-07 258 ret = nvme_pr_resv_report(bdev, &tmp_rse, sizeof(tmp_rse), &eds);
28c97ba38ff9c0 Mike Christie 2023-04-07 259 if (ret)
28c97ba38ff9c0 Mike Christie 2023-04-07 260 return ret;
28c97ba38ff9c0 Mike Christie 2023-04-07 261
28c97ba38ff9c0 Mike Christie 2023-04-07 262 num_regs = get_unaligned_le16(&tmp_rse.regctl);
28c97ba38ff9c0 Mike Christie 2023-04-07 263 if (!num_regs) {
28c97ba38ff9c0 Mike Christie 2023-04-07 264 resv->generation = le32_to_cpu(tmp_rse.gen);
28c97ba38ff9c0 Mike Christie 2023-04-07 265 return 0;
28c97ba38ff9c0 Mike Christie 2023-04-07 266 }
28c97ba38ff9c0 Mike Christie 2023-04-07 267
28c97ba38ff9c0 Mike Christie 2023-04-07 @268 rse_len = struct_size(rse, regctl_eds, num_regs);
28c97ba38ff9c0 Mike Christie 2023-04-07 269 rse = kzalloc(rse_len, GFP_KERNEL);
28c97ba38ff9c0 Mike Christie 2023-04-07 270 if (!rse)
28c97ba38ff9c0 Mike Christie 2023-04-07 271 return -ENOMEM;
28c97ba38ff9c0 Mike Christie 2023-04-07 272
28c97ba38ff9c0 Mike Christie 2023-04-07 273 ret = nvme_pr_resv_report(bdev, rse, rse_len, &eds);
28c97ba38ff9c0 Mike Christie 2023-04-07 274 if (ret)
28c97ba38ff9c0 Mike Christie 2023-04-07 275 goto free_rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 276
28c97ba38ff9c0 Mike Christie 2023-04-07 277 if (num_regs != get_unaligned_le16(&rse->regctl)) {
28c97ba38ff9c0 Mike Christie 2023-04-07 @278 kfree(rse);
28c97ba38ff9c0 Mike Christie 2023-04-07 279 goto get_num_regs;
28c97ba38ff9c0 Mike Christie 2023-04-07 280 }
28c97ba38ff9c0 Mike Christie 2023-04-07 281
28c97ba38ff9c0 Mike Christie 2023-04-07 282 resv->generation = le32_to_cpu(rse->gen);
28c97ba38ff9c0 Mike Christie 2023-04-07 283 resv->type = block_pr_type_from_nvme(rse->rtype);
28c97ba38ff9c0 Mike Christie 2023-04-07 284
28c97ba38ff9c0 Mike Christie 2023-04-07 285 for (i = 0; i < num_regs; i++) {
28c97ba38ff9c0 Mike Christie 2023-04-07 286 if (eds) {
28c97ba38ff9c0 Mike Christie 2023-04-07 287 if (rse->regctl_eds[i].rcsts) {
28c97ba38ff9c0 Mike Christie 2023-04-07 288 resv->key = le64_to_cpu(rse->regctl_eds[i].rkey);
28c97ba38ff9c0 Mike Christie 2023-04-07 289 break;
28c97ba38ff9c0 Mike Christie 2023-04-07 290 }
28c97ba38ff9c0 Mike Christie 2023-04-07 291 } else {
28c97ba38ff9c0 Mike Christie 2023-04-07 292 struct nvme_reservation_status *rs;
28c97ba38ff9c0 Mike Christie 2023-04-07 293
28c97ba38ff9c0 Mike Christie 2023-04-07 294 rs = (struct nvme_reservation_status *)rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 295 if (rs->regctl_ds[i].rcsts) {
28c97ba38ff9c0 Mike Christie 2023-04-07 296 resv->key = le64_to_cpu(rs->regctl_ds[i].rkey);
28c97ba38ff9c0 Mike Christie 2023-04-07 297 break;
28c97ba38ff9c0 Mike Christie 2023-04-07 298 }
28c97ba38ff9c0 Mike Christie 2023-04-07 299 }
28c97ba38ff9c0 Mike Christie 2023-04-07 300 }
28c97ba38ff9c0 Mike Christie 2023-04-07 301
28c97ba38ff9c0 Mike Christie 2023-04-07 302 free_rse:
28c97ba38ff9c0 Mike Christie 2023-04-07 303 kfree(rse);
28c97ba38ff9c0 Mike Christie 2023-04-07 304 return ret;
28c97ba38ff9c0 Mike Christie 2023-04-07 305 }
28c97ba38ff9c0 Mike Christie 2023-04-07 306
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread* drivers/nvme/host/pr.c:268:23-26: ERROR: reference preceded by free on line 278
@ 2023-12-29 20:42 kernel test robot
0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2023-12-29 20:42 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Julia Lawall
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Mike Christie <michael.christie@oracle.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: Chaitanya Kulkarni <kch@nvidia.com>
CC: Christoph Hellwig <hch@lst.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8735c7c84d1bc5c3e481c02b6b6163bdefe4132f
commit: 28c97ba38ff9c00bc177887c2d8568b7115a44e0 nvme: Add pr_ops read_reservation support
date: 9 months ago
:::::: branch date: 20 hours ago
:::::: commit date: 9 months ago
config: hexagon-randconfig-r052-20231228 (https://download.01.org/0day-ci/archive/20231230/202312300432.SuZ0e2HA-lkp@intel.com/config)
compiler: clang version 18.0.0git (https://github.com/llvm/llvm-project d3ef86708241a3bee902615c190dead1638c4e09)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202312300432.SuZ0e2HA-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/nvme/host/pr.c:268:23-26: ERROR: reference preceded by free on line 278
vim +268 drivers/nvme/host/pr.c
5fd96a4e15de84 Mike Christie 2023-04-07 244
28c97ba38ff9c0 Mike Christie 2023-04-07 245 static int nvme_pr_read_reservation(struct block_device *bdev,
28c97ba38ff9c0 Mike Christie 2023-04-07 246 struct pr_held_reservation *resv)
28c97ba38ff9c0 Mike Christie 2023-04-07 247 {
28c97ba38ff9c0 Mike Christie 2023-04-07 248 struct nvme_reservation_status_ext tmp_rse, *rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 249 int ret, i, num_regs;
28c97ba38ff9c0 Mike Christie 2023-04-07 250 u32 rse_len;
28c97ba38ff9c0 Mike Christie 2023-04-07 251 bool eds;
28c97ba38ff9c0 Mike Christie 2023-04-07 252
28c97ba38ff9c0 Mike Christie 2023-04-07 253 get_num_regs:
28c97ba38ff9c0 Mike Christie 2023-04-07 254 /*
28c97ba38ff9c0 Mike Christie 2023-04-07 255 * Get the number of registrations so we know how big to allocate
28c97ba38ff9c0 Mike Christie 2023-04-07 256 * the response buffer.
28c97ba38ff9c0 Mike Christie 2023-04-07 257 */
28c97ba38ff9c0 Mike Christie 2023-04-07 258 ret = nvme_pr_resv_report(bdev, &tmp_rse, sizeof(tmp_rse), &eds);
28c97ba38ff9c0 Mike Christie 2023-04-07 259 if (ret)
28c97ba38ff9c0 Mike Christie 2023-04-07 260 return ret;
28c97ba38ff9c0 Mike Christie 2023-04-07 261
28c97ba38ff9c0 Mike Christie 2023-04-07 262 num_regs = get_unaligned_le16(&tmp_rse.regctl);
28c97ba38ff9c0 Mike Christie 2023-04-07 263 if (!num_regs) {
28c97ba38ff9c0 Mike Christie 2023-04-07 264 resv->generation = le32_to_cpu(tmp_rse.gen);
28c97ba38ff9c0 Mike Christie 2023-04-07 265 return 0;
28c97ba38ff9c0 Mike Christie 2023-04-07 266 }
28c97ba38ff9c0 Mike Christie 2023-04-07 267
28c97ba38ff9c0 Mike Christie 2023-04-07 @268 rse_len = struct_size(rse, regctl_eds, num_regs);
28c97ba38ff9c0 Mike Christie 2023-04-07 269 rse = kzalloc(rse_len, GFP_KERNEL);
28c97ba38ff9c0 Mike Christie 2023-04-07 270 if (!rse)
28c97ba38ff9c0 Mike Christie 2023-04-07 271 return -ENOMEM;
28c97ba38ff9c0 Mike Christie 2023-04-07 272
28c97ba38ff9c0 Mike Christie 2023-04-07 273 ret = nvme_pr_resv_report(bdev, rse, rse_len, &eds);
28c97ba38ff9c0 Mike Christie 2023-04-07 274 if (ret)
28c97ba38ff9c0 Mike Christie 2023-04-07 275 goto free_rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 276
28c97ba38ff9c0 Mike Christie 2023-04-07 277 if (num_regs != get_unaligned_le16(&rse->regctl)) {
28c97ba38ff9c0 Mike Christie 2023-04-07 @278 kfree(rse);
28c97ba38ff9c0 Mike Christie 2023-04-07 279 goto get_num_regs;
28c97ba38ff9c0 Mike Christie 2023-04-07 280 }
28c97ba38ff9c0 Mike Christie 2023-04-07 281
28c97ba38ff9c0 Mike Christie 2023-04-07 282 resv->generation = le32_to_cpu(rse->gen);
28c97ba38ff9c0 Mike Christie 2023-04-07 283 resv->type = block_pr_type_from_nvme(rse->rtype);
28c97ba38ff9c0 Mike Christie 2023-04-07 284
28c97ba38ff9c0 Mike Christie 2023-04-07 285 for (i = 0; i < num_regs; i++) {
28c97ba38ff9c0 Mike Christie 2023-04-07 286 if (eds) {
28c97ba38ff9c0 Mike Christie 2023-04-07 287 if (rse->regctl_eds[i].rcsts) {
28c97ba38ff9c0 Mike Christie 2023-04-07 288 resv->key = le64_to_cpu(rse->regctl_eds[i].rkey);
28c97ba38ff9c0 Mike Christie 2023-04-07 289 break;
28c97ba38ff9c0 Mike Christie 2023-04-07 290 }
28c97ba38ff9c0 Mike Christie 2023-04-07 291 } else {
28c97ba38ff9c0 Mike Christie 2023-04-07 292 struct nvme_reservation_status *rs;
28c97ba38ff9c0 Mike Christie 2023-04-07 293
28c97ba38ff9c0 Mike Christie 2023-04-07 294 rs = (struct nvme_reservation_status *)rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 295 if (rs->regctl_ds[i].rcsts) {
28c97ba38ff9c0 Mike Christie 2023-04-07 296 resv->key = le64_to_cpu(rs->regctl_ds[i].rkey);
28c97ba38ff9c0 Mike Christie 2023-04-07 297 break;
28c97ba38ff9c0 Mike Christie 2023-04-07 298 }
28c97ba38ff9c0 Mike Christie 2023-04-07 299 }
28c97ba38ff9c0 Mike Christie 2023-04-07 300 }
28c97ba38ff9c0 Mike Christie 2023-04-07 301
28c97ba38ff9c0 Mike Christie 2023-04-07 302 free_rse:
28c97ba38ff9c0 Mike Christie 2023-04-07 303 kfree(rse);
28c97ba38ff9c0 Mike Christie 2023-04-07 304 return ret;
28c97ba38ff9c0 Mike Christie 2023-04-07 305 }
28c97ba38ff9c0 Mike Christie 2023-04-07 306
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread* drivers/nvme/host/pr.c:268:23-26: ERROR: reference preceded by free on line 278
@ 2023-12-30 23:52 kernel test robot
0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2023-12-30 23:52 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Julia Lawall
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Mike Christie <michael.christie@oracle.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: Chaitanya Kulkarni <kch@nvidia.com>
CC: Christoph Hellwig <hch@lst.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 453f5db0619e2ad64076aab16ff5a00e0f7c53a2
commit: 28c97ba38ff9c00bc177887c2d8568b7115a44e0 nvme: Add pr_ops read_reservation support
date: 9 months ago
:::::: branch date: 4 hours ago
:::::: commit date: 9 months ago
config: hexagon-randconfig-r052-20231228 (https://download.01.org/0day-ci/archive/20231231/202312310709.vrV1gsVK-lkp@intel.com/config)
compiler: clang version 18.0.0git (https://github.com/llvm/llvm-project d3ef86708241a3bee902615c190dead1638c4e09)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202312310709.vrV1gsVK-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/nvme/host/pr.c:268:23-26: ERROR: reference preceded by free on line 278
vim +268 drivers/nvme/host/pr.c
5fd96a4e15de84 Mike Christie 2023-04-07 244
28c97ba38ff9c0 Mike Christie 2023-04-07 245 static int nvme_pr_read_reservation(struct block_device *bdev,
28c97ba38ff9c0 Mike Christie 2023-04-07 246 struct pr_held_reservation *resv)
28c97ba38ff9c0 Mike Christie 2023-04-07 247 {
28c97ba38ff9c0 Mike Christie 2023-04-07 248 struct nvme_reservation_status_ext tmp_rse, *rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 249 int ret, i, num_regs;
28c97ba38ff9c0 Mike Christie 2023-04-07 250 u32 rse_len;
28c97ba38ff9c0 Mike Christie 2023-04-07 251 bool eds;
28c97ba38ff9c0 Mike Christie 2023-04-07 252
28c97ba38ff9c0 Mike Christie 2023-04-07 253 get_num_regs:
28c97ba38ff9c0 Mike Christie 2023-04-07 254 /*
28c97ba38ff9c0 Mike Christie 2023-04-07 255 * Get the number of registrations so we know how big to allocate
28c97ba38ff9c0 Mike Christie 2023-04-07 256 * the response buffer.
28c97ba38ff9c0 Mike Christie 2023-04-07 257 */
28c97ba38ff9c0 Mike Christie 2023-04-07 258 ret = nvme_pr_resv_report(bdev, &tmp_rse, sizeof(tmp_rse), &eds);
28c97ba38ff9c0 Mike Christie 2023-04-07 259 if (ret)
28c97ba38ff9c0 Mike Christie 2023-04-07 260 return ret;
28c97ba38ff9c0 Mike Christie 2023-04-07 261
28c97ba38ff9c0 Mike Christie 2023-04-07 262 num_regs = get_unaligned_le16(&tmp_rse.regctl);
28c97ba38ff9c0 Mike Christie 2023-04-07 263 if (!num_regs) {
28c97ba38ff9c0 Mike Christie 2023-04-07 264 resv->generation = le32_to_cpu(tmp_rse.gen);
28c97ba38ff9c0 Mike Christie 2023-04-07 265 return 0;
28c97ba38ff9c0 Mike Christie 2023-04-07 266 }
28c97ba38ff9c0 Mike Christie 2023-04-07 267
28c97ba38ff9c0 Mike Christie 2023-04-07 @268 rse_len = struct_size(rse, regctl_eds, num_regs);
28c97ba38ff9c0 Mike Christie 2023-04-07 269 rse = kzalloc(rse_len, GFP_KERNEL);
28c97ba38ff9c0 Mike Christie 2023-04-07 270 if (!rse)
28c97ba38ff9c0 Mike Christie 2023-04-07 271 return -ENOMEM;
28c97ba38ff9c0 Mike Christie 2023-04-07 272
28c97ba38ff9c0 Mike Christie 2023-04-07 273 ret = nvme_pr_resv_report(bdev, rse, rse_len, &eds);
28c97ba38ff9c0 Mike Christie 2023-04-07 274 if (ret)
28c97ba38ff9c0 Mike Christie 2023-04-07 275 goto free_rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 276
28c97ba38ff9c0 Mike Christie 2023-04-07 277 if (num_regs != get_unaligned_le16(&rse->regctl)) {
28c97ba38ff9c0 Mike Christie 2023-04-07 @278 kfree(rse);
28c97ba38ff9c0 Mike Christie 2023-04-07 279 goto get_num_regs;
28c97ba38ff9c0 Mike Christie 2023-04-07 280 }
28c97ba38ff9c0 Mike Christie 2023-04-07 281
28c97ba38ff9c0 Mike Christie 2023-04-07 282 resv->generation = le32_to_cpu(rse->gen);
28c97ba38ff9c0 Mike Christie 2023-04-07 283 resv->type = block_pr_type_from_nvme(rse->rtype);
28c97ba38ff9c0 Mike Christie 2023-04-07 284
28c97ba38ff9c0 Mike Christie 2023-04-07 285 for (i = 0; i < num_regs; i++) {
28c97ba38ff9c0 Mike Christie 2023-04-07 286 if (eds) {
28c97ba38ff9c0 Mike Christie 2023-04-07 287 if (rse->regctl_eds[i].rcsts) {
28c97ba38ff9c0 Mike Christie 2023-04-07 288 resv->key = le64_to_cpu(rse->regctl_eds[i].rkey);
28c97ba38ff9c0 Mike Christie 2023-04-07 289 break;
28c97ba38ff9c0 Mike Christie 2023-04-07 290 }
28c97ba38ff9c0 Mike Christie 2023-04-07 291 } else {
28c97ba38ff9c0 Mike Christie 2023-04-07 292 struct nvme_reservation_status *rs;
28c97ba38ff9c0 Mike Christie 2023-04-07 293
28c97ba38ff9c0 Mike Christie 2023-04-07 294 rs = (struct nvme_reservation_status *)rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 295 if (rs->regctl_ds[i].rcsts) {
28c97ba38ff9c0 Mike Christie 2023-04-07 296 resv->key = le64_to_cpu(rs->regctl_ds[i].rkey);
28c97ba38ff9c0 Mike Christie 2023-04-07 297 break;
28c97ba38ff9c0 Mike Christie 2023-04-07 298 }
28c97ba38ff9c0 Mike Christie 2023-04-07 299 }
28c97ba38ff9c0 Mike Christie 2023-04-07 300 }
28c97ba38ff9c0 Mike Christie 2023-04-07 301
28c97ba38ff9c0 Mike Christie 2023-04-07 302 free_rse:
28c97ba38ff9c0 Mike Christie 2023-04-07 303 kfree(rse);
28c97ba38ff9c0 Mike Christie 2023-04-07 304 return ret;
28c97ba38ff9c0 Mike Christie 2023-04-07 305 }
28c97ba38ff9c0 Mike Christie 2023-04-07 306
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread* drivers/nvme/host/pr.c:268:23-26: ERROR: reference preceded by free on line 278
@ 2024-01-01 20:27 kernel test robot
0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2024-01-01 20:27 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Julia Lawall
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Mike Christie <michael.christie@oracle.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: Chaitanya Kulkarni <kch@nvidia.com>
CC: Christoph Hellwig <hch@lst.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 610a9b8f49fbcf1100716370d3b5f6f884a2835a
commit: 28c97ba38ff9c00bc177887c2d8568b7115a44e0 nvme: Add pr_ops read_reservation support
date: 9 months ago
:::::: branch date: 24 hours ago
:::::: commit date: 9 months ago
config: hexagon-randconfig-r052-20231228 (https://download.01.org/0day-ci/archive/20240102/202401020453.zNhOWCxA-lkp@intel.com/config)
compiler: clang version 18.0.0git (https://github.com/llvm/llvm-project d3ef86708241a3bee902615c190dead1638c4e09)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202401020453.zNhOWCxA-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/nvme/host/pr.c:268:23-26: ERROR: reference preceded by free on line 278
vim +268 drivers/nvme/host/pr.c
5fd96a4e15de84 Mike Christie 2023-04-07 244
28c97ba38ff9c0 Mike Christie 2023-04-07 245 static int nvme_pr_read_reservation(struct block_device *bdev,
28c97ba38ff9c0 Mike Christie 2023-04-07 246 struct pr_held_reservation *resv)
28c97ba38ff9c0 Mike Christie 2023-04-07 247 {
28c97ba38ff9c0 Mike Christie 2023-04-07 248 struct nvme_reservation_status_ext tmp_rse, *rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 249 int ret, i, num_regs;
28c97ba38ff9c0 Mike Christie 2023-04-07 250 u32 rse_len;
28c97ba38ff9c0 Mike Christie 2023-04-07 251 bool eds;
28c97ba38ff9c0 Mike Christie 2023-04-07 252
28c97ba38ff9c0 Mike Christie 2023-04-07 253 get_num_regs:
28c97ba38ff9c0 Mike Christie 2023-04-07 254 /*
28c97ba38ff9c0 Mike Christie 2023-04-07 255 * Get the number of registrations so we know how big to allocate
28c97ba38ff9c0 Mike Christie 2023-04-07 256 * the response buffer.
28c97ba38ff9c0 Mike Christie 2023-04-07 257 */
28c97ba38ff9c0 Mike Christie 2023-04-07 258 ret = nvme_pr_resv_report(bdev, &tmp_rse, sizeof(tmp_rse), &eds);
28c97ba38ff9c0 Mike Christie 2023-04-07 259 if (ret)
28c97ba38ff9c0 Mike Christie 2023-04-07 260 return ret;
28c97ba38ff9c0 Mike Christie 2023-04-07 261
28c97ba38ff9c0 Mike Christie 2023-04-07 262 num_regs = get_unaligned_le16(&tmp_rse.regctl);
28c97ba38ff9c0 Mike Christie 2023-04-07 263 if (!num_regs) {
28c97ba38ff9c0 Mike Christie 2023-04-07 264 resv->generation = le32_to_cpu(tmp_rse.gen);
28c97ba38ff9c0 Mike Christie 2023-04-07 265 return 0;
28c97ba38ff9c0 Mike Christie 2023-04-07 266 }
28c97ba38ff9c0 Mike Christie 2023-04-07 267
28c97ba38ff9c0 Mike Christie 2023-04-07 @268 rse_len = struct_size(rse, regctl_eds, num_regs);
28c97ba38ff9c0 Mike Christie 2023-04-07 269 rse = kzalloc(rse_len, GFP_KERNEL);
28c97ba38ff9c0 Mike Christie 2023-04-07 270 if (!rse)
28c97ba38ff9c0 Mike Christie 2023-04-07 271 return -ENOMEM;
28c97ba38ff9c0 Mike Christie 2023-04-07 272
28c97ba38ff9c0 Mike Christie 2023-04-07 273 ret = nvme_pr_resv_report(bdev, rse, rse_len, &eds);
28c97ba38ff9c0 Mike Christie 2023-04-07 274 if (ret)
28c97ba38ff9c0 Mike Christie 2023-04-07 275 goto free_rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 276
28c97ba38ff9c0 Mike Christie 2023-04-07 277 if (num_regs != get_unaligned_le16(&rse->regctl)) {
28c97ba38ff9c0 Mike Christie 2023-04-07 @278 kfree(rse);
28c97ba38ff9c0 Mike Christie 2023-04-07 279 goto get_num_regs;
28c97ba38ff9c0 Mike Christie 2023-04-07 280 }
28c97ba38ff9c0 Mike Christie 2023-04-07 281
28c97ba38ff9c0 Mike Christie 2023-04-07 282 resv->generation = le32_to_cpu(rse->gen);
28c97ba38ff9c0 Mike Christie 2023-04-07 283 resv->type = block_pr_type_from_nvme(rse->rtype);
28c97ba38ff9c0 Mike Christie 2023-04-07 284
28c97ba38ff9c0 Mike Christie 2023-04-07 285 for (i = 0; i < num_regs; i++) {
28c97ba38ff9c0 Mike Christie 2023-04-07 286 if (eds) {
28c97ba38ff9c0 Mike Christie 2023-04-07 287 if (rse->regctl_eds[i].rcsts) {
28c97ba38ff9c0 Mike Christie 2023-04-07 288 resv->key = le64_to_cpu(rse->regctl_eds[i].rkey);
28c97ba38ff9c0 Mike Christie 2023-04-07 289 break;
28c97ba38ff9c0 Mike Christie 2023-04-07 290 }
28c97ba38ff9c0 Mike Christie 2023-04-07 291 } else {
28c97ba38ff9c0 Mike Christie 2023-04-07 292 struct nvme_reservation_status *rs;
28c97ba38ff9c0 Mike Christie 2023-04-07 293
28c97ba38ff9c0 Mike Christie 2023-04-07 294 rs = (struct nvme_reservation_status *)rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 295 if (rs->regctl_ds[i].rcsts) {
28c97ba38ff9c0 Mike Christie 2023-04-07 296 resv->key = le64_to_cpu(rs->regctl_ds[i].rkey);
28c97ba38ff9c0 Mike Christie 2023-04-07 297 break;
28c97ba38ff9c0 Mike Christie 2023-04-07 298 }
28c97ba38ff9c0 Mike Christie 2023-04-07 299 }
28c97ba38ff9c0 Mike Christie 2023-04-07 300 }
28c97ba38ff9c0 Mike Christie 2023-04-07 301
28c97ba38ff9c0 Mike Christie 2023-04-07 302 free_rse:
28c97ba38ff9c0 Mike Christie 2023-04-07 303 kfree(rse);
28c97ba38ff9c0 Mike Christie 2023-04-07 304 return ret;
28c97ba38ff9c0 Mike Christie 2023-04-07 305 }
28c97ba38ff9c0 Mike Christie 2023-04-07 306
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread* drivers/nvme/host/pr.c:268:23-26: ERROR: reference preceded by free on line 278
@ 2024-01-03 19:27 kernel test robot
0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2024-01-03 19:27 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Julia Lawall
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Mike Christie <michael.christie@oracle.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: Chaitanya Kulkarni <kch@nvidia.com>
CC: Christoph Hellwig <hch@lst.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 610a9b8f49fbcf1100716370d3b5f6f884a2835a
commit: 28c97ba38ff9c00bc177887c2d8568b7115a44e0 nvme: Add pr_ops read_reservation support
date: 9 months ago
:::::: branch date: 3 days ago
:::::: commit date: 9 months ago
config: hexagon-randconfig-r052-20231228 (https://download.01.org/0day-ci/archive/20240104/202401040321.btNQ4txH-lkp@intel.com/config)
compiler: clang version 18.0.0git (https://github.com/llvm/llvm-project d3ef86708241a3bee902615c190dead1638c4e09)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202401040321.btNQ4txH-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/nvme/host/pr.c:268:23-26: ERROR: reference preceded by free on line 278
vim +268 drivers/nvme/host/pr.c
5fd96a4e15de84 Mike Christie 2023-04-07 244
28c97ba38ff9c0 Mike Christie 2023-04-07 245 static int nvme_pr_read_reservation(struct block_device *bdev,
28c97ba38ff9c0 Mike Christie 2023-04-07 246 struct pr_held_reservation *resv)
28c97ba38ff9c0 Mike Christie 2023-04-07 247 {
28c97ba38ff9c0 Mike Christie 2023-04-07 248 struct nvme_reservation_status_ext tmp_rse, *rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 249 int ret, i, num_regs;
28c97ba38ff9c0 Mike Christie 2023-04-07 250 u32 rse_len;
28c97ba38ff9c0 Mike Christie 2023-04-07 251 bool eds;
28c97ba38ff9c0 Mike Christie 2023-04-07 252
28c97ba38ff9c0 Mike Christie 2023-04-07 253 get_num_regs:
28c97ba38ff9c0 Mike Christie 2023-04-07 254 /*
28c97ba38ff9c0 Mike Christie 2023-04-07 255 * Get the number of registrations so we know how big to allocate
28c97ba38ff9c0 Mike Christie 2023-04-07 256 * the response buffer.
28c97ba38ff9c0 Mike Christie 2023-04-07 257 */
28c97ba38ff9c0 Mike Christie 2023-04-07 258 ret = nvme_pr_resv_report(bdev, &tmp_rse, sizeof(tmp_rse), &eds);
28c97ba38ff9c0 Mike Christie 2023-04-07 259 if (ret)
28c97ba38ff9c0 Mike Christie 2023-04-07 260 return ret;
28c97ba38ff9c0 Mike Christie 2023-04-07 261
28c97ba38ff9c0 Mike Christie 2023-04-07 262 num_regs = get_unaligned_le16(&tmp_rse.regctl);
28c97ba38ff9c0 Mike Christie 2023-04-07 263 if (!num_regs) {
28c97ba38ff9c0 Mike Christie 2023-04-07 264 resv->generation = le32_to_cpu(tmp_rse.gen);
28c97ba38ff9c0 Mike Christie 2023-04-07 265 return 0;
28c97ba38ff9c0 Mike Christie 2023-04-07 266 }
28c97ba38ff9c0 Mike Christie 2023-04-07 267
28c97ba38ff9c0 Mike Christie 2023-04-07 @268 rse_len = struct_size(rse, regctl_eds, num_regs);
28c97ba38ff9c0 Mike Christie 2023-04-07 269 rse = kzalloc(rse_len, GFP_KERNEL);
28c97ba38ff9c0 Mike Christie 2023-04-07 270 if (!rse)
28c97ba38ff9c0 Mike Christie 2023-04-07 271 return -ENOMEM;
28c97ba38ff9c0 Mike Christie 2023-04-07 272
28c97ba38ff9c0 Mike Christie 2023-04-07 273 ret = nvme_pr_resv_report(bdev, rse, rse_len, &eds);
28c97ba38ff9c0 Mike Christie 2023-04-07 274 if (ret)
28c97ba38ff9c0 Mike Christie 2023-04-07 275 goto free_rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 276
28c97ba38ff9c0 Mike Christie 2023-04-07 277 if (num_regs != get_unaligned_le16(&rse->regctl)) {
28c97ba38ff9c0 Mike Christie 2023-04-07 @278 kfree(rse);
28c97ba38ff9c0 Mike Christie 2023-04-07 279 goto get_num_regs;
28c97ba38ff9c0 Mike Christie 2023-04-07 280 }
28c97ba38ff9c0 Mike Christie 2023-04-07 281
28c97ba38ff9c0 Mike Christie 2023-04-07 282 resv->generation = le32_to_cpu(rse->gen);
28c97ba38ff9c0 Mike Christie 2023-04-07 283 resv->type = block_pr_type_from_nvme(rse->rtype);
28c97ba38ff9c0 Mike Christie 2023-04-07 284
28c97ba38ff9c0 Mike Christie 2023-04-07 285 for (i = 0; i < num_regs; i++) {
28c97ba38ff9c0 Mike Christie 2023-04-07 286 if (eds) {
28c97ba38ff9c0 Mike Christie 2023-04-07 287 if (rse->regctl_eds[i].rcsts) {
28c97ba38ff9c0 Mike Christie 2023-04-07 288 resv->key = le64_to_cpu(rse->regctl_eds[i].rkey);
28c97ba38ff9c0 Mike Christie 2023-04-07 289 break;
28c97ba38ff9c0 Mike Christie 2023-04-07 290 }
28c97ba38ff9c0 Mike Christie 2023-04-07 291 } else {
28c97ba38ff9c0 Mike Christie 2023-04-07 292 struct nvme_reservation_status *rs;
28c97ba38ff9c0 Mike Christie 2023-04-07 293
28c97ba38ff9c0 Mike Christie 2023-04-07 294 rs = (struct nvme_reservation_status *)rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 295 if (rs->regctl_ds[i].rcsts) {
28c97ba38ff9c0 Mike Christie 2023-04-07 296 resv->key = le64_to_cpu(rs->regctl_ds[i].rkey);
28c97ba38ff9c0 Mike Christie 2023-04-07 297 break;
28c97ba38ff9c0 Mike Christie 2023-04-07 298 }
28c97ba38ff9c0 Mike Christie 2023-04-07 299 }
28c97ba38ff9c0 Mike Christie 2023-04-07 300 }
28c97ba38ff9c0 Mike Christie 2023-04-07 301
28c97ba38ff9c0 Mike Christie 2023-04-07 302 free_rse:
28c97ba38ff9c0 Mike Christie 2023-04-07 303 kfree(rse);
28c97ba38ff9c0 Mike Christie 2023-04-07 304 return ret;
28c97ba38ff9c0 Mike Christie 2023-04-07 305 }
28c97ba38ff9c0 Mike Christie 2023-04-07 306
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread* drivers/nvme/host/pr.c:268:23-26: ERROR: reference preceded by free on line 278
@ 2024-01-06 7:00 kernel test robot
0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2024-01-06 7:00 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Julia Lawall
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Mike Christie <michael.christie@oracle.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: Chaitanya Kulkarni <kch@nvidia.com>
CC: Christoph Hellwig <hch@lst.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 95c8a35f1c017327eab3b6a2ff5c04255737c856
commit: 28c97ba38ff9c00bc177887c2d8568b7115a44e0 nvme: Add pr_ops read_reservation support
date: 9 months ago
:::::: branch date: 9 hours ago
:::::: commit date: 9 months ago
config: hexagon-randconfig-r052-20231228 (https://download.01.org/0day-ci/archive/20240106/202401061455.dGq7UcQy-lkp@intel.com/config)
compiler: clang version 18.0.0git (https://github.com/llvm/llvm-project d3ef86708241a3bee902615c190dead1638c4e09)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202401061455.dGq7UcQy-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/nvme/host/pr.c:268:23-26: ERROR: reference preceded by free on line 278
vim +268 drivers/nvme/host/pr.c
5fd96a4e15de84 Mike Christie 2023-04-07 244
28c97ba38ff9c0 Mike Christie 2023-04-07 245 static int nvme_pr_read_reservation(struct block_device *bdev,
28c97ba38ff9c0 Mike Christie 2023-04-07 246 struct pr_held_reservation *resv)
28c97ba38ff9c0 Mike Christie 2023-04-07 247 {
28c97ba38ff9c0 Mike Christie 2023-04-07 248 struct nvme_reservation_status_ext tmp_rse, *rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 249 int ret, i, num_regs;
28c97ba38ff9c0 Mike Christie 2023-04-07 250 u32 rse_len;
28c97ba38ff9c0 Mike Christie 2023-04-07 251 bool eds;
28c97ba38ff9c0 Mike Christie 2023-04-07 252
28c97ba38ff9c0 Mike Christie 2023-04-07 253 get_num_regs:
28c97ba38ff9c0 Mike Christie 2023-04-07 254 /*
28c97ba38ff9c0 Mike Christie 2023-04-07 255 * Get the number of registrations so we know how big to allocate
28c97ba38ff9c0 Mike Christie 2023-04-07 256 * the response buffer.
28c97ba38ff9c0 Mike Christie 2023-04-07 257 */
28c97ba38ff9c0 Mike Christie 2023-04-07 258 ret = nvme_pr_resv_report(bdev, &tmp_rse, sizeof(tmp_rse), &eds);
28c97ba38ff9c0 Mike Christie 2023-04-07 259 if (ret)
28c97ba38ff9c0 Mike Christie 2023-04-07 260 return ret;
28c97ba38ff9c0 Mike Christie 2023-04-07 261
28c97ba38ff9c0 Mike Christie 2023-04-07 262 num_regs = get_unaligned_le16(&tmp_rse.regctl);
28c97ba38ff9c0 Mike Christie 2023-04-07 263 if (!num_regs) {
28c97ba38ff9c0 Mike Christie 2023-04-07 264 resv->generation = le32_to_cpu(tmp_rse.gen);
28c97ba38ff9c0 Mike Christie 2023-04-07 265 return 0;
28c97ba38ff9c0 Mike Christie 2023-04-07 266 }
28c97ba38ff9c0 Mike Christie 2023-04-07 267
28c97ba38ff9c0 Mike Christie 2023-04-07 @268 rse_len = struct_size(rse, regctl_eds, num_regs);
28c97ba38ff9c0 Mike Christie 2023-04-07 269 rse = kzalloc(rse_len, GFP_KERNEL);
28c97ba38ff9c0 Mike Christie 2023-04-07 270 if (!rse)
28c97ba38ff9c0 Mike Christie 2023-04-07 271 return -ENOMEM;
28c97ba38ff9c0 Mike Christie 2023-04-07 272
28c97ba38ff9c0 Mike Christie 2023-04-07 273 ret = nvme_pr_resv_report(bdev, rse, rse_len, &eds);
28c97ba38ff9c0 Mike Christie 2023-04-07 274 if (ret)
28c97ba38ff9c0 Mike Christie 2023-04-07 275 goto free_rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 276
28c97ba38ff9c0 Mike Christie 2023-04-07 277 if (num_regs != get_unaligned_le16(&rse->regctl)) {
28c97ba38ff9c0 Mike Christie 2023-04-07 @278 kfree(rse);
28c97ba38ff9c0 Mike Christie 2023-04-07 279 goto get_num_regs;
28c97ba38ff9c0 Mike Christie 2023-04-07 280 }
28c97ba38ff9c0 Mike Christie 2023-04-07 281
28c97ba38ff9c0 Mike Christie 2023-04-07 282 resv->generation = le32_to_cpu(rse->gen);
28c97ba38ff9c0 Mike Christie 2023-04-07 283 resv->type = block_pr_type_from_nvme(rse->rtype);
28c97ba38ff9c0 Mike Christie 2023-04-07 284
28c97ba38ff9c0 Mike Christie 2023-04-07 285 for (i = 0; i < num_regs; i++) {
28c97ba38ff9c0 Mike Christie 2023-04-07 286 if (eds) {
28c97ba38ff9c0 Mike Christie 2023-04-07 287 if (rse->regctl_eds[i].rcsts) {
28c97ba38ff9c0 Mike Christie 2023-04-07 288 resv->key = le64_to_cpu(rse->regctl_eds[i].rkey);
28c97ba38ff9c0 Mike Christie 2023-04-07 289 break;
28c97ba38ff9c0 Mike Christie 2023-04-07 290 }
28c97ba38ff9c0 Mike Christie 2023-04-07 291 } else {
28c97ba38ff9c0 Mike Christie 2023-04-07 292 struct nvme_reservation_status *rs;
28c97ba38ff9c0 Mike Christie 2023-04-07 293
28c97ba38ff9c0 Mike Christie 2023-04-07 294 rs = (struct nvme_reservation_status *)rse;
28c97ba38ff9c0 Mike Christie 2023-04-07 295 if (rs->regctl_ds[i].rcsts) {
28c97ba38ff9c0 Mike Christie 2023-04-07 296 resv->key = le64_to_cpu(rs->regctl_ds[i].rkey);
28c97ba38ff9c0 Mike Christie 2023-04-07 297 break;
28c97ba38ff9c0 Mike Christie 2023-04-07 298 }
28c97ba38ff9c0 Mike Christie 2023-04-07 299 }
28c97ba38ff9c0 Mike Christie 2023-04-07 300 }
28c97ba38ff9c0 Mike Christie 2023-04-07 301
28c97ba38ff9c0 Mike Christie 2023-04-07 302 free_rse:
28c97ba38ff9c0 Mike Christie 2023-04-07 303 kfree(rse);
28c97ba38ff9c0 Mike Christie 2023-04-07 304 return ret;
28c97ba38ff9c0 Mike Christie 2023-04-07 305 }
28c97ba38ff9c0 Mike Christie 2023-04-07 306
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-01-06 7:00 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-29 5:17 drivers/nvme/host/pr.c:268:23-26: ERROR: reference preceded by free on line 278 kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2023-12-29 20:42 kernel test robot
2023-12-30 23:52 kernel test robot
2024-01-01 20:27 kernel test robot
2024-01-03 19:27 kernel test robot
2024-01-06 7:00 kernel test robot
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.