From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B0BA6C433E7 for ; Fri, 9 Oct 2020 18:30:28 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 42DC822284 for ; Fri, 9 Oct 2020 18:30:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="uZWxZnht"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=intel-com.20150623.gappssmtp.com header.i=@intel-com.20150623.gappssmtp.com header.b="iLTsuWlJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 42DC822284 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=1oM9or21MUBb/nvYuuvZP+t5JOA0aSX2iPjdaZJo3Rw=; b=uZWxZnhtrUmxbuq+K88D5ufoI NhGC5pI9wJcB7KRqw0B8IAqmoONpRzVd8GsozeBaFxfsBcElTbtBRQjAMNYogRZ9sIdJ8mJ17qVY8 eM4BbLpRKBZBDsc6fBszAvVDVXMsquviKJzzwqd7FOZzfMpFZuqUJjM2YW3mP7FjUKasATh8BwzJp PH2oAyDKkYmQCwrvZhmCVaWbWmqwXPSU6wbjxHTEIuvd4srhkk3DOUAD7wFHSsYXHmT4oprFHRQkM 5Rjzkp8HkJo9UzeITMhTOegirHIo0QltJNion8SInBqRdGypizzhFqWuhvKp040a3IzEG1x88sZAU BqCHUnfVg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQx8j-0002MM-J5; Fri, 09 Oct 2020 18:29:13 +0000 Received: from mail-ed1-x541.google.com ([2a00:1450:4864:20::541]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQx8g-0002Kv-2o for linux-arm-kernel@lists.infradead.org; Fri, 09 Oct 2020 18:29:11 +0000 Received: by mail-ed1-x541.google.com with SMTP id i5so10358455edr.5 for ; Fri, 09 Oct 2020 11:29:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=oVIvf//qjy+hkVJdi59awFrM6IZJ9JvpO2cbPx+MdNs=; b=iLTsuWlJpjQ9lEPve4/i/wPKY7/WDc/EpLX4/nS4Vs7XATh36CjNusW0cAwcZzYVKB zc2lO4Dz7JRsbYqzp49bDWt7Nj2zjd+nQ3ChgcqgyusxmNzv8xBi0X9an51ub82xSMED ypIlohpfnHirbuqkE/mXCCbfP8pd5KhfDsovroGKCzUs8q45yo4Fd6/w1fPvA40p9Zsk Fhj1k3kJxsDCiab+2o7o95nm9iELSt9Olz0BwNfHJpYbcdvZw4q4VKPfH3rzH+ZSLvin 8ENlmZNYLWdWLsvLquEHYWK2U/S9AfZj3u8X6XmfQJoqlt/05+soeGykQWGSaZLnN0RZ i9tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=oVIvf//qjy+hkVJdi59awFrM6IZJ9JvpO2cbPx+MdNs=; b=gZBITekLKHyYWWsQsyaGLIR6NHMQ4zlc/0wJiZlIj3ee0BNXF8K5nWmFBs/PGH3jNx 27qKKbPiAfY84oViuUxmn9kPYpSLHUq8YQSsH+7CGoRsWzaWqYjd+G9YnVo/Xluw155y FOGZ0nGsRmkKxjsbxRgvUWPRpqn0ZiTbRv5NX1KgX1ctR8J1UjVHsd8SakKhI9oiNO3L c41h8Ee2rAnj/znurvKx0eQ/OJlBym6OUrMsHJTy656U/eN3kzTfkKlEu+IbonCSLyJy IRxOXDrN4gTC40FhsUu3xoRbnyeCUJoKQmmyLPzDr27ZjFCW7be4Okuvx1DVqIDTxvG1 ua0A== X-Gm-Message-State: AOAM532oXblbpOxORRq1EjwZPjJsSccDd8shXgDvEYXCfPALe3LrjdXF c4RpnBJMM2kONq6sRd7Uxv9oZh0NNjLnv3QAq+NKjw== X-Google-Smtp-Source: ABdhPJzWk7BhJg0T57QGadQcytTP33YarvnD8YMhqI7SBWAAOvIcMevxnSHZgp/bJXzdV8lpWps/qAzI6LdBImluO+E= X-Received: by 2002:a50:d0d0:: with SMTP id g16mr559132edf.18.1602268145655; Fri, 09 Oct 2020 11:29:05 -0700 (PDT) MIME-Version: 1.0 References: <20201009075934.3509076-1-daniel.vetter@ffwll.ch> <20201009075934.3509076-15-daniel.vetter@ffwll.ch> <20201009123109.GO5177@ziepe.ca> <20201009143209.GS5177@ziepe.ca> In-Reply-To: <20201009143209.GS5177@ziepe.ca> From: Dan Williams Date: Fri, 9 Oct 2020 11:28:54 -0700 Message-ID: Subject: Re: [PATCH v2 14/17] resource: Move devmem revoke code to resource framework To: Jason Gunthorpe X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201009_142910_140025_668A272F X-CRM114-Status: GOOD ( 21.81 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-s390 , linux-samsung-soc , Jan Kara , Kees Cook , KVM list , Greg Kroah-Hartman , Daniel Vetter , David Hildenbrand , LKML , DRI Development , "Rafael J. Wysocki" , Linux MM , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Arnd Bergmann , John Hubbard , Daniel Vetter , Andrew Morton , Linux ARM , "open list:DMA BUFFER SHARING FRAMEWORK" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, Oct 9, 2020 at 7:32 AM Jason Gunthorpe wrote: > > On Fri, Oct 09, 2020 at 04:24:45PM +0200, Daniel Vetter wrote: > > On Fri, Oct 9, 2020 at 2:31 PM Jason Gunthorpe wrote: > > > > > > On Fri, Oct 09, 2020 at 09:59:31AM +0200, Daniel Vetter wrote: > > > > > > > +struct address_space *iomem_get_mapping(void) > > > > +{ > > > > + return iomem_inode->i_mapping; > > > > > > This should pair an acquire with the release below > > > > > > > + /* > > > > + * Publish /dev/mem initialized. > > > > + * Pairs with smp_load_acquire() in revoke_iomem(). > > > > + */ > > > > + smp_store_release(&iomem_inode, inode); > > > > > > However, this seems abnormal, initcalls rarely do this kind of stuff > > > with global data.. > > > > > > The kernel crashes if this fs_initcall is raced with > > > iomem_get_mapping() due to the unconditional dereference, so I think > > > it can be safely switched to a simple assignment. > > > > Ah yes I checked this all, but forgot to correctly annotate the > > iomem_get_mapping access. For reference, see b34e7e298d7a ("/dev/mem: > > Add missing memory barriers for devmem_inode"). > > Oh yikes, so revoke_iomem can run concurrently during early boot, > tricky. It runs early because request_mem_region() can run before fs_initcall. Rather than add an unnecessary lock just arrange for the revoke to be skipped before the inode is initialized. The expectation is that any early resource reservations will block future userspace mapping attempts. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel