From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f195.google.com ([209.85.128.195]:36748 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752231AbeGAOAo (ORCPT ); Sun, 1 Jul 2018 10:00:44 -0400 Received: by mail-wr0-f195.google.com with SMTP id f16-v6so12986230wrm.3 for ; Sun, 01 Jul 2018 07:00:44 -0700 (PDT) Date: Sun, 1 Jul 2018 15:00:41 +0100 From: Sudip Mukherjee To: gregkh@linuxfoundation.org Cc: maxime.chevallier@bootlin.com, broonie@kernel.org, stable@vger.kernel.org Subject: Re: FAILED: patch "[PATCH] spi: Fix scatterlist elements size in spi_map_buf" failed to apply to 4.4-stable tree Message-ID: <20180701140040.vav7je7auc6ilfje@debian> References: <1524154936108232@kroah.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="zyx6rrlgxrtfosib" Content-Disposition: inline In-Reply-To: <1524154936108232@kroah.com> Sender: stable-owner@vger.kernel.org List-ID: --zyx6rrlgxrtfosib Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Greg, On Thu, Apr 19, 2018 at 06:22:16PM +0200, gregkh@linuxfoundation.org wrote: > > The patch below does not apply to the 4.4-stable tree. > If someone wants it applied there, or to any other stable or longterm > tree, then please email the backport, including the original git commit > id to . The attached backported patch should apply to v4.4-stable. -- Regards Sudip --zyx6rrlgxrtfosib Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-spi-Fix-scatterlist-elements-size-in-spi_map_buf.patch" >>From b9667cbde9b1934de1fed3a45ee3266f140cf0ec Mon Sep 17 00:00:00 2001 From: Maxime Chevallier Date: Fri, 2 Mar 2018 15:55:09 +0100 Subject: [PATCH] spi: Fix scatterlist elements size in spi_map_buf commit ce99319a182fe766be67f96338386f3ec73e321c upstream When SPI transfers can be offloaded using DMA, the SPI core need to build a scatterlist to make sure that the buffer to be transferred is dma-able. This patch fixes the scatterlist entry size computation in the case where the maximum acceptable scatterlist entry supported by the DMA controller is less than PAGE_SIZE, when the buffer is vmalloced. For each entry, the actual size is given by the minimum between the desc_len (which is the max buffer size supported by the DMA controller) and the remaining buffer length until we cross a page boundary. Fixes: 65598c13fd66 ("spi: Fix per-page mapping of unaligned vmalloc-ed buffer") Signed-off-by: Maxime Chevallier Signed-off-by: Mark Brown Cc: stable@vger.kernel.org Signed-off-by: Sudip Mukherjee --- drivers/spi/spi.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index dee1cb87d24f..04fd651f9e3e 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -707,8 +707,14 @@ static int spi_map_buf(struct spi_master *master, struct device *dev, for (i = 0; i < sgs; i++) { if (vmalloced_buf) { - min = min_t(size_t, - len, desc_len - offset_in_page(buf)); + /* + * Next scatterlist entry size is the minimum between + * the desc_len and the remaining buffer length that + * fits in a page. + */ + min = min_t(size_t, desc_len, + min_t(size_t, len, + PAGE_SIZE - offset_in_page(buf))); vm_page = vmalloc_to_page(buf); if (!vm_page) { sg_free_table(sgt); -- 2.11.0 --zyx6rrlgxrtfosib--