aboutsummaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorNicolas Morey-Chaisemartin <nmorey@kalray.eu>2015-11-10 16:51:44 +0100
committerMaxim Uvarov <maxim.uvarov@linaro.org>2015-12-08 17:12:43 +0300
commit10b79440bba75850e7873008484a187a55774eff (patch)
treede946734841e43c91a185d9dc5c2fab9944b7031 /platform
parentdd15914dc298468df3e7ce907a5d2db6d5b11832 (diff)
linux-generic: pktio: configuration functions check that interface is stopped
Signed-off-by: Nicolas Morey-Chaisemartin <nmorey@kalray.eu> Reviewed-by: Stuart Haslam <stuart.haslam@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'platform')
-rw-r--r--platform/linux-generic/odp_packet_io.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c
index 9d5c971d0..1e9d08c02 100644
--- a/platform/linux-generic/odp_packet_io.c
+++ b/platform/linux-generic/odp_packet_io.c
@@ -438,6 +438,10 @@ int odp_pktio_inq_setdef(odp_pktio_t id, odp_queue_t queue)
return -1;
lock_entry(pktio_entry);
+ if (pktio_entry->s.state != STATE_STOP) {
+ unlock_entry(pktio_entry);
+ return -1;
+ }
pktio_entry->s.inq_default = queue;
unlock_entry(pktio_entry);
@@ -476,6 +480,10 @@ int odp_pktio_inq_remdef(odp_pktio_t id)
return -1;
lock_entry(pktio_entry);
+ if (pktio_entry->s.state != STATE_STOP) {
+ unlock_entry(pktio_entry);
+ return -1;
+ }
queue = pktio_entry->s.inq_default;
qentry = queue_to_qentry(queue);
@@ -756,6 +764,10 @@ int odp_pktio_promisc_mode_set(odp_pktio_t id, odp_bool_t enable)
ODP_DBG("already freed pktio\n");
return -1;
}
+ if (entry->s.state != STATE_STOP) {
+ unlock_entry(entry);
+ return -1;
+ }
ret = entry->s.ops->promisc_mode_set(entry, enable);