From: Greg Kroah-Hartman Date: Mon, 25 May 2020 14:18:28 +0000 (+0200) Subject: 4.4-stable patches X-Git-Tag: v4.4.225~24 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c2d82540fd81dca9e54dcf1b9abd9685d6bf740b;p=thirdparty%2Fkernel%2Fstable-queue.git 4.4-stable patches added patches: mei-release-me_cl-object-reference.patch staging-iio-ad2s1210-fix-spi-reading.patch --- 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 index 00000000000..a9803a27616 --- /dev/null +++ b/queue-4.4/mei-release-me_cl-object-reference.patch @@ -0,0 +1,45 @@ +From fc9c03ce30f79b71807961bfcb42be191af79873 Mon Sep 17 00:00:00 2001 +From: Alexander Usyskin +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 + +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: +Reported-by: 亿一 +Signed-off-by: Alexander Usyskin +Signed-off-by: Tomas Winkler +Link: https://lore.kernel.org/r/20200512223140.32186-1-tomas.winkler@intel.com +Signed-off-by: Greg Kroah-Hartman + +--- + 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); + } + diff --git a/queue-4.4/series b/queue-4.4/series index 8759e3647c4..cccd708a9cf 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -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 index 00000000000..1e6046318b8 --- /dev/null +++ b/queue-4.4/staging-iio-ad2s1210-fix-spi-reading.patch @@ -0,0 +1,63 @@ +From 5e4f99a6b788047b0b8a7496c2e0c8f372f6edf2 Mon Sep 17 00:00:00 2001 +From: Dragos Bogdan +Date: Wed, 29 Apr 2020 10:21:29 +0300 +Subject: staging: iio: ad2s1210: Fix SPI reading + +From: Dragos Bogdan + +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 +Signed-off-by: Alexandru Ardelean +Cc: +Signed-off-by: Jonathan Cameron +Signed-off-by: Greg Kroah-Hartman + +--- + 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;