Re: kernel unaligned accesses on 2.6.29.

From: Robin Holt
Date: Tue Mar 24 2009 - 21:14:40 EST


Had a few minutes to look around.

On Tue, Mar 24, 2009 at 12:28:57PM -0500, Robin Holt wrote:
> I just built and booted an ia64 2.6.29 kernel. While accessing NFS
> filesystems, I occassionally get:
>
> kernel unaligned access to 0xe00007bc3b8f67b9, ip=0xa00000020a61e370
> kernel unaligned access to 0xe00007bc3b8f67b1, ip=0xa00000020a61e3d1
>
> grep a00000020a61 /proc/modules
> lockd 146448 1 nfs, Live 0xa00000020a610000
>
>
> These come in pairs. I tracked it down to the lockd.ko kernel module
> and then objdump'd to find we are in:
>
>
> nsm_get_handle
> nsm_init_private():
> /data/lwork/attica2/holt/git-linus/v2.6.29/fs/lockd/mon.c:280
> e370: 0b 00 98 68 98 11 [MMI] st8 [r52]=r38;;

This one is:
u64 *p = (u64 *)&nsm->sm_priv.data;
...
*p = (unsigned long)nsm;

sm_priv.data is an unsigned char array, so there are no alignment
rules. You either need to use memcpy, or not define it as an unsigned
char. Tony, any suggestions?

> /data/lwork/attica2/holt/git-linus/v2.6.29/fs/lockd/mon.c:279
> e376: 00 00 00 02 00 00 nop.m 0x0
> e37c: 92 d0 e9 53 shl r16=r9,5;;
>
> nsm_display_address():
> /data/lwork/attica2/holt/git-linus/v2.6.29/fs/lockd/mon.c:86
> ...
> e3d0: 0a 60 28 1c 8d 39 [MMI] cmp4.eq p12,p13=10,r14;;
> e3d6: 00 a8 95 30 23 00 st8 [r37]=r53

Haven't gotten to this one yet.

Robin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/