Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751892AbbKJVhM (ORCPT ); Tue, 10 Nov 2015 16:37:12 -0500 Received: from mail-oi0-f44.google.com ([209.85.218.44]:34678 "EHLO mail-oi0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751406AbbKJVhL (ORCPT ); Tue, 10 Nov 2015 16:37:11 -0500 MIME-Version: 1.0 In-Reply-To: References: Date: Tue, 10 Nov 2015 22:37:10 +0100 Message-ID: Subject: Re: init: How did init/do_mounts_rd.c overcome memory protection ? From: Richard Weinberger To: Badhri Jagan Sridharan Cc: LKML , David Howells , Andrew Morton Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1017 Lines: 26 On Tue, Nov 10, 2015 at 7:38 PM, Badhri Jagan Sridharan wrote: > Mighty upstream, > > I see that do_mounts_rd.c seems to make calls to sys_read and > sys_lseek functions. As these are syscall functions, they expects > some of the arguments to be from userspace. > > I was going through the article that Greg KH wrote a while back: > http://www.linuxjournal.com/article/8110?page=0,1 . I don't see any > references to set_fs/get_fs under init/*. Does the memory protection > get enabled only in the later stage ? Or does do_mounts_rd.c accomplish > this in some other way ? The stuff in init/ is PID 1 and it inherits addr_limit from the initial thread (PID 0 or swapper called). INIT_THREAD_INFO() sets addr_limit to KERNEL_DS. -- Thanks, //richard -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/