| From b1a68520b74e193477a7d90f41afe40e03e1a28b Mon Sep 17 00:00:00 2001 |
| From: Avery Pennarun <apenwarr@gmail.com> |
| Date: Wed, 23 Apr 2014 05:02:14 -0400 |
| Subject: [PATCH] HACK: fix compilation with 2.6.37 kernel |
| |
| --- |
| backport-include/linux/compat.h | 1 + |
| compat/compat-3.0.c | 3 +++ |
| compat/compat-3.5.c | 2 +- |
| compat/compat-3.6.c | 2 ++ |
| drivers/bluetooth/btmrvl_debugfs.c | 12 +++--------- |
| drivers/net/wireless/mwifiex/cfg80211.c | 4 ++-- |
| drivers/net/wireless/mwifiex/main.c | 2 +- |
| drivers/net/wireless/mwifiex/sta_cmd.c | 4 ++-- |
| drivers/net/wireless/mwifiex/uap_txrx.c | 2 +- |
| net/bluetooth/hci_core.c | 12 ++++-------- |
| net/bluetooth/hci_sysfs.c | 2 +- |
| 11 files changed, 21 insertions(+), 25 deletions(-) |
| |
| diff --git a/backport-include/linux/compat.h b/backport-include/linux/compat.h |
| index 07accd2..9c54608 100644 |
| --- a/backport-include/linux/compat.h |
| +++ b/backport-include/linux/compat.h |
| @@ -3,6 +3,7 @@ |
| |
| #include_next <linux/compat.h> |
| #include <linux/version.h> |
| +#include <linux/time.h> |
| |
| #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)) |
| #ifdef CONFIG_X86_X32_ABI |
| diff --git a/compat/compat-3.0.c b/compat/compat-3.0.c |
| index 1bed6a6..3824d96 100644 |
| --- a/compat/compat-3.0.c |
| +++ b/compat/compat-3.0.c |
| @@ -11,6 +11,7 @@ |
| |
| #include <linux/compat.h> |
| #include <linux/if_ether.h> |
| +#include <linux/kernel.h> |
| |
| int mac_pton(const char *s, u8 *mac) |
| { |
| @@ -50,6 +51,7 @@ int f(const char __user *s, size_t count, unsigned int base, type *res) \ |
| } \ |
| EXPORT_SYMBOL_GPL(f) |
| |
| +#if 0 |
| kstrto_from_user(kstrtoull_from_user, kstrtoull, unsigned long long); |
| kstrto_from_user(kstrtoll_from_user, kstrtoll, long long); |
| kstrto_from_user(kstrtoul_from_user, kstrtoul, unsigned long); |
| @@ -60,6 +62,7 @@ kstrto_from_user(kstrtou16_from_user, kstrtou16, u16); |
| kstrto_from_user(kstrtos16_from_user, kstrtos16, s16); |
| kstrto_from_user(kstrtou8_from_user, kstrtou8, u8); |
| kstrto_from_user(kstrtos8_from_user, kstrtos8, s8); |
| +#endif |
| |
| /** |
| * strtobool - convert common user inputs into boolean values |
| diff --git a/compat/compat-3.5.c b/compat/compat-3.5.c |
| index f9590d7..09c945f 100644 |
| --- a/compat/compat-3.5.c |
| +++ b/compat/compat-3.5.c |
| @@ -12,7 +12,7 @@ |
| #include <linux/highuid.h> |
| #include <linux/ktime.h> |
| #include <linux/hrtimer.h> |
| -#include <linux/ptp_clock_kernel.h> |
| +//#include <linux/ptp_clock_kernel.h> |
| |
| #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) |
| #include <linux/device.h> |
| diff --git a/compat/compat-3.6.c b/compat/compat-3.6.c |
| index c82bfb8..3d5b50c 100644 |
| --- a/compat/compat-3.6.c |
| +++ b/compat/compat-3.6.c |
| @@ -149,6 +149,7 @@ int sg_alloc_table_from_pages(struct sg_table *sgt, |
| EXPORT_SYMBOL_GPL(sg_alloc_table_from_pages); |
| |
| /* whoopsie ! */ |
| +#if 0 |
| #ifndef CONFIG_COMMON_CLK |
| int clk_enable(struct clk *clk) |
| { |
| @@ -161,3 +162,4 @@ void clk_disable(struct clk *clk) |
| } |
| EXPORT_SYMBOL_GPL(clk_disable); |
| #endif |
| +#endif |
| \ No newline at end of file |
| diff --git a/drivers/bluetooth/btmrvl_debugfs.c b/drivers/bluetooth/btmrvl_debugfs.c |
| index 023d35e..f692d36 100644 |
| --- a/drivers/bluetooth/btmrvl_debugfs.c |
| +++ b/drivers/bluetooth/btmrvl_debugfs.c |
| @@ -43,9 +43,7 @@ static ssize_t btmrvl_hscfgcmd_write(struct file *file, |
| if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) |
| return -EFAULT; |
| |
| - ret = kstrtol(buf, 10, &result); |
| - if (ret) |
| - return ret; |
| + result = simple_strtol(buf, NULL, 10); |
| |
| priv->btmrvl_dev.hscfgcmd = result; |
| |
| @@ -89,9 +87,7 @@ static ssize_t btmrvl_pscmd_write(struct file *file, const char __user *ubuf, |
| if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) |
| return -EFAULT; |
| |
| - ret = kstrtol(buf, 10, &result); |
| - if (ret) |
| - return ret; |
| + result = simple_strtol(buf, NULL, 10); |
| |
| priv->btmrvl_dev.pscmd = result; |
| |
| @@ -135,9 +131,7 @@ static ssize_t btmrvl_hscmd_write(struct file *file, const char __user *ubuf, |
| if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) |
| return -EFAULT; |
| |
| - ret = kstrtol(buf, 10, &result); |
| - if (ret) |
| - return ret; |
| + result = simple_strtol(buf, NULL, 10); |
| |
| priv->btmrvl_dev.hscmd = result; |
| if (priv->btmrvl_dev.hscmd) { |
| diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c |
| index 19d3ed1..8a37ec7 100644 |
| --- a/drivers/net/wireless/mwifiex/cfg80211.c |
| +++ b/drivers/net/wireless/mwifiex/cfg80211.c |
| @@ -2262,8 +2262,8 @@ struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy, |
| return ERR_PTR(-EINVAL); |
| } |
| |
| - dev = alloc_netdev_mqs(sizeof(struct mwifiex_private *), name, |
| - ether_setup, IEEE80211_NUM_ACS, 1); |
| + dev = alloc_netdev_mq(sizeof(struct mwifiex_private *), name, |
| + ether_setup, IEEE80211_NUM_ACS); |
| if (!dev) { |
| wiphy_err(wiphy, "no memory available for netdevice\n"); |
| priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED; |
| diff --git a/drivers/net/wireless/mwifiex/main.c b/drivers/net/wireless/mwifiex/main.c |
| index f388167..45f4b8c 100644 |
| --- a/drivers/net/wireless/mwifiex/main.c |
| +++ b/drivers/net/wireless/mwifiex/main.c |
| @@ -476,7 +476,7 @@ static void mwifiex_fw_dpc(const struct firmware *firmware, void *context) |
| |
| rtnl_lock(); |
| /* Create AP interface by default for google fiber boxen */ |
| - wdev = mwifiex_add_virtual_intf(adapter->wiphy, "wlan%d", |
| + wdev = mwifiex_add_virtual_intf(adapter->wiphy, "wlan0", |
| NL80211_IFTYPE_AP, NULL, NULL); |
| if (IS_ERR(wdev)) { |
| dev_err(adapter->dev, "cannot create default AP interface\n"); |
| diff --git a/drivers/net/wireless/mwifiex/sta_cmd.c b/drivers/net/wireless/mwifiex/sta_cmd.c |
| index e3cac14..67c53bd 100644 |
| --- a/drivers/net/wireless/mwifiex/sta_cmd.c |
| +++ b/drivers/net/wireless/mwifiex/sta_cmd.c |
| @@ -16,7 +16,6 @@ |
| * ARE EXPRESSLY DISCLAIMED. The License provides additional details about |
| * this warranty disclaimer. |
| */ |
| - |
| #include "decl.h" |
| #include "ioctl.h" |
| #include "util.h" |
| @@ -1440,6 +1439,7 @@ int mwifiex_dnld_dt_cfgdata(struct mwifiex_private *priv, |
| static int mwifiex_cmd_cfg_data(struct mwifiex_private *priv, |
| struct host_cmd_ds_command *cmd, void *data_buf) |
| { |
| +#ifdef CONFIG_OF |
| struct mwifiex_adapter *adapter = priv->adapter; |
| struct property *prop = data_buf; |
| u32 len; |
| @@ -1464,7 +1464,7 @@ static int mwifiex_cmd_cfg_data(struct mwifiex_private *priv, |
| |
| cmd->command = cpu_to_le16(HostCmd_CMD_CFG_DATA); |
| cmd->size = cpu_to_le16(S_DS_GEN + len); |
| - |
| +#endif |
| return 0; |
| } |
| |
| diff --git a/drivers/net/wireless/mwifiex/uap_txrx.c b/drivers/net/wireless/mwifiex/uap_txrx.c |
| index 9a56bc6..2086182 100644 |
| --- a/drivers/net/wireless/mwifiex/uap_txrx.c |
| +++ b/drivers/net/wireless/mwifiex/uap_txrx.c |
| @@ -179,7 +179,7 @@ static void mwifiex_uap_queue_bridged_pkt(struct mwifiex_private *priv, |
| tx_info->bss_type = priv->bss_type; |
| tx_info->flags |= MWIFIEX_BUF_FLAG_BRIDGED_PKT; |
| |
| - if (is_unicast_ether_addr(rx_pkt_hdr->eth803_hdr.h_dest)) { |
| + if (!is_multicast_ether_addr(rx_pkt_hdr->eth803_hdr.h_dest)) { |
| /* Update bridge packet statistics as the |
| * packet is not going to kernel/upper layer. |
| */ |
| diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c |
| index d31f144..a897572 100644 |
| --- a/net/bluetooth/hci_core.c |
| +++ b/net/bluetooth/hci_core.c |
| @@ -90,8 +90,7 @@ static ssize_t dut_mode_write(struct file *file, const char __user *user_buf, |
| return -EFAULT; |
| |
| buf[buf_size] = '\0'; |
| - if (strtobool(buf, &enable)) |
| - return -EINVAL; |
| + enable = simple_strtol(buf, NULL, 10); |
| |
| if (enable == test_bit(HCI_DUT_MODE, &hdev->dev_flags)) |
| return -EALREADY; |
| @@ -428,8 +427,7 @@ static ssize_t force_sc_support_write(struct file *file, |
| return -EFAULT; |
| |
| buf[buf_size] = '\0'; |
| - if (strtobool(buf, &enable)) |
| - return -EINVAL; |
| + enable = simple_strtol(buf, NULL, 10); |
| |
| if (enable == test_bit(HCI_FORCE_SC, &hdev->dev_flags)) |
| return -EALREADY; |
| @@ -684,8 +682,7 @@ static ssize_t force_static_address_write(struct file *file, |
| return -EFAULT; |
| |
| buf[buf_size] = '\0'; |
| - if (strtobool(buf, &enable)) |
| - return -EINVAL; |
| + enable = simple_strtol(buf, NULL, 10); |
| |
| if (enable == test_bit(HCI_FORCE_STATIC_ADDR, &hdev->dev_flags)) |
| return -EALREADY; |
| @@ -896,8 +893,7 @@ static ssize_t lowpan_write(struct file *fp, const char __user *user_buffer, |
| |
| buf[buf_size] = '\0'; |
| |
| - if (strtobool(buf, &enable) < 0) |
| - return -EINVAL; |
| + enable = simple_strtol(buf, NULL, 10); |
| |
| if (enable == test_bit(HCI_6LOWPAN_ENABLED, &hdev->dev_flags)) |
| return -EALREADY; |
| diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c |
| index 555982a..0e44414 100644 |
| --- a/net/bluetooth/hci_sysfs.c |
| +++ b/net/bluetooth/hci_sysfs.c |
| @@ -205,7 +205,7 @@ int __init bt_sysfs_init(void) |
| { |
| bt_class = class_create(THIS_MODULE, "bluetooth"); |
| |
| - return PTR_ERR_OR_ZERO(bt_class); |
| + return IS_ERR(bt_class) ? PTR_ERR(bt_class) : 0; |
| } |
| |
| void bt_sysfs_cleanup(void) |
| -- |
| 1.9.1.423.g4596e3a |
| |