14 Feb, 2008

3 commits

  • Move networking (core and drivers) docbook to its own networking book.
    Fix a few kernel-doc errors in header and source files.

    Signed-off-by: Randy Dunlap
    Cc: Trond Myklebust
    Cc: "J. Bruce Fields"
    Cc: Neil Brown
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Use updated file list for docbook files and
    fix kernel-doc warnings in sunrpc:
    Warning(linux-2.6.24-git12//net/sunrpc/rpc_pipe.c:689): No description found for parameter 'rpc_client'
    Warning(linux-2.6.24-git12//net/sunrpc/rpc_pipe.c:765): No description found for parameter 'flags'
    Warning(linux-2.6.24-git12//net/sunrpc/clnt.c:584): No description found for parameter 'tk_ops'
    Warning(linux-2.6.24-git12//net/sunrpc/clnt.c:618): No description found for parameter 'bufsize'

    Signed-off-by: Randy Dunlap
    Cc: Trond Myklebust
    Cc: "J. Bruce Fields"
    Cc: Neil Brown
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • fastcall always expands to empty, remove it.

    Signed-off-by: Harvey Harrison
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     

12 Feb, 2008

1 commit

  • * 'for-linus' of git://linux-nfs.org/~bfields/linux:
    SUNPRC: Fix printk format warning
    nfsd: clean up svc_reserve_auth()
    NLM: don't requeue block if it was invalidated while GRANT_MSG was in flight
    NLM: don't reattempt GRANT_MSG when there is already an RPC in flight
    NLM: have server-side RPC clients default to soft RPC tasks
    NLM: set RPC_CLNT_CREATE_NOPING for NLM RPC clients

    Linus Torvalds
     

11 Feb, 2008

1 commit


10 Feb, 2008

10 commits


09 Feb, 2008

4 commits

  • Setting up a meta match causes a kernel OOPS because of uninitialized
    elements in tree.

    [ 37.322381] BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
    [ 37.322381] IP: [] :em_meta:em_meta_destroy+0x17/0x80

    [ 37.322381] Call Trace:
    [ 37.322381] [] tcf_em_tree_destroy+0x2d/0xa0
    [ 37.322381] [] tcf_em_tree_validate+0x2dc/0x4a0
    [ 37.322381] [] nla_parse+0x92/0xe0
    [ 37.322381] [] :cls_basic:basic_change+0x202/0x3c0
    [ 37.322381] [] kmem_cache_alloc+0x67/0xa0
    [ 37.322381] [] tc_ctl_tfilter+0x3b1/0x580
    [ 37.322381] [] rtnetlink_rcv_msg+0x0/0x260
    [ 37.322381] [] netlink_rcv_skb+0x74/0xa0
    [ 37.322381] [] rtnetlink_rcv+0x18/0x20
    [ 37.322381] [] netlink_unicast+0x263/0x290
    [ 37.322381] [] __alloc_skb+0x96/0x160
    [ 37.322381] [] netlink_sendmsg+0x274/0x340
    [ 37.322381] [] sock_sendmsg+0x12b/0x140
    [ 37.322381] [] autoremove_wake_function+0x0/0x30
    [ 37.322381] [] autoremove_wake_function+0x0/0x30
    [ 37.322381] [] sock_sendmsg+0x12b/0x140
    [ 37.322381] [] zone_statistics+0xb1/0xc0
    [ 37.322381] [] sys_sendmsg+0x20e/0x360
    [ 37.322381] [] sockfd_lookup_light+0x41/0x80
    [ 37.322381] [] handle_mm_fault+0x3eb/0x7f0
    [ 37.322381] [] system_call_after_swapgs+0x7b/0x80

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

    Stephen Hemminger
     
  • David S. Miller
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (21 commits)
    [IPSEC] flow: reorder "struct flow_cache_entry" and remove SLAB_HWCACHE_ALIGN
    [DECNET] ROUTE: remove unecessary alignment
    [IPSEC]: Add support for aes-ctr.
    [ISDN]: fix section mismatch warning in enpci_card_msg
    [TIPC]: declare proto_ops structures as 'const'.
    [TIPC]: Kill unused static inline (x5)
    [TC]: oops in em_meta
    [IPV6] Minor cleanup: remove unused definitions in net/ip6_fib.h
    [IPV6] Minor clenup: remove two unused definitions in net/ip6_route.h
    [AF_IUCV]: defensive programming of iucv_callback_txdone
    [AF_IUCV]: broken send_skb_q results in endless loop
    [IUCV]: wrong irq-disabling locking at module load time
    [CAN]: Minor clean-ups
    [CAN]: Move proto_{,un}register() out of spin-locked region
    [CAN]: Clean up module auto loading
    [IPSEC] flow: Remove an unnecessary ____cacheline_aligned
    [IPV4]: route: fix crash ip_route_input
    [NETFILTER]: xt_iprange: add missing #include
    [NETFILTER]: xt_iprange: fix typo in address family
    [NETFILTER]: nf_conntrack: fix ct_extend ->move operation
    ...

    Linus Torvalds
     
  • There's already an option controlling the net namespaces cloning code, so make
    it work the same way as all the other namespaces' options.

    Signed-off-by: Pavel Emelyanov
    Cc: "David S. Miller"
    Acked-by: Serge Hallyn
    Cc: Cedric Le Goater
    Cc: "Eric W. Biederman"
    Cc: Herbert Poetzl
    Cc: Kirill Korotaev
    Cc: Sukadev Bhattiprolu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelyanov
     

08 Feb, 2008

19 commits

  • 1) We can shrink sizeof(struct flow_cache_entry) by 8 bytes on 64bit arches.
    2) No need to align these structures to hardware cache lines, this only waste
    ram for very litle gain.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Same alignment requirement was removed on IP route cache in the past.

    This alignment actually has bad effect on 32 bit arches, uniprocessor,
    since sizeof(dn_rt_hash_bucket) is forced to 8 bytes instead of 4.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • The below patch allows IPsec to use CTR mode with AES encryption
    algorithm. Tested this using setkey in ipsec-tools.

    Signed-off-by: Joy Latten
    Acked-by: Herbert Xu
    Signed-off-by: David S. Miller

    Joy Latten
     
  • Signed-off-by: Florian Westphal
    Signed-off-by: David S. Miller

    Florian Westphal
     
  • All these static inlines are unused:

    in_own_zone 1 (net/tipc/addr.h)
    msg_dataoctet 1 (net/tipc/msg.h)
    msg_direct 1 (include/net/tipc/tipc_msg.h)
    msg_options 1 (include/net/tipc/tipc_msg.h)
    tipc_nmap_get 1 (net/tipc/bcast.h)

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Ilpo Järvinen
     
  • If userspace passes a unknown match index into em_meta, then
    em_meta_change will return an error and the data for the match will
    not be set. This then causes an null pointer dereference when the
    cleanup is done in the error path via tcf_em_tree_destroy. Since the
    tree structure comes kzalloc, it is initialized to NULL.

    Discovered when testing a new version of tc command against an
    accidental older kernel.

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

    Stephen Hemminger
     
  • The loop in iucv_callback_txdone presumes existence of an entry
    with msg->tag in the send_skb_q list. In error cases this
    assumption might be wrong and might cause an endless loop.
    Loop is rewritten to guarantee loop end in case of missing
    msg->tag entry in send_skb_q.

    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Ursula Braun
     
  • A race has been detected in iucv_callback_txdone().
    skb_unlink has to be done inside the locked area.

    In addition checkings for successful allocations are inserted.

    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Ursula Braun
     
  • Linux may hang when running af_iucv socket programs concurrently
    with a load of module netiucv. iucv_register() tries to take the
    iucv_table_lock with spin_lock_irq. This conflicts with
    iucv_connect() which has a need for an smp_call_function while
    holding the iucv_table_lock.
    Solution: use bh-disabling locking in iucv_register()

    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Ursula Braun
     
  • Remove unneeded variable.
    Rename local variable error to err like in all other places.
    Some white-space changes.

    Signed-off-by: Urs Thuermann
    Signed-off-by: Oliver Hartkopp
    Signed-off-by: David S. Miller

    Urs Thuermann
     
  • The implementation of proto_register() has changed so that it can now
    sleep. The call to proto_register() must be moved out of the
    spin-locked region.

    Signed-off-by: Urs Thuermann
    Signed-off-by: Oliver Hartkopp
    Signed-off-by: David S. Miller

    Urs Thuermann
     
  • Remove local char array to construct module name.
    Don't call request_module() when CONFIG_KMOD is not set.

    Signed-off-by: Urs Thuermann
    Signed-off-by: Oliver Hartkopp
    Signed-off-by: David S. Miller

    Urs Thuermann
     
  • We use a percpu variable named flow_hash_info, which holds 12 bytes.

    It is currently marked as ____cacheline_aligned, which makes linker
    skip space to properly align this variable.

    Before :
    c065cc90 D per_cpu__softnet_data
    c065cd00 d per_cpu__flow_tables

    c065cd80 d per_cpu__flow_hash_info

    c065ce00 d per_cpu__flow_flush_tasklets
    c065ce14 d per_cpu__rt_cache_stat

    This alignement is quite unproductive, and removing it reduces the
    size of percpu data (by 240 bytes on my x86 machine), and improves
    performance (flow_tables & flow_hash_info can share a single cache
    line)

    After patch :
    c065cc04 D per_cpu__softnet_data
    c065cc4c d per_cpu__flow_tables
    c065cc50 d per_cpu__flow_hash_info
    c065cc5c d per_cpu__flow_flush_tasklets
    c065cc70 d per_cpu__rt_cache_stat

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • ip_route_me_harder() may call ip_route_input() with skbs that don't
    have skb->dev set for skbs rerouted in LOCAL_OUT and TCP resets
    generated by the REJECT target, resulting in a crash when dereferencing
    skb->dev->nd_net. Since ip_route_input() has an input device argument,
    it seems correct to use that one anyway.

    Bug introduced in b5921910a1 (Routing cache virtualization).

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • Signed-off-by: Jan Engelhardt
    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Jan Engelhardt
     
  • The family for iprange_mt4 should be AF_INET, not AF_INET6.
    Noticed by Jiri Moravec .

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • The ->move operation has two bugs:

    - It is called with the same extension as source and destination,
    so it doesn't update the new extension.

    - The address of the old extension is calculated incorrectly,
    instead of (void *)ct->ext + ct->ext->offset[i] it uses
    ct->ext + ct->ext->offset[i].

    Fixes a crash on x86_64 reported by Chuck Ebbert
    and Thomas Woerner .

    Tested-by: Thomas Woerner

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • TCP connection tracking in netfilter did not handle TCP reopening
    properly: active close was taken into account for one side only and
    not for any side, which is fixed now. The patch includes more comments
    to explain the logic how the different cases are handled.
    The bug was discovered by Jeff Chua.

    Signed-off-by: Jozsef Kadlecsik
    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Jozsef Kadlecsik
     
  • Convert instances of ERR_PTR(PTR_ERR(p)) to ERR_CAST(p) using:

    perl -spi -e 's/ERR_PTR[(]PTR_ERR[(](.*)[)][)]/ERR_CAST(\1)/' `grep -rl 'ERR_PTR[(]*PTR_ERR' fs crypto net security`

    Signed-off-by: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     

07 Feb, 2008

2 commits

  • In a few instances, we need to remove the chunk from the transmitted list
    prior to freeing it. This is because the free code doesn't do that any
    more and so we need to do it manually.

    Signed-off-by: Vlad Yasevich

    Vlad Yasevich
     
  • While recevied ASCONF chunk with serial number less then needed, kernel
    will treat this chunk as a retransmitted ASCONF chunk and find cached
    ASCONF-ACK chunk used sctp_assoc_lookup_asconf_ack(). But this function
    will always return NO-NULL. So response with cached ASCONF-ACKs chunk
    will cause kernel panic.
    In function sctp_assoc_lookup_asconf_ack(), if the cached ASCONF-ACKs
    list asconf_ack_list is empty, or if the serial being requested does not
    exists, the function as it currectly stands returns the actuall
    list_head asoc->asconf_ack_list, this is not a cache ASCONF-ACK chunk
    but a bogus pointer.

    Signed-off-by: Wei Yongjun
    Signed-off-by: Vlad Yasevich

    Wei Yongjun