openwrt/staging/blogic.git
18 years ago[PATCH] mm: fix a race condition under SMC + COW
Siddha, Suresh B [Fri, 29 Sep 2006 08:58:42 +0000 (01:58 -0700)]
[PATCH] mm: fix a race condition under SMC + COW

Failing context is a multi threaded process context and the failing
sequence is as follows.

One thread T0 doing self modifying code on page X on processor P0 and
another thread T1 doing COW (breaking the COW setup as part of just
happened fork() in another thread T2) on the same page X on processor P1.
T0 doing SMC can endup modifying the new page Y (allocated by the T1 doing
COW on P1) but because of different I/D TLB's, P0 ITLB will not see the new
mapping till the flush TLB IPI from P1 is received.  During this interval,
if T0 executes the code created by SMC it can result in an app error (as
ITLB still points to old page X and endup executing the content in page X
rather than using the content in page Y).

Fix this issue by first clearing the PTE and flushing it, before updating
it with new entry.

Hugh sayeth:

  I was a bit sceptical, in the habit of thinking that Self Modifying Code
  must look such issues itself: but I guess there's nothing it can do to avoid
  this one.

  Fair enough, what you're changing it to is pretty much what powerpc and
  s390 were already doing, and is a more robust way of proceeding, consistent
  with how ptes are set everywhere else.

  The ptep_clear_flush is a bit heavy-handed (it's anxious to return the pte
  that was atomically cleared), but we'd have to wander through lots of arches
  to get the right minimal behaviour.  It'd also be nice to eliminate
  ptep_establish completely, now only used to define other macros/inlines: it
  always seemed obfuscation to me, what you've got there now is clearer.
  Let's put those cleanups on a TODO list.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Acked-by: "David S. Miller" <davem@davemloft.net>
Acked-by: Hugh Dickins <hugh@veritas.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] convert s390 page handling macros to functions
Heiko Carstens [Fri, 29 Sep 2006 08:58:41 +0000 (01:58 -0700)]
[PATCH] convert s390 page handling macros to functions

Convert s390 page handling macros to functions.  In particular this fixes a
problem with s390's SetPageUptodate macro which uses its input parameter
twice which again can cause subtle bugs.

[akpm@osdl.org: build fix]
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] JBD: memory leak in "journal_init_dev()"
Zoltan Menyhart [Fri, 29 Sep 2006 08:58:40 +0000 (01:58 -0700)]
[PATCH] JBD: memory leak in "journal_init_dev()"

We leak a bh ref in "journal_init_dev()" in case of failure.

Signed-off-by: Zoltan Menyhart <Zoltan.Menyhart@bull.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] JBD: Make journal_brelse_array() static
Dave Kleikamp [Fri, 29 Sep 2006 08:58:39 +0000 (01:58 -0700)]
[PATCH] JBD: Make journal_brelse_array() static

It's always good to make symbols static when we can, and this also eliminates
the need to rename the function in jbd2

Suggested by Eric Sandeen.

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Cc: Eric Sandeen <sandeen@sandeen.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Fix uninitialised spinlock in via-pmu-backlight code.
David Woodhouse [Fri, 29 Sep 2006 08:58:37 +0000 (01:58 -0700)]
[PATCH] Fix uninitialised spinlock in via-pmu-backlight code.

The uninitialised pmu_backlight_lock causes the current Fedora test kernel
(which has spinlock debugging enabled) to panic on suspend.

This is suboptimal, so I fixed it.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Michael Hanselmann <linux-kernel@hansmi.ch>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] remove generic__raw_read_trylock()
Matthew Wilcox [Fri, 29 Sep 2006 08:58:36 +0000 (01:58 -0700)]
[PATCH] remove generic__raw_read_trylock()

If the cpu has the lock held for write, is interrupted, and the interrupt
handler calls read_trylock(), it's an instant deadlock.

Now, Dave Miller has subsequently pointed out that we don't have any
situations where this can occur.  Nevertheless, we should delete
generic__raw_read_lock (and its associated EXPORT to make Arjan happy) so that
nobody thinks they can use it.

Acked-by: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] sys_getcpu() prototype annotated
Al Viro [Fri, 29 Sep 2006 08:58:35 +0000 (01:58 -0700)]
[PATCH] sys_getcpu() prototype annotated

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] __percpu_alloc_mask() has to be __always_inline in UP case
Al Viro [Fri, 29 Sep 2006 08:58:34 +0000 (01:58 -0700)]
[PATCH] __percpu_alloc_mask() has to be __always_inline in UP case

...  or we'll end up with cpu_online_map being evaluated on UP.  In
modules.  cpumask.h is very careful to avoid that, and for a very good
reason.  So should we...

PS: yes, it really triggers (on alpha).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Fri, 29 Sep 2006 06:03:42 +0000 (23:03 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (160 commits)
  [ETHTOOL]: Remove some entries from non-root command list.
  [Bluetooth]: Fix section mismatch of bt_sysfs_cleanup()
  [Bluetooth]: Don't update disconnect timer for incoming connections
  [ETHTOOL]: let mortals use ethtool
  [NetLabel]: add audit support for configuration changes
  [TCP]: Fix and simplify microsecond rtt sampling
  [TCP] tcp-lp: prevent chance for oops
  [SUNRPC]: Remove unnecessary check in net/sunrpc/svcsock.c
  [IPVS] bug: endianness breakage in ip_vs_ftp
  [IPVS]: ipvs annotations
  [NETFILTER]: h323 annotations
  [NETFILTER]: ipt annotations
  [NETFILTER]: NAT annotations
  [NETFILTER]: conntrack annotations
  [NETFILTER]: netfilter misc annotations
  [NET]: Annotate dst_ops protocol
  [NET]: is it Andy or Andi ??
  [IPVS]: Make sure ip_vs_ftp ports are valid: module_param_array approach
  [IPVS]: Reverse valid ip_vs_ftp ports fix: port check approach
  [IrDA] stir4200: removing undocumented bits handling
  ...

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6
Linus Torvalds [Fri, 29 Sep 2006 05:59:32 +0000 (22:59 -0700)]
Merge /pub/scm/linux/kernel/git/gregkh/usb-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6:
  USB: fix build error in ohci driver

18 years ago[ETHTOOL]: Remove some entries from non-root command list.
David S. Miller [Thu, 28 Sep 2006 22:34:05 +0000 (15:34 -0700)]
[ETHTOOL]: Remove some entries from non-root command list.

GWOL might provide passwords
GSET, GLINK, and GSTATS might poke the hardware

Based upon feedback from Jeff Garzik.

Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[Bluetooth]: Fix section mismatch of bt_sysfs_cleanup()
Arnaud Patard [Thu, 28 Sep 2006 22:29:37 +0000 (15:29 -0700)]
[Bluetooth]: Fix section mismatch of bt_sysfs_cleanup()

The bt_sysfs_cleanup() is marked with __exit attribute, but it will
be called from an __init function in the error case. So the __exit
attribute must be removed.

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[Bluetooth]: Don't update disconnect timer for incoming connections
Marcel Holtmann [Thu, 28 Sep 2006 22:29:09 +0000 (15:29 -0700)]
[Bluetooth]: Don't update disconnect timer for incoming connections

In the case of device pairing the only safe method is to establish
a low-level ACL link. In this case, the remote side should not use
the disconnect timer to give the other side the chance to enter the
PIN code. If the disconnect timer is used, the connection will be
dropped to soon, because it is impossible to identify an actual user
of this link.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[ETHTOOL]: let mortals use ethtool
Stephen Hemminger [Thu, 28 Sep 2006 22:13:37 +0000 (15:13 -0700)]
[ETHTOOL]: let mortals use ethtool

There is no reason to not allow non-admin users to query network
statistics and settings.

[ Removed PHYS_ID and GREGS based upon feedback from Auke Kok
  and Michael Chan -DaveM]

Acked-by: James Morris <jmorris@namei.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NetLabel]: add audit support for configuration changes
Paul Moore [Thu, 28 Sep 2006 21:51:47 +0000 (14:51 -0700)]
[NetLabel]: add audit support for configuration changes

