24 Mar, 2011

2 commits

  • As a preparation for removing ext2 non-atomic bit operations from
    asm/bitops.h. This converts ext2 non-atomic bit operations to
    little-endian bit operations.

    Signed-off-by: Akinobu Mita
    Cc: Andy Grover
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • asm-generic/bitops/le.h is only intended to be included directly from
    asm-generic/bitops/ext2-non-atomic.h or asm-generic/bitops/minix-le.h
    which implements generic ext2 or minix bit operations.

    This stops including asm-generic/bitops/le.h directly and use ext2
    non-atomic bit operations instead.

    It seems odd to use ext2_*_bit() on rds, but it will replaced with
    __{set,clear,test}_bit_le() after introducing little endian bit operations
    for all architectures. This indirect step is necessary to maintain
    bisectability for some architectures which have their own little-endian
    bit operations.

    Signed-off-by: Akinobu Mita
    Cc: Andy Grover
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     

23 Mar, 2011

10 commits

  • ksoftirqd, kworker, migration, and pktgend kthreads can be created with
    kthread_create_on_node(), to get proper NUMA affinities for their stack and
    task_struct.

    Signed-off-by: Eric Dumazet
    Acked-by: David S. Miller
    Reviewed-by: Andi Kleen
    Acked-by: Rusty Russell
    Acked-by: Tejun Heo
    Cc: Tony Luck
    Cc: Fenghua Yu
    Cc: David Howells
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Dumazet
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
    [net/9p]: Introduce basic flow-control for VirtIO transport.
    9p: use the updated offset given by generic_write_checks
    [net/9p] Don't re-pin pages on retrying virtqueue_add_buf().
    [net/9p] Set the condition just before waking up.
    [net/9p] unconditional wake_up to proc waiting for space on VirtIO ring
    fs/9p: Add v9fs_dentry2v9ses
    fs/9p: Attach writeback_fid on first open with WR flag
    fs/9p: Open writeback fid in O_SYNC mode
    fs/9p: Use truncate_setsize instead of vmtruncate
    net/9p: Fix compile warning
    net/9p: Convert the in the 9p rpc call path to GFP_NOFS
    fs/9p: Fix race in initializing writeback fid

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    rbd: use watch/notify for changes in rbd header
    libceph: add lingering request and watch/notify event framework
    rbd: update email address in Documentation
    ceph: rename dentry_release -> d_release, fix comment
    ceph: add request to the tail of unsafe write list
    ceph: remove request from unsafe list if it is canceled/timed out
    ceph: move readahead default to fs/ceph from libceph
    ceph: add ino32 mount option
    ceph: update common header files
    ceph: remove debugfs debug cruft
    libceph: fix osd request queuing on osdmap updates
    ceph: preserve I_COMPLETE across rename
    libceph: Fix base64-decoding when input ends in newline.

    Linus Torvalds
     
  • Recent zerocopy work in the 9P VirtIO transport maps and pins
    user buffers into kernel memory for the server to work on them.
    Since the user process can initiate this kind of pinning with a simple
    read/write call, thousands of IO threads initiated by the user process can
    hog the system resources and could result into denial of service.

    This patch introduces flow control to avoid that extreme scenario.

    The ceiling limit to avoid denial of service attacks is set to relatively
    high (nr_free_pagecache_pages()/4) so that it won't interfere with
    regular usage, but can step in extreme cases to limit the total system
    hang. Since we don't have a global structure to accommodate this variable,
    I choose the virtio_chan as the home for this.

    Signed-off-by: Venkateswararao Jujjuri
    Reviewed-by: Badari Pulavarty
    Signed-off-by: Eric Van Hensbergen

    Venkateswararao Jujjuri (JV)
     
  • Signed-off-by: Venkateswararao Jujjuri
    Signed-off-by: Eric Van Hensbergen

    Venkateswararao Jujjuri (JV)
     
  • Given that the sprious wake-ups are common, we need to move the
    condition setting right next to the wake_up(). After setting the condition
    to req->status = REQ_STATUS_RCVD, sprious wakeups may cause the
    virtqueue back on the free list for someone else to use.
    This may result in kernel panic while relasing the pinned pages
    in p9_release_req_pages().

    Also rearranged the while loop in req_done() for better redability.

    Signed-off-by: Venkateswararao Jujjuri
    Signed-off-by: Eric Van Hensbergen

    Venkateswararao Jujjuri (JV)
     
  • Process may wait to get space on VirtIO ring to send a transaction to
    VirtFS server. Current code just does a conditional wake_up() which
    means only one process will be woken up even if multiple processes
    are waiting.

    This fix makes the wake_up unconditional. Hence we won't have any
    processes waiting for-ever.

    Signed-off-by: Venkateswararao Jujjuri
    Signed-off-by: Eric Van Hensbergen

    Venkateswararao Jujjuri (JV)
     
  • Signed-off-by: Aneesh Kumar K.V
    Signed-off-by: Venkateswararao Jujjuri
    Signed-off-by: Eric Van Hensbergen

    Aneesh Kumar K.V
     
  • Without this we can cause reclaim allocation in writepage.

    [ 3433.448430] =================================
    [ 3433.449117] [ INFO: inconsistent lock state ]
    [ 3433.449117] 2.6.38-rc5+ #84
    [ 3433.449117] ---------------------------------
    [ 3433.449117] inconsistent {RECLAIM_FS-ON-W} -> {IN-RECLAIM_FS-R} usage.
    [ 3433.449117] kswapd0/505 [HC0[0]:SC0[0]:HE1:SE1] takes:
    [ 3433.449117] (iprune_sem){+++++-}, at: [] shrink_icache_memory+0x45/0x2b1
    [ 3433.449117] {RECLAIM_FS-ON-W} state was registered at:
    [ 3433.449117] [] mark_held_locks+0x52/0x70
    [ 3433.449117] [] lockdep_trace_alloc+0x85/0x9f
    [ 3433.449117] [] slab_pre_alloc_hook+0x18/0x3c
    [ 3433.449117] [] kmem_cache_alloc+0x23/0xa2
    [ 3433.449117] [] idr_pre_get+0x2d/0x6f
    [ 3433.449117] [] p9_idpool_get+0x30/0xae
    [ 3433.449117] [] p9_client_rpc+0xd7/0x9b0
    [ 3433.449117] [] p9_client_clunk+0x88/0xdb
    [ 3433.449117] [] v9fs_evict_inode+0x3c/0x48
    [ 3433.449117] [] evict+0x1f/0x87
    [ 3433.449117] [] dispose_list+0x47/0xe3
    [ 3433.449117] [] evict_inodes+0x138/0x14f
    [ 3433.449117] [] generic_shutdown_super+0x57/0xe8
    [ 3433.449117] [] kill_anon_super+0x11/0x50
    [ 3433.449117] [] v9fs_kill_super+0x49/0xab
    [ 3433.449117] [] deactivate_locked_super+0x21/0x46
    [ 3433.449117] [] deactivate_super+0x40/0x44
    [ 3433.449117] [] mntput_no_expire+0x100/0x109
    [ 3433.449117] [] sys_umount+0x2f1/0x31c
    [ 3433.449117] [] system_call_fastpath+0x16/0x1b
    [ 3433.449117] irq event stamp: 192941
    [ 3433.449117] hardirqs last enabled at (192941): [] _raw_spin_unlock_irq+0x2b/0x30
    [ 3433.449117] hardirqs last disabled at (192940): [] shrink_inactive_list+0x290/0x2f5
    [ 3433.449117] softirqs last enabled at (188470): [] __do_softirq+0x133/0x152
    [ 3433.449117] softirqs last disabled at (188455): [] call_softirq+0x1c/0x28
    [ 3433.449117]
    [ 3433.449117] other info that might help us debug this:
    [ 3433.449117] 1 lock held by kswapd0/505:
    [ 3433.449117] #0: (shrinker_rwsem){++++..}, at: [] shrink_slab+0x38/0x15f
    [ 3433.449117]
    [ 3433.449117] stack backtrace:
    [ 3433.449117] Pid: 505, comm: kswapd0 Not tainted 2.6.38-rc5+ #84
    [ 3433.449117] Call Trace:
    [ 3433.449117] [] ? valid_state+0x17e/0x191
    [ 3433.449117] [] ? save_stack_trace+0x28/0x45
    [ 3433.449117] [] ? check_usage_forwards+0x0/0x87
    [ 3433.449117] [] ? mark_lock+0x113/0x22c
    [ 3433.449117] [] ? __lock_acquire+0x37a/0xcf7
    [ 3433.449117] [] ? mark_lock+0x2d/0x22c
    [ 3433.449117] [] ? __lock_acquire+0x392/0xcf7
    [ 3433.449117] [] ? determine_dirtyable_memory+0x15/0x28
    [ 3433.449117] [] ? lock_acquire+0x57/0x6d
    [ 3433.449117] [] ? shrink_icache_memory+0x45/0x2b1
    [ 3433.449117] [] ? down_read+0x47/0x5c
    [ 3433.449117] [] ? shrink_icache_memory+0x45/0x2b1
    [ 3433.449117] [] ? shrink_icache_memory+0x45/0x2b1
    [ 3433.449117] [] ? shrink_slab+0xdb/0x15f
    [ 3433.449117] [] ? kswapd+0x574/0x96a
    [ 3433.449117] [] ? kswapd+0x0/0x96a
    [ 3433.449117] [] ? kthread+0x7d/0x85
    [ 3433.449117] [] ? kernel_thread_helper+0x4/0x10
    [ 3433.449117] [] ? restore_args+0x0/0x30
    [ 3433.449117] [] ? kthread+0x0/0x85
    [ 3433.449117] [] ? kernel_thread_helper+0x0/0x10

    Signed-off-by: Aneesh Kumar K.V
    Signed-off-by: Venkateswararao Jujjuri
    Signed-off-by: Eric Van Hensbergen

    Aneesh Kumar K.V
     
  • Lingering requests are requests that are sent to the OSD normally but
    tracked also after we get a successful request. This keeps the OSD
    connection open and resends the original request if the object moves to
    another OSD. The OSD can then send notification messages back to us
    if another client initiates a notify.

    This framework will be used by RBD so that the client gets notification
    when a snapshot is created by another node or tool.

    Signed-off-by: Yehuda Sadeh
    Signed-off-by: Sage Weil

    Yehuda Sadeh
     

22 Mar, 2011

9 commits

  • As part of the work to make IPVS network namespace aware
    __ip_vs_app_mutex was replaced by a per-namespace lock,
    ipvs->app_mutex. ipvs->app_key is also supplied for debugging purposes.

    Unfortunately this implementation results in ipvs->app_key residing
    in non-static storage which at the very least causes a lockdep warning.

    This patch takes the rather heavy-handed approach of reinstating
    __ip_vs_app_mutex which will cover access to the ipvs->list_head
    of all network namespaces.

    [ 12.610000] IPVS: Creating netns size=2456 id=0
    [ 12.630000] IPVS: Registered protocols (TCP, UDP, SCTP, AH, ESP)
    [ 12.640000] BUG: key ffff880003bbf1a0 not in .data!
    [ 12.640000] ------------[ cut here ]------------
    [ 12.640000] WARNING: at kernel/lockdep.c:2701 lockdep_init_map+0x37b/0x570()
    [ 12.640000] Hardware name: Bochs
    [ 12.640000] Pid: 1, comm: swapper Tainted: G W 2.6.38-kexec-06330-g69b7efe-dirty #122
    [ 12.650000] Call Trace:
    [ 12.650000] [] warn_slowpath_common+0x75/0xb0
    [ 12.650000] [] warn_slowpath_null+0x15/0x20
    [ 12.650000] [] lockdep_init_map+0x37b/0x570
    [ 12.650000] [] ? trace_hardirqs_on+0xd/0x10
    [ 12.650000] [] debug_mutex_init+0x38/0x50
    [ 12.650000] [] __mutex_init+0x5c/0x70
    [ 12.650000] [] __ip_vs_app_init+0x64/0x86
    [ 12.660000] [] ? ip_vs_init+0x0/0xff
    [ 12.660000] [] T.620+0x43/0x170
    [ 12.660000] [] ? register_pernet_subsys+0x1a/0x40
    [ 12.660000] [] ? ip_vs_init+0x0/0xff
    [ 12.660000] [] ? ip_vs_init+0x0/0xff
    [ 12.660000] [] register_pernet_operations+0x57/0xb0
    [ 12.660000] [] ? ip_vs_init+0x0/0xff
    [ 12.670000] [] register_pernet_subsys+0x29/0x40
    [ 12.670000] [] ip_vs_app_init+0x10/0x12
    [ 12.670000] [] ip_vs_init+0x4c/0xff
    [ 12.670000] [] do_one_initcall+0x7a/0x12e
    [ 12.670000] [] kernel_init+0x13e/0x1c2
    [ 12.670000] [] kernel_thread_helper+0x4/0x10
    [ 12.670000] [] ? restore_args+0x0/0x30
    [ 12.680000] [] ? kernel_init+0x0/0x1c2
    [ 12.680000] [] ? kernel_thread_helper+0x0/0x1global0

    Signed-off-by: Simon Horman
    Cc: Ingo Molnar
    Cc: Eric Dumazet
    Cc: Julian Anastasov
    Cc: Hans Schillstrom
    Signed-off-by: David S. Miller

    Simon Horman
     
  • Reported-by: Ingo Molnar
    Signed-off-by: Eric Dumazet
    Cc: Simon Horman
    Cc: Julian Anastasov
    Acked-by: Simon Horman
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • When I was fixing issues with unregisgtering tables under /proc/sys/net/ipv6/neigh
    by adding a mount point it appears I missed a critical ordering issue, in the
    ipv6 initialization. I had not realized that ipv6_sysctl_register is called
    at the very end of the ipv6 initialization and in particular after we call
    neigh_sysctl_register from ndisc_init.

    "neigh" needs to be initialized in ipv6_static_sysctl_register which is
    the first ipv6 table to initialized, and definitely before ndisc_init.
    This removes the weirdness of duplicate tables while still providing a
    "neigh" mount point which prevents races in sysctl unregistering.

    This was initially reported at https://bugzilla.kernel.org/show_bug.cgi?id=31232
    Reported-by: sunkan@zappa.cx
    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • It was pointed out to me recently that my spelling could be better :)

    Signed-off-by: Neil Horman
    Signed-off-by: David S. Miller

    Neil Horman
     
  • The BKL removal in appletalk introduced a use-after-free problem,
    where atalk_destroy_socket frees a sock, but we still release
    the socket lock on it.

    An easy fix is to take an extra reference on the sock and sock_put
    it when returning from atalk_release.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Arnd Bergmann
     
  • Commit b0d0d915d1d1a0 (remove the BKL) added a regression, because
    sock_put() can free memory while we are going to use it later.

    Fix is to delay sock_put() _after_ release_sock().

    Reported-by: Ingo Molnar
    Tested-by: Ingo Molnar
    Signed-off-by: Eric Dumazet
    Acked-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • A struct used in the l2tp_eth driver for registering network namespace
    ops was incorrectly marked as __net_initdata, leading to oops when
    module unloaded.

    BUG: unable to handle kernel paging request at ffffffffa00ec098
    IP: [] ops_exit_list+0x7/0x4b
    PGD 142d067 PUD 1431063 PMD 195da8067 PTE 0
    Oops: 0000 [#1] SMP
    last sysfs file: /sys/module/l2tp_eth/refcnt
    Call Trace:
    [] ? unregister_pernet_operations+0x32/0x93
    [] ? unregister_pernet_device+0x2b/0x38
    [] ? sys_delete_module+0x1b8/0x222
    [] ? do_munmap+0x254/0x318
    [] ? page_fault+0x25/0x30
    [] ? system_call_fastpath+0x16/0x1b

    Signed-off-by: James Chapman
    Signed-off-by: David S. Miller

    James Chapman
     
  • Commit 'xfrm: Move IPsec replay detection functions to a separate file'
    (9fdc4883d92d20842c5acea77a4a21bb1574b495)
    introduce repl field to struct xfrm_state, and only initialize it
    under SA's netlink create path, the other path, such as pf_key,
    ipcomp/ipcomp6 etc, the repl field remaining uninitialize. So if
    the SA is created by pf_key, any input packet with SA's encryption
    algorithm will cause panic.

    int xfrm_input()
    {
    ...
    x->repl->advance(x, seq);
    ...
    }

    This patch fixed it by introduce new function __xfrm_init_state().

    Pid: 0, comm: swapper Not tainted 2.6.38-next+ #14 Bochs Bochs
    EIP: 0060:[] EFLAGS: 00010206 CPU: 0
    EIP is at xfrm_input+0x31c/0x4cc
    EAX: dd839c00 EBX: 00000084 ECX: 00000000 EDX: 01000000
    ESI: dd839c00 EDI: de3a0780 EBP: dec1de88 ESP: dec1de64
    DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
    Process swapper (pid: 0, ti=dec1c000 task=c09c0f20 task.ti=c0992000)
    Stack:
    00000000 00000000 00000002 c0ba27c0 00100000 01000000 de3a0798 c0ba27c0
    00000033 dec1de98 c0786848 00000000 de3a0780 dec1dea4 c0786868 00000000
    dec1debc c074ee56 e1da6b8c de3a0780 c074ed44 de3a07a8 dec1decc c074ef32
    Call Trace:
    [] xfrm4_rcv_encap+0x22/0x27
    [] xfrm4_rcv+0x1b/0x1d
    [] ip_local_deliver_finish+0x112/0x1b1
    [] ? ip_local_deliver_finish+0x0/0x1b1
    [] NF_HOOK.clone.1+0x3d/0x44
    [] ip_local_deliver+0x3e/0x44
    [] ? ip_local_deliver_finish+0x0/0x1b1
    [] ip_rcv_finish+0x30a/0x332
    [] ? ip_rcv_finish+0x0/0x332
    [] NF_HOOK.clone.1+0x3d/0x44
    [] ip_rcv+0x20b/0x247
    [] ? ip_rcv_finish+0x0/0x332
    [] __netif_receive_skb+0x373/0x399
    [] netif_receive_skb+0x4b/0x51
    [] cp_rx_poll+0x210/0x2c4 [8139cp]
    [] net_rx_action+0x9a/0x17d
    [] __do_softirq+0xa1/0x149
    [] ? __do_softirq+0x0/0x149

    Signed-off-by: Wei Yongjun
    Signed-off-by: David S. Miller

    Wei Yongjun
     
  • If we send a request to osd A, and the request's pg remaps to osd B and
    then back to A in quick succession, we need to resend the request to A. The
    old code was only calling kick_requests after processing all incremental
    maps in a message, so it was very possible to not resend a request that
    needed to be resent. This would make the osd eventually time out (at least
    with the current default of osd timeouts enabled).

    The correct approach is to scan requests on every map incremental. This
    patch refactors the kick code in a few ways:
    - all requests are either on req_lru (in flight), req_unsent (ready to
    send), or req_notarget (currently map to no up osd)
    - mapping always done by map_request (previous map_osds)
    - if the mapping changes, we requeue. requests are resent only after all
    map incrementals are processed.
    - some osd reset code is moved out of kick_requests into a separate
    function
    - the "kick this osd" functionality is moved to kick_osd_requests, as it
    is unrelated to scanning for request->pg->osd mapping changes

    Signed-off-by: Sage Weil

    Sage Weil
     

20 Mar, 2011

4 commits

  • 'buffer' string is copied from userspace. It is not checked whether it is
    zero terminated. This may lead to overflow inside of simple_strtoul().
    Changli Gao suggested to copy not more than user supplied 'size' bytes.

    It was introduced before the git epoch. Files "ipt_CLUSTERIP/*" are
    root writable only by default, however, on some setups permissions might be
    relaxed to e.g. network admin user.

    Signed-off-by: Vasiliy Kulikov
    Acked-by: Changli Gao
    Signed-off-by: Patrick McHardy

    Vasiliy Kulikov
     
  • commit f3c5c1bfd4308 (make ip_tables reentrant) introduced a race in
    handling the stackptr restore, at the end of ipt_do_table()

    We should do it before the call to xt_info_rdunlock_bh(), or we allow
    cpu preemption and another cpu overwrites stackptr of original one.

    A second fix is to change the underflow test to check the origptr value
    instead of 0 to detect underflow, or else we allow a jump from different
    hooks.

    Signed-off-by: Eric Dumazet
    Cc: Jan Engelhardt
    Signed-off-by: Patrick McHardy

    Eric Dumazet
     
  • The revision of the set type was not checked at the create command: if the
    userspace sent a valid set type but with not supported revision number,
    it'd create a loop.

    Signed-off-by: Jozsef Kadlecsik
    Signed-off-by: Patrick McHardy

    Jozsef Kadlecsik
     
  • The hash:*port* types with IPv4 silently ignored when address ranges
    with non TCP/UDP were added/deleted from the set and used the first
    address from the range only.

    Signed-off-by: Jozsef Kadlecsik
    Signed-off-by: Patrick McHardy

    Jozsef Kadlecsik
     

19 Mar, 2011

7 commits

  • Whenever we enter the IP stack proper from bridge netfilter we
    need to ensure that the skb is in a form the IP stack expects
    it to be in.

    The entry point on NF_FORWARD did not meet the requirements of
    the IP stack, therefore leading to potential crashes/panics.

    This patch fixes the problem.

    Signed-off-by: Herbert Xu
    Acked-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • Commit c95b819ad7 (gre: Use needed_headroom)
    made gre use needed_headroom instead of hard_header_len

    This uncover a bug in vlan code.

    We should make sure vlan devices take into account their
    real_dev->needed_headroom or we risk a crash in ipgre_header(), because
    we dont have enough room to push IP header in skb.

    Reported-by: Diddi Oscarsson
    Signed-off-by: Eric Dumazet
    Cc: Patrick McHardy
    Cc: Herbert Xu
    Acked-by: Herbert Xu
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • This structure was accidentally defined such that its layout can
    differ between 32-bit and 64-bit processes. Add compat structure
    definitions and an ioctl wrapper function.

    Signed-off-by: Ben Hutchings
    Acked-by: Alexander Duyck
    Cc: stable@kernel.org [2.6.30+]
    Signed-off-by: David S. Miller

    Ben Hutchings
     
  • __ethtool_set_sg does not check if dev->ethtool_ops->set_sg is defined
    which can result in a NULL pointer dereference when ethtool is used to
    change SG settings for drivers without SG support.

    Signed-off-by: Roger Luethi
    Reviewed-by: Ben Hutchings
    Signed-off-by: David S. Miller

    Roger Luethi
     
  • struct aunhdr has 4 padding bytes between 'pad' and 'handle' fields on
    x86_64. These bytes are not initialized in the variable 'ah' before
    sending 'ah' to the network. This leads to 4 bytes kernel stack
    infoleak.

    This bug was introduced before the git epoch.

    Signed-off-by: Vasiliy Kulikov
    Acked-by: Phil Blundell
    Signed-off-by: David S. Miller

    Vasiliy Kulikov
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (47 commits)
    doc: CONFIG_UNEVICTABLE_LRU doesn't exist anymore
    Update cpuset info & webiste for cgroups
    dcdbas: force SMI to happen when expected
    arch/arm/Kconfig: remove one to many l's in the word.
    asm-generic/user.h: Fix spelling in comment
    drm: fix printk typo 'sracth'
    Remove one to many n's in a word
    Documentation/filesystems/romfs.txt: fixing link to genromfs
    drivers:scsi Change printk typo initate -> initiate
    serial, pch uart: Remove duplicate inclusion of linux/pci.h header
    fs/eventpoll.c: fix spelling
    mm: Fix out-of-date comments which refers non-existent functions
    drm: Fix printk typo 'failled'
    coh901318.c: Change initate to initiate.
    mbox-db5500.c Change initate to initiate.
    edac: correct i82975x error-info reported
    edac: correct i82975x mci initialisation
    edac: correct commented info
    fs: update comments to point correct document
    target: remove duplicate include of target/target_core_device.h from drivers/target/target_core_hba.c
    ...

    Trivial conflict in fs/eventpoll.c (spelling vs addition)

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (48 commits)
    HID: add support for Logitech Driving Force Pro wheel
    HID: hid-ortek: remove spurious reference
    HID: add support for Ortek PKB-1700
    HID: roccat-koneplus: vorrect mode of sysfs attr 'sensor'
    HID: hid-ntrig: init settle and mode check
    HID: merge hid-egalax into hid-multitouch
    HID: hid-multitouch: Send events per slot if CONTACTCOUNT is missing
    HID: ntrig remove if and drop an indent
    HID: ACRUX - activate the device immediately after binding
    HID: ntrig: apply NO_INIT_REPORTS quirk
    HID: hid-magicmouse: Correct touch orientation direction
    HID: ntrig don't dereference unclaimed hidinput
    HID: Do not create input devices for feature reports
    HID: bt hidp: send Output reports using SET_REPORT on the Control channel
    HID: hid-sony.c: Fix sending Output reports to the Sixaxis
    HID: add support for Keytouch IEC 60945
    HID: Add HID Report Descriptor to sysfs
    HID: add IRTOUCH infrared USB to hid_have_special_driver
    HID: kernel oops in out_cleanup in function hidinput_connect
    HID: Add teletext/color keys - gyration remote - EU version (GYAR3101CKDE)
    ...

    Linus Torvalds
     

18 Mar, 2011

5 commits

  • * 'nfs-for-2.6.39' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (54 commits)
    RPC: killing RPC tasks races fixed
    xprt: remove redundant check
    SUNRPC: Convert struct rpc_xprt to use atomic_t counters
    SUNRPC: Ensure we always run the tk_callback before tk_action
    sunrpc: fix printk format warning
    xprt: remove redundant null check
    nfs: BKL is no longer needed, so remove the include
    NFS: Fix a warning in fs/nfs/idmap.c
    Cleanup: Factor out some cut-and-paste code.
    cleanup: save 60 lines/100 bytes by combining two mostly duplicate functions.
    NFS: account direct-io into task io accounting
    gss:krb5 only include enctype numbers in gm_upcall_enctypes
    RPCRDMA: Fix FRMR registration/invalidate handling.
    RPCRDMA: Fix to XDR page base interpretation in marshalling logic.
    NFSv4: Send unmapped uid/gids to the server when using auth_sys
    NFSv4: Propagate the error NFS4ERR_BADOWNER to nfs4_do_setattr
    NFSv4: cleanup idmapper functions to take an nfs_server argument
    NFSv4: Send unmapped uid/gids to the server if the idmapper fails
    NFSv4: If the server sends us a numeric uid/gid then accept it
    NFSv4.1: reject zero layout with zeroed stripe unit
    ...

    Linus Torvalds
     
  • RPC task RPC_TASK_QUEUED bit is set must be checked before trying to wake up
    task rpc_killall_tasks() because task->tk_waitqueue can not be set (equal to
    NULL).
    Also, as Trond Myklebust mentioned, such approach (instead of checking
    tk_waitqueue to NULL) allows us to "optimise away the call to
    rpc_wake_up_queued_task() altogether for those
    tasks that aren't queued".

    Here is an example of dereferencing of tk_waitqueue equal to NULL:

    CPU 0 CPU 1 CPU 2
    -------------------- --------------------- --------------------------
    nfs4_run_open_task
    rpc_run_task
    rpc_execute
    rpc_set_active
    rpc_make_runnable
    (waiting)
    rpc_async_schedule
    nfs4_open_prepare
    nfs_wait_on_sequence
    nfs_umount_begin
    rpc_killall_tasks
    rpc_wake_up_task
    rpc_wake_up_queued_task
    spin_lock(tk_waitqueue == NULL)
    BUG()
    rpc_sleep_on
    spin_lock(&q->lock)
    __rpc_sleep_on
    task->tk_waitqueue = q

    Signed-off-by: Stanislav Kinsbursky
    Cc: stable@kernel.org
    Signed-off-by: Trond Myklebust

    Stanislav Kinsbursky
     
  • remove redundant check.

    Signed-off-by: Jinqiu Yang
    Signed-off-by: Trond Myklebust

    j223yang@asset.uwaterloo.ca
     
  • Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • This fixes a race in which the task->tk_callback() puts the rpc_task
    to sleep, setting a new callback. Under certain circumstances, the current
    code may end up executing the task->tk_action before it gets round to the
    callback.

    Signed-off-by: Trond Myklebust
    Cc: stable@kernel.org

    Trond Myklebust
     

17 Mar, 2011

3 commits

  • …'upstream' and 'upstream-fixes' into for-linus

    Jiri Kosina
     
  • * 'config' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:
    BKL: That's all, folks
    fs/locks.c: Remove stale FIXME left over from BKL conversion
    ipx: remove the BKL
    appletalk: remove the BKL
    x25: remove the BKL
    ufs: remove the BKL
    hpfs: remove the BKL
    drivers: remove extraneous includes of smp_lock.h
    tracing: don't trace the BKL
    adfs: remove the big kernel lock

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1480 commits)
    bonding: enable netpoll without checking link status
    xfrm: Refcount destination entry on xfrm_lookup
    net: introduce rx_handler results and logic around that
    bonding: get rid of IFF_SLAVE_INACTIVE netdev->priv_flag
    bonding: wrap slave state work
    net: get rid of multiple bond-related netdevice->priv_flags
    bonding: register slave pointer for rx_handler
    be2net: Bump up the version number
    be2net: Copyright notice change. Update to Emulex instead of ServerEngines
    e1000e: fix kconfig for crc32 dependency
    netfilter ebtables: fix xt_AUDIT to work with ebtables
    xen network backend driver
    bonding: Improve syslog message at device creation time
    bonding: Call netif_carrier_off after register_netdevice
    bonding: Incorrect TX queue offset
    net_sched: fix ip_tos2prio
    xfrm: fix __xfrm_route_forward()
    be2net: Fix UDP packet detected status in RX compl
    Phonet: fix aligned-mode pipe socket buffer header reserve
    netxen: support for GbE port settings
    ...

    Fix up conflicts in drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
    with the staging updates.

    Linus Torvalds