From patchwork Wed Oct 30 11:42:19 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Kazior X-Patchwork-Id: 3114421 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 240459F43F for ; Wed, 30 Oct 2013 11:46:37 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 7DEDC20121 for ; Wed, 30 Oct 2013 11:46:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 72F772016D for ; Wed, 30 Oct 2013 11:46:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753302Ab3J3LqA (ORCPT ); Wed, 30 Oct 2013 07:46:00 -0400 Received: from mail-ee0-f50.google.com ([74.125.83.50]:62130 "EHLO mail-ee0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752972Ab3J3LpO (ORCPT ); Wed, 30 Oct 2013 07:45:14 -0400 Received: by mail-ee0-f50.google.com with SMTP id l10so574752eei.9 for ; Wed, 30 Oct 2013 04:45:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tieto.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gT6CMR1rQfCpXW9YYePyD9m72W4ZnWbwMQU/C6O6yzo=; b=G1YW8TYEv6NUYudTHRVBs6V7SE4UeJFZNz2a2RM7oQAM21mPfw6U4xgvA4vIZvpmQ9 EKgxM6eYmBxNLnNmp3rKDGN3i4LpJOT/jaHkcDagT5z1SURSb1G8rOM628s58zNp7/KG +i1hJB+kzwWg5HxxZhrl6mgCDYSNlLEi6TGHo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gT6CMR1rQfCpXW9YYePyD9m72W4ZnWbwMQU/C6O6yzo=; b=gmJGlOCP9kW+4bW/Hll9beWEshqfzOtIN9R8QMDNX9pa+8gMMXsJLysnWbmzOs2QZZ ReOiAcD/uWvIios14h+eXBWNwBTatsfC5UdVy5wbqz/ti3WuN5tEhhOu//qpdOusMDFH Z9lVqHJSvY/Zj84O2s5EykU8mBHjtz8KQ8jm3bwsc6owsBdv2ODoboSvfyuR2yLs49Bz +A+ly0oYf35lfIilh+zY9c72H2PAwweaZi9OofdxLlGrRCqE+b5eE6uBfO08YSEXt2Iv 7rLPhzlFbUZRP21NYBLrBq1WSiy1dAvjXknb10uV76ULBD0pUDAWMbuy7b1w8u4W0ZGB 98vQ== X-Gm-Message-State: ALoCoQmf68vdGNkHURfEUsCvNgnDq2jWr1i19EcS3r2kaTQj7rCeNaF0k44cIHWk5OwhEyPFM2G91aZ206YWi3WHC0RctU48bQsOgBFuwbeSFuHdsYbeGHw= X-Received: by 10.14.241.74 with SMTP id f50mr4584788eer.29.1383133513530; Wed, 30 Oct 2013 04:45:13 -0700 (PDT) Received: from localhost.localdomain ([91.198.246.8]) by mx.google.com with ESMTPSA id a6sm82510594eei.10.2013.10.30.04.45.12 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 30 Oct 2013 04:45:13 -0700 (PDT) From: Michal Kazior To: ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, greearb@candelatech.com, Michal Kazior Subject: [PATCH/RFT 05/12] ath10k: make sure to mask all CE irqs Date: Wed, 30 Oct 2013 12:42:19 +0100 Message-Id: <1383133346-8135-6-git-send-email-michal.kazior@tieto.com> X-Mailer: git-send-email 1.8.4.rc3 In-Reply-To: <1383133346-8135-1-git-send-email-michal.kazior@tieto.com> References: <1383133346-8135-1-git-send-email-michal.kazior@tieto.com> X-DomainID: tieto.com Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-7.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP CE error interrupts were not disabled. This could lead to invalid memory accesses / memory corruption. Also make sure CE watermark interrupts are also disabled. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/ce.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/net/wireless/ath/ath10k/ce.c b/drivers/net/wireless/ath/ath10k/ce.c index 2b99bd4..7a49cde 100644 --- a/drivers/net/wireless/ath/ath10k/ce.c +++ b/drivers/net/wireless/ath/ath10k/ce.c @@ -243,6 +243,16 @@ static inline void ath10k_ce_error_intr_enable(struct ath10k *ar, misc_ie_addr | CE_ERROR_MASK); } +static inline void ath10k_ce_error_intr_disable(struct ath10k *ar, + u32 ce_ctrl_addr) +{ + u32 misc_ie_addr = ath10k_pci_read32(ar, + ce_ctrl_addr + MISC_IE_ADDRESS); + + ath10k_pci_write32(ar, ce_ctrl_addr + MISC_IE_ADDRESS, + misc_ie_addr & ~CE_ERROR_MASK); +} + static inline void ath10k_ce_engine_int_status_clear(struct ath10k *ar, u32 ce_ctrl_addr, unsigned int mask) @@ -794,6 +804,8 @@ void ath10k_ce_disable_interrupts(struct ath10k *ar) u32 ctrl_addr = ath10k_ce_base_address(ce_id); ath10k_ce_copy_complete_intr_disable(ar, ctrl_addr); + ath10k_ce_error_intr_disable(ar, ctrl_addr); + ath10k_ce_watermark_intr_disable(ar, ctrl_addr); } ath10k_pci_sleep(ar); }