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=-9.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 7C4D2C4363A for ; Fri, 9 Oct 2020 10:01:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D44DD22275 for ; Fri, 9 Oct 2020 10:01:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="UzMeV+rw" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387494AbgJIKBy (ORCPT ); Fri, 9 Oct 2020 06:01:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40116 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387436AbgJIKBw (ORCPT ); Fri, 9 Oct 2020 06:01:52 -0400 Received: from mail-oo1-xc44.google.com (mail-oo1-xc44.google.com [IPv6:2607:f8b0:4864:20::c44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8CC25C0613D6 for ; Fri, 9 Oct 2020 03:01:52 -0700 (PDT) Received: by mail-oo1-xc44.google.com with SMTP id o20so2240212ook.1 for ; Fri, 09 Oct 2020 03:01:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=ftHJzNt4bERnNP+SIXIGo56JCvpL8TcP22nYSQKOV5k=; b=UzMeV+rwKkunQlHgHNSlVY990btw6GRORlFmsAYBx1gPA8SEXpEqpXIa8uGJFLzTQw b8BMC7q8QXr1fDrrdZMhmylgPVoMLs2HnzRpCUYwl2q2F4u0Dr/m3fS3LlJ3o6+Ejdce Wcj4zRQKhHrsGCyXRc5pfd4UfW1pvcEdIaWfc= 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:content-transfer-encoding; bh=ftHJzNt4bERnNP+SIXIGo56JCvpL8TcP22nYSQKOV5k=; b=kkSbDjhCSS5KHEtFO9z33NqJYgDR3DD6ZPKOAsBKuELACJgRPg70AtcBJ4Od/5iP34 yr+MvYrElkkM24MGG0IsNHHR1CV9bhB9EHcS7x20+8nVdDEu1PF5klb5uAWUqFhPpdFN kLwwgAi4XHtznpi3+SSl9VtD77tzhQBJAzET+Cj2IX/nw+8iRAW6oJI0JamTNKZNInOg XV7/o5yJ95q/oa7kia/8vrQN2VmQhQfBm59eRIQDmDcqqZDvGnjZziMeIQxfNP5n5E8g Uetv8yYUUMNaR4j0N/ALqC33L+ZTGVFnY7gBHf3OskTyC2elaTKKYVCemIh4AsHffxmA G1Vw== X-Gm-Message-State: AOAM530f5GnBYZA5w8eZecJbkTwdY5qtcffUASzlg+v27+AJxXQwh5Vy UhqA9q0WzOw9uFo2iIc22mYrNPSYnaa/3buvZlwmqg== X-Google-Smtp-Source: ABdhPJyck/sz2r8nAE1vOQ+mmU8ZRo9mJI1evvAL5G2Nq41icTgyJhGztZHNyIlc3HZk+r5jBb8vWdtCG7CV4AmWN/U= X-Received: by 2002:a4a:e592:: with SMTP id o18mr8337874oov.28.1602237711175; Fri, 09 Oct 2020 03:01:51 -0700 (PDT) MIME-Version: 1.0 References: <20201009075934.3509076-1-daniel.vetter@ffwll.ch> <20201009075934.3509076-18-daniel.vetter@ffwll.ch> <20201009094750.GQ6112@intel.com> In-Reply-To: <20201009094750.GQ6112@intel.com> From: Daniel Vetter Date: Fri, 9 Oct 2020 12:01:39 +0200 Message-ID: Subject: Re: [PATCH v2 17/17] drm/i915: Properly request PCI BARs To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: DRI Development , LKML , linux-s390 , linux-samsung-soc , Jan Kara , Kees Cook , KVM list , Jason Gunthorpe , Linux PCI , Linux MM , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , John Hubbard , Bjorn Helgaas , Daniel Vetter , Dan Williams , Andrew Morton , Linux ARM , "open list:DMA BUFFER SHARING FRAMEWORK" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Oct 9, 2020 at 11:47 AM Ville Syrj=C3=A4l=C3=A4 wrote: > > On Fri, Oct 09, 2020 at 09:59:34AM +0200, Daniel Vetter wrote: > > When trying to test my CONFIG_IO_STRICT_DEVMEM changes I realized they > > do nothing for i915. Because i915 doesn't request any regions, like > > pretty much all drm pci drivers. I guess this is some very old > > remnants from the userspace modesetting days, when we wanted to > > co-exist with the fbdev driver. Which usually requested these > > resources. > > > > But makes me wonder why the pci subsystem doesn't just request > > resource automatically when we map a bar and a pci driver is bound? > > > > Knowledge about which pci bars we need kludged together from > > intel_uncore.c and intel_gtt.c from i915 and intel-gtt.c over in the > > fake agp driver. > > > > Signed-off-by: Daniel Vetter > > Cc: Jason Gunthorpe > > Cc: Kees Cook > > Cc: Dan Williams > > Cc: Andrew Morton > > Cc: John Hubbard > > Cc: J=C3=A9r=C3=B4me Glisse > > Cc: Jan Kara > > Cc: Dan Williams > > Cc: linux-mm@kvack.org > > Cc: linux-arm-kernel@lists.infradead.org > > Cc: linux-samsung-soc@vger.kernel.org > > Cc: linux-media@vger.kernel.org > > Cc: Bjorn Helgaas > > Cc: linux-pci@vger.kernel.org > > --- > > drivers/gpu/drm/i915/intel_uncore.c | 25 +++++++++++++++++++++++-- > > 1 file changed, 23 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915= /intel_uncore.c > > index 54e201fdeba4..ce39049d8919 100644 > > --- a/drivers/gpu/drm/i915/intel_uncore.c > > +++ b/drivers/gpu/drm/i915/intel_uncore.c > > @@ -1692,10 +1692,13 @@ static int uncore_mmio_setup(struct intel_uncor= e *uncore) > > struct pci_dev *pdev =3D i915->drm.pdev; > > int mmio_bar; > > int mmio_size; > > + int bar_selection; > > Signed bitmasks always make me uneasy. But looks like > that's what it is in the pci api. So meh. Yeah it's surprising. > > + int ret; > > > > mmio_bar =3D IS_GEN(i915, 2) ? 1 : 0; > > + bar_selection =3D BIT (2) | BIT(mmio_bar); > ^ > spurious space > > That's also not correct for gen2 I think. > > gen2: > 0 =3D GMADR > 1 =3D MMADR > 2 =3D IOBAR > > gen3: > 0 =3D MMADR > 1 =3D IOBAR > 2 =3D GMADR > 3 =3D GTTADR > > gen4+: > 0+1 =3D GTTMMADR > 2+3 =3D GMADR > 4 =3D IOBAR > > Maybe we should just have an explicit list of bars like that in a > comment? > > I'd also suggest sucking this bitmask calculation into a small helper > so you can reuse it for the release. tbh I just hacked this up for testing. Given how almost no other drm driver does this, I'm wondering whether we should or not. Also the only reason why I didn't just use the pci_request_regions helper is to avoid the vga ioport range, since that's managed by vgaarbiter. So I think if we go for this for real we should: - register the vga ioport range in the vgaarbiter - have a pci_request_iomem_regions helper that grabs all mem bars - roll that out to all drm pci drivers Or something like that. The other complication is when we resize the iobar. So not really sure what to do here. -Daniel > > > /* > > - * Before gen4, the registers and the GTT are behind different BA= Rs. > > + * On gen3 the registers and the GTT are behind different BARs. > > * However, from gen4 onwards, the registers and the GTT are shar= ed > > * in the same BAR, so we want to restrict this ioremap from > > * clobbering the GTT which we want ioremap_wc instead. Fortunate= ly, > > @@ -1703,6 +1706,8 @@ static int uncore_mmio_setup(struct intel_uncore = *uncore) > > * generations up to Ironlake. > > * For dgfx chips register range is expanded to 4MB. > > */ > > + if (INTEL_GEN(i915) =3D=3D 3) > > + bar_selection |=3D BIT(3); > > if (INTEL_GEN(i915) < 5) > > mmio_size =3D 512 * 1024; > > else if (IS_DGFX(i915)) > > @@ -1710,8 +1715,15 @@ static int uncore_mmio_setup(struct intel_uncore= *uncore) > > else > > mmio_size =3D 2 * 1024 * 1024; > > > > + ret =3D pci_request_selected_regions(pdev, bar_selection, "i915")= ; > > + if (ret < 0) { > > + drm_err(&i915->drm, "failed to request pci bars\n"); > > + return ret; > > + } > > + > > uncore->regs =3D pci_iomap(pdev, mmio_bar, mmio_size); > > if (uncore->regs =3D=3D NULL) { > > + pci_release_selected_regions(pdev, bar_selection); > > drm_err(&i915->drm, "failed to map registers\n"); > > return -EIO; > > } > > @@ -1721,9 +1733,18 @@ static int uncore_mmio_setup(struct intel_uncore= *uncore) > > > > static void uncore_mmio_cleanup(struct intel_uncore *uncore) > > { > > - struct pci_dev *pdev =3D uncore->i915->drm.pdev; > > + struct drm_i915_private *i915 =3D uncore->i915; > > + struct pci_dev *pdev =3D i915->drm.pdev; > > + int mmio_bar; > > + int bar_selection; > > + > > + mmio_bar =3D IS_GEN(i915, 2) ? 1 : 0; > > + bar_selection =3D BIT (2) | BIT(mmio_bar); > > + if (INTEL_GEN(i915) =3D=3D 3) > > + bar_selection |=3D BIT(3); > > > > pci_iounmap(pdev, uncore->regs); > > + pci_release_selected_regions(pdev, bar_selection); > > } > > > > void intel_uncore_init_early(struct intel_uncore *uncore, > > -- > > 2.28.0 > > > > _______________________________________________ > > dri-devel mailing list > > dri-devel@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- > Ville Syrj=C3=A4l=C3=A4 > Intel --=20 Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch 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=-9.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 D4243C433DF for ; Fri, 9 Oct 2020 10:03:20 +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 401D72226B for ; Fri, 9 Oct 2020 10:03:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ACrn5cfK"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="UzMeV+rw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 401D72226B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch 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=VrO6Ol+mTTvQn8uCtFOVbdVwIy+nkz8f8cv5t4Puo34=; b=ACrn5cfKdTIkNZ6hRLufaHGsl xKErX6SX+MudA699QaYdtiECd1ocoyjR+UAC95dpl1xzKVlS7q6rIrHdR7NG0gORvAJl3JN4HR8uo oVOBANy1rKtj6KVxrrC/HUoQdgBgzibY2W4hbznpxZLwF3taxy2co2sTb05WCyZSE3l20WsIAX+YP MzlOzzWKsWpSpCAxe+Ds4v0KGxVmqwwEQCSGBvpgcdKq86F/bfHr8oHZpfZzv/yAZPEKHUYJTJXeQ 0W9WZ3hlCxaQ5Cu+XwX8P1fWEtc1sx7dWHSM4fw/IRvXQLhq2/0E0sD8Z1T2ZU1vuoKsegA39wH7A n3Tu8T9Tw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQpDo-0006lJ-KP; Fri, 09 Oct 2020 10:01:56 +0000 Received: from mail-oo1-xc44.google.com ([2607:f8b0:4864:20::c44]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQpDl-0006k0-Ma for linux-arm-kernel@lists.infradead.org; Fri, 09 Oct 2020 10:01:54 +0000 Received: by mail-oo1-xc44.google.com with SMTP id c4so2232228oou.6 for ; Fri, 09 Oct 2020 03:01:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=ftHJzNt4bERnNP+SIXIGo56JCvpL8TcP22nYSQKOV5k=; b=UzMeV+rwKkunQlHgHNSlVY990btw6GRORlFmsAYBx1gPA8SEXpEqpXIa8uGJFLzTQw b8BMC7q8QXr1fDrrdZMhmylgPVoMLs2HnzRpCUYwl2q2F4u0Dr/m3fS3LlJ3o6+Ejdce Wcj4zRQKhHrsGCyXRc5pfd4UfW1pvcEdIaWfc= 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:content-transfer-encoding; bh=ftHJzNt4bERnNP+SIXIGo56JCvpL8TcP22nYSQKOV5k=; b=WR0nt8sKkc1/LKE1aD50AiHguwOv1ELfkaXk0uvlky3aPKronVlMPeZbfSPOaCEx0C mspsSyW+vz981K9Uz9ptirwmAeGa/yFoPQB6lzBb+EFlXxpo80Pt4OvOZkI5E8xkx8ML NHNWlG/PfgXXR4/ozPyub+pFDdwIjIcBUAAS3cmNz5F2gGiFaHEQ7HxK8wXPrR5YPTkA 8e/B3/94WxNzz3eEl1VWujExsLEUNU7RAdgR/Ym9TbgbCOxYM1KMPeeliM0/YJuZnizI a7b0GzAAMUbo11cLu48qIFl/+Q+JfDktgFOxkC+oZQJGbJ96WBH59i4ZloiOpXy4N9OU jeJw== X-Gm-Message-State: AOAM532HFXPG8DUYu93vqDookNvbm2mDx0bVtjOGtfQT+a31J/WyNqOP H4Wc4F9EWw9rWlewlUOKDgrkKZNiPT/bCzvBbUtrjA== X-Google-Smtp-Source: ABdhPJyck/sz2r8nAE1vOQ+mmU8ZRo9mJI1evvAL5G2Nq41icTgyJhGztZHNyIlc3HZk+r5jBb8vWdtCG7CV4AmWN/U= X-Received: by 2002:a4a:e592:: with SMTP id o18mr8337874oov.28.1602237711175; Fri, 09 Oct 2020 03:01:51 -0700 (PDT) MIME-Version: 1.0 References: <20201009075934.3509076-1-daniel.vetter@ffwll.ch> <20201009075934.3509076-18-daniel.vetter@ffwll.ch> <20201009094750.GQ6112@intel.com> In-Reply-To: <20201009094750.GQ6112@intel.com> From: Daniel Vetter Date: Fri, 9 Oct 2020 12:01:39 +0200 Message-ID: Subject: Re: [PATCH v2 17/17] drm/i915: Properly request PCI BARs To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201009_060153_755235_95615E75 X-CRM114-Status: GOOD ( 37.43 ) 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 , Linux MM , Linux PCI , LKML , DRI Development , Jason Gunthorpe , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , John Hubbard , Bjorn Helgaas , Daniel Vetter , Dan Williams , Andrew Morton , Linux ARM , "open list:DMA BUFFER SHARING FRAMEWORK" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBPY3QgOSwgMjAyMCBhdCAxMTo0NyBBTSBWaWxsZSBTeXJqw6Rsw6QKPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPiB3cm90ZToKPgo+IE9uIEZyaSwgT2N0IDA5LCAyMDIwIGF0 IDA5OjU5OjM0QU0gKzAyMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiBXaGVuIHRyeWluZyB0 byB0ZXN0IG15IENPTkZJR19JT19TVFJJQ1RfREVWTUVNIGNoYW5nZXMgSSByZWFsaXplZCB0aGV5 Cj4gPiBkbyBub3RoaW5nIGZvciBpOTE1LiBCZWNhdXNlIGk5MTUgZG9lc24ndCByZXF1ZXN0IGFu eSByZWdpb25zLCBsaWtlCj4gPiBwcmV0dHkgbXVjaCBhbGwgZHJtIHBjaSBkcml2ZXJzLiBJIGd1 ZXNzIHRoaXMgaXMgc29tZSB2ZXJ5IG9sZAo+ID4gcmVtbmFudHMgZnJvbSB0aGUgdXNlcnNwYWNl IG1vZGVzZXR0aW5nIGRheXMsIHdoZW4gd2Ugd2FudGVkIHRvCj4gPiBjby1leGlzdCB3aXRoIHRo ZSBmYmRldiBkcml2ZXIuIFdoaWNoIHVzdWFsbHkgcmVxdWVzdGVkIHRoZXNlCj4gPiByZXNvdXJj ZXMuCj4gPgo+ID4gQnV0IG1ha2VzIG1lIHdvbmRlciB3aHkgdGhlIHBjaSBzdWJzeXN0ZW0gZG9l c24ndCBqdXN0IHJlcXVlc3QKPiA+IHJlc291cmNlIGF1dG9tYXRpY2FsbHkgd2hlbiB3ZSBtYXAg YSBiYXIgYW5kIGEgcGNpIGRyaXZlciBpcyBib3VuZD8KPiA+Cj4gPiBLbm93bGVkZ2UgYWJvdXQg d2hpY2ggcGNpIGJhcnMgd2UgbmVlZCBrbHVkZ2VkIHRvZ2V0aGVyIGZyb20KPiA+IGludGVsX3Vu Y29yZS5jIGFuZCBpbnRlbF9ndHQuYyBmcm9tIGk5MTUgYW5kIGludGVsLWd0dC5jIG92ZXIgaW4g dGhlCj4gPiBmYWtlIGFncCBkcml2ZXIuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZl dHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4gPiBDYzogSmFzb24gR3VudGhvcnBlIDxq Z2dAemllcGUuY2E+Cj4gPiBDYzogS2VlcyBDb29rIDxrZWVzY29va0BjaHJvbWl1bS5vcmc+Cj4g PiBDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+Cj4gPiBDYzogQW5k cmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KPiA+IENjOiBKb2huIEh1YmJh cmQgPGpodWJiYXJkQG52aWRpYS5jb20+Cj4gPiBDYzogSsOpcsO0bWUgR2xpc3NlIDxqZ2xpc3Nl QHJlZGhhdC5jb20+Cj4gPiBDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jej4KPiA+IENjOiBEYW4g V2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KPiA+IENjOiBsaW51eC1tbUBrdmFj ay5vcmcKPiA+IENjOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiA+IENj OiBsaW51eC1zYW1zdW5nLXNvY0B2Z2VyLmtlcm5lbC5vcmcKPiA+IENjOiBsaW51eC1tZWRpYUB2 Z2VyLmtlcm5lbC5vcmcKPiA+IENjOiBCam9ybiBIZWxnYWFzIDxiaGVsZ2Fhc0Bnb29nbGUuY29t Pgo+ID4gQ2M6IGxpbnV4LXBjaUB2Z2VyLmtlcm5lbC5vcmcKPiA+IC0tLQo+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKyst LQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gPiBpbmRleCA1NGUyMDFmZGVi YTQuLmNlMzkwNDlkODkxOSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3VuY29yZS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUu Ywo+ID4gQEAgLTE2OTIsMTAgKzE2OTIsMTMgQEAgc3RhdGljIGludCB1bmNvcmVfbW1pb19zZXR1 cChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCj4gPiAgICAgICBzdHJ1Y3QgcGNpX2RldiAq cGRldiA9IGk5MTUtPmRybS5wZGV2Owo+ID4gICAgICAgaW50IG1taW9fYmFyOwo+ID4gICAgICAg aW50IG1taW9fc2l6ZTsKPiA+ICsgICAgIGludCBiYXJfc2VsZWN0aW9uOwo+Cj4gU2lnbmVkIGJp dG1hc2tzIGFsd2F5cyBtYWtlIG1lIHVuZWFzeS4gQnV0IGxvb2tzIGxpa2UKPiB0aGF0J3Mgd2hh dCBpdCBpcyBpbiB0aGUgcGNpIGFwaS4gU28gbWVoLgoKWWVhaCBpdCdzIHN1cnByaXNpbmcuCgo+ ID4gKyAgICAgaW50IHJldDsKPiA+Cj4gPiAgICAgICBtbWlvX2JhciA9IElTX0dFTihpOTE1LCAy KSA/IDEgOiAwOwo+ID4gKyAgICAgYmFyX3NlbGVjdGlvbiA9IEJJVCAoMikgfCBCSVQobW1pb19i YXIpOwo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KPiBzcHVyaW91cyBzcGFjZQo+Cj4g VGhhdCdzIGFsc28gbm90IGNvcnJlY3QgZm9yIGdlbjIgSSB0aGluay4KPgo+IGdlbjI6Cj4gMCA9 IEdNQURSCj4gMSA9IE1NQURSCj4gMiA9IElPQkFSCj4KPiBnZW4zOgo+IDAgPSBNTUFEUgo+IDEg PSBJT0JBUgo+IDIgPSBHTUFEUgo+IDMgPSBHVFRBRFIKPgo+IGdlbjQrOgo+IDArMSA9IEdUVE1N QURSCj4gMiszID0gR01BRFIKPiA0ID0gSU9CQVIKPgo+IE1heWJlIHdlIHNob3VsZCBqdXN0IGhh dmUgYW4gZXhwbGljaXQgbGlzdCBvZiBiYXJzIGxpa2UgdGhhdCBpbiBhCj4gY29tbWVudD8KPgo+ IEknZCBhbHNvIHN1Z2dlc3Qgc3Vja2luZyB0aGlzIGJpdG1hc2sgY2FsY3VsYXRpb24gaW50byBh IHNtYWxsIGhlbHBlcgo+IHNvIHlvdSBjYW4gcmV1c2UgaXQgZm9yIHRoZSByZWxlYXNlLgoKdGJo IEkganVzdCBoYWNrZWQgdGhpcyB1cCBmb3IgdGVzdGluZy4gR2l2ZW4gaG93IGFsbW9zdCBubyBv dGhlciBkcm0KZHJpdmVyIGRvZXMgdGhpcywgSSdtIHdvbmRlcmluZyB3aGV0aGVyIHdlIHNob3Vs ZCBvciBub3QuCgpBbHNvIHRoZSBvbmx5IHJlYXNvbiB3aHkgSSBkaWRuJ3QganVzdCB1c2UgdGhl IHBjaV9yZXF1ZXN0X3JlZ2lvbnMKaGVscGVyIGlzIHRvIGF2b2lkIHRoZSB2Z2EgaW9wb3J0IHJh bmdlLCBzaW5jZSB0aGF0J3MgbWFuYWdlZCBieQp2Z2FhcmJpdGVyLgoKU28gSSB0aGluayBpZiB3 ZSBnbyBmb3IgdGhpcyBmb3IgcmVhbCB3ZSBzaG91bGQ6Ci0gcmVnaXN0ZXIgdGhlIHZnYSBpb3Bv cnQgcmFuZ2UgaW4gdGhlIHZnYWFyYml0ZXIKLSBoYXZlIGEgcGNpX3JlcXVlc3RfaW9tZW1fcmVn aW9ucyBoZWxwZXIgdGhhdCBncmFicyBhbGwgbWVtIGJhcnMKLSByb2xsIHRoYXQgb3V0IHRvIGFs bCBkcm0gcGNpIGRyaXZlcnMKCk9yIHNvbWV0aGluZyBsaWtlIHRoYXQuIFRoZSBvdGhlciBjb21w bGljYXRpb24gaXMgd2hlbiB3ZSByZXNpemUgdGhlCmlvYmFyLiBTbyBub3QgcmVhbGx5IHN1cmUg d2hhdCB0byBkbyBoZXJlLgotRGFuaWVsCgo+Cj4gPiAgICAgICAvKgo+ID4gLSAgICAgICogQmVm b3JlIGdlbjQsIHRoZSByZWdpc3RlcnMgYW5kIHRoZSBHVFQgYXJlIGJlaGluZCBkaWZmZXJlbnQg QkFScy4KPiA+ICsgICAgICAqIE9uIGdlbjMgdGhlIHJlZ2lzdGVycyBhbmQgdGhlIEdUVCBhcmUg YmVoaW5kIGRpZmZlcmVudCBCQVJzLgo+ID4gICAgICAgICogSG93ZXZlciwgZnJvbSBnZW40IG9u d2FyZHMsIHRoZSByZWdpc3RlcnMgYW5kIHRoZSBHVFQgYXJlIHNoYXJlZAo+ID4gICAgICAgICog aW4gdGhlIHNhbWUgQkFSLCBzbyB3ZSB3YW50IHRvIHJlc3RyaWN0IHRoaXMgaW9yZW1hcCBmcm9t Cj4gPiAgICAgICAgKiBjbG9iYmVyaW5nIHRoZSBHVFQgd2hpY2ggd2Ugd2FudCBpb3JlbWFwX3dj IGluc3RlYWQuIEZvcnR1bmF0ZWx5LAo+ID4gQEAgLTE3MDMsNiArMTcwNiw4IEBAIHN0YXRpYyBp bnQgdW5jb3JlX21taW9fc2V0dXAoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ID4gICAg ICAgICogZ2VuZXJhdGlvbnMgdXAgdG8gSXJvbmxha2UuCj4gPiAgICAgICAgKiBGb3IgZGdmeCBj aGlwcyByZWdpc3RlciByYW5nZSBpcyBleHBhbmRlZCB0byA0TUIuCj4gPiAgICAgICAgKi8KPiA+ ICsgICAgIGlmIChJTlRFTF9HRU4oaTkxNSkgPT0gMykKPiA+ICsgICAgICAgICAgICAgYmFyX3Nl bGVjdGlvbiB8PSBCSVQoMyk7Cj4gPiAgICAgICBpZiAoSU5URUxfR0VOKGk5MTUpIDwgNSkKPiA+ ICAgICAgICAgICAgICAgbW1pb19zaXplID0gNTEyICogMTAyNDsKPiA+ICAgICAgIGVsc2UgaWYg KElTX0RHRlgoaTkxNSkpCj4gPiBAQCAtMTcxMCw4ICsxNzE1LDE1IEBAIHN0YXRpYyBpbnQgdW5j b3JlX21taW9fc2V0dXAoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ID4gICAgICAgZWxz ZQo+ID4gICAgICAgICAgICAgICBtbWlvX3NpemUgPSAyICogMTAyNCAqIDEwMjQ7Cj4gPgo+ID4g KyAgICAgcmV0ID0gcGNpX3JlcXVlc3Rfc2VsZWN0ZWRfcmVnaW9ucyhwZGV2LCBiYXJfc2VsZWN0 aW9uLCAiaTkxNSIpOwo+ID4gKyAgICAgaWYgKHJldCA8IDApIHsKPiA+ICsgICAgICAgICAgICAg ZHJtX2VycigmaTkxNS0+ZHJtLCAiZmFpbGVkIHRvIHJlcXVlc3QgcGNpIGJhcnNcbiIpOwo+ID4g KyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gKyAgICAgfQo+ID4gKwo+ID4gICAgICAgdW5j b3JlLT5yZWdzID0gcGNpX2lvbWFwKHBkZXYsIG1taW9fYmFyLCBtbWlvX3NpemUpOwo+ID4gICAg ICAgaWYgKHVuY29yZS0+cmVncyA9PSBOVUxMKSB7Cj4gPiArICAgICAgICAgICAgIHBjaV9yZWxl YXNlX3NlbGVjdGVkX3JlZ2lvbnMocGRldiwgYmFyX3NlbGVjdGlvbik7Cj4gPiAgICAgICAgICAg ICAgIGRybV9lcnIoJmk5MTUtPmRybSwgImZhaWxlZCB0byBtYXAgcmVnaXN0ZXJzXG4iKTsKPiA+ ICAgICAgICAgICAgICAgcmV0dXJuIC1FSU87Cj4gPiAgICAgICB9Cj4gPiBAQCAtMTcyMSw5ICsx NzMzLDE4IEBAIHN0YXRpYyBpbnQgdW5jb3JlX21taW9fc2V0dXAoc3RydWN0IGludGVsX3VuY29y ZSAqdW5jb3JlKQo+ID4KPiA+ICBzdGF0aWMgdm9pZCB1bmNvcmVfbW1pb19jbGVhbnVwKHN0cnVj dCBpbnRlbF91bmNvcmUgKnVuY29yZSkKPiA+ICB7Cj4gPiAtICAgICBzdHJ1Y3QgcGNpX2RldiAq cGRldiA9IHVuY29yZS0+aTkxNS0+ZHJtLnBkZXY7Cj4gPiArICAgICBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSA9IHVuY29yZS0+aTkxNTsKPiA+ICsgICAgIHN0cnVjdCBwY2lfZGV2ICpw ZGV2ID0gaTkxNS0+ZHJtLnBkZXY7Cj4gPiArICAgICBpbnQgbW1pb19iYXI7Cj4gPiArICAgICBp bnQgYmFyX3NlbGVjdGlvbjsKPiA+ICsKPiA+ICsgICAgIG1taW9fYmFyID0gSVNfR0VOKGk5MTUs IDIpID8gMSA6IDA7Cj4gPiArICAgICBiYXJfc2VsZWN0aW9uID0gQklUICgyKSB8IEJJVChtbWlv X2Jhcik7Cj4gPiArICAgICBpZiAoSU5URUxfR0VOKGk5MTUpID09IDMpCj4gPiArICAgICAgICAg ICAgIGJhcl9zZWxlY3Rpb24gfD0gQklUKDMpOwo+ID4KPiA+ICAgICAgIHBjaV9pb3VubWFwKHBk ZXYsIHVuY29yZS0+cmVncyk7Cj4gPiArICAgICBwY2lfcmVsZWFzZV9zZWxlY3RlZF9yZWdpb25z KHBkZXYsIGJhcl9zZWxlY3Rpb24pOwo+ID4gIH0KPiA+Cj4gPiAgdm9pZCBpbnRlbF91bmNvcmVf aW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCj4gPiAtLQo+ID4gMi4yOC4w Cj4gPgo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K PiA+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCj4KPiAtLQo+IFZpbGxlIFN5cmrDpGzDpAo+IEludGVsCgoKCi0tIApEYW5pZWwg VmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5m ZndsbC5jaAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo= 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=-9.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 948ADC43457 for ; Fri, 9 Oct 2020 10:01:55 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 BB89C22269 for ; Fri, 9 Oct 2020 10:01:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="UzMeV+rw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BB89C22269 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D29846ECA6; Fri, 9 Oct 2020 10:01:53 +0000 (UTC) Received: from mail-oo1-xc44.google.com (mail-oo1-xc44.google.com [IPv6:2607:f8b0:4864:20::c44]) by gabe.freedesktop.org (Postfix) with ESMTPS id 77C776ECA6 for ; Fri, 9 Oct 2020 10:01:52 +0000 (UTC) Received: by mail-oo1-xc44.google.com with SMTP id f2so1516762ooj.2 for ; Fri, 09 Oct 2020 03:01:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=ftHJzNt4bERnNP+SIXIGo56JCvpL8TcP22nYSQKOV5k=; b=UzMeV+rwKkunQlHgHNSlVY990btw6GRORlFmsAYBx1gPA8SEXpEqpXIa8uGJFLzTQw b8BMC7q8QXr1fDrrdZMhmylgPVoMLs2HnzRpCUYwl2q2F4u0Dr/m3fS3LlJ3o6+Ejdce Wcj4zRQKhHrsGCyXRc5pfd4UfW1pvcEdIaWfc= 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:content-transfer-encoding; bh=ftHJzNt4bERnNP+SIXIGo56JCvpL8TcP22nYSQKOV5k=; b=QPBS4EGA8J8rHzJ81SUa4HL6s3cMlzMdbwkZfXqAQo9uFTRyzEWSJYrNUgvfl5vsfN KAy1QYpPuHt3JB2YhehKc+3645uV9blhqYOg2SbyHDQYataYbSthJuftRCGS1Te2ls2M /dd3mQ726Pti90rn2LoB9oNnmTVNUk+peyZWX5JYe0fUV428E/t5iIARyVay0VcQC4S4 3b8vxXZIkwmtBa9XX8YlS+MCqGA+vEwe3l0n5hvPZVDzFsAV3ubJARub/SHgagq0G39P ytIN0IwriFPK32Ssc7R6lsnaxgEob4qSJxSMrjLZaKx2yF7/M37dfihgs20JnapnJk19 cQSQ== X-Gm-Message-State: AOAM531VLooiHt9fhyffByjq11Yb84xoNf/0XNVMN/9rUilg37rCUABm f+RNkEdDqSL5F7Js1PlkPwF8xyDxFelN9Kp21nhQgw== X-Google-Smtp-Source: ABdhPJyck/sz2r8nAE1vOQ+mmU8ZRo9mJI1evvAL5G2Nq41icTgyJhGztZHNyIlc3HZk+r5jBb8vWdtCG7CV4AmWN/U= X-Received: by 2002:a4a:e592:: with SMTP id o18mr8337874oov.28.1602237711175; Fri, 09 Oct 2020 03:01:51 -0700 (PDT) MIME-Version: 1.0 References: <20201009075934.3509076-1-daniel.vetter@ffwll.ch> <20201009075934.3509076-18-daniel.vetter@ffwll.ch> <20201009094750.GQ6112@intel.com> In-Reply-To: <20201009094750.GQ6112@intel.com> From: Daniel Vetter Date: Fri, 9 Oct 2020 12:01:39 +0200 Message-ID: Subject: Re: [PATCH v2 17/17] drm/i915: Properly request PCI BARs To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-s390 , linux-samsung-soc , Jan Kara , Kees Cook , KVM list , Linux MM , Linux PCI , LKML , DRI Development , Jason Gunthorpe , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , John Hubbard , Bjorn Helgaas , Daniel Vetter , Dan Williams , Andrew Morton , Linux ARM , "open list:DMA BUFFER SHARING FRAMEWORK" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gRnJpLCBPY3QgOSwgMjAyMCBhdCAxMTo0NyBBTSBWaWxsZSBTeXJqw6Rsw6QKPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPiB3cm90ZToKPgo+IE9uIEZyaSwgT2N0IDA5LCAyMDIwIGF0 IDA5OjU5OjM0QU0gKzAyMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiBXaGVuIHRyeWluZyB0 byB0ZXN0IG15IENPTkZJR19JT19TVFJJQ1RfREVWTUVNIGNoYW5nZXMgSSByZWFsaXplZCB0aGV5 Cj4gPiBkbyBub3RoaW5nIGZvciBpOTE1LiBCZWNhdXNlIGk5MTUgZG9lc24ndCByZXF1ZXN0IGFu eSByZWdpb25zLCBsaWtlCj4gPiBwcmV0dHkgbXVjaCBhbGwgZHJtIHBjaSBkcml2ZXJzLiBJIGd1 ZXNzIHRoaXMgaXMgc29tZSB2ZXJ5IG9sZAo+ID4gcmVtbmFudHMgZnJvbSB0aGUgdXNlcnNwYWNl IG1vZGVzZXR0aW5nIGRheXMsIHdoZW4gd2Ugd2FudGVkIHRvCj4gPiBjby1leGlzdCB3aXRoIHRo ZSBmYmRldiBkcml2ZXIuIFdoaWNoIHVzdWFsbHkgcmVxdWVzdGVkIHRoZXNlCj4gPiByZXNvdXJj ZXMuCj4gPgo+ID4gQnV0IG1ha2VzIG1lIHdvbmRlciB3aHkgdGhlIHBjaSBzdWJzeXN0ZW0gZG9l c24ndCBqdXN0IHJlcXVlc3QKPiA+IHJlc291cmNlIGF1dG9tYXRpY2FsbHkgd2hlbiB3ZSBtYXAg YSBiYXIgYW5kIGEgcGNpIGRyaXZlciBpcyBib3VuZD8KPiA+Cj4gPiBLbm93bGVkZ2UgYWJvdXQg d2hpY2ggcGNpIGJhcnMgd2UgbmVlZCBrbHVkZ2VkIHRvZ2V0aGVyIGZyb20KPiA+IGludGVsX3Vu Y29yZS5jIGFuZCBpbnRlbF9ndHQuYyBmcm9tIGk5MTUgYW5kIGludGVsLWd0dC5jIG92ZXIgaW4g dGhlCj4gPiBmYWtlIGFncCBkcml2ZXIuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZl dHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4gPiBDYzogSmFzb24gR3VudGhvcnBlIDxq Z2dAemllcGUuY2E+Cj4gPiBDYzogS2VlcyBDb29rIDxrZWVzY29va0BjaHJvbWl1bS5vcmc+Cj4g PiBDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+Cj4gPiBDYzogQW5k cmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KPiA+IENjOiBKb2huIEh1YmJh cmQgPGpodWJiYXJkQG52aWRpYS5jb20+Cj4gPiBDYzogSsOpcsO0bWUgR2xpc3NlIDxqZ2xpc3Nl QHJlZGhhdC5jb20+Cj4gPiBDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jej4KPiA+IENjOiBEYW4g V2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KPiA+IENjOiBsaW51eC1tbUBrdmFj ay5vcmcKPiA+IENjOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiA+IENj OiBsaW51eC1zYW1zdW5nLXNvY0B2Z2VyLmtlcm5lbC5vcmcKPiA+IENjOiBsaW51eC1tZWRpYUB2 Z2VyLmtlcm5lbC5vcmcKPiA+IENjOiBCam9ybiBIZWxnYWFzIDxiaGVsZ2Fhc0Bnb29nbGUuY29t Pgo+ID4gQ2M6IGxpbnV4LXBjaUB2Z2VyLmtlcm5lbC5vcmcKPiA+IC0tLQo+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKyst LQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gPiBpbmRleCA1NGUyMDFmZGVi YTQuLmNlMzkwNDlkODkxOSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3VuY29yZS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUu Ywo+ID4gQEAgLTE2OTIsMTAgKzE2OTIsMTMgQEAgc3RhdGljIGludCB1bmNvcmVfbW1pb19zZXR1 cChzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUpCj4gPiAgICAgICBzdHJ1Y3QgcGNpX2RldiAq cGRldiA9IGk5MTUtPmRybS5wZGV2Owo+ID4gICAgICAgaW50IG1taW9fYmFyOwo+ID4gICAgICAg aW50IG1taW9fc2l6ZTsKPiA+ICsgICAgIGludCBiYXJfc2VsZWN0aW9uOwo+Cj4gU2lnbmVkIGJp dG1hc2tzIGFsd2F5cyBtYWtlIG1lIHVuZWFzeS4gQnV0IGxvb2tzIGxpa2UKPiB0aGF0J3Mgd2hh dCBpdCBpcyBpbiB0aGUgcGNpIGFwaS4gU28gbWVoLgoKWWVhaCBpdCdzIHN1cnByaXNpbmcuCgo+ ID4gKyAgICAgaW50IHJldDsKPiA+Cj4gPiAgICAgICBtbWlvX2JhciA9IElTX0dFTihpOTE1LCAy KSA/IDEgOiAwOwo+ID4gKyAgICAgYmFyX3NlbGVjdGlvbiA9IEJJVCAoMikgfCBCSVQobW1pb19i YXIpOwo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KPiBzcHVyaW91cyBzcGFjZQo+Cj4g VGhhdCdzIGFsc28gbm90IGNvcnJlY3QgZm9yIGdlbjIgSSB0aGluay4KPgo+IGdlbjI6Cj4gMCA9 IEdNQURSCj4gMSA9IE1NQURSCj4gMiA9IElPQkFSCj4KPiBnZW4zOgo+IDAgPSBNTUFEUgo+IDEg PSBJT0JBUgo+IDIgPSBHTUFEUgo+IDMgPSBHVFRBRFIKPgo+IGdlbjQrOgo+IDArMSA9IEdUVE1N QURSCj4gMiszID0gR01BRFIKPiA0ID0gSU9CQVIKPgo+IE1heWJlIHdlIHNob3VsZCBqdXN0IGhh dmUgYW4gZXhwbGljaXQgbGlzdCBvZiBiYXJzIGxpa2UgdGhhdCBpbiBhCj4gY29tbWVudD8KPgo+ IEknZCBhbHNvIHN1Z2dlc3Qgc3Vja2luZyB0aGlzIGJpdG1hc2sgY2FsY3VsYXRpb24gaW50byBh IHNtYWxsIGhlbHBlcgo+IHNvIHlvdSBjYW4gcmV1c2UgaXQgZm9yIHRoZSByZWxlYXNlLgoKdGJo IEkganVzdCBoYWNrZWQgdGhpcyB1cCBmb3IgdGVzdGluZy4gR2l2ZW4gaG93IGFsbW9zdCBubyBv dGhlciBkcm0KZHJpdmVyIGRvZXMgdGhpcywgSSdtIHdvbmRlcmluZyB3aGV0aGVyIHdlIHNob3Vs ZCBvciBub3QuCgpBbHNvIHRoZSBvbmx5IHJlYXNvbiB3aHkgSSBkaWRuJ3QganVzdCB1c2UgdGhl IHBjaV9yZXF1ZXN0X3JlZ2lvbnMKaGVscGVyIGlzIHRvIGF2b2lkIHRoZSB2Z2EgaW9wb3J0IHJh bmdlLCBzaW5jZSB0aGF0J3MgbWFuYWdlZCBieQp2Z2FhcmJpdGVyLgoKU28gSSB0aGluayBpZiB3 ZSBnbyBmb3IgdGhpcyBmb3IgcmVhbCB3ZSBzaG91bGQ6Ci0gcmVnaXN0ZXIgdGhlIHZnYSBpb3Bv cnQgcmFuZ2UgaW4gdGhlIHZnYWFyYml0ZXIKLSBoYXZlIGEgcGNpX3JlcXVlc3RfaW9tZW1fcmVn aW9ucyBoZWxwZXIgdGhhdCBncmFicyBhbGwgbWVtIGJhcnMKLSByb2xsIHRoYXQgb3V0IHRvIGFs bCBkcm0gcGNpIGRyaXZlcnMKCk9yIHNvbWV0aGluZyBsaWtlIHRoYXQuIFRoZSBvdGhlciBjb21w bGljYXRpb24gaXMgd2hlbiB3ZSByZXNpemUgdGhlCmlvYmFyLiBTbyBub3QgcmVhbGx5IHN1cmUg d2hhdCB0byBkbyBoZXJlLgotRGFuaWVsCgo+Cj4gPiAgICAgICAvKgo+ID4gLSAgICAgICogQmVm b3JlIGdlbjQsIHRoZSByZWdpc3RlcnMgYW5kIHRoZSBHVFQgYXJlIGJlaGluZCBkaWZmZXJlbnQg QkFScy4KPiA+ICsgICAgICAqIE9uIGdlbjMgdGhlIHJlZ2lzdGVycyBhbmQgdGhlIEdUVCBhcmUg YmVoaW5kIGRpZmZlcmVudCBCQVJzLgo+ID4gICAgICAgICogSG93ZXZlciwgZnJvbSBnZW40IG9u d2FyZHMsIHRoZSByZWdpc3RlcnMgYW5kIHRoZSBHVFQgYXJlIHNoYXJlZAo+ID4gICAgICAgICog aW4gdGhlIHNhbWUgQkFSLCBzbyB3ZSB3YW50IHRvIHJlc3RyaWN0IHRoaXMgaW9yZW1hcCBmcm9t Cj4gPiAgICAgICAgKiBjbG9iYmVyaW5nIHRoZSBHVFQgd2hpY2ggd2Ugd2FudCBpb3JlbWFwX3dj IGluc3RlYWQuIEZvcnR1bmF0ZWx5LAo+ID4gQEAgLTE3MDMsNiArMTcwNiw4IEBAIHN0YXRpYyBp bnQgdW5jb3JlX21taW9fc2V0dXAoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ID4gICAg ICAgICogZ2VuZXJhdGlvbnMgdXAgdG8gSXJvbmxha2UuCj4gPiAgICAgICAgKiBGb3IgZGdmeCBj aGlwcyByZWdpc3RlciByYW5nZSBpcyBleHBhbmRlZCB0byA0TUIuCj4gPiAgICAgICAgKi8KPiA+ ICsgICAgIGlmIChJTlRFTF9HRU4oaTkxNSkgPT0gMykKPiA+ICsgICAgICAgICAgICAgYmFyX3Nl bGVjdGlvbiB8PSBCSVQoMyk7Cj4gPiAgICAgICBpZiAoSU5URUxfR0VOKGk5MTUpIDwgNSkKPiA+ ICAgICAgICAgICAgICAgbW1pb19zaXplID0gNTEyICogMTAyNDsKPiA+ICAgICAgIGVsc2UgaWYg KElTX0RHRlgoaTkxNSkpCj4gPiBAQCAtMTcxMCw4ICsxNzE1LDE1IEBAIHN0YXRpYyBpbnQgdW5j b3JlX21taW9fc2V0dXAoc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlKQo+ID4gICAgICAgZWxz ZQo+ID4gICAgICAgICAgICAgICBtbWlvX3NpemUgPSAyICogMTAyNCAqIDEwMjQ7Cj4gPgo+ID4g KyAgICAgcmV0ID0gcGNpX3JlcXVlc3Rfc2VsZWN0ZWRfcmVnaW9ucyhwZGV2LCBiYXJfc2VsZWN0 aW9uLCAiaTkxNSIpOwo+ID4gKyAgICAgaWYgKHJldCA8IDApIHsKPiA+ICsgICAgICAgICAgICAg ZHJtX2VycigmaTkxNS0+ZHJtLCAiZmFpbGVkIHRvIHJlcXVlc3QgcGNpIGJhcnNcbiIpOwo+ID4g KyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gKyAgICAgfQo+ID4gKwo+ID4gICAgICAgdW5j b3JlLT5yZWdzID0gcGNpX2lvbWFwKHBkZXYsIG1taW9fYmFyLCBtbWlvX3NpemUpOwo+ID4gICAg ICAgaWYgKHVuY29yZS0+cmVncyA9PSBOVUxMKSB7Cj4gPiArICAgICAgICAgICAgIHBjaV9yZWxl YXNlX3NlbGVjdGVkX3JlZ2lvbnMocGRldiwgYmFyX3NlbGVjdGlvbik7Cj4gPiAgICAgICAgICAg ICAgIGRybV9lcnIoJmk5MTUtPmRybSwgImZhaWxlZCB0byBtYXAgcmVnaXN0ZXJzXG4iKTsKPiA+ ICAgICAgICAgICAgICAgcmV0dXJuIC1FSU87Cj4gPiAgICAgICB9Cj4gPiBAQCAtMTcyMSw5ICsx NzMzLDE4IEBAIHN0YXRpYyBpbnQgdW5jb3JlX21taW9fc2V0dXAoc3RydWN0IGludGVsX3VuY29y ZSAqdW5jb3JlKQo+ID4KPiA+ICBzdGF0aWMgdm9pZCB1bmNvcmVfbW1pb19jbGVhbnVwKHN0cnVj dCBpbnRlbF91bmNvcmUgKnVuY29yZSkKPiA+ICB7Cj4gPiAtICAgICBzdHJ1Y3QgcGNpX2RldiAq cGRldiA9IHVuY29yZS0+aTkxNS0+ZHJtLnBkZXY7Cj4gPiArICAgICBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSA9IHVuY29yZS0+aTkxNTsKPiA+ICsgICAgIHN0cnVjdCBwY2lfZGV2ICpw ZGV2ID0gaTkxNS0+ZHJtLnBkZXY7Cj4gPiArICAgICBpbnQgbW1pb19iYXI7Cj4gPiArICAgICBp bnQgYmFyX3NlbGVjdGlvbjsKPiA+ICsKPiA+ICsgICAgIG1taW9fYmFyID0gSVNfR0VOKGk5MTUs IDIpID8gMSA6IDA7Cj4gPiArICAgICBiYXJfc2VsZWN0aW9uID0gQklUICgyKSB8IEJJVChtbWlv X2Jhcik7Cj4gPiArICAgICBpZiAoSU5URUxfR0VOKGk5MTUpID09IDMpCj4gPiArICAgICAgICAg ICAgIGJhcl9zZWxlY3Rpb24gfD0gQklUKDMpOwo+ID4KPiA+ICAgICAgIHBjaV9pb3VubWFwKHBk ZXYsIHVuY29yZS0+cmVncyk7Cj4gPiArICAgICBwY2lfcmVsZWFzZV9zZWxlY3RlZF9yZWdpb25z KHBkZXYsIGJhcl9zZWxlY3Rpb24pOwo+ID4gIH0KPiA+Cj4gPiAgdm9pZCBpbnRlbF91bmNvcmVf aW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsCj4gPiAtLQo+ID4gMi4yOC4w Cj4gPgo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K PiA+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCj4KPiAtLQo+IFZpbGxlIFN5cmrDpGzDpAo+IEludGVsCgoKCi0tIApEYW5pZWwg VmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5m ZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK