07 Feb, 2008

4 commits

  • This merges the mux.c (including the connection interface) with trans_fd
    in preparation for transport API changes. Ultimately, trans_fd will need
    to be rewritten to clean it up and simplify the implementation, but this
    reorganization is viewed as the first step.

    Signed-off-by: Eric Van Hensbergen

    Eric Van Hensbergen
     
  • GDM gets unhappy if /var/gdm doesn't have the sticky bit set. This patch adds
    support for the sticky bit in much the same way setuid/setgid is supported.

    With this patch, I can launch X from a v9fs rootfs (although I quickly run out
    of fds in the server once gnome starts up).

    Signed-off-by: Anthony Liguori
    Acked-by: Eric Van Hensbergen

    Anthony Liguori
     
  • This replaces the console-based virto client with a block-based
    client using a single request queue.

    Signed-off-by: Eric Van Hensbergen

    Eric Van Hensbergen
     
  • Add a new transport function which allows a cut-thru directly to
    the transport instead of processing request through the mux if the
    cut-thru exists.

    Signed-off-by: Eric Van Hensbergen

    Eric Van Hensbergen
     

06 Feb, 2008

2 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (21 commits)
    [PKT_SCHED]: vlan tag match
    [NET]: Add if_addrlabel.h to sanitized headers.
    [NET] rtnetlink.c: remove no longer used functions
    [ICMP]: Restore pskb_pull calls in receive function
    [INET]: Fix accidentally broken inet(6)_hash_connect's port offset calculations.
    [NET]: Remove further references to net-modules.txt
    bluetooth rfcomm tty: destroy before tty_close()
    bluetooth: blacklist another Broadcom BCM2035 device
    drivers/bluetooth/btsdio.c: fix double-free
    drivers/bluetooth/bpa10x.c: fix memleak
    bluetooth: uninlining
    bluetooth: hidp_process_hid_control remove unnecessary parameter dealing
    tun: impossible to deassert IFF_ONE_QUEUE or IFF_NO_PI
    hamradio: fix dmascc section mismatch
    [SCTP]: Fix kernel panic while received AUTH chunk with BAD shared key identifier
    [SCTP]: Fix kernel panic while received AUTH chunk while enabled auth
    [IPV4]: Formatting fix for /proc/net/fib_trie.
    [IPV6]: Fix sysctl compilation error.
    [NET_SCHED]: Add #ifdef CONFIG_NET_EMATCH in net/sched/cls_flow.c (latest git broken build)
    [IPV4]: Fix compile error building without CONFIG_FS_PROC
    ...

    Linus Torvalds
     
  • Add a new set of configuration functions to the NetLabel/LSM API so that
    LSMs can perform their own configuration of the NetLabel subsystem without
    relying on assistance from userspace.

    Signed-off-by: Paul Moore
    Signed-off-by: Casey Schaufler
    Reviewed-by: James Morris
    Cc: Chris Wright
    Cc: Stephen Smalley
    Cc: Casey Schaufler
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Moore
     

05 Feb, 2008

3 commits

  • The port offset calculations depend on the protocol family, but, as
    Adrian noticed, I broke this logic with the commit

    5ee31fc1ecdcbc234c8c56dcacef87c8e09909d8
    [INET]: Consolidate inet(6)_hash_connect.

    Return this logic back, by passing the port offset directly into the
    consolidated function.

    Signed-off-by: Pavel Emelyanov
    Noticed-by: Adrian Bunk
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • Move ipv6_icmp_sysctl_init and ipv6_route_sysctl_init into the right
    ifdef section otherwise that does not compile when CONFIG_SYSCTL=yes
    and CONFIG_PROC_FS=no

    Signed-off-by: Daniel Lezcano
    Acked-by: YOSHIFUJI Hideaki
    Signed-off-by: David S. Miller

    Daniel Lezcano
     
  • compile error building without CONFIG_FS_PROC:

    net/ipv4/fib_frontend.c: In function 'fib_net_init':
    net/ipv4/fib_frontend.c:1032: error: implicit declaration of function 'fib_proc_
    init'
    net/ipv4/fib_frontend.c: In function 'fib_net_exit':
    net/ipv4/fib_frontend.c:1047: error: implicit declaration of function 'fib_proc_
    exit'

    Signed-off-by: Li Zefan
    Signed-off-by: David S. Miller

    Li Zefan
     

03 Feb, 2008

4 commits

  • /home/acme/git/net-2.6/net/ipv6/mcast.c:
    struct ifmcaddr6 | -8
    1 struct changed
    igmp6_group_dropped | -6
    add_grec | -3
    mld_ifc_timer_expire | -18
    ip6_mc_add_src | -3
    ip6_mc_del_src | -3
    igmp6_group_added | -3
    6 functions changed, 36 bytes removed, diff: -36

    ipv6.ko:
    6 functions changed, 36 bytes removed, diff: -36

    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Arnaldo Carvalho de Melo
     
  • /home/acme/git/net-2.6/net/ipv6/tcp_ipv6.c:
    struct inet_timewait_sock | -8
    struct tcp_timewait_sock | -8
    2 structs changed
    tcp_v6_rcv | -6
    1 function changed, 6 bytes removed, diff: -6

    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Arnaldo Carvalho de Melo
     
  • And make it a multiple of a 64 bytes, reducing cacheline trashing:

    Before:

    [acme@doppio net-2.6]$ pahole -C inet6_dev net/dccp/ipv6.o
    struct inet6_dev {

    long unsigned int mc_maxdelay; /* 48 8 */
    unsigned char mc_qrv; /* 56 1 */
    unsigned char mc_gq_running; /* 57 1 */
    unsigned char mc_ifc_count; /* 58 1 */

    /* XXX 5 bytes hole, try to pack */

    /* --- cacheline 1 boundary (64 bytes) --- */
    struct timer_list mc_gq_timer; /* 64 48 */

    __u32 if_flags; /* 180 4 */
    int dead; /* 184 4 */
    u8 rndid[8]; /* 188 8 */

    /* XXX 4 bytes hole, try to pack */

    /* --- cacheline 3 boundary (192 bytes) was 8 bytes ago --- */
    struct timer_list regen_timer; /* 200 48 */

    /* size: 456, cachelines: 8 */
    /* sum members: 447, holes: 2, sum holes: 9 */
    /* last cacheline: 8 bytes */
    };

    After:

    net-2.6/net/ipv6/af_inet6.c:
    struct inet6_dev | -8
    1 struct changed

    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Arnaldo Carvalho de Melo
     
  • This way we can remove TCP and DCCP specific versions of

    sk->sk_prot->get_port: both v4 and v6 use inet_csk_get_port
    sk->sk_prot->hash: inet_hash is directly used, only v6 need
    a specific version to deal with mapped sockets
    sk->sk_prot->unhash: both v4 and v6 use inet_hash directly

    struct inet_connection_sock_af_ops also gets a new member, bind_conflict, so
    that inet_csk_get_port can find the per family routine.

    Now only the lookup routines receive as a parameter a struct inet_hashtable.

    With this we further reuse code, reducing the difference among INET transport
    protocols.

    Eventually work has to be done on UDP and SCTP to make them share this
    infrastructure and get as a bonus inet_diag interfaces so that iproute can be
    used with these protocols.

    net-2.6/net/ipv4/inet_hashtables.c:
    struct proto | +8
    struct inet_connection_sock_af_ops | +8
    2 structs changed
    __inet_hash_nolisten | +18
    __inet_hash | -210
    inet_put_port | +8
    inet_bind_bucket_create | +1
    __inet_hash_connect | -8
    5 functions changed, 27 bytes added, 218 bytes removed, diff: -191

    net-2.6/net/core/sock.c:
    proto_seq_show | +3
    1 function changed, 3 bytes added, diff: +3

    net-2.6/net/ipv4/inet_connection_sock.c:
    inet_csk_get_port | +15
    1 function changed, 15 bytes added, diff: +15

    net-2.6/net/ipv4/tcp.c:
    tcp_set_state | -7
    1 function changed, 7 bytes removed, diff: -7

    net-2.6/net/ipv4/tcp_ipv4.c:
    tcp_v4_get_port | -31
    tcp_v4_hash | -48
    tcp_v4_destroy_sock | -7
    tcp_v4_syn_recv_sock | -2
    tcp_unhash | -179
    5 functions changed, 267 bytes removed, diff: -267

    net-2.6/net/ipv6/inet6_hashtables.c:
    __inet6_hash | +8
    1 function changed, 8 bytes added, diff: +8

    net-2.6/net/ipv4/inet_hashtables.c:
    inet_unhash | +190
    inet_hash | +242
    2 functions changed, 432 bytes added, diff: +432

    vmlinux:
    16 functions changed, 485 bytes added, 492 bytes removed, diff: -7

    /home/acme/git/net-2.6/net/ipv6/tcp_ipv6.c:
    tcp_v6_get_port | -31
    tcp_v6_hash | -7
    tcp_v6_syn_recv_sock | -9
    3 functions changed, 47 bytes removed, diff: -47

    /home/acme/git/net-2.6/net/dccp/proto.c:
    dccp_destroy_sock | -7
    dccp_unhash | -179
    dccp_hash | -49
    dccp_set_state | -7
    dccp_done | +1
    5 functions changed, 1 bytes added, 242 bytes removed, diff: -241

    /home/acme/git/net-2.6/net/dccp/ipv4.c:
    dccp_v4_get_port | -31
    dccp_v4_request_recv_sock | -2
    2 functions changed, 33 bytes removed, diff: -33

    /home/acme/git/net-2.6/net/dccp/ipv6.c:
    dccp_v6_get_port | -31
    dccp_v6_hash | -7
    dccp_v6_request_recv_sock | +5
    3 functions changed, 5 bytes added, 38 bytes removed, diff: -33

    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Arnaldo Carvalho de Melo
     

01 Feb, 2008

27 commits