mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-26 00:41:08 +00:00
dd933de84f
Issue #1774.
297 lines
9.8 KiB
Diff
297 lines
9.8 KiB
Diff
diff --git a/drivers/net/wireless/iwlwifi/dvm/rs.c b/drivers/net/wireless/iwlwifi/dvm/rs.c
|
|
index 0977d93..3ccfd0e 100644
|
|
--- a/drivers/net/wireless/iwlwifi/dvm/rs.c
|
|
+++ b/drivers/net/wireless/iwlwifi/dvm/rs.c
|
|
@@ -2309,7 +2309,7 @@ static void rs_rate_scale_perform(struct iwl_priv *priv,
|
|
rate_scale_index_msk = rate_mask;
|
|
|
|
if (!((1 << index) & rate_scale_index_msk)) {
|
|
- IWL_ERR(priv, "Current Rate is not valid\n");
|
|
+ // IWL_ERR(priv, "Current Rate is not valid\n");
|
|
if (lq_sta->search_better_tbl) {
|
|
/* revert to active table if search table is not valid*/
|
|
tbl->lq_type = LQ_NONE;
|
|
diff --git a/drivers/net/wireless/iwlwifi/iwl-debug.c b/drivers/net/wireless/iwlwifi/iwl-debug.c
|
|
index 8a44f59..1045fe5 100644
|
|
--- a/drivers/net/wireless/iwlwifi/iwl-debug.c
|
|
+++ b/drivers/net/wireless/iwlwifi/iwl-debug.c
|
|
@@ -80,7 +80,9 @@ void __iwl_ ##fn(struct device *dev, const char *fmt, ...) \
|
|
\
|
|
va_start(args, fmt); \
|
|
vaf.va = &args; \
|
|
- dev_ ##fn(dev, "%pV", &vaf); \
|
|
+ char buf[256]; \
|
|
+ vsnprintf(buf, sizeof(buf), vaf.fmt, *vaf.va); \
|
|
+ dev_ ##fn(dev, "%s", buf); \
|
|
trace_iwlwifi_ ##fn(&vaf); \
|
|
va_end(args); \
|
|
}
|
|
@@ -103,10 +105,12 @@ void __iwl_err(struct device *dev, bool rfkill_prefix, bool trace_only,
|
|
va_start(args, fmt);
|
|
vaf.va = &args;
|
|
if (!trace_only) {
|
|
+ char buf[256];
|
|
+ vsnprintf(buf, sizeof(buf), vaf.fmt, *vaf.va);
|
|
if (rfkill_prefix)
|
|
- dev_err(dev, "(RFKILL) %pV", &vaf);
|
|
+ dev_err(dev, "(RFKILL) %s", buf);
|
|
else
|
|
- dev_err(dev, "%pV", &vaf);
|
|
+ dev_err(dev, "%s", buf);
|
|
}
|
|
trace_iwlwifi_err(&vaf);
|
|
va_end(args);
|
|
@@ -127,9 +131,11 @@ void __iwl_dbg(struct device *dev,
|
|
vaf.va = &args;
|
|
#ifdef CONFIG_IWLWIFI_DEBUG
|
|
if (iwl_have_debug_level(level) &&
|
|
- (!limit || net_ratelimit()))
|
|
- dev_dbg(dev, "%c %s %pV", in_interrupt() ? 'I' : 'U',
|
|
- function, &vaf);
|
|
+ (!limit || net_ratelimit())) {
|
|
+ char buf[256];
|
|
+ vsnprintf(buf, sizeof(buf), vaf.fmt, *vaf.va);
|
|
+ dev_dbg(dev, "%c %s %s", in_interrupt() ? 'I' : 'U', function, buf);
|
|
+ }
|
|
#endif
|
|
trace_iwlwifi_dbg(level, in_interrupt(), function, &vaf);
|
|
va_end(args);
|
|
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
|
|
index 9a856e5..e70f9b7 100644
|
|
--- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
|
|
+++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
|
|
@@ -1923,7 +1923,7 @@ struct ieee80211_ops iwl_mvm_hw_ops = {
|
|
.add_interface = iwl_mvm_mac_add_interface,
|
|
.remove_interface = iwl_mvm_mac_remove_interface,
|
|
.config = iwl_mvm_mac_config,
|
|
- .prepare_multicast = iwl_mvm_prepare_multicast,
|
|
+ .prepare_multicast = 0,
|
|
.configure_filter = iwl_mvm_configure_filter,
|
|
.bss_info_changed = iwl_mvm_bss_info_changed,
|
|
.hw_scan = iwl_mvm_mac_hw_scan,
|
|
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h
|
|
index 2b0ba1f..8de16d0 100644
|
|
--- a/drivers/net/wireless/iwlwifi/mvm/mvm.h
|
|
+++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h
|
|
@@ -64,7 +64,7 @@
|
|
#ifndef __IWL_MVM_H__
|
|
#define __IWL_MVM_H__
|
|
|
|
-#include <linux/list.h>
|
|
+/* #include <linux/list.h> */
|
|
#include <linux/spinlock.h>
|
|
#include <linux/leds.h>
|
|
#include <linux/in6.h>
|
|
diff --git a/drivers/net/wireless/iwlwifi/mvm/ops.c b/drivers/net/wireless/iwlwifi/mvm/ops.c
|
|
index 529d991..5b4c766 100644
|
|
--- a/drivers/net/wireless/iwlwifi/mvm/ops.c
|
|
+++ b/drivers/net/wireless/iwlwifi/mvm/ops.c
|
|
@@ -385,6 +385,11 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
|
|
trans_cfg.n_no_reclaim_cmds = ARRAY_SIZE(no_reclaim_cmds);
|
|
trans_cfg.rx_buf_size_8k = iwlwifi_mod_params.amsdu_size_8K;
|
|
|
|
+ if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_PM_CMD_SUPPORT)
|
|
+ mvm->pm_ops = &pm_mac_ops;
|
|
+ else
|
|
+ mvm->pm_ops = &pm_legacy_ops;
|
|
+
|
|
if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_DW_BC_TABLE)
|
|
trans_cfg.bc_table_dword = true;
|
|
|
|
@@ -462,11 +467,6 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
|
|
if (err)
|
|
goto out_unregister;
|
|
|
|
- if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_PM_CMD_SUPPORT)
|
|
- mvm->pm_ops = &pm_mac_ops;
|
|
- else
|
|
- mvm->pm_ops = &pm_legacy_ops;
|
|
-
|
|
memset(&mvm->rx_stats, 0, sizeof(struct mvm_statistics_rx));
|
|
|
|
return op_mode;
|
|
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
|
|
index e526a8c..f3134fe 100644
|
|
--- a/include/linux/ieee80211.h
|
|
+++ b/include/linux/ieee80211.h
|
|
@@ -2231,7 +2231,7 @@ static inline bool ieee80211_is_robust_mgmt_frame(struct ieee80211_hdr *hdr)
|
|
static inline bool ieee80211_is_public_action(struct ieee80211_hdr *hdr,
|
|
size_t len)
|
|
{
|
|
- struct ieee80211_mgmt *mgmt = (void *)hdr;
|
|
+ struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)hdr;
|
|
|
|
if (len < IEEE80211_MIN_ACTION_SIZE)
|
|
return false;
|
|
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
|
|
index b1f84b0..890da1b 100644
|
|
--- a/include/net/cfg80211.h
|
|
+++ b/include/net/cfg80211.h
|
|
@@ -191,6 +191,7 @@ struct ieee80211_channel {
|
|
* @IEEE80211_RATE_SUPPORTS_10MHZ: Rate can be used in 10 MHz mode
|
|
*/
|
|
enum ieee80211_rate_flags {
|
|
+ IEEE80211_RATE_NULL = 0,
|
|
IEEE80211_RATE_SHORT_PREAMBLE = 1<<0,
|
|
IEEE80211_RATE_MANDATORY_A = 1<<1,
|
|
IEEE80211_RATE_MANDATORY_B = 1<<2,
|
|
@@ -465,7 +466,7 @@ ieee80211_chandef_rate_flags(struct cfg80211_chan_def *chandef)
|
|
default:
|
|
break;
|
|
}
|
|
- return 0;
|
|
+ return IEEE80211_RATE_NULL;
|
|
}
|
|
|
|
/**
|
|
@@ -2990,7 +2991,7 @@ struct wiphy {
|
|
const struct nl80211_vendor_cmd_info *vendor_events;
|
|
int n_vendor_commands, n_vendor_events;
|
|
|
|
- char priv[0] __aligned(NETDEV_ALIGN);
|
|
+ char priv[0] __attribute__ ((__aligned__(32)));//__aligned(NETDEV_ALIGN);
|
|
};
|
|
|
|
static inline struct net *wiphy_net(struct wiphy *wiphy)
|
|
diff --git a/include/net/netlink.h b/include/net/netlink.h
|
|
index 2b47eaa..6bd2cb1 100644
|
|
--- a/include/net/netlink.h
|
|
+++ b/include/net/netlink.h
|
|
@@ -308,7 +308,7 @@ static inline int nlmsg_len(const struct nlmsghdr *nlh)
|
|
static inline struct nlattr *nlmsg_attrdata(const struct nlmsghdr *nlh,
|
|
int hdrlen)
|
|
{
|
|
- unsigned char *data = nlmsg_data(nlh);
|
|
+ unsigned char *data = (unsigned char *)nlmsg_data(nlh);
|
|
return (struct nlattr *) (data + NLMSG_ALIGN(hdrlen));
|
|
}
|
|
|
|
@@ -717,7 +717,7 @@ static inline struct nlattr *nla_next(const struct nlattr *nla, int *remaining)
|
|
static inline struct nlattr *
|
|
nla_find_nested(const struct nlattr *nla, int attrtype)
|
|
{
|
|
- return nla_find(nla_data(nla), nla_len(nla), attrtype);
|
|
+ return nla_find((const struct nlattr *)nla_data(nla), nla_len(nla), attrtype);
|
|
}
|
|
|
|
/**
|
|
@@ -733,7 +733,7 @@ static inline int nla_parse_nested(struct nlattr *tb[], int maxtype,
|
|
const struct nlattr *nla,
|
|
const struct nla_policy *policy)
|
|
{
|
|
- return nla_parse(tb, maxtype, nla_data(nla), nla_len(nla), policy);
|
|
+ return nla_parse(tb, maxtype, (const struct nlattr *)nla_data(nla), nla_len(nla), policy);
|
|
}
|
|
|
|
/**
|
|
@@ -1161,7 +1161,7 @@ static inline void nla_nest_cancel(struct sk_buff *skb, struct nlattr *start)
|
|
static inline int nla_validate_nested(const struct nlattr *start, int maxtype,
|
|
const struct nla_policy *policy)
|
|
{
|
|
- return nla_validate(nla_data(start), nla_len(start), maxtype, policy);
|
|
+ return nla_validate((const struct nlattr *)nla_data(start), nla_len(start), maxtype, policy);
|
|
}
|
|
|
|
/**
|
|
diff --git a/include/net/sock.h b/include/net/sock.h
|
|
index b9586a1..d95959f 100644
|
|
--- a/include/net/sock.h
|
|
+++ b/include/net/sock.h
|
|
@@ -1854,7 +1854,7 @@ static inline int skb_add_data_nocache(struct sock *sk, struct sk_buff *skb,
|
|
{
|
|
int err, offset = skb->len;
|
|
|
|
- err = skb_do_copy_data_nocache(sk, skb, from, skb_put(skb, copy),
|
|
+ err = skb_do_copy_data_nocache(sk, skb, from, (char *)skb_put(skb, copy),
|
|
copy, offset);
|
|
if (err)
|
|
__skb_trim(skb, offset);
|
|
@@ -1869,7 +1869,7 @@ static inline int skb_copy_to_page_nocache(struct sock *sk, char __user *from,
|
|
{
|
|
int err;
|
|
|
|
- err = skb_do_copy_data_nocache(sk, skb, from, page_address(page) + off,
|
|
+ err = skb_do_copy_data_nocache(sk, skb, from, (char *)(page_address(page) + off),
|
|
copy, skb->len);
|
|
if (err)
|
|
return err;
|
|
diff --git a/net/core/sock.c b/net/core/sock.c
|
|
index c0fc6bd..29f7035 100644
|
|
--- a/net/core/sock.c
|
|
+++ b/net/core/sock.c
|
|
@@ -142,6 +142,8 @@
|
|
|
|
#include <net/busy_poll.h>
|
|
|
|
+#include <net/timewait_sock.h>
|
|
+
|
|
static DEFINE_MUTEX(proto_list_mutex);
|
|
static LIST_HEAD(proto_list);
|
|
|
|
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
|
|
index 48a6a93..598f469 100644
|
|
--- a/net/packet/af_packet.c
|
|
+++ b/net/packet/af_packet.c
|
|
@@ -93,6 +93,8 @@
|
|
#include <net/inet_common.h>
|
|
#endif
|
|
|
|
+#include <linux/if_ether.h>
|
|
+
|
|
#include "internal.h"
|
|
|
|
/*
|
|
@@ -3508,6 +3510,7 @@ static int packet_notifier(struct notifier_block *this,
|
|
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
|
struct net *net = dev_net(dev);
|
|
|
|
+#if 0
|
|
rcu_read_lock();
|
|
sk_for_each_rcu(sk, &net->packet.sklist) {
|
|
struct packet_sock *po = pkt_sk(sk);
|
|
@@ -3548,6 +3551,7 @@ static int packet_notifier(struct notifier_block *this,
|
|
}
|
|
}
|
|
rcu_read_unlock();
|
|
+#endif
|
|
return NOTIFY_DONE;
|
|
}
|
|
|
|
@@ -4062,8 +4066,10 @@ static int __net_init packet_net_init(struct net *net)
|
|
mutex_init(&net->packet.sklist_lock);
|
|
INIT_HLIST_HEAD(&net->packet.sklist);
|
|
|
|
+#ifdef CONFIG_PROC_FS
|
|
if (!proc_create("packet", 0, net->proc_net, &packet_seq_fops))
|
|
return -ENOMEM;
|
|
+#endif
|
|
|
|
return 0;
|
|
}
|
|
diff --git a/net/wireless/core.h b/net/wireless/core.h
|
|
index f1d193b..24220b3 100644
|
|
--- a/net/wireless/core.h
|
|
+++ b/net/wireless/core.h
|
|
@@ -82,7 +82,7 @@ struct cfg80211_registered_device {
|
|
|
|
/* must be last because of the way we do wiphy_priv(),
|
|
* and it should at least be aligned to NETDEV_ALIGN */
|
|
- struct wiphy wiphy __aligned(NETDEV_ALIGN);
|
|
+ struct wiphy wiphy __attribute__((__aligned__(32)));
|
|
};
|
|
|
|
static inline
|
|
diff --git a/net/wireless/sysfs.c b/net/wireless/sysfs.c
|
|
index 9ee6bc1..02d740d 100644
|
|
--- a/net/wireless/sysfs.c
|
|
+++ b/net/wireless/sysfs.c
|
|
@@ -156,7 +156,7 @@ struct class ieee80211_class = {
|
|
.resume = wiphy_resume,
|
|
#endif
|
|
.ns_type = &net_ns_type_operations,
|
|
- .namespace = wiphy_namespace,
|
|
+ ._namespace = wiphy_namespace,
|
|
};
|
|
|
|
int wiphy_sysfs_init(void)
|