From patchwork Mon Jul 9 10:22:27 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: alex.bluesman.smirnov@gmail.com X-Patchwork-Id: 169752 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.180.67]) by ozlabs.org (Postfix) with ESMTP id 04DCC2C0227 for ; Mon, 9 Jul 2012 20:27:10 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753020Ab2GIK0k (ORCPT ); Mon, 9 Jul 2012 06:26:40 -0400 Received: from mail-bk0-f46.google.com ([209.85.214.46]:33420 "EHLO mail-bk0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753005Ab2GIK0i (ORCPT ); Mon, 9 Jul 2012 06:26:38 -0400 Received: by mail-bk0-f46.google.com with SMTP id j10so5787740bkw.19 for ; Mon, 09 Jul 2012 03:26:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=A2yrsxlNCu5u99igX95TWPm+eXeIFiLEF4MOlmYRQjc=; b=nSZ1xcTAiHZWINHKG9errBmZPfz12ZAh5R9R/okGHXlmG2looJJmASImtUFMkzUOAC WR/EbRjh703YAv9A1GjL9KBHSpiGV+qVoDASpn5OfwgQEWrxL1Va1Bd2ormfB8jzItQk utMxRy5bciuWs1TmfHMCVT0KKodPN0QhR4A8mGrGZC9kmWaxyk+0w4gnKArPPJDPp5Kd JoUE6F3O9+XlAQjOm+4fOXMAJdVS+5ap5wFlAmu/7R0DhVfCUpvSTiTulirFQKKapjWc Ob26kBvdJ8CNct/ZBdrfx7sKfOGB34klaLqwl1WLSqoZYx8z0CcfZ9kcpRb62yCQRm7H FlXQ== Received: by 10.204.154.18 with SMTP id m18mr11631875bkw.23.1341829597695; Mon, 09 Jul 2012 03:26:37 -0700 (PDT) Received: from localhost.localdomain ([91.213.169.4]) by mx.google.com with ESMTPS id g6sm2416025bkg.2.2012.07.09.03.26.36 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 09 Jul 2012 03:26:37 -0700 (PDT) From: Alexander Smirnov To: davem@davemloft.net, eric.dumazet@gmail.com Cc: netdev@vger.kernel.org, Alexander Smirnov Subject: [PATCH net-next 2/6] drivers/ieee802154/at86rf230: rework irq handler Date: Mon, 9 Jul 2012 14:22:27 +0400 Message-Id: <1341829351-18485-3-git-send-email-alex.bluesman.smirnov@gmail.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1341829351-18485-1-git-send-email-alex.bluesman.smirnov@gmail.com> References: <1341829351-18485-1-git-send-email-alex.bluesman.smirnov@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Fix LOCKDEP bug message for the irq handler spinlock. Make the irq processing code more explicit and stable. Signed-off-by: Alexander Smirnov --- drivers/ieee802154/at86rf230.c | 14 ++++++-------- 1 files changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/ieee802154/at86rf230.c b/drivers/ieee802154/at86rf230.c index 902e38b..17b8320 100644 --- a/drivers/ieee802154/at86rf230.c +++ b/drivers/ieee802154/at86rf230.c @@ -652,22 +652,20 @@ static void at86rf230_irqwork(struct work_struct *work) } } - if (lp->irq_disabled) { - lp->irq_disabled = 0; - enable_irq(lp->spi->irq); - } + lp->irq_disabled = 0; spin_unlock_irqrestore(&lp->lock, flags); + + enable_irq(lp->spi->irq); } static irqreturn_t at86rf230_isr(int irq, void *data) { struct at86rf230_local *lp = data; + disable_irq_nosync(irq); + spin_lock(&lp->lock); - if (!lp->irq_disabled) { - disable_irq_nosync(irq); - lp->irq_disabled = 1; - } + lp->irq_disabled = 1; spin_unlock(&lp->lock); schedule_work(&lp->irqwork);