From: "Luis R. Rodriguez" <mcgrof@do-not-panic.com> To: rusty@rustcorp.com.au, dhowells@redhat.com, ming.lei@canonical.com, seth.forshee@canonical.com, kyle@kernel.org Cc: akpm@linux-foundation.org, gregkh@linuxfoundation.org, keescook@chromium.org, casey@schaufler-ca.com, tiwai@suse.de, mjg59@srcf.ucam.org, wireless-regdb@lists.infradead.org, linux-wireless@vger.kernel.org, jlee@suse.com, linux-kernel@vger.kernel.org, "Luis R. Rodriguez" <mcgrof@suse.com> Subject: [RFC v1 11/12] iwlwifi: use sysdata_file_request() and sysdata_file_request_async() Date: Tue, 5 May 2015 17:44:29 -0700 [thread overview] Message-ID: <1430873070-7290-12-git-send-email-mcgrof@do-not-panic.com> (raw) In-Reply-To: <1430873070-7290-1-git-send-email-mcgrof@do-not-panic.com> From: "Luis R. Rodriguez" <mcgrof@suse.com> Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com> --- drivers/net/wireless/iwlwifi/iwl-drv.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/iwlwifi/iwl-drv.c b/drivers/net/wireless/iwlwifi/iwl-drv.c index c7154ac..f20bda9 100644 --- a/drivers/net/wireless/iwlwifi/iwl-drv.c +++ b/drivers/net/wireless/iwlwifi/iwl-drv.c @@ -65,6 +65,7 @@ #include <linux/completion.h> #include <linux/dma-mapping.h> #include <linux/firmware.h> +#include <linux/sysdata.h> #include <linux/module.h> #include <linux/vmalloc.h> @@ -202,7 +203,7 @@ static int iwl_alloc_fw_desc(struct iwl_drv *drv, struct fw_desc *desc, return 0; } -static void iwl_req_fw_callback(const struct firmware *ucode_raw, +static void iwl_req_fw_callback(const struct sysdata_file *ucode_raw, void *context); #define UCODE_EXPERIMENTAL_INDEX 100 @@ -212,6 +213,9 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first) { const char *name_pre = drv->cfg->fw_name_pre; char tag[8]; + const struct sysdata_file_desc fw_desc = { + SYSDATA_DEFAULT_ASYNC(iwl_req_fw_callback, drv), + }; if (first) { #ifdef CONFIG_IWLWIFI_DEBUG_EXPERIMENTAL_UCODE @@ -256,9 +260,8 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first) ? "EXPERIMENTAL " : "", drv->firmware_name); - return request_firmware_nowait(THIS_MODULE, 1, drv->firmware_name, - drv->trans->dev, - GFP_KERNEL, drv, iwl_req_fw_callback); + return sysdata_file_request_async(drv->firmware_name, &fw_desc, + drv->trans->dev); } struct fw_img_parsing { @@ -453,7 +456,7 @@ static int iwl_set_ucode_capabilities(struct iwl_drv *drv, const u8 *data, } static int iwl_parse_v1_v2_firmware(struct iwl_drv *drv, - const struct firmware *ucode_raw, + const struct sysdata_file *ucode_raw, struct iwl_firmware_pieces *pieces) { struct iwl_ucode_header *ucode = (void *)ucode_raw->data; @@ -554,7 +557,7 @@ static int iwl_parse_v1_v2_firmware(struct iwl_drv *drv, } static int iwl_parse_tlv_firmware(struct iwl_drv *drv, - const struct firmware *ucode_raw, + const struct sysdata_file *ucode_raw, struct iwl_firmware_pieces *pieces, struct iwl_ucode_capabilities *capa) { @@ -1051,7 +1054,8 @@ static void _iwl_op_mode_stop(struct iwl_drv *drv) * If loaded successfully, copies the firmware into buffers * for the card to fetch (via DMA). */ -static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context) +static void iwl_req_fw_callback(const struct sysdata_file *ucode_raw, + void *context) { struct iwl_drv *drv = context; struct iwl_fw *fw = &drv->fw; @@ -1210,7 +1214,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context) IWL_MAX_STANDARD_PHY_CALIBRATE_TBL_SIZE; /* We have our copies now, allow OS release its copies */ - release_firmware(ucode_raw); + release_sysdata_file(ucode_raw); mutex_lock(&iwlwifi_opmode_table_mtx); if (fw->mvm_fw) @@ -1262,7 +1266,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context) try_again: /* try next, if any */ - release_firmware(ucode_raw); + release_sysdata_file(ucode_raw); if (iwl_request_firmware(drv, false)) goto out_unbind; kfree(pieces); @@ -1271,7 +1275,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context) out_free_fw: IWL_ERR(drv, "failed to allocate pci memory\n"); iwl_dealloc_ucode(drv); - release_firmware(ucode_raw); + release_sysdata_file(ucode_raw); out_unbind: kfree(pieces); complete(&drv->request_firmware_complete); -- 2.3.2.209.gd67f9d5.dirty
WARNING: multiple messages have this Message-ID (diff)
From: "Luis R. Rodriguez" <mcgrof@do-not-panic.com> To: rusty@rustcorp.com.au, dhowells@redhat.com, ming.lei@canonical.com, seth.forshee@canonical.com, kyle@kernel.org Cc: mjg59@srcf.ucam.org, wireless-regdb@lists.infradead.org, keescook@chromium.org, tiwai@suse.de, gregkh@linuxfoundation.org, "Luis R. Rodriguez" <mcgrof@suse.com>, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, jlee@suse.com, casey@schaufler-ca.com, akpm@linux-foundation.org Subject: [wireless-regdb] [RFC v1 11/12] iwlwifi: use sysdata_file_request() and sysdata_file_request_async() Date: Tue, 5 May 2015 17:44:29 -0700 [thread overview] Message-ID: <1430873070-7290-12-git-send-email-mcgrof@do-not-panic.com> (raw) In-Reply-To: <1430873070-7290-1-git-send-email-mcgrof@do-not-panic.com> From: "Luis R. Rodriguez" <mcgrof@suse.com> Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com> --- drivers/net/wireless/iwlwifi/iwl-drv.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/iwlwifi/iwl-drv.c b/drivers/net/wireless/iwlwifi/iwl-drv.c index c7154ac..f20bda9 100644 --- a/drivers/net/wireless/iwlwifi/iwl-drv.c +++ b/drivers/net/wireless/iwlwifi/iwl-drv.c @@ -65,6 +65,7 @@ #include <linux/completion.h> #include <linux/dma-mapping.h> #include <linux/firmware.h> +#include <linux/sysdata.h> #include <linux/module.h> #include <linux/vmalloc.h> @@ -202,7 +203,7 @@ static int iwl_alloc_fw_desc(struct iwl_drv *drv, struct fw_desc *desc, return 0; } -static void iwl_req_fw_callback(const struct firmware *ucode_raw, +static void iwl_req_fw_callback(const struct sysdata_file *ucode_raw, void *context); #define UCODE_EXPERIMENTAL_INDEX 100 @@ -212,6 +213,9 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first) { const char *name_pre = drv->cfg->fw_name_pre; char tag[8]; + const struct sysdata_file_desc fw_desc = { + SYSDATA_DEFAULT_ASYNC(iwl_req_fw_callback, drv), + }; if (first) { #ifdef CONFIG_IWLWIFI_DEBUG_EXPERIMENTAL_UCODE @@ -256,9 +260,8 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first) ? "EXPERIMENTAL " : "", drv->firmware_name); - return request_firmware_nowait(THIS_MODULE, 1, drv->firmware_name, - drv->trans->dev, - GFP_KERNEL, drv, iwl_req_fw_callback); + return sysdata_file_request_async(drv->firmware_name, &fw_desc, + drv->trans->dev); } struct fw_img_parsing { @@ -453,7 +456,7 @@ static int iwl_set_ucode_capabilities(struct iwl_drv *drv, const u8 *data, } static int iwl_parse_v1_v2_firmware(struct iwl_drv *drv, - const struct firmware *ucode_raw, + const struct sysdata_file *ucode_raw, struct iwl_firmware_pieces *pieces) { struct iwl_ucode_header *ucode = (void *)ucode_raw->data; @@ -554,7 +557,7 @@ static int iwl_parse_v1_v2_firmware(struct iwl_drv *drv, } static int iwl_parse_tlv_firmware(struct iwl_drv *drv, - const struct firmware *ucode_raw, + const struct sysdata_file *ucode_raw, struct iwl_firmware_pieces *pieces, struct iwl_ucode_capabilities *capa) { @@ -1051,7 +1054,8 @@ static void _iwl_op_mode_stop(struct iwl_drv *drv) * If loaded successfully, copies the firmware into buffers * for the card to fetch (via DMA). */ -static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context) +static void iwl_req_fw_callback(const struct sysdata_file *ucode_raw, + void *context) { struct iwl_drv *drv = context; struct iwl_fw *fw = &drv->fw; @@ -1210,7 +1214,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context) IWL_MAX_STANDARD_PHY_CALIBRATE_TBL_SIZE; /* We have our copies now, allow OS release its copies */ - release_firmware(ucode_raw); + release_sysdata_file(ucode_raw); mutex_lock(&iwlwifi_opmode_table_mtx); if (fw->mvm_fw) @@ -1262,7 +1266,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context) try_again: /* try next, if any */ - release_firmware(ucode_raw); + release_sysdata_file(ucode_raw); if (iwl_request_firmware(drv, false)) goto out_unbind; kfree(pieces); @@ -1271,7 +1275,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context) out_free_fw: IWL_ERR(drv, "failed to allocate pci memory\n"); iwl_dealloc_ucode(drv); - release_firmware(ucode_raw); + release_sysdata_file(ucode_raw); out_unbind: kfree(pieces); complete(&drv->request_firmware_complete); -- 2.3.2.209.gd67f9d5.dirty _______________________________________________ wireless-regdb mailing list wireless-regdb@lists.infradead.org http://lists.infradead.org/mailman/listinfo/wireless-regdb
next prev parent reply other threads:[~2015-05-06 1:10 UTC|newest] Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-05-06 0:44 [RFC v1 00/12] kernel/firmware/wireless: firmware digital signature checks Luis R. Rodriguez 2015-05-06 0:44 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-06 0:44 ` [PATCH v1 01/12] kernel/params.c: export param_ops_bool_enable_only Luis R. Rodriguez 2015-05-06 0:44 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-08 17:56 ` Rusty Russell 2015-05-08 17:56 ` [wireless-regdb] " Rusty Russell 2015-05-06 0:44 ` [PATCH v1 02/12] kernel: generalize module signing as system data signing Luis R. Rodriguez 2015-05-06 0:44 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-07 1:07 ` Rusty Russell 2015-05-07 1:07 ` [wireless-regdb] " Rusty Russell 2015-05-06 0:44 ` [PATCH v1 03/12] crypto: qat - address recursive dependency when fw signing is enabled Luis R. Rodriguez 2015-05-06 0:44 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-06 3:33 ` Herbert Xu 2015-05-06 3:33 ` [wireless-regdb] " Herbert Xu 2015-05-07 8:42 ` Paul Bolle 2015-05-07 8:42 ` [wireless-regdb] " Paul Bolle 2015-05-07 18:06 ` Paul Bolle 2015-05-07 18:06 ` [wireless-regdb] " Paul Bolle 2015-05-07 18:28 ` Luis R. Rodriguez 2015-05-07 18:28 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-07 20:14 ` Paul Bolle 2015-05-07 20:14 ` [wireless-regdb] " Paul Bolle 2015-05-08 21:53 ` Paul Bolle 2015-05-08 21:53 ` [wireless-regdb] " Paul Bolle 2015-05-12 16:08 ` Luis R. Rodriguez 2015-05-12 16:08 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-18 20:01 ` Luis R. Rodriguez 2015-05-18 20:01 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-18 20:45 ` Paul Bolle 2015-05-18 20:45 ` [wireless-regdb] " Paul Bolle 2015-05-19 0:09 ` Luis R. Rodriguez 2015-05-19 0:09 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-19 8:02 ` Paul Bolle 2015-05-19 8:02 ` [wireless-regdb] " Paul Bolle 2015-05-19 15:46 ` Luis R. Rodriguez 2015-05-19 15:46 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-19 22:59 ` Herbert Xu 2015-05-19 22:59 ` [wireless-regdb] " Herbert Xu 2015-05-19 23:03 ` Herbert Xu 2015-05-19 23:03 ` [wireless-regdb] " Herbert Xu 2015-05-19 23:05 ` Luis R. Rodriguez 2015-05-19 23:05 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-19 23:05 ` Luis R. Rodriguez 2015-05-20 2:49 ` Herbert Xu 2015-05-20 2:49 ` [wireless-regdb] " Herbert Xu 2015-05-20 2:49 ` Herbert Xu 2015-05-20 9:00 ` Paul Bolle 2015-05-20 9:00 ` [wireless-regdb] " Paul Bolle 2015-05-20 9:00 ` Paul Bolle 2015-05-20 21:19 ` Luis R. Rodriguez 2015-05-20 21:19 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-20 21:19 ` Luis R. Rodriguez 2015-05-06 0:44 ` [PATCH v1 04/12] firmware: fix possible use after free on name on asynchronous request Luis R. Rodriguez 2015-05-06 0:44 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-08 19:23 ` Luis R. Rodriguez 2015-05-08 19:23 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-06 0:44 ` [RFC v1 05/12] firmware: add firmware signature checking support Luis R. Rodriguez 2015-05-06 0:44 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-06 0:44 ` [RFC v1 06/12] firmware: generalize "firmware" as "system data" helpers Luis R. Rodriguez 2015-05-06 0:44 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-06 0:44 ` [RFC v1 07/12] firmware: add generic system data helpers with signature support Luis R. Rodriguez 2015-05-06 0:44 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-06 0:44 ` [RFC v1 08/12] p54spi: use sysdata_file_request() for EEPROM optional system data Luis R. Rodriguez 2015-05-06 0:44 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-06 0:44 ` [RFC v1 09/12] p54: use sysdata_file_request() and sysdata_file_request_async() Luis R. Rodriguez 2015-05-06 0:44 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-06 0:44 ` [RFC v1 10/12] ath9k_htc: " Luis R. Rodriguez 2015-05-06 0:44 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-06 0:44 ` Luis R. Rodriguez [this message] 2015-05-06 0:44 ` [wireless-regdb] [RFC v1 11/12] iwlwifi: " Luis R. Rodriguez 2015-05-06 7:03 ` Johannes Berg 2015-05-06 7:03 ` [wireless-regdb] " Johannes Berg 2015-05-06 16:44 ` Luis R. Rodriguez 2015-05-06 16:44 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-06 0:44 ` [RFC v1 12/12] cfg80211: request for regulatory system data file Luis R. Rodriguez 2015-05-06 0:44 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-06 12:08 ` [PATCH v1 02/12] kernel: generalize module signing as system data signing David Howells 2015-05-06 12:08 ` [wireless-regdb] " David Howells 2015-05-06 16:57 ` [RFC v1 05/12] firmware: add firmware signature checking support David Howells 2015-05-06 16:57 ` [wireless-regdb] " David Howells 2015-05-06 17:31 ` Luis R. Rodriguez 2015-05-06 17:31 ` [wireless-regdb] " Luis R. Rodriguez 2015-05-06 17:31 ` Luis R. Rodriguez 2015-05-06 17:55 ` [RFC v1 00/12] kernel/firmware/wireless: firmware digital signature checks Luis R. Rodriguez 2015-05-06 17:55 ` [wireless-regdb] " Luis R. Rodriguez
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1430873070-7290-12-git-send-email-mcgrof@do-not-panic.com \ --to=mcgrof@do-not-panic.com \ --cc=akpm@linux-foundation.org \ --cc=casey@schaufler-ca.com \ --cc=dhowells@redhat.com \ --cc=gregkh@linuxfoundation.org \ --cc=jlee@suse.com \ --cc=keescook@chromium.org \ --cc=kyle@kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-wireless@vger.kernel.org \ --cc=mcgrof@suse.com \ --cc=ming.lei@canonical.com \ --cc=mjg59@srcf.ucam.org \ --cc=rusty@rustcorp.com.au \ --cc=seth.forshee@canonical.com \ --cc=tiwai@suse.de \ --cc=wireless-regdb@lists.infradead.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.