diff options
Diffstat (limited to 'mm/slab.c')
-rw-r--r-- | mm/slab.c | 17 |
1 files changed, 6 insertions, 11 deletions
@@ -1811,15 +1811,15 @@ static void dump_line(char *data, int offset, int limit) | |||
1811 | unsigned char error = 0; | 1811 | unsigned char error = 0; |
1812 | int bad_count = 0; | 1812 | int bad_count = 0; |
1813 | 1813 | ||
1814 | printk(KERN_ERR "%03x:", offset); | 1814 | printk(KERN_ERR "%03x: ", offset); |
1815 | for (i = 0; i < limit; i++) { | 1815 | for (i = 0; i < limit; i++) { |
1816 | if (data[offset + i] != POISON_FREE) { | 1816 | if (data[offset + i] != POISON_FREE) { |
1817 | error = data[offset + i]; | 1817 | error = data[offset + i]; |
1818 | bad_count++; | 1818 | bad_count++; |
1819 | } | 1819 | } |
1820 | printk(" %02x", (unsigned char)data[offset + i]); | ||
1821 | } | 1820 | } |
1822 | printk("\n"); | 1821 | print_hex_dump(KERN_CONT, "", 0, 16, 1, |
1822 | &data[offset], limit, 1); | ||
1823 | 1823 | ||
1824 | if (bad_count == 1) { | 1824 | if (bad_count == 1) { |
1825 | error ^= POISON_FREE; | 1825 | error ^= POISON_FREE; |
@@ -2989,14 +2989,9 @@ bad: | |||
2989 | printk(KERN_ERR "slab: Internal list corruption detected in " | 2989 | printk(KERN_ERR "slab: Internal list corruption detected in " |
2990 | "cache '%s'(%d), slabp %p(%d). Hexdump:\n", | 2990 | "cache '%s'(%d), slabp %p(%d). Hexdump:\n", |
2991 | cachep->name, cachep->num, slabp, slabp->inuse); | 2991 | cachep->name, cachep->num, slabp, slabp->inuse); |
2992 | for (i = 0; | 2992 | print_hex_dump(KERN_ERR, "", DUMP_PREFIX_OFFSET, 16, 1, slabp, |
2993 | i < sizeof(*slabp) + cachep->num * sizeof(kmem_bufctl_t); | 2993 | sizeof(*slabp) + cachep->num * sizeof(kmem_bufctl_t), |
2994 | i++) { | 2994 | 1); |
2995 | if (i % 16 == 0) | ||
2996 | printk("\n%03x:", i); | ||
2997 | printk(" %02x", ((unsigned char *)slabp)[i]); | ||
2998 | } | ||
2999 | printk("\n"); | ||
3000 | BUG(); | 2995 | BUG(); |
3001 | } | 2996 | } |
3002 | } | 2997 | } |