Skip to contentSkip to conversation

nvmem: add support for cell lookups from machine code

bug report Dan Carpenter 3 participants 3 messages Oct 10, 2018 – Oct 15, 2018 Kernel janitors

lore
Share & tools
lore
#0 lore raw

Hello Bartosz Golaszewski,

The patch 506157be06ba: "nvmem: add support for cell lookups from machine code" from Sep 21, 2018, leads to the following static checker warning:

drivers/nvmem/core.c:960 nvmem_cell_get_from_lookup()
error: 'nvmem' dereferencing possible ERR_PTR()

drivers/nvmem/core.c
941
942 if (!dev)
943 return ERR_PTR(-EINVAL);
944
945 dev_id = dev_name(dev);
946
947 mutex_lock(&nvmem_lookup_mutex);
948
949 list_for_each_entry(lookup, &nvmem_lookup_list, node) {
950 if ((strcmp(lookup->dev_id, dev_id) = 0) &&
951 (strcmp(lookup->con_id, con_id) = 0)) {
952 /* This is the right entry. */

   953                          nvmem = __nvmem_device_get(NULL, lookup->nvmem_name);
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This returns error pointers.

954 if (!nvmem) {

   955                                  /* Provider may not be registered yet. */
   956                                  cell = ERR_PTR(-EPROBE_DEFER);
   957                                  goto out;
   958                          }
   959  
   960                          cell = nvmem_find_cell_by_name(nvmem,
   961                                                         lookup->cell_name);
   962                          if (!cell) {
   963                                  __nvmem_device_put(nvmem);
   964                                  goto out;
                                        ^^^^^^^^

We probably want to set the error code on this path.

   965                          }
   966                  }
   967          }
   968  
   969  out:
   970          mutex_unlock(&nvmem_lookup_mutex);
   971          return cell;
   972  }
   973  

regards,
dan carpenter

#1 lore raw

śr., 10 paź 2018 o 12:07 Dan Carpenter <[email protected]> napisał(a):

Quoted 51 lines

Hello Bartosz Golaszewski,

The patch 506157be06ba: "nvmem: add support for cell lookups from machine code" from Sep 21, 2018, leads to the following static checker warning:

drivers/nvmem/core.c:960 nvmem_cell_get_from_lookup()
error: 'nvmem' dereferencing possible ERR_PTR()

drivers/nvmem/core.c
941
942 if (!dev)

   943                  return ERR_PTR(-EINVAL);
   944
   945          dev_id = dev_name(dev);
   946
   947          mutex_lock(&nvmem_lookup_mutex);
   948
   949          list_for_each_entry(lookup, &nvmem_lookup_list, node) {
   950                  if ((strcmp(lookup->dev_id, dev_id) == 0) &&
   951                      (strcmp(lookup->con_id, con_id) == 0)) {
   952                          /* This is the right entry. */
   953                          nvmem = __nvmem_device_get(NULL, lookup->nvmem_name);
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This returns error pointers.

   954                          if (!nvmem) {
   955                                  /* Provider may not be registered yet. */
   956                                  cell = ERR_PTR(-EPROBE_DEFER);
   957                                  goto out;
   958                          }
   959
   960                          cell = nvmem_find_cell_by_name(nvmem,
   961                                                         lookup->cell_name);
   962                          if (!cell) {
   963                                  __nvmem_device_put(nvmem);
   964                                  goto out;
                                        ^^^^^^^^

We probably want to set the error code on this path.

   965                          }
   966                  }
   967          }
   968
   969  out:
   970          mutex_unlock(&nvmem_lookup_mutex);
   971          return cell;
   972  }
   973
Quoted 2 lines

regards,
dan carpenter

Hi Dan,

there's already a patch waiting on the list:
https://www.spinics.net/lists/arm-kernel/msg680023.html

Greg, Srinivas: can you pick up this one and this
(https://lkml.org/lkml/2018/10/3/310) for 4.20?

Best regards,
Bartosz Golaszewski

#2 lore raw
In reply to Dan Carpenter
Quoted 55 lines · Bartosz Golaszewski

śr., 10 paź 2018 o 12:07 Dan Carpenter <[email protected]> napisał(a):

Quoted 51 lines

Hello Bartosz Golaszewski,

The patch 506157be06ba: "nvmem: add support for cell lookups from machine code" from Sep 21, 2018, leads to the following static checker warning:

drivers/nvmem/core.c:960 nvmem_cell_get_from_lookup()
error: 'nvmem' dereferencing possible ERR_PTR()

drivers/nvmem/core.c
941
942 if (!dev)

   943                  return ERR_PTR(-EINVAL);
   944
   945          dev_id = dev_name(dev);
   946
   947          mutex_lock(&nvmem_lookup_mutex);
   948
   949          list_for_each_entry(lookup, &nvmem_lookup_list, node) {
   950                  if ((strcmp(lookup->dev_id, dev_id) = 0) &&
   951                      (strcmp(lookup->con_id, con_id) = 0)) {
   952                          /* This is the right entry. */
   953                          nvmem = __nvmem_device_get(NULL, lookup->nvmem_name);
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This returns error pointers.

   954                          if (!nvmem) {
   955                                  /* Provider may not be registered yet. */
   956                                  cell = ERR_PTR(-EPROBE_DEFER);
   957                                  goto out;
   958                          }
   959
   960                          cell = nvmem_find_cell_by_name(nvmem,
   961                                                         lookup->cell_name);
   962                          if (!cell) {
   963                                  __nvmem_device_put(nvmem);
   964                                  goto out;
                                        ^^^^^^^^

We probably want to set the error code on this path.

   965                          }
   966                  }
   967          }
   968
   969  out:
   970          mutex_unlock(&nvmem_lookup_mutex);
   971          return cell;
   972  }
   973
Quoted 2 lines

regards,
dan carpenter

Quoted 7 lines

Hi Dan,

there's already a patch waiting on the list:
https://www.spinics.net/lists/arm-kernel/msg680023.html

Greg, Srinivas: can you pick up this one and this
(https://lkml.org/lkml/2018/10/3/310) for 4.20?

Sorry for the delay, will get to that today.

greg k-h