This patch adds audit support to NetLabel, including six new audit message
types shown below.

 #define AUDIT_MAC_UNLBL_ACCEPT 1406
 #define AUDIT_MAC_UNLBL_DENY   1407
 #define AUDIT_MAC_CIPSOV4_ADD  1408
 #define AUDIT_MAC_CIPSOV4_DEL  1409
 #define AUDIT_MAC_MAP_ADD      1410
 #define AUDIT_MAC_MAP_DEL      1411

Signed-off-by: Paul Moore <paul.moore@hp.com>
Acked-by: James Morris <jmorris@namei.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[TCP]: Fix and simplify microsecond rtt sampling
John Heffner [Thu, 28 Sep 2006 21:47:38 +0000 (14:47 -0700)]
[TCP]: Fix and simplify microsecond rtt sampling

This changes the microsecond RTT sampling so that samples are taken in
the same way that RTT samples are taken for the RTO calculator: on the
last segment acknowledged, and only when the segment hasn't been
retransmitted.

Signed-off-by: John Heffner <jheffner@psc.edu>
Acked-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[TCP] tcp-lp: prevent chance for oops
Wong Hoi Sing Edison [Thu, 28 Sep 2006 21:40:21 +0000 (14:40 -0700)]
[TCP] tcp-lp: prevent chance for oops

This patch fix the chance for tcp_lp_remote_hz_estimator return 0, if
0 < rhz < 64. It also make sure the flag LP_VALID_RHZ is set
correctly.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[SUNRPC]: Remove unnecessary check in net/sunrpc/svcsock.c
Eric Sesterhenn [Thu, 28 Sep 2006 21:37:07 +0000 (14:37 -0700)]
[SUNRPC]: Remove unnecessary check in net/sunrpc/svcsock.c

coverity spotted this one as possible dereference in the dprintk(),
but since there is only one caller of svc_create_socket(), which always
passes a valid sin, we dont need this check.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPVS] bug: endianness breakage in ip_vs_ftp
Al Viro [Thu, 28 Sep 2006 21:31:49 +0000 (14:31 -0700)]
[IPVS] bug: endianness breakage in ip_vs_ftp

(p[3]<<24) | (p[2]<<16) | (p[1]<<8) | p[0] is not a valid
way to spell get_unaligned((__be32 *)p

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPVS]: ipvs annotations
Al Viro [Thu, 28 Sep 2006 21:29:52 +0000 (14:29 -0700)]
[IPVS]: ipvs annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NETFILTER]: h323 annotations
Al Viro [Thu, 28 Sep 2006 21:22:51 +0000 (14:22 -0700)]
[NETFILTER]: h323 annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NETFILTER]: ipt annotations
Al Viro [Thu, 28 Sep 2006 21:22:24 +0000 (14:22 -0700)]
[NETFILTER]: ipt annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NETFILTER]: NAT annotations
Al Viro [Thu, 28 Sep 2006 21:22:02 +0000 (14:22 -0700)]
[NETFILTER]: NAT annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NETFILTER]: conntrack annotations
Al Viro [Thu, 28 Sep 2006 21:21:37 +0000 (14:21 -0700)]
[NETFILTER]: conntrack annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NETFILTER]: netfilter misc annotations
Al Viro [Thu, 28 Sep 2006 21:21:07 +0000 (14:21 -0700)]
[NETFILTER]: netfilter misc annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NET]: Annotate dst_ops protocol
Al Viro [Thu, 28 Sep 2006 21:20:34 +0000 (14:20 -0700)]
[NET]: Annotate dst_ops protocol

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NET]: is it Andy or Andi ??
Steven Rostedt [Thu, 28 Sep 2006 05:55:39 +0000 (22:55 -0700)]
[NET]: is it Andy or Andi ??

I don't know of any Andy Kleen's but I do know a Andi Kleen.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPVS]: Make sure ip_vs_ftp ports are valid: module_param_array approach
Simon Horman [Thu, 28 Sep 2006 05:53:24 +0000 (22:53 -0700)]
[IPVS]: Make sure ip_vs_ftp ports are valid: module_param_array approach

