Re: Cobalt compatible distribution
Hi Don, Glad I could help. Sorry for all the confusion! Alec
[PATCH] drivers/net: reformat using kernel coding style
As discussed earlier on this list [1], this patch reformats the RTnet stack according to the kernel coding style. Due to its size, I'm not going to paste it inline; please find it at [2]. Note: the following series introducing VLAN and multicast support is based on this patch. [1] https://www.xenomai.org/pipermail/xenomai/2019-February/040327.html [2] https://lab.xenomai.org/xenomai-rpm.git/commit/?h=for-upstream/next&id=f58f8e176a366182a182362b9af0ffe41ca81d86 -- Philippe.
[PATCH] travis: use ccache
From: Roman Stratiienko This speeds-up travis build Measurement results (build with ipipe-core-4.14.85-arm-6) - Without ccache: 26 min 7 sec - With ccache (1st run): 31 min 21 sec - With ccache (every next run): 4 min 23 sec Signed-off-by: Roman Stratiienko --- .travis.yml | 8 1 file changed, 8 insertions(+) diff --git a/.travis.yml b/.travis.yml index c5a9026aa..e40cec51d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ language: c dist: xenial +cache: ccache addons: apt: @@ -15,6 +16,8 @@ addons: env: global: - KDIR=/tmp/kernel +- USE_CCACHE=1 +- CCACHE_MAXSIZE=400M install: - if [[ "${KERNEL_VERSION}" == *-rc* ]]; then @@ -40,6 +43,10 @@ before_script: export CONFIGURE_OPTS="--enable-dlopen-libs --enable-lazy-setsched" ;; esac + - mkdir ~/ccache + - ln -s /usr/bin/ccache ~/ccache/aarch64-linux-gnu-gcc + - ln -s /usr/bin/ccache ~/ccache/arm-linux-gnueabihf-gcc + - export PATH=~/ccache:$PATH - pushd ${KDIR} - make -j $(nproc) ${KERNEL_DEFCONFIG} - ./scripts/config -e IPIPE @@ -88,6 +95,7 @@ script: - scripts/bootstrap - ./configure --enable-smp ${CONFIGURE_OPTS} - make -j $(nproc) + - ccache -s matrix: include: -- 2.17.1
[PATCH 3/5] drivers/serial: imx: drop useless EWOULDBLOCK->EAGAIN remapping
Signed-off-by: Philippe Gerum --- kernel/drivers/serial/rt_imx_uart.c | 4 1 file changed, 4 deletions(-) diff --git a/kernel/drivers/serial/rt_imx_uart.c b/kernel/drivers/serial/rt_imx_uart.c index 574fd1aa7..6118e29b7 100644 --- a/kernel/drivers/serial/rt_imx_uart.c +++ b/kernel/drivers/serial/rt_imx_uart.c @@ -1435,10 +1435,6 @@ static ssize_t rt_imx_uart_write(struct rtdm_fd *fd, const void *buf, */ ret = -EBADF; } - if (ret == -EWOULDBLOCK) { - /* Fix error code for non-blocking mode. */ - ret = -EAGAIN; - } break; } } -- 2.20.1
[PATCH 2/5] drivers/serial: imx: fix locking imbalance upon -EBADF
Signed-off-by: Philippe Gerum --- kernel/drivers/serial/rt_imx_uart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/drivers/serial/rt_imx_uart.c b/kernel/drivers/serial/rt_imx_uart.c index 443a34261..574fd1aa7 100644 --- a/kernel/drivers/serial/rt_imx_uart.c +++ b/kernel/drivers/serial/rt_imx_uart.c @@ -1433,7 +1433,7 @@ static ssize_t rt_imx_uart_write(struct rtdm_fd *fd, const void *buf, /* Device has been closed - * return immediately. */ - return -EBADF; + ret = -EBADF; } if (ret == -EWOULDBLOCK) { /* Fix error code for non-blocking mode. */ -- 2.20.1
[PATCH 4/5] net/drivers: macb: do not check for initial checksum value
See https://www.xenomai.org/pipermail/xenomai/2019-February/040321.html. Signed-off-by: Philippe Gerum --- kernel/drivers/net/drivers/macb.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/kernel/drivers/net/drivers/macb.c b/kernel/drivers/net/drivers/macb.c index 8a6a10f9c..fc5b6679a 100644 --- a/kernel/drivers/net/drivers/macb.c +++ b/kernel/drivers/net/drivers/macb.c @@ -725,7 +725,6 @@ static int gem_rx(struct macb *bp, int budget, nanosecs_abs_t *time_stamp) bp->rx_buffer_size, DMA_FROM_DEVICE); skb->protocol = rt_eth_type_trans(skb, bp->dev); - rtskb_checksum_none_assert(skb); bp->stats.rx_packets++; bp->stats.rx_bytes += skb->len; @@ -792,7 +791,6 @@ static int macb_rx_frame(struct macb *bp, unsigned int first_frag, offset = 0; len += NET_IP_ALIGN; skb->time_stamp = *time_stamp; - rtskb_checksum_none_assert(skb); rtskb_put(skb, len); for (frag = first_frag; ; frag++) { -- 2.20.1
[PATCH 5/5] net/drivers: stack: remove unused assertion
We have no more in-tree users for it. Signed-off-by: Philippe Gerum --- doc/asciidoc/MIGRATION.adoc | 4 +--- kernel/drivers/net/stack/include/rtskb.h | 2 -- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/doc/asciidoc/MIGRATION.adoc b/doc/asciidoc/MIGRATION.adoc index b4f95dc45..cf1346415 100644 --- a/doc/asciidoc/MIGRATION.adoc +++ b/doc/asciidoc/MIGRATION.adoc @@ -1129,8 +1129,7 @@ unsigned int rtskb_module_pool_init(struct rtskb_pool *pool, rtnetdev_priv(), rtdev_emerg(), rtdev_alert(), rtdev_crit(), rtdev_err(), rtdev_warn(), rtdev_notice(), rtdev_info(), rtdev_dbg(), rtdev_vdbg(), RTDEV_TX_OK, RTDEV_TX_BUSY, -rtskb_checksum_none_assert(), rtskb_tx_timestamp(). Their -declarations are equivalent to: +rtskb_tx_timestamp(). Their declarations are equivalent to: --- #define RTDEV_TX_OK0 @@ -1148,7 +1147,6 @@ void rtdev_info(struct rntet_device *dev, const char *format, ...); void rtdev_dbg(struct rntet_device *dev, const char *format, ...); void rtdev_vdbg(struct rntet_device *dev, const char *format, ...); -void rtskb_checksum_non_assert(struct rtskb *skb); void rtskb_tx_timestamp(struct rtskb *skb); --- diff --git a/kernel/drivers/net/stack/include/rtskb.h b/kernel/drivers/net/stack/include/rtskb.h index a1793e9a8..0f7e0bff2 100644 --- a/kernel/drivers/net/stack/include/rtskb.h +++ b/kernel/drivers/net/stack/include/rtskb.h @@ -294,8 +294,6 @@ extern void kfree_rtskb(struct rtskb *skb); #define dev_kfree_rtskb(a) kfree_rtskb(a) -#define rtskb_checksum_none_assert(skb) (skb->ip_summed = CHECKSUM_NONE) - static inline void rtskb_tx_timestamp(struct rtskb *skb) { nanosecs_abs_t *ts = skb->xmit_stamp; -- 2.20.1
[PATCH 1/5] testsuite/gpiotest: define missing 'timestamp' argument
Signed-off-by: Philippe Gerum --- testsuite/gpiotest/gpiotest.c | 1 + 1 file changed, 1 insertion(+) diff --git a/testsuite/gpiotest/gpiotest.c b/testsuite/gpiotest/gpiotest.c index 7347ac506..2e4b1bf4d 100644 --- a/testsuite/gpiotest/gpiotest.c +++ b/testsuite/gpiotest/gpiotest.c @@ -35,6 +35,7 @@ smokey_test_plugin(interrupt, SMOKEY_STRING(device), SMOKEY_STRING(trigger), SMOKEY_BOOL(select), + SMOKEY_BOOL(timestamp), ), "Wait for interrupts from a GPIO pin.\n" "\tdevice=\n" -- 2.20.1
[PATCH 0/5] serial, net, testsuite fixes
No critical changes here; although patch #0002 fixes a locking imbalance in some error path, the latter is in theory impossible to trigger. Philippe Gerum (5): testsuite/gpiotest: define missing 'timestamp' argument drivers/serial: imx: fix locking imbalance upon -EBADF drivers/serial: imx: drop useless EWOULDBLOCK->EAGAIN remapping net/drivers: macb: do not check for initial checksum value net/drivers: stack: remove unused assertion doc/asciidoc/MIGRATION.adoc | 4 +--- kernel/drivers/net/drivers/macb.c| 2 -- kernel/drivers/net/stack/include/rtskb.h | 2 -- kernel/drivers/serial/rt_imx_uart.c | 6 +- testsuite/gpiotest/gpiotest.c| 11 ++- 5 files changed, 8 insertions(+), 17 deletions(-) -- 2.20.1
libcopperplate.so depends on modecheck?
Hello, Seems like libcopperplate.so always depends on libmodechk.so, as the following symbols would imply: nm -D /home/lano/buildroot/host/x86_64-buildroot-linux-gnu/sysroot/usr/xenomai/lib/libcopperplate.so | grep __real U __real_free U __real_malloc xeno-config deals with this by always linking modeck, even if you add --no-mode-check- I am not completely confident with the wrapper-magic, but shouldn't libcopperplate use either cobalt_malloc or the libc malloc? __real_malloc is just a stub for libc malloc, so I really don't get the point (assuming this is intentional). Modeswitches could also be detected by interposing libraries, so removing libmodechk Is a viable thing to do. (shameless plug: https://github.com/nolange/preload_checkers ) Regards, Norbert This message and any attachments are solely for the use of the intended recipients. They may contain privileged and/or confidential information or other information protected from disclosure. If you are not an intended recipient, you are hereby notified that you received this email in error and that any review, dissemination, distribution or copying of this email and any attachment is strictly prohibited. If you have received this email in error, please contact the sender and delete the message and any attachment from your system. ANDRITZ HYDRO GmbH Rechtsform/ Legal form: Gesellschaft mit beschränkter Haftung / Corporation Firmensitz/ Registered seat: Wien Firmenbuchgericht/ Court of registry: Handelsgericht Wien Firmenbuchnummer/ Company registration: FN 61833 g DVR: 0605077 UID-Nr.: ATU14756806 Thank You