]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 4.9
authorSasha Levin <sashal@kernel.org>
Wed, 14 Apr 2021 15:54:24 +0000 (11:54 -0400)
committerSasha Levin <sashal@kernel.org>
Wed, 14 Apr 2021 15:54:24 +0000 (11:54 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.9/drm-imx-imx-ldb-fix-out-of-bounds-array-access-warni.patch [new file with mode: 0644]
queue-4.9/gfs2-report-already-frozen-thawed-errors.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/drm-imx-imx-ldb-fix-out-of-bounds-array-access-warni.patch b/queue-4.9/drm-imx-imx-ldb-fix-out-of-bounds-array-access-warni.patch
new file mode 100644 (file)
index 0000000..2f91de4
--- /dev/null
@@ -0,0 +1,62 @@
+From 942be916c52e5678d82bd8918473105caca01080 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 24 Mar 2021 17:47:41 +0100
+Subject: drm/imx: imx-ldb: fix out of bounds array access warning
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+[ Upstream commit 33ce7f2f95cabb5834cf0906308a5cb6103976da ]
+
+When CONFIG_OF is disabled, building with 'make W=1' produces warnings
+about out of bounds array access:
+
+drivers/gpu/drm/imx/imx-ldb.c: In function 'imx_ldb_set_clock.constprop':
+drivers/gpu/drm/imx/imx-ldb.c:186:8: error: array subscript -22 is below array bounds of 'struct clk *[4]' [-Werror=array-bounds]
+
+Add an error check before the index is used, which helps with the
+warning, as well as any possible other error condition that may be
+triggered at runtime.
+
+The warning could be fixed by adding a Kconfig depedency on CONFIG_OF,
+but Liu Ying points out that the driver may hit the out-of-bounds
+problem at runtime anyway.
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Reviewed-by: Liu Ying <victor.liu@nxp.com>
+Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/imx/imx-ldb.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
+index 2df407b2b0da..3a9d06de81b4 100644
+--- a/drivers/gpu/drm/imx/imx-ldb.c
++++ b/drivers/gpu/drm/imx/imx-ldb.c
+@@ -212,6 +212,11 @@ static void imx_ldb_encoder_enable(struct drm_encoder *encoder)
+       int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
+       int mux = drm_of_encoder_active_port_id(imx_ldb_ch->child, encoder);
++      if (mux < 0 || mux >= ARRAY_SIZE(ldb->clk_sel)) {
++              dev_warn(ldb->dev, "%s: invalid mux %d\n", __func__, mux);
++              return;
++      }
++
+       drm_panel_prepare(imx_ldb_ch->panel);
+       if (dual) {
+@@ -270,6 +275,11 @@ imx_ldb_encoder_atomic_mode_set(struct drm_encoder *encoder,
+       int mux = drm_of_encoder_active_port_id(imx_ldb_ch->child, encoder);
+       u32 bus_format = imx_ldb_ch->bus_format;
++      if (mux < 0 || mux >= ARRAY_SIZE(ldb->clk_sel)) {
++              dev_warn(ldb->dev, "%s: invalid mux %d\n", __func__, mux);
++              return;
++      }
++
+       if (mode->clock > 170000) {
+               dev_warn(ldb->dev,
+                        "%s: mode exceeds 170 MHz pixel clock\n", __func__);
+-- 
+2.30.2
+
diff --git a/queue-4.9/gfs2-report-already-frozen-thawed-errors.patch b/queue-4.9/gfs2-report-already-frozen-thawed-errors.patch
new file mode 100644 (file)
index 0000000..2a628c9
--- /dev/null
@@ -0,0 +1,61 @@
+From e08728a1676f63308b1a2a9041bd0cd7388b843a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 25 Mar 2021 08:51:13 -0400
+Subject: gfs2: report "already frozen/thawed" errors
+
+From: Bob Peterson <rpeterso@redhat.com>
+
+[ Upstream commit ff132c5f93c06bd4432bbab5c369e468653bdec4 ]
+
+Before this patch, gfs2's freeze function failed to report an error
+when the target file system was already frozen as it should (and as
+generic vfs function freeze_super does. Similarly, gfs2's thaw function
+failed to report an error when trying to thaw a file system that is not
+frozen, as vfs function thaw_super does. The errors were checked, but
+it always returned a 0 return code.
+
+This patch adds the missing error return codes to gfs2 freeze and thaw.
+
+Signed-off-by: Bob Peterson <rpeterso@redhat.com>
+Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/gfs2/super.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c
+index 37496d83661a..ef401aecaa2c 100644
+--- a/fs/gfs2/super.c
++++ b/fs/gfs2/super.c
+@@ -986,11 +986,13 @@ void gfs2_freeze_func(struct work_struct *work)
+ static int gfs2_freeze(struct super_block *sb)
+ {
+       struct gfs2_sbd *sdp = sb->s_fs_info;
+-      int error = 0;
++      int error;
+       mutex_lock(&sdp->sd_freeze_mutex);
+-      if (atomic_read(&sdp->sd_freeze_state) != SFS_UNFROZEN)
++      if (atomic_read(&sdp->sd_freeze_state) != SFS_UNFROZEN) {
++              error = -EBUSY;
+               goto out;
++      }
+       if (test_bit(SDF_SHUTDOWN, &sdp->sd_flags)) {
+               error = -EINVAL;
+@@ -1032,10 +1034,10 @@ static int gfs2_unfreeze(struct super_block *sb)
+       struct gfs2_sbd *sdp = sb->s_fs_info;
+       mutex_lock(&sdp->sd_freeze_mutex);
+-        if (atomic_read(&sdp->sd_freeze_state) != SFS_FROZEN ||
++      if (atomic_read(&sdp->sd_freeze_state) != SFS_FROZEN ||
+           !gfs2_holder_initialized(&sdp->sd_freeze_gh)) {
+               mutex_unlock(&sdp->sd_freeze_mutex);
+-                return 0;
++              return -EINVAL;
+       }
+       gfs2_glock_dq_uninit(&sdp->sd_freeze_gh);
+-- 
+2.30.2
+
index cb82633a46e37023eef84705b58480d478978611..dad272cd4a3d8c7ac60f3179a46414f3893229d6 100644 (file)
@@ -40,3 +40,5 @@ net-ieee802154-forbid-monitor-for-set-llsec-params.patch
 net-ieee802154-forbid-monitor-for-del-llsec-seclevel.patch
 net-ieee802154-stop-dump-llsec-params-for-monitors.patch
 revert-cifs-set-cifs_mount_use_prefix_path-flag-on-setting-cifs_sb-prepath.patch
+drm-imx-imx-ldb-fix-out-of-bounds-array-access-warni.patch
+gfs2-report-already-frozen-thawed-errors.patch