Try both endianess when checking for endianess.
Subsystems (3)
PATCH 1/1 Try both endianess when checking for endianess.
From: Chris Dearman <[email protected]>
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 <[email protected]>
Signed-off-by Ralf Baechle <[email protected]>
mm/swapfile.c | 8 ++++++++ 1 file changed, 8 insertions(+)
mm/swapfile.c +8 -0
@@ -1551,6 +1551,14 @@ asmlinkage long sys_swapon(const char __ 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 ) {