Subject: ipt_physdev.c alignment problems on parisc64

From: Arnaldo Carvalho de Melo <[email-masked]>
Date: Tue, 2 Sep 2003 11:30:50 -0300

The 1.786.1.54 changeset (i.e. the initial ipt_physdev.c one 8) created this
alignment problems on parisc64:

tmp.stdout.allegro.31506.s: Assembler messages:
tmp.stdout.allegro.31506.s:97: Error: Field not properly aligned [8] (18).
tmp.stdout.allegro.31506.s:97: Error: Invalid operands
tmp.stdout.allegro.31506.s:125: Error: Field not properly aligned [8] (34).
tmp.stdout.allegro.31506.s:125: Error: Invalid operands
tmp.stdout.allegro.31506.s:129: Error: Field not properly aligned [8] (50).
tmp.stdout.allegro.31506.s:129: Error: Invalid operands

I got this nailed to the match function, on these lines:

        for (i = 0, ret = 0; i < IFNAMSIZ/sizeof(unsigned long); i++) {
                ret |= (((const unsigned long *)indev)[i]
                        ^ ((const unsigned long *)info->physindev)[i])
                        & ((const unsigned long *)info->in_mask)[i];
        }

and

        for (i = 0, ret = 0; i < IFNAMSIZ/sizeof(unsigned long); i++) {
                ret |= (((const unsigned long *)outdev)[i]
                        ^ ((const unsigned long *)info->physoutdev)[i])
                        & ((const unsigned long *)info->out_mask)[i];
        }

Reading specs from /opt/palinux/lib/gcc-lib/hppa64-linux/3.0.4/specs
Configured with: ../../gcc-3.0-3.0.4ds3/src/configure --host=hppa-linux --build=hppa-linux --target=hppa64-linux --disable-shared --disable-nls --enable-languages=c --prefix=/opt/palinux
Thread model: single
gcc version 3.0.4
acme@allegro:~/bk/scsi-2.6$

- Arnaldo