diff --git a/drivers/usb/wusbcore/reservation.c b/drivers/usb/wusbcore/reservation.c
index c37e4f83e54a18fd1946971f22cd78521bb89434..4ed97360c04637810875295b206717f194edabda 100644
--- a/drivers/usb/wusbcore/reservation.c
+++ b/drivers/usb/wusbcore/reservation.c
@@ -110,6 +110,9 @@ int wusbhc_rsv_establish(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;
+	}
 }