1. 23 Mar, 2012 40 commits
    • Richard Weinberger's avatar
      get_maintainer.pl: add support for moderated lists · 728f5a94
      Richard Weinberger authored
      Currently get_maintainer.pl reports moderated lists as open, which is just
      wrong.
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      Acked-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      728f5a94
    • Joe Perches's avatar
      get_maintainer: use a default "unknown" S: status/role · 0ede2745
      Joe Perches authored
      When an "S:" status line is unavailable, use a default "unknown" role.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0ede2745
    • Andrew Morton's avatar
      kernel/watchdog.c: add comment to watchdog() exit path · b60f796c
      Andrew Morton authored
      Revelation from Peter.
      
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@tglx.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b60f796c
    • Andrew Morton's avatar
      kernel/watchdog.c: convert to pr_foo() · 4501980a
      Andrew Morton authored
      It fixes some 80-col wordwrappings and adds some consistency.
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4501980a
    • Michal Hocko's avatar
      watchdog: make sure the watchdog thread gets CPU on loaded system · 7a05c0f7
      Michal Hocko authored
      If the system is loaded while hotplugging a CPU we might end up with a
      bogus hardlockup detection.  This has been seen during LTP pounder test
      executed in parallel with hotplug test.
      
      The main problem is that enable_watchdog (called when CPU is brought up)
      registers perf event which periodically checks per-cpu counter
      (hrtimer_interrupts), updated from a hrtimer callback, but the hrtimer
      is fired from the kernel thread.
      
      This means that while we already do check for the hard lockup the kernel
      thread might be sitting on the runqueue with zillions of tasks so there
      is nobody to update the value we rely on and so we KABOOM.
      
      Let's fix this by boosting the watchdog thread priority before we wake
      it up rather than when it's already running.  This still doesn't handle
      a case where we have the same amount of high prio FIFO tasks but that
      doesn't seem to be common.  The current implementation doesn't handle
      that case anyway so this is not worse at least.
      
      Unfortunately, we cannot start perf counter from the watchdog thread
      because we could miss a real lock up and also we cannot start the
      hrtimer watchdog_enable because we there is no way (at least I don't
      know any) to start a hrtimer from a different CPU.
      
      [dzickus@redhat.com: fix compile issue with param]
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Reviewed-by: default avatarMandeep Singh Baines <msb@chromium.org>
      Signed-off-by: default avatarMichal Hocko <mhocko@suse.cz>
      Signed-off-by: default avatarDon Zickus <dzickus@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7a05c0f7
    • Denys Vlasenko's avatar
      kernel/exit.c: if init dies, log a signal which killed it, if any · 397a21f2
      Denys Vlasenko authored
      I just received another user's pleas for help when their init
      mysteriously died.  I again explained that they need to check whether it
      died because of bad instruction, a segv, or something else.  Which was
      an annoying detour into writing a trivial C program to spawn his init
      and print its exit code:
      
        http://lists.busybox.net/pipermail/busybox/2012-January/077172.html
      
      I hear you saying "just test it under /bin/sh".  Well, the crashing init
      _was_ /bin/sh.
      
      Which prompted me to make kernel do this first step automatically.  We can
      print exit code, which makes it possible to see that death was from e.g.
      SIGILL without writing test programs.
      
      [akpm@linux-foundation.org: add 0x to hex number output]
      Signed-off-by: default avatarDenys Vlasenko <vda.linux@googlemail.com>
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      397a21f2
    • Lennart Poettering's avatar
      prctl: add PR_{SET,GET}_CHILD_SUBREAPER to allow simple process supervision · ebec18a6
      Lennart Poettering authored
      Userspace service managers/supervisors need to track their started
      services.  Many services daemonize by double-forking and get implicitly
      re-parented to PID 1.  The service manager will no longer be able to
      receive the SIGCHLD signals for them, and is no longer in charge of
      reaping the children with wait().  All information about the children is
      lost at the moment PID 1 cleans up the re-parented processes.
      
      With this prctl, a service manager process can mark itself as a sort of
      'sub-init', able to stay as the parent for all orphaned processes
      created by the started services.  All SIGCHLD signals will be delivered
      to the service manager.
      
      Receiving SIGCHLD and doing wait() is in cases of a service-manager much
      preferred over any possible asynchronous notification about specific
      PIDs, because the service manager has full access to the child process
      data in /proc and the PID can not be re-used until the wait(), the
      service-manager itself is in charge of, has happened.
      
      As a side effect, the relevant parent PID information does not get lost
      by a double-fork, which results in a more elaborate process tree and
      'ps' output:
      
      before:
        # ps afx
        253 ?        Ss     0:00 /bin/dbus-daemon --system --nofork
        294 ?        Sl     0:00 /usr/libexec/polkit-1/polkitd
        328 ?        S      0:00 /usr/sbin/modem-manager
        608 ?        Sl     0:00 /usr/libexec/colord
        658 ?        Sl     0:00 /usr/libexec/upowerd
        819 ?        Sl     0:00 /usr/libexec/imsettings-daemon
        916 ?        Sl     0:00 /usr/libexec/udisks-daemon
        917 ?        S      0:00  \_ udisks-daemon: not polling any devices
      
      after:
        # ps afx
        294 ?        Ss     0:00 /bin/dbus-daemon --system --nofork
        426 ?        Sl     0:00  \_ /usr/libexec/polkit-1/polkitd
        449 ?        S      0:00  \_ /usr/sbin/modem-manager
        635 ?        Sl     0:00  \_ /usr/libexec/colord
        705 ?        Sl     0:00  \_ /usr/libexec/upowerd
        959 ?        Sl     0:00  \_ /usr/libexec/udisks-daemon
        960 ?        S      0:00  |   \_ udisks-daemon: not polling any devices
        977 ?        Sl     0:00  \_ /usr/libexec/packagekitd
      
      This prctl is orthogonal to PID namespaces.  PID namespaces are isolated
      from each other, while a service management process usually requires the
      services to live in the same namespace, to be able to talk to each
      other.
      
      Users of this will be the systemd per-user instance, which provides
      init-like functionality for the user's login session and D-Bus, which
      activates bus services on-demand.  Both need init-like capabilities to
      be able to properly keep track of the services they start.
      
      Many thanks to Oleg for several rounds of review and insights.
      
      [akpm@linux-foundation.org: fix comment layout and spelling]
      [akpm@linux-foundation.org: add lengthy code comment from Oleg]
      Reviewed-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarLennart Poettering <lennart@poettering.net>
      Signed-off-by: default avatarKay Sievers <kay.sievers@vrfy.org>
      Acked-by: default avatarValdis Kletnieks <Valdis.Kletnieks@vt.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ebec18a6
    • Uwe Kleine-König's avatar
      drivers/staging/telephony/ixj.c: fix warning about sequence points · 953326cb
      Uwe Kleine-König authored
      In the statement
      
      	j->caplist[j->caps].handle = j->caps++;
      
      there is no sequence point between the usage of j->caps on the LHS of
      the assignment and the incrementation on its RHS.  So it's not defined
      in Standard C if j->caps is already incremented when used on the LHS
      even though the postfix ++ operator is used.  To properly fix that the
      incrementation has to be done in a separate expression.
      
      This fixes:
      	drivers/telephony/ixj.c: In function `add_caps':
      	drivers/telephony/ixj.c:5930:38: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:5950:38: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:5954:38: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:5965:39: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:5976:39: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:5988:39: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:5998:38: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:6003:38: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:6008:38: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:6013:38: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:6019:38: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:6026:39: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:6031:39: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:6036:39: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:6041:39: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:6049:39: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:6057:39: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:6065:39: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      	drivers/telephony/ixj.c:6071:39: warning: operation on `j->caps' may be undefined [-Wsequence-point]
      Signed-off-by: default avatarUwe Kleine-König <uwe@kleine-koenig.org>
      Cc: Lucas De Marchi <lucas.demarchi@profusion.mobi>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      953326cb
    • H Hartley Sweeten's avatar
      fs/notify/notification.c: make subsys_initcall function static · 9710a78e
      H Hartley Sweeten authored
      Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Arun Sharma <asharma@fb.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9710a78e
    • Javi Merino's avatar
      Remove remaining bits of io_remap_page_range() · 03ff3efb
      Javi Merino authored
      Commit 33bf5610 ("feature removal of io_remap_page_range()") removed
      io_remap_page_range(), but it is still included in some arch header
      files.  It has no in-tree users.
      Signed-off-by: default avatarJavi Merino <javi.merino@arm.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Aurelien Jacquiot <a-jacquiot@ti.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Jonas Bonn <jonas@southpole.se>
      Cc: Randy Dunlap <rdunlap@xenotime.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      03ff3efb
    • Jan Beulich's avatar
      consolidate WARN_...ONCE() static variables · 7ccaba53
      Jan Beulich authored
      Due to the alignment of following variables, these typically consume
      more than just the single byte that 'bool' requires, and as there are a
      few hundred instances, the cache pollution (not so much the waste of
      memory) sums up.  Put these variables into their own section, outside of
      any half way frequently used memory range.
      
      Do the same also to the __warned variable of rcu_lockdep_assert().
      (Don't, however, include the ones used by printk_once() and alike, as
      they can potentially be hot.)
      Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7ccaba53
    • Bobby Powers's avatar
      headers: include linux/types.h where appropriate · 10db4e1e
      Bobby Powers authored
      This addresses some header check warnings.  DRM headers which include
      "drm.h" have been excluded, as they indirectly include types.h.
      Signed-off-by: default avatarBobby Powers <bobbypowers@gmail.com>
      Cc: Chris Ball <cjb@laptop.org>
      Cc: Dave Airlie <airlied@linux.ie>
      Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
      Cc: Takashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      10db4e1e
    • Cong Wang's avatar
      nmi watchdog: do not use cpp symbol in Kconfig · d314d74c
      Cong Wang authored
      ARCH_HAS_NMI_WATCHDOG is a macro defined by arch, but config
      HARDLOCKUP_DETECTOR depends on it.  This is wrong, ARCH_HAS_NMI_WATCHDOG
      has to be a Kconfig config, and arch's need it should select it
      explicitly.
      Signed-off-by: default avatarWANG Cong <xiyou.wangcong@gmail.com>
      Acked-by: default avatarDon Zickus <dzickus@redhat.com>
      Acked-by: default avatarMike Frysinger <vapier@gentoo.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d314d74c
    • Muthu Kumar's avatar
      magic.h: move some FS magic numbers into magic.h · b502bd11
      Muthu Kumar authored
      - Move open-coded filesystem magic numbers into magic.h
      
      - Rearrange magic.h so that the filesystem-related constants are grouped
        together.
      Signed-off-by: default avatarMuthukumar R <muthur@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b502bd11
    • Matt Fleming's avatar
      um: use set_current_blocked() and block_sigmask() · d982d595
      Matt Fleming authored
      As described in commit e6fa16ab ("signal: sigprocmask() should do
      retarget_shared_pending()") the modification of current->blocked is
      incorrect as we need to check whether the signal we're about to block is
      pending in the shared queue.
      
      Also, use the new helper function introduced in commit 5e6292c0
      ("signal: add block_sigmask() for adding sigmask to current->blocked")
      which centralises the code for updating current->blocked after
      successfully delivering a signal and reduces the amount of duplicate
      code across architectures.  In the past some architectures got this code
      wrong, so using this helper function should stop that from happening
      again.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Richard Weinberger <richard@nod.at>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d982d595
    • Matt Fleming's avatar
      um: don't restore current->blocked on error · f6adb9a6
      Matt Fleming authored
      If we fail to setup the signal stack frame then we don't need to restore
      current->blocked because it is not modified by setup_signal_stack_*.
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarRichard Weinberger <richard@nod.at>
      Tested-by: default avatarRichard Weinberger <richard@nod.at>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f6adb9a6
    • Hillf Danton's avatar
      mm: hugetlb: cleanup duplicated code in unmapping vm range · 6629326b
      Hillf Danton authored
      Fix code duplication in __unmap_hugepage_range(), such as pte_page() and
      huge_pte_none().
      Signed-off-by: default avatarHillf Danton <dhillf@gmail.com>
      Cc: Michal Hocko <mhocko@suse.cz>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Hugh Dickins <hughd@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6629326b
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 934e18b5
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) L2TP doesn't get autoloaded when you try to open an L2TP socket due
          to a missing module alias, fix from Benjamin LaHaise.
      
       2) Netlabel and RDS should propagate gfp flags given to them by
          callers, fixes from Dan Carpeneter.
      
       3) Recursive locking fix in usbnet wasn't bulletproof and can result in
          objects going away mid-flight due to races, fix from Ming Lei.
      
       4) Fix up some confusion about a bool module parameter in netfilter's
          iptable_filter and ip6table_filter, from Rusty Russell.
      
       5) If SKB recycling is used via napi_reuse_skb() we end up with
          different amounts of headroom reserved than we had at the original
          SKB allocation.  Fix from Eric Dumazet.
      
       6) Fix races in TG3 driver ring refilling, from Michael Chan.
      
       7) We have callbacks for IPSEC replay notifiers, but some call sites
          were not using the ops method and instead were calling one of the
          implementations directly.  Oops.  Fix from Steffen Klassert.
      
       8) Fix IP address validation properly in the bonding driver, the
          previous fix only works with netlink where the subnet mask and IP
          address are changed in one atomic operation.  When 'ifconfig' ioctls
          are used the IP address and the subnet mask are changed in two
          distinct operations.  Fix from Andy Gospodarek.
      
       9) Provide a sky2 module operation to work around power management
          issues with some BIOSes.  From Stephen Hemminger.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        usbnet: consider device busy at each recieved packet
        bonding: remove entries for master_ip and vlan_ip and query devices instead
        netfilter: remove forward module param confusion.
        usbnet: don't clear urb->dev in tx_complete
        usbnet: increase URB reference count before usb_unlink_urb
        xfrm: Access the replay notify functions via the registered callbacks
        xfrm: Remove unused xfrm_state from xfrm_state_check_space
        RDS: use gfp flags from caller in conn_alloc()
        netlabel: use GFP flags from caller instead of GFP_ATOMIC
        l2tp: enable automatic module loading for l2tp_ppp
        cnic: Fix parity error code conflict
        tg3: Fix RSS ring refill race condition
        sky2: override for PCI legacy power management
        net: fix napi_reuse_skb() skb reserve
      934e18b5
    • Linus Torvalds's avatar
      Merge tag 'for_linus-3.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb · a20ae85a
      Linus Torvalds authored
      Pull KGDB/KDB updates from Jason Wessel:
       "Fixes:
         - Fix KDB keyboard repeat scan codes and leaked keyboard events
         - Fix kernel crash with kdb_printf() for users who compile new
           kdb_printf()'s in early code
         - Return all segment registers to gdb on x86_64
      
        Features:
         - KDB/KGDB hook the reboot notifier and end user can control if it
           stops, detaches or does nothing (updated docs as well)
         - Notify users who use CONFIG_DEBUG_RODATA to use hw breakpoints"
      
      * tag 'for_linus-3.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb:
        kdb: Add message about CONFIG_DEBUG_RODATA on failure to install breakpoint
        kdb: Avoid using dbg_io_ops until it is initialized
        kgdb,debug_core: add the ability to control the reboot notifier
        KDB: Fix usability issues relating to the 'enter' key.
        kgdb,debug-core,gdbstub: Hook the reboot notifier for debugger detach
        kgdb: Respect that flush op is optional
        kgdb: x86: Return all segment registers also in 64-bit mode
      a20ae85a
    • Linus Torvalds's avatar
      Merge tag 'ktest-v3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest · f0a5ec0e
      Linus Torvalds authored
      Pull ktest changes from Steven Rostedt.
      
      * tag 'ktest-v3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
        ktest: Allow a test to override REBOOT_ON_SUCCESS
        ktest: Fix SWITCH_TO_GOOD to also reboot the machine
        ktest: Add SCP_TO_TARGET_INSTALL option
        ktest: Add warning when bugs are ignored
        ktest: Add INSTALL_MOD_STRIP=1 when installing modules
      f0a5ec0e
    • Linus Torvalds's avatar
      Merge tag 'upstream-3.4-rc1' of git://git.infradead.org/linux-ubifs · e57f146b
      Linus Torvalds authored
      Pull UBIFS changes from Artem Bityutskiy:
       - Improve error messages
       - Clean-up i_nlink management
       - Minor clean-ups
      
      * tag 'upstream-3.4-rc1' of git://git.infradead.org/linux-ubifs:
        UBIFS: improve error messages
        UBIFS: kill CUR_MAX_KEY_LEN macro
        UBIFS: do not use inc_link when i_nlink is zero
        UBIFS: make the dbg_lock spinlock static
        UBIFS: increase dumps loglevel
        UBIFS: amend recovery debugging message
      e57f146b
    • Linus Torvalds's avatar
      Merge tag 'upstream-3.4-rc1' of git://git.infradead.org/linux-ubi · 7e61b3ff
      Linus Torvalds authored
      Pull UBI changes from Artem Bityutskiy:
       - Reduce memory consumption
       - Fix picking unknown blocks
       - Fix error-path in 'ubi_scan()'
       - Minor clean-ups
      
      * tag 'upstream-3.4-rc1' of git://git.infradead.org/linux-ubi:
        UBI: rename MOVE_CANCEL_BITFLIPS to MOVE_TARGET_BITFLIPS
        UBI: rename peb_buf1 to peb_buf
        UBI: reduce memory consumption
        UBI: fix eraseblock picking criteria
        UBI: fix documentation and improve readability
        UBI: fix error handling in ubi_scan()
      7e61b3ff
    • Linus Torvalds's avatar
      Merge tag 'pstore-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 6e55f8ed
      Linus Torvalds authored
      Pull one pstore patch from Tony Luck
      
      * tag 'pstore-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        pstore: Introduce get_reason_str() to pstore
      6e55f8ed
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs · 49d99a2f
      Linus Torvalds authored
      Pull XFS updates from Ben Myers:
       "Scalability improvements for dquots, log grant code cleanups, plus
        bugfixes and cleanups large and small"
      
      Fix up various trivial conflicts that were due to some of the earlier
      patches already having been integrated into v3.3 as bugfixes, and then
      there were development patches on top of those.  Easily merged by just
      taking the newer version from the pulled branch.
      
      * 'for-linus' of git://oss.sgi.com/xfs/xfs: (45 commits)
        xfs: fallback to vmalloc for large buffers in xfs_getbmap
        xfs: fallback to vmalloc for large buffers in xfs_attrmulti_attr_get
        xfs: remove remaining scraps of struct xfs_iomap
        xfs: fix inode lookup race
        xfs: clean up minor sparse warnings
        xfs: remove the global xfs_Gqm structure
        xfs: remove the per-filesystem list of dquots
        xfs: use per-filesystem radix trees for dquot lookup
        xfs: per-filesystem dquot LRU lists
        xfs: use common code for quota statistics
        xfs: reimplement fdatasync support
        xfs: split in-core and on-disk inode log item fields
        xfs: make xfs_inode_item_size idempotent
        xfs: log timestamp updates
        xfs: log file size updates at I/O completion time
        xfs: log file size updates as part of unwritten extent conversion
        xfs: do not require an ioend for new EOF calculation
        xfs: use per-filesystem I/O completion workqueues
        quota: make Q_XQUOTASYNC a noop
        xfs: include reservations in quota reporting
        ...
      49d99a2f
    • Linus Torvalds's avatar
      Merge git://git.samba.org/sfrench/cifs-2.6 · 1c3ddfe5
      Linus Torvalds authored
      Pull CIFS fixes from Steve French
      
      * git://git.samba.org/sfrench/cifs-2.6:
        cifs: clean up ordering in exit_cifs
        cifs: clean up call to cifs_dfs_release_automount_timer()
        CIFS: Delete echo_retries module parm
        CIFS: Prepare credits code for a slot reservation
        CIFS: Make wait_for_free_request killable
        CIFS: Introduce credit-based flow control
        CIFS: Simplify inFlight logic
        cifs: fix issue mounting of DFS ROOT when redirecting from one domain controller to the next
        CIFS: Respect negotiated MaxMpxCount
        CIFS: Fix a spurious error in cifs_push_posix_locks
      1c3ddfe5
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.4-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · f63d395d
      Linus Torvalds authored
      Pull NFS client updates for Linux 3.4 from Trond Myklebust:
       "New features include:
         - Add NFS client support for containers.
      
           This should enable most of the necessary functionality, including
           lockd support, and support for rpc.statd, NFSv4 idmapper and
           RPCSEC_GSS upcalls into the correct network namespace from which
           the mount system call was issued.
      
         - NFSv4 idmapper scalability improvements
      
           Base the idmapper cache on the keyring interface to allow
           concurrent access to idmapper entries.  Start the process of
           migrating users from the single-threaded daemon-based approach to
           the multi-threaded request-key based approach.
      
         - NFSv4.1 implementation id.
      
           Allows the NFSv4.1 client and server to mutually identify each
           other for logging and debugging purposes.
      
         - Support the 'vers=4.1' mount option for mounting NFSv4.1 instead of
           having to use the more counterintuitive 'vers=4,minorversion=1'.
      
         - SUNRPC tracepoints.
      
           Start the process of adding tracepoints in order to improve
           debugging of the RPC layer.
      
         - pNFS object layout support for autologin.
      
        Important bugfixes include:
      
         - Fix a bug in rpc_wake_up/rpc_wake_up_status that caused them to
           fail to wake up all tasks when applied to priority waitqueues.
      
         - Ensure that we handle read delegations correctly, when we try to
           truncate a file.
      
         - A number of fixes for NFSv4 state manager loops (mostly to do with
           delegation recovery)."
      
      * tag 'nfs-for-3.4-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (224 commits)
        NFS: fix sb->s_id in nfs debug prints
        xprtrdma: Remove assumption that each segment is <= PAGE_SIZE
        xprtrdma: The transport should not bug-check when a dup reply is received
        pnfs-obj: autologin: Add support for protocol autologin
        NFS: Remove nfs4_setup_sequence from generic rename code
        NFS: Remove nfs4_setup_sequence from generic unlink code
        NFS: Remove nfs4_setup_sequence from generic read code
        NFS: Remove nfs4_setup_sequence from generic write code
        NFS: Fix more NFS debug related build warnings
        SUNRPC/LOCKD: Fix build warnings when CONFIG_SUNRPC_DEBUG is undefined
        nfs: non void functions must return a value
        SUNRPC: Kill compiler warning when RPC_DEBUG is unset
        SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG
        NFS: Use cond_resched_lock() to reduce latencies in the commit scans
        NFSv4: It is not safe to dereference lsp->ls_state in release_lockowner
        NFS: ncommit count is being double decremented
        SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()
        Try using machine credentials for RENEW calls
        NFSv4.1: Fix a few issues in filelayout_commit_pagelist
        NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code
        ...
      f63d395d
    • Hugh Dickins's avatar
      mm: fix testorder interaction between two kswapd patches · 643ac9fc
      Hugh Dickins authored
      Adjusting cc715d99 "mm: vmscan: forcibly scan highmem if there are
      too many buffer_heads pinning highmem" for -stable reveals that it was
      slightly wrong once on top of fe2c2a10 "vmscan: reclaim at order 0
      when compaction is enabled", which specifically adds testorder for the
      zone_watermark_ok_safe() test.
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Acked-by: default avatarMel Gorman <mel@csn.ul.ie>
      Acked-by: default avatarRik van Riel <riel@redhat.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      643ac9fc
    • Linus Torvalds's avatar
      Merge tag 'fbdev-updates-for-3.4' of git://github.com/schandinat/linux-2.6 · 43753826
      Linus Torvalds authored
      Pull fbdev updates for 3.4 from Florian Tobias Schandinat:
       - drivers for Samsung Exynos MIPI DSI and display port
       - i740fb to support those old Intel chips
       - large updates to OMAP, viafb and sh_mobile_lcdcfb
       - some updates to s3c-fb and udlfb, few patches to others
      
      Fix up conflicts in drivers/video/udlfb.c due to Key Sievers' fix making
      it in twice.
      
      * tag 'fbdev-updates-for-3.4' of git://github.com/schandinat/linux-2.6: (156 commits)
        Revert "video:uvesafb: Fix oops that uvesafb try to execute NX-protected page"
        OMAPDSS: register dss drivers in module init
        video: pxafb: add clk_prepare/clk_unprepare calls
        fbdev: bfin_adv7393fb: Drop needless include
        fbdev: sh_mipi_dsi: add extra phyctrl for sh_mipi_dsi_info
        fbdev: remove dependency of FB_SH_MOBILE_MERAM from FB_SH_MOBILE_LCDC
        Revert "MAINTAINERS: add entry for exynos mipi display drivers"
        fbdev: da8xx: add support for SP10Q010 display
        fbdev: da8xx:: fix reporting of the display timing info
        drivers/video/pvr2fb.c: ensure arguments to request_irq and free_irq are compatible
        OMAPDSS: APPLY: fix clearing shadow dirty flag with manual update
        fbdev: sh_mobile_meram: Implement system suspend/resume
        fbdev: sh_mobile_meram: Remove unneeded sanity checks
        fbdev: sh_mobile_meram: Don't perform update in register operation
        arm: mach-shmobile: Constify sh_mobile_meram_cfg structures
        fbdev: sh_mobile_lcdc: Don't store copy of platform data
        fbdev: sh_mobile_meram: Remove unused sh_mobile_meram_icb_cfg fields
        arm: mach-shmobile: Don't set MERAM ICB numbers in platform data
        fbdev: sh_mobile_meram: Allocate ICBs automatically
        fbdev: sh_mobile_meram: Use genalloc to manage MERAM allocation
        ...
      43753826
    • Linus Torvalds's avatar
      Merge tag 'regmap-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 9586c959
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "Things are really quieting down with the regmap API, while we're still
        seeing a trickle of new features coming in they're getting much
        smaller than they were.  It's also nice to have some features which
        support other subsystems building infrastructure on top of regmap.
        Highlights include:
      
        - Support for padding between the register and the value when
          interacting with the device, sometimes needed for fast interfaces.
        - Support for applying register updates to the device when restoring
          the register state.  This is intended to be used to apply updates
          supplied by manufacturers for tuning the performance of the device
          (many of which are to undocumented registers which aren't otherwise
          covered).
        - Support for multi-register operations on cached registers.
        - Support for syncing only part of the register cache.
        - Stubs and parameter query functions intended to make it easier for
          other subsystems to build infrastructure on top of the regmap API.
      
        plus a few driver updates making use of the new features which it was
        easier to merge via this tree."
      
      * tag 'regmap-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: (41 commits)
        regmap: Fix future missing prototype of devres_alloc() and friends
        regmap: Rejig struct declarations for stubbed API
        regmap: Fix rbtree block base in sync
        regcache: Make sure we sync register 0 in an rbtree cache
        regmap: delete unused module.h from drivers/base/regmap files
        regmap: Add stub for regcache_sync_region()
        mfd: Improve performance of later WM1811 revisions
        regmap: Fix x86_64 breakage
        regmap: Allow drivers to sync only part of the register cache
        regmap: Supply ranges to the sync operations
        regmap: Add tracepoints for cache only and cache bypass
        regmap: Mark the cache as clean after a successful sync
        regmap: Remove default cache sync implementation
        regmap: Skip hardware defaults for LZO caches
        regmap: Expose the driver name in debugfs
        mfd: wm8400: Convert to devm_regmap_init_i2c()
        mfd: wm831x: Convert to devm_regmap_init()
        mfd: wm8994: Convert to devm_regmap_init()
        mfd/ASoC: Convert WM8994 driver to use regmap patches
        mfd: Add __devinit and __devexit annotations in wm8994
        ...
      9586c959
    • Linus Torvalds's avatar
      Merge tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 · 34699403
      Linus Torvalds authored
      Pull IEEE 1394 (FireWire) subsystem updates post v3.3 from Stefan Richter:
      
       - Some SBP-2 initiator fixes, side product from ongoing work on a target.
      
       - Reintroduction of an isochronous I/O feature of the older ieee1394 driver
         stack (flush buffer completions); it was evidently rarely used but not
         actually unused.  Matching libraw1394 code is already available.
      
       - Be sure to prefix all kernel log messages with device name or card name,
         and other logging related cleanups.
      
       - Misc other small cleanups, among them a small API change that affects
         sound/firewire/ too. Clemens Ladisch is aware of it.
      
      * tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394: (26 commits)
        firewire: allow explicit flushing of iso packet completions
        firewire: prevent dropping of completed iso packet header data
        firewire: ohci: factor out iso completion flushing code
        firewire: ohci: simplify iso header pointer arithmetic
        firewire: ohci: optimize control bit checks
        firewire: ohci: remove unused excess_bytes field
        firewire: ohci: copy_iso_headers(): make comment match the code
        firewire: cdev: fix IR multichannel event documentation
        firewire: ohci: fix too-early completion of IR multichannel buffers
        firewire: ohci: move runtime debug facility out of #ifdef
        firewire: tone down some diagnostic log messages
        firewire: sbp2: replace a GFP_ATOMIC allocation
        firewire: sbp2: Fix SCSI sense data mangling
        firewire: sbp2: Ignore SBP-2 targets on the local node
        firewire: sbp2: Take into account Unit_Unique_ID
        firewire: nosy: Use the macro DMA_BIT_MASK().
        firewire: core: convert AR-req handler lock from _irqsave to _bh
        firewire: core: fix race at address_handler unregistration
        firewire: core: remove obsolete comment
        firewire: core: prefix log messages with card name
        ...
      34699403
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 7fc86a79
      Linus Torvalds authored
      Pull pinctrl updates for v3.4 from Linus Walleij (*):
       - Switches the PXA 168, 910 and MMP over to use pinctrl
       - Locking revamped
       - Massive refactorings...
       - Reform the driver API to use multiple states
       - Support pin config in the mapping tables
       - Pinctrl drivers for the nVidia Tegra series
       - Generic pin config support lib for simple pin controllers
       - Implement pin config for the U300
      
      * tag 'pinctrl-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (48 commits)
        ARM: u300: configure some pins as an example
        pinctrl: support pinconfig on the U300
        pinctrl/coh901: use generic pinconf enums and parameters
        pinctrl: introduce generic pin config
        pinctrl: fix error path in pinconf_map_to_setting()
        pinctrl: allow concurrent gpio and mux function ownership of pins
        pinctrl: forward-declare struct device
        pinctrl: split pincontrol states into its own header
        pinctrl: include machine header to core.h
        ARM: tegra: Select PINCTRL Kconfig variables
        pinctrl: add a driver for NVIDIA Tegra
        pinctrl: Show selected function and group in pinmux-pins debugfs
        pinctrl: enhance mapping table to support pin config operations
        pinctrl: API changes to support multiple states per device
        pinctrl: add usecount to pins for muxing
        pinctrl: refactor struct pinctrl handling in core.c vs pinmux.c
        pinctrl: fix and simplify locking
        pinctrl: fix the pin descriptor kerneldoc
        pinctrl: assume map table entries can't have a NULL name field
        pinctrl: introduce PINCTRL_STATE_DEFAULT, define hogs as that state
        ...
      
      (*) What is it with all these Linuses these days? There's a Linus at
          google too.  Some day I will get myself my own broadsword, and run
          around screaming "There can be only one".
      
          I used to be _special_ dammit. Snif.
      7fc86a79
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 90597b6c
      Linus Torvalds authored
      Pull libata updates from Jeff Garzik:
      
       1) AHCI regression fix.  A recent "make driver conform to spec" change
          broke on deployed hardware.  Make new behavior optional, rather than
          default, turning it on only for specific embedded platforms that
          need this.
      
          Everybody else runs in the famous "non conformant but working" mode.
      
       2) pata_cmd64x, pata_legacy cleanups
      
       3) new Intel SATA PCI IDs
      
       4) misc minor vendor feature additions
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        pata_cmd64x: implement sff_irq_check() method
        pata_cmd64x: implement sff_irq_clear() method
        pata_cmd64x: use interrupt status from MRDMODE register
        pata_cmd64x: turn string of *if* statements into *switch*
        drivers/ata/pata_mpc52xx.c: clean up error handling code
        ahci_platform: add STRICT_AHCI platform type
        ahci: move AHCI_HFLAGS() macro to ahci.h
        ahci: add AHCI_HFLAG_DELAY_ENGINE host flag
        sata_fsl: add support for interrupt coalsecing feature
        ata/pata_arasan_cf: Add Hibernation support
        pata_legacy: correctly mask recovery field for HT6560B
        ata_piix: IDE-mode SATA patch for Intel Lynx Point DeviceIDs
        ahci: AHCI-mode SATA patch for Intel Lynx Point DeviceIDs
      90597b6c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 7bfe0e66
      Linus Torvalds authored
      Pull input subsystem updates from Dmitry Torokhov:
       "- we finally merged driver for USB version of Synaptics touchpads
          (I guess most commonly found in IBM/Lenovo keyboard/touchpad combo);
      
         - a bunch of new drivers for embedded platforms (Cypress
           touchscreens, DA9052 OnKey, MAX8997-haptic, Ilitek ILI210x
           touchscreens, TI touchscreen);
      
         - input core allows clients to specify desired clock source for
           timestamps on input events (EVIOCSCLOCKID ioctl);
      
         - input core allows querying state of all MT slots for given event
           code via EVIOCGMTSLOTS ioctl;
      
         - various driver fixes and improvements."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (45 commits)
        Input: ili210x - add support for Ilitek ILI210x based touchscreens
        Input: altera_ps2 - use of_match_ptr()
        Input: synaptics_usb - switch to module_usb_driver()
        Input: convert I2C drivers to use module_i2c_driver()
        Input: convert SPI drivers to use module_spi_driver()
        Input: omap4-keypad - move platform_data to <linux/platform_data>
        Input: kxtj9 - who_am_i check value and initial data rate fixes
        Input: add driver support for MAX8997-haptic
        Input: tegra-kbc - revise device tree support
        Input: of_keymap - add device tree bindings for simple key matrices
        Input: wacom - fix physical size calculation for 3rd-gen Bamboo
        Input: twl4030-vibra - really switch from #if to #ifdef
        Input: hp680_ts_input - ensure arguments to request_irq and free_irq are compatible
        Input: max8925_onkey - avoid accessing input device too early
        Input: max8925_onkey - allow to be used as a wakeup source
        Input: atmel-wm97xx - convert to dev_pm_ops
        Input: atmel-wm97xx - set driver owner
        Input: add cyttsp touchscreen maintainer entry
        Input: cyttsp - remove useless checks in cyttsp_probe()
        Input: usbtouchscreen - add support for Data Modul EasyTouch TP 72037
        ...
      7bfe0e66
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 6a76a699
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This fixes a build problem where two crypto modules both try to export
        the same symbols (which shouldn't have been exported in the first
        place)."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: twofish-x86_64-3way - module init/exit functions should be static
        crypto: camellia-x86_64 - module init/exit functions should be static
      6a76a699
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen · d4c6fa73
      Linus Torvalds authored
      Pull xen updates from Konrad Rzeszutek Wilk:
       "which has three neat features:
      
         - PV multiconsole support, so that there can be hvc1, hvc2, etc; This
           can be used in HVM and in PV mode.
      
         - P-state and C-state power management driver that uploads said power
           management data to the hypervisor.  It also inhibits cpufreq
           scaling drivers to load so that only the hypervisor can make power
           management decisions - fixing a weird perf bug.
      
           There is one thing in the Kconfig that you won't like: "default y
           if (X86_ACPI_CPUFREQ = y || X86_POWERNOW_K8 = y)" (note, that it
           all depends on CONFIG_XEN which depends on CONFIG_PARAVIRT which by
           default is off).  I've a fix to convert that boolean expression
           into "default m" which I am going to post after the cpufreq git
           pull - as the two patches to make this work depend on a fix in Dave
           Jones's tree.
      
         - Function Level Reset (FLR) support in the Xen PCI backend.
      
        Fixes:
      
         - Kconfig dependencies for Xen PV keyboard and video
         - Compile warnings and constify fixes
         - Change over to use percpu_xxx instead of this_cpu_xxx"
      
      Fix up trivial conflicts in drivers/tty/hvc/hvc_xen.c due to changes to
      a removed commit.
      
      * tag 'stable/for-linus-3.4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
        xen kconfig: relax INPUT_XEN_KBDDEV_FRONTEND deps
        xen/acpi-processor: C and P-state driver that uploads said data to hypervisor.
        xen: constify all instances of "struct attribute_group"
        xen/xenbus: ignore console/0
        hvc_xen: introduce HVC_XEN_FRONTEND
        hvc_xen: implement multiconsole support
        hvc_xen: support PV on HVM consoles
        xenbus: don't free other end details too early
        xen/enlighten: Expose MWAIT and MWAIT_LEAF if hypervisor OKs it.
        xen/setup/pm/acpi: Remove the call to boot_option_idle_override.
        xenbus: address compiler warnings
        xen: use this_cpu_xxx replace percpu_xxx funcs
        xen/pciback: Support pci_reset_function, aka FLR or D3 support.
        pci: Introduce __pci_reset_function_locked to be used when holding device_lock.
        xen: Utilize the restore_msi_irqs hook.
      d4c6fa73
    • Oliver Neukum's avatar
      usbnet: consider device busy at each recieved packet · 8a783354
      Oliver Neukum authored
      usbnet should centrally handle busy reporting in the rx path
      so subdrivers need not worry. This hurts use cases which do
      rx only or predominantly.
      Signed-off-by: default avatarOliver Neukum <oneukum@suse.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8a783354
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm · aab008db
      Linus Torvalds authored
      Pull cleancache changes from Konrad Rzeszutek Wilk:
       "This has some patches for the cleancache API that should have been
        submitted a _long_ time ago.  They are basically cleanups:
      
         - rename of flush to invalidate
      
         - moving reporting of statistics into debugfs
      
         - use __read_mostly as necessary.
      
        Oh, and also the MAINTAINERS file change.  The files (except the
        MAINTAINERS file) have been in #linux-next for months now.  The late
        addition of MAINTAINERS file is a brain-fart on my side - didn't
        realize I needed that just until I was typing this up - and I based
        that patch on v3.3 - so the tree is on top of v3.3."
      
      * tag 'stable/for-linus-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm:
        MAINTAINERS: Adding cleancache API to the list.
        mm: cleancache: Use __read_mostly as appropiate.
        mm: cleancache: report statistics via debugfs instead of sysfs.
        mm: zcache/tmem/cleancache: s/flush/invalidate/
        mm: cleancache: s/flush/invalidate/
      aab008db
    • Andy Gospodarek's avatar
      bonding: remove entries for master_ip and vlan_ip and query devices instead · eaddcd76
      Andy Gospodarek authored
      The following patch aimed to resolve an issue where secondary, tertiary,
      etc. addresses added to bond interfaces could overwrite the
      bond->master_ip and vlan_ip values.
      
              commit 917fbdb3
              Author: Henrik Saavedra Persson <henrik.e.persson@ericsson.com>
              Date:   Wed Nov 23 23:37:15 2011 +0000
      
                  bonding: only use primary address for ARP
      
      That patch was good because it prevented bonds using ARP monitoring from
      sending frames with an invalid source IP address.  Unfortunately, it
      didn't always work as expected.
      
      When using an ioctl (like ifconfig does) to set the IP address and
      netmask, 2 separate ioctls are actually called to set the IP and netmask
      if the mask chosen doesn't match the standard mask for that class of
      address.  The first ioctl did not have a mask that matched the one in
      the primary address and would still cause the device address to be
      overwritten.  The second ioctl that was called to set the mask would
      then detect as secondary and ignored, but the damage was already done.
      
      This was not an issue when using an application that used netlink
      sockets as the setting of IP and netmask came down at once.  The
      inconsistent behavior between those two interfaces was something that
      needed to be resolved.
      
      While I was thinking about how I wanted to resolve this, Ralf Zeidler
      came with a patch that resolved this on a RHEL kernel by keeping a full
      shadow of the entries in dev->ifa_list for the bonding device and vlan
      devices in the bonding driver.  I didn't like the duplication of the
      list as I want to see the 'bonding' struct and code shrink rather than
      grow, but liked the general idea.
      
      As the Subject indicates this patch drops the master_ip and vlan_ip
      elements from the 'bonding' and 'vlan_entry' structs, respectively.
      This can be done because a device's address-list is now traversed to
      determine the optimal source IP address for ARP requests and for checks
      to see if the bonding device has a particular IP address.  This code
      could have all be contained inside the bonding driver, but it made more
      sense to me to EXPORT and call inet_confirm_addr since it did exactly
      what was needed.
      
      I tested this and a backported patch and everything works as expected.
      Ralf also helped with verification of the backported patch.
      
      Thanks to Ralf for all his help on this.
      
      v2: Whitespace and organizational changes based on suggestions from Jay
      Vosburgh and Dave Miller.
      
      v3: Fixup incorrect usage of rcu_read_unlock based on Dave Miller's
      suggestion.
      Signed-off-by: default avatarAndy Gospodarek <andy@greyhouse.net>
      CC: Ralf Zeidler <ralf.zeidler@nsn.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eaddcd76
    • Rusty Russell's avatar
      netfilter: remove forward module param confusion. · 523f610e
      Rusty Russell authored
      It used to be an int, and it got changed to a bool parameter at least
      7 years ago.  It happens that NF_ACCEPT and NF_DROP are 0 and 1, so
      this works, but it's unclear, and the check that it's in range is not
      required.
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      523f610e
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lliubbo/blackfin · 4f5b1aff
      Linus Torvalds authored
      Pull blackfin updates from Bob Liu
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lliubbo/blackfin: (24 commits)
        blackfin: clean up string bfin_dma_5xx after rename.
        blackfin:dma: rename bfin_dma_5xx.c to bfin_dma.c
        bf548: ssm2602: Add ssm2602 platform data into bf548 ezkit board file.
        Blackfin: s/#if CONFIG/#ifdef CONFIG/
        Blackfin: pnav: delete duplicate linux/export.h include
        bf561: add ppi DLEN macro for 10bits to 16bits
        arch: blackfin: udpate defconfig
        Disintegrate asm/system.h for Blackfin [ver #2]
        arch/blackfin: don't generate random mac in bfin_get_ether_addr()
        Blackfin: wire up new process_vm syscalls
        blackfin: cleanup anomaly workarounds
        blackfin: update default defconfig
        blackfin: thread_info: add suspend flag
        bfin: add bfin_ad73311_machine platform device
        blackfin: bf537: stamp: update board file for 193x
        blackfin: kgdb: skip hardware watchpoint test
        bf548: add ppi interrupt mask and blanking clocks
        blackfin: bf561: forgot CSYNC in get_core_lock_noflush
        spi/bfin_spi: drop bits_per_word from client data
        blackfin: cplb-mpu: fix page mask table overflow
        ...
      4f5b1aff