Explorar o código

wusb: fix oops when terminating a non-existant reservation

If a reservation was not established, do not try terminating it.

Signed-off-by: David Vrabel <david.vrabel@csr.com>
David Vrabel %!s(int64=16) %!d(string=hai) anos
pai
achega
fe6e87a4b5
Modificáronse 1 ficheiros con 5 adicións e 2 borrados
  1. 5 2
      drivers/usb/wusbcore/reservation.c

+ 5 - 2
drivers/usb/wusbcore/reservation.c

@@ -110,6 +110,9 @@ int wusbhc_rsv_establish(struct wusbhc *wusbhc)
  */
  */
 void wusbhc_rsv_terminate(struct wusbhc *wusbhc)
 void wusbhc_rsv_terminate(struct wusbhc *wusbhc)
 {
 {
-	uwb_rsv_terminate(wusbhc->rsv);
-	uwb_rsv_destroy(wusbhc->rsv);
+	if (wusbhc->rsv) {
+		uwb_rsv_terminate(wusbhc->rsv);
+		uwb_rsv_destroy(wusbhc->rsv);
+		wusbhc->rsv = NULL;
+	}
 }
 }