01 Feb, 2009

7 commits

  • Base versions handle constant folding now.

    Signed-off-by: Harvey Harrison
    Signed-off-by: David S. Miller

    Harvey Harrison
     
  • Base versions handle constant folding now.

    Signed-off-by: Harvey Harrison
    Acked-by: Inaky Perez-Gonzalez
    Signed-off-by: David S. Miller

    Harvey Harrison
     
  • The recent fix of data corruption when splicing from sockets uses
    memory very inefficiently allocating a new page to copy each chunk of
    linear part of skb. This patch uses the same page until it's full
    (almost) by caching the page in sk_sndmsg_page field.

    With changes from David S. Miller

    Signed-off-by: Jarek Poplawski
    Signed-off-by: David S. Miller

    Jarek Poplawski
     
  • Some platforms (for example pcm037) do not have an EEPROM fitted,
    instead storing their mac address somewhere else. The bootloader
    fetches this and configures the ethernet adapter before the kernel is
    started.

    This patch allows a platform to indicate to the driver via the
    SMSC911X_SAVE_MAC_ADDRESS flag that the mac address has already been
    configured via such a mechanism, and should be saved before resetting
    the chip.

    Signed-off-by: Steve Glendinning
    Acked-by: Sascha Hauer
    Tested-by: Sascha Hauer
    Signed-off-by: David S. Miller

    Steve Glendinning
     
  • On LAN9115/LAN9117/LAN9215/LAN9217, external phys are supported. These
    are usually indicated by a hardware strap which sets an "external PHY
    detected" bit in the HW_CFG register.

    In some cases it is desirable to override this hardware strap and force
    use of either the internal phy or an external PHY. This patch adds
    SMSC911X_FORCE_INTERNAL_PHY and SMSC911X_FORCE_EXTERNAL_PHY flags so a
    platform can indicate this preference via its platform_data.

    Signed-off-by: Steve Glendinning
    Acked-by: Sascha Hauer
    Tested-by: Sascha Hauer
    Signed-off-by: David S. Miller

    Steve Glendinning
     
  • The isr supports shared operation, so register it with the IRQF_SHARED
    flag to indicate this.

    This patch also removes the IRQF_DISABLED flag. This driver doesn't
    need it, and IRQF_DISABLED isn't guaranteed when using shared interrupts.

    Signed-off-by: Steve Glendinning
    Signed-off-by: David S. Miller

    Steve Glendinning
     
  • this patch adds support for the platform_device's resources to indicate
    additional flags to use when registering the irq, for example
    IORESOURCE_IRQ_LOWLEVEL (which corresponds to IRQF_TRIGGER_LOW). These
    should be set in the irq resource flags field.

    Signed-off-by: Steve Glendinning
    Signed-off-by: David S. Miller

    Steve Glendinning
     

31 Jan, 2009

14 commits


30 Jan, 2009

