cxl: avoid returning uninitialized error code
authorArnd Bergmann <arnd@arndb.de>
Mon, 13 Feb 2023 10:12:11 +0000 (11:12 +0100)
committerDan Williams <dan.j.williams@intel.com>
Tue, 14 Feb 2023 16:36:34 +0000 (08:36 -0800)
The new cxl_add_to_region() function returns an uninitialized
value on success:

drivers/cxl/core/region.c:2628:6: error: variable 'rc' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
        if (IS_ERR(cxlr)) {
            ^~~~~~~~~~~~
drivers/cxl/core/region.c:2654:9: note: uninitialized use occurs here
        return rc;

Simplify the logic to have the rc variable always initialized in the
same place.

Fixes: a32320b71f08 ("cxl/region: Add region autodiscovery")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20230213101220.3821689-1-arnd@kernel.org
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/cxl/core/region.c

index 91bb9ac881ff3a4af2e050b0c2938c46670dc08a..8ba71ca4135c6a6605fcc428b972e93be5b11151 100644 (file)
@@ -2623,10 +2623,9 @@ int cxl_add_to_region(struct cxl_port *root, struct cxl_endpoint_decoder *cxled)
                cxlr = to_cxl_region(region_dev);
        mutex_unlock(&cxlrd->range_lock);
 
-       if (IS_ERR(cxlr)) {
-               rc = PTR_ERR(cxlr);
+       rc = PTR_ERR_OR_ZERO(cxlr);
+       if (rc)
                goto out;
-       }
 
        attach_target(cxlr, cxled, -1, TASK_UNINTERRUPTIBLE);