From patchwork Tue Dec 22 08:57:31 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhu Yi X-Patchwork-Id: 69250 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.2) with ESMTP id nBM8vvqS014805 for ; Tue, 22 Dec 2009 08:57:57 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752805AbZLVI5h (ORCPT ); Tue, 22 Dec 2009 03:57:37 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752797AbZLVI5g (ORCPT ); Tue, 22 Dec 2009 03:57:36 -0500 Received: from mga01.intel.com ([192.55.52.88]:24897 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752764AbZLVI5d (ORCPT ); Tue, 22 Dec 2009 03:57:33 -0500 Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 22 Dec 2009 00:50:31 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.47,434,1257148800"; d="scan'208";a="758339986" Received: from debian.sh.intel.com (HELO [10.239.13.65]) ([10.239.13.65]) by fmsmga001.fm.intel.com with ESMTP; 22 Dec 2009 00:57:26 -0800 Subject: Re: Panic in iwl3945 driver From: Zhu Yi To: Maxim Levitsky Cc: "Chatre, Reinette" , linux-wireless , iwlwifi maling list In-Reply-To: <1261413654.3556.6.camel@maxim-laptop> References: <1259167780.4072.2.camel@maxim-laptop> <1259280022.3991.12.camel@maxim-laptop> <1259596551.4090.0.camel@maxim-laptop> <1259617333.4653.91.camel@rc-desk> <1259620526.6559.34.camel@maxim-laptop> <1259659724.12157.110.camel@debian> <1259732550.12157.130.camel@debian> <1259774227.26287.2.camel@maxim-laptop> <1261413654.3556.6.camel@maxim-laptop> Date: Tue, 22 Dec 2009 16:57:31 +0800 Message-ID: <1261472251.12157.829.camel@debian> Mime-Version: 1.0 X-Mailer: Evolution 2.28.1 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index 2673e9a..02070cc 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h @@ -711,7 +711,11 @@ extern void iwl_txq_ctx_stop(struct iwl_priv *priv); extern int iwl_queue_space(const struct iwl_queue *q); static inline int iwl_queue_used(const struct iwl_queue *q, int i) { - return q->write_ptr > q->read_ptr ? + if (q->write_ptr == q->read_ptr) + printk("FIRMWARE BUG: index %d is given while read_ptr is %d\n", + i, q->read_ptr); + + return q->write_ptr >= q->read_ptr ? (i >= q->read_ptr && i < q->write_ptr) : !(i < q->read_ptr && i >= q->write_ptr); }