From 07f7bcf24d303ec6d91d7da809f3b6e6760f8301 Mon Sep 17 00:00:00 2001 From: Elena Reshetova Date: Wed, 30 Aug 2017 13:44:38 +0300 Subject: [PATCH 146/194] p54: prevent speculative execution Since the queue value in function p54_conf_tx() seems to be controllable by userspace and later on conditionally (upon bound check) used to resolve priv->qos_params, insert an observable speculation barrier before its usage. This should prevent observable speculation on that branch and avoid kernel memory leak. Signed-off-by: Elena Reshetova --- drivers/net/wireless/intersil/p54/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/intersil/p54/main.c b/drivers/net/wireless/intersil/p54/main.c index d5a3bf9..3d20b47 100644 --- a/drivers/net/wireless/intersil/p54/main.c +++ b/drivers/net/wireless/intersil/p54/main.c @@ -415,6 +415,7 @@ static int p54_conf_tx(struct ieee80211_hw *dev, mutex_lock(&priv->conf_mutex); if (queue < dev->queues) { + osb(); P54_SET_QUEUE(priv->qos_params[queue], params->aifs, params->cw_min, params->cw_max, params->txop); ret = p54_set_edcf(priv); -- 2.9.5