Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp1511003imm; Wed, 10 Oct 2018 16:14:47 -0700 (PDT) X-Google-Smtp-Source: ACcGV61Lvsq9SiHSxFWrW5gwBT0hlEP6GmE9hQfUGjwwST/AcbqoYCfJgaQLYED37bmf3UENsV4T X-Received: by 2002:a17:902:9004:: with SMTP id a4-v6mr1313285plp.166.1539213287235; Wed, 10 Oct 2018 16:14:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539213287; cv=none; d=google.com; s=arc-20160816; b=Zt30zI7f8dWyifJwwV+BQ8LuXqSbMnr2/ZNJcSmAsCHL9WeAYyfM3q8/i3mMANW7j/ NHK7+UGM0jUjUZJlU+4+Vv6WiSutN7aFFlUX1n0V/K5J6Dy3Y+eb0XNRf1pnYIvK35S7 hIj8GfO1ggQttTCZafaMERGGDvavlYvaogok4ob13xkY5o1QLnwdoWmmmVM89Ajqk25B dDtAPbyzLG4aDgxszMsdRyhPRF7eG01uxR+fH3H6HpRhX+TS8PzdKvqVwwgle16HWnOB p6oCVOsmo3avyXC3kD+XNngY0NVmtBBMgZ++AjW3gCpe4ELv1FtVhARMkpN8hxPrNjZl PFKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=nWQcloO0FMq3loYkmOZsknLACF++/ytoALbVRI2xp4E=; b=ZL2/xIO24+NCdZ76ViwnzKn6HPv3VDtOOvDzH3uBqOp2bYpleB8HGeQX5wGTSU15xg dExVchlGHZ+rtA9U0gUWRV+tOcuXeAfoHTq9Qc4KKqFuTQj8DUD3rIYhAYhsRivodBUh ZHHLgwY1P8ItPCChlDA1cMqxmzrXu9FL8W6VXGCihZXU3XFgZ05Mg/RTPDY96asa6TnU cOsDcs8boljl8FltO5dynfYQol0QlHi/SIv24JjOJz6+YbKauDymIUbKz4Cdnd4klrYu BqULDNYzHKv06IloWkQ3lIWvPvW2HTRL7lUsVFErxyMg11EhbMB5h3sRFzXxjEFofhwk XtPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Tycy9SZy; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i5-v6si19758853pgc.289.2018.10.10.16.14.33; Wed, 10 Oct 2018 16:14:47 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Tycy9SZy; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726958AbeJKGhJ (ORCPT + 99 others); Thu, 11 Oct 2018 02:37:09 -0400 Received: from mail.kernel.org ([198.145.29.99]:35272 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725968AbeJKGhJ (ORCPT ); Thu, 11 Oct 2018 02:37:09 -0400 Received: from lerouge.suse.de (LFbn-NCY-1-241-207.w83-194.abo.wanadoo.fr [83.194.85.207]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id EC8FA2150F; Wed, 10 Oct 2018 23:12:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1539213167; bh=FaI9jWQmPY9yPuqX3eTfkx32T3zn9Fp/Ib8swvYa7kE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Tycy9SZyBoq6r2Q4uD3KRXYaPcu27gbEgHBij3Voq/sNi3negMGJhmi0S7hoxg8oh xvXdDrpp7eyExJPYYK+x0rJpUs/naWrFuLcypt81naOtJy/dDqUHoVt42VsWULxHQ0 8h+jssrre0iZ8jON6jNU3T0h/pkfiGmAqQ2C8M7A= From: Frederic Weisbecker To: LKML Cc: Frederic Weisbecker , Sebastian Andrzej Siewior , Peter Zijlstra , "David S . Miller" , Linus Torvalds , Thomas Gleixner , "Paul E . McKenney" , Ingo Molnar , Frederic Weisbecker , Mauro Carvalho Chehab Subject: [RFC PATCH 05/30] softirq: Convert softirq_pending_set() to softirq_pending_nand() Date: Thu, 11 Oct 2018 01:11:52 +0200 Message-Id: <1539213137-13953-6-git-send-email-frederic@kernel.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1539213137-13953-1-git-send-email-frederic@kernel.org> References: <1539213137-13953-1-git-send-email-frederic@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The vector pending bits will soon need to be opposed to the vector enabled bits. As such, plain reset of new pending mask is not going to be needed anymore. Instead we'll need to be able to clear specific bits. Update the relevant API to allow that. Signed-off-by: Frederic Weisbecker Cc: Ingo Molnar Cc: Sebastian Andrzej Siewior Cc: Thomas Gleixner Cc: Peter Zijlstra Cc: Linus Torvalds Cc: David S. Miller Cc: Mauro Carvalho Chehab Cc: Paul E. McKenney --- arch/s390/include/asm/hardirq.h | 2 +- include/linux/interrupt.h | 3 ++- kernel/softirq.c | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/arch/s390/include/asm/hardirq.h b/arch/s390/include/asm/hardirq.h index 3103680..84ad789 100644 --- a/arch/s390/include/asm/hardirq.h +++ b/arch/s390/include/asm/hardirq.h @@ -14,7 +14,7 @@ #include #define local_softirq_pending() (S390_lowcore.softirq_data) -#define softirq_pending_set(x) (S390_lowcore.softirq_data = (x)) +#define softirq_pending_nand(x) (S390_lowcore.softirq_data &= ~(x)) #define softirq_pending_or(x) (S390_lowcore.softirq_data |= (x)) #define __ARCH_IRQ_STAT diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index fc88f0d..a577a54 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -466,6 +466,7 @@ enum }; #define SOFTIRQ_STOP_IDLE_MASK (~(1 << RCU_SOFTIRQ)) +#define SOFTIRQ_ALL_MASK (BIT(NR_SOFTIRQS) - 1) #ifndef local_softirq_pending @@ -474,7 +475,7 @@ enum #endif #define local_softirq_pending() (__this_cpu_read(local_softirq_data_ref)) -#define softirq_pending_set(x) (__this_cpu_write(local_softirq_data_ref, (x))) +#define softirq_pending_nand(x) (__this_cpu_and(local_softirq_data_ref, ~(x))) #define softirq_pending_or(x) (__this_cpu_or(local_softirq_data_ref, (x))) #endif /* local_softirq_pending */ diff --git a/kernel/softirq.c b/kernel/softirq.c index c39af4a..288e007 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -271,7 +271,7 @@ asmlinkage __visible void __softirq_entry __do_softirq(void) restart: /* Reset the pending bitmask before enabling irqs */ - softirq_pending_set(0); + softirq_pending_nand(SOFTIRQ_ALL_MASK); local_irq_enable(); -- 2.7.4