Commit ae3cf476 authored by Johannes Berg's avatar Johannes Berg Committed by Kalle Valo

iwlegacy: make il3945_mac_ops __ro_after_init

There's no need for this to be only __read_mostly, since
it's only written in a single way depending on the module
parameter, so that can be moved into the module's __init
function, and the ops can be __ro_after_init.

This is a little bit safer since it means the ops can't
be overwritten (accidentally or otherwise), which would
otherwise cause an arbitrary function or bad pointer to
be called.
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Acked-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent d7864cf2
...@@ -3469,7 +3469,7 @@ static struct attribute_group il3945_attribute_group = { ...@@ -3469,7 +3469,7 @@ static struct attribute_group il3945_attribute_group = {
.attrs = il3945_sysfs_entries, .attrs = il3945_sysfs_entries,
}; };
static struct ieee80211_ops il3945_mac_ops __read_mostly = { static struct ieee80211_ops il3945_mac_ops __ro_after_init = {
.tx = il3945_mac_tx, .tx = il3945_mac_tx,
.start = il3945_mac_start, .start = il3945_mac_start,
.stop = il3945_mac_stop, .stop = il3945_mac_stop,
...@@ -3627,15 +3627,6 @@ il3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -3627,15 +3627,6 @@ il3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
il->cmd_queue = IL39_CMD_QUEUE_NUM; il->cmd_queue = IL39_CMD_QUEUE_NUM;
/*
* Disabling hardware scan means that mac80211 will perform scans
* "the hard way", rather than using device's scan.
*/
if (il3945_mod_params.disable_hw_scan) {
D_INFO("Disabling hw_scan\n");
il3945_mac_ops.hw_scan = NULL;
}
D_INFO("*** LOAD DRIVER ***\n"); D_INFO("*** LOAD DRIVER ***\n");
il->cfg = cfg; il->cfg = cfg;
il->ops = &il3945_ops; il->ops = &il3945_ops;
...@@ -3913,6 +3904,15 @@ il3945_init(void) ...@@ -3913,6 +3904,15 @@ il3945_init(void)
pr_info(DRV_DESCRIPTION ", " DRV_VERSION "\n"); pr_info(DRV_DESCRIPTION ", " DRV_VERSION "\n");
pr_info(DRV_COPYRIGHT "\n"); pr_info(DRV_COPYRIGHT "\n");
/*
* Disabling hardware scan means that mac80211 will perform scans
* "the hard way", rather than using device's scan.
*/
if (il3945_mod_params.disable_hw_scan) {
pr_info("hw_scan is disabled\n");
il3945_mac_ops.hw_scan = NULL;
}
ret = il3945_rate_control_register(); ret = il3945_rate_control_register();
if (ret) { if (ret) {
pr_err("Unable to register rate control algorithm: %d\n", ret); pr_err("Unable to register rate control algorithm: %d\n", ret);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment