Re: [PATCH net] net: fman: Use physical address for userspace interfaces

From: Sean Anderson
Date: Tue Oct 18 2022 - 17:49:04 EST




On 10/18/22 5:39 PM, Andrew Lunn wrote:
> On Tue, Oct 18, 2022 at 01:33:55PM -0500, Andrew Davis wrote:
>> On 10/18/22 12:37 PM, Sean Anderson wrote:
>> > Hi Andrew,
>> >
>> > On 10/18/22 1:22 PM, Andrew Lunn wrote:
>> > > On Mon, Oct 17, 2022 at 12:28:06PM -0400, Sean Anderson wrote:
>> > > > For whatever reason, the address of the MAC is exposed to userspace in
>> > > > several places. We need to use the physical address for this purpose to
>> > > > avoid leaking information about the kernel's memory layout, and to keep
>> > > > backwards compatibility.
>> > >
>> > > How does this keep backwards compatibility? Whatever is in user space
>> > > using this virtual address expects a virtual address. If it now gets a
>> > > physical address it will probably do the wrong thing. Unless there is
>> > > a one to one mapping, and you are exposing virtual addresses anyway.
>> > >
>> > > If you are going to break backwards compatibility Maybe it would be
>> > > better to return 0xdeadbeef? Or 0?
>> > >
>> > > Andrew
>> > >
>> >
>> > The fixed commit was added in v6.1-rc1 and switched from physical to
>> > virtual. So this is effectively a partial revert to the previous
>> > behavior (but keeping the other changes). See [1] for discussion.
>
> Please don't assume a reviewer has seen the previous
> discussion. Include the background in the commit message to help such
> reviewers.
>
>> >
>> > --Sean
>> >
>> > [1] https://lore.kernel.org/netdev/20220902215737.981341-1-sean.anderson@xxxxxxxx/T/#md5c6b66bc229c09062d205352a7d127c02b8d262
>>
>> I see it asked in that thread, but not answered. Why are you exposing
>> "physical" addresses to userspace? There should be no reason for that.
>
> I don't see anything about needing physical or virtual address in the
> discussion, or i've missed it.

Well, Madalin originally added this, so perhaps she has some insight.

I have no idea why we set the IFMAP stuff, since that seems like it's for
PCMCIA. Not sure about sysfs either.

> If nobody knows why it is needed, either use an obfusticated value, or
> remove it all together. If somebody/something does need it, they will
> report the regression.

I'd rather apply this (or v2 of this) and then remove the "feature" in
follow-up.

--Sean