Re: [PATCH next] pds_fwctl: Fix a NULL vs IS_ERR() check in pdsfc_validate_rpc()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/19/2025 12:06 AM, Dan Carpenter wrote:

The pdsfc_get_operations() function returns error pointers, it doesn't
return NULL.  However, the "ep_info->operations" pointer should be set
to either a valid pointer or NULL because the rest of the driver checks
for that.

Fixes: 804294d75ac5 ("pds_fwctl: add rpc and query support")
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>

Hi Dan, thanks for this patch. We also have this same fix in the patchset update that I was expecting to push out today, but you beat me to it.

Shall I continue with our v4 patchset, or should I now be sending smaller patches to update from earlier review comments?

Thanks,
sln


---
---
  drivers/fwctl/pds/main.c | 12 +++++++-----
  1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/fwctl/pds/main.c b/drivers/fwctl/pds/main.c
index c0266fc76797..a097fdde0b55 100644
--- a/drivers/fwctl/pds/main.c
+++ b/drivers/fwctl/pds/main.c
@@ -255,6 +255,7 @@ static int pdsfc_validate_rpc(struct pdsfc_dev *pdsfc,
  {
         struct pds_fwctl_query_data_operation *op_entry;
         struct pdsfc_rpc_endpoint_info *ep_info = NULL;
+       struct pds_fwctl_query_data *operations;
         struct device *dev = &pdsfc->fwctl.dev;
         int i;

@@ -287,13 +288,14 @@ static int pdsfc_validate_rpc(struct pdsfc_dev *pdsfc,
         /* query and cache this endpoint's operations */
         mutex_lock(&ep_info->lock);
         if (!ep_info->operations) {
-               ep_info->operations = pdsfc_get_operations(pdsfc,
-                                                          &ep_info->operations_pa,
-                                                          rpc->in.ep);
-               if (!ep_info->operations) {
+               operations = pdsfc_get_operations(pdsfc,
+                                                 &ep_info->operations_pa,
+                                                 rpc->in.ep);
+               if (IS_ERR(operations)) {
                         mutex_unlock(&ep_info->lock);
-                       return -ENOMEM;
+                       return PTR_ERR(operations);
                 }
+               ep_info->operations = operations;
         }
         mutex_unlock(&ep_info->lock);

--
2.47.2






[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux