X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=block%2Fblk-settings.c;h=c50ecf0ea3b17c652db8c134905de38e56713851;hb=7e463b7c1bd85e33dc2322b131f68d78a242c1e3;hp=779bb7646bcd13f871dd4ba20862722db699078c;hpb=6257c5740e9f876f4097f6c67ec69576c23abb82;p=~andy%2Flinux diff --git a/block/blk-settings.c b/block/blk-settings.c index 779bb7646bc..c50ecf0ea3b 100644 --- a/block/blk-settings.c +++ b/block/blk-settings.c @@ -611,7 +611,7 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, bottom = b->discard_granularity + alignment; /* Verify that top and bottom intervals line up */ - if (max(top, bottom) & (min(top, bottom) - 1)) + if ((max(top, bottom) % min(top, bottom)) != 0) t->discard_misaligned = 1; } @@ -619,8 +619,8 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, b->max_discard_sectors); t->discard_granularity = max(t->discard_granularity, b->discard_granularity); - t->discard_alignment = lcm(t->discard_alignment, alignment) & - (t->discard_granularity - 1); + t->discard_alignment = lcm(t->discard_alignment, alignment) % + t->discard_granularity; } return ret;