From patchwork Fri Oct 21 20:33:05 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 9390081 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 0E6C860231 for ; Fri, 21 Oct 2016 20:37:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F415929F03 for ; Fri, 21 Oct 2016 20:37:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E5CB729F22; Fri, 21 Oct 2016 20:37:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5D0D829F03 for ; Fri, 21 Oct 2016 20:37:34 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bxgXg-0004Mw-1p; Fri, 21 Oct 2016 20:35:52 +0000 Received: from mail-sn1nam02on0048.outbound.protection.outlook.com ([104.47.36.48] helo=NAM02-SN1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bxgWV-0002Eu-9R for linux-arm-kernel@lists.infradead.org; Fri, 21 Oct 2016 20:34:46 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-caviumnetworks-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=si7j2xlc7oQCULFKg22rgt/6MwTQT9kOyLJeV+J3K6g=; b=Qi4OEIM2btpCf0o4xwhW2Hr4fOLTOZwt+YdYtWWTb5A4Yaf3eOvqhHtkmZCg7X42SO1NaLzo3FpZ4jla8n9PfSrPYkFtulGC980FyA5JWVbq5/jRLSNrKkRZj9Kdj2c7HzLiJVYR9aj3GILFmakzi6VH4NC1domzpHtvynSTXU0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; Received: from localhost (95.143.213.121) by DM3PR07MB2249.namprd07.prod.outlook.com (10.164.33.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.659.11; Fri, 21 Oct 2016 20:34:32 +0000 From: Yury Norov To: , , , , , Subject: [PATCH 06/18] thread: move thread bits accessors to separated file Date: Fri, 21 Oct 2016 23:33:05 +0300 Message-ID: <1477081997-4770-7-git-send-email-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1477081997-4770-1-git-send-email-ynorov@caviumnetworks.com> References: <1477081997-4770-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [95.143.213.121] X-ClientProxiedBy: AMSPR04CA0038.eurprd04.prod.outlook.com (10.242.87.156) To DM3PR07MB2249.namprd07.prod.outlook.com (10.164.33.147) X-MS-Office365-Filtering-Correlation-Id: 4f436fd7-2eb0-44c5-85a2-08d3f9f1aa31 X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2249; 2:Ho37xMiAdY/Dv3WQPSmqhf2ZpjBRum3CsHnC3xdSOVHULd85V3qrjQGVZ5JK7ttB+6NgNfXy7D3PW+7wJdtkleARcvQ1EPkWLAZMsf/y9SfNX3wvMwHrB3FnLNaoOVjSNRNtwjTUC5td7a+6NsEc5Qd4yKzI4caE6GPgI1W4/tHFoNyWz5MOZriVX5+VwLGXYEd0BZ9cGDn/VrVZtUQRBA==; 3:8f3ZuL6FTXmH0lU5aJI+/jgoDGjW6LNF2riNg/9EFp87xZMiryztjjAtOR4FAg+etgRqPqHm8xdU2TOhiHD5MAauxtf4Oc7/zHU7nLVEZNorFgaVjSdzHIeKlAeEtXIBfdygrmIEt5CwjkxQSQCChQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM3PR07MB2249; X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2249; 25:vRADJ/iszaeGqZoNcVljJ+HiJ5aE2lO++JG6gDTU/qguAfNHvNdn5DxP4gEYbKgXLOlO2KXYVBYFEJCNsIJN8/Odu8J72SiG/ROa5Ik8VR4xQynm09q7fbRUewDmgy6Tx9QZ/bpUZW9BGK2+R/Zk8ae90b6LM2LOmymgZ99O3+vIWuTYXEC/E+NHoCka+v1sfTioEqdKM2YP3UyRx2xWMGoYWz3DnCjPlW2xXyx3BsPupIXBMxsCL0v9wKwwVEVQkIwSRQ4fAt0Lj642o3ostedyq2HQLERqnsUvw5bfg+P1DXvstBG/P6QwGu2ibZqvUEqr5zwbTaLY+FV7c7BIvwUJ0JD01CqodXt4xxlkQIKPEO7EaLN18+dx3DrNB/AxhtuXTDimUDzm1z4/G8btQSIw62PPx5ZQYUcWaiUrjKGOaXQHUc7GY9SFHpvTEA0A2zNvf2SGfZb7divCqn4qkWNomjWeGN/JkQulozJUWOmqsGdb/iaJI8OrBQZ1UtqB9eJgpKOXLq8S7IiE1pXAgb0ZSiASCd4MpHr0mKKLVWuAJLZh+pU89dBIXzxWL8tFTyPAmrODMcGMu6r1keLLR+K24LIEABsIun+UEdxmpoNVTmbP8p2NdkGvdz4LhbqX8/CsAGYSLQGhiOlJ7CqRlViRYduB3ZfFxluXd83GTztIGoJLUFhqY3anAqwNO+iuVDkvy1BAPHZzRvM4ENQwdIBqG8qZ6jw5Wb1LoH3Rn0NvwUB6ybQHNobOoVZ2RodnZ4wFLqBPvvXdKadNTObgMw== X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2249; 31:bPMMVMLSiXza006NSz1DgRg33gS4tr0ZMNHReQxIzTMSyp/ehLGhlSJuayjCO8Gz8DvDR6trGudbAvm8r4LkBOrtwEe8/x1qcLe5okFSkVW3RQPpVxyY7cRZQtMHi1V/UcYaAxhbyFmknpfqE9a9YTyzP1Gahlq3hGhhanBsOSFpxS0IAQGE/FCBZCYwtFvSxpfh39VeEA9vjpB21CPb4JuchCmwniImrX8cr4XsTNbZxuh945XKXtNOsTAm1Koq; 20:ulVi9bzMgOeQdpYEVEb/sjnNIqjj7+KCEdr3HIjTrx1o0k9QU+xUwwltGkB6PW4QmyrwhZrkOXhL2NHTXMqf3EjwNGSj150XMnjjDfzq4vf3/rbA+tlDBPX4xr3CsR4NKowVfbGPV/f1KYvxbZWKzskJpK7sGkJM7jKJdkGpvcT5X2NLt+SrJsEIHU5IR0HJQN6zs3tNjd3iYBScQWR81U6qbNVDXQG3gEGCOegwVm6H072JaQUEXn5HwFBkkznnpj+eqx6KassIwQbPJ0v0O7vbA8WYIugZWVkCtpLubsQ4XFaSKUYIzDJPBG8xzADKHYmpZUdRQCkZa+Q7c3dcBRyjAgQQ850/E8qLnWcQx9JnukatoWZHGEgjNsfOTr9012XNAuoQ5fR4o3rkTUiPK7sWIHOIRvrbHj9QGWml4s0DDRpahd3YFIrlGesqnztTbsi3QchkL8YHXJ2qX1qmsAdl/R9fkrVrY7optrwoZ8bIcj9zpvwd8YpWP9ZOpOg5lcFTCx8pHlJ0TkjBhcuu/KYXzr9ehVtlnS9CWeBfo6AWrHekKCY5aPpTHJ+lG7po4yJBuPufMtJH/C5iQzD2NWq6Cv2C0HTiT8WYrXh19EE= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046); SRVR:DM3PR07MB2249; BCL:0; PCL:0; RULEID:; SRVR:DM3PR07MB2249; X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2249; 4:cRsg817ilEhf4//fEBY62rJG+f7Z4kxqylkQGXWQ698lQpo1niRoqUywkZkxjrPfYaGbwr5lMXGXw2la2fi/3y2YMkTG2V0x54wM+oH9VrbK2uujmCxDDKZGpOgf+EL+snIUNl8OQRCxBkDVWDp65ON2CcvYndXEvX9r2O1A5V8h4G4X9lDPXGJkQq97YV8+WPFc6qciNFJmeNimwfpjtpn4/2+Olkxbzyl8WOetD+kLpa5qs5eaVSE0ximPnH/0QoXqSv/V5GtebGNwW6EjaIDQMtQfA1/AanMq9i9WDDMSjw5oPdmItSIf0qsFCGB1bPCSZCBou0hq9wEiwvysoXGWB1ZGdx3CLYtMA3h+YxDxuO93owcG0+r6sRwJHzr7SRfHsoGIN8MhgB/3z5gdUQ== X-Forefront-PRVS: 01026E1310 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(7916002)(189002)(199003)(50466002)(68736007)(5001770100001)(5660300001)(106356001)(101416001)(2906002)(7736002)(48376002)(305945005)(2201001)(4326007)(7846002)(47776003)(6116002)(77096005)(6666003)(2950100002)(19580405001)(19580395003)(36756003)(97736004)(586003)(229853001)(5003940100001)(66066001)(76506005)(7416002)(189998001)(42186005)(3846002)(92566002)(81156014)(105586002)(33646002)(50226002)(8676002)(76176999)(50986999)(81166006)(2101003); DIR:OUT; SFP:1101; SCL:1; SRVR:DM3PR07MB2249; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM3PR07MB2249; 23:gpnszs4/UlC2gmD9gIeFRz3FPtnTo8gQxiLCaleqo?= =?us-ascii?Q?e8Z6I8XF6UVcd9JOr8yVEK+/kPPvQOUYDIGZPLukrHoc8MCnHDApHtfaUV3h?= =?us-ascii?Q?WYaDgIu3Hw7KoxdDelku6jqh0FXwgMamDM9lh5X5gAESzArjDGLWp4iCmYWo?= =?us-ascii?Q?DRdk3MKGlj9dM1g5OoTFKd7580AnfEZBpQS/hoqvppUf77erJTh0CBWpjyaT?= =?us-ascii?Q?8L9bn1NG8O7JQkQOrkk3rYUOoZ1AJKiVW0/+5K4PJfs44jqupyMbzb2VkxYl?= =?us-ascii?Q?C/HHC8Obti3aswNphsjucnfdqYMIx40bBW3nnkx85GMusnmu9VmRGpnhItIB?= =?us-ascii?Q?qRkT+X1jg+KFWVYnjlB9g0PXDkAmOf59PBDodgYGCmLDH6m2U94FiAzoUvt5?= =?us-ascii?Q?ydlw6aBjPtusTomZlpYZ9NAzeFjnGFPz/511i2dgqBDYidihluzRlE6aX2+5?= =?us-ascii?Q?R3SnkRlE14FrXcDhH0Pqzyrk1gBX73lwWiOI3gKS3T5K3wdUnaRywquT6pqT?= =?us-ascii?Q?VrkMSlc99Qh7JrcZKfDURrWMCb328lpSSEF/3mRU7TRy4pVQKAprHcleC+bS?= =?us-ascii?Q?q2sAs0X103Xd+unYrXEspjuua6Hvj5GngmhTyv7jW7WTRaQ6UR9nwIi1cdRa?= =?us-ascii?Q?j13RbRIVj1WwWp0UkTvp2rzdEmfghr2N4Sua0QRupJ/zSh+TG8gcV8hwjV1X?= =?us-ascii?Q?PcGdZBbND/j6/ya887OuA7jT10s4OMFtA58iWGpeV3ncbq+/BXoOZv38Mm75?= =?us-ascii?Q?AUE1mwssqg3D1QGVBrWq8j8hjre3t7FqM6OclGgbnkjNF8hCC97pTMJgkRjj?= =?us-ascii?Q?SzDJVyClqlZCzAVm1dKgV3rhHkKJ5BVrO8KDLYa+Z53bZy5Z1WR3u/kjKoO0?= =?us-ascii?Q?KgoE0cEyWEU74FrELVJ8REAZDR21FK884NuXXYxhxx+C10X1FcjnHo5z6Xe2?= =?us-ascii?Q?Rk6fQMmlsOW8YZuir3bdzjlkRn86kq1iNasejLzNbHpbPNhgO0n+B1wNHxRS?= =?us-ascii?Q?sceTdMBfWCr3CWcsYYX+FLxETEpDlCW0b8HOo6ynEZ1CyHlt8cXQLFYvZCLT?= =?us-ascii?Q?eaODuPYb5Sgsfa0dB+aFeN6qWmS37jHMEd5mw5hAxeQdl60rw87XY07jsEH6?= =?us-ascii?Q?X7bpTNab18shlQwkOGC+GoMDGHswDZcnR7LiYlWs/gzSJj/rFl9Tu2A375Aj?= =?us-ascii?Q?1aYHt32/AoSE38=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2249; 6:zjc4VwHMVfWEzrNfAsCLLGmWUxGjALMYeGYKmbAM4M55uZ3d7BnJyt9wwJxAjlcz3y2CwEH6abpT2bTzCzCVLCWIwhrjQ0BK/+sGU7KiuOxas6pKDfBau5mepf7akiD4D+T+jgh82/icY+fjFjYSsYDbifp78kbpxCnpsDh4q3n6nkMQuKL1IHrlxEdrdkjVIryPYR2gNf85M5HZZpsod4J/xnx6bnUOJi6OCBc+WCdlPnwTA1HuGiywq78cfI/0Yqh+nez66/42lOJKakC1LOcWj9kuFxnUtNdwNawRaM46ycvTST9c9bi1H7L3h19z; 5:cYoyBd8i35is43eEg0hrfn3uL19nf6q/ivNBlj+fB44ziau8BPbIq97HmMJ0WueiXJ07Z/ztZdPdK8fur4Xv7d+gKK2S/dMKLZ74rM7eAjSIgNQDhL9ea22FWmYap89+MKtL+fd8e2Q2kAEMLF0+NTEkDrQYuxGwjOrM3gWqNIA=; 24:MuuuyKQtY2j3DFZHdoMceqNbkDWZf14yovdnkZs31pJucM4XGOBpAfkb57w6jbs84NImqk69wSQqcEORsl+bdAtHEaJRrAFFAXGwkY9RJ/c=; 7:xW2dYTF2F1/U9AvqA+moSKQ544aGiFhRYPYxWe+ML2fzlkjXTxUjPHqbQoXUu5GBPSFQ027kd0K7WRP1gzCj2g4bzvVbe6dIYABOQ78bSnfSDCxFZkrJgn8yJG0JTRwTTqEuTO62586j8uQ+1Uy0Nvsc7H28GeP1krb7u4LAaQz9xgF5XyWsWHCHZ9PdxNkjAHYyJxl7ql84Do76HaTAuezh0ad7yu8PBi9LKWkZUugPnoxYLl8DpP66oCjsGB36EPbNs/IcJcXLjr2Fr+lJRUNUfTpSoCfOQ1GG+R0p2jhXGEd0GIe9XvwYb8XjxNXqP1KpQrfjcRsvl8bUYxYmujMg8CSebvJtMZMg2R+EmPc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2016 20:34:32.3765 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR07MB2249 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20161021_133439_887364_9268FFE0 X-CRM114-Status: GOOD ( 10.52 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: szabolcs.nagy@arm.com, heiko.carstens@de.ibm.com, cmetcalf@ezchip.com, ynorov@caviumnetworks.com, philipp.tomsich@theobroma-systems.com, joseph@codesourcery.com, zhouchengming1@huawei.com, Prasun.Kapoor@caviumnetworks.com, agraf@suse.de, geert@linux-m68k.org, kilobyte@angband.pl, manuel.montezelo@gmail.com, pinskia@gmail.com, linyongting@huawei.com, klimov.linux@gmail.com, broonie@kernel.org, bamvor.zhangjian@huawei.com, maxim.kuvyrkov@linaro.org, Nathan_Lynch@mentor.com, schwidefsky@de.ibm.com, davem@davemloft.net, christoph.muellner@theobroma-systems.com Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP They may be accessed from low-level code, so isolating is a measure to avoid circular dependencies in header files. The exact reason for circular dependency is WARN_ON() macro added in patch [edd63a27] "set_restore_sigmask() is never called without SIGPENDING (and never should be)" Signed-off-by: Yury Norov --- include/linux/thread_bits.h | 54 +++++++++++++++++++++++++++++++++++++++++++++ include/linux/thread_info.h | 44 +----------------------------------- 2 files changed, 55 insertions(+), 43 deletions(-) create mode 100644 include/linux/thread_bits.h diff --git a/include/linux/thread_bits.h b/include/linux/thread_bits.h new file mode 100644 index 0000000..ed788b0 --- /dev/null +++ b/include/linux/thread_bits.h @@ -0,0 +1,54 @@ + +/* thread_bits.h: common low-level thread bits accessors */ + +#ifndef _LINUX_THREAD_BITS_H +#define _LINUX_THREAD_BITS_H + +#ifndef __ASSEMBLY__ + +#include +#include + +/* + * flag set/clear/test wrappers + * - pass TIF_xxxx constants to these functions + */ + +static inline void set_ti_thread_flag(struct thread_info *ti, int flag) +{ + set_bit(flag, (unsigned long *)&ti->flags); +} + +static inline void clear_ti_thread_flag(struct thread_info *ti, int flag) +{ + clear_bit(flag, (unsigned long *)&ti->flags); +} + +static inline int test_and_set_ti_thread_flag(struct thread_info *ti, int flag) +{ + return test_and_set_bit(flag, (unsigned long *)&ti->flags); +} + +static inline int test_and_clear_ti_thread_flag(struct thread_info *ti, int flag) +{ + return test_and_clear_bit(flag, (unsigned long *)&ti->flags); +} + +static inline int test_ti_thread_flag(struct thread_info *ti, int flag) +{ + return test_bit(flag, (unsigned long *)&ti->flags); +} + +#define set_thread_flag(flag) \ + set_ti_thread_flag(current_thread_info(), flag) +#define clear_thread_flag(flag) \ + clear_ti_thread_flag(current_thread_info(), flag) +#define test_and_set_thread_flag(flag) \ + test_and_set_ti_thread_flag(current_thread_info(), flag) +#define test_and_clear_thread_flag(flag) \ + test_and_clear_ti_thread_flag(current_thread_info(), flag) +#define test_thread_flag(flag) \ + test_ti_thread_flag(current_thread_info(), flag) + +#endif /* !__ASSEMBLY__ */ +#endif /* _LINUX_THREAD_BITS_H */ diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h index 45f004e..f6e3239 100644 --- a/include/linux/thread_info.h +++ b/include/linux/thread_info.h @@ -65,8 +65,7 @@ struct restart_block { extern long do_no_restart_syscall(struct restart_block *parm); -#include -#include +#include #ifdef __KERNEL__ @@ -77,47 +76,6 @@ extern long do_no_restart_syscall(struct restart_block *parm); # define THREADINFO_GFP (GFP_KERNEL_ACCOUNT | __GFP_NOTRACK) #endif -/* - * flag set/clear/test wrappers - * - pass TIF_xxxx constants to these functions - */ - -static inline void set_ti_thread_flag(struct thread_info *ti, int flag) -{ - set_bit(flag, (unsigned long *)&ti->flags); -} - -static inline void clear_ti_thread_flag(struct thread_info *ti, int flag) -{ - clear_bit(flag, (unsigned long *)&ti->flags); -} - -static inline int test_and_set_ti_thread_flag(struct thread_info *ti, int flag) -{ - return test_and_set_bit(flag, (unsigned long *)&ti->flags); -} - -static inline int test_and_clear_ti_thread_flag(struct thread_info *ti, int flag) -{ - return test_and_clear_bit(flag, (unsigned long *)&ti->flags); -} - -static inline int test_ti_thread_flag(struct thread_info *ti, int flag) -{ - return test_bit(flag, (unsigned long *)&ti->flags); -} - -#define set_thread_flag(flag) \ - set_ti_thread_flag(current_thread_info(), flag) -#define clear_thread_flag(flag) \ - clear_ti_thread_flag(current_thread_info(), flag) -#define test_and_set_thread_flag(flag) \ - test_and_set_ti_thread_flag(current_thread_info(), flag) -#define test_and_clear_thread_flag(flag) \ - test_and_clear_ti_thread_flag(current_thread_info(), flag) -#define test_thread_flag(flag) \ - test_ti_thread_flag(current_thread_info(), flag) - #define tif_need_resched() test_thread_flag(TIF_NEED_RESCHED) #ifndef CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES