diff mbox

mmc: sunxi: remove output of virtual base address

Message ID 20180717100958.12042-1-andre.przywara@arm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Andre Przywara July 17, 2018, 10:09 a.m. UTC
Recent Linux versions refuse to print actual virtual kernel addresses,
to not give a hint about the location of the kernel in a randomized virtual
address space. This affects the output of the sunxi MMC controller
driver, which now produces the rather uninformative line:

[    1.482660] sunxi-mmc 1c0f000.mmc: base:0x(____ptrval____) irq:8

Since the virtual base address is not really interesting in the first
place, let's just drop this value. We have the physical address as part
of the DT node name, which is way more useful for debugging purposes.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
 drivers/mmc/host/sunxi-mmc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Maxime Ripard July 17, 2018, 11:43 a.m. UTC | #1
1;5202;0c
On Tue, Jul 17, 2018 at 11:09:58AM +0100, Andre Przywara wrote:
> Recent Linux versions refuse to print actual virtual kernel addresses,
> to not give a hint about the location of the kernel in a randomized virtual
> address space. This affects the output of the sunxi MMC controller
> driver, which now produces the rather uninformative line:
> 
> [    1.482660] sunxi-mmc 1c0f000.mmc: base:0x(____ptrval____) irq:8
> 
> Since the virtual base address is not really interesting in the first
> place, let's just drop this value. We have the physical address as part
> of the DT node name, which is way more useful for debugging purposes.
> 
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> ---
>  drivers/mmc/host/sunxi-mmc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c
> index 8e7f3e35ee3d..811b08d2d0f2 100644
> --- a/drivers/mmc/host/sunxi-mmc.c
> +++ b/drivers/mmc/host/sunxi-mmc.c
> @@ -1407,7 +1407,7 @@ static int sunxi_mmc_probe(struct platform_device *pdev)
>  	if (ret)
>  		goto error_free_dma;
>  
> -	dev_info(&pdev->dev, "base:0x%p irq:%u\n", host->reg_base, host->irq);
> +	dev_info(&pdev->dev, "irq:%u\n", host->irq);

Can't we just remove it? It doesn't look like it brings much value anyway.

Maxime
Andre Przywara July 18, 2018, 11:19 a.m. UTC | #2
Hi,

On 17/07/18 12:43, Maxime Ripard wrote:
> 1;5202;0c
> On Tue, Jul 17, 2018 at 11:09:58AM +0100, Andre Przywara wrote:
>> Recent Linux versions refuse to print actual virtual kernel addresses,
>> to not give a hint about the location of the kernel in a randomized virtual
>> address space. This affects the output of the sunxi MMC controller
>> driver, which now produces the rather uninformative line:
>>
>> [    1.482660] sunxi-mmc 1c0f000.mmc: base:0x(____ptrval____) irq:8
>>
>> Since the virtual base address is not really interesting in the first
>> place, let's just drop this value. We have the physical address as part
>> of the DT node name, which is way more useful for debugging purposes.
>>
>> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
>> ---
>>  drivers/mmc/host/sunxi-mmc.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c
>> index 8e7f3e35ee3d..811b08d2d0f2 100644
>> --- a/drivers/mmc/host/sunxi-mmc.c
>> +++ b/drivers/mmc/host/sunxi-mmc.c
>> @@ -1407,7 +1407,7 @@ static int sunxi_mmc_probe(struct platform_device *pdev)
>>  	if (ret)
>>  		goto error_free_dma;
>>  
>> -	dev_info(&pdev->dev, "base:0x%p irq:%u\n", host->reg_base, host->irq);
>> +	dev_info(&pdev->dev, "irq:%u\n", host->irq);
> 
> Can't we just remove it? It doesn't look like it brings much value anyway.

