[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220321160627.6003e4e7@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
Date: Mon, 21 Mar 2022 16:06:27 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: Arnd Bergmann <arnd@...nel.org>
Cc: Krzysztof HaĆasa <khalasa@...p.pl>,
Andrew Stanley-Jones <asj@...n.com>,
Rob Braun <bbraun@....com>, Michael Graff <explorer@....com>,
Matt Thomas <matt@...-software.com>,
Krzysztof Halasa <khc@...waw.pl>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: Re: Is drivers/net/wan/lmc dead?
On Mon, 21 Mar 2022 23:10:32 +0100 Arnd Bergmann wrote:
> On Mon, Mar 21, 2022 at 10:40 PM Jakub Kicinski <kuba@...nel.org> wrote:
> > The driver for LAN Media WAN interfaces spews build warnings on
> > microblaze.
> >
> > CCing usual suspects and people mentioned as authors in the source code.
> >
> > As far as I can tell it has no maintainer.
> >
> > It has also received not received a single functional change that'd
> > indicate someone owns this HW since the beginning of the git era.
> >
> > Can we remove this driver or should we invest effort into fixing it?
>
> I have not seen the exact error, but I suspect the problem is that
> microblaze selects CONFIG_VIRT_TO_BUS without actually
> providing those interfaces. The easy workaround would be to
> have microblaze not select that symbol.
FWIW the warning is that virt_to_bus() discards the __iomem qualifier.
I think it's a macro on most platforms but not microblaze.
Anyway, some approximation of "VIRT_TO_BUS on mircoblaze is broken"
sounds right.
> Drivers using virt_to_bus() are inherently nonportable because
> they don't work on architectures that use an IOMMU or swiotlb,
> or that require cache maintenance for DMA operations.
>
> $ git grep -wl virt_to_bus drivers/
> drivers/atm/ambassador.c
> drivers/atm/firestream.c
> drivers/atm/horizon.c
> drivers/atm/zatm.c
> drivers/block/swim3.c
> drivers/gpu/drm/mga/mga_dma.c
> drivers/net/appletalk/ltpc.c
> drivers/net/ethernet/amd/au1000_eth.c
> drivers/net/ethernet/amd/ni65.c
> drivers/net/ethernet/apple/bmac.c
> drivers/net/ethernet/apple/mace.c
> drivers/net/ethernet/dec/tulip/de4x5.c
> drivers/net/ethernet/i825xx/82596.c
> drivers/net/ethernet/i825xx/lasi_82596.c
> drivers/net/ethernet/i825xx/lib82596.c
> drivers/net/hamradio/dmascc.c
> drivers/net/wan/cosa.c
> drivers/net/wan/lmc/lmc_main.c
> drivers/net/wan/z85230.c
> drivers/scsi/3w-xxxx.c
> drivers/scsi/a2091.c
> drivers/scsi/a3000.c
> drivers/scsi/dpt_i2o.c
> drivers/scsi/gvp11.c
> drivers/scsi/mvme147.c
> drivers/scsi/qla1280.c
> drivers/tty/serial/cpm_uart/cpm_uart_cpm2.c
> drivers/vme/bridges/vme_ca91cx42.c
>
> Among the drivers/net/wan/ drivers, I think lmc is actually
> one of the newer pieces of hardware, most of the other ones
> appear to even predate PCI.
You know what's even newer than lmc? Me :S This HW is so old
many of us have never interacted with these technologies directly.
How do we start getting rid of this stuff? Should we send out patches
to delete anything that's using virt_to_bus() under net|atm and see
which ones don't get shot down?
Powered by blists - more mailing lists