xfs
[Top] [All Lists]

[PATCH] fix sparse endianess warnings in xfsidbg

To: xfs@xxxxxxxxxxx
Subject: [PATCH] fix sparse endianess warnings in xfsidbg
From: Christoph Hellwig <hch@xxxxxx>
Date: Sun, 15 Jul 2007 19:20:39 +0200
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.3.28i
xfsidbg was missed in a a few of the previous endianess conversions, and
this patch brings it up to the proper state.


Signed-off-by: Christoph Hellwig <hch@xxxxxx>

Index: linux-2.6-xfs/fs/xfs/xfsidbg.c
===================================================================
--- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2007-07-15 17:46:49.000000000 +0200
+++ linux-2.6-xfs/fs/xfs/xfsidbg.c      2007-07-15 18:17:16.000000000 +0200
@@ -3233,9 +3233,9 @@ xfs_broot(xfs_inode_t *ip, xfs_ifork_t *
        pp = XFS_BMAP_BROOT_PTR_ADDR(broot, 1, f->if_broot_bytes);
        for (i = 1; i <= be16_to_cpu(broot->bb_numrecs); i++)
                kdb_printf("\t%d: startoff %Ld ptr %Lx %s\n",
-                       i, (long long)INT_GET(kp[i - 1].br_startoff, 
ARCH_CONVERT),
-                       (unsigned long long)INT_GET(pp[i - 1], ARCH_CONVERT),
-                       xfs_fmtfsblock(INT_GET(pp[i - 1], ARCH_CONVERT), 
ip->i_mount));
+                       i, (long long)be64_to_cpu(kp[i - 1].br_startoff),
+                       (unsigned long long)be64_to_cpu(pp[i - 1]),
+                       xfs_fmtfsblock(be64_to_cpu(pp[i - 1]), ip->i_mount));
 }
 
 /*
@@ -3319,9 +3319,9 @@ xfs_btbmap(xfs_bmbt_block_t *bt, int bsz
                        k = XFS_BTREE_KEY_ADDR(xfs_bmbt, bt, i);
                        p = XFS_BTREE_PTR_ADDR(xfs_bmbt, bt, i, mxr);
                        kdb_printf("key %d startoff %Ld ", i,
-                               (unsigned long long)INT_GET(k->br_startoff, 
ARCH_CONVERT));
+                               (unsigned long 
long)be64_to_cpu(k->br_startoff));
                        kdb_printf("ptr %Lx\n",
-                               (unsigned long long)INT_GET(*p, ARCH_CONVERT));
+                               (unsigned long long)be64_to_cpu(*p));
                }
        }
 }
@@ -3346,9 +3346,9 @@ xfs_btino(xfs_inobt_block_t *bt, int bsz
 
                        r = XFS_BTREE_REC_ADDR(xfs_inobt, bt, i);
                        kdb_printf("rec %d startino 0x%x freecount %d, free 
%Lx\n",
-                               i, INT_GET(r->ir_startino, ARCH_CONVERT),
-                               INT_GET(r->ir_freecount, ARCH_CONVERT),
-                               (unsigned long long)INT_GET(r->ir_free, 
ARCH_CONVERT));
+                               i, be32_to_cpu(r->ir_startino),
+                               be32_to_cpu(r->ir_freecount),
+                               (unsigned long long)be64_to_cpu(r->ir_free));
                }
        } else {
                int mxr;
@@ -3361,7 +3361,7 @@ xfs_btino(xfs_inobt_block_t *bt, int bsz
                        k = XFS_BTREE_KEY_ADDR(xfs_inobt, bt, i);
                        p = XFS_BTREE_PTR_ADDR(xfs_inobt, bt, i, mxr);
                        kdb_printf("key %d startino 0x%x ptr 0x%x\n",
-                               i, INT_GET(k->ir_startino, ARCH_CONVERT),
+                               i, be32_to_cpu(k->ir_startino),
                                be32_to_cpu(*p));
                }
        }
@@ -4566,18 +4566,18 @@ xfsidbg_xattrleaf(xfs_attr_leafblock_t *
        kdb_printf("hdr info forw 0x%x back 0x%x magic 0x%x\n",
                i->forw, i->back, i->magic);
        kdb_printf("hdr count %d usedbytes %d firstused %d holes %d\n",
-               INT_GET(h->count, ARCH_CONVERT),
-               INT_GET(h->usedbytes, ARCH_CONVERT),
-               INT_GET(h->firstused, ARCH_CONVERT), h->holes);
+               be16_to_cpu(h->count),
+               be16_to_cpu(h->usedbytes),
+               be16_to_cpu(h->firstused), h->holes);
        for (j = 0, m = h->freemap; j < XFS_ATTR_LEAF_MAPSIZE; j++, m++) {
                kdb_printf("hdr freemap %d base %d size %d\n",
-                       j, INT_GET(m->base, ARCH_CONVERT),
-                       INT_GET(m->size, ARCH_CONVERT));
+                       j, be16_to_cpu(m->base),
+                       be16_to_cpu(m->size));
        }
-       for (j = 0, e = leaf->entries; j < INT_GET(h->count, ARCH_CONVERT); 
j++, e++) {
+       for (j = 0, e = leaf->entries; j < be16_to_cpu(h->count); j++, e++) {
                kdb_printf("[%2d] hash 0x%x nameidx %d flags 0x%x",
-                       j, INT_GET(e->hashval, ARCH_CONVERT),
-                       INT_GET(e->nameidx, ARCH_CONVERT), e->flags);
+                       j, be32_to_cpu(e->hashval),
+                       be16_to_cpu(e->nameidx), e->flags);
                if (e->flags & XFS_ATTR_LOCAL)
                        kdb_printf("LOCAL ");
                if (e->flags & XFS_ATTR_ROOT)
@@ -4596,20 +4596,19 @@ xfsidbg_xattrleaf(xfs_attr_leafblock_t *
                        for (k = 0; k < l->namelen; k++)
                                kdb_printf("%c", l->nameval[k]);
                        kdb_printf("\"(%d) value \"", l->namelen);
-                       for (k = 0; (k < INT_GET(l->valuelen, ARCH_CONVERT)) && 
(k < 32); k++)
+                       for (k = 0; (k < be16_to_cpu(l->valuelen)) && (k < 32); 
k++)
                                kdb_printf("%c", l->nameval[l->namelen + k]);
                        if (k == 32)
                                kdb_printf("...");
-                       kdb_printf("\"(%d)\n",
-                               INT_GET(l->valuelen, ARCH_CONVERT));
+                       kdb_printf("\"(%d)\n", be16_to_cpu(l->valuelen));
                } else {
                        r = XFS_ATTR_LEAF_NAME_REMOTE(leaf, j);
                        for (k = 0; k < r->namelen; k++)
                                kdb_printf("%c", r->name[k]);
                        kdb_printf("\"(%d) value blk 0x%x len %d\n",
                                    r->namelen,
-                                   INT_GET(r->valueblk, ARCH_CONVERT),
-                                   INT_GET(r->valuelen, ARCH_CONVERT));
+                                   be32_to_cpu(r->valueblk),
+                                   be32_to_cpu(r->valuelen));
                }
        }
 }
@@ -4625,13 +4624,13 @@ xfsidbg_xattrsf(xfs_attr_shortform_t *s)
        int i, j;
 
        sfh = &s->hdr;
-       kdb_printf("hdr count %d\n", INT_GET(sfh->count, ARCH_CONVERT));
-       for (i = 0, sfe = s->list; i < INT_GET(sfh->count, ARCH_CONVERT); i++) {
+       kdb_printf("hdr count %d\n", sfh->count);
+       for (i = 0, sfe = s->list; i < sfh->count; i++) {
                kdb_printf("entry %d namelen %d name \"", i, sfe->namelen);
                for (j = 0; j < sfe->namelen; j++)
                        kdb_printf("%c", sfe->nameval[j]);
-               kdb_printf("\" valuelen %d value \"", INT_GET(sfe->valuelen, 
ARCH_CONVERT));
-               for (j = 0; (j < INT_GET(sfe->valuelen, ARCH_CONVERT)) && (j < 
32); j++)
+               kdb_printf("\" valuelen %d value \"", sfe->valuelen);
+               for (j = 0; (j < sfe->valuelen) && (j < 32); j++)
                        kdb_printf("%c", sfe->nameval[sfe->namelen + j]);
                if (j == 32)
                        kdb_printf("...");
@@ -5043,15 +5042,15 @@ xfsidbg_xbuf_real(xfs_buf_t *bp, int sum
                        kdb_printf("buf 0x%p inobt 0x%p\n", bp, bti);
                        xfs_btino(bti, XFS_BUF_COUNT(bp));
                }
-       } else if (INT_GET((aleaf = d)->hdr.info.magic, ARCH_CONVERT) == 
XFS_ATTR_LEAF_MAGIC) {
+       } else if (be16_to_cpu((aleaf = d)->hdr.info.magic) == 
XFS_ATTR_LEAF_MAGIC) {
                if (summary) {
                        kdb_printf("Attr Leaf, 1st hash 0x%x (at 0x%p)\n",
-                                     INT_GET(aleaf->entries[0].hashval, 
ARCH_CONVERT), aleaf);
+                                     be32_to_cpu(aleaf->entries[0].hashval), 
aleaf);
                } else {
                        kdb_printf("buf 0x%p attr leaf 0x%p\n", bp, aleaf);
                        xfsidbg_xattrleaf(aleaf);
                }
-       } else if (INT_GET((node = d)->hdr.info.magic, ARCH_CONVERT) == 
XFS_DA_NODE_MAGIC) {
+       } else if (be16_to_cpu((node = d)->hdr.info.magic) == 
XFS_DA_NODE_MAGIC) {
                if (summary) {
                        kdb_printf("Dir/Attr Node, level %d, 1st hash 0x%x (at 
0x%p)\n",
                              node->hdr.level, node->btree[0].hashval, node);
@@ -5082,35 +5081,35 @@ xfsidbg_xbuf_real(xfs_buf_t *bp, int sum
                kdb_printf("Quota blk starting ID [%d], type %s at 0x%p\n",
                        be32_to_cpu(dqb->d_id), XFSIDBG_DQTYPESTR(dqb), dqb);
 
-       } else if (INT_GET((d2block = d)->hdr.magic, ARCH_CONVERT) == 
XFS_DIR2_BLOCK_MAGIC) {
+       } else if (be32_to_cpu((d2block = d)->hdr.magic) == 
XFS_DIR2_BLOCK_MAGIC) {
                if (summary) {
                        kdb_printf("Dir2 block (at 0x%p)\n", d2block);
                } else {
                        kdb_printf("buf 0x%p dir2 block 0x%p\n", bp, d2block);
                        xfs_dir2data((void *)d2block, XFS_BUF_COUNT(bp));
                }
-       } else if (INT_GET((d2data = d)->hdr.magic, ARCH_CONVERT) == 
XFS_DIR2_DATA_MAGIC) {
+       } else if (be32_to_cpu((d2data = d)->hdr.magic) == XFS_DIR2_DATA_MAGIC) 
{
                if (summary) {
                        kdb_printf("Dir2 data (at 0x%p)\n", d2data);
                } else {
                        kdb_printf("buf 0x%p dir2 data 0x%p\n", bp, d2data);
                        xfs_dir2data((void *)d2data, XFS_BUF_COUNT(bp));
                }
-       } else if (INT_GET((d2leaf = d)->hdr.info.magic, ARCH_CONVERT) == 
XFS_DIR2_LEAF1_MAGIC) {
+       } else if (be16_to_cpu((d2leaf = d)->hdr.info.magic) == 
XFS_DIR2_LEAF1_MAGIC) {
                if (summary) {
                        kdb_printf("Dir2 leaf(1) (at 0x%p)\n", d2leaf);
                } else {
                        kdb_printf("buf 0x%p dir2 leaf 0x%p\n", bp, d2leaf);
                        xfs_dir2leaf(d2leaf, XFS_BUF_COUNT(bp));
                }
-       } else if (INT_GET(d2leaf->hdr.info.magic, ARCH_CONVERT) == 
XFS_DIR2_LEAFN_MAGIC) {
+       } else if (be16_to_cpu(d2leaf->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC) 
{
                if (summary) {
                        kdb_printf("Dir2 leaf(n) (at 0x%p)\n", d2leaf);
                } else {
                        kdb_printf("buf 0x%p dir2 leaf 0x%p\n", bp, d2leaf);
                        xfs_dir2leaf(d2leaf, XFS_BUF_COUNT(bp));
                }
-       } else if (INT_GET((d2free = d)->hdr.magic, ARCH_CONVERT) == 
XFS_DIR2_FREE_MAGIC) {
+       } else if (be32_to_cpu((d2free = d)->hdr.magic) == XFS_DIR2_FREE_MAGIC) 
{
                if (summary) {
                        kdb_printf("Dir2 free (at 0x%p)\n", d2free);
                } else {
@@ -5653,12 +5652,12 @@ xfsidbg_xdanode(xfs_da_intnode_t *node)
        h = &node->hdr;
        i = &h->info;
        kdb_printf("hdr info forw 0x%x back 0x%x magic 0x%x\n",
-               INT_GET(i->forw, ARCH_CONVERT), INT_GET(i->back, ARCH_CONVERT), 
INT_GET(i->magic, ARCH_CONVERT));
+               be32_to_cpu(i->forw), be32_to_cpu(i->back), 
be16_to_cpu(i->magic));
        kdb_printf("hdr count %d level %d\n",
-               INT_GET(h->count, ARCH_CONVERT), INT_GET(h->level, 
ARCH_CONVERT));
-       for (j = 0, e = node->btree; j < INT_GET(h->count, ARCH_CONVERT); j++, 
e++) {
+               be16_to_cpu(h->count), be16_to_cpu(h->level));
+       for (j = 0, e = node->btree; j < be16_to_cpu(h->count); j++, e++) {
                kdb_printf("btree %d hashval 0x%x before 0x%x\n",
-                       j, (uint_t)INT_GET(e->hashval, ARCH_CONVERT), 
INT_GET(e->before, ARCH_CONVERT));
+                       j, be32_to_cpu(e->hashval), be32_to_cpu(e->before));
        }
 }
 
@@ -5708,14 +5707,16 @@ xfs_dir2data(void *addr, int size)
        db = (xfs_dir2_data_t *)addr;
        bb = (xfs_dir2_block_t *)addr;
        h = &db->hdr;
-       kdb_printf("hdr magic 0x%x (%s)\nhdr bestfree", INT_GET(h->magic, 
ARCH_CONVERT),
-               INT_GET(h->magic, ARCH_CONVERT) == XFS_DIR2_DATA_MAGIC ? "DATA" 
:
-                       (INT_GET(h->magic, ARCH_CONVERT) == 
XFS_DIR2_BLOCK_MAGIC ? "BLOCK" : ""));
+       kdb_printf("hdr magic 0x%x (%s)\nhdr bestfree", be32_to_cpu(h->magic),
+               be32_to_cpu(h->magic) == XFS_DIR2_DATA_MAGIC ? "DATA" :
+                       (be32_to_cpu(h->magic) == XFS_DIR2_BLOCK_MAGIC ? 
"BLOCK" : ""));
        for (j = 0, m = h->bestfree; j < XFS_DIR2_DATA_FD_COUNT; j++, m++) {
-               kdb_printf(" %d: 0x%x@0x%x", j, INT_GET(m->length, 
ARCH_CONVERT), INT_GET(m->offset, ARCH_CONVERT));
+               kdb_printf(" %d: 0x%x@0x%x", j,
+                          be16_to_cpu(m->length),
+                          be16_to_cpu(m->offset));
        }
        kdb_printf("\n");
-       if (INT_GET(h->magic, ARCH_CONVERT) == XFS_DIR2_DATA_MAGIC)
+       if (be32_to_cpu(h->magic) == XFS_DIR2_DATA_MAGIC)
                t = (char *)db + size;
        else {
                /* XFS_DIR2_BLOCK_TAIL_P */
@@ -5726,38 +5727,38 @@ xfs_dir2data(void *addr, int size)
        }
        for (p = (char *)(h + 1); p < t; ) {
                u = (xfs_dir2_data_unused_t *)p;
-               if (u->freetag == XFS_DIR2_DATA_FREE_TAG) {
+               if (be16_to_cpu(u->freetag) == XFS_DIR2_DATA_FREE_TAG) {
                        kdb_printf("0x%lx unused freetag 0x%x length 0x%x tag 
0x%x\n",
                                (unsigned long) (p - (char *)addr),
-                               INT_GET(u->freetag, ARCH_CONVERT),
-                               INT_GET(u->length, ARCH_CONVERT),
-                               INT_GET(*xfs_dir2_data_unused_tag_p(u), 
ARCH_CONVERT));
-                       p += INT_GET(u->length, ARCH_CONVERT);
+                               be16_to_cpu(u->freetag),
+                               be16_to_cpu(u->length),
+                               be16_to_cpu(*xfs_dir2_data_unused_tag_p(u)));
+                       p += be16_to_cpu(u->length);
                        continue;
                }
                e = (xfs_dir2_data_entry_t *)p;
                kdb_printf("0x%lx entry inumber %llu namelen %d name \"",
                        (unsigned long) (p - (char *)addr),
-                       (unsigned long long) INT_GET(e->inumber, ARCH_CONVERT),
+                       (unsigned long long) be64_to_cpu(e->inumber),
                        e->namelen);
                for (k = 0; k < e->namelen; k++)
                        kdb_printf("%c", e->name[k]);
-               kdb_printf("\" tag 0x%x\n", 
INT_GET(*xfs_dir2_data_entry_tag_p(e), ARCH_CONVERT));
+               kdb_printf("\" tag 0x%x\n", 
be16_to_cpu(*xfs_dir2_data_entry_tag_p(e)));
                p += xfs_dir2_data_entsize(e->namelen);
        }
