* 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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ messages in thread
end of thread, other threads:[~2010-09-23 18:56 UTC | newest]
Thread overview: 8+ 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 18:56 ` Phil Turmel
2010-09-23 9:24 ` idr_remove called for id=0 which is not allocated Alessandro Guido
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox