Re: drivers/mtd/parsers/qcomsmempart.c:109 parse_qcomsmem_part() warn: passing zero to 'PTR_ERR'

2021-03-03 Thread Manivannan Sadhasivam
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'

2021-03-03 Thread Dan Carpenter
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'

2021-03-03 Thread Miquel Raynal
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'

2021-03-03 Thread Dan Carpenter
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