aboutsummaryrefslogtreecommitdiff
path: root/sys/compat/linuxkpi
diff options
context:
space:
mode:
Diffstat (limited to 'sys/compat/linuxkpi')
-rw-r--r--sys/compat/linuxkpi/common/include/linux/bitops.h9
-rw-r--r--sys/compat/linuxkpi/common/include/linux/pm.h14
-rw-r--r--sys/compat/linuxkpi/common/include/net/mac80211.h14
-rw-r--r--sys/compat/linuxkpi/common/src/linux_80211_macops.c12
-rw-r--r--sys/compat/linuxkpi/common/src/linux_page.c4
5 files changed, 35 insertions, 18 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/bitops.h b/sys/compat/linuxkpi/common/include/linux/bitops.h
index 00dd1f9a1ec0..a5a7abd55287 100644
--- a/sys/compat/linuxkpi/common/include/linux/bitops.h
+++ b/sys/compat/linuxkpi/common/include/linux/bitops.h
@@ -37,13 +37,8 @@
#define BIT(nr) (1UL << (nr))
#define BIT_ULL(nr) (1ULL << (nr))
-#ifdef __LP64__
-#define BITS_PER_LONG 64
-#else
-#define BITS_PER_LONG 32
-#endif
-
-#define BITS_PER_LONG_LONG 64
+#define BITS_PER_LONG (__SIZEOF_LONG__ * __CHAR_BIT__)
+#define BITS_PER_LONG_LONG (__SIZEOF_LONG_LONG__ * __CHAR_BIT__)
#define BITMAP_FIRST_WORD_MASK(start) (~0UL << ((start) % BITS_PER_LONG))
#define BITMAP_LAST_WORD_MASK(n) (~0UL >> (BITS_PER_LONG - (n)))
diff --git a/sys/compat/linuxkpi/common/include/linux/pm.h b/sys/compat/linuxkpi/common/include/linux/pm.h
index c8d943027909..932697e0eda8 100644
--- a/sys/compat/linuxkpi/common/include/linux/pm.h
+++ b/sys/compat/linuxkpi/common/include/linux/pm.h
@@ -97,4 +97,18 @@ pm_wakeup_event(struct device *dev __unused, unsigned int x __unused)
pr_debug("%s: TODO\n", __func__);
}
+/*
+ * We do not need to specify anything here as a VT switch always happens on
+ * suspend/resume.
+ */
+static inline void
+pm_vt_switch_required(struct device *dev __unused, bool required __unused)
+{
+}
+
+static inline void
+pm_vt_switch_unregister(struct device *dev __unused)
+{
+}
+
#endif /* _LINUXKPI_LINUX_PM_H */
diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h
index 523836b52a40..ee1ace3684de 100644
--- a/sys/compat/linuxkpi/common/include/net/mac80211.h
+++ b/sys/compat/linuxkpi/common/include/net/mac80211.h
@@ -956,7 +956,7 @@ struct ieee80211_ops {
int (*start)(struct ieee80211_hw *);
void (*stop)(struct ieee80211_hw *, bool);
- int (*config)(struct ieee80211_hw *, u32);
+ int (*config)(struct ieee80211_hw *, int, u32);
void (*reconfig_complete)(struct ieee80211_hw *, enum ieee80211_reconfig_type);
void (*prep_add_interface)(struct ieee80211_hw *, enum nl80211_iftype);
@@ -983,7 +983,7 @@ struct ieee80211_ops {
void (*flush)(struct ieee80211_hw *, struct ieee80211_vif *, u32, bool);
void (*flush_sta)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
- int (*set_frag_threshold)(struct ieee80211_hw *, u32);
+ int (*set_frag_threshold)(struct ieee80211_hw *, int, u32);
void (*sync_rx_queues)(struct ieee80211_hw *);
@@ -1026,8 +1026,8 @@ struct ieee80211_ops {
void (*unassign_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *);
int (*switch_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif_chanctx_switch *, int, enum ieee80211_chanctx_switch_mode);
- int (*get_antenna)(struct ieee80211_hw *, u32 *, u32 *);
- int (*set_antenna)(struct ieee80211_hw *, u32, u32);
+ int (*get_antenna)(struct ieee80211_hw *, int, u32 *, u32 *);
+ int (*set_antenna)(struct ieee80211_hw *, int, u32, u32);
int (*remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel *, int, enum ieee80211_roc_type);
int (*cancel_remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *);
@@ -1038,7 +1038,7 @@ struct ieee80211_ops {
void (*bss_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64);
void (*link_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64);
- int (*set_rts_threshold)(struct ieee80211_hw *, u32);
+ int (*set_rts_threshold)(struct ieee80211_hw *, int, u32);
void (*event_callback)(struct ieee80211_hw *, struct ieee80211_vif *, const struct ieee80211_event *);
int (*get_survey)(struct ieee80211_hw *, int, struct survey_info *);
int (*get_ftm_responder_stats)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_ftm_responder_stats *);
@@ -1048,7 +1048,7 @@ struct ieee80211_ops {
void (*offset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, s64);
int (*set_bitrate_mask)(struct ieee80211_hw *, struct ieee80211_vif *, const struct cfg80211_bitrate_mask *);
- void (*set_coverage_class)(struct ieee80211_hw *, s16);
+ void (*set_coverage_class)(struct ieee80211_hw *, int, s16);
int (*set_tim)(struct ieee80211_hw *, struct ieee80211_sta *, bool);
int (*set_key)(struct ieee80211_hw *, enum set_key_cmd, struct ieee80211_vif *, struct ieee80211_sta *, struct ieee80211_key_conf *);
@@ -2406,7 +2406,7 @@ ieee80211_remove_key(struct ieee80211_key_conf *key)
static __inline struct ieee80211_key_conf *
ieee80211_gtk_rekey_add(struct ieee80211_vif *vif,
- struct ieee80211_key_conf *key, int link_id)
+ uint16_t keyidx, uint8_t *key, size_t keylen, int link_id)
{
TODO();
return (NULL);
diff --git a/sys/compat/linuxkpi/common/src/linux_80211_macops.c b/sys/compat/linuxkpi/common/src/linux_80211_macops.c
index 04f9f6d7e7fc..d9e82a6d64ee 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211_macops.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211_macops.c
@@ -102,7 +102,8 @@ lkpi_80211_mo_get_antenna(struct ieee80211_hw *hw, u32 *txs, u32 *rxs)
}
LKPI_80211_TRACE_MO("hw %p", hw);
- error = lhw->ops->get_antenna(hw, txs, rxs);
+ LKPI_80211_TRACE_MO("TODO link/radio_idx");
+ error = lhw->ops->get_antenna(hw, 0, txs, rxs);
out:
return (error);
@@ -121,7 +122,8 @@ lkpi_80211_mo_set_frag_threshold(struct ieee80211_hw *hw, uint32_t frag_th)
}
LKPI_80211_TRACE_MO("hw %p frag_th %u", hw, frag_th);
- error = lhw->ops->set_frag_threshold(hw, frag_th);
+ LKPI_80211_TRACE_MO("TODO link/radio_idx");
+ error = lhw->ops->set_frag_threshold(hw, 0, frag_th);
out:
return (error);
@@ -140,7 +142,8 @@ lkpi_80211_mo_set_rts_threshold(struct ieee80211_hw *hw, uint32_t rts_th)
}
LKPI_80211_TRACE_MO("hw %p rts_th %u", hw, rts_th);
- error = lhw->ops->set_rts_threshold(hw, rts_th);
+ LKPI_80211_TRACE_MO("TODO link/radio_idx");
+ error = lhw->ops->set_rts_threshold(hw, 0, rts_th);
out:
return (error);
@@ -436,7 +439,8 @@ lkpi_80211_mo_config(struct ieee80211_hw *hw, uint32_t changed)
}
LKPI_80211_TRACE_MO("hw %p changed %u", hw, changed);
- error = lhw->ops->config(hw, changed);
+ LKPI_80211_TRACE_MO("TODO link/radio_idx");
+ error = lhw->ops->config(hw, 0, changed);
out:
return (error);
diff --git a/sys/compat/linuxkpi/common/src/linux_page.c b/sys/compat/linuxkpi/common/src/linux_page.c
index 628af17df853..9cc981b2ba43 100644
--- a/sys/compat/linuxkpi/common/src/linux_page.c
+++ b/sys/compat/linuxkpi/common/src/linux_page.c
@@ -345,6 +345,10 @@ retry:
page = vm_page_grab_iter(vm_obj, pindex, VM_ALLOC_NOCREAT, &pages);
if (page == NULL) {
page = PHYS_TO_VM_PAGE(IDX_TO_OFF(pfn));
+ if (page == NULL) {
+ pctrie_iter_reset(&pages);
+ return (VM_FAULT_SIGBUS);
+ }
if (!vm_page_busy_acquire(page, VM_ALLOC_WAITFAIL)) {
pctrie_iter_reset(&pages);
goto retry;