Return-path: Received: from nbd.name ([46.4.11.11]:40498 "EHLO nbd.name" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755860Ab2F0VW3 (ORCPT ); Wed, 27 Jun 2012 17:22:29 -0400 Message-ID: <4FEB7989.80708@openwrt.org> (sfid-20120627_232233_032538_0D20547B) Date: Wed, 27 Jun 2012 23:22:17 +0200 From: Felix Fietkau MIME-Version: 1.0 To: Tom Hughes CC: linville@tuxdriver.com, linux-wireless@vger.kernel.org, ath9k-devel@lists.ath9k.org, mcgrof@qca.qualcomm.com, jouni@qca.qualcomm.com, vthiagar@qca.qualcomm.com, senthilb@qca.qualcomm.com Subject: Re: [PATCH] ath9k: fix panic caused by returning a descriptor we have queued for reuse References: <1340817675-26911-1-git-send-email-tom@compton.nu> In-Reply-To: <1340817675-26911-1-git-send-email-tom@compton.nu> Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-wireless-owner@vger.kernel.org List-ID: On 2012-06-27 7:21 PM, Tom Hughes wrote: > Commit 3a2923e83c introduced a bug when a corrupt descriptor > is encountered - although the following descriptor is discarded > and returned to the queue for reuse the associated frame is > also returned for processing. This leads to a panic: > > BUG: unable to handle kernel NULL pointer dereference at 000000000000003a > IP: [] ath_rx_tasklet+0x165/0x1b00 [ath9k] > Call Trace: > > [] ? map_single+0x60/0x60 > [] ? ath9k_ioread32+0x34/0x90 [ath9k] > [] athk9k_tasklet+0xdc/0x160 [ath9k] > [] tasklet_action+0x63/0xd0 > [] __do_softirq+0xc0/0x1e0 > [] ? native_sched_clock+0x13/0x80 > [] call_softirq+0x1c/0x30 > [] do_softirq+0x75/0xb0 > [] irq_exit+0xb5/0xc0 > [] do_IRQ+0x63/0xe0 > [] common_interrupt+0x6a/0x6a > > [] ? intel_idle+0xea/0x150 > [] ? intel_idle+0xcb/0x150 > [] cpuidle_enter+0x19/0x20 > [] cpuidle_idle_call+0xa9/0x240 > [] cpu_idle+0xaf/0x120 > [] rest_init+0x72/0x74 > [] start_kernel+0x3b7/0x3c4 > [] ? repair_env_string+0x5e/0x5e > [] x86_64_start_reservations+0x131/0x135 > [] x86_64_start_kernel+0x100/0x10f > > Making sure bf is cleared to NULL in this case restores the > old behaviour. > > Signed-off-by: Tom Hughes Acked-by: Felix Fietkau