All of lore.kernel.org
 help / color / mirror / Atom feed
* idr_remove called for id=0 which is not allocated
@ 2010-09-22 21:10 Alessandro Guido
  2010-09-22 21:17 ` Alessandro Guido
  2010-09-23  5:56 ` Andrew Morton
  0 siblings, 2 replies; 9+ messages in thread
From: Alessandro Guido @ 2010-09-22 21:10 UTC (permalink / raw)
  To: linux-kernel; +Cc: dri-devel

[-- Attachment #1: Type: text/plain, Size: 9074 bytes --]

I have this traces in my logs (full dmesg attached).

idr_remove called for id=0 which is not allocated.
Pid: 1136, comm: Xorg Not tainted 2.6.36-rc5-49-gc79bd89 #1
Call Trace:
  [<c1379e16>] ? printk+0x18/0x1a
  [<c113b8f3>] idr_remove+0x73/0x1c0
  [<c11b8d6f>] drm_mode_object_put+0x2f/0x50
  [<c11b8f6e>] drm_mode_destroy+0xe/0x20
  [<c11eb24b>] nouveau_connector_get_modes+0x2b/0x390
  [<c1185b6f>] ? acpi_lid_open+0x22/0x3c
  [<c103800b>] ? queue_delayed_work+0x1b/0x30
  [<c11abf34>] drm_helper_probe_single_connector_modes+0xc4/0x360
  [<c11bb6a7>] drm_mode_getconnector+0x2a7/0x350
  [<c11b00d2>] drm_ioctl+0x1c2/0x4b0
  [<c1068071>] ? filemap_fault+0x81/0x3c0
  [<c11bb400>] ? drm_mode_getconnector+0x0/0x350
  [<c107bedf>] ? handle_mm_fault+0x13f/0x670
  [<c11aff10>] ? drm_ioctl+0x0/0x4b0
  [<c109c90d>] do_vfs_ioctl+0x7d/0x5f0
  [<c101a14c>] ? do_page_fault+0x17c/0x3c0
  [<c108fc6d>] ? vfs_write+0xfd/0x140
  [<c108f1c0>] ? do_sync_write+0x0/0xe0
  [<c109ceb9>] sys_ioctl+0x39/0x60
  [<c1002b90>] sysenter_do_call+0x12/0x26
idr_remove called for id=0 which is not allocated.
Pid: 1136, comm: Xorg Not tainted 2.6.36-rc5-49-gc79bd89 #1
Call Trace:
  [<c1379e16>] ? printk+0x18/0x1a
  [<c113b8f3>] idr_remove+0x73/0x1c0
  [<c11b8d6f>] drm_mode_object_put+0x2f/0x50
  [<c11b8f6e>] drm_mode_destroy+0xe/0x20
  [<c11eb24b>] nouveau_connector_get_modes+0x2b/0x390
  [<c1185b6f>] ? acpi_lid_open+0x22/0x3c
  [<c103800b>] ? queue_delayed_work+0x1b/0x30
  [<c11abf34>] drm_helper_probe_single_connector_modes+0xc4/0x360
  [<c11bb6a7>] drm_mode_getconnector+0x2a7/0x350
  [<c11b00d2>] drm_ioctl+0x1c2/0x4b0
  [<c1068071>] ? filemap_fault+0x81/0x3c0
  [<c11bb400>] ? drm_mode_getconnector+0x0/0x350
  [<c107bedf>] ? handle_mm_fault+0x13f/0x670
  [<c11aff10>] ? drm_ioctl+0x0/0x4b0
  [<c109c90d>] do_vfs_ioctl+0x7d/0x5f0
  [<c101a14c>] ? do_page_fault+0x17c/0x3c0
  [<c108fc6d>] ? vfs_write+0xfd/0x140
  [<c108f1c0>] ? do_sync_write+0x0/0xe0
  [<c109ceb9>] sys_ioctl+0x39/0x60
  [<c1002b90>] sysenter_do_call+0x12/0x26
[drm] nouveau 0000:01:00.0: Allocating FIFO number 1
[drm] nouveau 0000:01:00.0: nouveau_channel_alloc: initialised FIFO 1
idr_remove called for id=0 which is not allocated.
Pid: 1136, comm: Xorg Not tainted 2.6.36-rc5-49-gc79bd89 #1
Call Trace:
  [<c1379e16>] ? printk+0x18/0x1a
  [<c113b8f3>] idr_remove+0x73/0x1c0
  [<c11b8d6f>] drm_mode_object_put+0x2f/0x50
  [<c11b8f6e>] drm_mode_destroy+0xe/0x20
  [<c11eb24b>] nouveau_connector_get_modes+0x2b/0x390
  [<c1185b6f>] ? acpi_lid_open+0x22/0x3c
  [<c103800b>] ? queue_delayed_work+0x1b/0x30
  [<c11abf34>] drm_helper_probe_single_connector_modes+0xc4/0x360
  [<c11bb6a7>] drm_mode_getconnector+0x2a7/0x350
  [<c12ed55a>] ? __kfree_skb+0x3a/0x90
  [<c11b00d2>] drm_ioctl+0x1c2/0x4b0
  [<c11bb400>] ? drm_mode_getconnector+0x0/0x350
  [<c108f344>] ? do_sync_read+0xa4/0xe0
  [<c107bfa1>] ? handle_mm_fault+0x201/0x670
  [<c11aff10>] ? drm_ioctl+0x0/0x4b0
  [<c109c90d>] do_vfs_ioctl+0x7d/0x5f0
  [<c101a14c>] ? do_page_fault+0x17c/0x3c0
  [<c108fe96>] ? vfs_read+0xf6/0x140
  [<c109ceb9>] sys_ioctl+0x39/0x60
  [<c1002b90>] sysenter_do_call+0x12/0x26
idr_remove called for id=0 which is not allocated.
Pid: 1136, comm: Xorg Not tainted 2.6.36-rc5-49-gc79bd89 #1
Call Trace:
  [<c1379e16>] ? printk+0x18/0x1a
  [<c113b8f3>] idr_remove+0x73/0x1c0
  [<c11b8d6f>] drm_mode_object_put+0x2f/0x50
  [<c11b8f6e>] drm_mode_destroy+0xe/0x20
  [<c11eb24b>] nouveau_connector_get_modes+0x2b/0x390
  [<c1185b6f>] ? acpi_lid_open+0x22/0x3c
  [<c103800b>] ? queue_delayed_work+0x1b/0x30
  [<c11abf34>] drm_helper_probe_single_connector_modes+0xc4/0x360
  [<c11bb6a7>] drm_mode_getconnector+0x2a7/0x350
  [<c12ed55a>] ? __kfree_skb+0x3a/0x90
  [<c11b00d2>] drm_ioctl+0x1c2/0x4b0
  [<c11bb400>] ? drm_mode_getconnector+0x0/0x350
  [<c108f344>] ? do_sync_read+0xa4/0xe0
  [<c113f56b>] ? rb_insert_color+0xdb/0x110
  [<c11aff10>] ? drm_ioctl+0x0/0x4b0
  [<c109c90d>] do_vfs_ioctl+0x7d/0x5f0
  [<c1040ad3>] ? hrtimer_start+0x23/0x30
  [<c108fe96>] ? vfs_read+0xf6/0x140
  [<c109ceb9>] sys_ioctl+0x39/0x60
  [<c1002b90>] sysenter_do_call+0x12/0x26
idr_remove called for id=0 which is not allocated.
Pid: 1136, comm: Xorg Not tainted 2.6.36-rc5-49-gc79bd89 #1
Call Trace:
  [<c1379e16>] ? printk+0x18/0x1a
  [<c113b8f3>] idr_remove+0x73/0x1c0
  [<c11b8d6f>] drm_mode_object_put+0x2f/0x50
  [<c11b8f6e>] drm_mode_destroy+0xe/0x20
  [<c11eb24b>] nouveau_connector_get_modes+0x2b/0x390
  [<c1185b6f>] ? acpi_lid_open+0x22/0x3c
  [<c103800b>] ? queue_delayed_work+0x1b/0x30
  [<c11abf34>] drm_helper_probe_single_connector_modes+0xc4/0x360
  [<c11bb6a7>] drm_mode_getconnector+0x2a7/0x350
  [<c12ed55a>] ? __kfree_skb+0x3a/0x90
  [<c11b00d2>] drm_ioctl+0x1c2/0x4b0
  [<c11bb400>] ? drm_mode_getconnector+0x0/0x350
  [<c108f344>] ? do_sync_read+0xa4/0xe0
  [<c113f56b>] ? rb_insert_color+0xdb/0x110
  [<c11aff10>] ? drm_ioctl+0x0/0x4b0
  [<c109c90d>] do_vfs_ioctl+0x7d/0x5f0
  [<c1040ad3>] ? hrtimer_start+0x23/0x30
  [<c108fe96>] ? vfs_read+0xf6/0x140
  [<c109ceb9>] sys_ioctl+0x39/0x60
  [<c1002b90>] sysenter_do_call+0x12/0x26
EXT4-fs (sda3): re-mounted. Opts: nobarrier,commit=0
EXT4-fs (sda4): re-mounted. Opts: commit=0
idr_remove called for id=0 which is not allocated.
Pid: 1136, comm: Xorg Not tainted 2.6.36-rc5-49-gc79bd89 #1
Call Trace:
  [<c1379e16>] ? printk+0x18/0x1a
  [<c113b8f3>] idr_remove+0x73/0x1c0
  [<c11b8d6f>] drm_mode_object_put+0x2f/0x50
  [<c11b8f6e>] drm_mode_destroy+0xe/0x20
  [<c11eb24b>] nouveau_connector_get_modes+0x2b/0x390
  [<c1185b6f>] ? acpi_lid_open+0x22/0x3c
  [<c103800b>] ? queue_delayed_work+0x1b/0x30
  [<c11abf34>] drm_helper_probe_single_connector_modes+0xc4/0x360
  [<c11bb6a7>] drm_mode_getconnector+0x2a7/0x350
  [<c12ed55a>] ? __kfree_skb+0x3a/0x90
  [<c11b00d2>] drm_ioctl+0x1c2/0x4b0
  [<c11bb400>] ? drm_mode_getconnector+0x0/0x350
  [<c108f344>] ? do_sync_read+0xa4/0xe0
  [<c113f56b>] ? rb_insert_color+0xdb/0x110
  [<c11aff10>] ? drm_ioctl+0x0/0x4b0
  [<c109c90d>] do_vfs_ioctl+0x7d/0x5f0
  [<c1040ad3>] ? hrtimer_start+0x23/0x30
  [<c108fe96>] ? vfs_read+0xf6/0x140
  [<c109ceb9>] sys_ioctl+0x39/0x60
  [<c1002b90>] sysenter_do_call+0x12/0x26
idr_remove called for id=0 which is not allocated.
Pid: 1136, comm: Xorg Not tainted 2.6.36-rc5-49-gc79bd89 #1
Call Trace:
  [<c1379e16>] ? printk+0x18/0x1a
  [<c113b8f3>] idr_remove+0x73/0x1c0
  [<c11b8d6f>] drm_mode_object_put+0x2f/0x50
  [<c11b8f6e>] drm_mode_destroy+0xe/0x20
  [<c11eb24b>] nouveau_connector_get_modes+0x2b/0x390
  [<c1185b6f>] ? acpi_lid_open+0x22/0x3c
  [<c103800b>] ? queue_delayed_work+0x1b/0x30
  [<c11abf34>] drm_helper_probe_single_connector_modes+0xc4/0x360
  [<c11bb6a7>] drm_mode_getconnector+0x2a7/0x350
  [<c12ed55a>] ? __kfree_skb+0x3a/0x90
  [<c11b00d2>] drm_ioctl+0x1c2/0x4b0
  [<c11bb400>] ? drm_mode_getconnector+0x0/0x350
  [<c108f344>] ? do_sync_read+0xa4/0xe0
  [<c113f56b>] ? rb_insert_color+0xdb/0x110
  [<c11aff10>] ? drm_ioctl+0x0/0x4b0
  [<c109c90d>] do_vfs_ioctl+0x7d/0x5f0
  [<c1040ad3>] ? hrtimer_start+0x23/0x30
  [<c108fe96>] ? vfs_read+0xf6/0x140
  [<c109ceb9>] sys_ioctl+0x39/0x60
  [<c1002b90>] sysenter_do_call+0x12/0x26
idr_remove called for id=0 which is not allocated.
Pid: 1136, comm: Xorg Not tainted 2.6.36-rc5-49-gc79bd89 #1
Call Trace:
  [<c1379e16>] ? printk+0x18/0x1a
  [<c113b8f3>] idr_remove+0x73/0x1c0
  [<c11b8d6f>] drm_mode_object_put+0x2f/0x50
  [<c11b8f6e>] drm_mode_destroy+0xe/0x20
  [<c11eb24b>] nouveau_connector_get_modes+0x2b/0x390
  [<c1185b6f>] ? acpi_lid_open+0x22/0x3c
  [<c103800b>] ? queue_delayed_work+0x1b/0x30
  [<c11abf34>] drm_helper_probe_single_connector_modes+0xc4/0x360
  [<c11bb6a7>] drm_mode_getconnector+0x2a7/0x350
  [<c12ed55a>] ? __kfree_skb+0x3a/0x90
  [<c11b00d2>] drm_ioctl+0x1c2/0x4b0
  [<c11bb400>] ? drm_mode_getconnector+0x0/0x350
  [<c108f344>] ? do_sync_read+0xa4/0xe0
  [<c113f56b>] ? rb_insert_color+0xdb/0x110
  [<c11aff10>] ? drm_ioctl+0x0/0x4b0
  [<c109c90d>] do_vfs_ioctl+0x7d/0x5f0
  [<c1040ad3>] ? hrtimer_start+0x23/0x30
  [<c108fe96>] ? vfs_read+0xf6/0x140
  [<c109ceb9>] sys_ioctl+0x39/0x60
  [<c1002b90>] sysenter_do_call+0x12/0x26
idr_remove called for id=0 which is not allocated.
Pid: 1136, comm: Xorg Not tainted 2.6.36-rc5-49-gc79bd89 #1
Call Trace:
  [<c1379e16>] ? printk+0x18/0x1a
  [<c113b8f3>] idr_remove+0x73/0x1c0
  [<c11b8d6f>] drm_mode_object_put+0x2f/0x50
  [<c11b8f6e>] drm_mode_destroy+0xe/0x20
  [<c11eb24b>] nouveau_connector_get_modes+0x2b/0x390
  [<c1185b6f>] ? acpi_lid_open+0x22/0x3c
  [<c103800b>] ? queue_delayed_work+0x1b/0x30
  [<c11abf34>] drm_helper_probe_single_connector_modes+0xc4/0x360
  [<c11bb6a7>] drm_mode_getconnector+0x2a7/0x350
  [<c12ed55a>] ? __kfree_skb+0x3a/0x90
  [<c11b00d2>] drm_ioctl+0x1c2/0x4b0
  [<c11bb400>] ? drm_mode_getconnector+0x0/0x350
  [<c108f344>] ? do_sync_read+0xa4/0xe0
  [<c113f56b>] ? rb_insert_color+0xdb/0x110
  [<c11aff10>] ? drm_ioctl+0x0/0x4b0
  [<c109c90d>] do_vfs_ioctl+0x7d/0x5f0
  [<c1040ad3>] ? hrtimer_start+0x23/0x30
  [<c108fe96>] ? vfs_read+0xf6/0x140
  [<c109ceb9>] sys_ioctl+0x39/0x60
  [<c1002b90>] sysenter_do_call+0x12/0x26

[-- Attachment #2: dmesg.gz --]
[-- Type: application/x-gzip, Size: 8339 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: idr_remove called for id=0 which is not allocated
  2010-09-22 21:10 idr_remove called for id=0 which is not allocated Alessandro Guido
@ 2010-09-22 21:17 ` Alessandro Guido
  2010-09-23  5:56 ` Andrew Morton
  1 sibling, 0 replies; 9+ messages in thread
From: Alessandro Guido @ 2010-09-22 21:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: dri-devel

[-- Attachment #1: Type: text/plain, Size: 16 bytes --]

config attached

[-- Attachment #2: config.gz --]
[-- Type: application/x-gzip, Size: 3333 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: idr_remove called for id=0 which is not allocated
  2010-09-22 21:10 idr_remove called for id=0 which is not allocated Alessandro Guido
  2010-09-22 21:17 ` Alessandro Guido
@ 2010-09-23  5:56 ` Andrew Morton
  2010-09-23  6:33   ` Ben Skeggs
                     ` (2 more replies)
  1 sibling, 3 replies; 9+ messages in thread
From: Andrew Morton @ 2010-09-23  5:56 UTC (permalink / raw)
  To: Alessandro Guido; +Cc: linux-kernel, dri-devel

On Wed, 22 Sep 2010 23:10:10 +0200 Alessandro Guido <ag@alessandroguido.name> wrote:

> I have this traces in my logs (full dmesg attached).
> 
> idr_remove called for id=0 which is not allocated.
> Pid: 1136, comm: Xorg Not tainted 2.6.36-rc5-49-gc79bd89 #1
> Call Trace:
>   [<c1379e16>] ? printk+0x18/0x1a
>   [<c113b8f3>] idr_remove+0x73/0x1c0
>   [<c11b8d6f>] drm_mode_object_put+0x2f/0x50
>   [<c11b8f6e>] drm_mode_destroy+0xe/0x20
>   [<c11eb24b>] nouveau_connector_get_modes+0x2b/0x390
>   [<c1185b6f>] ? acpi_lid_open+0x22/0x3c
>   [<c103800b>] ? queue_delayed_work+0x1b/0x30
>   [<c11abf34>] drm_helper_probe_single_connector_modes+0xc4/0x360
>   [<c11bb6a7>] drm_mode_getconnector+0x2a7/0x350
>   [<c11b00d2>] drm_ioctl+0x1c2/0x4b0
>   [<c1068071>] ? filemap_fault+0x81/0x3c0
>   [<c11bb400>] ? drm_mode_getconnector+0x0/0x350
>   [<c107bedf>] ? handle_mm_fault+0x13f/0x670
>   [<c11aff10>] ? drm_ioctl+0x0/0x4b0
>   [<c109c90d>] do_vfs_ioctl+0x7d/0x5f0
>   [<c101a14c>] ? do_page_fault+0x17c/0x3c0
>   [<c108fc6d>] ? vfs_write+0xfd/0x140
>   [<c108f1c0>] ? do_sync_write+0x0/0xe0
>   [<c109ceb9>] sys_ioctl+0x39/0x60
>   [<c1002b90>] sysenter_do_call+0x12/0x26

I assume this is a regression.  2.6.35 didn't do this?

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: idr_remove called for id=0 which is not allocated
  2010-09-23  5:56 ` Andrew Morton
@ 2010-09-23  6:33   ` Ben Skeggs
  2010-09-23  6:44   ` [PATCH] drm/nouveau: fix panels using straps-based mode detection Ben Skeggs
  2010-09-23  9:24   ` idr_remove called for id=0 which is not allocated Alessandro Guido
  2 siblings, 0 replies; 9+ messages in thread
From: Ben Skeggs @ 2010-09-23  6:33 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Alessandro Guido, linux-kernel, dri-devel

On Wed, 2010-09-22 at 22:56 -0700, Andrew Morton wrote:
> On Wed, 22 Sep 2010 23:10:10 +0200 Alessandro Guido <ag@alessandroguido.name> wrote:
> 
> > I have this traces in my logs (full dmesg attached).
> > 
> > idr_remove called for id=0 which is not allocated.
> > Pid: 1136, comm: Xorg Not tainted 2.6.36-rc5-49-gc79bd89 #1
> > Call Trace:
> >   [<c1379e16>] ? printk+0x18/0x1a
> >   [<c113b8f3>] idr_remove+0x73/0x1c0
> >   [<c11b8d6f>] drm_mode_object_put+0x2f/0x50
> >   [<c11b8f6e>] drm_mode_destroy+0xe/0x20
> >   [<c11eb24b>] nouveau_connector_get_modes+0x2b/0x390
> >   [<c1185b6f>] ? acpi_lid_open+0x22/0x3c
> >   [<c103800b>] ? queue_delayed_work+0x1b/0x30
> >   [<c11abf34>] drm_helper_probe_single_connector_modes+0xc4/0x360
> >   [<c11bb6a7>] drm_mode_getconnector+0x2a7/0x350
> >   [<c11b00d2>] drm_ioctl+0x1c2/0x4b0
> >   [<c1068071>] ? filemap_fault+0x81/0x3c0
> >   [<c11bb400>] ? drm_mode_getconnector+0x0/0x350
> >   [<c107bedf>] ? handle_mm_fault+0x13f/0x670
> >   [<c11aff10>] ? drm_ioctl+0x0/0x4b0
> >   [<c109c90d>] do_vfs_ioctl+0x7d/0x5f0
> >   [<c101a14c>] ? do_page_fault+0x17c/0x3c0
> >   [<c108fc6d>] ? vfs_write+0xfd/0x140
> >   [<c108f1c0>] ? do_sync_write+0x0/0xe0
> >   [<c109ceb9>] sys_ioctl+0x39/0x60
> >   [<c1002b90>] sysenter_do_call+0x12/0x26
> 
> I assume this is a regression.  2.6.35 didn't do this?
Yes, I suspect 6e86e0419471d11ed3d4d46039ee90e8cb85806c is the culprit.

I'll send a patch to Dave, but I can't test it personally, I don't have
any hardware the manufacturer has configured in the way it'd need to be
to trigger this.

Ben.
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH] drm/nouveau: fix panels using straps-based mode detection
  2010-09-23  5:56 ` Andrew Morton
  2010-09-23  6:33   ` Ben Skeggs
@ 2010-09-23  6:44   ` Ben Skeggs
  2010-09-23  9:13       ` Alessandro Guido
  2010-09-23 18:56     ` Phil Turmel
  2010-09-23  9:24   ` idr_remove called for id=0 which is not allocated Alessandro Guido
  2 siblings, 2 replies; 9+ messages in thread
From: Ben Skeggs @ 2010-09-23  6:44 UTC (permalink / raw)
  To: dri-devel; +Cc: airlied, linux-kernel, Ben Skeggs

From: Ben Skeggs <bskeggs@redhat.com>

nouveau_bios_fp_mode() zeroes the mode struct before filling in relevant
entries.  This nukes the mode id initialised by drm_mode_create(), and
causes warnings from idr when we try to remove the mode.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
---
 drivers/gpu/drm/nouveau/nouveau_connector.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index 98c214c..4b286a8 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -594,8 +594,10 @@ nouveau_connector_get_modes(struct drm_connector *connector)
 	if (nv_encoder->dcb->type == OUTPUT_LVDS &&
 	    (nv_encoder->dcb->lvdsconf.use_straps_for_mode ||
 	     dev_priv->vbios.fp_no_ddc) && nouveau_bios_fp_mode(dev, NULL)) {
-		nv_connector->native_mode = drm_mode_create(dev);
-		nouveau_bios_fp_mode(dev, nv_connector->native_mode);
+		struct drm_display_mode mode;
+
+		nouveau_bios_fp_mode(dev, &mode);
+		nv_connector->native_mode = drm_mode_duplicate(dev, &mode);
 	}
 
 	/* Find the native mode if this is a digital panel, if we didn't
-- 
1.7.2.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] drm/nouveau: fix panels using straps-based mode detection
  2010-09-23  6:44   ` [PATCH] drm/nouveau: fix panels using straps-based mode detection Ben Skeggs
@ 2010-09-23  9:13       ` Alessandro Guido
  2010-09-23 18:56     ` Phil Turmel
  1 sibling, 0 replies; 9+ messages in thread
From: Alessandro Guido @ 2010-09-23  9:13 UTC (permalink / raw)
  To: Ben Skeggs; +Cc: dri-devel, airlied, linux-kernel, Ben Skeggs

Fixes the problem on my system.

Thanks!

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] drm/nouveau: fix panels using straps-based mode detection
@ 2010-09-23  9:13       ` Alessandro Guido
  0 siblings, 0 replies; 9+ messages in thread
From: Alessandro Guido @ 2010-09-23  9:13 UTC (permalink / raw)
  To: Ben Skeggs; +Cc: airlied, linux-kernel, dri-devel, Ben Skeggs

Fixes the problem on my system.

Thanks!

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: idr_remove called for id=0 which is not allocated
  2010-09-23  5:56 ` Andrew Morton
  2010-09-23  6:33   ` Ben Skeggs
  2010-09-23  6:44   ` [PATCH] drm/nouveau: fix panels using straps-based mode detection Ben Skeggs
@ 2010-09-23  9:24   ` Alessandro Guido
  2 siblings, 0 replies; 9+ messages in thread
From: Alessandro Guido @ 2010-09-23  9:24 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, dri-devel

I'm really not sure when it was introduced, since I've switched to 
constantly use nouveau only recently, but I don't recall seeing anything 
of this when I tried in 2.6.34.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] drm/nouveau: fix panels using straps-based mode detection
  2010-09-23  6:44   ` [PATCH] drm/nouveau: fix panels using straps-based mode detection Ben Skeggs
  2010-09-23  9:13       ` Alessandro Guido
@ 2010-09-23 18:56     ` Phil Turmel
  1 sibling, 0 replies; 9+ messages in thread
From: Phil Turmel @ 2010-09-23 18:56 UTC (permalink / raw)
  To: Ben Skeggs; +Cc: dri-devel, airlied, linux-kernel, Ben Skeggs

On 09/23/2010 02:44 AM, Ben Skeggs wrote:
> From: Ben Skeggs <bskeggs@redhat.com>
> 
> nouveau_bios_fp_mode() zeroes the mode struct before filling in relevant
> entries.  This nukes the mode id initialised by drm_mode_create(), and
> causes warnings from idr when we try to remove the mode.
> 
> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
> ---
>  drivers/gpu/drm/nouveau/nouveau_connector.c |    6 ++++--
>  1 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
> index 98c214c..4b286a8 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_connector.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
> @@ -594,8 +594,10 @@ nouveau_connector_get_modes(struct drm_connector *connector)
>  	if (nv_encoder->dcb->type == OUTPUT_LVDS &&
>  	    (nv_encoder->dcb->lvdsconf.use_straps_for_mode ||
>  	     dev_priv->vbios.fp_no_ddc) && nouveau_bios_fp_mode(dev, NULL)) {
> -		nv_connector->native_mode = drm_mode_create(dev);
> -		nouveau_bios_fp_mode(dev, nv_connector->native_mode);
> +		struct drm_display_mode mode;
> +
> +		nouveau_bios_fp_mode(dev, &mode);
> +		nv_connector->native_mode = drm_mode_duplicate(dev, &mode);
>  	}
>  
>  	/* Find the native mode if this is a digital panel, if we didn't

I had this same problem, and this patch fixes it.  Feel free to add:

Tested-by: Philip J. Turmel <philip@turmel.org>

Regards,

Phil

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2010-09-23 18:56 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-22 21:10 idr_remove called for id=0 which is not allocated Alessandro Guido
2010-09-22 21:17 ` Alessandro Guido
2010-09-23  5:56 ` Andrew Morton
2010-09-23  6:33   ` Ben Skeggs
2010-09-23  6:44   ` [PATCH] drm/nouveau: fix panels using straps-based mode detection Ben Skeggs
2010-09-23  9:13     ` Alessandro Guido
2010-09-23  9:13       ` Alessandro Guido
2010-09-23 18:56     ` Phil Turmel
2010-09-23  9:24   ` idr_remove called for id=0 which is not allocated Alessandro Guido

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.