Re: [PATCH] md/raid5: Fix divide type in raid5_make_request()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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



[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux