Signed-off-by: Stanislaw Gruszka <sgruszka@xxxxxxxxxx> --- drivers/net/wireless/iwlegacy/common.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/iwlegacy/common.c b/drivers/net/wireless/iwlegacy/common.c index 31b9623..0661a5b 100644 --- a/drivers/net/wireless/iwlegacy/common.c +++ b/drivers/net/wireless/iwlegacy/common.c @@ -1271,9 +1271,14 @@ il_send_scan_abort(struct il_priv *il) struct il_rx_pkt *pkt; struct il_host_cmd cmd = { .id = C_SCAN_ABORT, - .flags = CMD_WANT_SKB, + .flags = CMD_COPY_PKT, }; + pkt = kmalloc(sizeof(*pkt), GFP_KERNEL); + if (!pkt) + return -ENOMEM; + cmd.pkt_ptr = pkt; + /* Exit instantly with error when device is not ready * to receive scan abort command or it does not perform * hardware scan currently */ @@ -1282,13 +1287,12 @@ il_send_scan_abort(struct il_priv *il) !test_bit(S_SCAN_HW, &il->status) || test_bit(S_FW_ERROR, &il->status) || test_bit(S_EXIT_PENDING, &il->status)) - return -EIO; + goto out; ret = il_send_cmd_sync(il, &cmd); if (ret) - return ret; + goto out; - pkt = (struct il_rx_pkt *)cmd.reply_page; if (pkt->u.status != CAN_ABORT_STATUS) { /* The scan abort will return 1 for success or * 2 for "failure". A failure condition can be @@ -1300,7 +1304,8 @@ il_send_scan_abort(struct il_priv *il) ret = -EIO; } - il_free_pages(il, cmd.reply_page); +out: + kfree(pkt); return ret; } -- 1.7.11.7 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html