--- /dev/null
+This section of the libertas driver calls functions that simply don't
+exist before the release of 3.1. This code in question was an addition,
+not a change from any existing code. It is safe to simply remove it for
+older kernels.
+
+diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
+index b5fbbc7..513ae29 100644
+--- a/drivers/net/wireless/libertas/if_usb.c
++++ b/drivers/net/wireless/libertas/if_usb.c
+@@ -1133,6 +1133,7 @@ static int if_usb_suspend(struct usb_interface *intf, pm_message_t message)
+ if (priv->psstate != PS_STATE_FULL_POWER)
+ return -1;
+
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
+ #ifdef CONFIG_OLPC
+ if (machine_is_olpc()) {
+ if (priv->wol_criteria == EHS_REMOVE_WAKEUP)
+@@ -1141,6 +1142,7 @@ static int if_usb_suspend(struct usb_interface *intf, pm_message_t message)
+ olpc_ec_wakeup_set(EC_SCI_SRC_WLAN);
+ }
+ #endif
++#endif
+
+ ret = lbs_suspend(priv);
+ if (ret)