19 Jul, 2007

1 commit


17 Jul, 2007

2 commits

  • * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (37 commits)
    forcedeth bug fix: realtek phy
    forcedeth bug fix: vitesse phy
    forcedeth bug fix: cicada phy
    atl1: reorder atl1_main functions
    atl1: fix excessively indented code
    atl1: cleanup atl1_main
    atl1: header file cleanup
    atl1: remove irq_sem
    cdc-subset to support new vendor/product ID
    8139cp: implement the missing dev->tx_timeout
    myri10ge: Remove nonsensical limit in the tx done routine
    gianfar: kill unused header
    EP93XX_ETH must select MII
    macb: Add multicast capability
    macb: Use generic PHY layer
    s390: add barriers to qeth driver
    s390: scatter-gather for inbound traffic in qeth driver
    eHEA: Introducing support vor DLPAR memory add
    Fix a potential NULL pointer dereference in free_shared_mem() in drivers/net/s2io.c
    [PATCH] softmac: Fix ESSID problem
    ...

    Linus Torvalds
     
  • CONFIG_EP93XX_ETH=y, CONFIG_MII=n results in an obvious link error.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Jeff Garzik

    John Donoghue
     

11 Jul, 2007

1 commit


09 Jul, 2007

1 commit

  • CONFIG_NETDEVICES, CONFIG_NET_ETHERNET:
    Change Kconfig objects from "menu, config" into "menuconfig" so
    that the user can disable the whole feature without having to
    enter the menu first.

    CONFIG_SMC9194:
    Move it so that it appears correctly in menuconfig.

    Signed-off-by: Jan Engelhardt
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Jan Engelhardt
     

07 Jul, 2007

1 commit

  • In 7d12e780e003f93433d49ce78cfedf4b4c52adc5 David Howells performed
    this evolution:
    "IRQ: Maintain regs pointer globally rather than passing to IRQ handlers"

    He correctly updated many of the function definitions that were using this
    extra regs pointer parameter but forgot to update some caller sites of
    those functions. The reason the modifications was not properly done on all
    drivers is that some drivers were rarely compiled because they are for
    AMIGA, or that some code sites were inside #ifdefs where the option is not
    set or inside #if 0.

    Here is the semantic patch that found the occurences
    and fixed the problem.

    @ rule1 @
    identifier fn;
    identifier irq, dev_id;
    typedef irqreturn_t;
    @@

    static irqreturn_t fn(int irq, void *dev_id)
    {
    ...
    }

    @@
    identifier rule1.fn;
    expression E1, E2, E3;
    @@

    fn(E1, E2
    - ,E3
    )

    Signed-off-by: Yoann Padioleau
    Cc: "David S. Miller"
    Cc: Jeff Garzik
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yoann Padioleau
     

12 May, 2007

2 commits


08 May, 2007

2 commits


26 Apr, 2007

1 commit


15 Feb, 2007

1 commit

  • After Al Viro (finally) succeeded in removing the sched.h #include in module.h
    recently, it makes sense again to remove other superfluous sched.h includes.
    There are quite a lot of files which include it but don't actually need
    anything defined in there. Presumably these includes were once needed for
    macros that used to live in sched.h, but moved to other header files in the
    course of cleaning it up.

    To ease the pain, this time I did not fiddle with any header files and only
    removed #includes from .c-files, which tend to cause less trouble.

    Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
    arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
    allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
    configs in arch/arm/configs on arm. I also checked that no new warnings were
    introduced by the patch (actually, some warnings are removed that were emitted
    by unnecessarily included header files).

    Signed-off-by: Tim Schmielau
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tim Schmielau
     

08 Feb, 2007

1 commit


27 Dec, 2006

1 commit


07 Dec, 2006

4 commits


05 Dec, 2006

1 commit


02 Dec, 2006

2 commits

  • Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     
  • etherh and a handful of other odd drivers use different macros when building
    8390.c. Since we generate a single 8390.o and then link with it, in any
    config with both oddball and normal 8390-based driver we will end up with
    breakage in at least one of them. Solution: take most of 8390.c into
    lib8390.c and have 8390.c, etherh.c and the rest of oddballs #include it.
    Helper macros are taken from 8390.h to whoever includes lib8390.c. That
    way odd drivers get separate instances of compiled 8390 stuff and stop
    stepping on each other's toes. 8390.h gets cleaned up - we don't have
    the cascade of ifdefs in there and are left with the stuff that can be
    used by any 8390-based driver. Current problems are exactly because of
    that cascade - we attempt to choose the set of helpers by looking at config
    and that, of course, doesn't work well when we have several sets needed
    by various drivers in our config.

    Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     

01 Nov, 2006

3 commits

  • Flooding the console with error messages for every RX FIFO overrun,
    checksum error and framing error isn't very sensible. Each of these
    errors can occur during normal operation, so stop printk'ing error
    messages for RX errors at all.

    Signed-off-by: Lennert Buytenhek
    Signed-off-by: Jeff Garzik

    Lennert Buytenhek
     
  • Fix unlikely(x) > y test in ep93xx_eth.

    Signed-off-by: Lennert Buytenhek
    Signed-off-by: Jeff Garzik

    Lennert Buytenhek
     
  • Ray Lehtiniemi reported that an incoming UDP packet flood can lock up
    the ep93xx ethernet driver. Herbert Valerio Riedel noted that due to
    the way ep93xx_eth manages the RX/TXstatus rings, it cannot distinguish
    a full ring from an empty one, and correctly suggested that this was
    likely to be causing this lockup to occur.

    Instead of looking at the hardware's RX/TXstatus ring write pointers
    to determine when to stop reading from those rings, we should just check
    every individual RX/TXstatus descriptor's valid bit instead, since there
    is no other way to distinguish an empty ring from a full ring, and if
    there is a descriptor waiting, we take the hit of reading the descriptor
    from memory anyway.

    Signed-off-by: Lennert Buytenhek
    Signed-off-by: Jeff Garzik

    Lennert Buytenhek
     

05 Oct, 2006

1 commit

  • Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
    of passing regs around manually through all ~1800 interrupt handlers in the
    Linux kernel.

    The regs pointer is used in few places, but it potentially costs both stack
    space and code to pass it around. On the FRV arch, removing the regs parameter
    from all the genirq function results in a 20% speed up of the IRQ exit path
    (ie: from leaving timer_interrupt() to leaving do_IRQ()).

    Where appropriate, an arch may override the generic storage facility and do
    something different with the variable. On FRV, for instance, the address is
    maintained in GR28 at all times inside the kernel as part of general exception
    handling.

    Having looked over the code, it appears that the parameter may be handed down
    through up to twenty or so layers of functions. Consider a USB character
    device attached to a USB hub, attached to a USB controller that posts its
    interrupts through a cascaded auxiliary interrupt controller. A character
    device driver may want to pass regs to the sysrq handler through the input
    layer which adds another few layers of parameter passing.

    I've build this code with allyesconfig for x86_64 and i386. I've runtested the
    main part of the code on FRV and i386, though I can't test most of the drivers.
    I've also done partial conversion for powerpc and MIPS - these at least compile
    with minimal configurations.

    This will affect all archs. Mostly the changes should be relatively easy.
    Take do_IRQ(), store the regs pointer at the beginning, saving the old one:

    struct pt_regs *old_regs = set_irq_regs(regs);

    And put the old one back at the end:

    set_irq_regs(old_regs);

    Don't pass regs through to generic_handle_irq() or __do_IRQ().

    In timer_interrupt(), this sort of change will be necessary:

    - update_process_times(user_mode(regs));
    - profile_tick(CPU_PROFILING, regs);
    + update_process_times(user_mode(get_irq_regs()));
    + profile_tick(CPU_PROFILING);

    I'd like to move update_process_times()'s use of get_irq_regs() into itself,
    except that i386, alone of the archs, uses something other than user_mode().

    Some notes on the interrupt handling in the drivers:

    (*) input_dev() is now gone entirely. The regs pointer is no longer stored in
    the input_dev struct.

    (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does
    something different depending on whether it's been supplied with a regs
    pointer or not.

    (*) Various IRQ handler function pointers have been moved to type
    irq_handler_t.

    Signed-Off-By: David Howells
    (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)

    David Howells
     

04 Oct, 2006

2 commits


28 Sep, 2006

1 commit

  • This is more preparation for adding support for the new Atmel AT91SAM9
    processors.

    Changes include:
    - Replace AT91_BASE_* with AT91RM9200_BASE_*
    - Replace AT91_ID_* with AT91RM9200_ID_*
    - ROM, SRAM and UHP address definitions moved to at91rm9200.h.
    - The raw AT91_P[ABCD]_* definitions are now depreciated in favour of
    the GPIO API.

    Signed-off-by: Andrew Victor
    Signed-off-by: Russell King

    Andrew Victor
     

23 Sep, 2006

1 commit


14 Sep, 2006

1 commit


01 Jul, 2006

1 commit


23 Jun, 2006

5 commits

  • First of all it is unnecessary to allocate a new skb in skb_pad since
    the existing one is not shared. More importantly, our hard_start_xmit
    interface does not allow a new skb to be allocated since that breaks
    requeueing.

    This patch uses pskb_expand_head to expand the existing skb and linearize
    it if needed. Actually, someone should sift through every instance of
    skb_pad on a non-linear skb as they do not fit the reasons why this was
    originally created.

    Incidentally, this fixes a minor bug when the skb is cloned (tcpdump,
    TCP, etc.). As it is skb_pad will simply write over a cloned skb. Because
    of the position of the write it is unlikely to cause problems but still
    it's best if we don't do it.

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

    Herbert Xu
     
  • Adds power-management (suspend/resume) support to the AT91RM9200
    Ethernet driver.
    Patch from David Brownell.

    Signed-off-by: Andrew Victor
    Signed-off-by: Jeff Garzik

    Andrew Victor
     
  • Moved global ether_clk variable into controller data structure.
    Patch from David Brownell.

    Davicom 9161 PHY was being incorrectly displayed as "9196".
    Patch from Brian Stafford.

    clk_get() doesn't return NULL on error, so the return value needs to be
    tested with IS_ERR().

    Whitespace cleanup.

    Signed-off-by: Andrew Victor
    Signed-off-by: Jeff Garzik

    Andrew Victor
     
  • Adds support for the MII ioctls via generic_mii_ioctl().
    Patch from Brian Stafford.

    Set the mii.phy_id to the detected PHY address, otherwise ethtool cannot
    access PHYs other than 0.
    Patch from Roman Kolesnikov.

    Signed-off-by: Andrew Victor
    Signed-off-by: Jeff Garzik

    Andrew Victor
     
  • For Ethernet PHYs that don't have an IRQ pin or boards that don't
    connect the IRQ pin to the processor, we enable a timer to poll the
    PHY's link state.

    Patch originally supplied by Eric Benard and Roman Kolesnikov.

    Signed-off-by: Andrew Victor
    Signed-off-by: Jeff Garzik

    Andrew Victor
     

25 Mar, 2006

1 commit

  • This patch adds support for the Ethernet controller integrated in the
    Atmel AT91RM9200 SoC processor.

    Changes since the previous submission (01/02/2006) are:
    - Make use of the clk.h clock infrastructure.
    - The multicast hash function is not crc32. [Patch by Pedro Perez]

    Signed-off-by: Andrew Victor
    Signed-off-by: Jeff Garzik

    Andrew Victor
     

21 Mar, 2006

1 commit


17 Jan, 2006

1 commit


09 Jan, 2006

1 commit