[Xenomai-git] Philippe Gerum : drivers/can/raw: use safer way of detecting xmit abort

2015-10-06 Thread git repository hosting
Module: xenomai-3
Branch: master
Commit: 4fe9e77d5499bcf940fa78d603ac8a16c448b31f
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=4fe9e77d5499bcf940fa78d603ac8a16c448b31f

Author: Philippe Gerum 
Date:   Wed Sep  9 16:17:15 2015 +0200

drivers/can/raw: use safer way of detecting xmit abort

---

 kernel/drivers/can/rtcan_internal.h |5 -
 kernel/drivers/can/rtcan_raw.c  |   10 +-
 kernel/drivers/can/rtcan_socket.c   |3 +--
 3 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/kernel/drivers/can/rtcan_internal.h 
b/kernel/drivers/can/rtcan_internal.h
index b731e71..b290005 100644
--- a/kernel/drivers/can/rtcan_internal.h
+++ b/kernel/drivers/can/rtcan_internal.h
@@ -29,11 +29,6 @@
 #include 
 #include 
 
-#ifndef LIST_POISON1
-/* 2.4 - 2.6 compatibility stuff */
-#define LIST_POISON1  ((void *) 0x0)
-#endif
-
 #ifdef CONFIG_XENO_DRIVERS_CAN_DEBUG
 #define RTCAN_ASSERT(expr, func) \
 if (!(expr)) { \
diff --git a/kernel/drivers/can/rtcan_raw.c b/kernel/drivers/can/rtcan_raw.c
index 9eb8531..2047529 100644
--- a/kernel/drivers/can/rtcan_raw.c
+++ b/kernel/drivers/can/rtcan_raw.c
@@ -888,9 +888,9 @@ ssize_t rtcan_raw_sendmsg(struct rtdm_fd *fd,
 
 tx_wait.rt_task = rtdm_task_current();
 
-/* If socket was not closed recently, register the task at the
- * socket's TX wait queue and decrement the TX semaphore. This must be
- * atomic. Finally, the task must be deregistered again (also atomic). */
+/* Register the task at the socket's TX wait queue and decrement
+ * the TX semaphore. This must be atomic. Finally, the task must
+ * be deregistered again (also atomic). */
 cobalt_atomic_enter(s);
 
 list_add(_wait.tx_wait_list, >tx_wait_head);
@@ -900,9 +900,9 @@ ssize_t rtcan_raw_sendmsg(struct rtdm_fd *fd,
 
 /* Only dequeue task again if socket isn't being closed i.e. if
  * this task was not unblocked within the close() function. */
-if (likely(tx_wait.tx_wait_list.next != LIST_POISON1))
+if (likely(!list_empty(_wait.tx_wait_list)))
/* Dequeue this task from the TX wait queue */
-   list_del(_wait.tx_wait_list);
+   list_del_init(_wait.tx_wait_list);
 else
/* The socket was closed. */
ret = -EBADF;
diff --git a/kernel/drivers/can/rtcan_socket.c 
b/kernel/drivers/can/rtcan_socket.c
index 6e6e79e..3c73fba 100644
--- a/kernel/drivers/can/rtcan_socket.c
+++ b/kernel/drivers/can/rtcan_socket.c
@@ -71,7 +71,6 @@ void rtcan_socket_cleanup(struct rtdm_fd *fd)
 rtdm_lockctx_t lock_ctx;
 int tx_list_empty;
 
-
 /* Wake up sleeping senders. This is re-entrant-safe. */
 do {
cobalt_atomic_enter(lock_ctx);
@@ -86,7 +85,7 @@ void rtcan_socket_cleanup(struct rtdm_fd *fd)
struct tx_wait_queue, tx_wait_list);
 
/* Remove it from list */
-   list_del(_waiting->tx_wait_list);
+   list_del_init(_waiting->tx_wait_list);
 
/* Wake task up (atomic section is left implicitly) */
rtdm_task_unblock(tx_waiting->rt_task);


___
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://xenomai.org/mailman/listinfo/xenomai-git


[Xenomai-git] Philippe Gerum : drivers/can/raw: use safer way of detecting xmit abort

2015-10-03 Thread git repository hosting
Module: xenomai-3
Branch: arm64
Commit: 4fe9e77d5499bcf940fa78d603ac8a16c448b31f
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=4fe9e77d5499bcf940fa78d603ac8a16c448b31f

Author: Philippe Gerum 
Date:   Wed Sep  9 16:17:15 2015 +0200

drivers/can/raw: use safer way of detecting xmit abort

---

 kernel/drivers/can/rtcan_internal.h |5 -
 kernel/drivers/can/rtcan_raw.c  |   10 +-
 kernel/drivers/can/rtcan_socket.c   |3 +--
 3 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/kernel/drivers/can/rtcan_internal.h 
b/kernel/drivers/can/rtcan_internal.h
index b731e71..b290005 100644
--- a/kernel/drivers/can/rtcan_internal.h
+++ b/kernel/drivers/can/rtcan_internal.h
@@ -29,11 +29,6 @@
 #include 
 #include 
 
-#ifndef LIST_POISON1
-/* 2.4 - 2.6 compatibility stuff */
-#define LIST_POISON1  ((void *) 0x0)
-#endif
-
 #ifdef CONFIG_XENO_DRIVERS_CAN_DEBUG
 #define RTCAN_ASSERT(expr, func) \
 if (!(expr)) { \
diff --git a/kernel/drivers/can/rtcan_raw.c b/kernel/drivers/can/rtcan_raw.c
index 9eb8531..2047529 100644
--- a/kernel/drivers/can/rtcan_raw.c
+++ b/kernel/drivers/can/rtcan_raw.c
@@ -888,9 +888,9 @@ ssize_t rtcan_raw_sendmsg(struct rtdm_fd *fd,
 
 tx_wait.rt_task = rtdm_task_current();
 
-/* If socket was not closed recently, register the task at the
- * socket's TX wait queue and decrement the TX semaphore. This must be
- * atomic. Finally, the task must be deregistered again (also atomic). */
+/* Register the task at the socket's TX wait queue and decrement
+ * the TX semaphore. This must be atomic. Finally, the task must
+ * be deregistered again (also atomic). */
 cobalt_atomic_enter(s);
 
 list_add(_wait.tx_wait_list, >tx_wait_head);
@@ -900,9 +900,9 @@ ssize_t rtcan_raw_sendmsg(struct rtdm_fd *fd,
 
 /* Only dequeue task again if socket isn't being closed i.e. if
  * this task was not unblocked within the close() function. */
-if (likely(tx_wait.tx_wait_list.next != LIST_POISON1))
+if (likely(!list_empty(_wait.tx_wait_list)))
/* Dequeue this task from the TX wait queue */
-   list_del(_wait.tx_wait_list);
+   list_del_init(_wait.tx_wait_list);
 else
/* The socket was closed. */
ret = -EBADF;
diff --git a/kernel/drivers/can/rtcan_socket.c 
b/kernel/drivers/can/rtcan_socket.c
index 6e6e79e..3c73fba 100644
--- a/kernel/drivers/can/rtcan_socket.c
+++ b/kernel/drivers/can/rtcan_socket.c
@@ -71,7 +71,6 @@ void rtcan_socket_cleanup(struct rtdm_fd *fd)
 rtdm_lockctx_t lock_ctx;
 int tx_list_empty;
 
-
 /* Wake up sleeping senders. This is re-entrant-safe. */
 do {
cobalt_atomic_enter(lock_ctx);
@@ -86,7 +85,7 @@ void rtcan_socket_cleanup(struct rtdm_fd *fd)
struct tx_wait_queue, tx_wait_list);
 
/* Remove it from list */
-   list_del(_waiting->tx_wait_list);
+   list_del_init(_waiting->tx_wait_list);
 
/* Wake task up (atomic section is left implicitly) */
rtdm_task_unblock(tx_waiting->rt_task);


___
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://xenomai.org/mailman/listinfo/xenomai-git


[Xenomai-git] Philippe Gerum : drivers/can/raw: use safer way of detecting xmit abort

2015-09-10 Thread git repository hosting
Module: xenomai-3
Branch: next
Commit: 4fe9e77d5499bcf940fa78d603ac8a16c448b31f
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=4fe9e77d5499bcf940fa78d603ac8a16c448b31f

Author: Philippe Gerum 
Date:   Wed Sep  9 16:17:15 2015 +0200

drivers/can/raw: use safer way of detecting xmit abort

---

 kernel/drivers/can/rtcan_internal.h |5 -
 kernel/drivers/can/rtcan_raw.c  |   10 +-
 kernel/drivers/can/rtcan_socket.c   |3 +--
 3 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/kernel/drivers/can/rtcan_internal.h 
b/kernel/drivers/can/rtcan_internal.h
index b731e71..b290005 100644
--- a/kernel/drivers/can/rtcan_internal.h
+++ b/kernel/drivers/can/rtcan_internal.h
@@ -29,11 +29,6 @@
 #include 
 #include 
 
-#ifndef LIST_POISON1
-/* 2.4 - 2.6 compatibility stuff */
-#define LIST_POISON1  ((void *) 0x0)
-#endif
-
 #ifdef CONFIG_XENO_DRIVERS_CAN_DEBUG
 #define RTCAN_ASSERT(expr, func) \
 if (!(expr)) { \
diff --git a/kernel/drivers/can/rtcan_raw.c b/kernel/drivers/can/rtcan_raw.c
index 9eb8531..2047529 100644
--- a/kernel/drivers/can/rtcan_raw.c
+++ b/kernel/drivers/can/rtcan_raw.c
@@ -888,9 +888,9 @@ ssize_t rtcan_raw_sendmsg(struct rtdm_fd *fd,
 
 tx_wait.rt_task = rtdm_task_current();
 
-/* If socket was not closed recently, register the task at the
- * socket's TX wait queue and decrement the TX semaphore. This must be
- * atomic. Finally, the task must be deregistered again (also atomic). */
+/* Register the task at the socket's TX wait queue and decrement
+ * the TX semaphore. This must be atomic. Finally, the task must
+ * be deregistered again (also atomic). */
 cobalt_atomic_enter(s);
 
 list_add(_wait.tx_wait_list, >tx_wait_head);
@@ -900,9 +900,9 @@ ssize_t rtcan_raw_sendmsg(struct rtdm_fd *fd,
 
 /* Only dequeue task again if socket isn't being closed i.e. if
  * this task was not unblocked within the close() function. */
-if (likely(tx_wait.tx_wait_list.next != LIST_POISON1))
+if (likely(!list_empty(_wait.tx_wait_list)))
/* Dequeue this task from the TX wait queue */
-   list_del(_wait.tx_wait_list);
+   list_del_init(_wait.tx_wait_list);
 else
/* The socket was closed. */
ret = -EBADF;
diff --git a/kernel/drivers/can/rtcan_socket.c 
b/kernel/drivers/can/rtcan_socket.c
index 6e6e79e..3c73fba 100644
--- a/kernel/drivers/can/rtcan_socket.c
+++ b/kernel/drivers/can/rtcan_socket.c
@@ -71,7 +71,6 @@ void rtcan_socket_cleanup(struct rtdm_fd *fd)
 rtdm_lockctx_t lock_ctx;
 int tx_list_empty;
 
-
 /* Wake up sleeping senders. This is re-entrant-safe. */
 do {
cobalt_atomic_enter(lock_ctx);
@@ -86,7 +85,7 @@ void rtcan_socket_cleanup(struct rtdm_fd *fd)
struct tx_wait_queue, tx_wait_list);
 
/* Remove it from list */
-   list_del(_waiting->tx_wait_list);
+   list_del_init(_waiting->tx_wait_list);
 
/* Wake task up (atomic section is left implicitly) */
rtdm_task_unblock(tx_waiting->rt_task);


___
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://xenomai.org/mailman/listinfo/xenomai-git