Yes, the IRQ value is the virtual Linux number, so equally
non-informative. But this line is the only info message left from the
mmc driver, so since we have scary "deferring probe" messages before,
I'd rather leave this "success!" message in, to help debugging:
# dmesg | grep mmc
[    1.314211] sunxi-mmc 1c0f000.mmc: could not find pctldev for node
/soc/pinctrl@1c20800/mmc0-pins, deferring probe
[    1.324705] sunxi-mmc 1c11000.mmc: could not find pctldev for node
/soc/pinctrl@1c20800/mmc2-pins, deferring probe
[    1.737310] sunxi-mmc 1c0f000.mmc: irq:6
[    1.771255] sunxi-mmc 1c11000.mmc: irq:7
[    1.787003] mmc0: new high speed SDHC card at address 1234
[    1.796029] mmcblk0: mmc0:1234 SA08G 7.21 GiB
[    1.809093]  mmcblk0: p1 p2 p3
....

We could just say something like: "initialized.". It would be even more
useful if we could print the type of MMC: SD card, SDIO, eMMC, but apart
from eMMC vs. MMC0/1 for the A64 we don't have this information (not
even the index number) at this level, I think.

Cheers,
Andre.
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Robin Murphy July 18, 2018, 12:25 p.m. UTC | #3
On 18/07/18 12:19, Andre Przywara wrote:
> Hi,
> 
> On 17/07/18 12:43, Maxime Ripard wrote:
>> 1;5202;0c
>> On Tue, Jul 17, 2018 at 11:09:58AM +0100, Andre Przywara wrote:
>>> Recent Linux versions refuse to print actual virtual kernel addresses,
>>> to not give a hint about the location of the kernel in a randomized virtual
>>> address space. This affects the output of the sunxi MMC controller
>>> driver, which now produces the rather uninformative line:
>>>
>>> [    1.482660] sunxi-mmc 1c0f000.mmc: base:0x(____ptrval____) irq:8
>>>
>>> Since the virtual base address is not really interesting in the first
>>> place, let's just drop this value. We have the physical address as part
>>> of the DT node name, which is way more useful for debugging purposes.
>>>
>>> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
>>> ---
>>>   drivers/mmc/host/sunxi-mmc.c | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c
>>> index 8e7f3e35ee3d..811b08d2d0f2 100644
>>> --- a/drivers/mmc/host/sunxi-mmc.c
>>> +++ b/drivers/mmc/host/sunxi-mmc.c
>>> @@ -1407,7 +1407,7 @@ static int sunxi_mmc_probe(struct platform_device *pdev)
>>>   	if (ret)
>>>   		goto error_free_dma;
>>>   
>>> -	dev_info(&pdev->dev, "base:0x%p irq:%u\n", host->reg_base, host->irq);
>>> +	dev_info(&pdev->dev, "irq:%u\n", host->irq);
>>
>> Can't we just remove it? It doesn't look like it brings much value anyway.
> 
> Yes, the IRQ value is the virtual Linux number, so equally
> non-informative. But this line is the only info message left from the
> mmc driver, so since we have scary "deferring probe" messages before,
> I'd rather leave this "success!" message in, to help debugging:
> # dmesg | grep mmc
> [    1.314211] sunxi-mmc 1c0f000.mmc: could not find pctldev for node
> /soc/pinctrl@1c20800/mmc0-pins, deferring probe
> [    1.324705] sunxi-mmc 1c11000.mmc: could not find pctldev for node
> /soc/pinctrl@1c20800/mmc2-pins, deferring probe
> [    1.737310] sunxi-mmc 1c0f000.mmc: irq:6
> [    1.771255] sunxi-mmc 1c11000.mmc: irq:7
> [    1.787003] mmc0: new high speed SDHC card at address 1234

That seems like a pretty effective success message right there ;)

