25 Jul, 2008

2 commits

  • This patch is by far the most complex in the series. It adds a new syscall
    paccept. This syscall differs from accept in that it adds (at the userlevel)
    two additional parameters:

    - a signal mask
    - a flags value

    The flags parameter can be used to set flag like SOCK_CLOEXEC. This is
    imlpemented here as well. Some people argued that this is a property which
    should be inherited from the file desriptor for the server but this is against
    POSIX. Additionally, we really want the signal mask parameter as well
    (similar to pselect, ppoll, etc). So an interface change in inevitable.

    The flag value is the same as for socket and socketpair. I think diverging
    here will only create confusion. Similar to the filesystem interfaces where
    the use of the O_* constants differs, it is acceptable here.

    The signal mask is handled as for pselect etc. The mask is temporarily
    installed for the thread and removed before the call returns. I modeled the
    code after pselect. If there is a problem it's likely also in pselect.

    For architectures which use socketcall I maintained this interface instead of
    adding a system call. The symmetry shouldn't be broken.

    The following test must be adjusted for architectures other than x86 and
    x86-64 and in case the syscall numbers changed.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include

    #ifndef __NR_paccept
    # ifdef __x86_64__
    # define __NR_paccept 288
    # elif defined __i386__
    # define SYS_PACCEPT 18
    # define USE_SOCKETCALL 1
    # else
    # error "need __NR_paccept"
    # endif
    #endif

    #ifdef USE_SOCKETCALL
    # define paccept(fd, addr, addrlen, mask, flags) \
    ({ long args[6] = { \
    (long) fd, (long) addr, (long) addrlen, (long) mask, 8, (long) flags }; \
    syscall (__NR_socketcall, SYS_PACCEPT, args); })
    #else
    # define paccept(fd, addr, addrlen, mask, flags) \
    syscall (__NR_paccept, fd, addr, addrlen, mask, 8, flags)
    #endif

    #define PORT 57392

    #define SOCK_CLOEXEC O_CLOEXEC

    static pthread_barrier_t b;

    static void *
    tf (void *arg)
    {
    pthread_barrier_wait (&b);
    int s = socket (AF_INET, SOCK_STREAM, 0);
    struct sockaddr_in sin;
    sin.sin_family = AF_INET;
    sin.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
    sin.sin_port = htons (PORT);
    connect (s, (const struct sockaddr *) &sin, sizeof (sin));
    close (s);

    pthread_barrier_wait (&b);
    s = socket (AF_INET, SOCK_STREAM, 0);
    sin.sin_port = htons (PORT);
    connect (s, (const struct sockaddr *) &sin, sizeof (sin));
    close (s);
    pthread_barrier_wait (&b);

    pthread_barrier_wait (&b);
    sleep (2);
    pthread_kill ((pthread_t) arg, SIGUSR1);

    return NULL;
    }

    static void
    handler (int s)
    {
    }

    int
    main (void)
    {
    pthread_barrier_init (&b, NULL, 2);

    struct sockaddr_in sin;
    pthread_t th;
    if (pthread_create (&th, NULL, tf, (void *) pthread_self ()) != 0)
    {
    puts ("pthread_create failed");
    return 1;
    }

    int s = socket (AF_INET, SOCK_STREAM, 0);
    int reuse = 1;
    setsockopt (s, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof (reuse));
    sin.sin_family = AF_INET;
    sin.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
    sin.sin_port = htons (PORT);
    bind (s, (struct sockaddr *) &sin, sizeof (sin));
    listen (s, SOMAXCONN);

    pthread_barrier_wait (&b);

    int s2 = paccept (s, NULL, 0, NULL, 0);
    if (s2 < 0)
    {
    puts ("paccept(0) failed");
    return 1;
    }

    int coe = fcntl (s2, F_GETFD);
    if (coe & FD_CLOEXEC)
    {
    puts ("paccept(0) set close-on-exec-flag");
    return 1;
    }
    close (s2);

    pthread_barrier_wait (&b);

    s2 = paccept (s, NULL, 0, NULL, SOCK_CLOEXEC);
    if (s2 < 0)
    {
    puts ("paccept(SOCK_CLOEXEC) failed");
    return 1;
    }

    coe = fcntl (s2, F_GETFD);
    if ((coe & FD_CLOEXEC) == 0)
    {
    puts ("paccept(SOCK_CLOEXEC) does not set close-on-exec flag");
    return 1;
    }
    close (s2);

    pthread_barrier_wait (&b);

    struct sigaction sa;
    sa.sa_handler = handler;
    sa.sa_flags = 0;
    sigemptyset (&sa.sa_mask);
    sigaction (SIGUSR1, &sa, NULL);

    sigset_t ss;
    pthread_sigmask (SIG_SETMASK, NULL, &ss);
    sigaddset (&ss, SIGUSR1);
    pthread_sigmask (SIG_SETMASK, &ss, NULL);

    sigdelset (&ss, SIGUSR1);
    alarm (4);
    pthread_barrier_wait (&b);

    errno = 0 ;
    s2 = paccept (s, NULL, 0, &ss, 0);
    if (s2 != -1 || errno != EINTR)
    {
    puts ("paccept did not fail with EINTR");
    return 1;
    }

    close (s);

    puts ("OK");

    return 0;
    }
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    [akpm@linux-foundation.org: make it compile]
    [akpm@linux-foundation.org: add sys_ni stub]
    Signed-off-by: Ulrich Drepper
    Acked-by: Davide Libenzi
    Cc: Michael Kerrisk
    Cc:
    Cc: "David S. Miller"
    Cc: Roland McGrath
    Cc: Kyle McMartin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ulrich Drepper
     
  • This patch adds support for flag values which are ORed to the type passwd
    to socket and socketpair. The additional code is minimal. The flag
    values in this implementation can and must match the O_* flags. This
    avoids overhead in the conversion.

    The internal functions sock_alloc_fd and sock_map_fd get a new parameters
    and all callers are changed.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #include
    #include
    #include
    #include
    #include

    #define PORT 57392

    /* For Linux these must be the same. */
    #define SOCK_CLOEXEC O_CLOEXEC

    int
    main (void)
    {
    int fd;
    fd = socket (PF_INET, SOCK_STREAM, 0);
    if (fd == -1)
    {
    puts ("socket(0) failed");
    return 1;
    }
    int coe = fcntl (fd, F_GETFD);
    if (coe == -1)
    {
    puts ("fcntl failed");
    return 1;
    }
    if (coe & FD_CLOEXEC)
    {
    puts ("socket(0) set close-on-exec flag");
    return 1;
    }
    close (fd);

    fd = socket (PF_INET, SOCK_STREAM|SOCK_CLOEXEC, 0);
    if (fd == -1)
    {
    puts ("socket(SOCK_CLOEXEC) failed");
    return 1;
    }
    coe = fcntl (fd, F_GETFD);
    if (coe == -1)
    {
    puts ("fcntl failed");
    return 1;
    }
    if ((coe & FD_CLOEXEC) == 0)
    {
    puts ("socket(SOCK_CLOEXEC) does not set close-on-exec flag");
    return 1;
    }
    close (fd);

    int fds[2];
    if (socketpair (PF_UNIX, SOCK_STREAM, 0, fds) == -1)
    {
    puts ("socketpair(0) failed");
    return 1;
    }
    for (int i = 0; i < 2; ++i)
    {
    coe = fcntl (fds[i], F_GETFD);
    if (coe == -1)
    {
    puts ("fcntl failed");
    return 1;
    }
    if (coe & FD_CLOEXEC)
    {
    printf ("socketpair(0) set close-on-exec flag for fds[%d]\n", i);
    return 1;
    }
    close (fds[i]);
    }

    if (socketpair (PF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0, fds) == -1)
    {
    puts ("socketpair(SOCK_CLOEXEC) failed");
    return 1;
    }
    for (int i = 0; i < 2; ++i)
    {
    coe = fcntl (fds[i], F_GETFD);
    if (coe == -1)
    {
    puts ("fcntl failed");
    return 1;
    }
    if ((coe & FD_CLOEXEC) == 0)
    {
    printf ("socketpair(SOCK_CLOEXEC) does not set close-on-exec flag for fds[%d]\n", i);
    return 1;
    }
    close (fds[i]);
    }

    puts ("OK");

    return 0;
    }
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Signed-off-by: Ulrich Drepper
    Acked-by: Davide Libenzi
    Cc: Michael Kerrisk
    Cc: "David S. Miller"
    Cc: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ulrich Drepper
     

24 Jul, 2008

2 commits

  • * 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (31 commits)
    NR_CPUS: Replace NR_CPUS in speedstep-centrino.c
    cpumask: Provide a generic set of CPUMASK_ALLOC macros, FIXUP
    NR_CPUS: Replace NR_CPUS in cpufreq userspace routines
    NR_CPUS: Replace per_cpu(..., smp_processor_id()) with __get_cpu_var
    NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genapic_flat_64.c
    NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genx2apic_uv_x.c
    NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/proc.c
    NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/mcheck/mce_64.c
    cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c, fix
    cpumask: Use optimized CPUMASK_ALLOC macros in the centrino_target
    cpumask: Provide a generic set of CPUMASK_ALLOC macros
    cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c
    cpumask: Optimize cpumask_of_cpu in kernel/time/tick-common.c
    cpumask: Optimize cpumask_of_cpu in drivers/misc/sgi-xp/xpc_main.c
    cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/ldt.c
    cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/io_apic_64.c
    cpumask: Replace cpumask_of_cpu with cpumask_of_cpu_ptr
    Revert "cpumask: introduce new APIs"
    cpumask: make for_each_cpu_mask a bit smaller
    net: Pass reference to cpumask variable in net/sunrpc/svc.c
    ...

    Fix up trivial conflicts in drivers/cpufreq/cpufreq.c manually

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (24 commits)
    I/OAT: I/OAT version 3.0 support
    I/OAT: tcp_dma_copybreak default value dependent on I/OAT version
    I/OAT: Add watchdog/reset functionality to ioatdma
    iop_adma: cleanup iop_chan_xor_slot_count
    iop_adma: document how to calculate the minimum descriptor pool size
    iop_adma: directly reclaim descriptors on allocation failure
    async_tx: make async_tx_test_ack a boolean routine
    async_tx: remove depend_tx from async_tx_sync_epilog
    async_tx: export async_tx_quiesce
    async_tx: fix handling of the "out of descriptor" condition in async_xor
    async_tx: ensure the xor destination buffer remains dma-mapped
    async_tx: list_for_each_entry_rcu() cleanup
    dmaengine: Driver for the Synopsys DesignWare DMA controller
    dmaengine: Add slave DMA interface
    dmaengine: add DMA_COMPL_SKIP_{SRC,DEST}_UNMAP flags to control dma unmap
    dmaengine: Add dma_client parameter to device_alloc_chan_resources
    dmatest: Simple DMA memcpy test client
    dmaengine: DMA engine driver for Marvell XOR engine
    iop-adma: fix platform driver hotplug/coldplug
    dmaengine: track the number of clients using a channel
    ...

    Fixed up conflict in drivers/dca/dca-sysfs.c manually

    Linus Torvalds
     

