diff options
Diffstat (limited to 'sys/compat')
| -rw-r--r-- | sys/compat/freebsd32/freebsd32_syscall.h | 2 | ||||
| -rw-r--r-- | sys/compat/freebsd32/freebsd32_syscalls.c | 1 | ||||
| -rw-r--r-- | sys/compat/freebsd32/freebsd32_sysent.c | 1 | ||||
| -rw-r--r-- | sys/compat/freebsd32/syscalls.conf | 3 | ||||
| -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 | 
8 files changed, 38 insertions, 13 deletions
| diff --git a/sys/compat/freebsd32/freebsd32_syscall.h b/sys/compat/freebsd32/freebsd32_syscall.h index 54063150eef9..f8ef7e4a20d3 100644 --- a/sys/compat/freebsd32/freebsd32_syscall.h +++ b/sys/compat/freebsd32/freebsd32_syscall.h @@ -517,4 +517,4 @@  #define	FREEBSD32_SYS_setgroups	596  #define	FREEBSD32_SYS_jail_attach_jd	597  #define	FREEBSD32_SYS_jail_remove_jd	598 -#define	FREEBSD32_SYS_MAXSYSCALL	599 +#define	FREEBSD32_SYS_MAXSYSCALL	600 diff --git a/sys/compat/freebsd32/freebsd32_syscalls.c b/sys/compat/freebsd32/freebsd32_syscalls.c index f7cc4c284e4d..645cdccbc02d 100644 --- a/sys/compat/freebsd32/freebsd32_syscalls.c +++ b/sys/compat/freebsd32/freebsd32_syscalls.c @@ -604,4 +604,5 @@ const char *freebsd32_syscallnames[] = {  	"setgroups",			/* 596 = setgroups */  	"jail_attach_jd",			/* 597 = jail_attach_jd */  	"jail_remove_jd",			/* 598 = jail_remove_jd */ +	"#599",			/* 599 = kexec_load */  }; diff --git a/sys/compat/freebsd32/freebsd32_sysent.c b/sys/compat/freebsd32/freebsd32_sysent.c index 18f809ef04e3..240b54ae9011 100644 --- a/sys/compat/freebsd32/freebsd32_sysent.c +++ b/sys/compat/freebsd32/freebsd32_sysent.c @@ -666,4 +666,5 @@ struct sysent freebsd32_sysent[] = {  	{ .sy_narg = AS(setgroups_args), .sy_call = (sy_call_t *)sys_setgroups, .sy_auevent = AUE_SETGROUPS, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 596 = setgroups */  	{ .sy_narg = AS(jail_attach_jd_args), .sy_call = (sy_call_t *)sys_jail_attach_jd, .sy_auevent = AUE_JAIL_ATTACH, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 597 = jail_attach_jd */  	{ .sy_narg = AS(jail_remove_jd_args), .sy_call = (sy_call_t *)sys_jail_remove_jd, .sy_auevent = AUE_JAIL_REMOVE, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC },	/* 598 = jail_remove_jd */ +	{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT },	/* 599 = freebsd32_kexec_load */  }; diff --git a/sys/compat/freebsd32/syscalls.conf b/sys/compat/freebsd32/syscalls.conf index 72006631c89e..9308d1529c63 100644 --- a/sys/compat/freebsd32/syscalls.conf +++ b/sys/compat/freebsd32/syscalls.conf @@ -48,10 +48,11 @@ obsol="getkerninfo"  # Syscalls without implementations:  # __mac_* - should be implemented  # afs3_syscall - requires significant porting, probably doesn't make sense +# kexec_load - makes little sense on 64-bit hardware  # kldsym - can't be implemented (kernel virtual addresses can't fit in 32-bits)  # lgetfh - should be implemented  # nlm_syscall - requires significant porting, probably doesn't make sense  # nnpfs_syscall - requires significant porting, probably doesn't make sense  # ntp_gettime - should be implemented  # thr_create - was unimplemented and appears to be unnecessary -unimpl="afs3_syscall kldsym __mac_get_proc __mac_set_proc __mac_get_fd __mac_get_file __mac_set_fd __mac_set_file __mac_get_pid __mac_get_link __mac_set_link __mac_execve nfssvc nlm_syscall ntp_gettime lgetfh nnpfs_syscall thr_create" +unimpl="afs3_syscall kexec_load kldsym __mac_get_proc __mac_set_proc __mac_get_fd __mac_get_file __mac_set_fd __mac_set_file __mac_get_pid __mac_get_link __mac_set_link __mac_execve nfssvc nlm_syscall ntp_gettime lgetfh nnpfs_syscall thr_create" 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; | 
