[parisc-linux] code 28 in msdos_partition()

Paul Bame bame@endor.fc.hp.com
Wed, 19 Apr 2000 13:22:32 -0600


= 
= I figured out line 434 (of 497) fs/partitions/msdos.c
= ("if (!NR_SECTS(p))") is causing the code 28 trap (unaligned data
= reference trap) despite the use of get_unaligned() macro. Seems
= get_unaligned() just isn't supported. I tried tracking this down in
= order to fix it but got distracted by another problem.
= If someone feels like they want to contribute in
= a small way, fixing get/put unaligned would be helpful.

I'm interested in looking at this problem and seeing disks work in
general.  But I can't help since I don't have a box which seems to be
able to find SCSI drives (tried 712, b180, c360, and c3k).  Can you
give me a clue how to reproduce what you're seeing?

With my limited experience with Linux disks and software, the
partition table access is usually aligned right anyway, so I think
alignment traps here should be rare.

= The problem which distracted me was the use of generic
= swap macros by get_unaligned. parisc-linux defines architecture
= specific macros and I couldn't figure out why those
= were NOT being used. Any takers for this too?

Are you asking about le32_to_cpu() versus __le32_to_cpu()?  (Not that
I have an answer -- I'm just wondering if that's the question)

	-Paul Bame