23 Jul, 2008

13 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (82 commits)
    ipw2200: Call netif_*_queue() interfaces properly.
    netxen: Needs to include linux/vmalloc.h
    [netdrvr] atl1d: fix !CONFIG_PM build
    r6040: rework init_one error handling
    r6040: bump release number to 0.18
    r6040: handle RX fifo full and no descriptor interrupts
    r6040: change the default waiting time
    r6040: use definitions for magic values in descriptor status
    r6040: completely rework the RX path
    r6040: call napi_disable when puting down the interface and set lp->dev accordingly.
    mv643xx_eth: fix NETPOLL build
    r6040: rework the RX buffers allocation routine
    r6040: fix scheduling while atomic in r6040_tx_timeout
    r6040: fix null pointer access and tx timeouts
    r6040: prefix all functions with r6040
    rndis_host: support WM6 devices as modems
    at91_ether: use netstats in net_device structure
    sfc: Create one RX queue and interrupt per CPU package by default
    sfc: Use a separate workqueue for resets
    sfc: I2C adapter initialisation fixes
    ...

    Linus Torvalds
     
  • I/OAT DMA performance tuning showed different optimal values of
    tcp_dma_copybreak for different I/OAT versions (4096 for 1.2 and 2048
    for 2.0). This patch lets ioatdma driver set tcp_dma_copybreak value
    according to these results.

    [dan.j.williams@intel.com: remove some ifdefs]
    Signed-off-by: Maciej Sosnowski
    Signed-off-by: Dan Williams

    Maciej Sosnowski
     
  • Change icmp6_dst_gc to return the one value the caller cares about rather
    than using call by reference.

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

    Stephen Hemminger
     
  • Th fib_table_hash is an array, so use kcalloc.

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

    Stephen Hemminger
     
  • Now there is spin_trylock_bh, use it rather than open coding.

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

    Stephen Hemminger
     
  • This timer normally happens once a minute, there is no need to cause an
    early wakeup for it, so align it to next second boundary to safe power.
    It can't be deferred because then it could take too long on cleanup or DoS.

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

    Stephen Hemminger
     
  • FIB timer list is a trivial size structure, avoid indirection and just
    put it in existing ns.

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

    Stephen Hemminger
     
  • struct ipv6_devconf can now become static.

    Signed-off-by: Adrian Bunk
    Signed-off-by: David S. Miller

    Adrian Bunk
     
  • Commit 20c2c1fd6c842caf70dcb1d94b9d58861949fd3d
    (sctp: add sctp/remaddr table to complete RFC remote address table OID)
    added an unused sctp_assoc_proc_exit() function that seems to have been
    unintentionally created when copying the assocs code.

    Signed-off-by: Adrian Bunk
    Acked-by: Neil Horman
    Signed-off-by: David S. Miller

    Adrian Bunk
     
  • sctp_outq_flush() can now become static.

    Signed-off-by: Adrian Bunk
    Acked-by: Neil Horman
    Signed-off-by: David S. Miller

    Adrian Bunk
     
  • This patch makes the needlessly global qdisc_class_hash_alloc() static.

    Signed-off-by: Adrian Bunk
    Acked-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Adrian Bunk
     
  • The new address list lock needs to handle the same device layering
    issues that the _xmit_lock one does.

    This integrates work done by Patrick McHardy.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • The function header comments have to go with the functions
    they are documenting, or things go horribly wrong when we
    try to process them with the docbook tools.

    Warning(include/linux/netdevice.h:1006): No description found for parameter 'dev_queue'
    Warning(include/linux/netdevice.h:1033): No description found for parameter 'dev_queue'
    Warning(include/linux/netdevice.h:1067): No description found for parameter 'dev_queue'
    Warning(include/linux/netdevice.h:1093): No description found for parameter 'dev_queue'
    Warning(include/linux/netdevice.h:1474): No description found for parameter 'txq'
    Error(net/core/dev.c:1674): cannot understand prototype: 'u32 simple_tx_hashrnd; '

    Signed-off-by: Dave Jones
    Acked-by: Randy Dunlap
    Signed-off-by: David S. Miller

    Dave Jones
     

22 Jul, 2008

17 commits

  • Don't create symlinks in a class to a device that is not owned by the
    class. If the bluetooth subsystem really wants to point to all of the
    devices it controls, it needs to create real devices, not fake symlinks.

    Cc: Maxim Krasnyansky
    Cc: Kay Sievers
    Acked-by: Marcel Holtmann
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • As reported by Alexey Dobriyan:

    CHECK net/ipv4/tcp_output.c
    net/ipv4/tcp_output.c:475:7: warning: dubious: !x & y

    And sparse is damn right!

    if (unlikely(!OPTION_TS & opts->options))
    ^^^
    size += TCPOLEN_SACKPERM_ALIGNED;

    OPTION_TS is (1 << 1), so condition will never trigger.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This patch clamps the cscov setsockopt values to a maximum of 0xFFFF.

    Setsockopt values greater than 0xffff can cause an unwanted
    wrap-around. Further, IPv6 jumbograms are not supported (RFC 3838,
    3.5), so that values greater than 0xffff are not even useful.

    Further changes: fixed a typo in the documentation.

    Signed-off-by: Gerrit Renker
    Signed-off-by: David S. Miller

    Gerrit Renker
     
  • As suggested by Dave:

    This patch adds a function to get the driver name from a struct net_device,
    and consequently uses this in the watchdog timeout handler to print as
    part of the message.

    Signed-off-by: Arjan van de Ven
    Signed-off-by: David S. Miller

    Arjan van de Ven
     
  • Minor nit, use size_t for allocation size and kcalloc to allocate
    an array. Probably makes no actual code difference.

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

    Stephen Hemminger
     
  • This fixes the bridge reference count problem and cleanups ipv6 FIB
    timer management. Don't use expires field, because it is not a proper
    way to test, instead use timer_pending().

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

    Stephen Hemminger
     
  • Introduced by a258860e (netfilter: ctnetlink: add full support for SCTP to ctnetlink):

    net/netfilter/nf_conntrack_proto_sctp.c:483:2: warning: cast from restricted type
    net/netfilter/nf_conntrack_proto_sctp.c:483:2: warning: incorrect type in argument 1 (different base types)
    net/netfilter/nf_conntrack_proto_sctp.c:483:2: expected unsigned int [unsigned] [usertype] x
    net/netfilter/nf_conntrack_proto_sctp.c:483:2: got restricted unsigned int const
    net/netfilter/nf_conntrack_proto_sctp.c:483:2: warning: cast from restricted type
    net/netfilter/nf_conntrack_proto_sctp.c:483:2: warning: cast from restricted type
    net/netfilter/nf_conntrack_proto_sctp.c:483:2: warning: cast from restricted type
    net/netfilter/nf_conntrack_proto_sctp.c:483:2: warning: cast from restricted type
    net/netfilter/nf_conntrack_proto_sctp.c:487:2: warning: cast from restricted type
    net/netfilter/nf_conntrack_proto_sctp.c:487:2: warning: incorrect type in argument 1 (different base types)
    net/netfilter/nf_conntrack_proto_sctp.c:487:2: expected unsigned int [unsigned] [usertype] x
    net/netfilter/nf_conntrack_proto_sctp.c:487:2: got restricted unsigned int const
    net/netfilter/nf_conntrack_proto_sctp.c:487:2: warning: cast from restricted type
    net/netfilter/nf_conntrack_proto_sctp.c:487:2: warning: cast from restricted type
    net/netfilter/nf_conntrack_proto_sctp.c:487:2: warning: cast from restricted type
    net/netfilter/nf_conntrack_proto_sctp.c:487:2: warning: cast from restricted type
    net/netfilter/nf_conntrack_proto_sctp.c:532:42: warning: incorrect type in assignment (different base types)
    net/netfilter/nf_conntrack_proto_sctp.c:532:42: expected restricted unsigned int
    net/netfilter/nf_conntrack_proto_sctp.c:532:42: got unsigned int
    net/netfilter/nf_conntrack_proto_sctp.c:534:39: warning: incorrect type in assignment (different base types)
    net/netfilter/nf_conntrack_proto_sctp.c:534:39: expected restricted unsigned int
    net/netfilter/nf_conntrack_proto_sctp.c:534:39: got unsigned int

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

    Patrick McHardy
     
  • According to RFC2327, the connection information is optional
    in the session description since it can be specified in the
    media description instead.

    My provider does exactly that and does not provide any connection
    information in the session description. As a result the new
    kernel drops all invite responses.

    This patch makes it optional as documented.

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

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

    Jan Engelhardt
     
  • This patch adds some fields to NFLOG to be able to send the complete
    hardware header with all necessary informations.
    It sends to userspace:
    * the type of hardware link
    * the lenght of hardware header
    * the hardware header

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

    Eric Leblond
     
  • Fix netfilter xt_time's time_mt()'s use of do_div() on an s64 by using
    div_s64() instead.

    This was introduced by patch ee4411a1b1e0b679c99686629b5eab5a072ce49f
    ("[NETFILTER]: x_tables: add xt_time match").

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

    David Howells
     
  • Initially netfilter has had 64bit counters for conntrack-based accounting, but
    it was changed in 2.6.14 to save memory. Unfortunately in-kernel 64bit counters are
    still required, for example for "connbytes" extension. However, 64bit counters
    waste a lot of memory and it was not possible to enable/disable it runtime.

    This patch:
    - reimplements accounting with respect to the extension infrastructure,
    - makes one global version of seq_print_acct() instead of two seq_print_counters(),
    - makes it possible to enable it at boot time (for CONFIG_SYSCTL/CONFIG_SYSFS=n),
    - makes it possible to enable/disable it at runtime by sysctl or sysfs,
    - extends counters from 32bit to 64bit,
    - renames ip_conntrack_counter -> nf_conn_counter,
    - enables accounting code unconditionally (no longer depends on CONFIG_NF_CT_ACCT),
    - set initial accounting enable state based on CONFIG_NF_CT_ACCT
    - removes buggy IPCT_COUNTER_FILLING event handling.

    If accounting is enabled newly created connections get additional acct extend.
    Old connections are not changed as it is not possible to add a ct_extend area
    to confirmed conntrack. Accounting is performed for all connections with
    acct extend regardless of a current state of "net.netfilter.nf_conntrack_acct".

    Signed-off-by: Krzysztof Piotr Oledzki
    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Krzysztof Piotr Oledzki
     
  • Signed-off-by: Changli Gao
    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Changli Gao
     
  • This reverts commit a0c80b80e0fb48129e4e9d6a9ede914f9ff1850d.

    After discussions with Jamal and Herbert on netdev, we should
    provide at least minimal prioritization at the qdisc level
    even in multiqueue situations.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Signed-off-by: David S. Miller

    Linus Torvalds
     
  • Based upon feedback from Eric Dumazet and Andi Kleen.

    Cure several deficiencies in simple_tx_hash() by using
    jhash + reciprocol multiply.

    1) Eliminates expensive modulus operation.

    2) Makes hash less attackable by using random seed.

    3) Eliminates endianness hash distribution issues.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Removed unused variable 'skb' in the dev_deactivate_queue function

    Signed-off-by: Daniel Lezcano
    Signed-off-by: David S. Miller

    Daniel Lezcano
     

