Messages in this thread | | | Subject | Re: [GIT PULL] iscsi-target merge for v3.1-rc1 | From | "Nicholas A. Bellinger" <> | Date | Mon, 25 Jul 2011 17:32:56 -0700 |
| |
On Mon, 2011-07-25 at 16:37 -0700, Andrew Morton wrote: > On Sat, 23 Jul 2011 16:16:15 -0700 > "Nicholas A. Bellinger" <nab@linux-iscsi.org> wrote: > > > Please go ahead and pull from: > > > > master.kernel.org:/pub/scm/linux/kernel/git/nab/target-pending.git for-linus-merge > > i386 allyesconfig: > > ERROR: "__udivdi3" [drivers/target/target_core_mod.ko] undefined! > > somewhere in drivers/target/target_core_transport.c:transport_allocate_data_tasks().
Mmmm, I was under the assumption that DIV_ROUND_UP() did unsigned long long division correctly for sector_t on 32-bit , but apparently not with the new v4.1 transport_allocate_data_tasks() code.. Andy..?
Once upon a time we used the following __udivdi3() and __umoddi3() wrappers around do_div() to handle this instruction in target_core_mod for 32-bit, but we ended up removing these during the .38 merge in favor of IIRC direct do_div() usage. These wrappers are still in use for LIO backports on 32-bit x86 and arm however..
So I'll go ahead and make sure this works on i386 with lio-core-2.6.git shortly, and double check __udivdi3() usage with iscsi-target in for-next. Andrew and Christoph, did have any input on a preffered method of handling this case in the new v4.1 DIV_ROUND_UP() usage..?
Thank you!
--nab
| |