From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752451Ab0DLPpz (ORCPT ); Mon, 12 Apr 2010 11:45:55 -0400 Received: from cpoproxy1-pub.bluehost.com ([69.89.21.11]:38177 "HELO outbound-mail-01.bluehost.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1751388Ab0DLPpy convert rfc822-to-8bit (ORCPT ); Mon, 12 Apr 2010 11:45:54 -0400 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=virtuousgeek.org; h=Received:Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References:X-Mailer:Mime-Version:Content-Type:Content-Transfer-Encoding:X-Identified-User; b=gYscfMougkddd/dWxVxn8orUaWzoYpCsteHDkCH+fK2TzGdBz30gaKm/f4KGnwZw+qz2MkxR0H68c3Ip1DYTZxvrXpgLHHz/5TfyM+zu9vhTLBLqY3Xg65fNZeJD1uba; Date: Mon, 12 Apr 2010 08:46:13 -0700 From: Jesse Barnes To: Dave Airlie Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Linus Torvalds , James Simmons Subject: Re: [PATCH] drm: add locked variant of drm_fb_helper_force_kernel_mode Message-ID: <20100412084613.78788e9d@virtuousgeek.org> In-Reply-To: References: <20100409151050.74ef6dcd@virtuousgeek.org> <20100409151148.4312e5cb@virtuousgeek.org> X-Mailer: Claws Mail 3.7.5 (GTK+ 2.18.9; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT X-Identified-User: {10642:box514.bluehost.com:virtuous:virtuousgeek.org} {sentby:smtp auth 75.110.194.140 authed with jbarnes@virtuousgeek.org} Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 12 Apr 2010 10:05:00 +1000 Dave Airlie wrote: > On Sat, Apr 10, 2010 at 8:11 AM, Jesse Barnes wrote: > > Needed for panic and kdb, since we need to avoid taking the mode_config > > mutex. > > One comment below. > > > > > Signed-off-by: Jesse Barnes > > --- > >  drivers/gpu/drm/drm_fb_helper.c |   42 +++++++++++++++++++++++++++++++++----- > >  1 files changed, 36 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c > > index 6929f5b..962eadb 100644 > > --- a/drivers/gpu/drm/drm_fb_helper.c > > +++ b/drivers/gpu/drm/drm_fb_helper.c > > @@ -242,18 +242,22 @@ static int drm_fb_helper_parse_command_line(struct drm_fb_helper *fb_helper) > >        return 0; > >  } > > > > -bool drm_fb_helper_force_kernel_mode(void) > > +bool drm_fb_helper_force_kernel_mode_locked(void) > >  { > >        int i = 0; > >        bool ret, error = false; > >        struct drm_fb_helper *helper; > > - > > -       if (list_empty(&kernel_fb_helper_list)) > > -               return false; > > +       struct drm_mode_set *mode_set; > > +       struct drm_crtc *crtc; > > > >        list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) { > >                for (i = 0; i < helper->crtc_count; i++) { > > -                       struct drm_mode_set *mode_set = &helper->crtc_info[i].mode_set; > > +                       mode_set = &helper->crtc_info[i].mode_set; > > +                       crtc = helper->crtc_info[i].mode_set.crtc; > > + > > +                       if (!crtc->enabled) > > +                               continue; > > + > >                        ret = drm_crtc_helper_set_config(mode_set); > >                        if (ret) > >                                error = true; > > @@ -262,11 +266,37 @@ bool drm_fb_helper_force_kernel_mode(void) > >        return error; > >  } > > > > +bool drm_fb_helper_force_kernel_mode(void) > > +{ > > +       bool ret; > > +       struct drm_device *dev; > > +       struct drm_fb_helper *helper; > > +       struct drm_mode_set *mode_set; > > + > > +       if (list_empty(&kernel_fb_helper_list)) { > > +               DRM_DEBUG_KMS("no fb helper list??\n"); > > +               return false; > > +       } > > + > > +       /* Get the DRM device */ > > +       helper = list_first_entry(&kernel_fb_helper_list, > > +                                 struct drm_fb_helper, > > +                                 kernel_fb_list); > > +       mode_set = &helper->crtc_info[0].mode_set; > > +       dev = mode_set->crtc->dev; > > + > > +       mutex_lock(&dev->mode_config.mutex); > > +       ret = drm_fb_helper_force_kernel_mode_locked(); > > +       mutex_unlock(&dev->mode_config.mutex); > > + > > +       return ret; > > +} > > + > >  int drm_fb_helper_panic(struct notifier_block *n, unsigned long ununsed, > >                        void *panic_str) > >  { > >        DRM_ERROR("panic occurred, switching back to text console\n"); > > -       return drm_fb_helper_force_kernel_mode(); > > +       drm_fb_helper_force_kernel_mode_locked(); > > Any reason to drop the return here? > > not just remove the return 0? Oh no; I don't think the return value is checked anywhere but we may as well return it anyway. -- Jesse Barnes, Intel Open Source Technology Center From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: Re: [PATCH] drm: add locked variant of drm_fb_helper_force_kernel_mode Date: Mon, 12 Apr 2010 08:46:13 -0700 Message-ID: <20100412084613.78788e9d@virtuousgeek.org> References: <20100409151050.74ef6dcd@virtuousgeek.org> <20100409151148.4312e5cb@virtuousgeek.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from outbound-mail-01.bluehost.com (cpoproxy1-pub.bluehost.com [69.89.21.11]) by gabe.freedesktop.org (Postfix) with SMTP id 2F61A9EEC2 for ; Mon, 12 Apr 2010 08:45:54 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org To: Dave Airlie Cc: Torvalds , Linus@freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCAxMiBBcHIgMjAxMCAxMDowNTowMCArMTAwMApEYXZlIEFpcmxpZSA8YWlybGllZEBn bWFpbC5jb20+IHdyb3RlOgoKPiBPbiBTYXQsIEFwciAxMCwgMjAxMCBhdCA4OjExIEFNLCBKZXNz ZSBCYXJuZXMgPGpiYXJuZXNAdmlydHVvdXNnZWVrLm9yZz4gd3JvdGU6Cj4gPiBOZWVkZWQgZm9y IHBhbmljIGFuZCBrZGIsIHNpbmNlIHdlIG5lZWQgdG8gYXZvaWQgdGFraW5nIHRoZSBtb2RlX2Nv bmZpZwo+ID4gbXV0ZXguCj4gCj4gT25lIGNvbW1lbnQgYmVsb3cuCj4gCj4gPgo+ID4gU2lnbmVk LW9mZi1ieTogSmVzc2UgQmFybmVzIDxqYmFybmVzQHZpcnR1b3VzZ2Vlay5vcmc+Cj4gPiAtLS0K PiA+IMKgZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyB8IMKgIDQyICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tCj4gPiDCoDEgZmlsZXMgY2hhbmdlZCwgMzYgaW5z ZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9mYl9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMK PiA+IGluZGV4IDY5MjlmNWIuLjk2MmVhZGIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2ZiX2hlbHBlci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBl ci5jCj4gPiBAQCAtMjQyLDE4ICsyNDIsMjIgQEAgc3RhdGljIGludCBkcm1fZmJfaGVscGVyX3Bh cnNlX2NvbW1hbmRfbGluZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQo+ID4gwqAg wqAgwqAgwqByZXR1cm4gMDsKPiA+IMKgfQo+ID4KPiA+IC1ib29sIGRybV9mYl9oZWxwZXJfZm9y Y2Vfa2VybmVsX21vZGUodm9pZCkKPiA+ICtib29sIGRybV9mYl9oZWxwZXJfZm9yY2Vfa2VybmVs X21vZGVfbG9ja2VkKHZvaWQpCj4gPiDCoHsKPiA+IMKgIMKgIMKgIMKgaW50IGkgPSAwOwo+ID4g wqAgwqAgwqAgwqBib29sIHJldCwgZXJyb3IgPSBmYWxzZTsKPiA+IMKgIMKgIMKgIMKgc3RydWN0 IGRybV9mYl9oZWxwZXIgKmhlbHBlcjsKPiA+IC0KPiA+IC0gwqAgwqAgwqAgaWYgKGxpc3RfZW1w dHkoJmtlcm5lbF9mYl9oZWxwZXJfbGlzdCkpCj4gPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJl dHVybiBmYWxzZTsKPiA+ICsgwqAgwqAgwqAgc3RydWN0IGRybV9tb2RlX3NldCAqbW9kZV9zZXQ7 Cj4gPiArIMKgIMKgIMKgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+Cj4gPiDCoCDCoCDCoCDC oGxpc3RfZm9yX2VhY2hfZW50cnkoaGVscGVyLCAma2VybmVsX2ZiX2hlbHBlcl9saXN0LCBrZXJu ZWxfZmJfbGlzdCkgewo+ID4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBmb3IgKGkgPSAwOyBpIDwg aGVscGVyLT5jcnRjX2NvdW50OyBpKyspIHsKPiA+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgc3RydWN0IGRybV9tb2RlX3NldCAqbW9kZV9zZXQgPSAmaGVscGVyLT5jcnRjX2lu Zm9baV0ubW9kZV9zZXQ7Cj4gPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIG1v ZGVfc2V0ID0gJmhlbHBlci0+Y3J0Y19pbmZvW2ldLm1vZGVfc2V0Owo+ID4gKyDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBjcnRjID0gaGVscGVyLT5jcnRjX2luZm9baV0ubW9kZV9z ZXQuY3J0YzsKPiA+ICsKPiA+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaWYg KCFjcnRjLT5lbmFibGVkKQo+ID4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCBjb250aW51ZTsKPiA+ICsKPiA+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgcmV0ID0gZHJtX2NydGNfaGVscGVyX3NldF9jb25maWcobW9kZV9zZXQpOwo+ID4g wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBpZiAocmV0KQo+ID4gwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBlcnJvciA9IHRydWU7Cj4gPiBA QCAtMjYyLDExICsyNjYsMzcgQEAgYm9vbCBkcm1fZmJfaGVscGVyX2ZvcmNlX2tlcm5lbF9tb2Rl KHZvaWQpCj4gPiDCoCDCoCDCoCDCoHJldHVybiBlcnJvcjsKPiA+IMKgfQo+ID4KPiA+ICtib29s IGRybV9mYl9oZWxwZXJfZm9yY2Vfa2VybmVsX21vZGUodm9pZCkKPiA+ICt7Cj4gPiArIMKgIMKg IMKgIGJvb2wgcmV0Owo+ID4gKyDCoCDCoCDCoCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+ID4g KyDCoCDCoCDCoCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyOwo+ID4gKyDCoCDCoCDCoCBz dHJ1Y3QgZHJtX21vZGVfc2V0ICptb2RlX3NldDsKPiA+ICsKPiA+ICsgwqAgwqAgwqAgaWYgKGxp c3RfZW1wdHkoJmtlcm5lbF9mYl9oZWxwZXJfbGlzdCkpIHsKPiA+ICsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgRFJNX0RFQlVHX0tNUygibm8gZmIgaGVscGVyIGxpc3Q/P1xuIik7Cj4gPiArIMKgIMKg IMKgIMKgIMKgIMKgIMKgIHJldHVybiBmYWxzZTsKPiA+ICsgwqAgwqAgwqAgfQo+ID4gKwo+ID4g KyDCoCDCoCDCoCAvKiBHZXQgdGhlIERSTSBkZXZpY2UgKi8KPiA+ICsgwqAgwqAgwqAgaGVscGVy ID0gbGlzdF9maXJzdF9lbnRyeSgma2VybmVsX2ZiX2hlbHBlcl9saXN0LAo+ID4gKyDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBzdHJ1Y3QgZHJtX2ZiX2hl bHBlciwKPiA+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAga2VybmVsX2ZiX2xpc3QpOwo+ID4gKyDCoCDCoCDCoCBtb2RlX3NldCA9ICZoZWxwZXItPmNy dGNfaW5mb1swXS5tb2RlX3NldDsKPiA+ICsgwqAgwqAgwqAgZGV2ID0gbW9kZV9zZXQtPmNydGMt PmRldjsKPiA+ICsKPiA+ICsgwqAgwqAgwqAgbXV0ZXhfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5t dXRleCk7Cj4gPiArIMKgIMKgIMKgIHJldCA9IGRybV9mYl9oZWxwZXJfZm9yY2Vfa2VybmVsX21v ZGVfbG9ja2VkKCk7Cj4gPiArIMKgIMKgIMKgIG11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZp Zy5tdXRleCk7Cj4gPiArCj4gPiArIMKgIMKgIMKgIHJldHVybiByZXQ7Cj4gPiArfQo+ID4gKwo+ ID4gwqBpbnQgZHJtX2ZiX2hlbHBlcl9wYW5pYyhzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm4sIHVu c2lnbmVkIGxvbmcgdW51bnNlZCwKPiA+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgdm9pZCAqcGFuaWNfc3RyKQo+ID4gwqB7Cj4gPiDCoCDCoCDCoCDCoERSTV9FUlJPUigicGFu aWMgb2NjdXJyZWQsIHN3aXRjaGluZyBiYWNrIHRvIHRleHQgY29uc29sZVxuIik7Cj4gPiAtIMKg IMKgIMKgIHJldHVybiBkcm1fZmJfaGVscGVyX2ZvcmNlX2tlcm5lbF9tb2RlKCk7Cj4gPiArIMKg IMKgIMKgIGRybV9mYl9oZWxwZXJfZm9yY2Vfa2VybmVsX21vZGVfbG9ja2VkKCk7Cj4gCj4gQW55 IHJlYXNvbiB0byBkcm9wIHRoZSByZXR1cm4gaGVyZT8KPiAKPiBub3QganVzdCByZW1vdmUgdGhl IHJldHVybiAwPwoKT2ggbm87IEkgZG9uJ3QgdGhpbmsgdGhlIHJldHVybiB2YWx1ZSBpcyBjaGVj a2VkIGFueXdoZXJlIGJ1dCB3ZSBtYXkgYXMKd2VsbCByZXR1cm4gaXQgYW55d2F5LgoKLS0gCkpl c3NlIEJhcm5lcywgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK