diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index 184c24660a4c572b89fd4175d24314dd1fcb8f6c..ab766e0fe4ef3a6532a2efdea8d5452974cd0ee6 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -761,7 +761,9 @@ void usb_buffer_free (
 )
 {
 	if (!dev || !dev->bus || !dev->bus->op || !dev->bus->op->buffer_free)
-	    	return;
+		return;
+	if (!addr)
+		return;
 	dev->bus->op->buffer_free (dev->bus, size, addr, dma);
 }