diff options
author | Harald Welte <laforge@osmocom.org> | 2019-12-14 19:07:57 +0100 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2019-12-14 21:50:59 +0100 |
commit | f4a625be53d0ada783ecff7b9193f90a391a291e (patch) | |
tree | c5b35845d65a394f52f183bec2d25c6a9e45f4de /firmware/libcommon/source/card_emu.c | |
parent | 271be9d181d2b351ad75cc5368ebdca46188cd81 (diff) |
usb_buf: count number of elements in queue
This is in preparation for limiting the maximum queue length
Change-Id: I7cb184d7a1ccb519010a2f3e3295cc3a5fbf8052
Related: OS#4251
Diffstat (limited to 'firmware/libcommon/source/card_emu.c')
-rw-r--r-- | firmware/libcommon/source/card_emu.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 923226a..f95f5d1 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -260,18 +260,18 @@ struct msgb *usb_buf_alloc_st(uint8_t ep, uint8_t msg_class, uint8_t msg_type) while (!msg) { msg = usb_buf_alloc(ep); // try to allocate some memory if (!msg) { // allocation failed, we might be out of memory - struct llist_head *queue = usb_get_queue(ep); - if (!queue) { + struct usb_buffered_ep *bep = usb_get_buf_ep(ep); + if (!bep) { TRACE_ERROR("ep %u: %s queue does not exist\n\r", ep, __func__); return NULL; } - if (llist_empty(queue)) { + if (llist_empty(&bep->queue)) { TRACE_ERROR("ep %u: %s EOMEM (queue already empty)\n\r", ep, __func__); return NULL; } - msg = msgb_dequeue(queue); + msg = msgb_dequeue_count(&bep->queue, &bep->queue_len); if (!msg) { TRACE_ERROR("ep %u: %s no msg in non-empty queue\n\r", ep, __func__); |