I'm not entirely sure what happens in the case of a valid port,
at best it'll be silently ignored. This patch ensures that
the port values are unsigned short values, and thus always valid.

This is a second take at fixing this problem, it is simpler
and arguably more correct than the previous approach
that was committed as 3f5af5b353ca36aca4f8a46e3da2172f669dbbbc.
Prior to this patch a patch that reverses
3f5af5b353ca36aca4f8a46e3da2172f669dbbbc was sent.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPVS]: Reverse valid ip_vs_ftp ports fix: port check approach
Simon Horman [Thu, 28 Sep 2006 05:52:47 +0000 (22:52 -0700)]
[IPVS]: Reverse valid ip_vs_ftp ports fix: port check approach

This patch reverses 3f5af5b353ca36aca4f8a46e3da2172f669dbbbc as
a better fix was suggested by Patrick McHardy.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IrDA] stir4200: removing undocumented bits handling
Samuel Ortiz [Thu, 28 Sep 2006 05:50:06 +0000 (22:50 -0700)]
[IrDA] stir4200: removing undocumented bits handling

FIFOCTL_RXERR and FIFOCTL_TXERR are undocumented bits, according to the
Sigmatel datasheet. We should thus not take any assumption on their values
and semantics.

Problem spotted by andrzej zaborowski <balrogg@gmail.com>
Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IrDA] smsc-ircc: More laptops detected
Linus Walleij (LD/EAB [Thu, 28 Sep 2006 05:49:23 +0000 (22:49 -0700)]
[IrDA] smsc-ircc: More laptops detected

This patch detects the smsc-ircc chipset on the nx1000
(including nx7000 and nx7010) and the nx5000 HP/Compaq laptop series.

Patch from "Linus Walleij (LD/EAB)" <linus.walleij@ericsson.com>
Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IrDA] nsc-ircc: Configuration base address for PC87383
Lamarque Vieira Souza [Thu, 28 Sep 2006 05:48:36 +0000 (22:48 -0700)]
[IrDA] nsc-ircc: Configuration base address for PC87383

According to NatSemi datasheet, the configuration base address for the PC8738x
family is 0x2e or 0x164. 0x0 doesn't appear in any datasheet.

Patch from Lamarque Vieira Souza <lamarque@gmail.com>
Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NET] KBUILD: Add missing entries for new net headers.
YOSHIFUJI Hideaki [Thu, 28 Sep 2006 05:43:05 +0000 (22:43 -0700)]
[NET] KBUILD: Add missing entries for new net headers.

Add the following for userspace export by the 'headers_include'
make target: linux/fib_rules.h, linux/if_addr.h, linux/if_link.h,
linux/neighbour.h.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NET]: Move netlink interface bits to linux/if_link.h.
YOSHIFUJI Hideaki [Thu, 28 Sep 2006 05:40:19 +0000 (22:40 -0700)]
[NET]: Move netlink interface bits to linux/if_link.h.

Moving netlink interface bits to linux/if.h is rather troublesome for
applications including both linux/if.h (which was changed to be included
from linux/rtnetlink.h automatically) and net/if.h.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: Do not add a state whose SPI is zero to the SPI hash.
Masahide NAKAMURA [Thu, 28 Sep 2006 05:21:52 +0000 (22:21 -0700)]
[XFRM]: Do not add a state whose SPI is zero to the SPI hash.

SPI=0 is used for acquired IPsec SA and MIPv6 RO state.
Such state should not be added to the SPI hash
because we do not care about it on deleting path.

Signed-off-by: Masahide NAKAMURA <nakam@linux-ipv6.org>
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
18 years ago[NET] loopback: minor statistics optimization
Stephen Hemminger [Thu, 28 Sep 2006 03:33:34 +0000 (20:33 -0700)]
[NET] loopback: minor statistics optimization

The loopback device status structure is a singleton and doesn't
need to be allocated. Add ethtool_ops hooks to show checksum always on,
and make ethtool_ops const.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IrDA]: Memory allocations cleanups
Samuel Ortiz [Thu, 28 Sep 2006 03:06:44 +0000 (20:06 -0700)]
[IrDA]: Memory allocations cleanups

This patch replaces the bunch of arbitrary 64 and 128 bytes alloc_skb() calls
with more accurate allocation sizes.

Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IrDA]: irda-usb needs firmware loader
Samuel Ortiz [Thu, 28 Sep 2006 03:06:16 +0000 (20:06 -0700)]
[IrDA]: irda-usb needs firmware loader

With the inclusion of the stir421x code, we now need to select FW_LOADER
whenever we try to build the irda-usb code.

Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IrDA]: af_irda.c cleanups
Samuel Ortiz [Thu, 28 Sep 2006 03:05:38 +0000 (20:05 -0700)]
[IrDA]: af_irda.c cleanups

We lock the socket when both releasing and getting a disconnected
notification. In the latter case, we also ste the socket as orphan.
This fixes a potential kernel bug that can be triggered when we get the
disconnection notification before closing the socket.

Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV6]: Disable SG for GSO unless we have checksum
Herbert Xu [Thu, 28 Sep 2006 02:03:36 +0000 (19:03 -0700)]
[IPV6]: Disable SG for GSO unless we have checksum

Because the system won't turn off the SG flag for us we
need to do this manually on the IPv6 path.  Otherwise we
will throw IPv6 packets with bad checksums at the hardware.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: xfrm_spi_hash() annotations
Al Viro [Thu, 28 Sep 2006 01:49:35 +0000 (18:49 -0700)]
[XFRM]: xfrm_spi_hash() annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: fl_ipsec_spi is net-endian
Al Viro [Thu, 28 Sep 2006 01:49:07 +0000 (18:49 -0700)]
[XFRM]: fl_ipsec_spi is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: struct xfrm_usersa_id annotations
Al Viro [Thu, 28 Sep 2006 01:48:48 +0000 (18:48 -0700)]
[XFRM]: struct xfrm_usersa_id annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: xfrm_replay_advance() annotations
Al Viro [Thu, 28 Sep 2006 01:48:33 +0000 (18:48 -0700)]
[XFRM]: xfrm_replay_advance() annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: xrfm_replay_check() annotations
Al Viro [Thu, 28 Sep 2006 01:48:18 +0000 (18:48 -0700)]
[XFRM]: xrfm_replay_check() annotations

seq argument is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: xfrm_parse_spi() annotations
Al Viro [Thu, 28 Sep 2006 01:47:59 +0000 (18:47 -0700)]
[XFRM]: xfrm_parse_spi() annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: struct xfrm_id annotations
Al Viro [Thu, 28 Sep 2006 01:47:40 +0000 (18:47 -0700)]
[XFRM]: struct xfrm_id annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: xfrm_state_lookup() annotations
Al Viro [Thu, 28 Sep 2006 01:47:24 +0000 (18:47 -0700)]
[XFRM]: xfrm_state_lookup() annotations

spi argument of xfrm_state_lookup() is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: xfrm_alloc_spi() annotated
Al Viro [Thu, 28 Sep 2006 01:47:05 +0000 (18:47 -0700)]
[XFRM]: xfrm_alloc_spi() annotated

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: xfrm_address_t annotations
Al Viro [Thu, 28 Sep 2006 01:46:48 +0000 (18:46 -0700)]
[XFRM]: xfrm_address_t annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: addr_match() annotations
Al Viro [Thu, 28 Sep 2006 01:46:32 +0000 (18:46 -0700)]
[XFRM]: addr_match() annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: ports in struct xfrm_selector annotated
Al Viro [Thu, 28 Sep 2006 01:46:11 +0000 (18:46 -0700)]
[XFRM]: ports in struct xfrm_selector annotated

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: xfrm_flowi_[sd]port() annotations
Al Viro [Thu, 28 Sep 2006 01:45:50 +0000 (18:45 -0700)]
[XFRM]: xfrm_flowi_[sd]port() annotations

both return net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV6]: sin6_port is net-endian
Al Viro [Thu, 28 Sep 2006 01:45:27 +0000 (18:45 -0700)]
[IPV6]: sin6_port is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV6]: IPv6 headers annotations
Al Viro [Thu, 28 Sep 2006 01:45:11 +0000 (18:45 -0700)]
[IPV6]: IPv6 headers annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV6]: struct in6_addr annotations
Al Viro [Thu, 28 Sep 2006 01:44:54 +0000 (18:44 -0700)]
[IPV6]: struct in6_addr annotations

