1. 22 8月, 2012 1 次提交
  2. 18 1月, 2012 1 次提交
    • J
      Fix compile breakage with kref.h · 67175b85
      James Bottomley 提交于
      This set of build failures just started appearing on parisc:
      
        In file included from drivers/input/serio/serio_raw.c:12:
        include/linux/kref.h: In function 'kref_get':
        include/linux/kref.h:40: error: 'TAINT_WARN' undeclared (first use in this function)
        include/linux/kref.h:40: error: (Each undeclared identifier is reported only once
        include/linux/kref.h:40: error: for each function it appears in.)
        include/linux/kref.h: In function 'kref_sub':
        include/linux/kref.h:65: error: 'TAINT_WARN' undeclared (first use in this function)
      
      It happens because TAINT_WARN is defined in kernel.h and this particular
      compile doesn't seem to include it (no idea why it's just manifesting ..
      probably some #include file untangling exposed it).
      
      Fix by adding
      
        #include <linux/kernel.h>
      
      to linux/kref.h
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      67175b85
  3. 15 12月, 2011 1 次提交
    • G
      kref: fix up the kfree build problems · 6261ddee
      Greg Kroah-Hartman 提交于
      It turns out that some memory allocators use kobjects, which use krefs,
      and kref.h was wanting to figure out the address of kfree(), which ended
      up in a loop.
      
      kfree was only being needed for a warning to tell the caller that they
      were doing something stupid.  Now we just move that warning into the
      comments for the functions, which results in a bit more fun as everyone
      enjoys digging for people to mock at times of boredom.
      
      So, remove the dependancy of slab.h on kref.h, and fix up the other
      include file as well (we really only need bug.h and atomic.h, not
      types.h).
      Reported-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Oliver Neukum <oneukum@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      6261ddee
  4. 14 12月, 2011 3 次提交
    • P
      kref: Remove the memory barriers · 3c8ed889
      Peter Zijlstra 提交于
      Commit 1b0b3b99 ("kref: fix CPU ordering with respect to krefs")
      wrongly adds memory barriers to kref.
      
      It states:
      
        some atomic operations are only atomic, not ordered. Thus a CPU is allowed
        to reorder memory references to an object to before the reference is
        obtained. This fixes it.
      
      While true, it fails to show why this is a problem. I say it is not a
      problem because if there is a race with kref_put() such that we could
      end up referencing a free'd object without this memory barrier, we
      would still have that race with the memory barrier.
      
      The kref_put() in question could complete (and free the object) before
      the atomic_inc() and we'd still be up shit creek.
      
      The kref_init() case is even worse, if your object is published at this
      time you're so wrong the memory barrier won't make a difference what
      so ever. If its not published, the act of publishing should include
      the needed barriers/locks to make sure all writes prior to the act of
      publishing are complete such that others will only observe a complete
      object.
      
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Oliver Neukum <oneukum@suse.de>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3c8ed889
    • P
      kref: Implement kref_put in terms of kref_sub · 47dbd7d9
      Peter Zijlstra 提交于
      Less lines of code is better.
      
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      47dbd7d9
    • P
      kref: Inline all functions · 4af679cd
      Peter Zijlstra 提交于
      These are tiny functions, there's no point in having them out-of-line.
      
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-8eccvi2ur2fzgi00xdjlbf5z@git.kernel.orgSigned-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      4af679cd
  5. 07 1月, 2011 1 次提交
  6. 05 1月, 2011 1 次提交
  7. 22 11月, 2010 1 次提交
  8. 22 5月, 2010 1 次提交
  9. 15 3月, 2010 1 次提交
  10. 27 9月, 2009 1 次提交
  11. 30 4月, 2008 1 次提交
  12. 25 1月, 2008 1 次提交
  13. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4