[Xenomai-git] Gilles Chanteperdrix : rtnet: rtskb_pool changes

2015-02-12 Thread git repository hosting
Module: xenomai-3
Branch: master
Commit: 0888f32693b4bde02f0dc52dbee7dfa80aa1a591
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=0888f32693b4bde02f0dc52dbee7dfa80aa1a591

Author: Gilles Chanteperdrix 
Date:   Tue Nov 11 17:20:41 2014 +0100

rtnet: rtskb_pool changes

An rtskb_pool now has lock/unlock operations, called for the first dequeued
buffer and the last queued one. At this chance, the struct rtskb_pool is
introduced, and used everywhere a pool was used.

rtskb_module_pool_init creates an rtskb_pool whose lock/unlock operations
lock a module (the module from which rtskb_module_pool_init was called).

The socket skb_pool lock/unlocks the socket rtdm_fd.

Drivers pool not fixed yet.

---

 kernel/drivers/net/addons/cap.c|   24 +-
 kernel/drivers/net/addons/proxy.c  |4 +-
 kernel/drivers/net/stack/include/rtdev.h   |   15 +-
 .../drivers/net/stack/include/rtmac/rtmac_disc.h   |8 +-
 .../drivers/net/stack/include/rtmac/rtmac_vnic.h   |2 +-
 kernel/drivers/net/stack/include/rtmac/tdma/tdma.h |   14 +-
 kernel/drivers/net/stack/include/rtnet_socket.h|6 +-
 kernel/drivers/net/stack/include/rtskb.h   |   74 ++--
 kernel/drivers/net/stack/include/rtwlan.h  |   20 +-
 kernel/drivers/net/stack/include/stack_mgr.h   |8 +-
 kernel/drivers/net/stack/ipv4/icmp.c   |   31 +-
 kernel/drivers/net/stack/ipv4/ip_fragment.c|9 +-
 kernel/drivers/net/stack/ipv4/tcp/tcp.c|   17 +-
 kernel/drivers/net/stack/ipv4/udp/udp.c|  360 ++--
 kernel/drivers/net/stack/packet/af_packet.c|  329 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_frame.c   |4 +-
 .../drivers/net/stack/rtmac/nomac/nomac_module.c   |5 +-
 kernel/drivers/net/stack/rtmac/rtmac_disc.c|   13 +-
 kernel/drivers/net/stack/rtmac/rtmac_syms.c|2 +-
 kernel/drivers/net/stack/rtmac/rtmac_vnic.c|   28 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_ioctl.c   |4 +-
 kernel/drivers/net/stack/rtskb.c   |  163 ++---
 kernel/drivers/net/stack/socket.c  |   48 +--
 kernel/drivers/net/stack/stack_mgr.c   |   76 ++---
 24 files changed, 678 insertions(+), 586 deletions(-)

diff --git a/kernel/drivers/net/addons/cap.c b/kernel/drivers/net/addons/cap.c
index 5586c77..e72122e 100644
--- a/kernel/drivers/net/addons/cap.c
+++ b/kernel/drivers/net/addons/cap.c
@@ -54,7 +54,7 @@ MODULE_PARM_DESC(rtcap_rtskbs, "Number of real-time socket 
buffers per "
 
 static rtdm_nrtsig_tcap_signal;
 static struct rtskb_queue   cap_queue;
-static struct rtskb_queue   cap_pool;
+static struct rtskb_pool   cap_pool;
 
 static struct tap_device_t {
 struct net_device   *tap_dev;
@@ -69,13 +69,10 @@ static struct tap_device_t {
 
 void rtcap_rx_hook(struct rtskb *rtskb)
 {
-if ((rtskb->cap_comp_skb = rtskb_dequeue(&cap_pool)) == 0) {
+if ((rtskb->cap_comp_skb = rtskb_pool_dequeue(&cap_pool)) == 0) {
tap_device[rtskb->rtdev->ifindex].tap_dev_stats.rx_dropped++;
return;
 }
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-cap_pool.pool_balance--;
-#endif
 
 if (cap_queue.first == NULL)
cap_queue.first = rtskb;
@@ -97,13 +94,10 @@ int rtcap_xmit_hook(struct rtskb *rtskb, struct 
rtnet_device *rtdev)
 rtdm_lockctx_t  context;
 
 
-if ((rtskb->cap_comp_skb = rtskb_dequeue(&cap_pool)) == 0) {
+if ((rtskb->cap_comp_skb = rtskb_pool_dequeue(&cap_pool)) == 0) {
tap_dev->tap_dev_stats.rx_dropped++;
return tap_dev->orig_xmit(rtskb, rtdev);
 }
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-cap_pool.pool_balance--;
-#endif
 
 rtskb->cap_next  = NULL;
 rtskb->cap_start = rtskb->data;
@@ -156,10 +150,7 @@ void rtcap_kfree_rtskb(struct rtskb *rtskb)
 
rtdm_lock_put_irqrestore(&rtcap_lock, context);
 
-   rtskb_queue_tail(comp_skb->pool, comp_skb);
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-   comp_skb->pool->pool_balance++;
-#endif
+   rtskb_pool_queue_tail(comp_skb->pool, comp_skb);
 
return;
 }
@@ -167,10 +158,7 @@ void rtcap_kfree_rtskb(struct rtskb *rtskb)
 rtdm_lock_put_irqrestore(&rtcap_lock, context);
 
 rtskb->chain_end = rtskb;
-rtskb_queue_tail(rtskb->pool, rtskb);
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-rtskb->pool->pool_balance++;
-#endif
+rtskb_pool_queue_tail(rtskb->pool, rtskb);
 }
 
 
@@ -510,7 +498,7 @@ int __init rtcap_init(void)
goto error2;
 }
 
-if (rtskb_pool_init(&cap_pool, rtcap_rtskbs * devices) <
+if (rtskb_module_pool_init(&cap_pool, rtcap_rtskbs * devices) <
rtcap_rtskbs * devices) {
rtskb_pool_release(&cap_pool);
ret = -ENOMEM;
diff --git a/kernel/drivers/net/addons/proxy.c 
b/kernel/drivers/net/addons/proxy.c
index 1fedd7d..7c8c492 100644
--- a/kernel/drivers/net/addons/proxy.c
+++ b/kernel/drivers/net/addons/proxy.c
@@ -71,7 +71,7 @@ 

[Xenomai-git] Gilles Chanteperdrix : rtnet: rtskb_pool changes (2)

2015-02-12 Thread git repository hosting
Module: xenomai-3
Branch: master
Commit: 723087689a119eab41df5a32d36c99926055210c
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=723087689a119eab41df5a32d36c99926055210c

Author: Gilles Chanteperdrix 
Date:   Tue Nov 11 22:52:25 2014 +0100

rtnet: rtskb_pool changes (2)

Move the per-driver rtskb_pool to rtnet_devices. At this chance, rework
rtdev_reference/rtdev_dereference to lock/unlock module loading, also lock
the module when an interface is up, so that an interface must be down in order
to allow removing it.

A new call rtnetdev_alloc_rtskb is added to be used instead of dev_alloc_rtskb
to allocate devices from the device pool, its first argument being a pointer to
a device instead of a pointer to a pool.

---

 kernel/drivers/net/addons/cap.c|   13 +-
 kernel/drivers/net/addons/proxy.c  |   17 +
 kernel/drivers/net/drivers/8139too.c   | 2339 ++--
 kernel/drivers/net/drivers/at91_ether.c|   27 +-
 kernel/drivers/net/drivers/e1000/e1000.h   |1 -
 kernel/drivers/net/drivers/e1000/e1000_main.c  |  151 +-
 kernel/drivers/net/drivers/e1000e/e1000.h  |   17 +-
 kernel/drivers/net/drivers/e1000e/netdev.c |   32 +-
 kernel/drivers/net/drivers/eepro100.c  |   49 +-
 kernel/drivers/net/drivers/eth1394.c   |  182 +-
 kernel/drivers/net/drivers/experimental/3c59x.c| 1134 +-
 .../drivers/net/drivers/experimental/e1000/e1000.h |3 +-
 .../net/drivers/experimental/e1000/e1000_main.c|  557 +++--
 .../net/drivers/experimental/rt2500/rt2500pci.c|  461 ++--
 .../net/drivers/experimental/rt2500/rt2x00core.c   |  239 +-
 kernel/drivers/net/drivers/fec.c   |   19 +-
 kernel/drivers/net/drivers/igb/igb.h   |1 -
 kernel/drivers/net/drivers/igb/igb_main.c  |   84 +-
 kernel/drivers/net/drivers/loopback.c  |   12 +-
 kernel/drivers/net/drivers/macb.c  |   15 +-
 .../drivers/net/drivers/mpc52xx_fec/mpc52xx_fec.c  |   58 +-
 .../net/drivers/mpc52xx_fec/rt_mpc52xx_fec.h   |8 +-
 kernel/drivers/net/drivers/mpc8260_fcc_enet.c  |   66 +-
 kernel/drivers/net/drivers/mpc8xx_enet.c   |   38 +-
 kernel/drivers/net/drivers/mpc8xx_fec.c|   72 +-
 kernel/drivers/net/drivers/natsemi.c   |   27 +-
 kernel/drivers/net/drivers/pcnet32.c   |  106 +-
 kernel/drivers/net/drivers/r8169.c |  107 +-
 kernel/drivers/net/drivers/rt_at91_ether.h |1 -
 kernel/drivers/net/drivers/rt_eth1394.h|9 +-
 kernel/drivers/net/drivers/rt_macb.h   |  127 +-
 kernel/drivers/net/drivers/smc9.c  |  148 +-
 kernel/drivers/net/drivers/tulip/interrupt.c   |   82 +-
 kernel/drivers/net/drivers/tulip/tulip.h   |  493 ++---
 kernel/drivers/net/drivers/tulip/tulip_core.c  |   81 +-
 kernel/drivers/net/drivers/via-rhine.c |   63 +-
 kernel/drivers/net/stack/include/rtdev.h   |   48 +-
 kernel/drivers/net/stack/include/rtskb.h   |1 -
 kernel/drivers/net/stack/include/rtwlan.h  |   68 +-
 kernel/drivers/net/stack/rtdev.c   |  293 +--
 kernel/drivers/net/stack/rtmac/rtmac_vnic.c|2 +-
 kernel/drivers/net/stack/rtskb.c   |   10 +-
 kernel/drivers/net/stack/rtwlan.c  |   87 +-
 43 files changed, 3567 insertions(+), 3781 deletions(-)

Diff:   
http://git.xenomai.org/?p=xenomai-3.git;a=commitdiff;h=723087689a119eab41df5a32d36c99926055210c

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


[Xenomai-git] Gilles Chanteperdrix : rtnet: rtskb_pool changes

2014-11-16 Thread git repository hosting
Module: xenomai-3
Branch: next
Commit: 0888f32693b4bde02f0dc52dbee7dfa80aa1a591
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=0888f32693b4bde02f0dc52dbee7dfa80aa1a591

Author: Gilles Chanteperdrix 
Date:   Tue Nov 11 17:20:41 2014 +0100

rtnet: rtskb_pool changes

An rtskb_pool now has lock/unlock operations, called for the first dequeued
buffer and the last queued one. At this chance, the struct rtskb_pool is
introduced, and used everywhere a pool was used.

rtskb_module_pool_init creates an rtskb_pool whose lock/unlock operations
lock a module (the module from which rtskb_module_pool_init was called).

The socket skb_pool lock/unlocks the socket rtdm_fd.

Drivers pool not fixed yet.

---

 kernel/drivers/net/addons/cap.c|   24 +-
 kernel/drivers/net/addons/proxy.c  |4 +-
 kernel/drivers/net/stack/include/rtdev.h   |   15 +-
 .../drivers/net/stack/include/rtmac/rtmac_disc.h   |8 +-
 .../drivers/net/stack/include/rtmac/rtmac_vnic.h   |2 +-
 kernel/drivers/net/stack/include/rtmac/tdma/tdma.h |   14 +-
 kernel/drivers/net/stack/include/rtnet_socket.h|6 +-
 kernel/drivers/net/stack/include/rtskb.h   |   74 ++--
 kernel/drivers/net/stack/include/rtwlan.h  |   20 +-
 kernel/drivers/net/stack/include/stack_mgr.h   |8 +-
 kernel/drivers/net/stack/ipv4/icmp.c   |   31 +-
 kernel/drivers/net/stack/ipv4/ip_fragment.c|9 +-
 kernel/drivers/net/stack/ipv4/tcp/tcp.c|   17 +-
 kernel/drivers/net/stack/ipv4/udp/udp.c|  360 ++--
 kernel/drivers/net/stack/packet/af_packet.c|  329 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_frame.c   |4 +-
 .../drivers/net/stack/rtmac/nomac/nomac_module.c   |5 +-
 kernel/drivers/net/stack/rtmac/rtmac_disc.c|   13 +-
 kernel/drivers/net/stack/rtmac/rtmac_syms.c|2 +-
 kernel/drivers/net/stack/rtmac/rtmac_vnic.c|   28 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_ioctl.c   |4 +-
 kernel/drivers/net/stack/rtskb.c   |  163 ++---
 kernel/drivers/net/stack/socket.c  |   48 +--
 kernel/drivers/net/stack/stack_mgr.c   |   76 ++---
 24 files changed, 678 insertions(+), 586 deletions(-)

diff --git a/kernel/drivers/net/addons/cap.c b/kernel/drivers/net/addons/cap.c
index 5586c77..e72122e 100644
--- a/kernel/drivers/net/addons/cap.c
+++ b/kernel/drivers/net/addons/cap.c
@@ -54,7 +54,7 @@ MODULE_PARM_DESC(rtcap_rtskbs, "Number of real-time socket 
buffers per "
 
 static rtdm_nrtsig_tcap_signal;
 static struct rtskb_queue   cap_queue;
-static struct rtskb_queue   cap_pool;
+static struct rtskb_pool   cap_pool;
 
 static struct tap_device_t {
 struct net_device   *tap_dev;
@@ -69,13 +69,10 @@ static struct tap_device_t {
 
 void rtcap_rx_hook(struct rtskb *rtskb)
 {
-if ((rtskb->cap_comp_skb = rtskb_dequeue(&cap_pool)) == 0) {
+if ((rtskb->cap_comp_skb = rtskb_pool_dequeue(&cap_pool)) == 0) {
tap_device[rtskb->rtdev->ifindex].tap_dev_stats.rx_dropped++;
return;
 }
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-cap_pool.pool_balance--;
-#endif
 
 if (cap_queue.first == NULL)
cap_queue.first = rtskb;
@@ -97,13 +94,10 @@ int rtcap_xmit_hook(struct rtskb *rtskb, struct 
rtnet_device *rtdev)
 rtdm_lockctx_t  context;
 
 
-if ((rtskb->cap_comp_skb = rtskb_dequeue(&cap_pool)) == 0) {
+if ((rtskb->cap_comp_skb = rtskb_pool_dequeue(&cap_pool)) == 0) {
tap_dev->tap_dev_stats.rx_dropped++;
return tap_dev->orig_xmit(rtskb, rtdev);
 }
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-cap_pool.pool_balance--;
-#endif
 
 rtskb->cap_next  = NULL;
 rtskb->cap_start = rtskb->data;
@@ -156,10 +150,7 @@ void rtcap_kfree_rtskb(struct rtskb *rtskb)
 
rtdm_lock_put_irqrestore(&rtcap_lock, context);
 
-   rtskb_queue_tail(comp_skb->pool, comp_skb);
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-   comp_skb->pool->pool_balance++;
-#endif
+   rtskb_pool_queue_tail(comp_skb->pool, comp_skb);
 
return;
 }
@@ -167,10 +158,7 @@ void rtcap_kfree_rtskb(struct rtskb *rtskb)
 rtdm_lock_put_irqrestore(&rtcap_lock, context);
 
 rtskb->chain_end = rtskb;
-rtskb_queue_tail(rtskb->pool, rtskb);
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-rtskb->pool->pool_balance++;
-#endif
+rtskb_pool_queue_tail(rtskb->pool, rtskb);
 }
 
 
@@ -510,7 +498,7 @@ int __init rtcap_init(void)
goto error2;
 }
 
-if (rtskb_pool_init(&cap_pool, rtcap_rtskbs * devices) <
+if (rtskb_module_pool_init(&cap_pool, rtcap_rtskbs * devices) <
rtcap_rtskbs * devices) {
rtskb_pool_release(&cap_pool);
ret = -ENOMEM;
diff --git a/kernel/drivers/net/addons/proxy.c 
b/kernel/drivers/net/addons/proxy.c
index 1fedd7d..7c8c492 100644
--- a/kernel/drivers/net/addons/proxy.c
+++ b/kernel/drivers/net/addons/proxy.c
@@ -71,7 +71,7 @@ st

[Xenomai-git] Gilles Chanteperdrix : rtnet: rtskb_pool changes (2)

2014-11-16 Thread git repository hosting
Module: xenomai-3
Branch: next
Commit: 723087689a119eab41df5a32d36c99926055210c
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=723087689a119eab41df5a32d36c99926055210c

Author: Gilles Chanteperdrix 
Date:   Tue Nov 11 22:52:25 2014 +0100

rtnet: rtskb_pool changes (2)

Move the per-driver rtskb_pool to rtnet_devices. At this chance, rework
rtdev_reference/rtdev_dereference to lock/unlock module loading, also lock
the module when an interface is up, so that an interface must be down in order
to allow removing it.

A new call rtnetdev_alloc_rtskb is added to be used instead of dev_alloc_rtskb
to allocate devices from the device pool, its first argument being a pointer to
a device instead of a pointer to a pool.

---

 kernel/drivers/net/addons/cap.c|   13 +-
 kernel/drivers/net/addons/proxy.c  |   17 +
 kernel/drivers/net/drivers/8139too.c   | 2339 ++--
 kernel/drivers/net/drivers/at91_ether.c|   27 +-
 kernel/drivers/net/drivers/e1000/e1000.h   |1 -
 kernel/drivers/net/drivers/e1000/e1000_main.c  |  151 +-
 kernel/drivers/net/drivers/e1000e/e1000.h  |   17 +-
 kernel/drivers/net/drivers/e1000e/netdev.c |   32 +-
 kernel/drivers/net/drivers/eepro100.c  |   49 +-
 kernel/drivers/net/drivers/eth1394.c   |  182 +-
 kernel/drivers/net/drivers/experimental/3c59x.c| 1134 +-
 .../drivers/net/drivers/experimental/e1000/e1000.h |3 +-
 .../net/drivers/experimental/e1000/e1000_main.c|  557 +++--
 .../net/drivers/experimental/rt2500/rt2500pci.c|  461 ++--
 .../net/drivers/experimental/rt2500/rt2x00core.c   |  239 +-
 kernel/drivers/net/drivers/fec.c   |   19 +-
 kernel/drivers/net/drivers/igb/igb.h   |1 -
 kernel/drivers/net/drivers/igb/igb_main.c  |   84 +-
 kernel/drivers/net/drivers/loopback.c  |   12 +-
 kernel/drivers/net/drivers/macb.c  |   15 +-
 .../drivers/net/drivers/mpc52xx_fec/mpc52xx_fec.c  |   58 +-
 .../net/drivers/mpc52xx_fec/rt_mpc52xx_fec.h   |8 +-
 kernel/drivers/net/drivers/mpc8260_fcc_enet.c  |   66 +-
 kernel/drivers/net/drivers/mpc8xx_enet.c   |   38 +-
 kernel/drivers/net/drivers/mpc8xx_fec.c|   72 +-
 kernel/drivers/net/drivers/natsemi.c   |   27 +-
 kernel/drivers/net/drivers/pcnet32.c   |  106 +-
 kernel/drivers/net/drivers/r8169.c |  107 +-
 kernel/drivers/net/drivers/rt_at91_ether.h |1 -
 kernel/drivers/net/drivers/rt_eth1394.h|9 +-
 kernel/drivers/net/drivers/rt_macb.h   |  127 +-
 kernel/drivers/net/drivers/smc9.c  |  148 +-
 kernel/drivers/net/drivers/tulip/interrupt.c   |   82 +-
 kernel/drivers/net/drivers/tulip/tulip.h   |  493 ++---
 kernel/drivers/net/drivers/tulip/tulip_core.c  |   81 +-
 kernel/drivers/net/drivers/via-rhine.c |   63 +-
 kernel/drivers/net/stack/include/rtdev.h   |   48 +-
 kernel/drivers/net/stack/include/rtskb.h   |1 -
 kernel/drivers/net/stack/include/rtwlan.h  |   68 +-
 kernel/drivers/net/stack/rtdev.c   |  293 +--
 kernel/drivers/net/stack/rtmac/rtmac_vnic.c|2 +-
 kernel/drivers/net/stack/rtskb.c   |   10 +-
 kernel/drivers/net/stack/rtwlan.c  |   87 +-
 43 files changed, 3567 insertions(+), 3781 deletions(-)

Diff:   
http://git.xenomai.org/?p=xenomai-3.git;a=commitdiff;h=723087689a119eab41df5a32d36c99926055210c

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


[Xenomai-git] Gilles Chanteperdrix : rtnet: rtskb_pool changes (2)

2014-11-15 Thread git repository hosting
Module: xenomai-gch
Branch: for-forge
Commit: a102ceb3e2b6001ff28c98bb4fafa14e158c1a27
URL:
http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=a102ceb3e2b6001ff28c98bb4fafa14e158c1a27

Author: Gilles Chanteperdrix 
Date:   Tue Nov 11 22:52:25 2014 +0100

rtnet: rtskb_pool changes (2)

Move the per-driver rtskb_pool to rtnet_devices. At this chance, rework
rtdev_reference/rtdev_dereference to lock/unlock module loading, also lock
the module when an interface is up, so that an interface must be down in order
to allow removing it.

A new call rtnetdev_alloc_rtskb is added to be used instead of dev_alloc_rtskb
to allocate devices from the device pool, its first argument being a pointer to
a device instead of a pointer to a pool.

---

 kernel/drivers/net/addons/cap.c|   13 +-
 kernel/drivers/net/addons/proxy.c  |   17 +
 kernel/drivers/net/drivers/8139too.c   | 2339 ++--
 kernel/drivers/net/drivers/at91_ether.c|   27 +-
 kernel/drivers/net/drivers/e1000/e1000.h   |1 -
 kernel/drivers/net/drivers/e1000/e1000_main.c  |  151 +-
 kernel/drivers/net/drivers/e1000e/e1000.h  |   17 +-
 kernel/drivers/net/drivers/e1000e/netdev.c |   32 +-
 kernel/drivers/net/drivers/eepro100.c  |   49 +-
 kernel/drivers/net/drivers/eth1394.c   |  182 +-
 kernel/drivers/net/drivers/experimental/3c59x.c| 1134 +-
 .../drivers/net/drivers/experimental/e1000/e1000.h |3 +-
 .../net/drivers/experimental/e1000/e1000_main.c|  557 +++--
 .../net/drivers/experimental/rt2500/rt2500pci.c|  461 ++--
 .../net/drivers/experimental/rt2500/rt2x00core.c   |  239 +-
 kernel/drivers/net/drivers/fec.c   |   19 +-
 kernel/drivers/net/drivers/igb/igb.h   |1 -
 kernel/drivers/net/drivers/igb/igb_main.c  |   84 +-
 kernel/drivers/net/drivers/loopback.c  |   12 +-
 kernel/drivers/net/drivers/macb.c  |   15 +-
 .../drivers/net/drivers/mpc52xx_fec/mpc52xx_fec.c  |   58 +-
 .../net/drivers/mpc52xx_fec/rt_mpc52xx_fec.h   |8 +-
 kernel/drivers/net/drivers/mpc8260_fcc_enet.c  |   66 +-
 kernel/drivers/net/drivers/mpc8xx_enet.c   |   38 +-
 kernel/drivers/net/drivers/mpc8xx_fec.c|   72 +-
 kernel/drivers/net/drivers/natsemi.c   |   27 +-
 kernel/drivers/net/drivers/pcnet32.c   |  106 +-
 kernel/drivers/net/drivers/r8169.c |  107 +-
 kernel/drivers/net/drivers/rt_at91_ether.h |1 -
 kernel/drivers/net/drivers/rt_eth1394.h|9 +-
 kernel/drivers/net/drivers/rt_macb.h   |  127 +-
 kernel/drivers/net/drivers/smc9.c  |  148 +-
 kernel/drivers/net/drivers/tulip/interrupt.c   |   82 +-
 kernel/drivers/net/drivers/tulip/tulip.h   |  493 ++---
 kernel/drivers/net/drivers/tulip/tulip_core.c  |   81 +-
 kernel/drivers/net/drivers/via-rhine.c |   63 +-
 kernel/drivers/net/stack/include/rtdev.h   |   48 +-
 kernel/drivers/net/stack/include/rtskb.h   |1 -
 kernel/drivers/net/stack/include/rtwlan.h  |   68 +-
 kernel/drivers/net/stack/rtdev.c   |  293 +--
 kernel/drivers/net/stack/rtmac/rtmac_vnic.c|2 +-
 kernel/drivers/net/stack/rtskb.c   |   10 +-
 kernel/drivers/net/stack/rtwlan.c  |   87 +-
 43 files changed, 3567 insertions(+), 3781 deletions(-)

Diff:   
http://git.xenomai.org/?p=xenomai-gch.git;a=commitdiff;h=a102ceb3e2b6001ff28c98bb4fafa14e158c1a27

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


[Xenomai-git] Gilles Chanteperdrix : rtnet: rtskb_pool changes

2014-11-15 Thread git repository hosting
Module: xenomai-gch
Branch: for-forge
Commit: 43c51d042841990dec15e1b9afee37fad73ad0fc
URL:
http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=43c51d042841990dec15e1b9afee37fad73ad0fc

Author: Gilles Chanteperdrix 
Date:   Tue Nov 11 17:20:41 2014 +0100

rtnet: rtskb_pool changes

An rtskb_pool now has lock/unlock operations, called for the first dequeued
buffer and the last queued one. At this chance, the struct rtskb_pool is
introduced, and used everywhere a pool was used.

rtskb_module_pool_init creates an rtskb_pool whose lock/unlock operations
lock a module (the module from which rtskb_module_pool_init was called).

The socket skb_pool lock/unlocks the socket rtdm_fd.

Drivers pool not fixed yet.

---

 kernel/drivers/net/addons/cap.c|   24 +-
 kernel/drivers/net/addons/proxy.c  |4 +-
 kernel/drivers/net/stack/include/rtdev.h   |   15 +-
 .../drivers/net/stack/include/rtmac/rtmac_disc.h   |8 +-
 .../drivers/net/stack/include/rtmac/rtmac_vnic.h   |2 +-
 kernel/drivers/net/stack/include/rtmac/tdma/tdma.h |   14 +-
 kernel/drivers/net/stack/include/rtnet_socket.h|6 +-
 kernel/drivers/net/stack/include/rtskb.h   |   74 ++--
 kernel/drivers/net/stack/include/rtwlan.h  |   20 +-
 kernel/drivers/net/stack/include/stack_mgr.h   |8 +-
 kernel/drivers/net/stack/ipv4/icmp.c   |   31 +-
 kernel/drivers/net/stack/ipv4/ip_fragment.c|9 +-
 kernel/drivers/net/stack/ipv4/tcp/tcp.c|   17 +-
 kernel/drivers/net/stack/ipv4/udp/udp.c|  360 ++--
 kernel/drivers/net/stack/packet/af_packet.c|  329 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_frame.c   |4 +-
 .../drivers/net/stack/rtmac/nomac/nomac_module.c   |5 +-
 kernel/drivers/net/stack/rtmac/rtmac_disc.c|   13 +-
 kernel/drivers/net/stack/rtmac/rtmac_syms.c|2 +-
 kernel/drivers/net/stack/rtmac/rtmac_vnic.c|   28 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_ioctl.c   |4 +-
 kernel/drivers/net/stack/rtskb.c   |  163 ++---
 kernel/drivers/net/stack/socket.c  |   48 +--
 kernel/drivers/net/stack/stack_mgr.c   |   76 ++---
 24 files changed, 678 insertions(+), 586 deletions(-)

diff --git a/kernel/drivers/net/addons/cap.c b/kernel/drivers/net/addons/cap.c
index 5586c77..e72122e 100644
--- a/kernel/drivers/net/addons/cap.c
+++ b/kernel/drivers/net/addons/cap.c
@@ -54,7 +54,7 @@ MODULE_PARM_DESC(rtcap_rtskbs, "Number of real-time socket 
buffers per "
 
 static rtdm_nrtsig_tcap_signal;
 static struct rtskb_queue   cap_queue;
-static struct rtskb_queue   cap_pool;
+static struct rtskb_pool   cap_pool;
 
 static struct tap_device_t {
 struct net_device   *tap_dev;
@@ -69,13 +69,10 @@ static struct tap_device_t {
 
 void rtcap_rx_hook(struct rtskb *rtskb)
 {
-if ((rtskb->cap_comp_skb = rtskb_dequeue(&cap_pool)) == 0) {
+if ((rtskb->cap_comp_skb = rtskb_pool_dequeue(&cap_pool)) == 0) {
tap_device[rtskb->rtdev->ifindex].tap_dev_stats.rx_dropped++;
return;
 }
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-cap_pool.pool_balance--;
-#endif
 
 if (cap_queue.first == NULL)
cap_queue.first = rtskb;
@@ -97,13 +94,10 @@ int rtcap_xmit_hook(struct rtskb *rtskb, struct 
rtnet_device *rtdev)
 rtdm_lockctx_t  context;
 
 
-if ((rtskb->cap_comp_skb = rtskb_dequeue(&cap_pool)) == 0) {
+if ((rtskb->cap_comp_skb = rtskb_pool_dequeue(&cap_pool)) == 0) {
tap_dev->tap_dev_stats.rx_dropped++;
return tap_dev->orig_xmit(rtskb, rtdev);
 }
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-cap_pool.pool_balance--;
-#endif
 
 rtskb->cap_next  = NULL;
 rtskb->cap_start = rtskb->data;
@@ -156,10 +150,7 @@ void rtcap_kfree_rtskb(struct rtskb *rtskb)
 
rtdm_lock_put_irqrestore(&rtcap_lock, context);
 
-   rtskb_queue_tail(comp_skb->pool, comp_skb);
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-   comp_skb->pool->pool_balance++;
-#endif
+   rtskb_pool_queue_tail(comp_skb->pool, comp_skb);
 
return;
 }
@@ -167,10 +158,7 @@ void rtcap_kfree_rtskb(struct rtskb *rtskb)
 rtdm_lock_put_irqrestore(&rtcap_lock, context);
 
 rtskb->chain_end = rtskb;
-rtskb_queue_tail(rtskb->pool, rtskb);
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-rtskb->pool->pool_balance++;
-#endif
+rtskb_pool_queue_tail(rtskb->pool, rtskb);
 }
 
 
@@ -510,7 +498,7 @@ int __init rtcap_init(void)
goto error2;
 }
 
-if (rtskb_pool_init(&cap_pool, rtcap_rtskbs * devices) <
+if (rtskb_module_pool_init(&cap_pool, rtcap_rtskbs * devices) <
rtcap_rtskbs * devices) {
rtskb_pool_release(&cap_pool);
ret = -ENOMEM;
diff --git a/kernel/drivers/net/addons/proxy.c 
b/kernel/drivers/net/addons/proxy.c
index 1fedd7d..7c8c492 100644
--- a/kernel/drivers/net/addons/proxy.c
+++ b/kernel/drivers/net/addons/proxy.c
@@ -71,7 +7

[Xenomai-git] Gilles Chanteperdrix : rtnet: rtskb_pool changes (2)

2014-11-15 Thread git repository hosting
Module: xenomai-gch
Branch: for-forge
Commit: e65d21853940f76f4b9d8e75773fb44a47cebc74
URL:
http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=e65d21853940f76f4b9d8e75773fb44a47cebc74

Author: Gilles Chanteperdrix 
Date:   Tue Nov 11 22:52:25 2014 +0100

rtnet: rtskb_pool changes (2)

Move the per-driver rtskb_pool to rtnet_devices. At this chance, rework
rtdev_reference/rtdev_dereference to lock/unlock module loading, also lock
the module when an interface is up, so that an interface must be down in order
to allow removing it.

A new call rtnetdev_alloc_rtskb is added to be used instead of dev_alloc_rtskb
to allocate devices from the device pool, its first argument being a pointer to
a device instead of a pointer to a pool.

---

 kernel/drivers/net/addons/cap.c|   13 +-
 kernel/drivers/net/addons/proxy.c  |   17 +
 kernel/drivers/net/drivers/8139too.c   | 2339 ++--
 kernel/drivers/net/drivers/at91_ether.c|   27 +-
 kernel/drivers/net/drivers/e1000/e1000.h   |1 -
 kernel/drivers/net/drivers/e1000/e1000_main.c  |  151 +-
 kernel/drivers/net/drivers/e1000e/e1000.h  |   17 +-
 kernel/drivers/net/drivers/e1000e/netdev.c |   32 +-
 kernel/drivers/net/drivers/eepro100.c  |   49 +-
 kernel/drivers/net/drivers/eth1394.c   |  182 +-
 kernel/drivers/net/drivers/experimental/3c59x.c| 1134 +-
 .../drivers/net/drivers/experimental/e1000/e1000.h |3 +-
 .../net/drivers/experimental/e1000/e1000_main.c|  557 +++--
 .../net/drivers/experimental/rt2500/rt2500pci.c|  461 ++--
 .../net/drivers/experimental/rt2500/rt2x00core.c   |  239 +-
 kernel/drivers/net/drivers/fec.c   |   19 +-
 kernel/drivers/net/drivers/igb/igb.h   |1 -
 kernel/drivers/net/drivers/igb/igb_main.c  |   84 +-
 kernel/drivers/net/drivers/loopback.c  |   12 +-
 kernel/drivers/net/drivers/macb.c  |   15 +-
 .../drivers/net/drivers/mpc52xx_fec/mpc52xx_fec.c  |   58 +-
 .../net/drivers/mpc52xx_fec/rt_mpc52xx_fec.h   |8 +-
 kernel/drivers/net/drivers/mpc8260_fcc_enet.c  |   66 +-
 kernel/drivers/net/drivers/mpc8xx_enet.c   |   38 +-
 kernel/drivers/net/drivers/mpc8xx_fec.c|   72 +-
 kernel/drivers/net/drivers/natsemi.c   |   27 +-
 kernel/drivers/net/drivers/pcnet32.c   |  106 +-
 kernel/drivers/net/drivers/r8169.c |  107 +-
 kernel/drivers/net/drivers/rt_at91_ether.h |1 -
 kernel/drivers/net/drivers/rt_eth1394.h|9 +-
 kernel/drivers/net/drivers/rt_macb.h   |  127 +-
 kernel/drivers/net/drivers/smc9.c  |  148 +-
 kernel/drivers/net/drivers/tulip/interrupt.c   |   82 +-
 kernel/drivers/net/drivers/tulip/tulip.h   |  493 ++---
 kernel/drivers/net/drivers/tulip/tulip_core.c  |   81 +-
 kernel/drivers/net/drivers/via-rhine.c |   63 +-
 kernel/drivers/net/stack/include/rtdev.h   |   48 +-
 kernel/drivers/net/stack/include/rtskb.h   |1 -
 kernel/drivers/net/stack/include/rtwlan.h  |   68 +-
 kernel/drivers/net/stack/rtdev.c   |  293 +--
 kernel/drivers/net/stack/rtmac/rtmac_vnic.c|2 +-
 kernel/drivers/net/stack/rtskb.c   |   10 +-
 kernel/drivers/net/stack/rtwlan.c  |   87 +-
 43 files changed, 3567 insertions(+), 3781 deletions(-)

Diff:   
http://git.xenomai.org/?p=xenomai-gch.git;a=commitdiff;h=e65d21853940f76f4b9d8e75773fb44a47cebc74

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


[Xenomai-git] Gilles Chanteperdrix : rtnet: rtskb_pool changes

2014-11-15 Thread git repository hosting
Module: xenomai-gch
Branch: for-forge
Commit: e34ffc04de7174d7dc82bbb5d2402d3e80b0003c
URL:
http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=e34ffc04de7174d7dc82bbb5d2402d3e80b0003c

Author: Gilles Chanteperdrix 
Date:   Tue Nov 11 17:20:41 2014 +0100

rtnet: rtskb_pool changes

An rtskb_pool now has lock/unlock operations, called for the first dequeued
buffer and the last queued one. At this chance, the struct rtskb_pool is
introduced, and used everywhere a pool was used.

rtskb_module_pool_init creates an rtskb_pool whose lock/unlock operations
lock a module (the module from which rtskb_module_pool_init was called).

The socket skb_pool lock/unlocks the socket rtdm_fd.

Drivers pool not fixed yet.

---

 kernel/drivers/net/addons/cap.c|   24 +-
 kernel/drivers/net/addons/proxy.c  |4 +-
 kernel/drivers/net/stack/include/rtdev.h   |   15 +-
 .../drivers/net/stack/include/rtmac/rtmac_disc.h   |8 +-
 .../drivers/net/stack/include/rtmac/rtmac_vnic.h   |2 +-
 kernel/drivers/net/stack/include/rtmac/tdma/tdma.h |   14 +-
 kernel/drivers/net/stack/include/rtnet_socket.h|6 +-
 kernel/drivers/net/stack/include/rtskb.h   |   74 ++--
 kernel/drivers/net/stack/include/rtwlan.h  |   20 +-
 kernel/drivers/net/stack/include/stack_mgr.h   |8 +-
 kernel/drivers/net/stack/ipv4/icmp.c   |   31 +-
 kernel/drivers/net/stack/ipv4/ip_fragment.c|9 +-
 kernel/drivers/net/stack/ipv4/tcp/tcp.c|   17 +-
 kernel/drivers/net/stack/ipv4/udp/udp.c|  360 ++--
 kernel/drivers/net/stack/packet/af_packet.c|  329 +-
 kernel/drivers/net/stack/rtcfg/rtcfg_frame.c   |4 +-
 .../drivers/net/stack/rtmac/nomac/nomac_module.c   |5 +-
 kernel/drivers/net/stack/rtmac/rtmac_disc.c|   13 +-
 kernel/drivers/net/stack/rtmac/rtmac_syms.c|2 +-
 kernel/drivers/net/stack/rtmac/rtmac_vnic.c|   28 +-
 kernel/drivers/net/stack/rtmac/tdma/tdma_ioctl.c   |4 +-
 kernel/drivers/net/stack/rtskb.c   |  163 ++---
 kernel/drivers/net/stack/socket.c  |   48 +--
 kernel/drivers/net/stack/stack_mgr.c   |   76 ++---
 24 files changed, 678 insertions(+), 586 deletions(-)

diff --git a/kernel/drivers/net/addons/cap.c b/kernel/drivers/net/addons/cap.c
index 5586c77..e72122e 100644
--- a/kernel/drivers/net/addons/cap.c
+++ b/kernel/drivers/net/addons/cap.c
@@ -54,7 +54,7 @@ MODULE_PARM_DESC(rtcap_rtskbs, "Number of real-time socket 
buffers per "
 
 static rtdm_nrtsig_tcap_signal;
 static struct rtskb_queue   cap_queue;
-static struct rtskb_queue   cap_pool;
+static struct rtskb_pool   cap_pool;
 
 static struct tap_device_t {
 struct net_device   *tap_dev;
@@ -69,13 +69,10 @@ static struct tap_device_t {
 
 void rtcap_rx_hook(struct rtskb *rtskb)
 {
-if ((rtskb->cap_comp_skb = rtskb_dequeue(&cap_pool)) == 0) {
+if ((rtskb->cap_comp_skb = rtskb_pool_dequeue(&cap_pool)) == 0) {
tap_device[rtskb->rtdev->ifindex].tap_dev_stats.rx_dropped++;
return;
 }
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-cap_pool.pool_balance--;
-#endif
 
 if (cap_queue.first == NULL)
cap_queue.first = rtskb;
@@ -97,13 +94,10 @@ int rtcap_xmit_hook(struct rtskb *rtskb, struct 
rtnet_device *rtdev)
 rtdm_lockctx_t  context;
 
 
-if ((rtskb->cap_comp_skb = rtskb_dequeue(&cap_pool)) == 0) {
+if ((rtskb->cap_comp_skb = rtskb_pool_dequeue(&cap_pool)) == 0) {
tap_dev->tap_dev_stats.rx_dropped++;
return tap_dev->orig_xmit(rtskb, rtdev);
 }
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-cap_pool.pool_balance--;
-#endif
 
 rtskb->cap_next  = NULL;
 rtskb->cap_start = rtskb->data;
@@ -156,10 +150,7 @@ void rtcap_kfree_rtskb(struct rtskb *rtskb)
 
rtdm_lock_put_irqrestore(&rtcap_lock, context);
 
-   rtskb_queue_tail(comp_skb->pool, comp_skb);
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-   comp_skb->pool->pool_balance++;
-#endif
+   rtskb_pool_queue_tail(comp_skb->pool, comp_skb);
 
return;
 }
@@ -167,10 +158,7 @@ void rtcap_kfree_rtskb(struct rtskb *rtskb)
 rtdm_lock_put_irqrestore(&rtcap_lock, context);
 
 rtskb->chain_end = rtskb;
-rtskb_queue_tail(rtskb->pool, rtskb);
-#ifdef CONFIG_XENO_DRIVERS_NET_CHECKED
-rtskb->pool->pool_balance++;
-#endif
+rtskb_pool_queue_tail(rtskb->pool, rtskb);
 }
 
 
@@ -510,7 +498,7 @@ int __init rtcap_init(void)
goto error2;
 }
 
-if (rtskb_pool_init(&cap_pool, rtcap_rtskbs * devices) <
+if (rtskb_module_pool_init(&cap_pool, rtcap_rtskbs * devices) <
rtcap_rtskbs * devices) {
rtskb_pool_release(&cap_pool);
ret = -ENOMEM;
diff --git a/kernel/drivers/net/addons/proxy.c 
b/kernel/drivers/net/addons/proxy.c
index 1fedd7d..7c8c492 100644
--- a/kernel/drivers/net/addons/proxy.c
+++ b/kernel/drivers/net/addons/proxy.c
@@ -71,7 +7