is_power_of_2 in fat
Replacing (n & (n-1)) in the context of power of 2 checks with is_power_of_2 Signed-off-by: vignesh babu <vignesh.babu@wipro.com> Acked-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
4fa156ea84
commit
e7d709c096
@ -25,6 +25,7 @@
|
|||||||
#include <linux/parser.h>
|
#include <linux/parser.h>
|
||||||
#include <linux/uio.h>
|
#include <linux/uio.h>
|
||||||
#include <linux/writeback.h>
|
#include <linux/writeback.h>
|
||||||
|
#include <linux/log2.h>
|
||||||
#include <asm/unaligned.h>
|
#include <asm/unaligned.h>
|
||||||
|
|
||||||
#ifndef CONFIG_FAT_DEFAULT_IOCHARSET
|
#ifndef CONFIG_FAT_DEFAULT_IOCHARSET
|
||||||
@ -1217,8 +1218,7 @@ int fat_fill_super(struct super_block *sb, void *data, int silent,
|
|||||||
}
|
}
|
||||||
logical_sector_size =
|
logical_sector_size =
|
||||||
le16_to_cpu(get_unaligned((__le16 *)&b->sector_size));
|
le16_to_cpu(get_unaligned((__le16 *)&b->sector_size));
|
||||||
if (!logical_sector_size
|
if (!is_power_of_2(logical_sector_size)
|
||||||
|| (logical_sector_size & (logical_sector_size - 1))
|
|
||||||
|| (logical_sector_size < 512)
|
|| (logical_sector_size < 512)
|
||||||
|| (PAGE_CACHE_SIZE < logical_sector_size)) {
|
|| (PAGE_CACHE_SIZE < logical_sector_size)) {
|
||||||
if (!silent)
|
if (!silent)
|
||||||
@ -1228,8 +1228,7 @@ int fat_fill_super(struct super_block *sb, void *data, int silent,
|
|||||||
goto out_invalid;
|
goto out_invalid;
|
||||||
}
|
}
|
||||||
sbi->sec_per_clus = b->sec_per_clus;
|
sbi->sec_per_clus = b->sec_per_clus;
|
||||||
if (!sbi->sec_per_clus
|
if (!is_power_of_2(sbi->sec_per_clus)) {
|
||||||
|| (sbi->sec_per_clus & (sbi->sec_per_clus - 1))) {
|
|
||||||
if (!silent)
|
if (!silent)
|
||||||
printk(KERN_ERR "FAT: bogus sectors per cluster %u\n",
|
printk(KERN_ERR "FAT: bogus sectors per cluster %u\n",
|
||||||
sbi->sec_per_clus);
|
sbi->sec_per_clus);
|
||||||
|
Loading…
Reference in New Issue
Block a user