Re: drivers/mtd/parsers/qcomsmempart.c:109 parse_qcomsmem_part() warn: passing zero to 'PTR_ERR'
On Wed, Mar 03, 2021 at 09:48:40AM +0100, Miquel Raynal wrote: > Hello, > [...] > > PTR_ERR(NULL) is success. But let's just fix the IS_ERR_OR_NULL() check > > to IS_ERR() so we don't have to wonder if returning success is > > intentional. > > Thanks for the report, I've just sent the fix. > Thanks for that! > @Manni, I thought you would be added in Cc automatically as you're the > author of the fixed commit, but I was wrong, sorry for the mistake. > np. Thanks, Mani > Thanks, > Miquèl
Re: drivers/mtd/parsers/qcomsmempart.c:109 parse_qcomsmem_part() warn: passing zero to 'PTR_ERR'
On Wed, Mar 03, 2021 at 09:48:40AM +0100, Miquel Raynal wrote: > > @Manni, I thought you would be added in Cc automatically as you're the > author of the fixed commit, but I was wrong, sorry for the mistake. That's very weird... get_maintainer.pl does look up the fixes tag and adds the commit signers. I tested your patch and it added for me. regards, dan carpenter
Re: drivers/mtd/parsers/qcomsmempart.c:109 parse_qcomsmem_part() warn: passing zero to 'PTR_ERR'
Hello, Dan Carpenter wrote on Wed, 3 Mar 2021 08:49:18 +0300: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git > master > head: 7a7fd0de4a9804299793e564a555a49c1fc924cb > commit: 803eb124e1a64e42888542c3444bfe6dac412c7f mtd: parsers: Add Qcom SMEM > parser > config: nds32-randconfig-m031-20210302 (attached as .config) > compiler: nds32le-linux-gcc (GCC) 9.3.0 > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot > Reported-by: Dan Carpenter > > smatch warnings: > drivers/mtd/parsers/qcomsmempart.c:109 parse_qcomsmem_part() warn: passing > zero to 'PTR_ERR' > > vim +/PTR_ERR +109 drivers/mtd/parsers/qcomsmempart.c > > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 57 static int > parse_qcomsmem_part(struct mtd_info *mtd, > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 58 >const struct mtd_partition **pparts, > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 59 >struct mtd_part_parser_data *data) > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 60 { > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 61 struct > smem_flash_pentry *pentry; > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 62 struct > smem_flash_ptable *ptable; > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 63 size_t len = > SMEM_FLASH_PTABLE_HDR_LEN; > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 64 struct > mtd_partition *parts; > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 65 int ret, i, > numparts; > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 66 char *name, *c; > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 67 > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 68 > pr_debug("Parsing partition table info from SMEM\n"); > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 69 ptable = > qcom_smem_get(SMEM_APPS, SMEM_AARM_PARTITION_TABLE, ); > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 70 if > (IS_ERR(ptable)) { > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 71 > pr_err("Error reading partition table header\n"); > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 72 return > PTR_ERR(ptable); > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 73 } > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 74 > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 75 /* Verify > ptable magic */ > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 76 if > (le32_to_cpu(ptable->magic1) != SMEM_FLASH_PART_MAGIC1 || > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 77 > le32_to_cpu(ptable->magic2) != SMEM_FLASH_PART_MAGIC2) { > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 78 > pr_err("Partition table magic verification failed\n"); > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 79 return > -EINVAL; > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 80 } > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 81 > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 82 /* Ensure that > # of partitions is less than the max we have allocated */ > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 83 numparts = > le32_to_cpu(ptable->numparts); > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 84 if (numparts > > SMEM_FLASH_PTABLE_MAX_PARTS_V4) { > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 85 > pr_err("Partition numbers exceed the max limit\n"); > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 86 return > -EINVAL; > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 87 } > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 88 > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 89 /* Find out > length of partition data based on table version */ > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 90 if > (le32_to_cpu(ptable->version) <= SMEM_FLASH_PTABLE_V3) { > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 91 len = > SMEM_FLASH_PTABLE_HDR_LEN + SMEM_FLASH_PTABLE_MAX_PARTS_V3 * > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 92 > sizeof(struct smem_flash_pentry); > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 93 } else if > (le32_to_cpu(ptable->version) == SMEM_FLASH_PTABLE_V4) { > 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 94 len = > SMEM_FLASH_PTABLE_HDR_LEN + SMEM_FLASH_PTABLE_MAX_PARTS_V4 * > 803eb124e1a64e Manivannan Sad
drivers/mtd/parsers/qcomsmempart.c:109 parse_qcomsmem_part() warn: passing zero to 'PTR_ERR'
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 7a7fd0de4a9804299793e564a555a49c1fc924cb commit: 803eb124e1a64e42888542c3444bfe6dac412c7f mtd: parsers: Add Qcom SMEM parser config: nds32-randconfig-m031-20210302 (attached as .config) compiler: nds32le-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/mtd/parsers/qcomsmempart.c:109 parse_qcomsmem_part() warn: passing zero to 'PTR_ERR' vim +/PTR_ERR +109 drivers/mtd/parsers/qcomsmempart.c 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 57 static int parse_qcomsmem_part(struct mtd_info *mtd, 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 58 const struct mtd_partition **pparts, 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 59 struct mtd_part_parser_data *data) 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 60 { 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 61struct smem_flash_pentry *pentry; 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 62struct smem_flash_ptable *ptable; 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 63size_t len = SMEM_FLASH_PTABLE_HDR_LEN; 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 64struct mtd_partition *parts; 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 65int ret, i, numparts; 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 66char *name, *c; 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 67 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 68pr_debug("Parsing partition table info from SMEM\n"); 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 69ptable = qcom_smem_get(SMEM_APPS, SMEM_AARM_PARTITION_TABLE, ); 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 70if (IS_ERR(ptable)) { 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 71pr_err("Error reading partition table header\n"); 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 72return PTR_ERR(ptable); 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 73} 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 74 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 75/* Verify ptable magic */ 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 76if (le32_to_cpu(ptable->magic1) != SMEM_FLASH_PART_MAGIC1 || 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 77 le32_to_cpu(ptable->magic2) != SMEM_FLASH_PART_MAGIC2) { 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 78 pr_err("Partition table magic verification failed\n"); 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 79return -EINVAL; 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 80} 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 81 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 82/* Ensure that # of partitions is less than the max we have allocated */ 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 83numparts = le32_to_cpu(ptable->numparts); 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 84if (numparts > SMEM_FLASH_PTABLE_MAX_PARTS_V4) { 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 85 pr_err("Partition numbers exceed the max limit\n"); 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 86return -EINVAL; 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 87} 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 88 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 89/* Find out length of partition data based on table version */ 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 90if (le32_to_cpu(ptable->version) <= SMEM_FLASH_PTABLE_V3) { 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 91len = SMEM_FLASH_PTABLE_HDR_LEN + SMEM_FLASH_PTABLE_MAX_PARTS_V3 * 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 92 sizeof(struct smem_flash_pentry); 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 93} else if (le32_to_cpu(ptable->version) == SMEM_FLASH_PTABLE_V4) { 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 94len = SMEM_FLASH_PTABLE_HDR_LEN + SMEM_FLASH_PTABLE_MAX_PARTS_V4 * 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 95 sizeof(struct smem_flash_pentry); 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 96} else { 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 97pr_err("Unknown ptable version (%d)", le32_to_cpu(ptable->version)); 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 98return -EINVAL; 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 99} 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 100 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 101/* 803eb124e1a64e Manivannan Sadhasivam 2021-01-04 102 * Now that the partition table header has been parsed, verified 803eb124e1a64e Manivann