Commit Graph

18977 Commits

Author SHA1 Message Date
Jeff Kirsher 4ee9c02007 [PATCH] e1000: Fix jumbo frame performance
Partition PBA for Jumbo frames based on MTU size.

Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: John Ronciak <john.ronciak@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:40:09 -05:00
Arnd Bergmann 7c5c220e25 [PATCH] spidernet: fix missing include
This is now required to avoid
drivers/net/spider_net.c:844: error: 'IPPROTO_TCP' undeclared

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:25:01 -05:00
Arnd Bergmann 11f1a52b87 [PATCH] spidernet: performance optimizations
Performance optimizations, changes in these areas:
  - RX and TX checksum offload
  - correct maximum MTU
  - don't use TX interrupts anymore, use a timer instead
  - remove some superfluous barriers
  - improve RX RAM full handling

From: Utz Bacher <utz.bacher@de.ibm.com>
Signed-off-by: Jens Osterkamp <jens.osterkamp@de.ibm.com>
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:25:01 -05:00
Arnd Bergmann 8e0a613bf6 [PATCH] spidernet: fix HW structures for 64 bit dma_addr_t
The driver incorrectly used dma_addr_t to describe
HW structures and consequently broke when that type
was changed in 2.6.15-rc.

This changed spidernet to use u32 for 32 bit HW defined
structure elements.

From: Jens Osterkamp <Jens.Osterkamp@de.ibm.com>
Signed-off-by: Jens Osterkamp <Jens.Osterkamp@de.ibm.com>
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:25:00 -05:00
Arnd Bergmann 030d6753f8 [PATCH] spidernet: read firmware from the OF device tree
request_firmware() is sometimes problematic, especially
in initramfs, reading the firmware from Open Firmware
is much preferrable.

We still try to get the firmware from the file system
first, in order to support old SLOF releases and to allow
updates of the spidernet firmware without reflashing
the system.

From: Jens Osterkamp <Jens.Osterkamp@de.ibm.com>
Signed-off-by: Jens Osterkamp <Jens.Osterkamp@de.ibm.com>
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:25:00 -05:00
Arnd Bergmann 0d3ea1666f [PATCH] spidernet: check if firmware was loaded correctly
Uploading the device firmware may fail if wrong input data
was provided by the user. This checks for the condition.

From: Jens Osterkamp <Jens.Osterkamp@de.ibm.com>
Signed-off-by: Jens Osterkamp <Jens.Osterkamp@de.ibm.com>
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:25:00 -05:00
Dale Farnsworth c2e5b352fc [PATCH] mv643xx_eth: Remove needless mask of extended intr register
All interrupts controlled by the extended mask register are also
masked by a bit in the main mask register, so there is no need to
directly manipulate the extended mask register.

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>

 mv643xx_eth.c |   81 ++++++++++++++++++----------------------------------------
 1 file changed, 26 insertions(+), 55 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:23:39 -05:00
Dale Farnsworth ab4384a658 [PATCH] mv643xx_eth: Merge open and stop helper functions
Move code from helper functions mv643xx_eth_real_open and mv643xx_eth_real_stop
as they are no longer needed.

Signed-off-by Dale Farnsworth <dale@farnsworth.org>

 mv643xx_eth.c |  109 +++++++++++++++++++++++-----------------------------------
 1 file changed, 45 insertions(+), 64 deletions(-)

Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:23:38 -05:00
Dale Farnsworth 4476e0e4c7 [PATCH] mv643xx_eth: Fix transmit skb accounting
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>

 mv643xx_eth.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:23:38 -05:00
Wolfram Joost 63890576a3 [PATCH] mv643xx_eth: Request HW checksum generation only for IPv4
This patch removes the NETIF_F_HW_CSUM flag to be able to use other protocols
than IPv4. Hardware checksums for IPv4 should continue to work because
NETIF_F_IP_CSUM is still set.  The sanity-check has been enhanced to check
the used protocol and to not access skb->iph for non-ipv4-packets.

Signed-off-by: Wolfram Joost <pegasos@frokaschwei.de>
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>

 mv643xx_eth.c |   19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:23:38 -05:00
Dale Farnsworth 8f5187035a [PATCH] mv643xx_eth: Hold spinlocks only where needed
This driver has historically held a spin_lock during the entire open
and stop functions and while receiving multiple packets.  This is
unecessarily long and holds locks during calls that may sleep.
This patch reduces the size of windows where locks are held.

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>

 mv643xx_eth.c |  172 ++++++++++++++++++++++++++++++----------------------------
 1 file changed, 91 insertions(+), 81 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:23:38 -05:00
Dale Farnsworth dd09b1de08 [PATCH] mv643xx_eth: iounmap the correct SRAM buffer
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>

 mv643xx_eth.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:23:37 -05:00
Paul Janzen f7ea333765 [PATCH] mv643xx_eth: Fix handling of small, unaligned fragments
Fix handling of small, unaligned fragments.
It also solves a potential deadlock if skb_linearize() returns -ENOMEM.

