mtd: maps: vmu-flash: Fix build and runtime errors
Subsystems (2)
cover mtd: maps: vmu-flash: Fix build and runtime errors
Hi all,
This small series fixes build and runtime errors in the vmu-flash driver (enabled by CONFIG_MTD_VMU) and the included maple.h. These changes were verified on real Dreamcast hardware with a physical VMU. The VMU can now be successfully probed, read and written with MTD tools like mtd_info and mtd_debug. Previously, the driver failed to build or crashed during probing.
bash-5.3# mtdinfo /dev/mtd0
mtd0
Name: vmu2.1.0
Type: mlc-nand
Eraseblock size: 512 bytes
Amount of eraseblocks: 256 (131072 bytes, 128.0 KiB)
Minimum input/output unit size: 512 bytes
Sub-page size: 512 bytes
Character device major/minor: 90:0
Bad blocks are allowed: true
Device is writable: true
Thanks,
Florian
Florian Fuchs (3):
sh: maple: Fix build error due to missing include of linux/device.h
mtd: maps: vmu-flash: Fix fault in unaligned fixup
mtd: maps: vmu-flash: Fix NULL pointer dereference in initialization
drivers/mtd/maps/vmu-flash.c | 8 +++++--- include/linux/maple.h | 2 -- 2 files changed, 5 insertions(+), 5 deletions(-)
base-commit: 97315e7c901a1de60e8ca9b11e0e96d0f9253e18
Signature · 1 line
2.43.0
PATCH 1/3 sh: maple: Fix build error due to missing include of linux/device.h
Commit 313162d0b838 ("device.h: audit and cleanup users in main include dir") removed the include of linux/device.h. Revert this, as linux/maple.h embeds struct device via struct maple_device, which requires the definition. Otherwise results in build error: field 'dev' has incomplete type.
--- include/linux/maple.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
include/linux/maple.h +1 -2
@@ -2,10 +2,9 @@#ifndef __LINUX_MAPLE_H#define __LINUX_MAPLE_H +#include <linux/device.h> #include <mach/maple.h> -struct device ; -/* Maple Bus command and response codes */ enum maple_code { MAPLE_RESPONSE_FILEERR = -5,
base-commit: 97315e7c901a1de60e8ca9b11e0e96d0f9253e18
Signature · 1 line
2.43.0
PATCH 2/3 mtd: maps: vmu-flash: Fix fault in unaligned fixup
In reply to Florian FuchsUse kcalloc() / kzalloc() to allocate the memcard structs, instead of kmalloc() / kmalloc_array() to prevent access to uninitialized data.
This fixes runtime error: Fault in unaligned fixup: 0000 [#1] at mtd_get_fact_prot_info.
--- drivers/mtd/maps/vmu-flash.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/mtd/maps/vmu-flash.c +3 -3
@@ -609,7 +609,7 @@ static int vmu_connect(struct maple_device *mdev) basic_flash_data =be32_to_cpu (mdev->devinfo.function_data[c -1 ]); - card =kmalloc (sizeof (struct memcard ),GFP_KERNEL ); + card =kzalloc (sizeof (struct memcard ),GFP_KERNEL );if (!card) { error = -ENOMEM ; goto fail_nomem;
@@ -627,14 +627,14 @@ static int vmu_connect(struct maple_device *mdev)* Not sure there are actually any multi-partition devices in the * real world, but the hardware supports them, so, so will we */ - card->parts =kmalloc_array (card->partitions,sizeof (struct vmupart ), + card->parts =kcalloc (card->partitions,sizeof (struct vmupart ),GFP_KERNEL );if (!card->parts) { error = -ENOMEM ; goto fail_partitions; } - card->mtd =kmalloc_array (card->partitions,sizeof (struct mtd_info ), + card->mtd =kcalloc (card->partitions,sizeof (struct mtd_info ),GFP_KERNEL );if (!card->mtd) { error = -ENOMEM ;
Signature · 1 line
2.43.0
PATCH 3/3 mtd: maps: vmu-flash: Fix NULL pointer dereference in initialization
In reply to Florian FuchsThe mtd_info contains a struct device, which must be linked to its parent. Without this, the initialization of the MTD fails with a NULL pointer dereference.
--- drivers/mtd/maps/vmu-flash.c | 1 + 1 file changed, 1 insertion(+)
drivers/mtd/maps/vmu-flash.c +1 -0
@@ -547,6 +547,7 @@ static void vmu_queryblocks(struct mapleq *mq) mpart->partition = card->partition; mtd_cur->priv = mpart; mtd_cur->owner =THIS_MODULE ; + mtd_cur->dev.parent = &mdev->dev; pcache =kzalloc (sizeof (struct vmu_cache ),GFP_KERNEL );if (!pcache)
Signature · 1 line
2.43.0
John Paul Adrian Glaubitz
maintainerHi Florian,
Quoted 7 lines · Florian Fuchs
This small series fixes build and runtime errors in the vmu-flash driver (enabled by
CONFIG_MTD_VMU) and the includedmaple.h. These changes were verified on real Dreamcast hardware with a physical VMU. The VMU can now be successfully probed, read and written with MTD tools likemtd_infoandmtd_debug. Previously, the driver failed to build or crashed during probing.
Quoted 11 lines
bash-5.3# mtdinfo
/dev/mtd0
mtd0
Name: vmu2.1.0
Type: mlc-nand
Eraseblock size: 512 bytes
Amount of eraseblocks: 256 (131072 bytes, 128.0 KiB)
Minimum input/output unit size: 512 bytes
Sub-page size: 512 bytes
Character device major/minor: 90:0
Bad blocks are allowed: true
Device is writable: true
Thanks again for this series. Before this can be picked up, I would like again Artur Rojek to test it on his Dreamcast, so let's loop him in.
If he confirms the functionality, I'll pick it up. I'll try to get it reviewed later this week.
Adrian
Signature · 4 lines
.''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
Quoted 22 lines · John Paul Adrian Glaubitz
Hi Florian,
Quoted 7 lines · Florian Fuchs
This small series fixes build and runtime errors in the vmu-flash driver (enabled by
CONFIG_MTD_VMU) and the includedmaple.h. These changes were verified on real Dreamcast hardware with a physical VMU. The VMU can now be successfully probed, read and written with MTD tools likemtd_infoandmtd_debug. Previously, the driver failed to build or crashed during probing.Quoted 11 lines
bash-5.3# mtdinfo
/dev/mtd0
mtd0
Name: vmu2.1.0
Type: mlc-nand
Eraseblock size: 512 bytes
Amount of eraseblocks: 256 (131072 bytes, 128.0 KiB)
Minimum input/output unit size: 512 bytes
Sub-page size: 512 bytes
Character device major/minor: 90:0
Bad blocks are allowed: true
Device is writable: true
Quoted 7 lines
Thanks again for this series. Before this can be picked up, I would like again Artur Rojek to test it on his Dreamcast, so let's loop him in.
If he confirms the functionality, I'll pick it up. I'll try to get it reviewed later this week.
Adrian
Hi Florian,
thanks for this series!
Without the maple port fix, this works as intended only when all four maple ports are populated. I am able to read from multiple VMUs in various slots.
However, with even one port not populated, it causes a panic:
Quoted 50 lines
Maple (null): detected Dreamcast Controller: function
0x1: at (0, 0) Maple (null): no driver found
Maple (null): detected Dreamcast Controller: function0x1: at (1, 0) Maple (null): no driver found
Maple (null): detected Visual Memory: function0xE: at (0, 1) Maple (null): no driver foundBUG: unable to handle kernel paging request at 00400000 PC: [<8c2aecee>] maple_send.part.0+0x102/0x1c8 Pgd = (ptrval) [00400000] *pgd=00000000 Oops: 0000 [#1] Modules linked in: CPU: 0 UID: 0 PID: 11 Comm: kworker/0:1 Not tainted 6.18.0-rc5-next-20251114-00003-gb6bcd2e803f3 #25 PREEMPT Workqueue: even maple_dma_handler (events) PC is at maple_send.part.0+0x102/0x1c8 PR is at maple_send.part.0+0x5c/0x1c8PC :
8c2aeceeSP :8c85bef8SR : 40008000 TEA : 00400000 R0 :0000002cR1 :003fffc4R2 : 00400004 R3 :8c4e3d18R4 :8c92c024R5 :8c4e3d18R6 :0000002bR7 :8c92c030R8 : 00000000 R9 :8c4e3d18R10 : 00000016 R11 :8c6aacdcR12 : 00000007 R13 :8c914c20R14 :8c92c030
MACH: 00000001 MACL:000006ccGBR :8c000000PR :8c2aec48Call trace: [<8c030c50>] process_one_work+0x114/0x290 [<8c00b6a0>] arch_local_irq_restore+0x0/0x24 [<8c3dac3a>] schedule+0x22/0x108 [<8c03144a>] worker_thread+0x27e/0x3bc [<8c030b3c>] process_one_work+0x0/0x290 [<8c0379c2>] kthread+0xde/0x1c0 [<8c0311cc>] worker_thread+0x0/0x3bc [<8c0374fc>] to_kthread+0x0/0x1c [<8c00b6a0>] arch_local_irq_restore+0x0/0x24 [<8c00f200>] ret_from_kernel_thread+0xc/0x14 [<8c00b698>] arch_local_save_flags+0x0/0x8 [<8c0418b0>] schedule_tail+0x0/0x78 [<8c0378e4>] kthread+0x0/0x1c0Process: kworker/0:1 (pid: 11, stack limit = (ptrval))
Stack: (0x8c85bef8 to 0x8c85c000)Bee0:
8c030c508c00b6a0
Bf00:8c80817c8c8081058c8462c08c8081008c4e3d388c8462800000000048f0d9a1
Bf20:8c3dac3a8c85bf408c846280000000008c03144a8c8462c08c8462808c4ca36c
Bf40:8c8462a88c4da4008c4ca3888c030b3c8c857ebc8c80797c8c0379c28c846280
Bf60:8c0311cc8c0374fc8c857ebc8c00b6a08c8079608c805b40000000008c85bf98
Bf80:48f0d9a18c00f2008c839f088c4dbbd88c4936888c82c77c8c00b69800000000
Bfa0:8c0418b000000000 00000000 00000000 000000008c805b408c0378e400000000
Bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Bfe0: 00000000 00000000 00000000 40008000 00000000 00000000 00000000 00000000
Quoted 1 line
---[ end trace 0000000000000000 ]---
This means we can't apply this series without the maple fix, and as such I'll recommend that this waits until hotplug is fixed.
PS. I don't know if it's down to the same issue, but once I remove and re-attach a VMU, it cannot be read from anymore:
Quoted 1 line
Dreamcast_visual_memory0:01.E: VMU at (0, 1) is busy
PS. Adding Paul in the CC, he might be interested to test in the future.
Cheers,
Artur
Quoted 107 lines · Artur Rojek
Quoted 30 lines · John Paul Adrian Glaubitz
Hi Florian,
Quoted 11 lines · Florian Fuchs
This small series fixes build and runtime errors in the vmu-flash driver
(enabled byCONFIG_MTD_VMU) and the includedmaple.h. These changes were
verified on real Dreamcast hardware with a physical VMU. The VMU can now
be successfully probed, read and written with MTD tools likemtd_infoandmtd_debug. Previously, the driver failed to build or crashed during probing.Quoted 11 lines
bash-5.3# mtdinfo
/dev/mtd0
mtd0
Name: vmu2.1.0
Type: mlc-nand
Eraseblock size: 512 bytes
Amount of eraseblocks: 256 (131072 bytes, 128.0 KiB)
Minimum input/output unit size: 512 bytes
Sub-page size: 512 bytes
Character device major/minor: 90:0
Bad blocks are allowed: true
Device is writable: trueThanks again for this series. Before this can be picked up, I would like again
Artur Rojek to test it on his Dreamcast, so let's loop him in.Quoted 5 lines
If he confirms the functionality, I'll pick it up. I'll try to get it reviewed
later this week.Adrian
Hi Florian,
thanks for this series!Without the maple port fix, this works as intended only when all four maple ports are populated. I am able to read from multiple VMUs in various slots.
However, with even one port not populated, it causes a panic:
Quoted 60 lines
Maple (null): detected Dreamcast Controller: function
0x1: at (0, 0) Maple (null): no driver found
Maple (null): detected Dreamcast Controller: function0x1: at (1, 0) Maple (null): no driver found
Maple (null): detected Visual Memory: function0xE: at (0, 1) Maple (null): no driver foundBUG: unable to handle kernel paging request at 00400000 PC: [<8c2aecee>] maple_send.part.0+0x102/0x1c8 Pgd = (ptrval) [00400000] *pgd=00000000 Oops: 0000 [#1] Modules linked in: CPU: 0 UID: 0 PID: 11 Comm: kworker/0:1 Not tainted 6.18.0-rc5-next-20251114-00003-gb6bcd2e803f3 #25 PREEMPT Workqueue: even maple_dma_handler (events) PC is at maple_send.part.0+0x102/0x1c8 PR is at maple_send.part.0+0x5c/0x1c8PC :
8c2aeceeSP :8c85bef8SR : 40008000 TEA : 00400000 R0 :0000002cR1 :003fffc4R2 : 00400004 R3 :8c4e3d18R4 :8c92c024R5 :8c4e3d18R6 :0000002bR7 :8c92c030R8 : 00000000 R9 :8c4e3d18R10 : 00000016 R11 :8c6aacdcR12 : 00000007 R13 :8c914c20R14 :8c92c030
MACH: 00000001 MACL:000006ccGBR :8c000000PR :8c2aec48Call trace: [<8c030c50>] process_one_work+0x114/0x290 [<8c00b6a0>] arch_local_irq_restore+0x0/0x24 [<8c3dac3a>] schedule+0x22/0x108 [<8c03144a>] worker_thread+0x27e/0x3bc [<8c030b3c>] process_one_work+0x0/0x290 [<8c0379c2>] kthread+0xde/0x1c0 [<8c0311cc>] worker_thread+0x0/0x3bc [<8c0374fc>] to_kthread+0x0/0x1c [<8c00b6a0>] arch_local_irq_restore+0x0/0x24 [<8c00f200>] ret_from_kernel_thread+0xc/0x14 [<8c00b698>] arch_local_save_flags+0x0/0x8 [<8c0418b0>] schedule_tail+0x0/0x78 [<8c0378e4>] kthread+0x0/0x1c0Process: kworker/0:1 (pid: 11, stack limit = (ptrval))
Stack: (0x8c85bef8 to 0x8c85c000)Bee0:
8c030c508c00b6a0
Bf00:8c80817c8c8081058c8462c08c8081008c4e3d388c8462800000000048f0d9a1
Bf20:8c3dac3a8c85bf408c846280000000008c03144a8c8462c08c8462808c4ca36c
Bf40:8c8462a88c4da4008c4ca3888c030b3c8c857ebc8c80797c8c0379c28c846280
Bf60:8c0311cc8c0374fc8c857ebc8c00b6a08c8079608c805b40000000008c85bf98
Bf80:48f0d9a18c00f2008c839f088c4dbbd88c4936888c82c77c8c00b69800000000
Bfa0:8c0418b000000000 00000000 00000000 000000008c805b408c0378e400000000
Bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Bfe0: 00000000 00000000 00000000 40008000 00000000 00000000 00000000 00000000Quoted 1 line
---[ end trace 0000000000000000 ]---
Quoted 8 lines
This means we can't apply this series without the maple fix, and as such I'll recommend that this waits until hotplug is fixed.
PS. I don't know if it's down to the same issue, but once I remove and re-attach a VMU, it cannot be read from anymore:
Quoted 1 line
Dreamcast_visual_memory0:01.E: VMU at (0, 1) is busyPS. Adding Paul in the CC, he might be interested to test in the future.
Hi Artur, thanks for testing!
I am not sure if the errors you see are related to the changes. The fixes only make the VMU code compile at all. Without that, the build fails and it crashes instantly.
So I would say, it is an improvement to the status quo.
Regards,
Florian
Quoted 117 lines · Florian Fuchs
Quoted 107 lines · Artur Rojek
Quoted 30 lines · John Paul Adrian Glaubitz
Hi Florian,
Quoted 11 lines · Florian Fuchs
This small series fixes build and runtime errors in the vmu-flash driver
(enabled byCONFIG_MTD_VMU) and the includedmaple.h. These changes were
verified on real Dreamcast hardware with a physical VMU. The VMU can now
be successfully probed, read and written with MTD tools likemtd_infoandmtd_debug. Previously, the driver failed to build or crashed during probing.Quoted 11 lines
bash-5.3# mtdinfo
/dev/mtd0
mtd0
Name: vmu2.1.0
Type: mlc-nand
Eraseblock size: 512 bytes
Amount of eraseblocks: 256 (131072 bytes, 128.0 KiB)
Minimum input/output unit size: 512 bytes
Sub-page size: 512 bytes
Character device major/minor: 90:0
Bad blocks are allowed: true
Device is writable: trueThanks again for this series. Before this can be picked up, I would like again
Artur Rojek to test it on his Dreamcast, so let's loop him in.Quoted 5 lines
If he confirms the functionality, I'll pick it up. I'll try to get it reviewed
later this week.Adrian
Hi Florian,
thanks for this series!Without the maple port fix, this works as intended only when all four maple ports are populated. I am able to read from multiple VMUs in various slots.
However, with even one port not populated, it causes a panic:
Quoted 60 lines
Maple (null): detected Dreamcast Controller: function
0x1: at (0, 0) Maple (null): no driver found
Maple (null): detected Dreamcast Controller: function0x1: at (1, 0) Maple (null): no driver found
Maple (null): detected Visual Memory: function0xE: at (0, 1) Maple (null): no driver foundBUG: unable to handle kernel paging request at 00400000 PC: [<8c2aecee>] maple_send.part.0+0x102/0x1c8 Pgd = (ptrval) [00400000] *pgd=00000000 Oops: 0000 [#1] Modules linked in: CPU: 0 UID: 0 PID: 11 Comm: kworker/0:1 Not tainted 6.18.0-rc5-next-20251114-00003-gb6bcd2e803f3 #25 PREEMPT Workqueue: even maple_dma_handler (events) PC is at maple_send.part.0+0x102/0x1c8 PR is at maple_send.part.0+0x5c/0x1c8PC :
8c2aeceeSP :8c85bef8SR : 40008000 TEA : 00400000 R0 :0000002cR1 :003fffc4R2 : 00400004 R3 :8c4e3d18R4 :8c92c024R5 :8c4e3d18R6 :0000002bR7 :8c92c030R8 : 00000000 R9 :8c4e3d18R10 : 00000016 R11 :8c6aacdcR12 : 00000007 R13 :8c914c20R14 :8c92c030
MACH: 00000001 MACL:000006ccGBR :8c000000PR :8c2aec48Call trace: [<8c030c50>] process_one_work+0x114/0x290 [<8c00b6a0>] arch_local_irq_restore+0x0/0x24 [<8c3dac3a>] schedule+0x22/0x108 [<8c03144a>] worker_thread+0x27e/0x3bc [<8c030b3c>] process_one_work+0x0/0x290 [<8c0379c2>] kthread+0xde/0x1c0 [<8c0311cc>] worker_thread+0x0/0x3bc [<8c0374fc>] to_kthread+0x0/0x1c [<8c00b6a0>] arch_local_irq_restore+0x0/0x24 [<8c00f200>] ret_from_kernel_thread+0xc/0x14 [<8c00b698>] arch_local_save_flags+0x0/0x8 [<8c0418b0>] schedule_tail+0x0/0x78 [<8c0378e4>] kthread+0x0/0x1c0Process: kworker/0:1 (pid: 11, stack limit = (ptrval))
Stack: (0x8c85bef8 to 0x8c85c000)Bee0:
8c030c508c00b6a0
Bf00:8c80817c8c8081058c8462c08c8081008c4e3d388c8462800000000048f0d9a1
Bf20:8c3dac3a8c85bf408c846280000000008c03144a8c8462c08c8462808c4ca36c
Bf40:8c8462a88c4da4008c4ca3888c030b3c8c857ebc8c80797c8c0379c28c846280
Bf60:8c0311cc8c0374fc8c857ebc8c00b6a08c8079608c805b40000000008c85bf98
Bf80:48f0d9a18c00f2008c839f088c4dbbd88c4936888c82c77c8c00b69800000000
Bfa0:8c0418b000000000 00000000 00000000 000000008c805b408c0378e400000000
Bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Bfe0: 00000000 00000000 00000000 40008000 00000000 00000000 00000000 00000000Quoted 1 line
---[ end trace 0000000000000000 ]---Quoted 8 lines
This means we can't apply this series without the maple fix, and as such I'll recommend that this waits until hotplug is fixed.
PS. I don't know if it's down to the same issue, but once I remove and re-attach a VMU, it cannot be read from anymore:
Quoted 1 line
Dreamcast_visual_memory0:01.E: VMU at (0, 1) is busyPS. Adding Paul in the CC, he might be interested to test in the future.
Quoted 7 lines
Hi Artur, thanks for testing!
I am not sure if the errors you see are related to the changes. The fixes only make the VMU code compile at all. Without that, the build fails and it crashes instantly.
So I would say, it is an improvement to the status quo.
I wouldn't say that trading a compilation issue for a runtime crash is an improvement. It only shows that further works needs to be done before we can accept both the VMU and maple port fixes, and that both of them are connected.
That said, great work getting it this far. I am here if you need further debug. If you'd like, check out #linux-sh IRC channel on libera.chat, then we can brainstorm this further.
Cheers,
Artur
Quoted 3 lines
Regards,
Florian
Quoted 134 lines · Artur Rojek
Quoted 120 lines · Florian Fuchs
Quoted 112 lines · Artur Rojek
Quoted 30 lines · John Paul Adrian Glaubitz
Hi Florian,
Quoted 11 lines · Florian Fuchs
This small series fixes build and runtime errors in the vmu-flash driver
(enabled byCONFIG_MTD_VMU) and the includedmaple.h. These changes were
verified on real Dreamcast hardware with a physical VMU. The VMU can now
be successfully probed, read and written with MTD tools likemtd_infoandmtd_debug. Previously, the driver failed to build or crashed during probing.Quoted 11 lines
bash-5.3# mtdinfo
/dev/mtd0
mtd0
Name: vmu2.1.0
Type: mlc-nand
Eraseblock size: 512 bytes
Amount of eraseblocks: 256 (131072 bytes, 128.0 KiB)
Minimum input/output unit size: 512 bytes
Sub-page size: 512 bytes
Character device major/minor: 90:0
Bad blocks are allowed: true
Device is writable: trueThanks again for this series. Before this can be picked up, I would like again
Artur Rojek to test it on his Dreamcast, so let's loop him in.Quoted 5 lines
If he confirms the functionality, I'll pick it up. I'll try to get it reviewed
later this week.Adrian
Hi Florian,
thanks for this series!Without the maple port fix, this works as intended only when all four maple ports are populated. I am able to read from multiple VMUs in
various slots.However, with even one port not populated, it causes a panic:
Quoted 60 lines
Maple (null): detected Dreamcast Controller: function
0x1: at (0, 0) Maple (null): no driver found
Maple (null): detected Dreamcast Controller: function0x1: at (1, 0) Maple (null): no driver found
Maple (null): detected Visual Memory: function0xE: at (0, 1) Maple (null): no driver foundBUG: unable to handle kernel paging request at 00400000 PC: [<8c2aecee>] maple_send.part.0+0x102/0x1c8 Pgd = (ptrval) [00400000] *pgd=00000000 Oops: 0000 [#1] Modules linked in: CPU: 0 UID: 0 PID: 11 Comm: kworker/0:1 Not tainted 6.18.0-rc5-next-20251114-00003-gb6bcd2e803f3 #25 PREEMPT Workqueue: even maple_dma_handler (events) PC is at maple_send.part.0+0x102/0x1c8 PR is at maple_send.part.0+0x5c/0x1c8PC :
8c2aeceeSP :8c85bef8SR : 40008000 TEA : 00400000 R0 :0000002cR1 :003fffc4R2 : 00400004 R3 :8c4e3d18R4 :8c92c024R5 :8c4e3d18R6 :0000002bR7 :8c92c030R8 : 00000000 R9 :8c4e3d18R10 : 00000016 R11 :8c6aacdcR12 : 00000007 R13 :8c914c20R14 :8c92c030
MACH: 00000001 MACL:000006ccGBR :8c000000PR :8c2aec48Call trace: [<8c030c50>] process_one_work+0x114/0x290 [<8c00b6a0>] arch_local_irq_restore+0x0/0x24 [<8c3dac3a>] schedule+0x22/0x108 [<8c03144a>] worker_thread+0x27e/0x3bc [<8c030b3c>] process_one_work+0x0/0x290 [<8c0379c2>] kthread+0xde/0x1c0 [<8c0311cc>] worker_thread+0x0/0x3bc [<8c0374fc>] to_kthread+0x0/0x1c [<8c00b6a0>] arch_local_irq_restore+0x0/0x24 [<8c00f200>] ret_from_kernel_thread+0xc/0x14 [<8c00b698>] arch_local_save_flags+0x0/0x8 [<8c0418b0>] schedule_tail+0x0/0x78 [<8c0378e4>] kthread+0x0/0x1c0Process: kworker/0:1 (pid: 11, stack limit = (ptrval))
Stack: (0x8c85bef8 to 0x8c85c000)Bee0:
8c030c508c00b6a0
Bf00:8c80817c8c8081058c8462c08c8081008c4e3d388c8462800000000048f0d9a1
Bf20:8c3dac3a8c85bf408c846280000000008c03144a8c8462c08c8462808c4ca36c
Bf40:8c8462a88c4da4008c4ca3888c030b3c8c857ebc8c80797c8c0379c28c846280
Bf60:8c0311cc8c0374fc8c857ebc8c00b6a08c8079608c805b40000000008c85bf98
Bf80:48f0d9a18c00f2008c839f088c4dbbd88c4936888c82c77c8c00b69800000000
Bfa0:8c0418b000000000 00000000 00000000 000000008c805b408c0378e400000000
Bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Bfe0: 00000000 00000000 00000000 40008000 00000000 00000000 00000000 00000000Quoted 1 line
---[ end trace 0000000000000000 ]---This means we can't apply this series without the maple fix, and as such
I'll recommend that this waits until hotplug is fixed.Quoted 6 lines
PS. I don't know if it's down to the same issue, but once I remove and re-attach a VMU, it cannot be read from anymore:
Quoted 1 line
Dreamcast_visual_memory0:01.E: VMU at (0, 1) is busyPS. Adding Paul in the CC, he might be interested to test in the future.
Quoted 7 lines
Hi Artur, thanks for testing!
I am not sure if the errors you see are related to the changes. The fixes only make the VMU code compile at all. Without that, the build fails and it crashes instantly.
So I would say, it is an improvement to the status quo.
I wouldn't say that trading a compilation issue for a runtime crash is an improvement. It only shows that further works needs to be done before we can accept both the VMU and maple port fixes, and that both of them are connected.
Quoted 10 lines
That said, great work getting it this far. I am here if you need further debug. If you'd like, check out #linux-sh IRC channel on libera.chat, then we can brainstorm this further.
Cheers,
ArturQuoted 3 lines
Regards,
Florian
I mean, I guess it's ok, as the code is like this for a long time, so it should be alright, when it keeps like this for a few weeks now, until an extensive fix. I just sent it now for a gradual improvement, in my opinion, as I need to invest a bit more debugging for the maple misbehaviour than for the obvious build breakage.
Thank you for your kind words, I don't take them for granted! And I will certainly hang around in #linux-sh as I have a few other things there to debug were I really need some additional input.
see you there,
Florian
John Paul Adrian Glaubitz
maintainerHi Florian,
Quoted 5 lines · Florian Fuchs
I mean, I guess it's ok, as the code is like this for a long time, so it should be alright, when it keeps like this for a few weeks now, until an extensive fix. I just sent it now for a gradual improvement, in my opinion, as I need to invest a bit more debugging for the maple misbehaviour than for the obvious build breakage.
Thank you for your patience. I hope that you don't read Artur's recommendation as a general dismissal of your work because it's not meant that way.
It's highly appreciated that you are stepping up to work on the Dreamcast code and I will absolutely be happy to pick up your patches once the runtime checks are positive and Artur is satisfied as well.
It's perfectly normal that some patch series can take several rounds until everyone is happy. But it's usually worth the effort and you will also be able to learn from others.
Quoted 3 lines
Thank you for your kind words, I don't take them for granted! And I will certainly hang around in #linux-sh as I have a few other things there to debug were I really need some additional input.
Really looking forward to this! A warm welcome to the SH community ;-).
Adrian
Signature · 4 lines
.''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913