-       if (INT_GET(h->magic, ARCH_CONVERT) == XFS_DIR2_DATA_MAGIC)
+       if (be32_to_cpu(h->magic) == XFS_DIR2_DATA_MAGIC)
                return;
-       for (j = 0; j < INT_GET(tail->count, ARCH_CONVERT); j++, l++) {
+       for (j = 0; j < be32_to_cpu(tail->count); j++, l++) {
                kdb_printf("0x%lx leaf %d hashval 0x%x address 0x%x (byte 
0x%x)\n",
                        (unsigned long) ((char *)l - (char *)addr), j,
-                       (uint_t)INT_GET(l->hashval, ARCH_CONVERT),
-                       INT_GET(l->address, ARCH_CONVERT),
+                       be32_to_cpu(l->hashval),
+                       be32_to_cpu(l->address),
                        /* XFS_DIR2_DATAPTR_TO_BYTE */
-                       INT_GET(l->address, ARCH_CONVERT) << 
XFS_DIR2_DATA_ALIGN_LOG);
+                       be32_to_cpu(l->address) << XFS_DIR2_DATA_ALIGN_LOG);
        }
        kdb_printf("0x%lx tail count %d\n",
                (unsigned long) ((char *)tail - (char *)addr),
-               INT_GET(tail->count, ARCH_CONVERT));
+               be32_to_cpu(tail->count));
 }
 
 static void
