Before commit 9495b7e92f716ab2 ("driver core: platform: Initialize
dma_parms for platform devices"), the R-Car SATA device didn't have DMA
parameters. Hence the DMA boundary mask supplied by its driver was
silently ignored, as __scsi_init_queue() doesn't check the return value
of dma_set_seg_boundary(), and the default value of 0xffffffff was used.
Now the device has gained DMA parameters, the driver-supplied value is
used, and the following warning is printed on Salvator-XS:
DMA-API: sata_rcar ee300000.sata: mapping sg segment across boundary [start=0x00000000ffffe000] [end=0x00000000ffffefff] [boundary=0x000000001ffffffe]
WARNING: CPU: 5 PID: 38 at kernel/dma/debug.c:1233 debug_dma_map_sg+0x298/0x300
(the range of start/end values depend on whether IOMMU support is
enabled or not)
The issue here is that SATA_RCAR_DMA_BOUNDARY doesn't have bit 0 set, so
any typical end value, which is odd, will trigger the check.
Fix this by increasing the DMA boundary value by 1.
This also fixes the following WRITE DMA EXT timeout issue:
# dd if=/dev/urandom of=/mnt/de1/file1-1024M bs=1M count=1024
ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
ata1.00: failed command: WRITE DMA EXT
ata1.00: cmd 35/00:00:00:e6:0c/00:0a:00:00:00/e0 tag 0 dma 1310720 out
res 40/00:01:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
ata1.00: status: { DRDY }
as seen by Shimoda-san since commit 429120f3df2dba2b ("block: fix
splitting segments on boundary masks").
Fixes: 8bfbeed58665dbbf ("sata_rcar: correct 'sata_rcar_sht'")
Fixes: 9495b7e92f716ab2 ("driver core: platform: Initialize dma_parms for platform devices")
Fixes: 429120f3df2dba2b ("block: fix splitting segments on boundary masks")
Signed-off-by: Geert Uytterhoeven <geert+renesas(a)glider.be>
Reviewed-by: Christoph Hellwig <hch(a)lst.de>
Reviewed-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Reviewed-by: Sergei Shtylyov <sergei.shtylyov(a)cogentembedded.com>
Reviewed-by: Ulf Hansson <ulf.hansson(a)linaro.org>
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh(a)renesas.com>
Cc: stable <stable(a)vger.kernel.org>
---
v3:
- Add Reviewed-by, Tested-by,
- Augment description and Fixes: with Shimoda-san's problem report
https://lore.kernel.org/r/1600255098-21411-1-git-send-email-yoshihiro.shimo…,
v2:
- Add Reviewed-by, Tested-by, Cc.
---
drivers/ata/sata_rcar.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/ata/sata_rcar.c b/drivers/ata/sata_rcar.c
index 141ac600b64c87ef..44b0ed8f6bb8a120 100644
--- a/drivers/ata/sata_rcar.c
+++ b/drivers/ata/sata_rcar.c
@@ -120,7 +120,7 @@
/* Descriptor table word 0 bit (when DTA32M = 1) */
#define SATA_RCAR_DTEND BIT(0)
-#define SATA_RCAR_DMA_BOUNDARY 0x1FFFFFFEUL
+#define SATA_RCAR_DMA_BOUNDARY 0x1FFFFFFFUL
/* Gen2 Physical Layer Control Registers */
#define RCAR_GEN2_PHY_CTL1_REG 0x1704
--
2.17.1
This is the start of the stable review cycle for the 5.9.1 release.
There are 15 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Sun, 18 Oct 2020 09:04:25 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.9.1-rc1.…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.9.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 5.9.1-rc1
Dominik Przychodni <dominik.przychodni(a)intel.com>
crypto: qat - check cipher length for aead AES-CBC-HMAC-SHA
Herbert Xu <herbert(a)gondor.apana.org.au>
crypto: bcm - Verify GCM/CCM key length in setkey
Alex Deucher <alexander.deucher(a)amd.com>
Revert "drm/amdgpu: Fix NULL dereference in dpm sysfs handlers"
Jan Kara <jack(a)suse.cz>
reiserfs: Fix oops during mount
Jan Kara <jack(a)suse.cz>
reiserfs: Initialize inode keys properly
Tetsuo Handa <penguin-kernel(a)i-love.sakura.ne.jp>
vt_ioctl: make VT_RESIZEX behave like VT_RESIZE
Mychaela N. Falconia <falcon(a)freecalypso.org>
USB: serial: ftdi_sio: add support for FreeCalypso JTAG+UART adapters
Scott Chen <scott(a)labau.com.tw>
USB: serial: pl2303: add device-id for HP GC device
Anant Thazhemadam <anant.thazhemadam(a)gmail.com>
staging: comedi: check validity of wMaxPacketSize of usb endpoints found
Leonid Bloch <lb.workbox(a)gmail.com>
USB: serial: option: Add Telit FT980-KS composition
Wilken Gottwalt <wilken.gottwalt(a)mailbox.org>
USB: serial: option: add Cellient MPL200 card
Oliver Neukum <oneukum(a)suse.com>
media: usbtv: Fix refcounting mixup
Luiz Augusto von Dentz <luiz.von.dentz(a)intel.com>
Bluetooth: MGMT: Fix not checking if BT_HS is enabled
Luiz Augusto von Dentz <luiz.von.dentz(a)intel.com>
Bluetooth: L2CAP: Fix calling sk_filter on non-socket based channel
Luiz Augusto von Dentz <luiz.von.dentz(a)intel.com>
Bluetooth: A2MP: Fix not initializing all members
-------------
Diffstat:
Makefile | 4 +--
drivers/crypto/bcm/cipher.c | 15 ++++++++-
drivers/crypto/qat/qat_common/qat_algs.c | 10 +++++-
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 9 +++--
drivers/media/usb/usbtv/usbtv-core.c | 3 +-
drivers/staging/comedi/drivers/vmk80xx.c | 3 ++
drivers/tty/vt/vt_ioctl.c | 57 ++++++--------------------------
drivers/usb/serial/ftdi_sio.c | 5 +++
drivers/usb/serial/ftdi_sio_ids.h | 7 ++++
drivers/usb/serial/option.c | 5 +++
drivers/usb/serial/pl2303.c | 1 +
drivers/usb/serial/pl2303.h | 1 +
fs/reiserfs/inode.c | 6 +---
fs/reiserfs/xattr.c | 7 ++++
include/net/bluetooth/l2cap.h | 2 ++
net/bluetooth/a2mp.c | 22 +++++++++++-
net/bluetooth/l2cap_core.c | 7 ++--
net/bluetooth/l2cap_sock.c | 14 ++++++++
net/bluetooth/mgmt.c | 7 +++-
19 files changed, 120 insertions(+), 65 deletions(-)