[Xenomai-git] Philippe Gerum : drivers/can/raw: fix uninit flags in socket descriptor

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

Author: Philippe Gerum 
Date:   Wed Sep  9 21:06:27 2015 +0200

drivers/can/raw: fix uninit flags in socket descriptor

---

 kernel/drivers/can/rtcan_socket.c |1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/drivers/can/rtcan_socket.c 
b/kernel/drivers/can/rtcan_socket.c
index 3c73fba..edd4619 100644
--- a/kernel/drivers/can/rtcan_socket.c
+++ b/kernel/drivers/can/rtcan_socket.c
@@ -49,6 +49,7 @@ void rtcan_socket_init(struct rtdm_fd *fd)
 sock->flist = NULL;
 sock->err_mask = 0;
 sock->rx_buf_full = 0;
+sock->flags = 0;
 #ifdef CONFIG_XENO_DRIVERS_CAN_LOOPBACK
 sock->loopback = 1;
 #endif


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


[Xenomai-git] Philippe Gerum : demo/posix/can-rtt: sanitize

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

Author: Philippe Gerum 
Date:   Thu Sep 10 09:49:41 2015 +0200

demo/posix/can-rtt: sanitize

---

 demo/posix/can-rtt.c |   23 +++
 1 file changed, 7 insertions(+), 16 deletions(-)

diff --git a/demo/posix/can-rtt.c b/demo/posix/can-rtt.c
index 0a3dff8..36cdfbc 100644
--- a/demo/posix/can-rtt.c
+++ b/demo/posix/can-rtt.c
@@ -100,9 +100,7 @@ static void *transmitter(void *arg)
 frame.can_id = can_id;
 frame.can_dlc = sizeof(*rtt_time);
 
-#ifdef CONFIG_XENO_COBALT
 pthread_setname_np(pthread_self(), "rtcan_rtt_transmitter");
-#endif
 pthread_setschedparam(pthread_self(), SCHED_FIFO, );
 
 clock_gettime(CLOCK_MONOTONIC, _period);
@@ -147,9 +145,7 @@ static void *receiver(void *arg)
 struct rtt_stat rtt_stat = {0, 100LL, 
-100LL,
0, 0, 0};
 
-#ifdef CONFIG_XENO_COBALT
 pthread_setname_np(pthread_self(), "rtcan_rtt_receiver");
-#endif
 pthread_setschedparam(pthread_self(), SCHED_FIFO, );
 
 rtt_stat.counts_per_sec = 100 / cycle;
@@ -197,6 +193,8 @@ static void *receiver(void *arg)
 static void catch_signal(int sig)
 {
 mq_close(mq);
+close(rxsock);
+close(txsock);
 }
 
 
@@ -210,7 +208,7 @@ int main(int argc, char *argv[])
 struct rtt_stat rtt_stat;
 char mqname[32];
 char *txdev, *rxdev;
-struct ifreq ifr;
+struct can_ifreq ifr;
 int ret, opt;
 
 struct option long_options[] = {
@@ -394,23 +392,16 @@ int main(int argc, char *argv[])
 printf("shutting down\n");
 
 /* Important: First close the sockets! */
-while ((close(rxsock) < 0) && (errno == EAGAIN)) {
-   printf("RX socket busy - waiting...\n");
-   sleep(1);
-}
-while ((close(txsock) < 0) && (errno == EAGAIN)) {
-   printf("TX socket busy - waiting...\n");
-   sleep(1);
-}
-
+close(rxsock);
+close(txsock);
 pthread_join(txthread, NULL);
-pthread_kill(rxthread, SIGHUP);
+pthread_cancel(rxthread);
 pthread_join(rxthread, NULL);
 
 return 0;
 
  failure4:
-pthread_kill(rxthread, SIGHUP);
+pthread_cancel(rxthread);
 pthread_join(rxthread, NULL);
  failure3:
 mq_close(mq);


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


[Xenomai-git] Don Mahurin : cobalt/arm64: fix build for mismatched printf type (%lx, u64) on arm64.

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

Author: Don Mahurin 
Date:   Wed Sep  2 13:48:36 2015 -0700

cobalt/arm64: fix build for mismatched printf type (%lx,u64) on arm64.

pc and orig_r0 are u64 on arm64 and 'unsigned long' or arm and other platforms. 
printf referencing these are using %lx. On arm64, long and long long (and u64) 
are 64 bits. Rather than changing printf format, chnage arm64 macros to cast to 
unsigned long.

---

 kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h |2 +-
 kernel/cobalt/arch/arm64/include/asm/xenomai/thread.h  |2 +-
 kernel/cobalt/posix/syscall.c  |2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h 
b/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h
index 7bf95fb..77c1716 100644
--- a/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h
+++ b/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h
@@ -45,7 +45,7 @@
 #else /* !CONFIG_OABI_COMPAT */
 #define __xn_syscall_p(__regs) ((__regs)->regs[8] == __ARM_NR_ipipe)
 #endif /* !CONFIG_OABI_COMPAT */
-#define __xn_syscall(__regs)   (__xn_reg_sys(__regs) & ~__COBALT_SYSCALL_BIT)
+#define __xn_syscall(__regs)   ((unsigned long)(__xn_reg_sys(__regs) & 
~__COBALT_SYSCALL_BIT))
 
 #define __xn_reg_rval(__regs)  ((__regs)->regs[0])
 #define __xn_reg_arg1(__regs)  ((__regs)->regs[1])
diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/thread.h 
b/kernel/cobalt/arch/arm64/include/asm/xenomai/thread.h
index 958f340..a8d7ed4 100644
--- a/kernel/cobalt/arch/arm64/include/asm/xenomai/thread.h
+++ b/kernel/cobalt/arch/arm64/include/asm/xenomai/thread.h
@@ -52,7 +52,7 @@ struct xnarchtcb {
 #define xnarch_fault_regs(d)   ((d)->regs)
 #define xnarch_fault_trap(d)   ((d)->exception)
 #define xnarch_fault_code(d)   (0)
-#define xnarch_fault_pc(d) ((d)->regs->pc - 4) /* XXX ? */
+#define xnarch_fault_pc(d) ((unsigned long)((d)->regs->pc - 4)) /* XXX ? */
 
 #define xnarch_fault_pf_p(d)   ((d)->exception == IPIPE_TRAP_ACCESS)
 #define xnarch_fault_bp_p(d)   ((current->ptrace & PT_PTRACED) &&  \
diff --git a/kernel/cobalt/posix/syscall.c b/kernel/cobalt/posix/syscall.c
index 79c847f..a128dea 100644
--- a/kernel/cobalt/posix/syscall.c
+++ b/kernel/cobalt/posix/syscall.c
@@ -814,7 +814,7 @@ linux_syscall:
return KEVENT_PROPAGATE;
 
 bad_syscall:
-   printk(XENO_WARNING "bad syscall <%#llx>\n", __xn_syscall(regs));
+   printk(XENO_WARNING "bad syscall <%#lx>\n", __xn_syscall(regs));
 
__xn_error_return(regs, -ENOSYS);
 


___
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