OSDN Git Service

staging: gasket: remove gasket_wait_sync()
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Jul 2018 15:46:17 +0000 (17:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Jul 2018 08:01:42 +0000 (10:01 +0200)
This function is not called anywhere, so just remove it.

Also, as an added benifit, Arnd points out that it doesn't even work
properly:
This code won't work correct during leap seconds or a concurrent
settimeofday() call, and it probably doesn't do what the author intended
even for the normal case, as it passes a timeout in nanoseconds but
reads the time using a jiffies-granularity accessor.

Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/gasket/gasket_core.c
drivers/staging/gasket/gasket_core.h

index 14649a7..b69b630 100644 (file)
@@ -2068,51 +2068,6 @@ struct device *gasket_get_device(struct gasket_dev *dev)
 }
 
 /**
- * Synchronously waits on device.
- * @gasket_dev: Device struct.
- * @bar: Bar
- * @offset: Register offset
- * @mask: Register mask
- * @val: Expected value
- * @timeout_ns: Timeout in nanoseconds
- *
- * Description: Busy waits for a specific combination of bits to be set
- * on a Gasket register.
- **/
-int gasket_wait_sync(
-       struct gasket_dev *gasket_dev, int bar, u64 offset, u64 mask, u64 val,
-       u64 timeout_ns)
-{
-       u64 reg;
-       struct timespec start_time, cur_time;
-       u64 diff_nanosec;
-       int count = 0;
-
-       reg = gasket_dev_read_64(gasket_dev, bar, offset);
-       start_time = current_kernel_time();
-       while ((reg & mask) != val) {
-               count++;
-               cur_time = current_kernel_time();
-               diff_nanosec = (u64)(cur_time.tv_sec - start_time.tv_sec) *
-                                      1000000000LL +
-                              (u64)(cur_time.tv_nsec) -
-                              (u64)(start_time.tv_nsec);
-               if (diff_nanosec > timeout_ns) {
-                       gasket_log_error(
-                               gasket_dev,
-                               "%s timeout: reg %llx count %x "
-                               "dma %lld ns\n",
-                               __func__,
-                               offset, count, diff_nanosec);
-                       return -1;
-               }
-               reg = gasket_dev_read_64(gasket_dev, bar, offset);
-       }
-       return 0;
-}
-EXPORT_SYMBOL(gasket_wait_sync);
-
-/**
  * Asynchronously waits on device.
  * @gasket_dev: Device struct.
  * @bar: Bar
index 4501344..e51acad 100644 (file)
@@ -699,11 +699,6 @@ const struct gasket_driver_desc *gasket_get_driver_desc(struct gasket_dev *dev);
 /* Get the device structure for a given device. */
 struct device *gasket_get_device(struct gasket_dev *dev);
 
-/* Helper function, Synchronous waits on a given set of bits. */
-int gasket_wait_sync(
-       struct gasket_dev *gasket_dev, int bar, u64 offset, u64 mask, u64 val,
-       u64 timeout_ns);
-
 /* Helper function, Asynchronous waits on a given set of bits. */
 int gasket_wait_with_reschedule(
        struct gasket_dev *gasket_dev, int bar, u64 offset, u64 mask, u64 val,