Properly handle the error case in case of an invalid tx_pos.

Signed-off-by: Stefan Wahren <stefan.wah...@i2se.com>
---
 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c 
b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
index b0119b8..c61f5ac 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
@@ -600,8 +600,10 @@ reserve_space(VCHIQ_STATE_T *state, size_t space, int 
is_blocking)
                                return NULL; /* No space available */
                }
 
-               BUG_ON(tx_pos ==
-                       (state->slot_queue_available * VCHIQ_SLOT_SIZE));
+               if (tx_pos == (state->slot_queue_available * VCHIQ_SLOT_SIZE)) {
+                       pr_warn("%s: invalid tx_pos: %d\n", __func__, tx_pos);
+                       return NULL;
+               }
 
                slot_index = local->slot_queue[
                        SLOT_QUEUE_INDEX_FROM_POS(tx_pos) &
-- 
2.7.4

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to