diff options
Diffstat (limited to 'sys/compat/linuxkpi')
| -rw-r--r-- | sys/compat/linuxkpi/common/include/linux/bitops.h | 9 | ||||
| -rw-r--r-- | sys/compat/linuxkpi/common/include/linux/pm.h | 14 | ||||
| -rw-r--r-- | sys/compat/linuxkpi/common/include/net/mac80211.h | 14 | ||||
| -rw-r--r-- | sys/compat/linuxkpi/common/src/linux_80211_macops.c | 12 | ||||
| -rw-r--r-- | sys/compat/linuxkpi/common/src/linux_page.c | 4 | 
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; | 