in6_addr elements are net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: inet_diag annotations
Al Viro [Thu, 28 Sep 2006 01:44:30 +0000 (18:44 -0700)]
[IPV4]: inet_diag annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: inet_rcv_saddr() annotations
Al Viro [Thu, 28 Sep 2006 01:44:10 +0000 (18:44 -0700)]
[IPV4]: inet_rcv_saddr() annotations

inet_rcv_saddr() returns net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: struct inet_timewait_sock annotations
Al Viro [Thu, 28 Sep 2006 01:43:50 +0000 (18:43 -0700)]
[IPV4]: struct inet_timewait_sock annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: annotate inet_lookup() and friends
Al Viro [Thu, 28 Sep 2006 01:43:33 +0000 (18:43 -0700)]
[IPV4]: annotate inet_lookup() and friends

inet_lookup() annotated along with helper functions (__inet_lookup(),
__inet_lookup_established(), inet_lookup_established(),
inet_lookup_listener(), __inet_lookup_listener() and inet_ehashfn())

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: INET_MATCH() annotations
Al Viro [Thu, 28 Sep 2006 01:43:07 +0000 (18:43 -0700)]
[IPV4]: INET_MATCH() annotations

INET_MATCH() and friends depend on an interesting set of kludges:
* there's a pair of adjacent fields in struct inet_sock - __be16 dport
followed by __u16 num.  We want to search by pair, so we combine the keys into
a single 32bit value and compare with 32bit value read from &...->dport.
* on 64bit targets we combine comparisons with pair of adjacent __be32
fields in the same way.

Make sure that we don't mix those values with anything else and that pairs
we form them from have correct types.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: FRA_{DST,SRC} annotated
Al Viro [Thu, 28 Sep 2006 01:40:27 +0000 (18:40 -0700)]
[IPV4]: FRA_{DST,SRC} annotated

use be32 netlink accessors for those

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: net/ipv4/fib annotations
Al Viro [Thu, 28 Sep 2006 01:40:00 +0000 (18:40 -0700)]
[IPV4]: net/ipv4/fib annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: mroute annotations
Al Viro [Thu, 28 Sep 2006 01:39:29 +0000 (18:39 -0700)]
[IPV4]: mroute annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: PIMv2 header annotations
Al Viro [Thu, 28 Sep 2006 01:39:09 +0000 (18:39 -0700)]
[IPV4]: PIMv2 header annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[TCP] net/ipv4/tcp_output.c: trivial annotations
Al Viro [Thu, 28 Sep 2006 01:38:52 +0000 (18:38 -0700)]
[TCP] net/ipv4/tcp_output.c: trivial annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4] net/ipv4/icmp.c: trivial annotations
Al Viro [Thu, 28 Sep 2006 01:38:30 +0000 (18:38 -0700)]
[IPV4] net/ipv4/icmp.c: trivial annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: ICMP header annotations
Al Viro [Thu, 28 Sep 2006 01:38:13 +0000 (18:38 -0700)]
[IPV4]: ICMP header annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[UDP] net/ipv4/udp.c: trivial annotations
Al Viro [Thu, 28 Sep 2006 01:37:41 +0000 (18:37 -0700)]
[UDP] net/ipv4/udp.c: trivial annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: UDP header annotations
Al Viro [Thu, 28 Sep 2006 01:37:19 +0000 (18:37 -0700)]
[IPV4]: UDP header annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: inet_csk_search_req() annotations
Al Viro [Thu, 28 Sep 2006 01:36:59 +0000 (18:36 -0700)]
[IPV4]: inet_csk_search_req() annotations

