Re: Problem with NETIF_F_HIGHDMA

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Corey Minyard <[email protected]> writes:

> I was looking at a problem with a new system we are trying to get up and
> running.  It has a 32-bit only PCI network device, but is a 64-bit
> (x86_64) system.  Looking at the code for NETIF_F_HIGHDMA (which, when
> not set on a PCI network device, means that it cannot do 64-bit
> accesses) in net/core/dev.c, it seems wrong to me.

> It is dependent on HIGHMEM, but HIGHMEM has nothing to do with 32/64 bit
> accesses.  On 64-bit systems, HIGHMEM is not set, thus the network code
> will pass any address (including those >32bits) to the driver.  Plus,
> highmem on 32-bit systems may very well be 32-bit accessible, possibly
> resulting in unecessary copies.  AFAICT, the current code will only work
> with i386 and PAE and is sub-optimal.

x86-64 uses the PCI DMA API to handle this. NETIF_F_HIGHDMA is only
a i386 specific hack, mostly to work around the fact that not all
memory might be accessible from the CPU and thus break PIO drivers.
This problem doesn't exist on 64bit.

-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux