Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1762208AbcLQBBi (ORCPT ); Fri, 16 Dec 2016 20:01:38 -0500 Received: from mail-pg0-f52.google.com ([74.125.83.52]:33454 "EHLO mail-pg0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756447AbcLQBB2 (ORCPT ); Fri, 16 Dec 2016 20:01:28 -0500 Date: Fri, 16 Dec 2016 17:01:27 -0800 From: Kees Cook To: linux-kernel@vger.kernel.org Cc: Cliff Whickman , Robin Holt Subject: [PATCH] sgi-xp: use designated initializers Message-ID: <20161217010127.GA140378@beast> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3180 Lines: 99 Prepare to mark sensitive kernel structures for randomization by making sure they're using designated initializers. These were identified during allyesconfig builds of x86, arm, and arm64, with most initializer fixes extracted from grsecurity. Signed-off-by: Kees Cook --- drivers/misc/sgi-xp/xp_main.c | 59 ++++++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/drivers/misc/sgi-xp/xp_main.c b/drivers/misc/sgi-xp/xp_main.c index 01be66d02ca8..bb47f9d9b68a 100644 --- a/drivers/misc/sgi-xp/xp_main.c +++ b/drivers/misc/sgi-xp/xp_main.c @@ -71,20 +71,44 @@ EXPORT_SYMBOL_GPL(xpc_registrations); /* * Initialize the XPC interface to indicate that XPC isn't loaded. */ -static enum xp_retval -xpc_notloaded(void) +static void xpc_notloaded_connect(int ch_number) +{ } + +static void xpc_notloaded_disconnect(int ch_number) +{ } + +static enum xp_retval xpc_notloaded_send(short partid, int ch_number, + u32 flags, void *payload, + u16 payload_size) +{ + return xpNotLoaded; +} + +static enum xp_retval xpc_notloaded_send_notify(short partid, int ch_number, + u32 flags, void *payload, + u16 payload_size, + xpc_notify_func func, + void *key) +{ + return xpNotLoaded; +} + +static void xpc_notloaded_received(short partid, int ch_number, void *payload) +{ } + +static enum xp_retval xpc_notloaded_partid_to_nasids(short partid, + void *nasid_mask) { return xpNotLoaded; } struct xpc_interface xpc_interface = { - (void (*)(int))xpc_notloaded, - (void (*)(int))xpc_notloaded, - (enum xp_retval(*)(short, int, u32, void *, u16))xpc_notloaded, - (enum xp_retval(*)(short, int, u32, void *, u16, xpc_notify_func, - void *))xpc_notloaded, - (void (*)(short, int, void *))xpc_notloaded, - (enum xp_retval(*)(short, void *))xpc_notloaded + .connect = xpc_notloaded_connect, + .disconnect = xpc_notloaded_disconnect, + .send = xpc_notloaded_send, + .send_notify = xpc_notloaded_send_notify, + .received = xpc_notloaded_received, + .partid_to_nasids = xpc_notloaded_partid_to_nasids }; EXPORT_SYMBOL_GPL(xpc_interface); @@ -115,17 +139,12 @@ EXPORT_SYMBOL_GPL(xpc_set_interface); void xpc_clear_interface(void) { - xpc_interface.connect = (void (*)(int))xpc_notloaded; - xpc_interface.disconnect = (void (*)(int))xpc_notloaded; - xpc_interface.send = (enum xp_retval(*)(short, int, u32, void *, u16)) - xpc_notloaded; - xpc_interface.send_notify = (enum xp_retval(*)(short, int, u32, void *, - u16, xpc_notify_func, - void *))xpc_notloaded; - xpc_interface.received = (void (*)(short, int, void *)) - xpc_notloaded; - xpc_interface.partid_to_nasids = (enum xp_retval(*)(short, void *)) - xpc_notloaded; + xpc_interface.connect = xpc_notloaded_connect; + xpc_interface.disconnect = xpc_notloaded_disconnect; + xpc_interface.send = xpc_notloaded_send; + xpc_interface.send_notify = xpc_notloaded_send_notify; + xpc_interface.received = xpc_notloaded_received; + xpc_interface.partid_to_nasids = xpc_notloaded_partid_to_nasids; } EXPORT_SYMBOL_GPL(xpc_clear_interface); -- 2.7.4 -- Kees Cook Nexus Security