Browse Source

qcacmn: Return QDF_STATUS from qdf_timer_init()

In preparation for QDF timer tracking, return QDF_STATUS from
qdf_timer_init(). This allows callers to handle the eventual possibility
of a QDF timer init failure.

Change-Id: I9da4643610099d32b002bda9218af26247a4edc6
CRs-Fixed: 2327724
Dustin Brown 6 years ago
parent
commit
121d7d1bff
2 changed files with 22 additions and 33 deletions
  1. 5 5
      qdf/inc/qdf_timer.h
  2. 17 28
      qdf/linux/src/i_qdf_timer.h

+ 5 - 5
qdf/inc/qdf_timer.h

@@ -43,13 +43,13 @@ typedef __qdf_timer_t qdf_timer_t;
  * Timer type QDF_TIMER_TYPE_WAKE_APPS means its a non-deferrable timer which
  * will cause CPU wake up on expiry
  *
- * Return: none
+ * Return: QDF_STATUS
  */
-static inline void qdf_timer_init(qdf_handle_t hdl, qdf_timer_t *timer,
-				  qdf_timer_func_t func, void *arg,
-				  QDF_TIMER_TYPE type)
+static inline QDF_STATUS
+qdf_timer_init(qdf_handle_t hdl, qdf_timer_t *timer, qdf_timer_func_t func,
+	       void *arg, QDF_TIMER_TYPE type)
 {
-	__qdf_timer_init(hdl, timer, func, arg, type);
+	return __qdf_timer_init(timer, func, arg, type);
 }
 
 /**

+ 17 - 28
qdf/linux/src/i_qdf_timer.h

@@ -45,7 +45,6 @@ typedef void (*__qdf_dummy_timer_func_t)(unsigned long arg);
 
 /**
  * __qdf_timer_init() - initialize a softirq timer
- * @hdl: OS handle
  * @timer: Pointer to timer object
  * @func: Function pointer
  * @arg: Argument
@@ -58,28 +57,24 @@ typedef void (*__qdf_dummy_timer_func_t)(unsigned long arg);
  *
  * Return: QDF_STATUS
  */
-static inline QDF_STATUS __qdf_timer_init(qdf_handle_t hdl,
-					  struct timer_list *timer,
+static inline QDF_STATUS __qdf_timer_init(struct timer_list *timer,
 					  qdf_timer_func_t func, void *arg,
 					  QDF_TIMER_TYPE type)
 {
+	bool is_on_stack = object_is_on_stack(timer);
+	__qdf_dummy_timer_func_t callback = (__qdf_dummy_timer_func_t)func;
+	unsigned long ctx = (unsigned long)arg;
+
 	if (type == QDF_TIMER_TYPE_SW) {
-		if (object_is_on_stack(timer))
-			setup_deferrable_timer_on_stack(
-			    timer, (__qdf_dummy_timer_func_t)func,
-			    (unsigned long)arg);
+		if (is_on_stack)
+			setup_deferrable_timer_on_stack(timer, callback, ctx);
 		else
-			setup_deferrable_timer(timer,
-					       (__qdf_dummy_timer_func_t)func,
-					       (unsigned long)arg);
+			setup_deferrable_timer(timer, callback, ctx);
 	} else {
-		if (object_is_on_stack(timer))
-			setup_timer_on_stack(timer,
-					     (__qdf_dummy_timer_func_t)func,
-					     (unsigned long)arg);
+		if (is_on_stack)
+			setup_timer_on_stack(timer, callback, ctx);
 		else
-			setup_timer(timer, (__qdf_dummy_timer_func_t)func,
-				    (unsigned long)arg);
+			setup_timer(timer, callback, ctx);
 	}
 
 	return QDF_STATUS_SUCCESS;
@@ -88,32 +83,26 @@ static inline QDF_STATUS __qdf_timer_init(qdf_handle_t hdl,
 /**
  * __qdf_timer_start() - start a qdf softirq timer
  * @timer: Pointer to timer object
- * @delay: Delay in milli seconds
+ * @delay: Delay in milliseconds
  *
- * Return: QDF_STATUS
+ * Return: None
  */
-static inline QDF_STATUS __qdf_timer_start(struct timer_list *timer,
-					   uint32_t delay)
+static inline void __qdf_timer_start(struct timer_list *timer, uint32_t delay)
 {
 	timer->expires = jiffies + msecs_to_jiffies(delay);
 	add_timer(timer);
-
-	return QDF_STATUS_SUCCESS;
 }
 
 /**
  * __qdf_timer_mod() - modify a timer
  * @timer: Pointer to timer object
- * @delay: Delay in milli seconds
+ * @delay: Delay in milliseconds
  *
- * Return: QDF_STATUS
+ * Return: None
  */
-static inline QDF_STATUS __qdf_timer_mod(struct timer_list *timer,
-					 uint32_t delay)
+static inline void __qdf_timer_mod(struct timer_list *timer, uint32_t delay)
 {
 	mod_timer(timer, jiffies + msecs_to_jiffies(delay));
-
-	return QDF_STATUS_SUCCESS;
 }
 
 /**