From patchwork Fri Jan 21 15:56:47 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guennadi Liakhovetski X-Patchwork-Id: 495811 Received: from lists.sourceforge.net (lists.sourceforge.net [216.34.181.88]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p0LFv4kC022229 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 21 Jan 2011 15:57:26 GMT Received: from localhost ([127.0.0.1] helo=sfs-ml-2.v29.ch3.sourceforge.com) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.69) (envelope-from ) id 1PgJM8-0001Ef-8Q; Fri, 21 Jan 2011 15:56:56 +0000 Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.69) (envelope-from ) id 1PgJM7-0001EO-2B for spi-devel-general@lists.sourceforge.net; Fri, 21 Jan 2011 15:56:55 +0000 Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of srs.kundenserver.de designates 212.227.17.9 as permitted sender) client-ip=212.227.17.9; envelope-from=SRS0=xY3n=UT=gmx.de=g.liakhovetski@srs.kundenserver.de; helo=moutng.kundenserver.de; Received: from moutng.kundenserver.de ([212.227.17.9]) by sog-mx-2.v43.ch3.sourceforge.com with esmtp (Exim 4.72) id 1PgJM5-000523-O8 for spi-devel-general@lists.sourceforge.net; Fri, 21 Jan 2011 15:56:54 +0000 Received: from axis700.grange (pD9EB8E14.dip0.t-ipconnect.de [217.235.142.20]) by mrelayeu.kundenserver.de (node=mrbap2) with ESMTP (Nemesis) id 0MgI6w-1PvFCT1nhm-00NEFQ; Fri, 21 Jan 2011 16:56:48 +0100 Received: by axis700.grange (Postfix, from userid 1000) id 26F54189B13; Fri, 21 Jan 2011 16:56:47 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by axis700.grange (Postfix) with ESMTP id 24823189AEA; Fri, 21 Jan 2011 16:56:47 +0100 (CET) Date: Fri, 21 Jan 2011 16:56:47 +0100 (CET) From: Guennadi Liakhovetski X-X-Sender: lyakh@axis700.grange To: spi-devel-general@lists.sourceforge.net Subject: [PATCH 3/3] SPI: spi_sh_msiof: fix wrong address calculation, which leads to an Oops Message-ID: MIME-Version: 1.0 X-Provags-ID: V02:K0:3iDV7ThajzGUsl5E1744LEeJxJnTjBGiRG+QmOWxJ7q KoluL3M71Zz4gis0tFccZjYqZ03oT/+zM/hH5qeOh2PSei+l77 cCzj/ZF7/jcL59GvOpy+VGtFT6llSCkP7XYhIPIply+OuATXaQ g1H5eFk7tFBjsm5LiIs36k06FT9w8veMQxNq2j82ufJ94iccjn ksTt2Ac07q0EYKr9cWCeTtI9avpJGGCacrM1Y3Xrk4= X-Spam-Score: 0.8 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, low trust [212.227.17.9 listed in list.dnswl.org] -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain 0.0 FREEMAIL_FROM Sender email is freemail (g.liakhovetski[at]gmx.de) 0.2 RCVD_IN_NJABL_PROXY RBL: NJABL: sender is an open proxy [217.235.142.20 listed in combined.njabl.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -0.0 SPF_PASS SPF: sender matches SPF record 0.0 T_TO_NO_BRKTS_FREEMAIL T_TO_NO_BRKTS_FREEMAIL 2.1 AWL AWL: From: address is in the auto white-list X-Headers-End: 1PgJM5-000523-O8 Cc: linux-sh@vger.kernel.org X-BeenThere: spi-devel-general@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: Linux SPI core/device drivers discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: spi-devel-general-bounces@lists.sourceforge.net X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Fri, 21 Jan 2011 15:57:27 +0000 (UTC) diff --git a/drivers/spi/spi_sh_msiof.c b/drivers/spi/spi_sh_msiof.c index 658bd05..6d30829 100644 --- a/drivers/spi/spi_sh_msiof.c +++ b/drivers/spi/spi_sh_msiof.c @@ -568,9 +568,11 @@ static int sh_msiof_spi_txrx(struct spi_device *spi, struct spi_transfer *t) bytes_done = 0; while (bytes_done < t->len) { + void *rx_buf = t->rx_buf ? t->rx_buf + bytes_done : NULL; + const void *tx_buf = t->tx_buf ? t->tx_buf + bytes_done : NULL; n = sh_msiof_spi_txrx_once(p, tx_fifo, rx_fifo, - t->tx_buf + bytes_done, - t->rx_buf + bytes_done, + tx_buf, + rx_buf, words, bits); if (n < 0) break;