mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 21:54:11 +08:00
mm: try both endianess when checking for endianess
When checking for the swap header try byteswapping the endianess dependent fields to allow the swap partition to be shared between big & little endian systems. Signed-off-by: Chris Dearman <chris@mips.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Acked-by: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
19770b3260
commit
797df57490
@ -1582,6 +1582,14 @@ asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags)
|
||||
error = -EINVAL;
|
||||
goto bad_swap;
|
||||
case 2:
|
||||
/* swap partition endianess hack... */
|
||||
if (swab32(swap_header->info.version) == 1) {
|
||||
swab32s(&swap_header->info.version);
|
||||
swab32s(&swap_header->info.last_page);
|
||||
swab32s(&swap_header->info.nr_badpages);
|
||||
for (i = 0; i < swap_header->info.nr_badpages; i++)
|
||||
swab32s(&swap_header->info.badpages[i]);
|
||||
}
|
||||
/* Check the swap header's sub-version and the size of
|
||||
the swap file and bad block lists */
|
||||
if (swap_header->info.version != 1) {
|
||||
|
Loading…
Reference in New Issue
Block a user