Message ID | 20210924152607.28580-1-tim.gardner@canonical.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | drm/bridge: parade-ps8640: check return values in ps8640_aux_transfer() | expand |
On 9/24/21 9:26 AM, Tim Gardner wrote: > Coverity complains of an unused return code: > > CID 120459 (#1 of 1): Unchecked return value (CHECKED_RETURN) > 7. check_return: Calling regmap_bulk_write without checking return value (as is > done elsewhere 199 out of 291 times). > 204 regmap_bulk_write(map, PAGE0_SWAUX_ADDR_7_0, addr_len, > 205 ARRAY_SIZE(addr_len)); > > While I was at it I noticed 2 other places where return codes were not being > used, or used incorrectly (which is a real bug). > > Fix these errors by correctly using the returned error codes. > > Cc: William Breathitt Gray <vilhelm.gray@gmail.com> > Cc: Syed Nayyar Waris <syednwaris@gmail.com> > Cc: Andrzej Hajda <a.hajda@samsung.com> > Cc: Neil Armstrong <narmstrong@baylibre.com> > Cc: Robert Foss <robert.foss@linaro.org> > Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com> > Cc: Jonas Karlman <jonas@kwiboo.se> > Cc: Jernej Skrabec <jernej.skrabec@gmail.com> > Cc: David Airlie <airlied@linux.ie> > Cc: Daniel Vetter <daniel@ffwll.ch> > Cc: linux-iio@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Cc: dri-devel@lists.freedesktop.org > Signed-off-by: Tim Gardner <tim.gardner@canonical.com> > --- > drivers/gpu/drm/bridge/parade-ps8640.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c > index 3aaa90913bf8..591da962970a 100644 > --- a/drivers/gpu/drm/bridge/parade-ps8640.c > +++ b/drivers/gpu/drm/bridge/parade-ps8640.c > @@ -201,8 +201,12 @@ static ssize_t ps8640_aux_transfer(struct drm_dp_aux *aux, > addr_len[PAGE0_SWAUX_LENGTH - base] = (len == 0) ? SWAUX_NO_PAYLOAD : > ((len - 1) & SWAUX_LENGTH_MASK); > > - regmap_bulk_write(map, PAGE0_SWAUX_ADDR_7_0, addr_len, > + ret = regmap_bulk_write(map, PAGE0_SWAUX_ADDR_7_0, addr_len, > ARRAY_SIZE(addr_len)); > + if (ret) { > + DRM_DEV_ERROR(dev, "failed to bulk write ADDR_7_0: %d\n", ret); > + return ret; > + } > > if (len && (request == DP_AUX_NATIVE_WRITE || > request == DP_AUX_I2C_WRITE)) { > @@ -218,13 +222,17 @@ static ssize_t ps8640_aux_transfer(struct drm_dp_aux *aux, > } > } > > - regmap_write(map, PAGE0_SWAUX_CTRL, SWAUX_SEND); > + ret = regmap_write(map, PAGE0_SWAUX_CTRL, SWAUX_SEND); > + if (ret) { > + DRM_DEV_ERROR(dev, "failed to write SEND: %d\n", ret); > + return ret; > + } > > /* Zero delay loop because i2c transactions are slow already */ > regmap_read_poll_timeout(map, PAGE0_SWAUX_CTRL, data, > !(data & SWAUX_SEND), 0, 50 * 1000); > > - regmap_read(map, PAGE0_SWAUX_STATUS, &data); > + ret = regmap_read(map, PAGE0_SWAUX_STATUS, &data); > if (ret) { > DRM_DEV_ERROR(dev, "failed to read PAGE0_SWAUX_STATUS: %d\n", > ret); > I forgot to mention this patch is for linux-next next-20210924. ----------- Tim Gardner Canonical, Inc
On Fri, Sep 24, 2021 at 10:03:27AM -0600, Tim Gardner wrote: > > > On 9/24/21 9:26 AM, Tim Gardner wrote: > > Coverity complains of an unused return code: > > > > CID 120459 (#1 of 1): Unchecked return value (CHECKED_RETURN) > > 7. check_return: Calling regmap_bulk_write without checking return value (as is > > done elsewhere 199 out of 291 times). > > 204 regmap_bulk_write(map, PAGE0_SWAUX_ADDR_7_0, addr_len, > > 205 ARRAY_SIZE(addr_len)); > > > > While I was at it I noticed 2 other places where return codes were not being > > used, or used incorrectly (which is a real bug). > > > > Fix these errors by correctly using the returned error codes. > > > > Cc: William Breathitt Gray <vilhelm.gray@gmail.com> > > Cc: Syed Nayyar Waris <syednwaris@gmail.com> > > Cc: Andrzej Hajda <a.hajda@samsung.com> > > Cc: Neil Armstrong <narmstrong@baylibre.com> > > Cc: Robert Foss <robert.foss@linaro.org> > > Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com> > > Cc: Jonas Karlman <jonas@kwiboo.se> > > Cc: Jernej Skrabec <jernej.skrabec@gmail.com> > > Cc: David Airlie <airlied@linux.ie> > > Cc: Daniel Vetter <daniel@ffwll.ch> > > Cc: linux-iio@vger.kernel.org > > Cc: linux-kernel@vger.kernel.org > > Cc: dri-devel@lists.freedesktop.org > > Signed-off-by: Tim Gardner <tim.gardner@canonical.com> > > --- > > drivers/gpu/drm/bridge/parade-ps8640.c | 14 +++++++++++--- > > 1 file changed, 11 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c > > index 3aaa90913bf8..591da962970a 100644 > > --- a/drivers/gpu/drm/bridge/parade-ps8640.c > > +++ b/drivers/gpu/drm/bridge/parade-ps8640.c > > @@ -201,8 +201,12 @@ static ssize_t ps8640_aux_transfer(struct drm_dp_aux *aux, > > addr_len[PAGE0_SWAUX_LENGTH - base] = (len == 0) ? SWAUX_NO_PAYLOAD : > > ((len - 1) & SWAUX_LENGTH_MASK); > > > > - regmap_bulk_write(map, PAGE0_SWAUX_ADDR_7_0, addr_len, > > + ret = regmap_bulk_write(map, PAGE0_SWAUX_ADDR_7_0, addr_len, > > ARRAY_SIZE(addr_len)); > > + if (ret) { > > + DRM_DEV_ERROR(dev, "failed to bulk write ADDR_7_0: %d\n", ret); > > + return ret; > > + } > > > > if (len && (request == DP_AUX_NATIVE_WRITE || > > request == DP_AUX_I2C_WRITE)) { > > @@ -218,13 +222,17 @@ static ssize_t ps8640_aux_transfer(struct drm_dp_aux *aux, > > } > > } > > > > - regmap_write(map, PAGE0_SWAUX_CTRL, SWAUX_SEND); > > + ret = regmap_write(map, PAGE0_SWAUX_CTRL, SWAUX_SEND); > > + if (ret) { > > + DRM_DEV_ERROR(dev, "failed to write SEND: %d\n", ret); > > + return ret; > > + } > > > > /* Zero delay loop because i2c transactions are slow already */ > > regmap_read_poll_timeout(map, PAGE0_SWAUX_CTRL, data, > > !(data & SWAUX_SEND), 0, 50 * 1000); > > > > - regmap_read(map, PAGE0_SWAUX_STATUS, &data); > > + ret = regmap_read(map, PAGE0_SWAUX_STATUS, &data); > > if (ret) { > > DRM_DEV_ERROR(dev, "failed to read PAGE0_SWAUX_STATUS: %d\n", > > ret); > > > > I forgot to mention this patch is for linux-next next-20210924. > > ----------- > Tim Gardner > Canonical, Inc Hi Tim, For future patches, the git format-patch command has a useful option '--base'. It will allow you to provide the base tree information for users and maintainers so that they know where to apply the patch: https://git-scm.com/docs/git-format-patch#_base_tree_information Sincerely, William Breathitt Gray
Hey Tim, Thanks for submitting this. I'm seeing some checkpatch --strict warnings. Could you fix them and resubmit the series? On Fri, 24 Sept 2021 at 17:26, Tim Gardner <tim.gardner@canonical.com> wrote: > > Coverity complains of an unused return code: > > CID 120459 (#1 of 1): Unchecked return value (CHECKED_RETURN) > 7. check_return: Calling regmap_bulk_write without checking return value (as is Checkpatch is unhappy about the length of this line. > done elsewhere 199 out of 291 times). > 204 regmap_bulk_write(map, PAGE0_SWAUX_ADDR_7_0, addr_len, > 205 ARRAY_SIZE(addr_len)); > > While I was at it I noticed 2 other places where return codes were not being > used, or used incorrectly (which is a real bug). > > Fix these errors by correctly using the returned error codes. > > Cc: William Breathitt Gray <vilhelm.gray@gmail.com> > Cc: Syed Nayyar Waris <syednwaris@gmail.com> > Cc: Andrzej Hajda <a.hajda@samsung.com> > Cc: Neil Armstrong <narmstrong@baylibre.com> > Cc: Robert Foss <robert.foss@linaro.org> > Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com> > Cc: Jonas Karlman <jonas@kwiboo.se> > Cc: Jernej Skrabec <jernej.skrabec@gmail.com> > Cc: David Airlie <airlied@linux.ie> > Cc: Daniel Vetter <daniel@ffwll.ch> > Cc: linux-iio@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Cc: dri-devel@lists.freedesktop.org > Signed-off-by: Tim Gardner <tim.gardner@canonical.com> > --- > drivers/gpu/drm/bridge/parade-ps8640.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c > index 3aaa90913bf8..591da962970a 100644 > --- a/drivers/gpu/drm/bridge/parade-ps8640.c > +++ b/drivers/gpu/drm/bridge/parade-ps8640.c > @@ -201,8 +201,12 @@ static ssize_t ps8640_aux_transfer(struct drm_dp_aux *aux, > addr_len[PAGE0_SWAUX_LENGTH - base] = (len == 0) ? SWAUX_NO_PAYLOAD : > ((len - 1) & SWAUX_LENGTH_MASK); > > - regmap_bulk_write(map, PAGE0_SWAUX_ADDR_7_0, addr_len, > + ret = regmap_bulk_write(map, PAGE0_SWAUX_ADDR_7_0, addr_len, > ARRAY_SIZE(addr_len)); Align to open parenthesis. > + if (ret) { > + DRM_DEV_ERROR(dev, "failed to bulk write ADDR_7_0: %d\n", ret); > + return ret; > + } > > if (len && (request == DP_AUX_NATIVE_WRITE || > request == DP_AUX_I2C_WRITE)) { > @@ -218,13 +222,17 @@ static ssize_t ps8640_aux_transfer(struct drm_dp_aux *aux, > } > } > > - regmap_write(map, PAGE0_SWAUX_CTRL, SWAUX_SEND); > + ret = regmap_write(map, PAGE0_SWAUX_CTRL, SWAUX_SEND); > + if (ret) { > + DRM_DEV_ERROR(dev, "failed to write SEND: %d\n", ret); > + return ret; > + } > > /* Zero delay loop because i2c transactions are slow already */ > regmap_read_poll_timeout(map, PAGE0_SWAUX_CTRL, data, > !(data & SWAUX_SEND), 0, 50 * 1000); > > - regmap_read(map, PAGE0_SWAUX_STATUS, &data); > + ret = regmap_read(map, PAGE0_SWAUX_STATUS, &data); > if (ret) { > DRM_DEV_ERROR(dev, "failed to read PAGE0_SWAUX_STATUS: %d\n", > ret); > -- > 2.33.0 >
diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c index 3aaa90913bf8..591da962970a 100644 --- a/drivers/gpu/drm/bridge/parade-ps8640.c +++ b/drivers/gpu/drm/bridge/parade-ps8640.c @@ -201,8 +201,12 @@ static ssize_t ps8640_aux_transfer(struct drm_dp_aux *aux, addr_len[PAGE0_SWAUX_LENGTH - base] = (len == 0) ? SWAUX_NO_PAYLOAD : ((len - 1) & SWAUX_LENGTH_MASK); - regmap_bulk_write(map, PAGE0_SWAUX_ADDR_7_0, addr_len, + ret = regmap_bulk_write(map, PAGE0_SWAUX_ADDR_7_0, addr_len, ARRAY_SIZE(addr_len)); + if (ret) { + DRM_DEV_ERROR(dev, "failed to bulk write ADDR_7_0: %d\n", ret); + return ret; + } if (len && (request == DP_AUX_NATIVE_WRITE || request == DP_AUX_I2C_WRITE)) { @@ -218,13 +222,17 @@ static ssize_t ps8640_aux_transfer(struct drm_dp_aux *aux, } } - regmap_write(map, PAGE0_SWAUX_CTRL, SWAUX_SEND); + ret = regmap_write(map, PAGE0_SWAUX_CTRL, SWAUX_SEND); + if (ret) { + DRM_DEV_ERROR(dev, "failed to write SEND: %d\n", ret); + return ret; + } /* Zero delay loop because i2c transactions are slow already */ regmap_read_poll_timeout(map, PAGE0_SWAUX_CTRL, data, !(data & SWAUX_SEND), 0, 50 * 1000); - regmap_read(map, PAGE0_SWAUX_STATUS, &data); + ret = regmap_read(map, PAGE0_SWAUX_STATUS, &data); if (ret) { DRM_DEV_ERROR(dev, "failed to read PAGE0_SWAUX_STATUS: %d\n", ret);
Coverity complains of an unused return code: CID 120459 (#1 of 1): Unchecked return value (CHECKED_RETURN) 7. check_return: Calling regmap_bulk_write without checking return value (as is done elsewhere 199 out of 291 times). 204 regmap_bulk_write(map, PAGE0_SWAUX_ADDR_7_0, addr_len, 205 ARRAY_SIZE(addr_len)); While I was at it I noticed 2 other places where return codes were not being used, or used incorrectly (which is a real bug). Fix these errors by correctly using the returned error codes. Cc: William Breathitt Gray <vilhelm.gray@gmail.com> Cc: Syed Nayyar Waris <syednwaris@gmail.com> Cc: Andrzej Hajda <a.hajda@samsung.com> Cc: Neil Armstrong <narmstrong@baylibre.com> Cc: Robert Foss <robert.foss@linaro.org> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com> Cc: Jonas Karlman <jonas@kwiboo.se> Cc: Jernej Skrabec <jernej.skrabec@gmail.com> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: linux-iio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Signed-off-by: Tim Gardner <tim.gardner@canonical.com> --- drivers/gpu/drm/bridge/parade-ps8640.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)