Geert Uytterhoeven a99b7069aa hfsplus: Fix undefined __divdi3 in hfsplus_init_header_node()
ERROR: "__divdi3" [fs/hfsplus/hfsplus.ko] undefined!

Introduced by commit 099e9245e04d ("hfsplus: implement attributes file's
header node initialization code").

i_size_read() returns loff_t, which is long long, i.e.  64-bit.  node_size
is size_t, which is either 32-bit or 64-bit.  Hence
"i_size_read(attr_file) / node_size" is a 64-by-32 or 64-by-64 division,
causing (some versions of) gcc to emit a call to __divdi3().

Fortunately node_size is actually 16-bit, as the sole caller of
hfsplus_init_header_node() passes a u16.  Hence change its type from
size_t to u16, and use do_div() to perform a 64-by-32 division.

Not seen in m68k/allmodconfig in -next, so it really depends on the
verion of gcc.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Vyacheslav Dubeyko <slava@dubeyko.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-11-15 09:32:23 +09:00
..
2013-10-24 23:43:27 -04:00
2013-11-13 12:09:12 +09:00
2013-06-29 12:56:53 +04:00
2013-09-07 10:38:29 +02:00
2013-10-27 16:27:07 -07:00
2013-09-16 18:20:25 -07:00
2013-06-29 12:56:32 +04:00
2013-11-09 00:16:32 -05:00
2013-06-29 12:56:39 +04:00
2013-06-29 12:56:29 +04:00
2013-11-14 17:16:35 +09:00
2013-11-13 07:30:53 -05:00
2013-06-29 12:57:04 +04:00
2013-10-24 23:34:54 -04:00
2013-09-13 23:06:40 -04:00
2013-10-24 23:34:54 -04:00
2013-06-29 12:57:05 +04:00
2013-11-09 00:16:29 -05:00
2013-09-10 18:56:31 -04:00
2013-10-24 23:34:54 -04:00
2013-11-09 00:16:20 -05:00
2013-10-24 23:34:54 -04:00
2013-11-09 00:16:27 -05:00
2013-11-09 00:16:19 -05:00
2013-11-09 00:16:19 -05:00
2013-05-07 20:16:25 -07:00
2013-10-24 23:35:00 -04:00
2013-10-24 23:34:54 -04:00
2013-10-24 23:34:54 -04:00
2013-10-24 23:34:54 -04:00
2013-11-09 00:16:31 -05:00
2013-11-09 00:16:20 -05:00
2013-05-29 12:57:34 -07:00