rport argument is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4] net/ipv4/arp.c: trivial annotations
Al Viro [Thu, 28 Sep 2006 01:36:36 +0000 (18:36 -0700)]
[IPV4] net/ipv4/arp.c: trivial annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: ARP header annotated
Al Viro [Thu, 28 Sep 2006 01:35:47 +0000 (18:35 -0700)]
[IPV4]: ARP header annotated

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: struct inet_request_sock annotations
Al Viro [Thu, 28 Sep 2006 01:35:29 +0000 (18:35 -0700)]
[IPV4]: struct inet_request_sock annotations

->port is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[TCP] net/ipv4/tcp_input.c: trivial annotations
Al Viro [Thu, 28 Sep 2006 01:35:09 +0000 (18:35 -0700)]
[TCP] net/ipv4/tcp_input.c: trivial annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: route.h annotations
Al Viro [Thu, 28 Sep 2006 01:34:41 +0000 (18:34 -0700)]
[IPV4]: route.h annotations

ip_route_connect(), ip_route_newports() get port numbers net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: ip_icmp_error() annotations
Al Viro [Thu, 28 Sep 2006 01:34:21 +0000 (18:34 -0700)]
[IPV4]: ip_icmp_error() annotations

port is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NET]: struct sock_exterr_skb annotations
Al Viro [Thu, 28 Sep 2006 01:34:02 +0000 (18:34 -0700)]
[NET]: struct sock_exterr_skb annotations

->port is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: ip_local_error() annotations
Al Viro [Thu, 28 Sep 2006 01:33:40 +0000 (18:33 -0700)]
[IPV4]: ip_local_error() annotations

port argument is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NET]: ip ports in struct flowi are net-endian
Al Viro [Thu, 28 Sep 2006 01:33:22 +0000 (18:33 -0700)]
[NET]: ip ports in struct flowi are net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: ports in struct inet_sock are net-endian
Al Viro [Thu, 28 Sep 2006 01:33:05 +0000 (18:33 -0700)]
[IPV4]: ports in struct inet_sock are net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[TCP]: struct tcp_sock .pred_flags is net-endian
Al Viro [Thu, 28 Sep 2006 01:32:46 +0000 (18:32 -0700)]
[TCP]: struct tcp_sock .pred_flags is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[TCP]: struct tcp_sack_block annotations
Al Viro [Thu, 28 Sep 2006 01:32:28 +0000 (18:32 -0700)]
[TCP]: struct tcp_sack_block annotations

Some of the instances of tcp_sack_block are host-endian, some - net-endian.
Define struct tcp_sack_block_wire identical to struct tcp_sack_block
with u32 replaced with __be32; annotate uses of tcp_sack_block replacing
net-endian ones with tcp_sack_block_wire.  Change is obviously safe since
for cc(1) __be32 is typedefed to u32.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: TCP headers annotated
Al Viro [Thu, 28 Sep 2006 01:31:51 +0000 (18:31 -0700)]
[IPV4]: TCP headers annotated

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: trivial igmp annotations
Al Viro [Thu, 28 Sep 2006 01:31:32 +0000 (18:31 -0700)]
[IPV4]: trivial igmp annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: ip_mc_sf_allow() annotated
Al Viro [Thu, 28 Sep 2006 01:31:10 +0000 (18:31 -0700)]
[IPV4]: ip_mc_sf_allow() annotated

ip_mc_sf_allow() expects addresses to be passed net-endian.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: struct ip_sf_list and struct ip_sf_socklist annotated
Al Viro [Thu, 28 Sep 2006 01:30:52 +0000 (18:30 -0700)]
[IPV4]: struct ip_sf_list and struct ip_sf_socklist annotated

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: IGMP on-the-wire data is net-endian
Al Viro [Thu, 28 Sep 2006 01:30:28 +0000 (18:30 -0700)]
[IPV4]: IGMP on-the-wire data is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: ip_mc_{inc,dec}_group() annotations
Al Viro [Thu, 28 Sep 2006 01:30:07 +0000 (18:30 -0700)]
[IPV4]: ip_mc_{inc,dec}_group() annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: annotate ipv4 address fields in struct ip_msfilter and struct ip_mreq_source
Al Viro [Thu, 28 Sep 2006 01:29:47 +0000 (18:29 -0700)]
[IPV4]: annotate ipv4 address fields in struct ip_msfilter and struct ip_mreq_source

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: ip_local_error() ipv4 address argument annotated
Al Viro [Thu, 28 Sep 2006 01:29:07 +0000 (18:29 -0700)]
[IPV4]: ip_local_error() ipv4 address argument annotated

