lkml.org 
[lkml]   [2009]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] net: Add support for the OpenCores 10/100 Mbps Ethernet MAC.
    * David Miller wrote:
    > From: Andrey Panin <pazke@donpac.ru>
    > Date: Tue, 24 Mar 2009 14:13:59 +0300
    >
    > > On 083, 03 24, 2009 at 11:18:43AM +0100, Thierry Reding wrote:
    > > > +static void ethoc_copy_to_io(void __iomem *dest, struct sk_buff *src)
    > > > +{
    > > > + size_t size = (src->len & 0x3) ? (src->len & ~0x3) + 4 : src->len;
    > > > + u8 buffer[ETHOC_BUFSIZ];
    > >
    > > Using 1536 bytes of stack is not very nice.
    >
    > Agreed, this stuff must be fixed.
    >
    > You could use skb_copy_and_csum_dev() directly into your buffer, then
    > pad out the end of the buffer with a memset() call, if necessary.
    >-
    > Actually, no you can't...
    >
    > You should not be using memcpy() to store things into I/O memory.
    > That's what memcpy_io() is for.
    >
    > I think because of all of these special padding cases and the use
    > of I/O memory instead of DMA, there is no real gain by using
    > skb_copy_and_csum_dev() in this driver.

    Actually these special padding cases are only necessary for the FPGA interface
    we use and have nothing to do with the OpenCores Ethernet MAC itself. The ARM
    memcpy_{to,from}io() functions don't work correctly with my setup because our
    VLIO bridge implementation apparently doesn't handle byte-wise accesses very
    well.

    I can work around that by implementing the memcpy_{to,from}io() functions
    differently, though. That may however break anything else using those
    functions.

    > Just let the network stack checksum the packet, and use memcpy_io() here
    > which is the currect interface for copying data into I/O memory.

    See follow-up patch in reply to the first patch.

    Cheers,
    Thierry



    \
     
     \ /
      Last update: 2009-03-25 15:57    [W:0.047 / U:0.768 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site