Signed-off-by: Paul Janzen <pcj@linux.sez.to>
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>

 mv643xx_eth.c |   54 +++++++++++++++++++++++++++++++-----------------------
 1 file changed, 31 insertions(+), 23 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:23:37 -05:00
Dale Farnsworth b44cd57262 [PATCH] mv643xx_eth: Receive buffers require 8 byte alignment
The Marvell mv643xx ethernet hardware requires that DMA buffers be
aligned to 8-byte boundaries.  This patch satisfies this requirement.
Buffers allocated by dev_alloc_skb() only have 4-byte alignment when
slab debugging is enabled.

Also, document that the 2-byte offset to align the IP packets on
receive is a hardware feature and is not tied to NET_IP_ALIGN.

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>

 mv643xx_eth.c |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:23:37 -05:00
Dale Farnsworth 16e0301831 [PATCH] mv643xx_eth: Add multicast support
This code is adapted from code in a ppc-specific version of the driver.

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>

 mv643xx_eth.c |  201 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 197 insertions(+), 4 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:23:37 -05:00
Paolo Galtieri 4eaa3cb35b [PATCH] mv643xx_eth: Fix a NULL pointer dereference
Fix a NULL pointer dereference.

Fill in the buf_ptr and byte_cnt fields of pkt_info in
eth_tx_return_desc().

Signed-off-by: Paolo Galtieri <pgaltieri@mvista.com>
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>

 mv643xx_eth.c |   51 +++++++++++++++++++++------------------------------
 1 file changed, 21 insertions(+), 30 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:23:37 -05:00
Paolo Galtieri cb415d3004 [PATCH] mv643xx_eth: Fix dma_map/dma_unmap relations
If you do a dma_map_single you must do dma_unmap_single and if you do
a dma_map_page you must do a dma_unmap_page.

Signed-off-by: Paolo Galtieri <pgaltieri@mvista.com>
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>

 mv643xx_eth.c |   51 +++++++++++++++++++++------------------------------
 1 file changed, 21 insertions(+), 30 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:23:36 -05:00
Olaf Hering 78a5e53475 [PATCH] mv643xx_eth: 2.6.16 needs ip.h and in.h
Signed-off-by: Olaf Hering <olh@suse.de>
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>

 mv643xx_eth.c |    2 ++
 1 file changed, 2 insertions(+)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:23:36 -05:00
Dale Farnsworth b60d6975e8 [PATCH] mv643xx_eth: Add Dale Farnsworth as a maintainer
MAINTAINERS |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17 07:23:36 -05:00
Jeff Garzik 0f1c122ecf Merge branch 'upstream-jgarzik' of git://git.tuxdriver.com/git/wireless-2.6 2006-01-17 07:22:26 -05:00
Eric Dumazet 2f970d8357 [IPV4]: rt_cache_stat can be statically defined
Using __get_cpu_var(obj) is slightly faster than per_cpu_ptr(obj, 
raw_smp_processor_id()).

1) Smaller code and memory use
For static and small objects, DEFINE_PER_CPU(type, object) is preferred over a 
alloc_percpu() : Better and smaller code to access them, and no extra memory 
(storing the pointer, and the percpu array of pointers)

x86_64 code before patch

mov    1237577(%rip),%rax        # ffffffff803e5990 <rt_cache_stat>
not    %rax  # part of per_cpu machinery
mov    %gs:0x3c,%edx # get cpu number
movslq %edx,%rdx # extend 32 bits cpu number to 64 bits
mov    (%rax,%rdx,8),%rax # get the pointer for this cpu
incl   0x38(%rax)

x86_64 code after patch

mov    $per_cpu__rt_cache_stat,%rdx
mov    %gs:0x48,%rax # get percpu data offset
incl   0x38(%rax,%rdx,1)

2) False sharing avoidance for SMP :
For a small NR_CPUS, the array of per cpu pointers allocated in alloc_percpu() 
can be <= 32 bytes. This let slab code gives a part of a cache line. If the 
other part of this 64 bytes (or 128 bytes) cache line is used by a mostly 
written object, we can have false sharing and expensive per_cpu_ptr() operations.

Size of rt_cache_stat is 64 bytes, so this patch is not a danger of a too big 
increase of bss (in UP mode) or static per_cpu data for SMP 
(PERCPU_ENOUGH_ROOM is currently 32768 bytes)

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-17 02:54:36 -08:00
David S. Miller 8243126c5e [NET]: Make second arg to skb_reserved() signed.
Some subsystems, such as PPP, can send negative values
here.  It just happened to work correctly on 32-bit with
an unsigned value, but on 64-bit this explodes.

Figured out by Paul Mackerras based upon several PPP crash
reports.

Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-17 02:54:21 -08:00
David S. Miller f09484ff87 [NETFILTER]: ip_conntrack_proto_gre.c needs linux/interrupt.h
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-17 02:42:02 -08:00
Michael Chan ec41c7dfd5 [TG3]: Refine nvram locking
Add nvram lock count so that calls to tg3_nvram_lock()/unlock() can
be nested. Add error checking to all callers of tg3_nvram_lock()
where appropriate. To prevent nvram lock failures after halting the
firmware, it is also necessary to release firmware's nvram lock in
tg3_halt_cpu().

Update version to 3.48.

Based on David Miller's initial patch.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-17 02:40:55 -08:00
Yasuyuki Kozakai f0daaa654a [NETFILTER] ip6tables: whitespace and indent cosmetic cleanup
Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-17 02:39:39 -08:00
Yasuyuki Kozakai e0069caede [NETFILTER] ip6tables: remove unused definitions
These definitions ware used for only internal use in kernel <= 2.6.13,
which had not introduced the unified parser of IPv6 extension header yet.

Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-17 02:39:19 -08:00
Yasuyuki Kozakai 6dd42af790 [NETFILTER] Makefile cleanup
These are replaced with x_tables matches and no longer exist.

Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-17 02:38:56 -08:00
Benoit Boissinot ccc91324a1 [NETFILTER] ip[6]t_policy: Fix compilation warnings
ip[6]t_policy argument conversion slipped when merging with x_tables

Signed-off-by: Benoit Boissinot <benoit.boissinot@ens-lyon.org>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-17 02:26:34 -08:00
Kris Katterjohn e35bedf369 [NET]: Fix whitespace issues in net/core/filter.c
This fixes some whitespace issues in net/core/filter.c

Signed-off-by: Kris Katterjohn <kjak@users.sourceforge.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-17 02:25:52 -08:00
Amnon Aaronsohn dd914b4082 [PKT_SCHED] sch_prio: fix qdisc bands init
Currently when PRIO is configured to use N bands, it lets the packets be
directed to any of the bands 0..N-1. However, PRIO attaches a fifo qdisc
only to the bands that appear in the priomap; the rest of the N bands
remain with a noop qdisc attached. This patch changes PRIO's behavior so
that it attaches a fifo qdisc to all of the N bands.

Signed-off-by: Amnon Aaronsohn <bla@cs.huji.ac.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-17 02:24:26 -08:00
YOSHIFUJI Hideaki 9343e79a7b [IPV6]: Preserve procfs IPV6 address output format
Procfs always output IPV6 addresses without the colon
characters, and we cannot change that.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-17 02:10:53 -08:00
Linus Torvalds 2664b25051 Linux v2.6.16-rc1 2006-01-16 23:44:47 -08:00
Linus Torvalds fb60a9fee9 Merge branch 'for-linus' of git://brick.kernel.dk/data/git/linux-2.6-block 2006-01-16 23:43:11 -08:00
Alan Cox f4caf1606d [PATCH] Remove unused code from rioctrl.c (Last for this batch of work)
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:31:29 -08:00
Alan Cox 1384cee55d [PATCH] Remove rio_table.c unused code
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:31:28 -08:00
Alan Cox 542ea6c37c [PATCH] Remove unused code from rio_linux.c
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:31:28 -08:00
Alan Cox 283c9d546e [PATCH] Remove unused CHECK code from riocmd.c
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:31:28 -08:00
Alan Cox 8b03de1f66 [PATCH] Remove unused code from rioroute.h
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:31:28 -08:00
Alan Cox f099bfb708 [PATCH] Remove unused code from rioboot.h
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:31:28 -08:00
Alan Cox c7306c0287 [PATCH] Remove unused code from rioboot
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:31:28 -08:00
Alan Cox a6176eeab0 [PATCH] Remove #if 0 and other long dead code from rio_tty
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:31:27 -08:00
Alan Cox 925d70d64b [PATCH] Remove long dead #if 0 code from rio_param
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:31:27 -08:00
Alan Cox 09979236d6 [PATCH] Remove old firmware headers from rio drivers
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:31:27 -08:00
Alan Cox 3918276ce5 [PATCH] Remove rtahw.h from rio driver (unused file)
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:31:27 -08:00
Alan Cox 169da21f40 [PATCH] Remove file riscos.h from rio driver (unused file)
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:30:31 -08:00
Alan Cox a09be029bb [PATCH] Remove file riowinif.h from rio driver (unused file)
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:30:31 -08:00
Alan Cox 69da7f9a63 [PATCH] Remove riotime.h from rio driver (unused file)
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:30:31 -08:00
Alan Cox 8618751503 [PATCH] Remove file riolocks.h from rio driver (unused file)
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:30:31 -08:00
Alan Cox 0d336ceb1e [PATCH] Remove proto.h from rio driver (unused file)
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:30:30 -08:00
Alan Cox 735f88c62e [PATCH] Remove poll.h from rio driver (unused file)
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:30:30 -08:00