From patchwork Fri Feb 20 18:12:52 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabian Frederick X-Patchwork-Id: 442105 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 746CB140161 for ; Sat, 21 Feb 2015 05:14:39 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932142AbbBTSNH (ORCPT ); Fri, 20 Feb 2015 13:13:07 -0500 Received: from mailrelay107.isp.belgacom.be ([195.238.20.134]:8602 "EHLO mailrelay107.isp.belgacom.be" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754966AbbBTSNF (ORCPT ); Fri, 20 Feb 2015 13:13:05 -0500 X-Belgacom-Dynamic: yes X-Cloudmark-SP-Filtered: true X-Cloudmark-SP-Result: v=1.1 cv=pojTLeLEEG+IB9MeyQ9xnWKWJHiyH+4Hnj5iAYu/pCk= c=1 sm=2 a=6Dc2Op-vDsOgFYXoRn4A:9 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2DuCwAReOdU/zwEtFtbgwaxSgUBdpdNAoEYRAEBAQEBAXyEEAEFJy8jEFE5HhmIMwHCKJJPAQEBByKGBIkVZAcWhBUFmRGKbIhFIoNvPTGBAoFBAQEB Received: from 60.4-180-91.adsl-dyn.isp.belgacom.be (HELO localhost.localdomain) ([91.180.4.60]) by relay.skynet.be with ESMTP; 20 Feb 2015 19:13:06 +0100 From: Fabian Frederick To: linux-kernel@vger.kernel.org Cc: Ingo Molnar , Peter Zijlstra , Greg Kroah-Hartman , Fabian Frederick , Karsten Keil , netdev@vger.kernel.org Subject: [PATCH 2/7 linux-next] mISDN: replace current->state by set_current_state() Date: Fri, 20 Feb 2015 19:12:52 +0100 Message-Id: <1424455977-21903-2-git-send-email-fabf@skynet.be> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1424455977-21903-1-git-send-email-fabf@skynet.be> References: <1424455977-21903-1-git-send-email-fabf@skynet.be> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Use helper function to access current->state. Direct assignments are prone to races and therefore buggy. Thanks to Peter Zijlstra for the exact definition of the problem. Signed-off-by: Fabian Frederick --- drivers/isdn/hardware/mISDN/hfcpci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/isdn/hardware/mISDN/hfcpci.c b/drivers/isdn/hardware/mISDN/hfcpci.c index 3c92780..ff48da6 100644 --- a/drivers/isdn/hardware/mISDN/hfcpci.c +++ b/drivers/isdn/hardware/mISDN/hfcpci.c @@ -1755,7 +1755,7 @@ init_card(struct hfc_pci *hc) enable_hwirq(hc); spin_unlock_irqrestore(&hc->lock, flags); /* Timeout 80ms */ - current->state = TASK_UNINTERRUPTIBLE; + set_current_state(TASK_UNINTERRUPTIBLE); schedule_timeout((80 * HZ) / 1000); printk(KERN_INFO "HFC PCI: IRQ %d count %d\n", hc->irq, hc->irqcnt);