@@ -5766,35 +5767,35 @@ xfs_dir2leaf(xfs_dir2_leaf_t *leaf, int 
        xfs_dir2_leaf_hdr_t *h;
        xfs_da_blkinfo_t *i;
        xfs_dir2_leaf_entry_t *e;
-       xfs_dir2_data_off_t *b;
        xfs_dir2_leaf_tail_t *t;
+       __be16 *b;
        int j;
 
        h = &leaf->hdr;
        i = &h->info;
        e = leaf->ents;
        kdb_printf("hdr info forw 0x%x back 0x%x magic 0x%x\n",
-               INT_GET(i->forw, ARCH_CONVERT), INT_GET(i->back, ARCH_CONVERT), 
INT_GET(i->magic, ARCH_CONVERT));
-       kdb_printf("hdr count %d stale %d\n", INT_GET(h->count, ARCH_CONVERT), 
INT_GET(h->stale, ARCH_CONVERT));
-       for (j = 0; j < INT_GET(h->count, ARCH_CONVERT); j++, e++) {
+               be32_to_cpu(i->forw), be32_to_cpu(i->back), 
be16_to_cpu(i->magic));
+       kdb_printf("hdr count %d stale %d\n", be16_to_cpu(h->count), 
be16_to_cpu(h->stale));
+       for (j = 0; j < be16_to_cpu(h->count); j++, e++) {
                kdb_printf("0x%lx ent %d hashval 0x%x address 0x%x (byte 
0x%x)\n",
                        (unsigned long) ((char *)e - (char *)leaf), j,
-                       (uint_t)INT_GET(e->hashval, ARCH_CONVERT),
-                       INT_GET(e->address, ARCH_CONVERT),
+                       be32_to_cpu(e->hashval),
+                       be32_to_cpu(e->address),
                        /* XFS_DIR2_DATAPTR_TO_BYTE */
-                       INT_GET(e->address, ARCH_CONVERT) << 
XFS_DIR2_DATA_ALIGN_LOG);
+                       be32_to_cpu(e->address) << XFS_DIR2_DATA_ALIGN_LOG);
        }
