* Re: Kernel segmentation fault unbinding eMMC on AML-S905X-CC
[not found] <5c3744c0.1c69fb81.93dc1.2aff@mx.google.com>
@ 2019-01-10 14:08 ` Remi Pommarel
2019-01-10 16:43 ` Elie Roudninski
0 siblings, 1 reply; 4+ messages in thread
From: Remi Pommarel @ 2019-01-10 14:08 UTC (permalink / raw)
To: Elie Roudninski; +Cc: linux-amlogic, linux-mmc
On Wed, Jan 09, 2019 at 10:48:50PM +0000, Elie Roudninski wrote:
...
> [ 444.060161] Call trace:
> [ 444.062580] queued_spin_lock_slowpath+0x228/0x2d0
> [ 444.067322] meson_mmc_irq+0x290/0x2a0
> [ 444.071032] __free_irq+0x184/0x318
> [ 444.074480] free_irq+0x40/0x80
> [ 444.077586] devm_irq_release+0x24/0x30
> [ 444.081382] release_nodes+0x1e0/0x2e0
> [ 444.085089] devres_release_all+0x60/0x88
> [ 444.089057] device_release_driver_internal+0x1c8/0x248
> [ 444.094231] device_release_driver+0x28/0x38
> [ 444.098459] unbind_store+0xdc/0x148
> [ 444.101994] drv_attr_store+0x40/0x58
> [ 444.105627] sysfs_kf_write+0x5c/0x78
> [ 444.109240] kernfs_fop_write+0xe8/0x1e0
> [ 444.113126] __vfs_write+0x60/0x190
> [ 444.116570] vfs_write+0xac/0x1b0
> [ 444.119848] ksys_write+0x6c/0xd0
> [ 444.123125] __arm64_sys_write+0x24/0x30
> [ 444.127015] el0_svc_common+0x94/0xe8
> [ 444.130629] el0_svc_handler+0x38/0x80
> [ 444.134340] el0_svc+0x8/0xc
> [ 444.137187] Code: d37c0401 910020c0 8b010041 f865d8e5 (f8256826)
> [ 444.143223] ---[ end trace 62541ec2ffe020f2 ]---
> Segmentation fault
...
Here are my two cents on this.
The irq that is being freed was allocated through device management
(i.e. with devm_request_threaded_irq()). So this irq will be released
after meson_mmc_remove() completion, thus after that mmc_free_host()
has been called. Because this irq has been registered with IRQF_SHARED
and if you have CONFIG_DEBUG_SHIRQ (do you ?) the irq handler will be
called while the irq is freed.
So meson_mmc_irq could be called after mmc_free_host() has freed the
meson_host pointer causing it to dereference an invalid pointer.
So if you have CONFIG_DEBUG_SHIRQ could you please test the following
patch:
------------------------------- 8< ----------------------------------
diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
index c2690c1a50ff..3a9679531520 100644
--- a/drivers/mmc/host/meson-gx-mmc.c
+++ b/drivers/mmc/host/meson-gx-mmc.c
@@ -179,6 +179,8 @@ struct meson_host {
struct sd_emmc_desc *descs;
dma_addr_t descs_dma_addr;
+ int irq;
+
bool vqmmc_enabled;
};
@@ -1231,7 +1233,7 @@ static int meson_mmc_probe(struct platform_device *pdev)
struct resource *res;
struct meson_host *host;
struct mmc_host *mmc;
- int ret, irq;
+ int ret;
mmc = mmc_alloc_host(sizeof(struct meson_host), &pdev->dev);
if (!mmc)
@@ -1276,8 +1278,8 @@ static int meson_mmc_probe(struct platform_device *pdev)
goto free_host;
}
- irq = platform_get_irq(pdev, 0);
- if (irq <= 0) {
+ host->irq = platform_get_irq(pdev, 0);
+ if (host->irq <= 0) {
dev_err(&pdev->dev, "failed to get interrupt resource.\n");
ret = -EINVAL;
goto free_host;
@@ -1331,9 +1333,8 @@ static int meson_mmc_probe(struct platform_device *pdev)
writel(IRQ_CRC_ERR | IRQ_TIMEOUTS | IRQ_END_OF_CHAIN,
host->regs + SD_EMMC_IRQ_EN);
- ret = devm_request_threaded_irq(&pdev->dev, irq, meson_mmc_irq,
- meson_mmc_irq_thread, IRQF_SHARED,
- NULL, host);
+ ret = request_threaded_irq(host->irq, meson_mmc_irq,
+ meson_mmc_irq_thread, IRQF_SHARED, NULL, host);
if (ret)
goto err_init_clk;
@@ -1387,6 +1388,7 @@ static int meson_mmc_remove(struct platform_device *pdev)
/* disable interrupts */
writel(0, host->regs + SD_EMMC_IRQ_EN);
+ free_irq(host->irq, host);
dma_free_coherent(host->dev, SD_EMMC_DESC_BUF_LEN,
host->descs, host->descs_dma_addr);
------------------------------- 8< ----------------------------------
This basically freed the irq in the meson_mmc_remove() so the
meson_mmc_irq() is called before mmc_free_host().
--
Rémi Pommarel
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: Kernel segmentation fault unbinding eMMC on AML-S905X-CC
2019-01-10 14:08 ` Kernel segmentation fault unbinding eMMC on AML-S905X-CC Remi Pommarel
@ 2019-01-10 16:43 ` Elie Roudninski
2019-01-10 18:42 ` Remi Pommarel
0 siblings, 1 reply; 4+ messages in thread
From: Elie Roudninski @ 2019-01-10 16:43 UTC (permalink / raw)
To: Remi Pommarel; +Cc: linux-amlogic, linux-mmc
On Thu, Jan 10, 2019 at 1:59 PM Remi Pommarel <repk@triplefau.lt> wrote:
>
> On Wed, Jan 09, 2019 at 10:48:50PM +0000, Elie Roudninski wrote:
> ...
>
> > [ 444.060161] Call trace:
> > [ 444.062580] queued_spin_lock_slowpath+0x228/0x2d0
> > [ 444.067322] meson_mmc_irq+0x290/0x2a0
> > [ 444.071032] __free_irq+0x184/0x318
> > [ 444.074480] free_irq+0x40/0x80
> > [ 444.077586] devm_irq_release+0x24/0x30
> > [ 444.081382] release_nodes+0x1e0/0x2e0
> > [ 444.085089] devres_release_all+0x60/0x88
> > [ 444.089057] device_release_driver_internal+0x1c8/0x248
> > [ 444.094231] device_release_driver+0x28/0x38
> > [ 444.098459] unbind_store+0xdc/0x148
> > [ 444.101994] drv_attr_store+0x40/0x58
> > [ 444.105627] sysfs_kf_write+0x5c/0x78
> > [ 444.109240] kernfs_fop_write+0xe8/0x1e0
> > [ 444.113126] __vfs_write+0x60/0x190
> > [ 444.116570] vfs_write+0xac/0x1b0
> > [ 444.119848] ksys_write+0x6c/0xd0
> > [ 444.123125] __arm64_sys_write+0x24/0x30
> > [ 444.127015] el0_svc_common+0x94/0xe8
> > [ 444.130629] el0_svc_handler+0x38/0x80
> > [ 444.134340] el0_svc+0x8/0xc
> > [ 444.137187] Code: d37c0401 910020c0 8b010041 f865d8e5 (f8256826)
> > [ 444.143223] ---[ end trace 62541ec2ffe020f2 ]---
> > Segmentation fault
>
> ...
>
> Here are my two cents on this.
>
> The irq that is being freed was allocated through device management
> (i.e. with devm_request_threaded_irq()). So this irq will be released
> after meson_mmc_remove() completion, thus after that mmc_free_host()
> has been called. Because this irq has been registered with IRQF_SHARED
> and if you have CONFIG_DEBUG_SHIRQ (do you ?) the irq handler will be
Yes, you are right. I have CONFIG_DEBUG_SHIRQ enabled.
> called while the irq is freed.
>
> So meson_mmc_irq could be called after mmc_free_host() has freed the
> meson_host pointer causing it to dereference an invalid pointer.
>
> So if you have CONFIG_DEBUG_SHIRQ could you please test the following
> patch:
>
> ------------------------------- 8< ----------------------------------
> diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
> index c2690c1a50ff..3a9679531520 100644
> --- a/drivers/mmc/host/meson-gx-mmc.c
> +++ b/drivers/mmc/host/meson-gx-mmc.c
> @@ -179,6 +179,8 @@ struct meson_host {
> struct sd_emmc_desc *descs;
> dma_addr_t descs_dma_addr;
>
> + int irq;
> +
> bool vqmmc_enabled;
> };
>
> @@ -1231,7 +1233,7 @@ static int meson_mmc_probe(struct platform_device *pdev)
> struct resource *res;
> struct meson_host *host;
> struct mmc_host *mmc;
> - int ret, irq;
> + int ret;
>
> mmc = mmc_alloc_host(sizeof(struct meson_host), &pdev->dev);
> if (!mmc)
> @@ -1276,8 +1278,8 @@ static int meson_mmc_probe(struct platform_device *pdev)
> goto free_host;
> }
>
> - irq = platform_get_irq(pdev, 0);
> - if (irq <= 0) {
> + host->irq = platform_get_irq(pdev, 0);
> + if (host->irq <= 0) {
> dev_err(&pdev->dev, "failed to get interrupt resource.\n");
> ret = -EINVAL;
> goto free_host;
> @@ -1331,9 +1333,8 @@ static int meson_mmc_probe(struct platform_device *pdev)
> writel(IRQ_CRC_ERR | IRQ_TIMEOUTS | IRQ_END_OF_CHAIN,
> host->regs + SD_EMMC_IRQ_EN);
>
> - ret = devm_request_threaded_irq(&pdev->dev, irq, meson_mmc_irq,
> - meson_mmc_irq_thread, IRQF_SHARED,
> - NULL, host);
> + ret = request_threaded_irq(host->irq, meson_mmc_irq,
> + meson_mmc_irq_thread, IRQF_SHARED, NULL, host);
> if (ret)
> goto err_init_clk;
>
> @@ -1387,6 +1388,7 @@ static int meson_mmc_remove(struct platform_device *pdev)
>
> /* disable interrupts */
> writel(0, host->regs + SD_EMMC_IRQ_EN);
> + free_irq(host->irq, host);
>
> dma_free_coherent(host->dev, SD_EMMC_DESC_BUF_LEN,
> host->descs, host->descs_dma_addr);
> ------------------------------- 8< ----------------------------------
>
> This basically freed the irq in the meson_mmc_remove() so the
> meson_mmc_irq() is called before mmc_free_host().
Hello and thank you for looking into this!
Your patch seems to work. I still got a stacktrace but not a segfault
anymore, and it appears to be related to something else:
[ 148.133895] WARNING: CPU: 1 PID: 580 at
drivers/mmc/host/meson-gx-mmc.c:1027 meson_mmc_irq+0x210/0x2a0
[ 148.137535] Modules linked in: cfg80211 rfkill 8021q garp mrp stp
llc dw_hdmi_cec meson_dw_hdmi dw_hdmi meson_drm dwmac_generic
drm_kms_helper dwmac_meson8b drm crct10dif_ce stmmac_platform stmmac
drm_panel_orientation_quirks meson_ir ptp syscopyarea rc_core
sysfillrect sysimgblt fb_sys_fops pps_core meson_canvas meson_gxbb_wdt
[ 148.166345] CPU: 1 PID: 580 Comm: bash Tainted: G W
4.20.0_2 #1
[ 148.173498] Hardware name: amlogic p212/p212, BIOS
2019.01-rc2-00176-gf97c49d6a2 01/10/2019
[ 148.181780] pstate: 60400085 (nZCv daIf +PAN -UAO)
[ 148.186527] pc : meson_mmc_irq+0x210/0x2a0
[ 148.190586] lr : __free_irq+0x184/0x318
[ 148.194370] sp : ffff0000108efac0
[ 148.197647] x29: ffff0000108efac0 x28: ffff800005cfb600
[ 148.202908] x27: 0000000000000000 x26: 0000000000000000
[ 148.208169] x25: 0000000000000000 x24: ffff8000105e8228
[ 148.213431] x23: 0000000000000013 x22: ffff8000105e8358
[ 148.218692] x21: ffff800005e61f00 x20: ffff8000105e8200
[ 148.223953] x19: ffff800005e61f00 x18: 0000000000000000
[ 148.229214] x17: 0000000000000000 x16: 0000000000000000
[ 148.234476] x15: ffffffffffffffff x14: 6d6d2e3030303437
[ 148.239737] x13: 3030642f6270612e x12: 0000000000000040
[ 148.244998] x11: 0000000000000228 x10: 0000000000000040
[ 148.250259] x9 : ffff000009fa9de8 x8 : ffff000009fa9de0
[ 148.255521] x7 : ffff800007e7e050 x6 : 0000000000000000
[ 148.260782] x5 : ffff800007e7df90 x4 : 0000000000000000
[ 148.266043] x3 : 0000000000000000 x2 : ffff000008b90080
[ 148.271304] x1 : ffff800005e61f00 x0 : 0000000000000000
[ 148.276566] Call trace:
[ 148.278984] meson_mmc_irq+0x210/0x2a0
[ 148.282692] __free_irq+0x184/0x318
[ 148.286142] free_irq+0x40/0x80
[ 148.289247] meson_mmc_remove+0x48/0x190
[ 148.293130] platform_drv_remove+0x30/0x50
[ 148.297190] device_release_driver_internal+0x1b0/0x248
[ 148.302357] device_release_driver+0x28/0x38
[ 148.306583] unbind_store+0xdc/0x148
[ 148.310119] drv_attr_store+0x40/0x58
[ 148.313743] sysfs_kf_write+0x5c/0x78
[ 148.317364] kernfs_fop_write+0xe8/0x1e0
[ 148.321247] __vfs_write+0x60/0x190
[ 148.324695] vfs_write+0xac/0x1b0
[ 148.327972] ksys_write+0x6c/0xd0
[ 148.331250] __arm64_sys_write+0x24/0x30
[ 148.335133] el0_svc_common+0x94/0xe8
[ 148.338754] el0_svc_handler+0x38/0x80
[ 148.342463] el0_svc+0x8/0xc
[ 148.345308] ---[ end trace eb849c1a635abc72 ]---
[ 148.350408] meson-gx-mmc d0074000.mmc: Dropping the link to regulator.3
[ 148.356575] meson-gx-mmc d0074000.mmc: Dropping the link to regulator.1
Moreover when I bind the eMMC after the unbind, Linux detects it
properly, its a huge improvement!
Thank you very much!
I don't know if jbrunet's patch about removing the "non-removable"
property should allow Linux to detects it automatically when plugged
without unbind/bind, but this part is not working.
Regards,
Elie
>
> --
> Rémi Pommarel
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Kernel segmentation fault unbinding eMMC on AML-S905X-CC
2019-01-10 16:43 ` Elie Roudninski
@ 2019-01-10 18:42 ` Remi Pommarel
0 siblings, 0 replies; 4+ messages in thread
From: Remi Pommarel @ 2019-01-10 18:42 UTC (permalink / raw)
To: Elie Roudninski; +Cc: linux-amlogic, linux-mmc
On Thu, Jan 10, 2019 at 04:43:31PM +0000, Elie Roudninski wrote:
[ ... ]
> Your patch seems to work. I still got a stacktrace but not a segfault
> anymore, and it appears to be related to something else:
> [ 148.133895] WARNING: CPU: 1 PID: 580 at
> drivers/mmc/host/meson-gx-mmc.c:1027 meson_mmc_irq+0x210/0x2a0
> [ 148.137535] Modules linked in: cfg80211 rfkill 8021q garp mrp stp
> llc dw_hdmi_cec meson_dw_hdmi dw_hdmi meson_drm dwmac_generic
> drm_kms_helper dwmac_meson8b drm crct10dif_ce stmmac_platform stmmac
> drm_panel_orientation_quirks meson_ir ptp syscopyarea rc_core
> sysfillrect sysimgblt fb_sys_fops pps_core meson_canvas meson_gxbb_wdt
> [ 148.166345] CPU: 1 PID: 580 Comm: bash Tainted: G W
> 4.20.0_2 #1
> [ 148.173498] Hardware name: amlogic p212/p212, BIOS
> 2019.01-rc2-00176-gf97c49d6a2 01/10/2019
> [ 148.181780] pstate: 60400085 (nZCv daIf +PAN -UAO)
> [ 148.186527] pc : meson_mmc_irq+0x210/0x2a0
> [ 148.190586] lr : __free_irq+0x184/0x318
> [ 148.194370] sp : ffff0000108efac0
> [ 148.197647] x29: ffff0000108efac0 x28: ffff800005cfb600
> [ 148.202908] x27: 0000000000000000 x26: 0000000000000000
> [ 148.208169] x25: 0000000000000000 x24: ffff8000105e8228
> [ 148.213431] x23: 0000000000000013 x22: ffff8000105e8358
> [ 148.218692] x21: ffff800005e61f00 x20: ffff8000105e8200
> [ 148.223953] x19: ffff800005e61f00 x18: 0000000000000000
> [ 148.229214] x17: 0000000000000000 x16: 0000000000000000
> [ 148.234476] x15: ffffffffffffffff x14: 6d6d2e3030303437
> [ 148.239737] x13: 3030642f6270612e x12: 0000000000000040
> [ 148.244998] x11: 0000000000000228 x10: 0000000000000040
> [ 148.250259] x9 : ffff000009fa9de8 x8 : ffff000009fa9de0
> [ 148.255521] x7 : ffff800007e7e050 x6 : 0000000000000000
> [ 148.260782] x5 : ffff800007e7df90 x4 : 0000000000000000
> [ 148.266043] x3 : 0000000000000000 x2 : ffff000008b90080
> [ 148.271304] x1 : ffff800005e61f00 x0 : 0000000000000000
> [ 148.276566] Call trace:
> [ 148.278984] meson_mmc_irq+0x210/0x2a0
> [ 148.282692] __free_irq+0x184/0x318
> [ 148.286142] free_irq+0x40/0x80
> [ 148.289247] meson_mmc_remove+0x48/0x190
> [ 148.293130] platform_drv_remove+0x30/0x50
> [ 148.297190] device_release_driver_internal+0x1b0/0x248
> [ 148.302357] device_release_driver+0x28/0x38
> [ 148.306583] unbind_store+0xdc/0x148
> [ 148.310119] drv_attr_store+0x40/0x58
> [ 148.313743] sysfs_kf_write+0x5c/0x78
> [ 148.317364] kernfs_fop_write+0xe8/0x1e0
> [ 148.321247] __vfs_write+0x60/0x190
> [ 148.324695] vfs_write+0xac/0x1b0
> [ 148.327972] ksys_write+0x6c/0xd0
> [ 148.331250] __arm64_sys_write+0x24/0x30
> [ 148.335133] el0_svc_common+0x94/0xe8
> [ 148.338754] el0_svc_handler+0x38/0x80
> [ 148.342463] el0_svc+0x8/0xc
> [ 148.345308] ---[ end trace eb849c1a635abc72 ]---
> [ 148.350408] meson-gx-mmc d0074000.mmc: Dropping the link to regulator.3
> [ 148.356575] meson-gx-mmc d0074000.mmc: Dropping the link to regulator.1
>
Yes should be fixed in 4.21 by https://lkml.org/lkml/2018/12/6/748.
> Moreover when I bind the eMMC after the unbind, Linux detects it
> properly, its a huge improvement!
> Thank you very much!
>
Good, so I have submitted a slightly modified version of this patch
https://patchwork.kernel.org/patch/10756449/.
--
Remi
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 4+ messages in thread
* Kernel segmentation fault unbinding eMMC on AML-S905X-CC
@ 2019-01-09 22:48 Elie Roudninski
0 siblings, 0 replies; 4+ messages in thread
From: Elie Roudninski @ 2019-01-09 22:48 UTC (permalink / raw)
To: linux-amlogic, linux-mmc
Hello everyone,
I am the owner of an AML-S905X-CC ARM board, also called "Le Potato"
with a full GNU/Linux system running on an SD card using kernel 4.20.
I also bought an eMMC 5.x module on loverpi:
https://www.loverpi.com/collections/libre-computer-project/products/libre-computer-board-emmc-5-x-module?variant=4173557729
I tried to use the eMMC module in order to put the system on it. Once
the system is booted from SD card, i plugged the eMMC module and tried
to detect it using the same command used by lc_redetect_emmc script
provided by libre computer:
> $ echo -n d0074000.mmc > /sys/bus/platform/drivers/meson-gx-mmc/unbind
> $ echo -n d0074000.mmc > /sys/bus/platform/drivers/meson-gx-mmc/bind
On the first command (the unbind) i get a kernel segfault:
------------------------------ 8< ---------------------------
[ 443.872211] Unable to handle kernel paging request at virtual
address fffe0000138a03c8
[ 443.874469] Mem abort info:
[ 443.877228] ESR = 0x96000044
[ 443.880246] Exception class = DABT (current EL), IL = 32 bits
[ 443.886109] SET = 0, FnV = 0
[ 443.889128] EA = 0, S1PTW = 0
[ 443.892232] Data abort info:
[ 443.895079] ISV = 0, ISS = 0x00000044
[ 443.898874] CM = 0, WnR = 1
[ 443.901807] [fffe0000138a03c8] address between user and kernel address ranges
[ 443.908882] Internal error: Oops: 96000044 [#1] SMP
[ 443.913711] Modules linked in: cfg80211 rfkill 8021q garp mrp stp
llc dw_hdmi_cec meson_dw_hdmi dw_hdmi meson_drm drm_kms_helper
dwmac_generic drm dwmac_meson8b stmmac_platform
drm_panel_orientation_quirks crc32_ce stmmac syscopyarea crct10dif_ce
sysfi
llrect sysimgblt ptp fb_sys_fops pps_core meson_ir rc_core meson_gxbb_wdt
[ 443.942176] CPU: 0 PID: 467 Comm: bash Tainted: G W
4.19.13_1 #1
[ 443.949416] Hardware name: amlogic p212/p212, BIOS
2019.01-rc2-00176-gf97c49d6a2 01/02/2019
[ 443.957699] pstate: 00400085 (nzcv daIf +PAN -UAO)
[ 443.962450] pc : queued_spin_lock_slowpath+0x228/0x2d0
[ 443.967533] lr : meson_mmc_irq+0x290/0x2a0
[ 443.971583] sp : ffff00000fb0fa00
[ 443.974860] x29: ffff00000fb0fa00 x28: ffff8000105ef118
[ 443.980121] x27: ffff8000105ef118 x26: 0000000000000000
[ 443.985382] x25: 0000000000000000 x24: ffff800010633728
[ 443.990643] x23: 0000000000000013 x22: ffff800010633858
[ 443.995905] x21: ffff800005fab800 x20: 000000006b6b6b6b
[ 444.001166] x19: ffff800005fab820 x18: 0000000000000000
[ 444.006427] x17: 0000000000000000 x16: 0000000000000000
[ 444.011688] x15: ffffffffffffffff x14: 6d6d2e3030303437
[ 444.016950] x13: ff00000000000000 x12: 0000000000000040
[ 444.022211] x11: 0000000000000228 x10: 0000000000000020
[ 444.027472] x9 : 0000000000000000 x8 : 0000000000040000
[ 444.032734] x7 : ffff000009f24460 x6 : ffff80007fc7de80
[ 444.037995] x5 : ffff000009f42518 x4 : ffff80007fc7de80
[ 444.043256] x3 : ffff000009f236c8 x2 : ffff00000995de80
[ 444.048517] x1 : ffff00000995deb0 x0 : ffff80007fc7de88
[ 444.053781] Process bash (pid: 467, stack limit = 0x0000000086539f6f)
[ 444.060161] Call trace:
[ 444.062580] queued_spin_lock_slowpath+0x228/0x2d0
[ 444.067322] meson_mmc_irq+0x290/0x2a0
[ 444.071032] __free_irq+0x184/0x318
[ 444.074480] free_irq+0x40/0x80
[ 444.077586] devm_irq_release+0x24/0x30
[ 444.081382] release_nodes+0x1e0/0x2e0
[ 444.085089] devres_release_all+0x60/0x88
[ 444.089057] device_release_driver_internal+0x1c8/0x248
[ 444.094231] device_release_driver+0x28/0x38
[ 444.098459] unbind_store+0xdc/0x148
[ 444.101994] drv_attr_store+0x40/0x58
[ 444.105627] sysfs_kf_write+0x5c/0x78
[ 444.109240] kernfs_fop_write+0xe8/0x1e0
[ 444.113126] __vfs_write+0x60/0x190
[ 444.116570] vfs_write+0xac/0x1b0
[ 444.119848] ksys_write+0x6c/0xd0
[ 444.123125] __arm64_sys_write+0x24/0x30
[ 444.127015] el0_svc_common+0x94/0xe8
[ 444.130629] el0_svc_handler+0x38/0x80
[ 444.134340] el0_svc+0x8/0xc
[ 444.137187] Code: d37c0401 910020c0 8b010041 f865d8e5 (f8256826)
[ 444.143223] ---[ end trace 62541ec2ffe020f2 ]---
Segmentation fault
------------------------------ 8< ---------------------------
I also tried this patch https://patchwork.kernel.org/cover/10739097/
as advised by narmstrong without any luck.
I also tried only removing the "non-removable" property also without luck.
With or without those patches, when i plug the eMMC nothing happened,
nothing in dmesg or any mmc device appearing in /dev
It must also be noted that the eMMC is shipped with a system that work
properly so some working code must exist somewhere :)
Regards,
Elie
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-01-10 18:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <5c3744c0.1c69fb81.93dc1.2aff@mx.google.com>
2019-01-10 14:08 ` Kernel segmentation fault unbinding eMMC on AML-S905X-CC Remi Pommarel
2019-01-10 16:43 ` Elie Roudninski
2019-01-10 18:42 ` Remi Pommarel
2019-01-09 22:48 Elie Roudninski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).