FWIW, I find the easiest tool for sanity-checking driver probe status 
(if it's not already obvious by stuff working correctly, as above) is 
/proc/interrupts, followed if necessary by digging into 
/sys/bus/*/drivers/ for the canonical state of things.

If anything I'd argue for the "scary" probe-deferral messages to be 
downgraded to dev_dbg, since the average user shouldn't need to care.

Robin.

> [    1.796029] mmcblk0: mmc0:1234 SA08G 7.21 GiB
> [    1.809093]  mmcblk0: p1 p2 p3
> ....
> 
> We could just say something like: "initialized.". It would be even more
> useful if we could print the type of MMC: SD card, SDIO, eMMC, but apart
> from eMMC vs. MMC0/1 for the A64 we don't have this information (not
> even the index number) at this level, I think.
> 
> Cheers,
> Andre.
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Maxime Ripard July 18, 2018, 12:33 p.m. UTC | #4
On Wed, Jul 18, 2018 at 12:19:41PM +0100, Andre Przywara wrote:
> Hi,
> 
> On 17/07/18 12:43, Maxime Ripard wrote:
> > 1;5202;0c
> > On Tue, Jul 17, 2018 at 11:09:58AM +0100, Andre Przywara wrote:
> >> Recent Linux versions refuse to print actual virtual kernel addresses,
> >> to not give a hint about the location of the kernel in a randomized virtual
> >> address space. This affects the output of the sunxi MMC controller
> >> driver, which now produces the rather uninformative line:
> >>
> >> [    1.482660] sunxi-mmc 1c0f000.mmc: base:0x(____ptrval____) irq:8
> >>
> >> Since the virtual base address is not really interesting in the first
> >> place, let's just drop this value. We have the physical address as part
> >> of the DT node name, which is way more useful for debugging purposes.
> >>
> >> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> >> ---
> >>  drivers/mmc/host/sunxi-mmc.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c
> >> index 8e7f3e35ee3d..811b08d2d0f2 100644
> >> --- a/drivers/mmc/host/sunxi-mmc.c
> >> +++ b/drivers/mmc/host/sunxi-mmc.c
> >> @@ -1407,7 +1407,7 @@ static int sunxi_mmc_probe(struct platform_device *pdev)
> >>  	if (ret)
> >>  		goto error_free_dma;
> >>  
> >> -	dev_info(&pdev->dev, "base:0x%p irq:%u\n", host->reg_base, host->irq);
> >> +	dev_info(&pdev->dev, "irq:%u\n", host->irq);
> > 
> > Can't we just remove it? It doesn't look like it brings much value anyway.
> 
> Yes, the IRQ value is the virtual Linux number, so equally
> non-informative. But this line is the only info message left from the
> mmc driver, so since we have scary "deferring probe" messages before,
> I'd rather leave this "success!" message in, to help debugging:
> # dmesg | grep mmc
> [    1.314211] sunxi-mmc 1c0f000.mmc: could not find pctldev for node
> /soc/pinctrl@1c20800/mmc0-pins, deferring probe
> [    1.324705] sunxi-mmc 1c11000.mmc: could not find pctldev for node
> /soc/pinctrl@1c20800/mmc2-pins, deferring probe
> [    1.737310] sunxi-mmc 1c0f000.mmc: irq:6
> [    1.771255] sunxi-mmc 1c11000.mmc: irq:7
> [    1.787003] mmc0: new high speed SDHC card at address 1234
> [    1.796029] mmcblk0: mmc0:1234 SA08G 7.21 GiB
> [    1.809093]  mmcblk0: p1 p2 p3
> ....
>
> We could just say something like: "initialized.".

Then maybe that what we should have, it's much more informative than a
interrupt number that's supposed to meant that the driver was probed
sucessfully :)

> It would be even more useful if we could print the type of MMC: SD
> card, SDIO, eMMC, but apart from eMMC vs. MMC0/1 for the A64 we
> don't have this information (not even the index number) at this
> level, I think.

My understanding is that you don't have access to that information at
probe time. Once the host is probed, the MMC device is going to be
discovered, and only then you'll be able to identify which card is
connected on the other side.

Maxime
diff mbox

Patch

diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c
index 8e7f3e35ee3d..811b08d2d0f2 100644
--- a/drivers/mmc/host/sunxi-mmc.c
+++ b/drivers/mmc/host/sunxi-mmc.c
@@ -1407,7 +1407,7 @@  static int sunxi_mmc_probe(struct platform_device *pdev)
 	if (ret)
 		goto error_free_dma;
 
-	dev_info(&pdev->dev, "base:0x%p irq:%u\n", host->reg_base, host->irq);
+	dev_info(&pdev->dev, "irq:%u\n", host->irq);
 	return 0;
 
 error_free_dma: