23 May, 2012

1 commit

  • Pull staging tree changes from Greg Kroah-Hartman:
    "Here is the big staging tree pull request for the 3.5-rc1 merge
    window.

    Loads of changes here, and we just narrowly added more lines than we
    added:
    622 files changed, 28356 insertions(+), 26059 deletions(-)

    But, good news is that there is a number of subsystems that moved out
    of the staging tree, to their respective "real" portions of the
    kernel.

    Code that moved out was:
    - iio core code
    - mei driver
    - vme core and bridge drivers

    There was one broken network driver that moved into staging as a step
    before it is removed from the tree (pc300), and there was a few new
    drivers added to the tree:
    - new iio drivers
    - gdm72xx wimax USB driver
    - ipack subsystem and 2 drivers

    All of the movements around have acks from the various subsystem
    maintainers, and all of this has been in the linux-next tree for a
    while.

    Signed-off-by: Greg Kroah-Hartman "

    Fixed up various trivial conflicts, along with a non-trivial one found
    in -next and pointed out by Olof Johanssen: a clean - but incorrect -
    merge of the arch/arm/boot/dts/at91sam9g20.dtsi file. Fix up manually
    as per Stephen Rothwell.

    * tag 'staging-3.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (536 commits)
    Staging: bcm: Remove two unused variables from Adapter.h
    Staging: bcm: Removes the volatile type definition from Adapter.h
    Staging: bcm: Rename all "INT" to "int" in Adapter.h
    Staging: bcm: Fix warning: __packed vs. __attribute__((packed)) in Adapter.h
    Staging: bcm: Correctly format all comments in Adapter.h
    Staging: bcm: Fix all whitespace issues in Adapter.h
    Staging: bcm: Properly format braces in Adapter.h
    Staging: ipack/bridges/tpci200: remove unneeded casts
    Staging: ipack/bridges/tpci200: remove TPCI200_SHORTNAME constant
    Staging: ipack: remove board_name and bus_name fields from struct ipack_device
    Staging: ipack: improve the register of a bus and a device in the bus.
    staging: comedi: cleanup all the comedi_driver 'detach' functions
    staging: comedi: remove all 'default N' in Kconfig
    staging: line6/config.h: Delete unused header
    staging: gdm72xx depends on NET
    staging: gdm72xx: Set up parent link in sysfs for gdm72xx devices
    staging: drm/omap: initial dmabuf/prime import support
    staging: drm/omap: dmabuf/prime mmap support
    pstore/ram: Add ECC support
    pstore/ram: Switch to persistent_ram routines
    ...

    Linus Torvalds
     

08 May, 2012

1 commit

  • Conflicts:
    drivers/net/ethernet/intel/e1000e/param.c
    drivers/net/wireless/iwlwifi/iwl-agn-rx.c
    drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
    drivers/net/wireless/iwlwifi/iwl-trans.h

    Resolved the iwlwifi conflict with mainline using 3-way diff posted
    by John Linville and Stephen Rothwell. In 'net' we added a bug
    fix to make iwlwifi report a more accurate skb->truesize but this
    conflicted with RX path changes that happened meanwhile in net-next.

    In e1000e a conflict arose in the validation code for settings of
    adapter->itr. 'net-next' had more sophisticated logic so that
    logic was used.

    Signed-off-by: David S. Miller

    David S. Miller
     

07 May, 2012

1 commit

  • With the recent changes for how we compute the skb truesize it occurs to me
    we are probably going to have a lot of calls to skb_end_pointer -
    skb->head. Instead of running all over the place doing that it would make
    more sense to just make it a separate inline skb_end_offset(skb) that way
    we can return the correct value without having gcc having to do all the
    optimization to cancel out skb->head - skb->head.

    Signed-off-by: Alexander Duyck
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Alexander Duyck
     

03 May, 2012

1 commit


25 Apr, 2012

1 commit

  • This patch fixes the following build failures:

    drivers/staging/octeon/ethernet.c: In function 'cvm_oct_cleanup_module':
    drivers/staging/octeon/ethernet.c:799:2: error: implicit declaration of function 'free_irq'
    drivers/staging/octeon/ethernet-rx.c: In function 'cvm_oct_no_more_work':
    drivers/staging/octeon/ethernet-rx.c:119:3: error: implicit declaration of function 'enable_irq'
    drivers/staging/octeon/ethernet-rx.c: In function 'cvm_oct_do_interrupt':
    drivers/staging/octeon/ethernet-rx.c:136:2: error: implicit declaration of function 'disable_irq_nosync'
    drivers/staging/octeon/ethernet-rx.c: In function 'cvm_oct_rx_initialize':
    drivers/staging/octeon/ethernet-rx.c:532:2: error: implicit declaration of function 'request_irq'
    drivers/staging/octeon/ethernet-tx.c: In function 'cvm_oct_tx_initialize':
    drivers/staging/octeon/ethernet-tx.c:712:2: error: implicit declaration of function 'request_irq'
    drivers/staging/octeon/ethernet-tx.c: In function 'cvm_oct_tx_shutdown':
    drivers/staging/octeon/ethernet-tx.c:723:2: error: implicit declaration of function 'free_irq'

    Signed-off-by: Imre Kaloz
    Acked-by: David Daney
    Signed-off-by: Greg Kroah-Hartman

    Imre Kaloz
     

11 Apr, 2012

1 commit


08 Dec, 2011

1 commit


10 Nov, 2011

1 commit


27 Jul, 2011

1 commit

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     

29 Jun, 2011

1 commit


27 Feb, 2010

7 commits

  • Many of the comments didn't follow kerneldoc guidlines.

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    To: netdev@vger.kernel.org
    To: gregkh@suse.de
    Patchwork: http://patchwork.linux-mips.org/patch/971/
    Signed-off-by: Ralf Baechle

    David Daney
     
  • If we wait for the once-per-second cleanup to free transmit SKBs,
    sockets with small transmit buffer sizes might spend most of their
    time blocked waiting for the cleanup.

    Normally we do a cleanup for each transmitted packet. We add a
    watchdog type timer so that we also schedule a timeout for 150uS after
    a packet is transmitted. The watchdog is reset for each transmitted
    packet, so for high packet rates, it never expires. At these high
    rates, the cleanups are done for each packet so the extra watchdog
    initiated cleanups are neither needed nor triggered.

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    To: netdev@vger.kernel.org
    To: gregkh@suse.de
    Cc: Eric Dumazet
    Patchwork: http://patchwork.linux-mips.org/patch/968/
    Signed-off-by: Ralf Baechle

    This version has spelling and comment changes based on feedback from
    Eric Dumazet.

    David Daney
     
  • Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    To: gregkh@suse.de
    Patchwork: http://patchwork.linux-mips.org/patch/837/
    Signed-off-by: Ralf Baechle

    David Daney
     
  • Octeon ethernet hardware can handle NETIF_F_SG, so we enable it.

    A gather list of up to six fragments will fit in the SKB's CB
    structure, so no extra memory is required. If a SKB has more than six
    fragments, we must linearize it.

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    To: gregkh@suse.de
    Patchwork: http://patchwork.linux-mips.org/patch/838/
    Signed-off-by: Ralf Baechle

    David Daney
     
  • Stop the queue if too many packets are queued. Restart it from a high
    resolution timer.

    Rearrange and simplify locking and SKB freeing code

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    To: gregkh@suse.de
    Patchwork: http://patchwork.linux-mips.org/patch/843/
    Signed-off-by: Ralf Baechle

    David Daney
     
  • After aligning the blocks returned by kmalloc, we need to save the original
    pointer so they can be correctly freed.

    There are no guarantees about the alignment of SKB data, so we need to
    handle worst case alignment.

    Since right shifts over subtraction have no distributive property, we need
    to fix the back pointer calculation.

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/884/
    Signed-off-by: Ralf Baechle

    David Daney
     
  • Remove unused code, reindent, and join some spilt strings.

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    To: gregkh@suse.de
    Patchwork: http://patchwork.linux-mips.org/patch/842/
    Signed-off-by: Ralf Baechle

    David Daney
     

12 Dec, 2009

1 commit


25 Jun, 2009

2 commits

  • The existing code had the following race:

    Thread-1 Thread-2

    inc/read in_use
    inc/read in_use
    inc tx_free_list[qos].len
    inc tx_free_list[qos].len

    The actual in_use value was incremented twice, but thread-1 is going
    to free memory based on its stale value, and will free one too many
    times. The result is that memory is freed back to the kernel while
    its packet is still in the transmit buffer. If the memory is
    overwritten before it is transmitted, the hardware will put a valid
    checksum on it and send it out (just like it does with good packets).
    If by chance the TCP flags are clobbered but not the addresses or
    ports, the result can be a broken TCP stream.

    The fix is to track the number of freed packets in a single location
    (a Fetch-and-Add Unit register). That way it can never get out of sync
    with itself.

    We try to free up to MAX_SKB_TO_FREE (currently 10) buffers at a time.
    If fewer are available we adjust the free count with the difference.
    The action of claiming buffers to free is atomic so two threads cannot
    claim the same buffers.

    Signed-off-by: David Daney
    Signed-off-by: Ralf Baechle

    David Daney
     
  • Convert the driver to use net_device_ops as it is now mandatory.

    Also compensate for the removal of struct sk_buff's dst field.

    The changes are mostly mechanical, the content of ethernet-common.c
    was moved to ethernet.c and ethernet-common.{c,h} are removed.

    Signed-off-by: David Daney
    Signed-off-by: Ralf Baechle

    David Daney
     

17 Jun, 2009

1 commit

  • The octeon-ethernet driver supports the sgmii, rgmii, spi, and xaui
    ports present on the Cavium OCTEON family of SOCs. These SOCs are
    multi-core mips64 processors with existing support over in arch/mips.

    The driver files can be categorized into three basic groups:

    1) Register definitions, these are named cvmx-*-defs.h

    2) Main driver code, these have names that don't start cvmx-.

    3) Interface specific functions and other utility code, names starting
    with cvmx-

    Signed-off-by: David Daney
    Signed-off-by: Ralf Baechle

    David Daney