* drivers/nvme/target/pci-epf.c:1087:8-12: ERROR: reference preceded by free on line 1082
@ 2025-12-16 17:36 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2025-12-16 17:36 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: Damien Le Moal <dlemoal@kernel.org>
CC: Keith Busch <kbusch@kernel.org>
CC: Christoph Hellwig <hch@lst.de>
CC: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
CC: "Krzysztof Wilczyński" <kwilczynski@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 40fbbd64bba6c6e7a72885d2f59b6a3be9991eeb
commit: 0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186 nvmet: New NVMe PCI endpoint function target driver
date: 11 months ago
:::::: branch date: 10 hours ago
:::::: commit date: 11 months ago
config: sparc64-randconfig-r053-20251216 (https://download.01.org/0day-ci/archive/20251217/202512170146.WfjrzWNF-lkp@intel.com/config)
compiler: sparc64-linux-gcc (GCC) 8.5.0
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/202512170146.WfjrzWNF-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/nvme/target/pci-epf.c:1087:8-12: ERROR: reference preceded by free on line 1082
vim +1087 drivers/nvme/target/pci-epf.c
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1033
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1034 static int nvmet_pci_epf_iod_parse_sgl_segments(struct nvmet_pci_epf_ctrl *ctrl,
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1035 struct nvmet_pci_epf_iod *iod)
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1036 {
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1037 struct nvme_command *cmd = &iod->cmd;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1038 struct nvme_sgl_desc seg = cmd->common.dptr.sgl;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1039 struct nvme_sgl_desc *sgls = NULL;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1040 int n = 0, i, nr_sgls;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1041 int ret;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1042
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1043 /*
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1044 * We do not support inline data nor keyed SGLs, so we should be seeing
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1045 * only segment descriptors.
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1046 */
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1047 if (seg.type != (NVME_SGL_FMT_SEG_DESC << 4) &&
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1048 seg.type != (NVME_SGL_FMT_LAST_SEG_DESC << 4)) {
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1049 iod->status = NVME_SC_SGL_INVALID_TYPE | NVME_STATUS_DNR;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1050 return -EIO;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1051 }
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1052
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1053 while (seg.length) {
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1054 sgls = nvmet_pci_epf_get_sgl_segment(ctrl, &seg, &nr_sgls);
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1055 if (!sgls) {
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1056 iod->status = NVME_SC_INTERNAL | NVME_STATUS_DNR;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1057 return -EIO;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1058 }
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1059
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1060 /* Grow the PCI segment table as needed. */
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1061 ret = nvmet_pci_epf_alloc_iod_data_segs(iod, nr_sgls);
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1062 if (ret) {
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1063 iod->status = NVME_SC_INTERNAL | NVME_STATUS_DNR;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1064 goto out;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1065 }
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1066
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1067 /*
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1068 * Parse the SGL descriptors to build the PCI segment table,
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1069 * checking the descriptor type as we go.
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1070 */
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1071 for (i = 0; i < nr_sgls; i++) {
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1072 if (sgls[i].type != (NVME_SGL_FMT_DATA_DESC << 4)) {
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1073 iod->status = NVME_SC_SGL_INVALID_TYPE |
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1074 NVME_STATUS_DNR;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1075 goto out;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1076 }
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1077 iod->data_segs[n].pci_addr = le64_to_cpu(sgls[i].addr);
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1078 iod->data_segs[n].length = le32_to_cpu(sgls[i].length);
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1079 n++;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1080 }
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1081
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 @1082 kfree(sgls);
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1083 }
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1084
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1085 out:
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1086 if (iod->status != NVME_SC_SUCCESS) {
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 @1087 kfree(sgls);
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1088 return -EIO;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1089 }
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1090
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1091 return 0;
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1092 }
0faa0fe6f90ea59 Damien Le Moal 2025-01-04 1093
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* drivers/nvme/target/pci-epf.c:1087:8-12: ERROR: reference preceded by free on line 1082
@ 2026-02-16 11:11 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-02-16 11:11 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: Damien Le Moal <dlemoal@kernel.org>
CC: Keith Busch <kbusch@kernel.org>
CC: Christoph Hellwig <hch@lst.de>
CC: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
CC: "Krzysztof Wilczyński" <kwilczynski@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 0f2acd3148e0ef42bdacbd477f90e8533f96b2ac
commit: 0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186 nvmet: New NVMe PCI endpoint function target driver
date: 1 year, 1 month ago
:::::: branch date: 7 hours ago
:::::: commit date: 1 year, 1 month ago
config: powerpc-randconfig-r053-20260216 (https://download.01.org/0day-ci/archive/20260216/202602161926.2b0yVKkf-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project afd4df07ab0262482829d4410a6bae9f2809d37b)
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/202602161926.2b0yVKkf-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/nvme/target/pci-epf.c:1087:8-12: ERROR: reference preceded by free on line 1082
vim +1087 drivers/nvme/target/pci-epf.c
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1033
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1034 static int nvmet_pci_epf_iod_parse_sgl_segments(struct nvmet_pci_epf_ctrl *ctrl,
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1035 struct nvmet_pci_epf_iod *iod)
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1036 {
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1037 struct nvme_command *cmd = &iod->cmd;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1038 struct nvme_sgl_desc seg = cmd->common.dptr.sgl;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1039 struct nvme_sgl_desc *sgls = NULL;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1040 int n = 0, i, nr_sgls;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1041 int ret;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1042
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1043 /*
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1044 * We do not support inline data nor keyed SGLs, so we should be seeing
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1045 * only segment descriptors.
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1046 */
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1047 if (seg.type != (NVME_SGL_FMT_SEG_DESC << 4) &&
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1048 seg.type != (NVME_SGL_FMT_LAST_SEG_DESC << 4)) {
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1049 iod->status = NVME_SC_SGL_INVALID_TYPE | NVME_STATUS_DNR;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1050 return -EIO;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1051 }
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1052
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1053 while (seg.length) {
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1054 sgls = nvmet_pci_epf_get_sgl_segment(ctrl, &seg, &nr_sgls);
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1055 if (!sgls) {
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1056 iod->status = NVME_SC_INTERNAL | NVME_STATUS_DNR;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1057 return -EIO;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1058 }
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1059
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1060 /* Grow the PCI segment table as needed. */
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1061 ret = nvmet_pci_epf_alloc_iod_data_segs(iod, nr_sgls);
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1062 if (ret) {
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1063 iod->status = NVME_SC_INTERNAL | NVME_STATUS_DNR;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1064 goto out;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1065 }
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1066
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1067 /*
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1068 * Parse the SGL descriptors to build the PCI segment table,
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1069 * checking the descriptor type as we go.
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1070 */
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1071 for (i = 0; i < nr_sgls; i++) {
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1072 if (sgls[i].type != (NVME_SGL_FMT_DATA_DESC << 4)) {
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1073 iod->status = NVME_SC_SGL_INVALID_TYPE |
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1074 NVME_STATUS_DNR;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1075 goto out;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1076 }
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1077 iod->data_segs[n].pci_addr = le64_to_cpu(sgls[i].addr);
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1078 iod->data_segs[n].length = le32_to_cpu(sgls[i].length);
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1079 n++;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1080 }
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1081
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 @1082 kfree(sgls);
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1083 }
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1084
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1085 out:
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1086 if (iod->status != NVME_SC_SUCCESS) {
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 @1087 kfree(sgls);
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1088 return -EIO;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1089 }
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1090
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1091 return 0;
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1092 }
0faa0fe6f90ea5 Damien Le Moal 2025-01-04 1093
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-02-16 11:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-16 17:36 drivers/nvme/target/pci-epf.c:1087:8-12: ERROR: reference preceded by free on line 1082 kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2026-02-16 11:11 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.