From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759639AbbA3RVa (ORCPT ); Fri, 30 Jan 2015 12:21:30 -0500 Received: from mailout1.w1.samsung.com ([210.118.77.11]:63065 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754468AbbA3RV1 (ORCPT ); Fri, 30 Jan 2015 12:21:27 -0500 X-AuditID: cbfec7f5-b7fc86d0000066b7-cb-54cbbd02d2e6 Message-id: <54CBBD8C.8080907@samsung.com> Date: Fri, 30 Jan 2015 20:21:16 +0300 From: Andrey Ryabinin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-version: 1.0 To: Andrew Morton Cc: linux-kernel@vger.kernel.org, Dmitry Vyukov , Konstantin Serebryany , Dmitry Chernenkov , Andrey Konovalov , Yuri Gribov , Konstantin Khlebnikov , Sasha Levin , Christoph Lameter , Joonsoo Kim , Dave Hansen , Andi Kleen , x86@kernel.org, linux-mm@kvack.org, Arnd Bergmann , "open list:GENERIC INCLUDE/A..." Subject: Re: [PATCH v10 15/17] kernel: add support for .init_array.* constructors References: <1404905415-9046-1-git-send-email-a.ryabinin@samsung.com> <1422544321-24232-1-git-send-email-a.ryabinin@samsung.com> <1422544321-24232-16-git-send-email-a.ryabinin@samsung.com> <20150129151301.006abdbcf9e0dd136dd6ed2f@linux-foundation.org> In-reply-to: <20150129151301.006abdbcf9e0dd136dd6ed2f@linux-foundation.org> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAIsWRmVeSWpSXmKPExsVy+t/xy7pMe0+HGHy6x27xe+9MVos569ew WRy59p3d4u+kY+wW17+9YbT49PIBo8Xzhw/ZLSY8bGO3WNndzGax/dlbJouVnQ9YLTp2fWWx uLxrDpvFvTX/WS0WH7nNbPHu2WRmix8bHrM6CHr8/jWJ0WP+zo+MHjtn3WX3WLCp1GPxnpdM HptWdbJ5bPo0id2j6+0VJo8TM36zeDy5Mp3J4+PTWywenzfJBfBEcdmkpOZklqUW6dslcGV0 /b7CWPCWvaJvZytrA+N+ti5GTg4JAROJZ8sWskPYYhIX7q0HinNxCAksZZQ4dPI/O4TTzCQx 4+sJli5GDg5eAS2J+a9NQRpYBFQlFu1ewAJiswnoSfybtR1sqKhAhMSHVV/BbF4BQYkfk++B 1YgI6Eqser6LGWQms8B5FomD87+BJYQFgiU2tJ4Du0JIoJFJomGJFIjNKeAtcQToRZC9zEAL 7l/UAgkzC8hLbF7zlnkCo8AsJCtmIVTNQlK1gJF5FaNoamlyQXFSeq6RXnFibnFpXrpecn7u JkZILH7dwbj0mNUhRgEORiUe3huJp0OEWBPLiitzDzFKcDArifBOmQQU4k1JrKxKLcqPLyrN SS0+xMjEwSnVwNge7ZUwp6fFRuQZA1uj/oEFhv/7VOUa/KfM+Pj27uqs1asPaMxl/VIk8t5i Uq/JhJI7E+q+7jokKaR55UaDwJ+qSc1xGQV7/h4TX2Hq/udXp2mVeaZMw7ma2Asr4pZF3mG4 08gUK1LziuPYtFpxl0CF5XVuSVXeLVuOdE/mP6xatlhl5rObPUosxRmJhlrMRcWJAJ5CQ8Kj AgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/30/2015 02:13 AM, Andrew Morton wrote: > On Thu, 29 Jan 2015 18:11:59 +0300 Andrey Ryabinin wrote: > >> KASan uses constructors for initializing redzones for global >> variables. Actually KASan doesn't need priorities for constructors, >> so they were removed from GCC 5.0, but GCC 4.9.2 still generates >> constructors with priorities. > > I don't understand this changelog either. What's wrong with priorities > and what is the patch doing about it? More details, please. > Currently kernel ignore constructors with priorities (e.g. .init_array.00099). Kernel understand only constructors with default priority ( .init_array ). This patch adds support for constructors with priorities. For kernel image we put pointers to constructors between __ctors_start/__ctors_end and do_ctors() will call them. For modules - .init_array.* sections merged into .init_array section. Module code properly handles constructors in .init_array section.