daddr is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: trivial ip_options.c annotations
Al Viro [Thu, 28 Sep 2006 01:28:47 +0000 (18:28 -0700)]
[IPV4]: trivial ip_options.c annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: struct ipcm_cookie annotation
Al Viro [Thu, 28 Sep 2006 01:28:28 +0000 (18:28 -0700)]
[IPV4]: struct ipcm_cookie annotation

->addr is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: struct ip_options annotations
Al Viro [Thu, 28 Sep 2006 01:28:07 +0000 (18:28 -0700)]
[IPV4]: struct ip_options annotations

->faddr is net-endian; annotated as such, variables inferred to be net-endian
annotated.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: inet_csk_search_req() (partial) annotations
Al Viro [Thu, 28 Sep 2006 01:27:47 +0000 (18:27 -0700)]
[IPV4]: inet_csk_search_req() (partial) annotations

raddr is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: annotate address in inet_request_sock
Al Viro [Thu, 28 Sep 2006 01:27:13 +0000 (18:27 -0700)]
[IPV4]: annotate address in inet_request_sock

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NET_SCHED]: Fix fallout from dev->qdisc RCU change
Patrick McHardy [Wed, 27 Sep 2006 23:45:45 +0000 (16:45 -0700)]
[NET_SCHED]: Fix fallout from dev->qdisc RCU change

The move of qdisc destruction to a rcu callback broke locking in the
entire qdisc layer by invalidating previously valid assumptions about
the context in which changes to the qdisc tree occur.

The two assumptions were:

- since changes only happen in process context, read_lock doesn't need
  bottem half protection. Now invalid since destruction of inner qdiscs,
  classifiers, actions and estimators happens in the RCU callback unless
  they're manually deleted, resulting in dead-locks when read_lock in
  process context is interrupted by write_lock_bh in bottem half context.

- since changes only happen under the RTNL, no additional locking is
  necessary for data not used during packet processing (f.e. u32_list).
  Again, since destruction now happens in the RCU callback, this assumption
  is not valid anymore, causing races while using this data, which can
  result in corruption or use-after-free.

Instead of "fixing" this by disabling bottem halfs everywhere and adding
new locks/refcounting, this patch makes these assumptions valid again by
moving destruction back to process context. Since only the dev->qdisc
pointer is protected by RCU, but ->enqueue and the qdisc tree are still
protected by dev->qdisc_lock, destruction of the tree can be performed
immediately and only the final free needs to happen in the rcu callback
to make sure dev_queue_xmit doesn't access already freed memory.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NET_SCHED]: HTB: fix incorrect use of RB_EMPTY_NODE
Patrick McHardy [Wed, 27 Sep 2006 23:36:23 +0000 (16:36 -0700)]
[NET_SCHED]: HTB: fix incorrect use of RB_EMPTY_NODE

Fix incorrect use of RB_EMPTY_NODE in htb_safe_rb_erase, which makes it
skip nodes within the rbtree instead of nodes not in the tree, resulting
in crashes later on.

The root cause for this seems to be the very counter-intuitive behaviour
of the RB_EMPTY_NODE macro, which returns _false_ when the node is empty.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: Fix order in inet_init failure path.
Olaf Kirch [Wed, 27 Sep 2006 23:33:45 +0000 (16:33 -0700)]
[IPV4]: Fix order in inet_init failure path.

This is just a minor buglet I came across by accident - when inet_init
fails to register raw_prot, it jumps to out_unregister_udp_proto which
should unregister UDP _and_ TCP.

Signed-off-by: Olaf Kirch <okir@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[PKTGEN]: Documentation update
Francesco Fondelli [Wed, 27 Sep 2006 23:33:05 +0000 (16:33 -0700)]
[PKTGEN]: Documentation update

Signed-off-by: Francesco Fondelli <francesco.fondelli@gmail.com>
Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
Signed-off-by: David S. Miller <davem@davemloft.net>