Skip to content
  • Harvey Harrison's avatar
    remove sparse warning for mmzone.h · ddc81ed2
    Harvey Harrison authored
    
    
    include/linux/mmzone.h:640:22: warning: potentially expensive pointer subtraction
    
    Calculate the offset into the node_zones array rather than the index
    using casts to (char *) and comparing against the index * sizeof(struct zone).
    
    On X86_32 this saves a sar, but code size increases by one byte per
    is_highmem() use due to 32-bit cmps rather than 16 bit cmps.
    
    Before:
     207:   2b 80 8c 07 00 00       sub    0x78c(%eax),%eax
     20d:   c1 f8 0b                sar    $0xb,%eax
     210:   83 f8 02                cmp    $0x2,%eax
     213:   74 16                   je     22b <kmap_atomic_prot+0x144>
     215:   83 f8 03                cmp    $0x3,%eax
     218:   0f 85 8f 00 00 00       jne    2ad <kmap_atomic_prot+0x1c6>
     21e:   83 3d 00 00 00 00 02    cmpl   $0x2,0x0
     225:   0f 85 82 00 00 00       jne    2ad <kmap_atomic_prot+0x1c6>
     22b:   64 a1 00 00 00 00       mov    %fs:0x0,%eax
    
    After:
     207:   2b 80 8c 07 00 00       sub    0x78c(%eax),%eax
     20d:   3d 00 10 00 00          cmp    $0x1000,%eax
     212:   74 18                   je     22c <kmap_atomic_prot+0x145>
     214:   3d 00 18 00 00          cmp    $0x1800,%eax
     219:   0f 85 8f 00 00 00       jne    2ae <kmap_atomic_prot+0x1c7>
     21f:   83 3d 00 00 00 00 02    cmpl   $0x2,0x0
     226:   0f 85 82 00 00 00       jne    2ae <kmap_atomic_prot+0x1c7>
     22c:   64 a1 00 00 00 00       mov    %fs:0x0,%eax
    
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: default avatarHarvey Harrison <harvey.harrison@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ddc81ed2