On 2022-06-23 11:15, Song Liu wrote: > On Thu, Jun 23, 2022 at 9:56 AM Logan Gunthorpe <logang@xxxxxxxxxxxx> wrote: >> >> 0day reports a build failure on the hexagon architecture: >> >> ld.lld: error: undefined symbol: __hexagon_udivdi3 >> referenced by raid5.c >> md/raid5.o:(raid5_make_request) in archive drivers/built-in.a >> referenced by raid5.c >> md/raid5.o:(raid5_make_request) in archive drivers/built-in.a >> did you mean: __hexagon_udivsi3 >> defined in: arch/hexagon/built-in.a(lib/udivsi3.o) >> >> This is caused by using DIV_ROUND_UP on a sector_t type. >> >> The actual value is known to be less than 256 so a wide 64bit divide >> here is not desirable. Thus cast the argument to an int to ensure it >> uses a 32bit divide. > > I force pushed an update that uses DIV_ROUND_UP_SECTOR_T instead. > I guess that should also work? Ah, yes, that'll also fix the bug. I chose to cast to minimize the performance impact of an unnecessarily wide divide. But I don't have any strong basis to suggest the performance will be worse with the wider division. So fix it whichever way you think is best. Logan