21 Jul, 2008

6 commits

  • Conflicts:

    net/sunrpc/svc.c

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • * 'for-2.6.27' of git://linux-nfs.org/~bfields/linux: (51 commits)
    nfsd: nfs4xdr.c do-while is not a compound statement
    nfsd: Use C99 initializers in fs/nfsd/nfs4xdr.c
    lockd: Pass "struct sockaddr *" to new failover-by-IP function
    lockd: get host reference in nlmsvc_create_block() instead of callers
    lockd: minor svclock.c style fixes
    lockd: eliminate duplicate nlmsvc_lookup_host call from nlmsvc_lock
    lockd: eliminate duplicate nlmsvc_lookup_host call from nlmsvc_testlock
    lockd: nlm_release_host() checks for NULL, caller needn't
    file lock: reorder struct file_lock to save space on 64 bit builds
    nfsd: take file and mnt write in nfs4_upgrade_open
    nfsd: document open share bit tracking
    nfsd: tabulate nfs4 xdr encoding functions
    nfsd: dprint operation names
    svcrdma: Change WR context get/put to use the kmem cache
    svcrdma: Create a kmem cache for the WR contexts
    svcrdma: Add flush_scheduled_work to module exit function
    svcrdma: Limit ORD based on client's advertised IRD
    svcrdma: Remove unused wait q from svcrdma_xprt structure
    svcrdma: Remove unneeded spin locks from __svc_rdma_free
    svcrdma: Add dma map count and WARN_ON
    ...

    Linus Torvalds
     
  • Reported by Linus.

    Signed-off-by: David S. Miller
    Signed-off-by: Linus Torvalds

    David Miller
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    pkt_sched: Fix build with NET_SCHED disabled.

    Linus Torvalds
     
  • The stab bits can't be referenced uniless the full
    packet scheduler layer is enabled.

    Reported by Stephen Rothwell.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (1232 commits)
    iucv: Fix bad merging.
    net_sched: Add size table for qdiscs
    net_sched: Add accessor function for packet length for qdiscs
    net_sched: Add qdisc_enqueue wrapper
    highmem: Export totalhigh_pages.
    ipv6 mcast: Omit redundant address family checks in ip6_mc_source().
    net: Use standard structures for generic socket address structures.
    ipv6 netns: Make several "global" sysctl variables namespace aware.
    netns: Use net_eq() to compare net-namespaces for optimization.
    ipv6: remove unused macros from net/ipv6.h
    ipv6: remove unused parameter from ip6_ra_control
    tcp: fix kernel panic with listening_get_next
    tcp: Remove redundant checks when setting eff_sacks
    tcp: options clean up
    tcp: Fix MD5 signatures for non-linear skbs
    sctp: Update sctp global memory limit allocations.
    sctp: remove unnecessary byteshifting, calculate directly in big-endian
    sctp: Allow only 1 listening socket with SO_REUSEADDR
    sctp: Do not leak memory on multiple listen() calls
    sctp: Support ipv6only AF_INET6 sockets.
    ...

    Linus Torvalds