1. 09 2月, 2013 2 次提交
    • L
      spi: Add helper functions for setting up transfers · 6d9eecd4
      Lars-Peter Clausen 提交于
      Quite often the pattern used for setting up and transferring a synchronous SPI
      transaction looks very much like the following:
      
      	struct spi_message msg;
      	struct spi_transfer xfers[] = {
      		...
      	};
      
      	spi_message_init(&msg);
      	spi_message_add_tail(&xfers[0], &msg);
      	...
      	spi_message_add_tail(&xfers[ARRAY_SIZE(xfers) - 1], &msg);
      
      	ret = spi_sync(&msg);
      
      This patch adds two new helper functions for handling this case. The first
      helper function spi_message_init_with_transfers() takes a spi_message and an
      array of spi_transfers. It will initialize the message and then call
      spi_message_add_tail() for each transfer in the array. E.g. the following
      
      	spi_message_init(&msg);
      	spi_message_add_tail(&xfers[0], &msg);
      	...
      	spi_message_add_tail(&xfers[ARRAY_SIZE(xfers) - 1], &msg);
      
      can be rewritten as
      
      	spi_message_init_with_transfers(&msg, xfers, ARRAY_SIZE(xfers));
      
      The second function spi_sync_transfer() takes a SPI device and an array of
      spi_transfers. It will allocate a new spi_message (on the stack) and add all
      transfers in the array to the message. Finally it will call spi_sync() on the
      message.
      
      E.g. the follwing
      
      	struct spi_message msg;
      	struct spi_transfer xfers[] = {
      		...
      	};
      
      	spi_message_init(&msg);
      	spi_message_add_tail(&xfers[0], &msg);
      	...
      	spi_message_add_tail(&xfers[ARRAY_SIZE(xfers) - 1], &msg);
      
      	ret = spi_sync(spi, &msg);
      
      can be rewritten as
      
      	struct spi_transfer xfers[] = {
      		...
      	};
      
      	ret = spi_sync_transfer(spi, xfers, ARRAY_SIZE(xfers));
      
      A coccinelle script to find such instances will follow.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Reviewed-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      6d9eecd4
    • D
      iio:common: added allocate and deallocate trigger functions when trigger is disabled. · 91ffbabf
      Denis CIOCCA 提交于
      This patch resolve a bugfix when driver is compiled without trigger.
      Signed-off-by: NDenis Ciocca <denis.ciocca@st.com>
      Reported-by: NRandy Dunlap  <rdunlap@infradead.org>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      91ffbabf
  2. 07 2月, 2013 1 次提交
  3. 04 2月, 2013 1 次提交
  4. 02 2月, 2013 4 次提交
  5. 01 2月, 2013 2 次提交
  6. 28 1月, 2013 1 次提交
  7. 23 1月, 2013 1 次提交
  8. 21 1月, 2013 1 次提交
  9. 17 1月, 2013 2 次提交
  10. 15 1月, 2013 2 次提交
  11. 12 1月, 2013 9 次提交
    • R
      module: add new state MODULE_STATE_UNFORMED. · 0d21b0e3
      Rusty Russell 提交于
      You should never look at such a module, so it's excised from all paths
      which traverse the modules list.
      
      We add the state at the end, to avoid gratuitous ABI break (ksplice).
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      0d21b0e3
    • S
      net, wireless: overwrite default_ethtool_ops · d07d7507
      Stanislaw Gruszka 提交于
      Since:
      
      commit 2c60db03
      Author: Eric Dumazet <edumazet@google.com>
      Date:   Sun Sep 16 09:17:26 2012 +0000
      
          net: provide a default dev->ethtool_ops
      
      wireless core does not correctly assign ethtool_ops.
      
      After alloc_netdev*() call, some cfg80211 drivers provide they own
      ethtool_ops, but some do not. For them, wireless core provide generic
      cfg80211_ethtool_ops, which is assigned in NETDEV_REGISTER notify call:
      
              if (!dev->ethtool_ops)
                      dev->ethtool_ops = &cfg80211_ethtool_ops;
      
      But after Eric's commit, dev->ethtool_ops is no longer NULL (on cfg80211
      drivers without custom ethtool_ops), but points to &default_ethtool_ops.
      
      In order to fix the problem, provide function which will overwrite
      default_ethtool_ops and use it by wireless core.
      Signed-off-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Acked-by: NJohannes Berg <johannes@sipsolutions.net>
      Acked-by: NBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d07d7507
    • M
      lib/rbtree.c: avoid the use of non-static __always_inline · 3cb7a563
      Michel Lespinasse 提交于
      lib/rbtree.c declared __rb_erase_color() as __always_inline void, and
      then exported it with EXPORT_SYMBOL.
      
      This was because __rb_erase_color() must be exported for augmented
      rbtree users, but it must also be inlined into rb_erase() so that the
      dummy callback can get optimized out of that call site.
      
      (Actually with a modern compiler, none of the dummy callback functions
      should even be generated as separate text functions).
      
      The above usage is legal C, but it was unusual enough for some compilers
      to warn about it.  This change makes things more explicit, with a static
      __always_inline ____rb_erase_color function for use in rb_erase(), and a
      separate non-inline __rb_erase_color function for use in
      rb_erase_augmented call sites.
      Signed-off-by: NMichel Lespinasse <walken@google.com>
      Reported-by: NWu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3cb7a563
    • M
      mm: compaction: partially revert capture of suitable high-order page · 8fb74b9f
      Mel Gorman 提交于
      Eric Wong reported on 3.7 and 3.8-rc2 that ppoll() got stuck when
      waiting for POLLIN on a local TCP socket.  It was easier to trigger if
      there was disk IO and dirty pages at the same time and he bisected it to
      commit 1fb3f8ca ("mm: compaction: capture a suitable high-order page
      immediately when it is made available").
      
      The intention of that patch was to improve high-order allocations under
      memory pressure after changes made to reclaim in 3.6 drastically hurt
      THP allocations but the approach was flawed.  For Eric, the problem was
      that page->pfmemalloc was not being cleared for captured pages leading
      to a poor interaction with swap-over-NFS support causing the packets to
      be dropped.  However, I identified a few more problems with the patch
      including the fact that it can increase contention on zone->lock in some
      cases which could result in async direct compaction being aborted early.
      
      In retrospect the capture patch took the wrong approach.  What it should
      have done is mark the pageblock being migrated as MIGRATE_ISOLATE if it
      was allocating for THP and avoided races that way.  While the patch was
      showing to improve allocation success rates at the time, the benefit is
      marginal given the relative complexity and it should be revisited from
      scratch in the context of the other reclaim-related changes that have
      taken place since the patch was first written and tested.  This patch
      partially reverts commit 1fb3f8ca ("mm: compaction: capture a
      suitable high-order page immediately when it is made available").
      Reported-and-tested-by: NEric Wong <normalperson@yhbt.net>
      Tested-by: NEric Dumazet <eric.dumazet@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NMel Gorman <mgorman@suse.de>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8fb74b9f
    • M
      linux/audit.h: move ptrace.h include to kernel header · c0a3a20b
      Mike Frysinger 提交于
      While the kernel internals want pt_regs (and so it includes
      linux/ptrace.h), the user version of audit.h does not need it.  So move
      the include out of the uapi version.
      
      This avoids issues where people want the audit defines and userland
      ptrace api.  Including both the kernel ptrace and the userland ptrace
      headers can easily lead to failure.
      Signed-off-by: NMike Frysinger <vapier@gentoo.org>
      Cc: Eric Paris <eparis@redhat.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Reviewed-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c0a3a20b
    • K
      audit: create explicit AUDIT_SECCOMP event type · 7b9205bd
      Kees Cook 提交于
      The seccomp path was using AUDIT_ANOM_ABEND from when seccomp mode 1
      could only kill a process.  While we still want to make sure an audit
      record is forced on a kill, this should use a separate record type since
      seccomp mode 2 introduces other behaviors.
      
      In the case of "handled" behaviors (process wasn't killed), only emit a
      record if the process is under inspection.  This change also fixes
      userspace examination of seccomp audit events, since it was considered
      malformed due to missing fields of the AUDIT_ANOM_ABEND event type.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Eric Paris <eparis@redhat.com>
      Cc: Jeff Layton <jlayton@redhat.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Julien Tinnes <jln@google.com>
      Acked-by: NWill Drewry <wad@chromium.org>
      Acked-by: NSteve Grubb <sgrubb@redhat.com>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7b9205bd
    • J
      lockdep, rwsem: provide down_write_nest_lock() · 1b963c81
      Jiri Kosina 提交于
      down_write_nest_lock() provides a means to annotate locking scenario
      where an outer lock is guaranteed to serialize the order nested locks
      are being acquired.
      
      This is analogoue to already existing mutex_lock_nest_lock() and
      spin_lock_nest_lock().
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Tested-by: NSedat Dilek <sedat.dilek@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1b963c81
    • D
      lib: cpu_rmap: avoid flushing all workqueues · 896f97ea
      David Decotigny 提交于
      In some cases, free_irq_cpu_rmap() is called while holding a lock (eg
      rtnl).  This can lead to deadlocks, because it invokes
      flush_scheduled_work() which ends up waiting for whole system workqueue
      to flush, but some pending works might try to acquire the lock we are
      already holding.
      
      This commit uses reference-counting to replace
      irq_run_affinity_notifiers().  It also removes
      irq_run_affinity_notifiers() altogether.
      
      [akpm@linux-foundation.org: eliminate free_cpu_rmap, rename cpu_rmap_reclaim() to cpu_rmap_release(), propagate kref_put() retval from cpu_rmap_put()]
      Signed-off-by: NDavid Decotigny <decot@googlers.com>
      Reviewed-by: NBen Hutchings <bhutchings@solarflare.com>
      Acked-by: NEric Dumazet <edumazet@google.com>
      Reviewed-by: NJosh Triplett <josh@joshtriplett.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Or Gerlitz <ogerlitz@mellanox.com>
      Acked-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      896f97ea
    • M
      mm: compaction: Partially revert capture of suitable high-order page · 47ecfcb7
      Mel Gorman 提交于
      Eric Wong reported on 3.7 and 3.8-rc2 that ppoll() got stuck when
      waiting for POLLIN on a local TCP socket.  It was easier to trigger if
      there was disk IO and dirty pages at the same time and he bisected it to
      commit 1fb3f8ca ("mm: compaction: capture a suitable high-order page
      immediately when it is made available").
      
      The intention of that patch was to improve high-order allocations under
      memory pressure after changes made to reclaim in 3.6 drastically hurt
      THP allocations but the approach was flawed.  For Eric, the problem was
      that page->pfmemalloc was not being cleared for captured pages leading
      to a poor interaction with swap-over-NFS support causing the packets to
      be dropped.  However, I identified a few more problems with the patch
      including the fact that it can increase contention on zone->lock in some
      cases which could result in async direct compaction being aborted early.
      
      In retrospect the capture patch took the wrong approach.  What it should
      have done is mark the pageblock being migrated as MIGRATE_ISOLATE if it
      was allocating for THP and avoided races that way.  While the patch was
      showing to improve allocation success rates at the time, the benefit is
      marginal given the relative complexity and it should be revisited from
      scratch in the context of the other reclaim-related changes that have
      taken place since the patch was first written and tested.  This patch
      partially reverts commit 1fb3f8ca "mm: compaction: capture a suitable
      high-order page immediately when it is made available".
      Reported-and-tested-by: NEric Wong <normalperson@yhbt.net>
      Tested-by: NEric Dumazet <eric.dumazet@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NMel Gorman <mgorman@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      47ecfcb7
  12. 11 1月, 2013 1 次提交
  13. 10 1月, 2013 1 次提交
  14. 08 1月, 2013 1 次提交
    • S
      [media] coda: Fix build due to iram.h rename · e909c682
      Sascha Hauer 提交于
      commit c045e3f1 (ARM: imx: include iram.h rather than mach/iram.h) changed the
      location of iram.h, which causes the following build error when building the coda
      driver:
      
      drivers/media/platform/coda.c:27:23: error: mach/iram.h: No such file or directory
      drivers/media/platform/coda.c: In function 'coda_probe':
      drivers/media/platform/coda.c:2000: error: implicit declaration of function 'iram_alloc'
      drivers/media/platform/coda.c:2001: warning: assignment makes pointer from integer without a cast
      drivers/media/platform/coda.c: In function 'coda_remove':
      drivers/media/platform/coda.c:2024: error: implicit declaration of function 'iram_free'
      
      Since the content of iram.h is not imx specific, move it to
      include/linux/platform_data/imx-iram.h instead. This is an intermediate solution
      until the i.MX iram allocator is converted to the generic SRAM allocator.
      Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
      Acked-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      e909c682
  15. 06 1月, 2013 3 次提交
  16. 05 1月, 2013 4 次提交
  17. 04 1月, 2013 3 次提交
    • G
      include: remove __dev* attributes. · e389623a
      Greg Kroah-Hartman 提交于
      CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
      markings need to be removed.
      
      This change removes the use of __devinit from some include files that
      were previously missed.
      
      Based on patches originally written by Bill Pemberton, but redone by me
      in order to handle some of the coding style issues better, by hand.
      
      Cc: Bill Pemberton <wfp5p@virginia.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e389623a
    • G
      Drivers: bcma: remove __dev* attributes. · 0f58a01d
      Greg Kroah-Hartman 提交于
      CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
      markings need to be removed.
      
      This change removes the use of __devinit, __devexit_p, and __devexit
      from these drivers.
      
      Based on patches originally written by Bill Pemberton, but redone by me
      in order to handle some of the coding style issues better, by hand.
      
      Cc: Bill Pemberton <wfp5p@virginia.edu>
      Cc: "Rafał Miłecki" <zajec5@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0f58a01d
    • G
      pstore: remove __dev* attributes. · f568f6ca
      Greg Kroah-Hartman 提交于
      CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
      markings need to be removed.
      
      This change removes the use of __devinit from the pstore filesystem.
      
      Based on patches originally written by Bill Pemberton, but redone by me
      in order to handle some of the coding style issues better, by hand.
      
      Cc: Bill Pemberton <wfp5p@virginia.edu>
      Cc: Anton Vorontsov <cbouatmailru@gmail.com>
      Cc: Colin Cross <ccross@android.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f568f6ca
  18. 03 1月, 2013 1 次提交