lkml.org 
[lkml]   [1999]   [Aug]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [bigmem-patch] 4GB with Linux on IA32
    Date
    > 
    >
    >
    > On Mon, 16 Aug 1999, Kanoj Sarcar wrote:
    > >
    > > As I pointed out before, I don't think rawio is the only case which
    > > breaks.
    > >
    > > I will give you one example of the type of cases that I am talking about.
    > > In drivers/char/bttv.c, VIDIOCSFBUF ioctl seems to be setting the "vidadr"
    > > to a kernel virtual address from the physical address present in the
    > > user's pte. This will not work for bigmem pages.
    >
    > This is exactly why I have always been adamant that people should NOT do
    > direct IO and try to walk the page tables. But people have ignored me, and
    > quite frankly, those drivers should just be broken. The painful part is
    > finding out which of them do it, but once done they should just be broken
    > wrt bigmem, no questions asked.
    >
    > Linus
    >

    The *only* way to prevent this really is to make code like this uncompilable.
    That is, prevent definitions like pte_page, PAGE_OFFSET, __va, __pa etc
    from being in header files; rather make the driver/fs code invoke specific
    routines that do virt-to-phys etc translations. Granted, this might be a
    little costlier, but in most cases, this extra cost will be in driver code
    that is not performance sensistive anyway. There really should be some
    ddi/dki that drivers have to follow.

    Btw, my vote goes for finding and fixing all such driver code, instead
    of just breaking them for bigmem machines.

    Kanoj

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.rutgers.edu
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:53    [W:3.703 / U:1.436 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site