Message ID | 20220728074014.145406-1-tudor.ambarus@microchip.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mtd: rawnand: atmel: Unmap streaming DMA mappings | expand |
Hello Tudor, Am Donnerstag, 28. Juli 2022, 09:40:14 CEST schrieb Tudor Ambarus: > Every dma_map_single() call should have its dma_unmap_single() counterpart, > because the DMA address space is a shared resource and one could render the > machine unusable by consuming all DMA addresses. > > Cc: stable@vger.kernel.org > Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver") > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> > --- > drivers/mtd/nand/raw/atmel/nand-controller.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c > b/drivers/mtd/nand/raw/atmel/nand-controller.c index > 6ef14442c71a..330d2dafdd2d 100644 > --- a/drivers/mtd/nand/raw/atmel/nand-controller.c > +++ b/drivers/mtd/nand/raw/atmel/nand-controller.c > @@ -405,6 +405,7 @@ static int atmel_nand_dma_transfer(struct > atmel_nand_controller *nc, > > dma_async_issue_pending(nc->dmac); > wait_for_completion(&finished); > + dma_unmap_single(nc->dev, buf_dma, len, dir); > > return 0; Acked-by: Alexander Dahl <ada@thorsis.com> After studying https://www.kernel.org/doc/html/latest/core-api/dma-api-howto.html this seems like the correct thing to do to me. I was made aware of this patch in IRC, after discussing a strange lzo decompression and/or page reading error with Richard after upgrading from kernel v5.2.21-rt13 to v5.15.49-rt47. Now testing this on top of 5.15.49-rt47 on two boards, both with Microchip sama5d27c 128MiB SiP and Spansion S34ML02G1 raw nand flash. Will report later. Thanks and greets Alex
On 7/28/22 10:40, Tudor Ambarus wrote: > Every dma_map_single() call should have its dma_unmap_single() counterpart, > because the DMA address space is a shared resource and one could render the > machine unusable by consuming all DMA addresses. > > Cc: stable@vger.kernel.org > Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver") Reported-by: Peter Rosin <peda@axentia.se> > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> > --- > drivers/mtd/nand/raw/atmel/nand-controller.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c b/drivers/mtd/nand/raw/atmel/nand-controller.c > index 6ef14442c71a..330d2dafdd2d 100644 > --- a/drivers/mtd/nand/raw/atmel/nand-controller.c > +++ b/drivers/mtd/nand/raw/atmel/nand-controller.c > @@ -405,6 +405,7 @@ static int atmel_nand_dma_transfer(struct atmel_nand_controller *nc, > > dma_async_issue_pending(nc->dmac); > wait_for_completion(&finished); > + dma_unmap_single(nc->dev, buf_dma, len, dir); > > return 0; >
Hello, Am Freitag, 29. Juli 2022, 12:59:55 CEST schrieb Alexander Dahl: > Hello Tudor, > > Am Donnerstag, 28. Juli 2022, 09:40:14 CEST schrieb Tudor Ambarus: > > Every dma_map_single() call should have its dma_unmap_single() > > counterpart, > > because the DMA address space is a shared resource and one could render > > the > > machine unusable by consuming all DMA addresses. > > > > Cc: stable@vger.kernel.org > > Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver") > > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> > > --- > > > > drivers/mtd/nand/raw/atmel/nand-controller.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c > > b/drivers/mtd/nand/raw/atmel/nand-controller.c index > > 6ef14442c71a..330d2dafdd2d 100644 > > --- a/drivers/mtd/nand/raw/atmel/nand-controller.c > > +++ b/drivers/mtd/nand/raw/atmel/nand-controller.c > > @@ -405,6 +405,7 @@ static int atmel_nand_dma_transfer(struct > > atmel_nand_controller *nc, > > > > dma_async_issue_pending(nc->dmac); > > wait_for_completion(&finished); > > > > + dma_unmap_single(nc->dev, buf_dma, len, dir); > > > > return 0; > > Acked-by: Alexander Dahl <ada@thorsis.com> > > After studying > https://www.kernel.org/doc/html/latest/core-api/dma-api-howto.html > this seems like the correct thing to do to me. > > I was made aware of this patch in IRC, after discussing a strange lzo > decompression and/or page reading error with Richard after upgrading from > kernel v5.2.21-rt13 to v5.15.49-rt47. > > Now testing this on top of 5.15.49-rt47 on two boards, both with Microchip > sama5d27c 128MiB SiP and Spansion S34ML02G1 raw nand flash. Will report > later. After almost two weeks of running three or four of those boards with different loads including that patch we had not a single occurance anymore of the issue I reported on IRC earlier (kernel log below, the error happened in late boot when userspace daemons were started). So I'm confident to give my tested-by: Tested-by: Alexander Dahl <ada@thorsis.com> [Fri Jul 29 09:36:48 2022] Memory: 121108K/131072K available (5120K kernel code, 397K rwdata, 1080K rodata, 1024K init, 90K bss, 9964K reserved, 0K cma-reserved) [Fri Jul 29 09:36:48 2022] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [Fri Jul 29 09:36:48 2022] trace event string verifier disabled [Fri Jul 29 09:36:48 2022] rcu: Preemptible hierarchical RCU implementation. [Fri Jul 29 09:36:48 2022] rcu: RCU priority boosting: priority 1 delay 500 ms. [Fri Jul 29 09:36:48 2022] rcu: RCU_SOFTIRQ processing moved to rcuc kthreads. [Fri Jul 29 09:36:48 2022] No expedited grace period (rcu_normal_after_boot). [Fri Jul 29 09:36:48 2022] Trampoline variant of Tasks RCU enabled. [Fri Jul 29 09:36:48 2022] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [Fri Jul 29 09:36:48 2022] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [Fri Jul 29 09:36:48 2022] L2C-310 ID prefetch enabled, offset 2 lines [Fri Jul 29 09:36:48 2022] L2C-310 dynamic clock gating enabled, standby mode enabled [Fri Jul 29 09:36:48 2022] L2C-310 cache controller enabled, 8 ways, 128 kB [Fri Jul 29 09:36:48 2022] L2C-310: CACHE_ID 0x410000c9, AUX_CTRL 0x36020000 [Fri Jul 29 09:36:48 2022] clocksource: timer@f800c000: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 186464433812 ns [Fri Jul 29 09:36:48 2022] sched_clock: 32 bits at 10MHz, resolution 97ns, wraps every 209510599631ns [Fri Jul 29 09:36:48 2022] Switching to timer-based delay loop, resolution 97ns [Fri Jul 29 09:36:48 2022] Console: colour dummy device 80x30 [Fri Jul 29 09:36:48 2022] Calibrating delay loop (skipped), value calculated using timer frequency.. 20.50 BogoMIPS (lpj=102500) [Fri Jul 29 09:36:48 2022] pid_max: default: 32768 minimum: 301 [Fri Jul 29 09:36:48 2022] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [Fri Jul 29 09:36:48 2022] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [Fri Jul 29 09:36:48 2022] CPU: Testing write buffer coherency: ok [Fri Jul 29 09:36:48 2022] Setting up static identity map for 0x20100000 - 0x2010003c [Fri Jul 29 09:36:48 2022] rcu: Hierarchical SRCU implementation. [Fri Jul 29 09:36:48 2022] devtmpfs: initialized [Fri Jul 29 09:36:48 2022] VFP support v0.3: implementor 41 architecture 2 part 30 variant 5 rev 1 [Fri Jul 29 09:36:48 2022] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [Fri Jul 29 09:36:48 2022] futex hash table entries: 256 (order: 0, 6144 bytes, linear) [Fri Jul 29 09:36:48 2022] pinctrl core: initialized pinctrl subsystem [Fri Jul 29 09:36:48 2022] NET: Registered PF_NETLINK/PF_ROUTE protocol family [Fri Jul 29 09:36:48 2022] DMA: preallocated 256 KiB pool for atomic coherent allocations [Fri Jul 29 09:36:48 2022] at_xdmac f0010000.dma-controller: 16 channels, mapped at 0x(ptrval) [Fri Jul 29 09:36:48 2022] at_xdmac f0004000.dma-controller: 16 channels, mapped at 0x(ptrval) [Fri Jul 29 09:36:48 2022] AT91: Detected SoC family: sama5d2 [Fri Jul 29 09:36:48 2022] AT91: Detected SoC: sama5d27c 128MiB SiP, revision 2 [Fri Jul 29 09:36:48 2022] clocksource: Switched to clocksource timer@f800c000 [Fri Jul 29 09:36:48 2022] NET: Registered PF_INET protocol family [Fri Jul 29 09:36:48 2022] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear) [Fri Jul 29 09:36:48 2022] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 5120 bytes, linear) [Fri Jul 29 09:36:48 2022] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) [Fri Jul 29 09:36:48 2022] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear) [Fri Jul 29 09:36:48 2022] TCP bind hash table entries: 1024 (order: 2, 16384 bytes, linear) [Fri Jul 29 09:36:48 2022] TCP: Hash tables configured (established 1024 bind 1024) [Fri Jul 29 09:36:48 2022] UDP hash table entries: 256 (order: 1, 12288 bytes, linear) [Fri Jul 29 09:36:48 2022] UDP-Lite hash table entries: 256 (order: 1, 12288 bytes, linear) [Fri Jul 29 09:36:48 2022] NET: Registered PF_UNIX/PF_LOCAL protocol family [Fri Jul 29 09:36:48 2022] workingset: timestamp_bits=30 max_order=15 bucket_order=0 [Fri Jul 29 09:36:48 2022] pinctrl-at91-pio4 fc038000.pinctrl: atmel pinctrl initialized [Fri Jul 29 09:36:48 2022] atmel_usart_serial.0.auto: ttyS0 at MMIO 0xf8020000 (irq = 29, base_baud = 5125000) is a ATMEL_SERIAL [Fri Jul 29 09:36:48 2022] printk: console [ttyS0] enabled [Fri Jul 29 09:36:48 2022] at91_rtc f80480b0.rtc: registered as rtc0 [Fri Jul 29 09:36:48 2022] at91_rtc f80480b0.rtc: setting system clock to 2022-07-29T07:36:49 UTC (1659080209) [Fri Jul 29 09:36:48 2022] at91_rtc f80480b0.rtc: AT91 Real Time Clock driver. [Fri Jul 29 09:36:48 2022] atmel_aes f002c000.aes: version: 0x500 [Fri Jul 29 09:36:48 2022] atmel_aes f002c000.aes: Atmel AES - Using dma0chan0, dma0chan1 for DMA transfers [Fri Jul 29 09:36:48 2022] atmel_sha f0028000.sha: version: 0x510 [Fri Jul 29 09:36:48 2022] atmel_sha f0028000.sha: using dma0chan2 for DMA transfers [Fri Jul 29 09:36:48 2022] atmel_sha f0028000.sha: Atmel SHA1/SHA256/SHA224/SHA384/SHA512 [Fri Jul 29 09:36:48 2022] atmel_tdes fc044000.tdes: version: 0x703 [Fri Jul 29 09:36:48 2022] atmel_tdes fc044000.tdes: using dma0chan3, dma0chan4 for DMA transfers [Fri Jul 29 09:36:48 2022] atmel_tdes fc044000.tdes: Atmel DES/TDES [Fri Jul 29 09:36:48 2022] nand: device found, Manufacturer ID: 0x01, Chip ID: 0xda [Fri Jul 29 09:36:48 2022] nand: AMD/Spansion S34ML02G1 [Fri Jul 29 09:36:48 2022] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 [Fri Jul 29 09:36:48 2022] Bad block table found at page 131008, version 0xFF [Fri Jul 29 09:36:48 2022] Bad block table found at page 130944, version 0xFF [Fri Jul 29 09:36:48 2022] 8 cmdlinepart partitions found on MTD device atmel_nand [Fri Jul 29 09:36:48 2022] Creating 8 MTD partitions on "atmel_nand": [Fri Jul 29 09:36:48 2022] 0x000000000000-0x000000040000 : "bootstrap" [Fri Jul 29 09:36:48 2022] 0x000000040000-0x000000100000 : "uboot" [Fri Jul 29 09:36:48 2022] 0x000000100000-0x000000140000 : "env1" [Fri Jul 29 09:36:48 2022] 0x000000140000-0x000000180000 : "env2" [Fri Jul 29 09:36:48 2022] 0x000000180000-0x0000001c0000 : "fpga_led" [Fri Jul 29 09:36:48 2022] 0x0000001c0000-0x000000200000 : "reserved" [Fri Jul 29 09:36:48 2022] 0x000000200000-0x000003400000 : "rootfs_rec" [Fri Jul 29 09:36:48 2022] 0x000003400000-0x000010000000 : "filesystem" [Fri Jul 29 09:36:48 2022] NET: Registered PF_PACKET protocol family [Fri Jul 29 09:36:48 2022] printk: console [ttyS0]: printing thread started [Fri Jul 29 09:36:48 2022] ubi0: attaching mtd6 [Fri Jul 29 09:36:48 2022] ubi0: MTD device 6 is write-protected, attach in read-only mode [Fri Jul 29 09:36:48 2022] ubi0: scanning is finished [Fri Jul 29 09:36:48 2022] ubi0 warning: autoresize: skip auto-resize because of R/O mode [Fri Jul 29 09:36:48 2022] ubi0: attached mtd6 (name "rootfs_rec", size 50 MiB) [Fri Jul 29 09:36:48 2022] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes [Fri Jul 29 09:36:48 2022] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048 [Fri Jul 29 09:36:48 2022] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096 [Fri Jul 29 09:36:48 2022] ubi0: good PEBs: 400, bad PEBs: 0, corrupted PEBs: 0 [Fri Jul 29 09:36:48 2022] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128 [Fri Jul 29 09:36:48 2022] ubi0: max/mean erase counter: 0/0, WL threshold: 4096, image sequence number: 399903508 [Fri Jul 29 09:36:48 2022] ubi0: available PEBs: 193, total reserved PEBs: 207, PEBs reserved for bad PEB handling: 40 [Fri Jul 29 09:36:48 2022] ubi1: attaching mtd7 [Fri Jul 29 09:36:48 2022] ubi0: background thread "ubi_bgt0d" started, PID 84 [Fri Jul 29 09:36:49 2022] ubi1: scanning is finished [Fri Jul 29 09:36:49 2022] ubi1: attached mtd7 (name "filesystem", size 204 MiB) [Fri Jul 29 09:36:49 2022] ubi1: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes [Fri Jul 29 09:36:49 2022] ubi1: min./max. I/O unit sizes: 2048/2048, sub-page size 2048 [Fri Jul 29 09:36:49 2022] ubi1: VID header offset: 2048 (aligned 2048), data offset: 4096 [Fri Jul 29 09:36:49 2022] ubi1: good PEBs: 1628, bad PEBs: 4, corrupted PEBs: 0 [Fri Jul 29 09:36:49 2022] ubi1: user volume: 3, internal volumes: 1, max. volumes count: 128 [Fri Jul 29 09:36:49 2022] ubi1: max/mean erase counter: 3/1, WL threshold: 4096, image sequence number: 642295739 [Fri Jul 29 09:36:49 2022] ubi1: available PEBs: 0, total reserved PEBs: 1628, PEBs reserved for bad PEB handling: 36 [Fri Jul 29 09:36:49 2022] ubi1: background thread "ubi_bgt1d" started, PID 85 [Fri Jul 29 09:36:49 2022] input: gpio_keys as /devices/platform/gpio_keys/input/input0 [Fri Jul 29 09:36:49 2022] atmel_usart_serial atmel_usart_serial.0.auto: using dma0chan6 for rx DMA transfers [Fri Jul 29 09:36:49 2022] atmel_usart_serial atmel_usart_serial.0.auto: using dma0chan7 for tx DMA transfers [Fri Jul 29 09:36:49 2022] UBIFS (ubi1:1): Mounting in unauthenticated mode [Fri Jul 29 09:36:49 2022] UBIFS (ubi1:1): recovery needed [Fri Jul 29 09:36:49 2022] UBIFS (ubi1:1): recovery deferred [Fri Jul 29 09:36:49 2022] UBIFS (ubi1:1): UBIFS: mounted UBI device 1, volume 1, name "rootfs2", R/O mode [Fri Jul 29 09:36:49 2022] UBIFS (ubi1:1): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes [Fri Jul 29 09:36:49 2022] UBIFS (ubi1:1): FS size: 40632320 bytes (38 MiB, 320 LEBs), max 330 LEBs, journal size 5586944 bytes (5 MiB, 44 LEBs) [Fri Jul 29 09:36:49 2022] UBIFS (ubi1:1): reserved for root: 0 bytes (0 KiB) [Fri Jul 29 09:36:49 2022] UBIFS (ubi1:1): media format: w4/r0 (latest is w5/r0), UUID CBFCD4DB-1E48-42B6-996E-DEB8664487BE, small LPT model [Fri Jul 29 09:36:49 2022] VFS: Mounted root (ubifs filesystem) readonly on device 0:13. [Fri Jul 29 09:36:49 2022] devtmpfs: mounted [Fri Jul 29 09:36:49 2022] Freeing unused kernel image (initmem) memory: 1024K [Fri Jul 29 09:36:49 2022] Run /sbin/init as init process [Fri Jul 29 09:36:49 2022] with arguments: [Fri Jul 29 09:36:49 2022] /sbin/init [Fri Jul 29 09:36:49 2022] with environment: [Fri Jul 29 09:36:49 2022] HOME=/ [Fri Jul 29 09:36:49 2022] TERM=linux [Fri Jul 29 09:36:50 2022] UBIFS (ubi1:2): Mounting in unauthenticated mode [Fri Jul 29 09:36:50 2022] UBIFS (ubi1:2): background thread "ubifs_bgt1_2" started, PID 93 [Fri Jul 29 09:36:50 2022] UBIFS (ubi1:2): recovery needed [Fri Jul 29 09:36:50 2022] UBIFS (ubi1:2): recovery completed [Fri Jul 29 09:36:50 2022] UBIFS (ubi1:2): UBIFS: mounted UBI device 1, volume 2, name "data" [Fri Jul 29 09:36:50 2022] UBIFS (ubi1:2): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes [Fri Jul 29 09:36:50 2022] UBIFS (ubi1:2): FS size: 95358976 bytes (90 MiB, 751 LEBs), max 762 LEBs, journal size 4825088 bytes (4 MiB, 38 LEBs) [Fri Jul 29 09:36:50 2022] UBIFS (ubi1:2): reserved for root: 4504039 bytes (4398 KiB) [Fri Jul 29 09:36:50 2022] UBIFS (ubi1:2): media format: w5/r0 (latest is w5/r0), UUID 26A84B72-1192-4A9F-B2E5-C282C07DA04C, small LPT model [Fri Jul 29 09:36:50 2022] UBIFS (ubi1:1): completing deferred recovery [Fri Jul 29 09:36:50 2022] UBIFS (ubi1:1): background thread "ubifs_bgt1_1" started, PID 96 [Fri Jul 29 09:36:50 2022] UBIFS (ubi1:1): deferred recovery completed [Fri Jul 29 09:36:50 2022] random: crng init done [Fri Jul 29 09:36:50 2022] at91-reset f8048000.rstc: Starting after software reset [Fri Jul 29 09:36:50 2022] pps_core: LinuxPPS API ver. 1 registered [Fri Jul 29 09:36:50 2022] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [Fri Jul 29 09:36:50 2022] PTP clock support registered [Fri Jul 29 09:36:50 2022] SMSC LAN8710/LAN8720 f8008000.ethernet-ffffffff:01: Probing 'ethernet-phy@1' [Fri Jul 29 09:36:50 2022] SMSC LAN8710/LAN8720 f8008000.ethernet-ffffffff:01: Disabling energy detect! [Fri Jul 29 09:36:50 2022] macb f8008000.ethernet eth0: Cadence GEM rev 0x00020203 at 0xf8008000 irq 24 (00:50:c2:31:58:d4) [Fri Jul 29 09:36:52 2022] macb f8008000.ethernet eth0: PHY [f8008000.ethernet-ffffffff:01] driver [SMSC LAN8710/LAN8720] (irq=POLL) [Fri Jul 29 09:36:52 2022] macb f8008000.ethernet eth0: configuring for phy/rmii link mode [Fri Jul 29 09:36:54 2022] macb f8008000.ethernet eth0: PHY [f8008000.ethernet-ffffffff:01] driver [SMSC LAN8710/LAN8720] (irq=POLL) [Fri Jul 29 09:36:54 2022] macb f8008000.ethernet eth0: configuring for phy/rmii link mode [Fri Jul 29 09:36:57 2022] macb f8008000.ethernet eth0: Link is Up - 100Mbps/Full - flow control tx [Fri Jul 29 09:37:00 2022] macb f8008000.ethernet eth0: Link is Down [Fri Jul 29 09:37:02 2022] macb f8008000.ethernet eth0: PHY [f8008000.ethernet-ffffffff:01] driver [SMSC LAN8710/LAN8720] (irq=POLL) [Fri Jul 29 09:37:02 2022] macb f8008000.ethernet eth0: configuring for phy/rmii link mode [Fri Jul 29 09:37:04 2022] macb f8008000.ethernet eth0: Link is Up - 100Mbps/Full - flow control tx [Fri Jul 29 09:37:08 2022] UBIFS error (ubi1:1 pid 359): ubifs_decompress: cannot decompress 1247 bytes, compressor lzo, error -22 [Fri Jul 29 09:37:08 2022] UBIFS error (ubi1:1 pid 359): do_readpage: bad data node (block 47, inode 382) [Fri Jul 29 09:37:08 2022] magic 0x6101831 [Fri Jul 29 09:37:08 2022] crc 0x81ac5d7 [Fri Jul 29 09:37:08 2022] node_type 1 (data node) [Fri Jul 29 09:37:08 2022] group_type 0 (no node group) [Fri Jul 29 09:37:08 2022] sqnum 2088 [Fri Jul 29 09:37:08 2022] len 1295 [Fri Jul 29 09:37:08 2022] key (382, data, 47) [Fri Jul 29 09:37:08 2022] size 4096 [Fri Jul 29 09:37:08 2022] compr_typ 1 [Fri Jul 29 09:37:08 2022] data size 1247 [Fri Jul 29 09:37:08 2022] data (length = 1247): [Fri Jul 29 09:37:08 2022] 00000000: 27 73 70 6c 61 79 74 72 65 65 2e 63 00 6e 65 77 00 1c 93 fd 7f 01 00 20 00 00 00 00 6d 02 00 39 [Fri Jul 29 09:37:08 2022] 00000020: 84 0e 00 f9 83 0c 00 02 f8 8c 02 00 20 5e 01 80 7b 0d 01 50 5d 00 8c 5d 00 48 5d 00 94 5d 00 18 [Fri Jul 29 09:37:08 2022] 00000040: 5d 00 9c 5d 00 58 5d 00 a0 5c 00 61 00 a8 5d 00 30 5d 00 ac 5d 00 10 5d 00 b4 5d 00 38 5e 00 bc [Fri Jul 29 09:37:08 2022] 00000060: 7b be 08 48 97 0d 01 28 5d 00 c8 5d 01 08 5d 00 d0 5d 00 40 5d 00 d8 5d 00 80 5d 00 e0 5d 00 88 [Fri Jul 29 09:37:08 2022] 00000080: 5d 00 e8 5d 00 90 5d 00 f0 5d 00 98 5d 00 f8 5d 00 a0 61 0c 7c 0d 01 a8 59 00 08 5d 00 b0 5d 00 [Fri Jul 29 09:37:08 2022] 000000a0: 10 5d 00 b8 5c 00 6e a7 cc 9c ac 0e 66 11 f4 9f 05 01 0b 5d 00 03 6d 06 a0 0d 02 0c 58 00 6d 00 [Fri Jul 29 09:37:08 2022] 000000c0: 10 4d 01 0f 5d 00 05 4d 00 20 4d 01 11 dd 02 34 4d 01 12 5d 00 06 6d 14 a0 bc 08 7d 02 5c 4d 01 [Fri Jul 29 09:37:08 2022] 000000e0: 0e 7c 0d 4d 00 6c dc 02 6d 01 80 cd 07 09 6c 21 4d 01 13 cd 01 a8 4d 01 14 5c 00 6d 0f c0 4d 01 [Fri Jul 29 09:37:08 2022] 00000100: 16 5d 00 0a 7c 1b dc 08 2b 00 00 42 22 a0 ad 0e 05 04 00 b1 16 a8 ec 01 51 00 b0 ec 01 49 1b b8 [Fri Jul 29 09:37:08 2022] 00000120: 27 2d 00 04 0e 11 e6 02 8c 17 61 1e f0 5c 02 7c 15 61 12 c0 ec 01 51 0a c8 27 2d 00 08 0c 57 27 [Fri Jul 29 09:37:08 2022] 00000140: 2d 00 80 0c 0e 4e 01 07 00 b2 0d 60 ae bc 2f 61 1a e0 5d 02 09 dd 1a 30 23 6f 70 90 63 74 28 7d [Fri Jul 29 09:37:08 2022] 00000160: 35 69 74 01 5e 39 2c 20 06 26 72 69 71 2f 3a 0d 79 73 40 10 55 56 5d 00 05 7c 63 8d 0a 74 00 19 [Fri Jul 29 09:37:08 2022] 00000180: 44 04 57 38 20 6f 66 09 33 6e 08 00 03 72 72 61 79 20 63 47 01 6f 6e 6c ae ac 01 72 01 6c ae bc [Fri Jul 29 09:37:08 2022] 000001a0: 2c 72 01 b0 83 ef 01 00 04 80 27 5c 00 28 00 00 7d 0b 94 fc 1a 42 00 18 b4 ad 01 ff 40 00 ed 04 [Fri Jul 29 09:37:08 2022] 000001c0: 64 7d 11 ae ad 19 65 7c 53 4d 01 17 5d 00 66 7d 47 ae bd 14 c8 4e 00 dc ae bd 26 c9 4e 00 e4 ae [Fri Jul 29 09:37:08 2022] 000001e0: ad 49 ca 7c 51 cd 07 cb 71 09 af 0d 02 21 7c 06 4e 00 24 af ad 07 cd 6d 49 af ad 13 ce 6d 49 af [Fri Jul 29 09:37:08 2022] 00000200: ad 43 cf 6d 49 af bd 1a 2c 42 15 70 af bd 44 2d 4d 01 88 4d 01 15 4d 01 2e 4e 01 a0 af ad 31 2f [Fri Jul 29 09:37:08 2022] 00000220: 4e 01 ac af ad 28 30 4d 01 bc cd 07 31 4d 01 d0 dd 02 32 4e 01 e0 af bd 11 33 7d 41 af bd 4d 34 [Fri Jul 29 09:37:08 2022] 00000240: 4e 01 08 b0 ad 01 90 4e 01 20 b0 bd 2c 91 4e 01 30 b0 bd 08 92 4e 01 44 b0 ad 10 93 4e 01 5c b0 [Fri Jul 29 09:37:08 2022] 00000260: ad 0a 94 4d 01 6c cd 01 95 4d 01 7c dd 08 96 4e 01 94 b0 ad 64 97 4e 01 a8 b0 ad 1f 98 4e 01 cc [Fri Jul 29 09:37:08 2022] 00000280: b0 ad 1c 99 7d 11 b0 bd 11 9a 7d 11 b0 bd 2f 9b 4d 01 fc cd 04 9c 4e 01 10 b1 ad 2e 9d 4d 01 28 [Fri Jul 29 09:37:08 2022] 000002a0: 4d 01 1c 4d 01 9e 4e 01 48 b1 ad 8a 9f 4d 01 64 4d 01 1a 6c 35 4d 01 80 4d 01 23 4d 01 a1 4e 01 [Fri Jul 29 09:37:08 2022] 000002c0: a4 b1 bd 11 a6 6c 22 dd 05 a7 4e 01 d8 b1 ad 55 a8 4e 01 e4 b1 bd 29 aa 7d 0e b1 ad 1c f4 4e 01 [Fri Jul 29 09:37:08 2022] 000002e0: 14 b2 0d 02 19 4d 01 f5 7d 20 b2 bd 11 f6 7d 20 b2 bd 23 f7 4d 01 54 cd 04 f8 6c 34 cd 04 f9 4d [Fri Jul 29 09:37:08 2022] 00000300: 01 84 4d 01 1e 4d 01 fb 6d 10 b2 bc 0e 2a 5c 09 61 00 b0 4d 43 03 de 50 c0 b2 ac 76 6e 64 28 7e [Fri Jul 29 09:37:08 2022] 00000320: ac 01 6e 03 c8 b2 ac 04 7e 01 cc b2 ac 4c 7e 79 d4 b2 ac 73 7d 01 dc cc 01 6e 00 e4 b2 bc 7d 7d [Fri Jul 29 09:37:08 2022] 00000340: 28 ec cc 07 7e 43 f0 b2 bc 38 6e 1e 04 b3 bc 0b 6e 54 0c b3 ac 07 6e 30 14 b3 bc 2f 9c 70 cc 04 [Fri Jul 29 09:37:08 2022] 00000360: 6e 54 28 b3 ac 0a 6d 1e 30 dc 02 6d 09 38 cc 01 6d 57 40 cc 04 7e 3d 48 b3 ac 2b 6d 21 54 cc 01 [Fri Jul 29 09:37:08 2022] 00000380: 6d 2a 60 cc 04 6e 2d 68 b3 ac 46 6e 33 78 b3 bc 65 6d 3c 84 cc 0a 7d 25 8c cc 07 7d 2b a8 cc 07 [Fri Jul 29 09:37:08 2022] 000003a0: 6d 3c 98 dd 14 1b 4e 00 a4 b3 bc 5f 6e 42 b0 b3 bd 23 1d 4d 00 b8 cc 01 6d 30 c0 cd 01 1f 7c 29 [Fri Jul 29 09:37:08 2022] 000003c0: cc 01 7d 8c d0 dc 0b 7d 52 dc dd 02 22 6c 28 cc 01 6d 48 ec cd 01 24 6d 42 b3 bd 74 25 7d 2b b4 [Fri Jul 29 09:37:08 2022] 000003e0: ac 40 2a 4c 07 6e 2d 24 b8 af 2e dc bc 02 8d 39 e4 5c 00 7f 3b ec bc 02 27 de 07 5d f0 06 04 41 [Fri Jul 29 09:37:08 2022] 00000400: f1 4c 00 5d 00 09 4d 00 71 4d 00 99 5d 01 f1 4d 00 7d 4d 00 65 4d 00 75 7d 00 f2 0d 00 b5 4d 00 [Fri Jul 29 09:37:08 2022] 00000420: 51 4d 00 19 4d 00 29 6d 01 08 0d 11 b5 4e 00 e9 07 0e 00 c9 05 0e 00 d9 05 bc 0b ed 00 8e dd 00 [Fri Jul 29 09:37:08 2022] 00000440: b6 de 00 07 01 be 00 79 05 ae 3c 98 75 be 3b 70 6c bf 56 a0 f4 03 9d 28 04 cd 2b a4 5d 01 1c dc [Fri Jul 29 09:37:08 2022] 00000460: 01 6d 00 b4 50 07 03 f5 fe ff 6f 2c 12 be 4e 28 3e ae 4e f8 1c ae 49 18 24 bd 48 10 dc 3a ff 20 [Fri Jul 29 09:37:08 2022] 00000480: 3c fd 03 9e 1f e8 04 ad 3f 11 de 3b b0 70 ae 01 18 67 ae 45 98 09 bd 44 08 cc 3e 61 00 fb 09 54 [Fri Jul 29 09:37:08 2022] 000004a0: 6f 69 92 fe 5e 00 68 66 8d 2c 6f 6d 0a f0 5e 00 40 62 0d 01 fa 5d 00 26 20 0a f3 33 1c fc 03 27 [Fri Jul 29 09:37:08 2022] 000004c0: 2e 00 a4 75 20 00 00 53 0f 00 6d 6c 02 3f 8d 0a 31 ce 04 0d 7e 30 6e 00 91 cd 00 bb 11 00 00 [Fri Jul 29 09:37:08 2022] UBIFS error (ubi1:1 pid 359): do_readpage: cannot read page 47 of inode 382, error -22 Greets Alex
On Thu, 28 Jul 2022 10:40:14 +0300 Tudor Ambarus <tudor.ambarus@microchip.com> wrote: > Every dma_map_single() call should have its dma_unmap_single() counterpart, > because the DMA address space is a shared resource and one could render the > machine unusable by consuming all DMA addresses. > > Cc: stable@vger.kernel.org > Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver") > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> > --- > drivers/mtd/nand/raw/atmel/nand-controller.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c b/drivers/mtd/nand/raw/atmel/nand-controller.c > index 6ef14442c71a..330d2dafdd2d 100644 > --- a/drivers/mtd/nand/raw/atmel/nand-controller.c > +++ b/drivers/mtd/nand/raw/atmel/nand-controller.c > @@ -405,6 +405,7 @@ static int atmel_nand_dma_transfer(struct atmel_nand_controller *nc, > > dma_async_issue_pending(nc->dmac); > wait_for_completion(&finished); > + dma_unmap_single(nc->dev, buf_dma, len, dir); > > return 0; >
On 28.07.22 09:40, Tudor Ambarus wrote: > Every dma_map_single() call should have its dma_unmap_single() counterpart, > because the DMA address space is a shared resource and one could render the > machine unusable by consuming all DMA addresses. > > Cc: stable@vger.kernel.org > Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver") > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> This afaics is missing the following tag: Link: https://lore.kernel.org/lkml/13c6c9a2-6db5-c3bf-349b-4c127ad3496a@axentia.se/ These tags are considered important by Linus[1] and others, as they allow anyone to look into the backstory weeks or years from now. That is why they should be placed in cases like this, as Documentation/process/submitting-patches.rst and Documentation/process/5.Posting.rst explain in more detail. I care personally, because these tags make my regression tracking efforts a whole lot easier, as they allow my tracking bot 'regzbot' to automatically connect reports with patches posted or committed to fix tracked regressions. [1] see for example: https://lore.kernel.org/all/CAHk-=wjMmSZzMJ3Xnskdg4+GGz=5p5p+GSYyFBTh0f-DgvdBWg@mail.gmail.com/ https://lore.kernel.org/all/CAHk-=wgs38ZrfPvy=nOwVkVzjpM3VFU1zobP37Fwd_h9iAD5JQ@mail.gmail.com/ https://lore.kernel.org/all/CAHk-=wjxzafG-=J8oT30s7upn4RhBs6TX-uVFZ5rME+L5_DoJA@mail.gmail.com/ Apropos regzbot, let me tell regzbot to monitor this thread: #regzbot ^backmonitor: https://lore.kernel.org/lkml/13c6c9a2-6db5-c3bf-349b-4c127ad3496a@axentia.se/ Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat) P.S.: As the Linux kernel's regression tracker I deal with a lot of reports and sometimes miss something important when writing mails like this. If that's the case here, don't hesitate to tell me in a public reply, it's in everyone's interest to set the public record straight.
Hi! 2022-08-17 at 11:28, Thorsten Leemhuis wrote: > > > On 28.07.22 09:40, Tudor Ambarus wrote: >> Every dma_map_single() call should have its dma_unmap_single() counterpart, >> because the DMA address space is a shared resource and one could render the >> machine unusable by consuming all DMA addresses. >> >> Cc: stable@vger.kernel.org >> Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver") >> Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> > > This afaics is missing the following tag: > > Link: > https://lore.kernel.org/lkml/13c6c9a2-6db5-c3bf-349b-4c127ad3496a@axentia.se/ Indeed, I can confirm that this patch fixes that regression. Yay! I didn't realize this previously because 1) vacation and 2) many patches to juggle and I never tried this one on its until this weekend. Tested-by: Peter Rosin <peda@axentia.se> Cheers, Peter > These tags are considered important by Linus[1] and others, as they > allow anyone to look into the backstory weeks or years from now. That is > why they should be placed in cases like this, as > Documentation/process/submitting-patches.rst and > Documentation/process/5.Posting.rst explain in more detail. I care > personally, because these tags make my regression tracking efforts a > whole lot easier, as they allow my tracking bot 'regzbot' to > automatically connect reports with patches posted or committed to fix > tracked regressions. > > [1] see for example: > https://lore.kernel.org/all/CAHk-=wjMmSZzMJ3Xnskdg4+GGz=5p5p+GSYyFBTh0f-DgvdBWg@mail.gmail.com/ > https://lore.kernel.org/all/CAHk-=wgs38ZrfPvy=nOwVkVzjpM3VFU1zobP37Fwd_h9iAD5JQ@mail.gmail.com/ > https://lore.kernel.org/all/CAHk-=wjxzafG-=J8oT30s7upn4RhBs6TX-uVFZ5rME+L5_DoJA@mail.gmail.com/ > > Apropos regzbot, let me tell regzbot to monitor this thread: > > #regzbot ^backmonitor: > https://lore.kernel.org/lkml/13c6c9a2-6db5-c3bf-349b-4c127ad3496a@axentia.se/ > > Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat) > > P.S.: As the Linux kernel's regression tracker I deal with a lot of > reports and sometimes miss something important when writing mails like > this. If that's the case here, don't hesitate to tell me in a public > reply, it's in everyone's interest to set the public record straight.
On 7/28/22 10:40, Tudor Ambarus wrote: > Every dma_map_single() call should have its dma_unmap_single() counterpart, > because the DMA address space is a shared resource and one could render the > machine unusable by consuming all DMA addresses. > > Cc: stable@vger.kernel.org > Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver") > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> > --- > drivers/mtd/nand/raw/atmel/nand-controller.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c b/drivers/mtd/nand/raw/atmel/nand-controller.c > index 6ef14442c71a..330d2dafdd2d 100644 > --- a/drivers/mtd/nand/raw/atmel/nand-controller.c > +++ b/drivers/mtd/nand/raw/atmel/nand-controller.c > @@ -405,6 +405,7 @@ static int atmel_nand_dma_transfer(struct atmel_nand_controller *nc, > > dma_async_issue_pending(nc->dmac); > wait_for_completion(&finished); > + dma_unmap_single(nc->dev, buf_dma, len, dir); > > return 0; > Hi, Richard, Miquel, Would you please consider to include this patch in your queue? If yes, please add the following tag, it solves a regression: Link: https://lore.kernel.org/lkml/13c6c9a2-6db5-c3bf-349b-4c127ad3496a@axentia.se/
Hello Tudor, Tudor.Ambarus@microchip.com wrote on Wed, 7 Sep 2022 09:06:39 +0000: > On 7/28/22 10:40, Tudor Ambarus wrote: > > Every dma_map_single() call should have its dma_unmap_single() counterpart, > > because the DMA address space is a shared resource and one could render the > > machine unusable by consuming all DMA addresses. > > > > Cc: stable@vger.kernel.org > > Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver") > > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> > > --- > > drivers/mtd/nand/raw/atmel/nand-controller.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c b/drivers/mtd/nand/raw/atmel/nand-controller.c > > index 6ef14442c71a..330d2dafdd2d 100644 > > --- a/drivers/mtd/nand/raw/atmel/nand-controller.c > > +++ b/drivers/mtd/nand/raw/atmel/nand-controller.c > > @@ -405,6 +405,7 @@ static int atmel_nand_dma_transfer(struct atmel_nand_controller *nc, > > > > dma_async_issue_pending(nc->dmac); > > wait_for_completion(&finished); > > + dma_unmap_single(nc->dev, buf_dma, len, dir); > > > > return 0; > > > > Hi, Richard, Miquel, > > Would you please consider to include this patch in your queue? I'm catching up only now so as we're at -rc6 and I want things to lay a bit in -next I don't plan to send a Fixes PR, all the fixes exceptionally will go through the usual PR as anyway they won't be ready before the merge window opens. > If yes, please add the following tag, it solves a regression: > > Link: https://lore.kernel.org/lkml/13c6c9a2-6db5-c3bf-349b-4c127ad3496a@axentia.se/ Ok. Thanks, Miquèl
On Thu, 2022-07-28 at 07:40:14 UTC, Tudor Ambarus wrote: > Every dma_map_single() call should have its dma_unmap_single() counterpart, > because the DMA address space is a shared resource and one could render the > machine unusable by consuming all DMA addresses. > > Cc: stable@vger.kernel.org > Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver") > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> > Acked-by: Alexander Dahl <ada@thorsis.com> > Reported-by: Peter Rosin <peda@axentia.se> > Tested-by: Alexander Dahl <ada@thorsis.com> > Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> > Tested-by: Peter Rosin <peda@axentia.se> Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next, thanks. Miquel
diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c b/drivers/mtd/nand/raw/atmel/nand-controller.c index 6ef14442c71a..330d2dafdd2d 100644 --- a/drivers/mtd/nand/raw/atmel/nand-controller.c +++ b/drivers/mtd/nand/raw/atmel/nand-controller.c @@ -405,6 +405,7 @@ static int atmel_nand_dma_transfer(struct atmel_nand_controller *nc, dma_async_issue_pending(nc->dmac); wait_for_completion(&finished); + dma_unmap_single(nc->dev, buf_dma, len, dir); return 0;
Every dma_map_single() call should have its dma_unmap_single() counterpart, because the DMA address space is a shared resource and one could render the machine unusable by consuming all DMA addresses. Cc: stable@vger.kernel.org Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver") Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> --- drivers/mtd/nand/raw/atmel/nand-controller.c | 1 + 1 file changed, 1 insertion(+)