There is otherwise a risk of a possible null pointer dereference. Was largely found by using a static code analysis program called cppcheck. Signed-off-by: Rickard Strandqvist <rickard_strandqvist@xxxxxxxxxxxxxxxxxx> --- drivers/staging/rtl8192u/r8192U_core.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c index 1bb6143..7bd58ee 100644 --- a/drivers/staging/rtl8192u/r8192U_core.c +++ b/drivers/staging/rtl8192u/r8192U_core.c @@ -2038,9 +2038,9 @@ static int WDCAPARA_ADD[] = {EDCAPARA_BE, EDCAPARA_BK, EDCAPARA_VI, EDCAPARA_VO} static void rtl8192_qos_activate(struct work_struct *work) { struct r8192_priv *priv = container_of(work, struct r8192_priv, qos_activate); - struct net_device *dev = priv->ieee80211->dev; - struct ieee80211_qos_parameters *qos_parameters = &priv->ieee80211->current_network.qos_data.parameters; - u8 mode = priv->ieee80211->current_network.mode; + struct net_device *dev; + struct ieee80211_qos_parameters *qos_parameters; + u8 mode; u8 u1bAIFS; u32 u4bAcParam; int i; @@ -2048,6 +2048,10 @@ static void rtl8192_qos_activate(struct work_struct *work) if (priv == NULL) return; + dev = priv->ieee80211->dev; + qos_parameters = &priv->ieee80211->current_network.qos_data.parameters; + mode = priv->ieee80211->current_network.mode; + mutex_lock(&priv->mutex); if (priv->ieee80211->state != IEEE80211_LINKED) goto success; -- 1.7.10.4 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel