Re: drivers/target/target_core_transport.c breakage on i386

From: Nicholas A. Bellinger
Date: Mon Aug 08 2011 - 15:22:31 EST

On Mon, 2011-08-08 at 01:10 +0100, Al Viro wrote:
> In commit ec98f7825c6eaa4a9afb0eb518826efc8a2ed4a2
> Author: Andy Grover <agrover@xxxxxxxxxx>
> Date: Wed Jul 20 19:28:46 2011 +0000
> target: Eliminate usage of struct se_mem
> we got
> + task_count = DIV_ROUND_UP(sectors, dev_max_sectors);
> and that's sector_t/sector_t. 64bit division on i386 is no-no in
> the kernel - it emits __udivdi3 call and it's not there. Can
> sectors really reach 2^32 here?

Hi Al,

Just a heads up that this was caught this before -rc1, and we ended up
adding DIV_ROUND_UP_ULL using do_div() for the 32-bit case here, and
another DIV_ROUND_UP_SECTOR_T macro that target_core_transport.c is now
using to address this for i386.

kernel.h: Add DIV_ROUND_UP_ULL and DIV_ROUND_UP_SECTOR_T macro usage;a=commitdiff_plain;h=36a26c69b4c70396ef569c3452690fba0c1dec08



To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at