From patchwork Wed Nov 4 21:39:45 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Inaky Perez-Gonzalez X-Patchwork-Id: 37685 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 44E80B7B74 for ; Thu, 5 Nov 2009 08:47:06 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932926AbZKDVpd (ORCPT ); Wed, 4 Nov 2009 16:45:33 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932697AbZKDVpc (ORCPT ); Wed, 4 Nov 2009 16:45:32 -0500 Received: from mga06.intel.com ([134.134.136.21]:20702 "EHLO orsmga101.jf.intel.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932707AbZKDVl7 (ORCPT ); Wed, 4 Nov 2009 16:41:59 -0500 Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP; 04 Nov 2009 13:28:22 -0800 X-ExtLoop1: 1 Received: from unknown (HELO localhost.localdomain) ([10.24.164.236]) by orsmga002.jf.intel.com with ESMTP; 04 Nov 2009 13:59:18 -0800 From: Inaky Perez-Gonzalez To: netdev@vger.kernel.org, wimax@linuxwimax.org Cc: Cindy H Kao Subject: [PATCH 2.6.33/2 04/15] wimax/i2400m: don't write to memory allocated by request_firmware() Date: Wed, 4 Nov 2009 13:39:45 -0800 Message-Id: <8d8fe198c6a756ae96617548af4776e7a86c0d3e.1257370736.git.inaky@linux.intel.com> X-Mailer: git-send-email 1.6.2.5 In-Reply-To: References: In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Cindy H Kao In kernel 2.6.31, the firmware requested to ram could be marked with read only attribute, and we can't write any thing directly to the memory when setting up the last JUMP brh cmd. Changed so that the scratch buffer is used. Signed-off-by: Cindy H Kao Signed-off-by: Inaky Perez-Gonzalez --- drivers/net/wimax/i2400m/fw.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/drivers/net/wimax/i2400m/fw.c b/drivers/net/wimax/i2400m/fw.c index 0018cdb..92d4d60 100644 --- a/drivers/net/wimax/i2400m/fw.c +++ b/drivers/net/wimax/i2400m/fw.c @@ -533,6 +533,10 @@ int i2400m_dnload_finalize(struct i2400m *i2400m, struct i2400m_bootrom_header jump_ack; d_printf(1, dev, "unsecure boot, jumping to 0x%08x\n", le32_to_cpu(cmd->target_addr)); + cmd_buf = i2400m->bm_cmd_buf; + memcpy(&cmd_buf->cmd, cmd, sizeof(*cmd)); + cmd = &cmd_buf->cmd; + /* now cmd points to the actual bootrom_header in cmd_buf */ i2400m_brh_set_opcode(cmd, I2400M_BRH_JUMP); cmd->data_size = 0; ret = i2400m_bm_cmd(i2400m, cmd, sizeof(*cmd),