firewire: core: fix card->reset_jiffies overflow
On a 32-bit machine with, e.g., HZ=1000, jiffies will overflow after about 50 days, so if there are between 25 and 50 days between bus resets, the card->reset_jiffies comparisons can get wrong results. To fix this, ensure that this timestamp always uses 64 bits. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: "Stefan Richter" <stefanr@s5r6.in-berlin.de>
This commit is contained in:

committed by
Stefan Richter

parent
dbc9880fa7
commit
e71084af58
@@ -1205,7 +1205,8 @@ static void iso_resource_work(struct work_struct *work)
|
||||
todo = r->todo;
|
||||
/* Allow 1000ms grace period for other reallocations. */
|
||||
if (todo == ISO_RES_ALLOC &&
|
||||
time_is_after_jiffies(client->device->card->reset_jiffies + HZ)) {
|
||||
time_before64(get_jiffies_64(),
|
||||
client->device->card->reset_jiffies + HZ)) {
|
||||
schedule_iso_resource(r, DIV_ROUND_UP(HZ, 3));
|
||||
skip = true;
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user