scsi: 3w-9xxx: rework lock timeouts
authorArnd Bergmann <arnd@arndb.de>
Fri, 10 Nov 2017 15:58:27 +0000 (16:58 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 5 Dec 2017 01:32:53 +0000 (20:32 -0500)
commit07ffd4ce80b9a452d8c8eb154924e19499302d00
treeaccc9c2cca61f6f9b816a63d9b0e629a5b917add
parentbc8f91665b3f2fd94b80217e433dc90383e75ae4
scsi: 3w-9xxx: rework lock timeouts

The TW_IOCTL_GET_LOCK ioctl uses do_gettimeofday() to check whether a
lock has expired. This can misbehave due to a concurrent settimeofday()
call, as it is based on 'real' time, and it will overflow in y2038 on
32-bit architectures, producing unexpected results when used across the
overflow time.

This changes it to using monotonic time, using ktime_get() to simplify
the code.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Adam Radford <aradford@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/3w-9xxx.c
drivers/scsi/3w-9xxx.h