lkml.org 
[lkml]   [2011]   [Aug]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: drivers/target/target_core_transport.c breakage on i386
From
Date
On Mon, 2011-08-08 at 01:10 +0100, Al Viro wrote:
> In commit ec98f7825c6eaa4a9afb0eb518826efc8a2ed4a2
> Author: Andy Grover <agrover@redhat.com>
> 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
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=36a26c69b4c70396ef569c3452690fba0c1dec08

Thanks,

--nab




\
 
 \ /
  Last update: 2011-08-08 21:25    [W:0.043 / U:1.520 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site