All tests using pxa2xx_mmc to access mmc cards on pxa2xx platforms
such as borzoi fail starting with commit a2e1753b80 ("memory: prevent
dma-reentracy issues"). Disable reentrancy guard to fix the problem.
Fixes: a2e1753b80 ("memory: prevent dma-reentracy issues")
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
hw/sd/pxa2xx_mmci.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c
index 5e8ea69188..27ae8f2888 100644
--- a/hw/sd/pxa2xx_mmci.c
+++ b/hw/sd/pxa2xx_mmci.c
@@ -555,6 +555,8 @@ static void pxa2xx_mmci_instance_init(Object *obj)
qdev_init_gpio_out_named(dev, &s->rx_dma, "rx-dma", 1);
qdev_init_gpio_out_named(dev, &s->tx_dma, "tx-dma", 1);
+ s->iomem.disable_reentrancy_guard = true;
+
qbus_init(&s->sdbus, sizeof(s->sdbus),
TYPE_PXA2XX_MMCI_BUS, DEVICE(obj), "sd-bus");
}
--
2.39.2
On Wed, 13 Dec 2023 at 01:49, Guenter Roeck <linux@roeck-us.net> wrote:
>
> All tests using pxa2xx_mmc to access mmc cards on pxa2xx platforms
> such as borzoi fail starting with commit a2e1753b80 ("memory: prevent
> dma-reentracy issues"). Disable reentrancy guard to fix the problem.
>
> Fixes: a2e1753b80 ("memory: prevent dma-reentracy issues")
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> hw/sd/pxa2xx_mmci.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c
> index 5e8ea69188..27ae8f2888 100644
> --- a/hw/sd/pxa2xx_mmci.c
> +++ b/hw/sd/pxa2xx_mmci.c
> @@ -555,6 +555,8 @@ static void pxa2xx_mmci_instance_init(Object *obj)
> qdev_init_gpio_out_named(dev, &s->rx_dma, "rx-dma", 1);
> qdev_init_gpio_out_named(dev, &s->tx_dma, "tx-dma", 1);
>
> + s->iomem.disable_reentrancy_guard = true;
> +
All patches that set this flag should include a comment which
explains what the device access path that triggers the reentrancy
is, please.
thanks
-- PMM
On 12/13/23 09:12, Peter Maydell wrote:
> On Wed, 13 Dec 2023 at 01:49, Guenter Roeck <linux@roeck-us.net> wrote:
>>
>> All tests using pxa2xx_mmc to access mmc cards on pxa2xx platforms
>> such as borzoi fail starting with commit a2e1753b80 ("memory: prevent
>> dma-reentracy issues"). Disable reentrancy guard to fix the problem.
>>
>> Fixes: a2e1753b80 ("memory: prevent dma-reentracy issues")
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>> hw/sd/pxa2xx_mmci.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c
>> index 5e8ea69188..27ae8f2888 100644
>> --- a/hw/sd/pxa2xx_mmci.c
>> +++ b/hw/sd/pxa2xx_mmci.c
>> @@ -555,6 +555,8 @@ static void pxa2xx_mmci_instance_init(Object *obj)
>> qdev_init_gpio_out_named(dev, &s->rx_dma, "rx-dma", 1);
>> qdev_init_gpio_out_named(dev, &s->tx_dma, "tx-dma", 1);
>>
>> + s->iomem.disable_reentrancy_guard = true;
>> +
>
> All patches that set this flag should include a comment which
> explains what the device access path that triggers the reentrancy
> is, please.
>
No idea what that would be, sorry. I noticed that the reentrancy guard
causes the affected emulations to fail, but I have no understanding or
knowledge of the code itself. NP if this is insufficient to apply the patch.
I am carrying it locally anyway, so for me it doesn't make a difference.
Maybe someone with better understanding of the underlying code can pick
it up at some point in the future and provide the necessary context.
Thanks,
Guenter
Hi Guenter,
On 13/12/23 18:12, Peter Maydell wrote:
> On Wed, 13 Dec 2023 at 01:49, Guenter Roeck <linux@roeck-us.net> wrote:
>>
>> All tests using pxa2xx_mmc to access mmc cards on pxa2xx platforms
>> such as borzoi fail starting with commit a2e1753b80 ("memory: prevent
>> dma-reentracy issues"). Disable reentrancy guard to fix the problem.
>>
>> Fixes: a2e1753b80 ("memory: prevent dma-reentracy issues")
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>> hw/sd/pxa2xx_mmci.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c
>> index 5e8ea69188..27ae8f2888 100644
>> --- a/hw/sd/pxa2xx_mmci.c
>> +++ b/hw/sd/pxa2xx_mmci.c
>> @@ -555,6 +555,8 @@ static void pxa2xx_mmci_instance_init(Object *obj)
>> qdev_init_gpio_out_named(dev, &s->rx_dma, "rx-dma", 1);
>> qdev_init_gpio_out_named(dev, &s->tx_dma, "tx-dma", 1);
>>
>> + s->iomem.disable_reentrancy_guard = true;
>> +
>
> All patches that set this flag should include a comment which
> explains what the device access path that triggers the reentrancy
> is, please.
Can we get a reproducer or backtrace please?
On 12/13/23 09:19, Philippe Mathieu-Daudé wrote:
> Hi Guenter,
>
> On 13/12/23 18:12, Peter Maydell wrote:
>> On Wed, 13 Dec 2023 at 01:49, Guenter Roeck <linux@roeck-us.net> wrote:
>>>
>>> All tests using pxa2xx_mmc to access mmc cards on pxa2xx platforms
>>> such as borzoi fail starting with commit a2e1753b80 ("memory: prevent
>>> dma-reentracy issues"). Disable reentrancy guard to fix the problem.
>>>
>>> Fixes: a2e1753b80 ("memory: prevent dma-reentracy issues")
>>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>>> ---
>>> hw/sd/pxa2xx_mmci.c | 2 ++
>>> 1 file changed, 2 insertions(+)
>>>
>>> diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c
>>> index 5e8ea69188..27ae8f2888 100644
>>> --- a/hw/sd/pxa2xx_mmci.c
>>> +++ b/hw/sd/pxa2xx_mmci.c
>>> @@ -555,6 +555,8 @@ static void pxa2xx_mmci_instance_init(Object *obj)
>>> qdev_init_gpio_out_named(dev, &s->rx_dma, "rx-dma", 1);
>>> qdev_init_gpio_out_named(dev, &s->tx_dma, "tx-dma", 1);
>>>
>>> + s->iomem.disable_reentrancy_guard = true;
>>> +
>>
>> All patches that set this flag should include a comment which
>> explains what the device access path that triggers the reentrancy
>> is, please.
>
> Can we get a reproducer or backtrace please?
qemu-system-arm: warning: Blocked re-entrant IO on MemoryRegion: pxa2xx-mmci at addr: 0x40
[ 0.770246] mmc0: invalid bus width
[ 0.770962] mmc0: error -22 whilst initialising SD card
[ 0.828179] mmc0: invalid bus width
[ 0.828445] mmc0: error -22 whilst initialising SD card
with:
qemu-system-arm -M borzoi -kernel arch/arm/boot/zImage -no-reboot -snapshot \
-device sd-card,drive=d0 -drive file=/tmp/flash,format=raw,if=none,id=d0 \
-usb -device usb-net,netdev=net0 -netdev user,id=net0 \
--append "root=/dev/mmcblk0 rootwait console=ttyS0"
Guenter
On 13/12/23 19:04, Guenter Roeck wrote:
> On 12/13/23 09:19, Philippe Mathieu-Daudé wrote:
>> Hi Guenter,
>>
>> On 13/12/23 18:12, Peter Maydell wrote:
>>> On Wed, 13 Dec 2023 at 01:49, Guenter Roeck <linux@roeck-us.net> wrote:
>>>>
>>>> All tests using pxa2xx_mmc to access mmc cards on pxa2xx platforms
>>>> such as borzoi fail starting with commit a2e1753b80 ("memory: prevent
>>>> dma-reentracy issues"). Disable reentrancy guard to fix the problem.
>>>>
>>>> Fixes: a2e1753b80 ("memory: prevent dma-reentracy issues")
>>>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>>>> ---
>>>> hw/sd/pxa2xx_mmci.c | 2 ++
>>>> 1 file changed, 2 insertions(+)
>>>>
>>>> diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c
>>>> index 5e8ea69188..27ae8f2888 100644
>>>> --- a/hw/sd/pxa2xx_mmci.c
>>>> +++ b/hw/sd/pxa2xx_mmci.c
>>>> @@ -555,6 +555,8 @@ static void pxa2xx_mmci_instance_init(Object *obj)
>>>> qdev_init_gpio_out_named(dev, &s->rx_dma, "rx-dma", 1);
>>>> qdev_init_gpio_out_named(dev, &s->tx_dma, "tx-dma", 1);
>>>>
>>>> + s->iomem.disable_reentrancy_guard = true;
>>>> +
>>>
>>> All patches that set this flag should include a comment which
>>> explains what the device access path that triggers the reentrancy
>>> is, please.
>>
>> Can we get a reproducer or backtrace please?
>
> qemu-system-arm: warning: Blocked re-entrant IO on MemoryRegion:
> pxa2xx-mmci at addr: 0x40
> [ 0.770246] mmc0: invalid bus width
> [ 0.770962] mmc0: error -22 whilst initialising SD card
> [ 0.828179] mmc0: invalid bus width
> [ 0.828445] mmc0: error -22 whilst initialising SD card
>
> with:
>
> qemu-system-arm -M borzoi -kernel arch/arm/boot/zImage -no-reboot
> -snapshot \
> -device sd-card,drive=d0 -drive
> file=/tmp/flash,format=raw,if=none,id=d0 \
> -usb -device usb-net,netdev=net0 -netdev user,id=net0 \
> --append "root=/dev/mmcblk0 rootwait console=ttyS0"
Thank you, I'll have a look after Christmas.
Regards,
Phil.
© 2016 - 2025 Red Hat, Inc.