]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
staging: vt6655: device_rx_srv check sk_buff is NULL
authorMalcolm Priestley <tvboxspy@gmail.com>
Sun, 31 May 2015 09:35:28 +0000 (10:35 +0100)
committerLuis Henriques <luis.henriques@canonical.com>
Wed, 15 Jul 2015 09:00:15 +0000 (10:00 +0100)
commit b5eeed8cb6097c8ea660b6598d36fdbb94065a22 upstream.

There is a small chance that pRD->pRDInfo->skb could go NULL
while the interrupt is processing.

Put NULL check on loop to break out.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[ luis: backported to 3.16: adjusted context ]
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
drivers/staging/vt6655/device_main.c

index 5a5fd937a4426ea3fcdaf1029c4e48346281b5a9..e3ae2599a2b733fc8b25e8542e2a68f09d2deb44 100644 (file)
@@ -1402,6 +1402,10 @@ static int device_rx_srv(PSDevice pDevice, unsigned int uIdx) {
             pRD = pRD->next) {
                if (works++ > 15)
                        break;
+
+               if (!pRD->pRDInfo->skb)
+                       break;
+
                if (device_receive_frame(pDevice, pRD)) {
                        if (!device_alloc_rx_buf(pDevice, pRD)) {
                                DBG_PRT(MSG_LEVEL_ERR, KERN_ERR