1. 21 12月, 2012 1 次提交
    • S
      lib: atomic64: Initialize locks statically to fix early users · fcc16882
      Stephen Boyd 提交于
      The atomic64 library uses a handful of static spin locks to implement
      atomic 64-bit operations on architectures without support for atomic
      64-bit instructions.
      
      Unfortunately, the spinlocks are initialized in a pure initcall and that
      is too late for the vfs namespace code which wants to use atomic64
      operations before the initcall is run.
      
      This became a problem as of commit 8823c079: "vfs: Add setns support
      for the mount namespace".
      
      This leads to BUG messages such as:
      
        BUG: spinlock bad magic on CPU#0, swapper/0/0
         lock: atomic64_lock+0x240/0x400, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
          do_raw_spin_lock+0x158/0x198
          _raw_spin_lock_irqsave+0x4c/0x58
          atomic64_add_return+0x30/0x5c
          alloc_mnt_ns.clone.14+0x44/0xac
          create_mnt_ns+0xc/0x54
          mnt_init+0x120/0x1d4
          vfs_caches_init+0xe0/0x10c
          start_kernel+0x29c/0x300
      
      coming out early on during boot when spinlock debugging is enabled.
      
      Fix this by initializing the spinlocks statically at compile time.
      Reported-and-tested-by: NVaibhav Bedia <vaibhav.bedia@ti.com>
      Tested-by: NTony Lindgren <tony@atomide.com>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fcc16882
  2. 18 12月, 2012 13 次提交
    • N
      scatterlist: don't BUG when we can trivially return a proper error. · 6fd59a83
      Nick Bowler 提交于
      There is absolutely no reason to crash the kernel when we have a
      perfectly good return value already available to use for conveying
      failure status.
      
      Let's return an error code instead of crashing the kernel: that sounds
      like a much better plan.
      
      [akpm@linux-foundation.org: s/E2BIG/EINVAL/]
      Signed-off-by: NNick Bowler <nbowler@elliptictech.com>
      Cc: Maxim Levitsky <maximlevitsky@gmail.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Jens Axboe <axboe@kernel.dk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6fd59a83
    • A
      prandom: introduce prandom_bytes() and prandom_bytes_state() · 6582c665
      Akinobu Mita 提交于
      Add functions to get the requested number of pseudo-random bytes.
      
      The difference from get_random_bytes() is that it generates pseudo-random
      numbers by prandom_u32().  It doesn't consume the entropy pool, and the
      sequence is reproducible if the same rnd_state is used.  So it is suitable
      for generating random bytes for testing.
      Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Cc: Artem Bityutskiy <dedekind1@gmail.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: David Laight <david.laight@aculab.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Robert Love <robert.w.love@intel.com>
      Cc: Valdis Kletnieks <valdis.kletnieks@vt.edu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6582c665
    • A
      random32: rename random32 to prandom · 496f2f93
      Akinobu Mita 提交于
      This renames all random32 functions to have 'prandom_' prefix as follows:
      
        void prandom_seed(u32 seed);	/* rename from srandom32() */
        u32 prandom_u32(void);		/* rename from random32() */
        void prandom_seed_state(struct rnd_state *state, u64 seed);
        				/* rename from prandom32_seed() */
        u32 prandom_u32_state(struct rnd_state *state);
        				/* rename from prandom32() */
      
      The purpose of this renaming is to prevent some kernel developers from
      assuming that prandom32() and random32() might imply that only
      prandom32() was the one using a pseudo-random number generator by
      prandom32's "p", and the result may be a very embarassing security
      exposure.  This concern was expressed by Theodore Ts'o.
      
      And furthermore, I'm going to introduce new functions for getting the
      requested number of pseudo-random bytes.  If I continue to use both
      prandom32 and random32 prefixes for these functions, the confusion
      is getting worse.
      
      As a result of this renaming, "prandom_" is the common prefix for
      pseudo-random number library.
      
      Currently, srandom32() and random32() are preserved because it is
      difficult to rename too many users at once.
      Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Cc: Robert Love <robert.w.love@intel.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Valdis Kletnieks <valdis.kletnieks@vt.edu>
      Cc: David Laight <david.laight@aculab.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Artem Bityutskiy <dedekind1@gmail.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      496f2f93
    • E
      simple_strto*: annotate function as obsolete · 462e4711
      Eldad Zack 提交于
      Update the documentation for simple_strto* to reflect that it has been
      obsoleted and advise the usage of kstrto*.
      Signed-off-by: NEldad Zack <eldad@fogrefinery.com>
      Cc: J. Bruce Fields <bfields@fieldses.org>
      Cc: Joe Perches <joe@perches.com>
      Cc: Randy Dunlap <rdunlap@xenotime.net>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Rob Landley <rob@landley.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      462e4711
    • E
      kstrto*: add documentation · 4c925d60
      Eldad Zack 提交于
      As Bruce Fields pointed out, kstrto* is currently lacking kerneldoc
      comments.  This patch adds kerneldoc comments to common variants of
      kstrto*: kstrto(u)l, kstrto(u)ll and kstrto(u)int.
      Signed-off-by: NEldad Zack <eldad@fogrefinery.com>
      Cc: J. Bruce Fields <bfields@fieldses.org>
      Cc: Joe Perches <joe@perches.com>
      Cc: Randy Dunlap <rdunlap@xenotime.net>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Rob Landley <rob@landley.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4c925d60
    • C
      lib/rbtree_test.c: fix uninitialized variable warning · 918854a6
      Cong Ding 提交于
      Fix this warning:
      
        lib/rbtree_test.c: In function `check':
        lib/rbtree_test.c:121: warning: `blacks' may be used uninitialized in this function
      Signed-off-by: NCong Ding <dinggnu@gmail.com>
      Cc: Michel Lespinasse <walken@google.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      918854a6
    • O
      percpu_rw_semaphore: introduce CONFIG_PERCPU_RWSEM · 22b361d1
      Oleg Nesterov 提交于
      Currently only block_dev and uprobes use percpu_rw_semaphore,
      add the config option selected by BLOCK || UPROBES.
      Signed-off-by: NOleg Nesterov <oleg@redhat.com>
      Cc: Anton Arapov <anton@redhat.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: Mikulas Patocka <mpatocka@redhat.com>
      Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      22b361d1
    • O
      percpu_rw_semaphore: add lockdep annotations · 8ebe3473
      Oleg Nesterov 提交于
      Add lockdep annotations.  Not only this can help to find the potential
      problems, we do not want the false warnings if, say, the task takes two
      different percpu_rw_semaphore's for reading.  IOW, at least ->rw_sem
      should not use a single class.
      
      This patch exposes this internal lock to lockdep so that it represents the
      whole percpu_rw_semaphore.  This way we do not need to add another "fake"
      ->lockdep_map and lock_class_key.  More importantly, this also makes the
      output from lockdep much more understandable if it finds the problem.
      
      In short, with this patch from lockdep pov percpu_down_read() and
      percpu_up_read() acquire/release ->rw_sem for reading, this matches the
      actual semantics.  This abuses __up_read() but I hope this is fine and in
      fact I'd like to have down_read_no_lockdep() as well,
      percpu_down_read_recursive_readers() will need it.
      Signed-off-by: NOleg Nesterov <oleg@redhat.com>
      Cc: Anton Arapov <anton@redhat.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: Mikulas Patocka <mpatocka@redhat.com>
      Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8ebe3473
    • O
      percpu_rw_semaphore: kill ->writer_mutex, add ->write_ctr · 9390ef0c
      Oleg Nesterov 提交于
      percpu_rw_semaphore->writer_mutex was only added to simplify the initial
      rewrite, the only thing it protects is clear_fast_ctr() which otherwise
      could be called by multiple writers.  ->rw_sem is enough to serialize the
      writers.
      
      Kill this mutex and add "atomic_t write_ctr" instead.  The writers
      increment/decrement this counter, the readers check it is zero instead of
      mutex_is_locked().
      
      Move atomic_add(clear_fast_ctr(), slow_read_ctr) under down_write() to
      avoid the race with other writers.  This is a bit sub-optimal, only the
      first writer needs this and we do not need to exclude the readers at this
      stage.  But this is simple, we do not want another internal lock until we
      add more features.
      
      And this speeds up the write-contended case.  Before this patch the racing
      writers sleep in synchronize_sched_expedited() sequentially, with this
      patch multiple synchronize_sched_expedited's can "overlap" with each
      other.  Note: we can do more optimizations, this is only the first step.
      Signed-off-by: NOleg Nesterov <oleg@redhat.com>
      Cc: Anton Arapov <anton@redhat.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: Mikulas Patocka <mpatocka@redhat.com>
      Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9390ef0c
    • O
      percpu_rw_semaphore: reimplement to not block the readers unnecessarily · a1fd3e24
      Oleg Nesterov 提交于
      Currently the writer does msleep() plus synchronize_sched() 3 times to
      acquire/release the semaphore, and during this time the readers are
      blocked completely.  Even if the "write" section was not actually started
      or if it was already finished.
      
      With this patch down_write/up_write does synchronize_sched() twice and
      down_read/up_read are still possible during this time, just they use the
      slow path.
      
      percpu_down_write() first forces the readers to use rw_semaphore and
      increment the "slow" counter to take the lock for reading, then it
      takes that rw_semaphore for writing and blocks the readers.
      
      Also.  With this patch the code relies on the documented behaviour of
      synchronize_sched(), it doesn't try to pair synchronize_sched() with
      barrier.
      Signed-off-by: NOleg Nesterov <oleg@redhat.com>
      Reviewed-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Mikulas Patocka <mpatocka@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
      Cc: Anton Arapov <anton@redhat.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a1fd3e24
    • J
      sscanf: don't ignore field widths for numeric conversions · 53809751
      Jan Beulich 提交于
      This is another step towards better standard conformance.  Rather than
      adding a local buffer to store the specified portion of the string (with
      the need to enforce an arbitrary maximum supported width to limit the
      buffer size), do a maximum width conversion and then drop as much of it as
      is necessary to meet the caller's request.
      
      Also fail on negative field widths.
      
      Uses the deprecated simple_strto*() functions because kstrtoXX() fail on
      non-zero terminated strings.
      Signed-off-by: NJan Beulich <jbeulich@suse.com>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      53809751
    • A
      lib: dynamic_debug: use kbasename() · 35367ab2
      Andy Shevchenko 提交于
      Remove the custom implementation of the functionality similar to kbasename().
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Jason Baron <jbaron@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      35367ab2
    • J
      lib/vsprintf.c: fix handling of %zd when using ssize_t · ef124960
      Jason Gunthorpe 提交于
      Documentation/printk-formats.txt says to use %zd for a ssize_t argument
      and some drivers do.  Unfortunately this prints a positive number for
      negative values eg:
      
        tpm_tis 70030000.tpm_tis: tpm_transmit: tpm_send: error 4294967234
      
      Add a case to va_args a ssize_t type if the interpretation should be
      signed.
      
      Tested on PPC32.
      Signed-off-by: NJason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ef124960
  3. 14 12月, 2012 2 次提交
  4. 13 12月, 2012 3 次提交
  5. 12 12月, 2012 1 次提交
    • J
      bootmem: fix wrong call parameter for free_bootmem() · 81df9bff
      Joonsoo Kim 提交于
      It is strange that alloc_bootmem() returns a virtual address and
      free_bootmem() requires a physical address.  Anyway, free_bootmem()'s
      first parameter should be physical address.
      
      There are some call sites for free_bootmem() with virtual address.  So fix
      them.
      
      [akpm@linux-foundation.org: improve free_bootmem() and free_bootmem_pate() documentation]
      Signed-off-by: NJoonsoo Kim <js1304@gmail.com>
      Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
      Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      81df9bff
  6. 06 12月, 2012 2 次提交
    • N
      propagate name change to comments in kernel source · 6d49e352
      Nadia Yvette Chambers 提交于
      I've legally changed my name with New York State, the US Social Security
      Administration, et al. This patch propagates the name change and change
      in initials and login to comments in the kernel source as well.
      Signed-off-by: NNadia Yvette Chambers <nyc@holomorphy.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      6d49e352
    • T
      lib/Makefile: Fix oid_registry build dependency · 527897cc
      Tim Gardner 提交于
      It is $(obj)/oid_registry.o that is dependent on $(obj)/oid_registry_data.c.
      The object file cannot be built until $(obj)/oid_registry_data.c has been
      generated.
      
      A periodic and hard to reproduce parallel build failure is due to
      this incorrect lib/Makefile dependency. The compile error is completely
      disingenuous.
      
        GEN     lib/oid_registry_data.c
      Compiling 49 OIDs
        CC      lib/oid_registry.o
      gcc: error: lib/oid_registry.c: No such file or directory
      gcc: fatal error: no input files
      compilation terminated.
      make[3]: *** [lib/oid_registry.o] Error 4
      
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Akinobu Mita <akinobu.mita@gmail.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NTim Gardner <tim.gardner@canonical.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      527897cc
  7. 05 12月, 2012 1 次提交
  8. 03 12月, 2012 1 次提交
  9. 29 11月, 2012 1 次提交
  10. 24 11月, 2012 1 次提交
  11. 17 11月, 2012 1 次提交
  12. 14 11月, 2012 1 次提交
  13. 30 10月, 2012 7 次提交
  14. 26 10月, 2012 1 次提交
    • T
      genalloc: stop crashing the system when destroying a pool · eedce141
      Thadeu Lima de Souza Cascardo 提交于
      The genalloc code uses the bitmap API from include/linux/bitmap.h and
      lib/bitmap.c, which is based on long values.  Both bitmap_set from
      lib/bitmap.c and bitmap_set_ll, which is the lockless version from
      genalloc.c, use BITMAP_LAST_WORD_MASK to set the first bits in a long in
      the bitmap.
      
      That one uses (1 << bits) - 1, 0b111, if you are setting the first three
      bits.  This means that the API counts from the least significant bits
      (LSB from now on) to the MSB.  The LSB in the first long is bit 0, then.
      The same works for the lookup functions.
      
      The genalloc code uses longs for the bitmap, as it should.  In
      include/linux/genalloc.h, struct gen_pool_chunk has unsigned long
      bits[0] as its last member.  When allocating the struct, genalloc should
      reserve enough space for the bitmap.  This should be a proper number of
      longs that can fit the amount of bits in the bitmap.
      
      However, genalloc allocates an integer number of bytes that fit the
      amount of bits, but may not be an integer amount of longs.  9 bytes, for
      example, could be allocated for 70 bits.
      
      This is a problem in itself if the Least Significat Bit in a long is in
      the byte with the largest address, which happens in Big Endian machines.
      This means genalloc is not allocating the byte in which it will try to
      set or check for a bit.
      
      This may end up in memory corruption, where genalloc will try to set the
      bits it has not allocated.  In fact, genalloc may not set these bits
      because it may find them already set, because they were not zeroed since
      they were not allocated.  And that's what causes a BUG when
      gen_pool_destroy is called and check for any set bits.
      
      What really happens is that genalloc uses kmalloc_node with __GFP_ZERO
      on gen_pool_add_virt.  With SLAB and SLUB, this means the whole slab
      will be cleared, not only the requested bytes.  Since struct
      gen_pool_chunk has a size that is a multiple of 8, and slab sizes are
      multiples of 8, we get lucky and allocate and clear the right amount of
      bytes.
      
      Hower, this is not the case with SLOB or with older code that did memset
      after allocating instead of using __GFP_ZERO.
      
      So, a simple module as this (running 3.6.0), will cause a crash when
      rmmod'ed.
      
        [root@phantom-lp2 foo]# cat foo.c
        #include <linux/kernel.h>
        #include <linux/module.h>
        #include <linux/init.h>
        #include <linux/genalloc.h>
      
        MODULE_LICENSE("GPL");
        MODULE_VERSION("0.1");
      
        static struct gen_pool *foo_pool;
      
        static __init int foo_init(void)
        {
                int ret;
                foo_pool = gen_pool_create(10, -1);
                if (!foo_pool)
                        return -ENOMEM;
                ret = gen_pool_add(foo_pool, 0xa0000000, 32 << 10, -1);
                if (ret) {
                        gen_pool_destroy(foo_pool);
                        return ret;
                }
                return 0;
        }
      
        static __exit void foo_exit(void)
        {
                gen_pool_destroy(foo_pool);
        }
      
        module_init(foo_init);
        module_exit(foo_exit);
        [root@phantom-lp2 foo]# zcat /proc/config.gz | grep SLOB
        CONFIG_SLOB=y
        [root@phantom-lp2 foo]# insmod ./foo.ko
        [root@phantom-lp2 foo]# rmmod foo
        ------------[ cut here ]------------
        kernel BUG at lib/genalloc.c:243!
        cpu 0x4: Vector: 700 (Program Check) at [c0000000bb0e7960]
            pc: c0000000003cb50c: .gen_pool_destroy+0xac/0x110
            lr: c0000000003cb4fc: .gen_pool_destroy+0x9c/0x110
            sp: c0000000bb0e7be0
           msr: 8000000000029032
          current = 0xc0000000bb0e0000
          paca    = 0xc000000006d30e00   softe: 0        irq_happened: 0x01
            pid   = 13044, comm = rmmod
        kernel BUG at lib/genalloc.c:243!
        [c0000000bb0e7ca0] d000000004b00020 .foo_exit+0x20/0x38 [foo]
        [c0000000bb0e7d20] c0000000000dff98 .SyS_delete_module+0x1a8/0x290
        [c0000000bb0e7e30] c0000000000097d4 syscall_exit+0x0/0x94
        --- Exception: c00 (System Call) at 000000800753d1a0
        SP (fffd0b0e640) is in userspace
      Signed-off-by: NThadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
      Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
      Cc: Benjamin Gaignard <benjamin.gaignard@stericsson.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      eedce141
  15. 24 10月, 2012 1 次提交
    • S
      dma-debug: New interfaces to debug dma mapping errors · 6c9c6d63
      Shuah Khan 提交于
      Add dma-debug interface debug_dma_mapping_error() to debug
      drivers that fail to check dma mapping errors on addresses
      returned by dma_map_single() and dma_map_page() interfaces.
      This interface clears a flag set by debug_dma_map_page() to
      indicate that dma_mapping_error() has been called by the
      driver. When driver does unmap, debug_dma_unmap() checks the
      flag and if this flag is still set, prints warning message
      that includes call trace that leads up to the unmap. This
      interface can be called from dma_mapping_error() routines to
      enable dma mapping error check debugging.
      
      Tested: Intel iommu and swiotlb (iommu=soft) on x86-64 with
              CONFIG_DMA_API_DEBUG enabled and disabled.
      Signed-off-by: NShuah Khan <shuah.khan@hp.com>
      Reviewed-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Signed-off-by: NJoerg Roedel <joerg.roedel@amd.com>
      6c9c6d63
  16. 20 10月, 2012 1 次提交
  17. 11 10月, 2012 1 次提交
  18. 10 10月, 2012 1 次提交