19 commits

  • with current kernels, tulip 21142 ethernet controllers fail to connect
    to a 10Mbps only (i.e. without negotiation-partner) network. It used
    to work in 2.4 kernels. Fix that. Tested on a 21142 Rev 0x11.

    Signed-off-by: Philippe De Muyter
    Signed-off-by: David S. Miller

    Philippe De Muyter
     
  • Fix inverted logic

    Signed-off-by: Roel Kluin
    Signed-off-by: David S. Miller

    Roel Kluin
     
  • commit 0f0ca340e57bd7446855fefd07a64249acf81223 ("phy: power
    management support") caused a regression in the gianfar driver.

    Now phylib turns off PHY power during suspend, and thus WOL
    doesn't work anymore.

    This patch workarounds the issue by enabling wakeup in the MDIO
    device, i.e. just restores the old behaviour for the gianfar
    driver. Note that this way all PHYs on a given MDIO bus won't
    be turned off during suspend, which isn't good from the power
    saving point of view.

    A proper, per netdevice wakeup management support will need
    a bit reworked phylib suspend/resume logic.

    Signed-off-by: Anton Vorontsov
    Signed-off-by: David S. Miller

    Anton Vorontsov
     
  • With a postfix decrement the timeout will reach -1 rather than 0,
    so the warning will not be issued.

    Signed-off-by: Roel Kluin
    Acked-by: Steve Glendinning
    Signed-off-by: David S. Miller

    Roel Kluin
     
  • smsc9420 performs an interrupt signalling test when the interface is
    brought up. The current code mistakenly sets its test flag to false
    AFTER enabling the software interrupt source, making failure quite
    likely.

    This patch changes the code to set the test flag BEFORE enabling
    interrupts. I've also removed an smp_wmb because the following spinlock
    provides an implicit memory barrier.

    Signed-off-by: Steve Glendinning
    Signed-off-by: David S. Miller

    Steve Glendinning
     
  • The commit b31a1d8b41513b96e9c7ec2f68c5734cef0b26a4 ("gianfar: Convert
    gianfar to an of_platform_driver") changes the gianfar's phy id to the
    format like "mdio@xxxx:xx", but uec still uses the old format like
    "xxxxxxxx:xx". For the board whose UEC uses gianfar-mdio like
    MPC8568MDS, the phy can not be attached because of the incompatible
    phy id format. This patch changes uec's phy id to the same format as
    gianfar's.

    Signed-off-by: Haiying Wang
    Signed-off-by: David S. Miller

    Haiying Wang
     
  • As reported by Toralf Förster and Randy Dunlap.

    - http://linuxwimax.org/pipermail/wimax/2009-January/000460.html

    - http://lkml.org/lkml/2009/1/29/279

    The definitions needed for the wimax stack and i2400m driver debug
    infrastructure was, by mistake, compiled depending on CONFIG_DEBUG_FS
    (by them being placed in the debugfs.c files); thus the build broke in
    2.6.29-rc3 when debugging was enabled (CONFIG_WIMAX_DEBUG) and
    DEBUG_FS was disabled.

    These definitions are always needed if debug is enabled at compile
    time (independently of DEBUG_FS being or not enabled), so moving them
    to a file that is always compiled fixes the issue.

    Signed-off-by: Inaky Perez-Gonzalez
    Signed-off-by: David S. Miller

    Inaky Perez-Gonzalez
     
  • For kernel bugzilla #12537:
    http://bugzilla.kernel.org/show_bug.cgi?id=12537

    Free memory.

    Signed-off-by: Daniel Marjamäki
    Signed-off-by: David S. Miller

    Daniel Marjamäki
     
  • Based upon a report from Michael Tokarev :

    Just saw in dmesg:

    ioctl32(kvm:4408): Unknown cmd fd(9) cmd(800454cf){t:'T';sz:4} arg(ffc668e4) on /dev/net/tun

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This patch optimises napi_fraginfo_skb to only copy the bits
    necessary. We also open-code the memcpy so that the alignment
    information is always available to gcc.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • gro: Do not merge paged packets into frag_list

    Bigger is not always better :)

    It was easy to continue to merged packets into frag_list after the
    page array is full. However, this turns out to be worse than LRO
    because frag_list is a much less efficient form of storage than the
    page array. So we're better off stopping the merge and starting
    a new entry with an empty page array.

    In future we can optimise this further by doing frag_list merging
    but making sure that we continue to fill in the page array.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • Unfortunately simplicity isn't always the best. The fraginfo
    interface turned out to be suboptimal. The problem was quite
    obvious. For every packet, we have to copy the headers from
    the frags structure into skb->head, even though for 99% of the
    packets this part is immediately thrown away after the merge.

    LRO didn't have this problem because it directly read the headers
    from the frags structure.

    This patch attempts to address this by creating an interface
    that allows GRO to access the headers in the first frag without
    having to copy it. Because all drivers that use frags place the
    headers in the first frag this optimisation should be enough.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • Currently VLAN still has a bit of common code handling the aftermath
    of GRO that's shared with the common path. This patch moves them
    into shared helpers to reduce code duplication.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • Signed-off-by: Benjamin Zores
    Signed-off-by: David S. Miller

    Benjamin Zores
     
  • This documentation is old. Add a short note to describe why aliases
    are no long necessary, and remove the old contact/edit info.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • It oopsd for me in skb_seq_read. addr2line said it was
    linux-2.6/net/core/skbuff.c:2228, which is this line:

    while (st->frag_idx < skb_shinfo(st->cur_skb)->nr_frags) {

    I added some printks in there and it looks like we hit this:

    } else if (st->root_skb == st->cur_skb &&
    skb_shinfo(st->root_skb)->frag_list) {
    st->cur_skb = skb_shinfo(st->root_skb)->frag_list;
    st->frag_idx = 0;
    goto next_skb;
    }

    Actually I did some testing and added a few printks and found that the
    st->cur_skb->data was 0 and hence the ptr used by iscsi_tcp was null.
    This caused the kernel panic.

    if (abs_offset < block_limit) {
    - *data = st->cur_skb->data + abs_offset;
    + *data = st->cur_skb->data + (abs_offset - st->stepped_offset);

    I enabled the debug_tcp and with a few printks found that the code did
    not go to the next_skb label and could find that the sequence being
    followed was this -

    It hit this if condition -

    if (st->cur_skb->next) {
    st->cur_skb = st->cur_skb->next;
    st->frag_idx = 0;
    goto next_skb;

    And so, now the st pointer is shifted to the next skb whereas actually
    it should have hit the second else if first since the data is in the
    frag_list.

    else if (st->root_skb == st->cur_skb &&
    skb_shinfo(st->root_skb)->frag_list) {
    st->cur_skb = skb_shinfo(st->root_skb)->frag_list;
    goto next_skb;
    }

    Reversing the two conditions the attached patch fixes the issue for me
    on top of Herbert's patches.

    Signed-off-by: Shyam Iyer
    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Shyam Iyer
     
  • The frag_list handling was broken in skb_seq_read:

    1) We didn't add the stepped offset when looking at the head
    are of fragments other than the first.

    2) We didn't take the stepped offset away when setting the data
    pointer in the head area.

    3) The frag index wasn't reset.

    This patch fixes both issues.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • Reducing jumbo ring size below 1024 reduces throughput for old
    firmwares (3.4.216 and older) running on older (NX2031) chip,
    so restore it back to 1024.

    This was reduced in commit 32ec803348b4d5f1353e1d7feae30880b8b3e342
    ("netxen: reduce memory footprint").

    Raising jumbo ring size from 512 to 1024, adds ~4MB per port, but
    there's still big saving because of original patch (~20MB per port).

    Signed-off-by: Dhananjay Phadke
    Signed-off-by: David S. Miller

    Dhananjay Phadke
     
  • David S. Miller