From mboxrd@z Thu Jan 1 00:00:00 1970 From: Luis Henriques Subject: Re: [PATCH 3.16.y-ckt 030/168] drm/i915: Handle failure to kick out a conflicting fb driver Date: Mon, 12 Jan 2015 17:43:34 +0000 Message-ID: <20150112174334.GI2455@charon> References: <1418653622-21105-1-git-send-email-luis.henriques@canonical.com> <1418653622-21105-31-git-send-email-luis.henriques@canonical.com> <1421012945.19708.27.camel@decadent.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by gabe.freedesktop.org (Postfix) with ESMTP id 2B2D56E389 for ; Mon, 12 Jan 2015 09:43:16 -0800 (PST) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Greg Kroah-Hartman , intel-gfx , Linux Kernel Mailing List , stable , kernel-team@lists.ubuntu.com, Ben Hutchings List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKYW4gMTIsIDIwMTUgYXQgMDY6MjA6MjJQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBTdW4sIEphbiAxMSwgMjAxNSBhdCAxMDo0OSBQTSwgQmVuIEh1dGNoaW5ncyA8 YmVuQGRlY2FkZW50Lm9yZy51az4gd3JvdGU6Cj4gPiBPbiBNb24sIDIwMTQtMTItMTUgYXQgMTQ6 MjQgKzAwMDAsIEx1aXMgSGVucmlxdWVzIHdyb3RlOgo+ID4+IDMuMTYuNy1ja3QzIC1zdGFibGUg cmV2aWV3IHBhdGNoLiAgSWYgYW55b25lIGhhcyBhbnkgb2JqZWN0aW9ucywgcGxlYXNlIGxldCBt ZSBrbm93Lgo+ID4+Cj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4KPiA+PiBGcm9tOiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiA+Pgo+ID4+IGNvbW1pdCBmOTZk ZTU4ZmM3ZTdkM2Q3MTdjN2M2Mzk3NWMzYjg5NmM5MDZiNWUzIHVwc3RyZWFtLgo+ID4+Cj4gPj4g U2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4g Pj4gUmV2aWV3ZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4gPj4g U2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+ PiBTaWduZWQtb2ZmLWJ5OiBMdWlzIEhlbnJpcXVlcyA8bHVpcy5oZW5yaXF1ZXNAY2Fub25pY2Fs LmNvbT4KPiA+Cj4gPiBTaG91bGQgdGhpcyBhbHNvIGJlIGFwcGxpZWQgdG8gYW55IG9sZGVyIHN0 YWJsZSBicmFuY2hlcz8KPiA+Cj4gPiBpOTE1X2tpY2tfb3V0X2Zpcm13YXJlX2ZiKCkgd2FzIGlu dHJvZHVjZWQgaW4gMy42IGFuZCBpdCBoYXMgYWx3YXlzIGJlZW4KPiA+IHBvc3NpYmxlIGZvciB0 aGUgYWxsb2NfYXBlcnR1cmVzKCkgY2FsbCB0byBmYWlsLgo+ID4KPiA+IHJlbW92ZV9jb25mbGlj dGluZ19mcmFtZWJ1ZmZlcnMoKSBoYXMgcmV0dXJuZWQgYW4gZXJyb3IgY29kZSBzaW5jZSAzLjE0 Cj4gPiAoYnV0IGNvdWxkIHNpbGVudGx5IGZhaWwgYmVmb3JlIHRoZW4hKSBzbyB0aGlzIHNob3Vs ZCBiZSBhcHBsaWNhYmxlIHRvCj4gPiB0aGUgMy4xNCBzdGFibGUgYnJhbmNoIHRvby4KPiAKPiB0 YmggSSBkb24ndCBrbm93IHdoeSB0aGlzIHBhdGNoIGVuZGVkIHVwIGluIGEgc3RhYmxlIGtlcm5l bCwgYXQgbGVhc3QKPiBJIGRpZG4ndCBmaW5kIGFueXRoaW5nIHdoZXJlIHdlIChkcm0vaTkxNSBt YWludGFpbmVycykgbWFya2VkIGl0IGFzCj4gc3VjaC4gQW5kIHRoZXJlJ3Mgbm8gYnVnemlsbGEg cmVmZXJlbmNlcyBhZGRlZCBlaXRoZXIuIEltbyB0aGUgcGF0Y2gKPiBkb2Vzbid0IHF1YWxpZnkg Zm9yIHN0YWJsZSAoaXQncyBub3QgYSByZWFsLXdvcmxkIGJ1ZyBhZmFpaykuCgpZb3UncmUgcmln aHQsIHRoaXMgcGF0Y2ggd2FzIG5vdCB0YWdnZWQgZm9yIHN0YWJsZS4KCldoaWxlIGFwcGx5aW5n IDA0ODVjOWRjMjRlYyAoImRybS9pOTE1OiBLaWNrIGZiZGV2IGJlZm9yZSB2Z2Fjb24iKSB0bwp0 aGUgMy4xNiBrZXJuZWwsIEkgZm91bmQgdGhhdCBjaGVycnktcGlja2luZyBmOTZkZTU4ZmM3ZTcg d291bGQgbWFrZQppdCBhcHBseSBjbGVhbmx5IGFuZCBpdCBkaWRuJ3Qgc2hvY2sgbWUgdG8gaGF2 ZSBpdCBpbiBhIHN0YWJsZSBrZXJuZWwuClRoYXQncyB3aHkgSSBhcHBsaWVkIGl0IGZvciByZWxl YXNlIDMuMTYuNy1ja3QzLiAgSSBndWVzcyBJIHNob3VsZApoYXZlIGFkZGVkIGEgbm90ZSBpbiB0 aGUgY29tbWl0IHRleHQganVzdGlmeWluZyBpdHMgcHJlc2VuY2UuCgpDaGVlcnMsCi0tCkx1w61z Cgo+IC1EYW5pZWwKPiAKPiA+Cj4gPiBCZW4uCj4gPgo+ID4+IC0tLQo+ID4+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RtYS5jIHwgMTggKysrKysrKysrKysrKy0tLS0tCj4gPj4gIDEgZmls ZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+ID4+Cj4gPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RtYS5jCj4gPj4gaW5kZXggZDQ0MzQ0MTQwNjI3Li4wNjYzZmI0ZmE2MDYg MTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwo+ID4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKPiA+PiBAQCAtMTQyNSwxNSArMTQy NSwxNiBAQCB2b2lkIGk5MTVfbWFzdGVyX2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldiwg c3RydWN0IGRybV9tYXN0ZXIgKm1hc3RlcikKPiA+PiAgfQo+ID4+Cj4gPj4gICNpZiBJU19FTkFC TEVEKENPTkZJR19GQikKPiA+PiAtc3RhdGljIHZvaWQgaTkxNV9raWNrX291dF9maXJtd2FyZV9m YihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPj4gK3N0YXRpYyBpbnQgaTkx NV9raWNrX291dF9maXJtd2FyZV9mYihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gPj4gIHsKPiA+PiAgICAgICBzdHJ1Y3QgYXBlcnR1cmVzX3N0cnVjdCAqYXA7Cj4gPj4gICAg ICAgc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZGV2LT5wZGV2Owo+ID4+ICAgICAg IGJvb2wgcHJpbWFyeTsKPiA+PiArICAgICBpbnQgcmV0Owo+ID4+Cj4gPj4gICAgICAgYXAgPSBh bGxvY19hcGVydHVyZXMoMSk7Cj4gPj4gICAgICAgaWYgKCFhcCkKPiA+PiAtICAgICAgICAgICAg IHJldHVybjsKPiA+PiArICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ID4+Cj4gPj4gICAg ICAgYXAtPnJhbmdlc1swXS5iYXNlID0gZGV2X3ByaXYtPmd0dC5tYXBwYWJsZV9iYXNlOwo+ID4+ ICAgICAgIGFwLT5yYW5nZXNbMF0uc2l6ZSA9IGRldl9wcml2LT5ndHQubWFwcGFibGVfZW5kOwo+ ID4+IEBAIC0xNDQxLDEzICsxNDQyLDE2IEBAIHN0YXRpYyB2b2lkIGk5MTVfa2lja19vdXRfZmly bXdhcmVfZmIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4+ICAgICAgIHBy aW1hcnkgPQo+ID4+ICAgICAgICAgICAgICAgcGRldi0+cmVzb3VyY2VbUENJX1JPTV9SRVNPVVJD RV0uZmxhZ3MgJiBJT1JFU09VUkNFX1JPTV9TSEFET1c7Cj4gPj4KPiA+PiAtICAgICByZW1vdmVf Y29uZmxpY3RpbmdfZnJhbWVidWZmZXJzKGFwLCAiaW50ZWxkcm1mYiIsIHByaW1hcnkpOwo+ID4+ ICsgICAgIHJldCA9IHJlbW92ZV9jb25mbGljdGluZ19mcmFtZWJ1ZmZlcnMoYXAsICJpbnRlbGRy bWZiIiwgcHJpbWFyeSk7Cj4gPj4KPiA+PiAgICAgICBrZnJlZShhcCk7Cj4gPj4gKwo+ID4+ICsg ICAgIHJldHVybiByZXQ7Cj4gPj4gIH0KPiA+PiAgI2Vsc2UKPiA+PiAtc3RhdGljIHZvaWQgaTkx NV9raWNrX291dF9maXJtd2FyZV9mYihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gPj4gK3N0YXRpYyBpbnQgaTkxNV9raWNrX291dF9maXJtd2FyZV9mYihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPj4gIHsKPiA+PiArICAgICByZXR1cm4gMDsKPiA+PiAg fQo+ID4+ICAjZW5kaWYKPiA+Pgo+ID4+IEBAIC0xNjY0LDcgKzE2NjgsMTEgQEAgaW50IGk5MTVf ZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykK PiA+PiAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXRfZ3R0Owo+ID4+ICAgICAgICAgICAg ICAgfQo+ID4+Cj4gPj4gLSAgICAgICAgICAgICBpOTE1X2tpY2tfb3V0X2Zpcm13YXJlX2ZiKGRl dl9wcml2KTsKPiA+PiArICAgICAgICAgICAgIHJldCA9IGk5MTVfa2lja19vdXRfZmlybXdhcmVf ZmIoZGV2X3ByaXYpOwo+ID4+ICsgICAgICAgICAgICAgaWYgKHJldCkgewo+ID4+ICsgICAgICAg ICAgICAgICAgICAgICBEUk1fRVJST1IoImZhaWxlZCB0byByZW1vdmUgY29uZmxpY3RpbmcgZnJh bWVidWZmZXIgZHJpdmVyc1xuIik7Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0 X2d0dDsKPiA+PiArICAgICAgICAgICAgIH0KPiA+PiAgICAgICB9Cj4gPj4KPiA+PiAgICAgICBw Y2lfc2V0X21hc3RlcihkZXYtPnBkZXYpOwo+ID4KPiA+IC0tCj4gPiBCZW4gSHV0Y2hpbmdzCj4g PiBPbmUgb2YgdGhlIG5pY2UgdGhpbmdzIGFib3V0IHN0YW5kYXJkcyBpcyB0aGF0IHRoZXJlIGFy ZSBzbyBtYW55IG9mIHRoZW0uCj4gCj4gCj4gCj4gLS0gCj4gRGFuaWVsIFZldHRlcgo+IFNvZnR3 YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ICs0MSAoMCkgNzkgMzY1IDU3IDQ4IC0g aHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752227AbbALRnZ (ORCPT ); Mon, 12 Jan 2015 12:43:25 -0500 Received: from youngberry.canonical.com ([91.189.89.112]:57120 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750782AbbALRnX (ORCPT ); Mon, 12 Jan 2015 12:43:23 -0500 Date: Mon, 12 Jan 2015 17:43:34 +0000 From: Luis Henriques To: Daniel Vetter Cc: Ben Hutchings , Chris Wilson , Greg Kroah-Hartman , Linux Kernel Mailing List , stable , kernel-team@lists.ubuntu.com, "Nikula, Jani" , intel-gfx Subject: Re: [PATCH 3.16.y-ckt 030/168] drm/i915: Handle failure to kick out a conflicting fb driver Message-ID: <20150112174334.GI2455@charon> References: <1418653622-21105-1-git-send-email-luis.henriques@canonical.com> <1418653622-21105-31-git-send-email-luis.henriques@canonical.com> <1421012945.19708.27.camel@decadent.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jan 12, 2015 at 06:20:22PM +0100, Daniel Vetter wrote: > On Sun, Jan 11, 2015 at 10:49 PM, Ben Hutchings wrote: > > On Mon, 2014-12-15 at 14:24 +0000, Luis Henriques wrote: > >> 3.16.7-ckt3 -stable review patch. If anyone has any objections, please let me know. > >> > >> ------------------ > >> > >> From: Chris Wilson > >> > >> commit f96de58fc7e7d3d717c7c63975c3b896c906b5e3 upstream. > >> > >> Signed-off-by: Chris Wilson > >> Reviewed-by: Jani Nikula > >> Signed-off-by: Daniel Vetter > >> Signed-off-by: Luis Henriques > > > > Should this also be applied to any older stable branches? > > > > i915_kick_out_firmware_fb() was introduced in 3.6 and it has always been > > possible for the alloc_apertures() call to fail. > > > > remove_conflicting_framebuffers() has returned an error code since 3.14 > > (but could silently fail before then!) so this should be applicable to > > the 3.14 stable branch too. > > tbh I don't know why this patch ended up in a stable kernel, at least > I didn't find anything where we (drm/i915 maintainers) marked it as > such. And there's no bugzilla references added either. Imo the patch > doesn't qualify for stable (it's not a real-world bug afaik). You're right, this patch was not tagged for stable. While applying 0485c9dc24ec ("drm/i915: Kick fbdev before vgacon") to the 3.16 kernel, I found that cherry-picking f96de58fc7e7 would make it apply cleanly and it didn't shock me to have it in a stable kernel. That's why I applied it for release 3.16.7-ckt3. I guess I should have added a note in the commit text justifying its presence. Cheers, -- Luís > -Daniel > > > > > Ben. > > > >> --- > >> drivers/gpu/drm/i915/i915_dma.c | 18 +++++++++++++----- > >> 1 file changed, 13 insertions(+), 5 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c > >> index d44344140627..0663fb4fa606 100644 > >> --- a/drivers/gpu/drm/i915/i915_dma.c > >> +++ b/drivers/gpu/drm/i915/i915_dma.c > >> @@ -1425,15 +1425,16 @@ void i915_master_destroy(struct drm_device *dev, struct drm_master *master) > >> } > >> > >> #if IS_ENABLED(CONFIG_FB) > >> -static void i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv) > >> +static int i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv) > >> { > >> struct apertures_struct *ap; > >> struct pci_dev *pdev = dev_priv->dev->pdev; > >> bool primary; > >> + int ret; > >> > >> ap = alloc_apertures(1); > >> if (!ap) > >> - return; > >> + return -ENOMEM; > >> > >> ap->ranges[0].base = dev_priv->gtt.mappable_base; > >> ap->ranges[0].size = dev_priv->gtt.mappable_end; > >> @@ -1441,13 +1442,16 @@ static void i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv) > >> primary = > >> pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW; > >> > >> - remove_conflicting_framebuffers(ap, "inteldrmfb", primary); > >> + ret = remove_conflicting_framebuffers(ap, "inteldrmfb", primary); > >> > >> kfree(ap); > >> + > >> + return ret; > >> } > >> #else > >> -static void i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv) > >> +static int i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv) > >> { > >> + return 0; > >> } > >> #endif > >> > >> @@ -1664,7 +1668,11 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) > >> goto out_gtt; > >> } > >> > >> - i915_kick_out_firmware_fb(dev_priv); > >> + ret = i915_kick_out_firmware_fb(dev_priv); > >> + if (ret) { > >> + DRM_ERROR("failed to remove conflicting framebuffer drivers\n"); > >> + goto out_gtt; > >> + } > >> } > >> > >> pci_set_master(dev->pdev); > > > > -- > > Ben Hutchings > > One of the nice things about standards is that there are so many of them. > > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > +41 (0) 79 365 57 48 - http://blog.ffwll.ch From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 12 Jan 2015 17:43:34 +0000 From: Luis Henriques To: Daniel Vetter Cc: Ben Hutchings , Chris Wilson , Greg Kroah-Hartman , Linux Kernel Mailing List , stable , kernel-team@lists.ubuntu.com, "Nikula, Jani" , intel-gfx Subject: Re: [PATCH 3.16.y-ckt 030/168] drm/i915: Handle failure to kick out a conflicting fb driver Message-ID: <20150112174334.GI2455@charon> References: <1418653622-21105-1-git-send-email-luis.henriques@canonical.com> <1418653622-21105-31-git-send-email-luis.henriques@canonical.com> <1421012945.19708.27.camel@decadent.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-ID: On Mon, Jan 12, 2015 at 06:20:22PM +0100, Daniel Vetter wrote: > On Sun, Jan 11, 2015 at 10:49 PM, Ben Hutchings wrote: > > On Mon, 2014-12-15 at 14:24 +0000, Luis Henriques wrote: > >> 3.16.7-ckt3 -stable review patch. If anyone has any objections, please let me know. > >> > >> ------------------ > >> > >> From: Chris Wilson > >> > >> commit f96de58fc7e7d3d717c7c63975c3b896c906b5e3 upstream. > >> > >> Signed-off-by: Chris Wilson > >> Reviewed-by: Jani Nikula > >> Signed-off-by: Daniel Vetter > >> Signed-off-by: Luis Henriques > > > > Should this also be applied to any older stable branches? > > > > i915_kick_out_firmware_fb() was introduced in 3.6 and it has always been > > possible for the alloc_apertures() call to fail. > > > > remove_conflicting_framebuffers() has returned an error code since 3.14 > > (but could silently fail before then!) so this should be applicable to > > the 3.14 stable branch too. > > tbh I don't know why this patch ended up in a stable kernel, at least > I didn't find anything where we (drm/i915 maintainers) marked it as > such. And there's no bugzilla references added either. Imo the patch > doesn't qualify for stable (it's not a real-world bug afaik). You're right, this patch was not tagged for stable. While applying 0485c9dc24ec ("drm/i915: Kick fbdev before vgacon") to the 3.16 kernel, I found that cherry-picking f96de58fc7e7 would make it apply cleanly and it didn't shock me to have it in a stable kernel. That's why I applied it for release 3.16.7-ckt3. I guess I should have added a note in the commit text justifying its presence. Cheers, -- Lu�s > -Daniel > > > > > Ben. > > > >> --- > >> drivers/gpu/drm/i915/i915_dma.c | 18 +++++++++++++----- > >> 1 file changed, 13 insertions(+), 5 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c > >> index d44344140627..0663fb4fa606 100644 > >> --- a/drivers/gpu/drm/i915/i915_dma.c > >> +++ b/drivers/gpu/drm/i915/i915_dma.c > >> @@ -1425,15 +1425,16 @@ void i915_master_destroy(struct drm_device *dev, struct drm_master *master) > >> } > >> > >> #if IS_ENABLED(CONFIG_FB) > >> -static void i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv) > >> +static int i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv) > >> { > >> struct apertures_struct *ap; > >> struct pci_dev *pdev = dev_priv->dev->pdev; > >> bool primary; > >> + int ret; > >> > >> ap = alloc_apertures(1); > >> if (!ap) > >> - return; > >> + return -ENOMEM; > >> > >> ap->ranges[0].base = dev_priv->gtt.mappable_base; > >> ap->ranges[0].size = dev_priv->gtt.mappable_end; > >> @@ -1441,13 +1442,16 @@ static void i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv) > >> primary = > >> pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW; > >> > >> - remove_conflicting_framebuffers(ap, "inteldrmfb", primary); > >> + ret = remove_conflicting_framebuffers(ap, "inteldrmfb", primary); > >> > >> kfree(ap); > >> + > >> + return ret; > >> } > >> #else > >> -static void i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv) > >> +static int i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv) > >> { > >> + return 0; > >> } > >> #endif > >> > >> @@ -1664,7 +1668,11 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) > >> goto out_gtt; > >> } > >> > >> - i915_kick_out_firmware_fb(dev_priv); > >> + ret = i915_kick_out_firmware_fb(dev_priv); > >> + if (ret) { > >> + DRM_ERROR("failed to remove conflicting framebuffer drivers\n"); > >> + goto out_gtt; > >> + } > >> } > >> > >> pci_set_master(dev->pdev); > > > > -- > > Ben Hutchings > > One of the nice things about standards is that there are so many of them. > > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > +41 (0) 79 365 57 48 - http://blog.ffwll.ch