-       if (INT_GET(i->magic, ARCH_CONVERT) == XFS_DIR2_LEAFN_MAGIC)
+       if (be16_to_cpu(i->magic) == XFS_DIR2_LEAFN_MAGIC)
                return;
        /* XFS_DIR2_LEAF_TAIL_P */
        t = (xfs_dir2_leaf_tail_t *)((char *)leaf + size - sizeof(*t));
        b = xfs_dir2_leaf_bests_p(t);
-       for (j = 0; j < INT_GET(t->bestcount, ARCH_CONVERT); j++, b++) {
+       for (j = 0; j < be32_to_cpu(t->bestcount); j++, b++) {
                kdb_printf("0x%lx best %d 0x%x\n",
                        (unsigned long) ((char *)b - (char *)leaf), j,
-                       INT_GET(*b, ARCH_CONVERT));
+                       be16_to_cpu(*b));
        }
-       kdb_printf("tail bestcount %d\n", INT_GET(t->bestcount, ARCH_CONVERT));
+       kdb_printf("tail bestcount %d\n", be32_to_cpu(t->bestcount));
 }
 
 /*
@@ -5834,10 +5835,11 @@ xfsidbg_xdir2free(xfs_dir2_free_t *f)
        int     i;
 
        kdb_printf("hdr magic 0x%x firstdb %d nvalid %d nused %d\n",
-               INT_GET(f->hdr.magic, ARCH_CONVERT), INT_GET(f->hdr.firstdb, 
ARCH_CONVERT), INT_GET(f->hdr.nvalid, ARCH_CONVERT), INT_GET(f->hdr.nused, 
ARCH_CONVERT));
-       for (i = 0; i < INT_GET(f->hdr.nvalid, ARCH_CONVERT); i++) {
+                  be32_to_cpu(f->hdr.magic), be32_to_cpu(f->hdr.firstdb),
+                  be32_to_cpu(f->hdr.nvalid), be32_to_cpu(f->hdr.nused));
+       for (i = 0; i < be32_to_cpu(f->hdr.nvalid); i++) {
                kdb_printf("entry %d db %d count %d\n",
-                       i, i + INT_GET(f->hdr.firstdb, ARCH_CONVERT), 
INT_GET(f->bests[i], ARCH_CONVERT));
+                       i, i + be32_to_cpu(f->hdr.firstdb), 
be16_to_cpu(f->bests[i]));
        }
 }
 


<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH] fix sparse endianess warnings in xfsidbg, Christoph Hellwig <=