]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 May 2020 14:18:28 +0000 (16:18 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 May 2020 14:18:28 +0000 (16:18 +0200)
added patches:
mei-release-me_cl-object-reference.patch
staging-iio-ad2s1210-fix-spi-reading.patch

queue-4.4/mei-release-me_cl-object-reference.patch [new file with mode: 0644]
queue-4.4/series
queue-4.4/staging-iio-ad2s1210-fix-spi-reading.patch [new file with mode: 0644]

diff --git a/queue-4.4/mei-release-me_cl-object-reference.patch b/queue-4.4/mei-release-me_cl-object-reference.patch
new file mode 100644 (file)
index 0000000..a9803a2
--- /dev/null
@@ -0,0 +1,45 @@
+From fc9c03ce30f79b71807961bfcb42be191af79873 Mon Sep 17 00:00:00 2001
+From: Alexander Usyskin <alexander.usyskin@intel.com>
+Date: Wed, 13 May 2020 01:31:40 +0300
+Subject: mei: release me_cl object reference
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Alexander Usyskin <alexander.usyskin@intel.com>
+
+commit fc9c03ce30f79b71807961bfcb42be191af79873 upstream.
+
+Allow me_cl object to be freed by releasing the reference
+that was acquired  by one of the search functions:
+__mei_me_cl_by_uuid_id() or __mei_me_cl_by_uuid()
+
+Cc: <stable@vger.kernel.org>
+Reported-by: 亿一 <teroincn@gmail.com>
+Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
+Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
+Link: https://lore.kernel.org/r/20200512223140.32186-1-tomas.winkler@intel.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/misc/mei/client.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/misc/mei/client.c
++++ b/drivers/misc/mei/client.c
+@@ -276,6 +276,7 @@ void mei_me_cl_rm_by_uuid(struct mei_dev
+       down_write(&dev->me_clients_rwsem);
+       me_cl = __mei_me_cl_by_uuid(dev, uuid);
+       __mei_me_cl_del(dev, me_cl);
++      mei_me_cl_put(me_cl);
+       up_write(&dev->me_clients_rwsem);
+ }
+@@ -297,6 +298,7 @@ void mei_me_cl_rm_by_uuid_id(struct mei_
+       down_write(&dev->me_clients_rwsem);
+       me_cl = __mei_me_cl_by_uuid_id(dev, uuid, id);
+       __mei_me_cl_del(dev, me_cl);
++      mei_me_cl_put(me_cl);
+       up_write(&dev->me_clients_rwsem);
+ }
index 8759e3647c49b9ae4e0b96ea176f33257eaf905b..cccd708a9cf5a2a0da838f816b886d4fc9c5f4c3 100644 (file)
@@ -33,3 +33,5 @@ platform-x86-alienware-wmi-fix-kfree-on-potentially-uninitialized-pointer.patch
 libnvdimm-btt-remove-unnecessary-code-in-btt_freelis.patch
 edac-ghes-use-cper-module-handles-to-locate-dimms.patch
 revert-gfs2-don-t-demote-a-glock-until-its-revokes-a.patch
+staging-iio-ad2s1210-fix-spi-reading.patch
+mei-release-me_cl-object-reference.patch
diff --git a/queue-4.4/staging-iio-ad2s1210-fix-spi-reading.patch b/queue-4.4/staging-iio-ad2s1210-fix-spi-reading.patch
new file mode 100644 (file)
index 0000000..1e60463
--- /dev/null
@@ -0,0 +1,63 @@
+From 5e4f99a6b788047b0b8a7496c2e0c8f372f6edf2 Mon Sep 17 00:00:00 2001
+From: Dragos Bogdan <dragos.bogdan@analog.com>
+Date: Wed, 29 Apr 2020 10:21:29 +0300
+Subject: staging: iio: ad2s1210: Fix SPI reading
+
+From: Dragos Bogdan <dragos.bogdan@analog.com>
+
+commit 5e4f99a6b788047b0b8a7496c2e0c8f372f6edf2 upstream.
+
+If the serial interface is used, the 8-bit address should be latched using
+the rising edge of the WR/FSYNC signal.
+
+This basically means that a CS change is required between the first byte
+sent, and the second one.
+This change splits the single-transfer transfer of 2 bytes into 2 transfers
+with a single byte, and CS change in-between.
+
+Note fixes tag is not accurate, but reflects a point beyond which there
+are too many refactors to make backporting straight forward.
+
+Fixes: b19e9ad5e2cb ("staging:iio:resolver:ad2s1210 general driver cleanup.")
+Signed-off-by: Dragos Bogdan <dragos.bogdan@analog.com>
+Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
+Cc: <Stable@vger.kernel.org>
+Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/staging/iio/resolver/ad2s1210.c |   17 ++++++++++++-----
+ 1 file changed, 12 insertions(+), 5 deletions(-)
+
+--- a/drivers/staging/iio/resolver/ad2s1210.c
++++ b/drivers/staging/iio/resolver/ad2s1210.c
+@@ -125,17 +125,24 @@ static int ad2s1210_config_write(struct
+ static int ad2s1210_config_read(struct ad2s1210_state *st,
+                      unsigned char address)
+ {
+-      struct spi_transfer xfer = {
+-              .len = 2,
+-              .rx_buf = st->rx,
+-              .tx_buf = st->tx,
++      struct spi_transfer xfers[] = {
++              {
++                      .len = 1,
++                      .rx_buf = &st->rx[0],
++                      .tx_buf = &st->tx[0],
++                      .cs_change = 1,
++              }, {
++                      .len = 1,
++                      .rx_buf = &st->rx[1],
++                      .tx_buf = &st->tx[1],
++              },
+       };
+       int ret = 0;
+       ad2s1210_set_mode(MOD_CONFIG, st);
+       st->tx[0] = address | AD2S1210_MSB_IS_HIGH;
+       st->tx[1] = AD2S1210_REG_FAULT;
+-      ret = spi_sync_transfer(st->sdev, &xfer, 1);
++      ret = spi_sync_transfer(st->sdev, xfers, 2);
+       if (ret < 0)
+               return ret;
+       st->old_data = true;