Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vegard...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Sep 2009 15:07:54 +0000 (08:07 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Sep 2009 15:07:54 +0000 (08:07 -0700)
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vegard/kmemcheck:
  kmemcheck: add missing braces to do-while in kmemcheck_annotate_bitfield
  kmemcheck: update documentation
  kmemcheck: depend on HAVE_ARCH_KMEMCHECK
  kmemcheck: remove useless check
  kmemcheck: remove duplicated #include

1  2 
arch/x86/mm/kmemcheck/kmemcheck.c
include/linux/kmemcheck.h

index 528bf954eb7403c82d0816957b02a653ff9bcf18,5b99004fb4becbead27268039a3e37757759dc2c..8cc183344140cf1503df9efdc87bdad6e9f23bcf
@@@ -225,9 -225,6 +225,6 @@@ void kmemcheck_hide(struct pt_regs *reg
  
        BUG_ON(!irqs_disabled());
  
-       if (data->balance == 0)
-               return;
        if (unlikely(data->balance != 1)) {
                kmemcheck_show_all();
                kmemcheck_error_save_bug(regs);
@@@ -331,20 -328,6 +328,20 @@@ static void kmemcheck_read_strict(struc
        kmemcheck_shadow_set(shadow, size);
  }
  
 +bool kmemcheck_is_obj_initialized(unsigned long addr, size_t size)
 +{
 +      enum kmemcheck_shadow status;
 +      void *shadow;
 +
 +      shadow = kmemcheck_shadow_lookup(addr);
 +      if (!shadow)
 +              return true;
 +
 +      status = kmemcheck_shadow_test(shadow, size);
 +
 +      return status == KMEMCHECK_SHADOW_INITIALIZED;
 +}
 +
  /* Access may cross page boundary */
  static void kmemcheck_read(struct pt_regs *regs,
        unsigned long addr, unsigned int size)
index dc2fd545db002459a0add2169ed861bec7ecf425,06c6c5501f13bdbb34602850d1071ca52772976c..c8006607f947e74048fbf54be2263948c7a46e39
@@@ -34,8 -34,6 +34,8 @@@ void kmemcheck_mark_initialized_pages(s
  int kmemcheck_show_addr(unsigned long address);
  int kmemcheck_hide_addr(unsigned long address);
  
 +bool kmemcheck_is_obj_initialized(unsigned long addr, size_t size);
 +
  #else
  #define kmemcheck_enabled 0
  
@@@ -101,11 -99,6 +101,11 @@@ static inline void kmemcheck_mark_initi
  {
  }
  
 +static inline bool kmemcheck_is_obj_initialized(unsigned long addr, size_t size)
 +{
 +      return true;
 +}
 +
  #endif /* CONFIG_KMEMCHECK */
  
  /*
        int name##_end[0];
  
  #define kmemcheck_annotate_bitfield(ptr, name)                                \
-       do if (ptr) {                                                   \
+       do {                                                            \
+               if (!ptr)                                               \
+                       break;                                          \
+                                                                       \
                int _n = (long) &((ptr)->name##_end)                    \
                        - (long) &((ptr)->name##_begin);                \
                BUILD_BUG_ON(_n < 0);                                   \