diff --git a/target/linux/generic/patches-2.6.39/102-ehci_hcd_ignore_oc.patch b/target/linux/generic/patches-2.6.39/102-ehci_hcd_ignore_oc.patch
index f98d8ee02fdb73e5a004ac39b7678a4bd294bbd2..371800820dd56a3024153d325a28da539cbf28de 100644
--- a/target/linux/generic/patches-2.6.39/102-ehci_hcd_ignore_oc.patch
+++ b/target/linux/generic/patches-2.6.39/102-ehci_hcd_ignore_oc.patch
@@ -16,7 +16,7 @@
  	 * PORT_POWER; that's surprising, but maybe within-spec.
  	 */
 -	if (!ignore_oc)
-+	if (!ignore_oc || !ehci->ignore_oc)
++	if (!ignore_oc && !ehci->ignore_oc)
  		mask = PORT_CSC | PORT_PEC | PORT_OCC;
  	else
  		mask = PORT_CSC | PORT_PEC;
@@ -25,7 +25,7 @@
  			status |= USB_PORT_STAT_C_ENABLE << 16;
  
 -		if ((temp & PORT_OCC) && !ignore_oc){
-+		if ((temp & PORT_OCC) && (!ignore_oc || !ehci->ignore_oc)){
++		if ((temp & PORT_OCC) && (!ignore_oc && !ehci->ignore_oc)){
  			status |= USB_PORT_STAT_C_OVERCURRENT << 16;
  
  			/*
diff --git a/target/linux/generic/patches-3.0/102-ehci_hcd_ignore_oc.patch b/target/linux/generic/patches-3.0/102-ehci_hcd_ignore_oc.patch
index 2da61397da4bb29ef04eb3ad92da6ecaa3c8f2a4..a7eb07e4cb3d86574aa9a9cf41d1cf408d74db86 100644
--- a/target/linux/generic/patches-3.0/102-ehci_hcd_ignore_oc.patch
+++ b/target/linux/generic/patches-3.0/102-ehci_hcd_ignore_oc.patch
@@ -16,7 +16,7 @@
  	 * PORT_POWER; that's surprising, but maybe within-spec.
  	 */
 -	if (!ignore_oc)
-+	if (!ignore_oc || !ehci->ignore_oc)
++	if (!ignore_oc && !ehci->ignore_oc)
  		mask = PORT_CSC | PORT_PEC | PORT_OCC;
  	else
  		mask = PORT_CSC | PORT_PEC;
@@ -25,7 +25,7 @@
  			status |= USB_PORT_STAT_C_ENABLE << 16;
  
 -		if ((temp & PORT_OCC) && !ignore_oc){
-+		if ((temp & PORT_OCC) && (!ignore_oc || !ehci->ignore_oc)){
++		if ((temp & PORT_OCC) && (!ignore_oc && !ehci->ignore_oc)){
  			status |= USB_PORT_STAT_C_OVERCURRENT << 16;
  
  			/*
diff --git a/target/linux/generic/patches-3.1/102-ehci_hcd_ignore_oc.patch b/target/linux/generic/patches-3.1/102-ehci_hcd_ignore_oc.patch
index d23a015091497837d79351ca059676863a8eef49..c94d718af30706e8e38da724beb839208b335676 100644
--- a/target/linux/generic/patches-3.1/102-ehci_hcd_ignore_oc.patch
+++ b/target/linux/generic/patches-3.1/102-ehci_hcd_ignore_oc.patch
@@ -16,7 +16,7 @@
  	 * PORT_POWER; that's surprising, but maybe within-spec.
  	 */
 -	if (!ignore_oc)
-+	if (!ignore_oc || !ehci->ignore_oc)
++	if (!ignore_oc && !ehci->ignore_oc)
  		mask = PORT_CSC | PORT_PEC | PORT_OCC;
  	else
  		mask = PORT_CSC | PORT_PEC;
@@ -25,7 +25,7 @@
  			status |= USB_PORT_STAT_C_ENABLE << 16;
  
 -		if ((temp & PORT_OCC) && !ignore_oc){
-+		if ((temp & PORT_OCC) && (!ignore_oc || !ehci->ignore_oc)){
++		if ((temp & PORT_OCC) && (!ignore_oc && !ehci->ignore_oc)){
  			status |= USB_PORT_STAT_C_OVERCURRENT << 16;
  
  			/*
diff --git a/target/linux/generic/patches-3.2/102-ehci_hcd_ignore_oc.patch b/target/linux/generic/patches-3.2/102-ehci_hcd_ignore_oc.patch
index 4ab267854bbed94f024ac60ecc467afc4c244ce3..2ce8ddaa1cc407bd4f74d7a55dbc321700e925ea 100644
--- a/target/linux/generic/patches-3.2/102-ehci_hcd_ignore_oc.patch
+++ b/target/linux/generic/patches-3.2/102-ehci_hcd_ignore_oc.patch
@@ -16,7 +16,7 @@
  	 * PORT_POWER; that's surprising, but maybe within-spec.
  	 */
 -	if (!ignore_oc)
-+	if (!ignore_oc || !ehci->ignore_oc)
++	if (!ignore_oc && !ehci->ignore_oc)
  		mask = PORT_CSC | PORT_PEC | PORT_OCC;
  	else
  		mask = PORT_CSC | PORT_PEC;
@@ -25,7 +25,7 @@
  			status |= USB_PORT_STAT_C_ENABLE << 16;
  
 -		if ((temp & PORT_OCC) && !ignore_oc){
-+		if ((temp & PORT_OCC) && (!ignore_oc || !ehci->ignore_oc)){
++		if ((temp & PORT_OCC) && (!ignore_oc && !ehci->ignore_oc)){
  			status |= USB_PORT_STAT_C_OVERCURRENT << 16;
  
  			/*