Re: [patch] i915: missing unlock on error path
On 05/07/2010 10:37 AM, Dan Carpenter wrote: There was a missing mutex_unlock(dev-struct_mutex) on this error path. Signed-off-by: Dan Carpenter erro...@gmail.com --- I thought Jiri sent this patch earlier but a google search for stanse struct_mutex i965_reset didn't find any patches, so I'm resending. I don't remember either. I found I had only fixed potential NULL-deref in i915_suspend. diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 01e91ea..a605c87 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -369,6 +369,7 @@ int i965_reset(struct drm_device *dev, u8 flags) } } else { DRM_ERROR(Error occurred. Don't know how to reset this chip.\n); + mutex_unlock(dev-struct_mutex); return -ENODEV; } -- js -- -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: i915 #GP [was: mmotm 2010-02-01-16-25 uploaded]
On 02/05/2010 09:34 AM, Jiri Slaby wrote: On 02/03/2010 10:41 PM, Jiri Slaby wrote: On 02/02/2010 01:25 AM, a...@linux-foundation.org wrote: The mm-of-the-moment snapshot 2010-02-01-16-25 has been uploaded to Hi, when thunderbird appears on clean X+xterm I get this with the snapshot: [drm:i915_gem_do_execbuffer] *ERROR* Invalid object handle 1073741824 at index 1 general protection fault: [#1] SMP last sysfs file: /sys/devices/pci:00/:00:1e.0/:04:00.0/resource CPU 0 Pid: 3412, comm: X Not tainted 2.6.33-rc6-mm1_64+ #941 To be filled by O.E.M./To Be Filled By O.E.M. RIP: 0010:[812579ef] [812579ef] i915_gem_do_execbuffer+0x3ef/0xbf0 RSP: 0018:8801c2313c68 EFLAGS: 00010202 RAX: 8801c2f6a7c8 RBX: 0002 RCX: 0049 RDX: 6b6b6b6b6b6b6b6b RSI: 81237e70 RDI: 8801c2a28738 RBP: 8801c2313d18 R08: R09: 0200 R10: R11: 0004 R12: 8801c2f6a7b8 R13: 8801c2313d38 R14: R15: fff7 FS: 7f4910c476f0() GS:88010020() knlGS: CS: 0010 DS: ES: CR0: 80050033 CR2: 7f48fb928000 CR3: 0001c2cd5000 CR4: 06f0 DR0: DR1: DR2: DR3: DR6: 0ff0 DR7: 0400 Process X (pid: 3412, threadinfo 8801c2312000, task 8801c3539c00) Stack: 81803580 00d0 8801c2e043d8 00d7ba90 0 0060 810be556 8801c5f918f8 8801c2f6a7b8 0 8801cbc0a048 8801c2f6a7b8 8801c5f918d8 Call Trace: [810be556] ? __slab_alloc+0x266/0x2f0 [81258584] i915_gem_execbuffer+0x1b4/0x360 [81253516] ? i915_gem_sw_finish_ioctl+0x96/0xd0 [812363ed] drm_ioctl+0x1bd/0x480 [8108fe12] ? unlock_page+0x22/0x30 [812583d0] ? i915_gem_execbuffer+0x0/0x360 [810a9dbb] ? handle_mm_fault+0x18b/0x3c0 [810d7468] vfs_ioctl+0x38/0xd0 [810d7ca0] do_vfs_ioctl+0x80/0x340 [81024841] ? do_page_fault+0x131/0x2d0 [810d7faa] sys_ioctl+0x4a/0x80 [81002e6b] system_call_fastpath+0x16/0x1b Code: 44 8b 5a 08 45 85 db 74 4f 31 db 4c 8b 65 a0 49 89 d5 66 2e 0f 1f 84 00 00 00 00 00 48 63 c3 49 8d 04 c4 48 8b 10 48 85 d2 74 25 48 8b 92 80 00 00 00 c7 82 a0 00 00 00 00 00 00 00 48 8b 38 48 RIP [812579ef] i915_gem_do_execbuffer+0x3ef/0xbf0 RSP 8801c2313c68 ---[ end trace 99140c91bbc9294a ]--- opposing to 2010-01-15-15-34 which was OK. This is a setup with no KMS with 2.9.1 intel X drv. Does reverting 859ddf09743a8cc680af33f7259ccd0fd36bfe9d help? For me it fixes the problem. (Adding some CCs) And when I revert drivers-gpu-drm-drm_crtc_helperc-fix-setting-of-fb_changed-in-drm_crtc_helper_set_config.patch I can even use KMS with intel. The fb_changed patch causes X to not render the screen, I can blindly move windows after X starts, cursors changes, but the screen is always black. regards, -- js -- The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: i915 #GP [was: mmotm 2010-02-01-16-25 uploaded]
On 02/03/2010 10:41 PM, Jiri Slaby wrote: On 02/02/2010 01:25 AM, a...@linux-foundation.org wrote: The mm-of-the-moment snapshot 2010-02-01-16-25 has been uploaded to Hi, when thunderbird appears on clean X+xterm I get this with the snapshot: [drm:i915_gem_do_execbuffer] *ERROR* Invalid object handle 1073741824 at index 1 general protection fault: [#1] SMP last sysfs file: /sys/devices/pci:00/:00:1e.0/:04:00.0/resource CPU 0 Pid: 3412, comm: X Not tainted 2.6.33-rc6-mm1_64+ #941 To be filled by O.E.M./To Be Filled By O.E.M. RIP: 0010:[812579ef] [812579ef] i915_gem_do_execbuffer+0x3ef/0xbf0 RSP: 0018:8801c2313c68 EFLAGS: 00010202 RAX: 8801c2f6a7c8 RBX: 0002 RCX: 0049 RDX: 6b6b6b6b6b6b6b6b RSI: 81237e70 RDI: 8801c2a28738 RBP: 8801c2313d18 R08: R09: 0200 R10: R11: 0004 R12: 8801c2f6a7b8 R13: 8801c2313d38 R14: R15: fff7 FS: 7f4910c476f0() GS:88010020() knlGS: CS: 0010 DS: ES: CR0: 80050033 CR2: 7f48fb928000 CR3: 0001c2cd5000 CR4: 06f0 DR0: DR1: DR2: DR3: DR6: 0ff0 DR7: 0400 Process X (pid: 3412, threadinfo 8801c2312000, task 8801c3539c00) Stack: 81803580 00d0 8801c2e043d8 00d7ba90 0 0060 810be556 8801c5f918f8 8801c2f6a7b8 0 8801cbc0a048 8801c2f6a7b8 8801c5f918d8 Call Trace: [810be556] ? __slab_alloc+0x266/0x2f0 [81258584] i915_gem_execbuffer+0x1b4/0x360 [81253516] ? i915_gem_sw_finish_ioctl+0x96/0xd0 [812363ed] drm_ioctl+0x1bd/0x480 [8108fe12] ? unlock_page+0x22/0x30 [812583d0] ? i915_gem_execbuffer+0x0/0x360 [810a9dbb] ? handle_mm_fault+0x18b/0x3c0 [810d7468] vfs_ioctl+0x38/0xd0 [810d7ca0] do_vfs_ioctl+0x80/0x340 [81024841] ? do_page_fault+0x131/0x2d0 [810d7faa] sys_ioctl+0x4a/0x80 [81002e6b] system_call_fastpath+0x16/0x1b Code: 44 8b 5a 08 45 85 db 74 4f 31 db 4c 8b 65 a0 49 89 d5 66 2e 0f 1f 84 00 00 00 00 00 48 63 c3 49 8d 04 c4 48 8b 10 48 85 d2 74 25 48 8b 92 80 00 00 00 c7 82 a0 00 00 00 00 00 00 00 48 8b 38 48 RIP [812579ef] i915_gem_do_execbuffer+0x3ef/0xbf0 RSP 8801c2313c68 ---[ end trace 99140c91bbc9294a ]--- opposing to 2010-01-15-15-34 which was OK. This is a setup with no KMS with 2.9.1 intel X drv. Does reverting 859ddf09743a8cc680af33f7259ccd0fd36bfe9d help? For me it fixes the problem. -- js -- The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
i915 #GP [was: mmotm 2010-02-01-16-25 uploaded]
On 02/02/2010 01:25 AM, a...@linux-foundation.org wrote: The mm-of-the-moment snapshot 2010-02-01-16-25 has been uploaded to Hi, when thunderbird appears on clean X+xterm I get this with the snapshot: [drm:i915_gem_do_execbuffer] *ERROR* Invalid object handle 1073741824 at index 1 general protection fault: [#1] SMP last sysfs file: /sys/devices/pci:00/:00:1e.0/:04:00.0/resource CPU 0 Pid: 3412, comm: X Not tainted 2.6.33-rc6-mm1_64+ #941 To be filled by O.E.M./To Be Filled By O.E.M. RIP: 0010:[812579ef] [812579ef] i915_gem_do_execbuffer+0x3ef/0xbf0 RSP: 0018:8801c2313c68 EFLAGS: 00010202 RAX: 8801c2f6a7c8 RBX: 0002 RCX: 0049 RDX: 6b6b6b6b6b6b6b6b RSI: 81237e70 RDI: 8801c2a28738 RBP: 8801c2313d18 R08: R09: 0200 R10: R11: 0004 R12: 8801c2f6a7b8 R13: 8801c2313d38 R14: R15: fff7 FS: 7f4910c476f0() GS:88010020() knlGS: CS: 0010 DS: ES: CR0: 80050033 CR2: 7f48fb928000 CR3: 0001c2cd5000 CR4: 06f0 DR0: DR1: DR2: DR3: DR6: 0ff0 DR7: 0400 Process X (pid: 3412, threadinfo 8801c2312000, task 8801c3539c00) Stack: 81803580 00d0 8801c2e043d8 00d7ba90 0 0060 810be556 8801c5f918f8 8801c2f6a7b8 0 8801cbc0a048 8801c2f6a7b8 8801c5f918d8 Call Trace: [810be556] ? __slab_alloc+0x266/0x2f0 [81258584] i915_gem_execbuffer+0x1b4/0x360 [81253516] ? i915_gem_sw_finish_ioctl+0x96/0xd0 [812363ed] drm_ioctl+0x1bd/0x480 [8108fe12] ? unlock_page+0x22/0x30 [812583d0] ? i915_gem_execbuffer+0x0/0x360 [810a9dbb] ? handle_mm_fault+0x18b/0x3c0 [810d7468] vfs_ioctl+0x38/0xd0 [810d7ca0] do_vfs_ioctl+0x80/0x340 [81024841] ? do_page_fault+0x131/0x2d0 [810d7faa] sys_ioctl+0x4a/0x80 [81002e6b] system_call_fastpath+0x16/0x1b Code: 44 8b 5a 08 45 85 db 74 4f 31 db 4c 8b 65 a0 49 89 d5 66 2e 0f 1f 84 00 00 00 00 00 48 63 c3 49 8d 04 c4 48 8b 10 48 85 d2 74 25 48 8b 92 80 00 00 00 c7 82 a0 00 00 00 00 00 00 00 48 8b 38 48 RIP [812579ef] i915_gem_do_execbuffer+0x3ef/0xbf0 RSP 8801c2313c68 ---[ end trace 99140c91bbc9294a ]--- opposing to 2010-01-15-15-34 which was OK. This is a setup with no KMS with 2.9.1 intel X drv. thanks, -- js -- The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
i915: gpu wedged [was: mmotm 2010-01-15-15-34 uploaded]
On 01/16/2010 12:34 AM, a...@linux-foundation.org wrote: The mm-of-the-moment snapshot 2010-01-15-15-34 has been uploaded to So I've decided to switch to KMS on this kernel with 00:02.0 VGA compatible controller [0300]: Intel Corporation 82G33/G31 Express Integrated Graphics Controller [8086:29c2] (rev 02) (prog-if 00 [VGA controller]) Subsystem: Intel Corporation 82G33/G31 Express Integrated Graphics Controller [8086:29c2] Flags: bus master, fast devsel, latency 0, IRQ 26 Memory at ffa8 (32-bit, non-prefetchable) [size=512K] I/O ports at ec00 [size=8] Memory at d000 (32-bit, prefetchable) [size=256M] Memory at ff90 (32-bit, non-prefetchable) [size=1M] Expansion ROM at unassigned [disabled] Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit- Capabilities: [d0] Power Management version 2 Kernel driver in use: i915 with this X driver: (II) Module intel: vendor=X.Org Foundation compiled for 1.7.4, module version = 2.10.0 Module class: X.Org Video Driver ABI class: X.Org Video Driver, version 6.0 on X.Org X Server 1.7.4 and after some time I get: (WW) intel(0): i830_uxa_prepare_access: gtt bo map failed: Input/output error (EE) intel(0): Failed to submit batch buffer, expect rendering corruption or even a frozen display: Input/output er ror. (WW) intel(0): i830_uxa_pixmap_swap_bo_with_image: bo map failed (WW) intel(0): i830_uxa_prepare_access: gtt bo map failed: Input/output error (WW) intel(0): i830_uxa_prepare_access: gtt bo map failed: Input/output error (WW) intel(0): i830_uxa_prepare_access: gtt bo map failed: Input/output error (EE) intel(0): Failed to submit batch buffer, expect rendering corruption or even a frozen display: Input/output er ror. (EE) intel(0): Failed to submit batch buffer, expect rendering corruption or even a frozen display: Input/output er and kernel says: [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung render error detected, EIR: 0x [drm:i915_do_wait_request] *ERROR* i915_do_wait_request returns -5 (awaiting 153151 at 153150) [drm:i915_gem_execbuffer] *ERROR* i915_gem_do_execbuffer returns -5 From debugfs/dri/0/i915_wedged, the GPU is wedged. regards, -- js -- Throughout its 18-year history, RSA Conference consistently attracts the world's best and brightest in the field, creating opportunities for Conference attendees to learn about information security's most important issues through interactions with peers, luminaries and emerging and established companies. http://p.sf.net/sfu/rsaconf-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: i915: gpu wedged [was: mmotm 2010-01-15-15-34 uploaded]
On 01/23/2010 01:56 PM, Jiri Slaby wrote: and kernel says: [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung render error detected, EIR: 0x [drm:i915_do_wait_request] *ERROR* i915_do_wait_request returns -5 (awaiting 153151 at 153150) [drm:i915_gem_execbuffer] *ERROR* i915_gem_do_execbuffer returns -5 And it happens pretty regularly when accessing digitalnitelevize.cz with firefox 3.6. Maybe some kind of flash crud triggers it? -- js -- Throughout its 18-year history, RSA Conference consistently attracts the world's best and brightest in the field, creating opportunities for Conference attendees to learn about information security's most important issues through interactions with peers, luminaries and emerging and established companies. http://p.sf.net/sfu/rsaconf-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH] GPU: drm/i915, fix potential null dereference
Stanse found a potential null dereference in i915_suspend. There is a check for dev and dev_priv being NULL, but dev is dereferenced earlier. Move the dereference after the check. Signed-off-by: Jiri Slaby jsl...@suse.cz --- drivers/gpu/drm/i915/i915_drv.c | 18 +- 1 files changed, 13 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 2d7..6fc4473 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -173,12 +173,17 @@ MODULE_DEVICE_TABLE(pci, pciidlist); static int i915_suspend(struct drm_device *dev, pm_message_t state) { - struct drm_i915_private *dev_priv = dev-dev_private; + struct drm_i915_private *dev_priv; - if (!dev || !dev_priv) { - DRM_ERROR(dev: %p, dev_priv: %p\n, dev, dev_priv); - DRM_ERROR(DRM not initialized, aborting suspend.\n); - return -ENODEV; + if (!dev) { + DRM_ERROR(dev: %p\n, dev); + goto abort; + } + + dev_priv = dev-dev_private; + if (!dev_priv) { + DRM_ERROR(dev_priv: %p\n, dev_priv); + goto abort; } if (state.event == PM_EVENT_PRETHAW) @@ -208,6 +213,9 @@ static int i915_suspend(struct drm_device *dev, pm_message_t state) dev_priv-modeset_on_lid = 0; return 0; +abort: + DRM_ERROR(DRM not initialized, aborting suspend.\n); + return -ENODEV; } static int i915_resume(struct drm_device *dev) -- 1.6.5.7 -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 1/1] GPU: radeon, fix memory leak
Stanse found a memory leak in radeon_master_create. master_priv is not freed/assigned on all paths. Fix that. Signed-off-by: Jiri Slaby jsl...@suse.cz --- drivers/gpu/drm/radeon/radeon_cp.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c index 0b2f9c2..06123ba 100644 --- a/drivers/gpu/drm/radeon/radeon_cp.c +++ b/drivers/gpu/drm/radeon/radeon_cp.c @@ -2145,6 +2145,7 @@ int radeon_master_create(struct drm_device *dev, struct drm_master *master) master_priv-sarea); if (ret) { DRM_ERROR(SAREA setup failed\n); + kfree(master_priv); return ret; } master_priv-sarea_priv = master_priv-sarea-handle + sizeof(struct drm_sarea); -- 1.6.5.7 -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: DRM/ttm: Unreachable code in ttm_bo_add_ttm
On 12/08/2009 12:28 AM, Dave Airlie wrote: From 447aeb907e417e0e837b4a4026d5081c88b6e8ca Mon Sep 17 00:00:00 2001 From: Dave Airlie airl...@redhat.com Date: Tue, 8 Dec 2009 09:25:45 +1000 Subject: [PATCH] drm/ttm: fix unreachable code. None of the in-tree drivers use user objects yet so this wasn't hitting us. Stanse found unreachable code in ttm_bo_add_ttm: http://decibel.fi.muni.cz/~xslaby/stanse/error.cgi?db=32id=714#l238 Please don't use the link in changelog, it's only temporary. Well, it will probably be there for months, but the changelog will be there forever. Thanks. -- Return on Information: Google Enterprise Search pays you back Get the facts. http://p.sf.net/sfu/google-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
DRM/ttm: Unreachable code in ttm_bo_add_ttm
Hi, Stanse found unreachable code in ttm_bo_add_ttm: http://decibel.fi.muni.cz/~xslaby/stanse/error.cgi?db=32id=714#l238 Excerpt from there: 230| case ttm_bo_type_user: 231| bo-ttm = ttm_tt_create(bdev, bo-num_pages 12, 232| page_flags | (1 1), 233| glob-dummy_read_page); 234| if (bo-ttm == ((void *)0)) 235| ret = -12; 236| break; 237| 238| ret = ttm_tt_set_user(bo-ttm, get_current(), |This node is unreachable prev next 239| bo-buffer_start, bo-num_pages); 240| if (ret != 0) 241| ttm_tt_destroy(bo-ttm); 242| break; regards, -- js -- Return on Information: Google Enterprise Search pays you back Get the facts. http://p.sf.net/sfu/google-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 1/1] GPU: vgaarb, use %p in pointers prints
To avoid compiler warnings about different size, remove pointer-to-int cast and use %p directly. Signed-off-by: Jiri Slaby jirisl...@gmail.com Cc: Benjamin Herrenschmidt b...@kernel.crashing.org Cc: Tiago Vignatti tiago.vigna...@nokia.com Cc: Dave Airlie airl...@redhat.com Cc: Jesse Barnes jbar...@virtuousgeek.org --- drivers/gpu/vga/vgaarb.c | 10 +- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c index 199138f..2f69cd0 100644 --- a/drivers/gpu/vga/vgaarb.c +++ b/drivers/gpu/vga/vgaarb.c @@ -831,7 +831,7 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf, curr_pos += 5; remaining -= 5; - pr_devel(client 0x%X called 'lock'\n, (int)priv); + pr_devel(client %p called 'lock'\n, priv); if (!vga_str_to_iostate(curr_pos, remaining, io_state)) { ret_val = -EPROTO; @@ -867,7 +867,7 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf, curr_pos += 7; remaining -= 7; - pr_devel(client 0x%X called 'unlock'\n, (int)priv); + pr_devel(client %p called 'unlock'\n, priv); if (strncmp(curr_pos, all, 3) == 0) io_state = VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM; @@ -917,7 +917,7 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf, curr_pos += 8; remaining -= 8; - pr_devel(client 0x%X called 'trylock'\n, (int)priv); + pr_devel(client %p called 'trylock'\n, priv); if (!vga_str_to_iostate(curr_pos, remaining, io_state)) { ret_val = -EPROTO; @@ -960,7 +960,7 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf, curr_pos += 7; remaining -= 7; - pr_devel(client 0x%X called 'target'\n, (int)priv); + pr_devel(client %p called 'target'\n, priv); /* if target is default */ if (!strncmp(buf, default, 7)) pdev = pci_dev_get(vga_default_device()); @@ -1014,7 +1014,7 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf, } else if (strncmp(curr_pos, decodes , 8) == 0) { curr_pos += 8; remaining -= 8; - pr_devel(vgaarb: client 0x%X called 'decodes'\n, (int)priv); + pr_devel(vgaarb: client %p called 'decodes'\n, priv); if (!vga_str_to_iostate(curr_pos, remaining, io_state)) { ret_val = -EPROTO; -- 1.6.3.3 -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 1/2] GPU: drm_debugfs, check kmalloc retval
Check kmalloc return value in drm_debugfs_create_files and bail out appropriately if the pointer is NULL. Signed-off-by: Jiri Slaby jirisl...@gmail.com --- drivers/gpu/drm/drm_debugfs.c |4 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c index 2960b6d..9903f27 100644 --- a/drivers/gpu/drm/drm_debugfs.c +++ b/drivers/gpu/drm/drm_debugfs.c @@ -101,6 +101,10 @@ int drm_debugfs_create_files(struct drm_info_list *files, int count, continue; tmp = kmalloc(sizeof(struct drm_info_node), GFP_KERNEL); + if (tmp == NULL) { + ret = -1; + goto fail; + } ent = debugfs_create_file(files[i].name, S_IFREG | S_IRUGO, root, tmp, drm_debugfs_fops); if (!ent) { -- 1.6.3.2 -- Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 2/2] GPU: drm_gem, check kzalloc retval
Check kzalloc retval against NULL in drm_gem_object_alloc and bail out appropriately. While at it merge the fail paths and jump to them by gotos at the end of the function. Signed-off-by: Jiri Slaby jirisl...@gmail.com --- drivers/gpu/drm/drm_gem.c | 17 ++--- 1 files changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c index 8104eca..ffe8f43 100644 --- a/drivers/gpu/drm/drm_gem.c +++ b/drivers/gpu/drm/drm_gem.c @@ -134,26 +134,29 @@ drm_gem_object_alloc(struct drm_device *dev, size_t size) BUG_ON((size (PAGE_SIZE - 1)) != 0); obj = kzalloc(sizeof(*obj), GFP_KERNEL); + if (!obj) + goto free; obj-dev = dev; obj-filp = shmem_file_setup(drm mm object, size, VM_NORESERVE); - if (IS_ERR(obj-filp)) { - kfree(obj); - return NULL; - } + if (IS_ERR(obj-filp)) + goto free; kref_init(obj-refcount); kref_init(obj-handlecount); obj-size = size; if (dev-driver-gem_init_object != NULL dev-driver-gem_init_object(obj) != 0) { - fput(obj-filp); - kfree(obj); - return NULL; + goto fput; } atomic_inc(dev-object_count); atomic_add(obj-size, dev-object_memory); return obj; +fput: + fput(obj-filp); +free: + kfree(obj); + return NULL; } EXPORT_SYMBOL(drm_gem_object_alloc); -- 1.6.3.2 -- Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: i915 X lockup
On 28.2.2009 01:20, Eric Anholt wrote: KMS support is not a feature of the server but of your 2D driver. You want 2.6.2, or things will be bad. I have 2.5.0. After turning KMS off, problem seems to be solved. Anyway, I would appreciate a version of the intel driver being in the Kconfig text, otherwise it looks like: don't use this on machines with installation from stone age. If one has latest stable release of a distro, he doesn't even think he doesn't have new enough userspace. For reference, the text is: Choose this option if you want kernel modesetting enabled by default, and you have a new enough userspace to support this. Running old userspaces with this enabled will cause pain. -- Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: i915 X lockup
On 27.2.2009 11:01, Peter Zijlstra wrote: would be good to have sysrq-w output There was nothing but events. So this is rather an intel driver userspace bug? SysRq : Show Blocked State taskPC stack pid father events/1 D 011 2 8801cb231da0 0046 8801cb231d00 80231ef8 00380010 00010180 880028053840 880028057180 8801cb20c790 8801cb20ca38 0001ca3f90e8 7a0e Call Trace: [80231ef8] ? dequeue_entity+0x18/0x1a0 [80230b50] ? dequeue_task+0xb0/0xf0 [805fca2a] __mutex_lock_slowpath+0xea/0x170 [803f60a0] ? i915_gem_retire_work_handler+0x0/0x90 [805fc6f6] mutex_lock+0x26/0x50 [803f60d8] i915_gem_retire_work_handler+0x38/0x90 [80250792] worker_thread+0x172/0x250 [80254da0] ? autoremove_wake_function+0x0/0x40 [80250620] ? worker_thread+0x0/0x250 [802549be] kthread+0x9e/0xb0 [8020d3da] child_rip+0xa/0x20 [80254920] ? kthread+0x0/0xb0 [8020d3d0] ? child_rip+0x0/0x20 -- Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: i915 X lockup
On 27.2.2009 11:12, Jiri Slaby wrote: So this is rather an intel driver userspace bug? Bullshit, ignore me :). -- Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
i915 X lockup
Hi, everytime I run X, it gets stuck. Currently running on mmotm 2009-02-26-16-58, but I think this is wider problem. I had i915 disabled for a long time (until I noticed today). SysRq : Show Locks Held Showing all locks held in the system: 3 locks held by events/0/10: #0: (events){+.+.+.}, at: [8025223d] worker_thread+0x19d/0x340 #1: ((dev_priv-mm.retire_work)-work){+.+...}, at: [8025223d] worker_thread+0x19d/0x340 #2: (dev-struct_mutex){+.+.+.}, at: [804057ba] i915_gem_retire_work_handler+0x3a/0x90 1 lock held by mingetty/3899: #0: (tty-atomic_read_lock){+.+.+.}, at: [803cb5de] n_tty_read+0x48e/0x8e0 1 lock held by mingetty/3900: #0: (tty-atomic_read_lock){+.+.+.}, at: [803cb5de] n_tty_read+0x48e/0x8e0 1 lock held by mingetty/3901: #0: (tty-atomic_read_lock){+.+.+.}, at: [803cb5de] n_tty_read+0x48e/0x8e0 1 lock held by X/4007: #0: (dev-struct_mutex){+.+.+.}, at: [8040563c] i915_gem_throttle_ioctl+0x2c/0x60 2 locks held by bash/4105: #0: (sysrq_key_table_lock){..}, at: [803de366] __handle_sysrq+0x26/0x190 #1: (tasklist_lock){.+.+..}, at: [80266c1f] debug_show_all_locks+0x3f/0x1c0 = INFO: task events/0:10 blocked for more than 120 seconds. echo 0 /proc/sys/kernel/hung_task_timeout_secs disables this message. events/0 D 010 2 8801cb22fd60 0046 8801cb22fcc0 809d5cb0 00010400 804057ba 8801cb20a6d0 8801cb20a080 8801cb20a328 802690a3 0ea1 0002 Call Trace: [804057ba] ? i915_gem_retire_work_handler+0x3a/0x90 [8026804d] ? mark_held_locks+0x6d/0x90 [80612fb5] ? mutex_lock_nested+0x185/0x310 [80612f46] mutex_lock_nested+0x116/0x310 [804057ba] ? i915_gem_retire_work_handler+0x3a/0x90 [802690a3] ? __lock_acquire+0xab3/0x12c0 [80405780] ? i915_gem_retire_work_handler+0x0/0x90 [804057ba] i915_gem_retire_work_handler+0x3a/0x90 [80252290] worker_thread+0x1f0/0x340 [8025223d] ? worker_thread+0x19d/0x340 [80614aff] ? _spin_unlock_irqrestore+0x3f/0x60 [80256de0] ? autoremove_wake_function+0x0/0x40 [8026838d] ? trace_hardirqs_on+0xd/0x10 [802520a0] ? worker_thread+0x0/0x340 [80256a2e] kthread+0x9e/0xb0 [8020d51a] child_rip+0xa/0x20 [8020cf3c] ? restore_args+0x0/0x30 [80256990] ? kthread+0x0/0xb0 [8020d510] ? child_rip+0x0/0x20 3 locks held by events/0/10: #0: (events){+.+.+.}, at: [8025223d] worker_thread+0x19d/0x340 #1: ((dev_priv-mm.retire_work)-work){+.+...}, at: [8025223d] worker_thread+0x19d/0x340 #2: (dev-struct_mutex){+.+.+.}, at: [804057ba] i915_gem_retire_work_handler+0x3a/0x90 Adapter is: 00:02.0 VGA compatible controller [0300]: Intel Corporation 82G33/G31 Express Integrated Graphics Controller [8086:29c2] (rev 02) (prog-if 00 [VGA controller]) Subsystem: Intel Corporation 82G33/G31 Express Integrated Graphics Controller [8086:29c2] Flags: bus master, fast devsel, latency 0, IRQ 26 Memory at ffa8 (32-bit, non-prefetchable) [size=512K] I/O ports at ec00 [size=8] Memory at d000 (32-bit, prefetchable) [size=256M] Memory at ff90 (32-bit, non-prefetchable) [size=1M] Capabilities: [90] Message Signalled Interrupts: Mask- 64bit- Count=1/1 Enable+ Capabilities: [d0] Power Management version 2 Kernel driver in use: i915 X server complains: [mi] EQ overflowing. The server is probably stuck in an infinite loop. [mi] mieqEnequeue: out-of-order valuator event; dropping. -- Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: i915 X lockup
On 27.2.2009 14:04, Sitsofe Wheeler wrote: On Fri, Feb 27, 2009 at 02:32:31AM -0800, Andrew Morton wrote: On Fri, 27 Feb 2009 10:28:51 +0100 Jiri Slabyjirisl...@gmail.com wrote: everytime I run X, it gets stuck. Currently running on mmotm 2009-02-26-16-58, but I think this is wider problem. I had i915 disabled for a long time (until I noticed today). Which version of X are you using? Does it support kernel modesetting? If not, did you disable kernel modesetting in the KConfig file for i915? xorg-x11-server-7.4-17.3 which is X.Org X Server 1.5.2 modesetting enabled: CONFIG_DRM_I915_KMS=y Which X version is needed for that? -- Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 1/1] DRM: fix radeon suspend/resume oops
Hi, I've sent a bugreport twice with no reply, so coming with a patch. Andrew please apply, if no comments or a better patch from drm fellows comes. As the accesses to the mmio member are not protected by anything, they seem to be racy with the open/clsoe anyways, setting this down there too. -- When the driver is bound to a device and nobody opens the device node, it will oops on suspend and resume, since it's not mapped and dev_priv-mmio is NULL. Signed-off-by: Jiri Slaby [EMAIL PROTECTED] Cc: David Airlie [EMAIL PROTECTED] --- drivers/gpu/drm/radeon/radeon_drv.c |7 +++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c index 71af746..2e74a98 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -52,10 +52,14 @@ static int dri_library_name(struct drm_device *dev, char *buf) r300)); } +/* FIXME all this suspend/resume races with open/close? */ static int radeon_suspend(struct drm_device *dev, pm_message_t state) { drm_radeon_private_t *dev_priv = dev-dev_private; + if (!dev_priv-mmio) + return 0; + /* Disable *all* interrupts */ if ((dev_priv-flags RADEON_FAMILY_MASK) = CHIP_RS690) RADEON_WRITE(R500_DxMODE_INT_MASK, 0); @@ -67,6 +71,9 @@ static int radeon_resume(struct drm_device *dev) { drm_radeon_private_t *dev_priv = dev-dev_private; + if (!dev_priv-mmio) + return 0; + /* Restore interrupt registers */ if ((dev_priv-flags RADEON_FAMILY_MASK) = CHIP_RS690) RADEON_WRITE(R500_DxMODE_INT_MASK, dev_priv-r500_disp_irq_reg); -- 1.6.0.3 - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 1/1 v2] DRM: fix radeon suspend/resume oops
me wrote: As the accesses to the mmio member are not protected by anything, they seem to be racy with the open/clsoe anyways, setting this down there too. On the second though it should be protected. Updated patch below... + added Rafael to cc list -- When the driver is bound to a device and nobody opens the device node, it will oops on suspend and resume, since it's not mapped and dev_priv-mmio is NULL. Signed-off-by: Jiri Slaby [EMAIL PROTECTED] Cc: David Airlie [EMAIL PROTECTED] Cc: Rafael J. Wysocki [EMAIL PROTECTED] --- drivers/gpu/drm/radeon/radeon_drv.c |6 ++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c index 71af746..7672310 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -56,6 +56,9 @@ static int radeon_suspend(struct drm_device *dev, pm_message_t state) { drm_radeon_private_t *dev_priv = dev-dev_private; + if (!dev_priv-mmio) + return 0; + /* Disable *all* interrupts */ if ((dev_priv-flags RADEON_FAMILY_MASK) = CHIP_RS690) RADEON_WRITE(R500_DxMODE_INT_MASK, 0); @@ -67,6 +70,9 @@ static int radeon_resume(struct drm_device *dev) { drm_radeon_private_t *dev_priv = dev-dev_private; + if (!dev_priv-mmio) + return 0; + /* Restore interrupt registers */ if ((dev_priv-flags RADEON_FAMILY_MASK) = CHIP_RS690) RADEON_WRITE(R500_DxMODE_INT_MASK, dev_priv-r500_disp_irq_reg); -- 1.6.0.3 - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: oops in radeon_suspend (mmotm 2008-10-22-17-18)
Ping On 10/26/2008 04:23 PM, Jiri Slaby wrote: Hi, this oops occured on suspend of mmotm: http://decibel.fi.muni.cz/~xslaby/radeon_oops1.png http://decibel.fi.muni.cz/~xslaby/radeon_oops2.png radeon_suspend: movq288(%rcx), %rax # variable.mmio, variable.mmio xorl%edx, %edx # tmp68 movq24(%rax), %rax # variable.handle, variable.handle rax (dev_priv-mmio) is null. - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
oops in radeon_suspend (mmotm 2008-10-22-17-18)
Hi, this oops occured on suspend of mmotm: http://decibel.fi.muni.cz/~xslaby/radeon_oops1.png http://decibel.fi.muni.cz/~xslaby/radeon_oops2.png radeon_suspend: movq288(%rcx), %rax # variable.mmio, variable.mmio xorl%edx, %edx # tmp68 movq24(%rax), %rax # variable.handle, variable.handle rax (dev_priv-mmio) is null. - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 1/1 repost #1] DRM: don't enable irqs in locking
drm_lock_take(); and drm_lock_free(); are called from drm_locked_tasklet_func(); which disables interrupts when grabbing its spinlock. Don't allow these locking functions to re-enable interrupts when the tasklet expects them disabled. I.e. use spin_lock_irqsave instead of spin_lock_bh (with their unlock opposites). We will get such a warnings otherwise: [ cut here ] WARNING: at kernel/softirq.c:136 local_bh_enable_ip+0x8b/0xb0() Modules linked in: arc4 ecb crypto_blkcipher cryptomgr crypto_algapi ath5k usbhid mac80211 ohci1394 hid led_class floppy cfg80211 ff_memless ieee1394 rtc_cmos evdev [last unloaded: freq_table] Pid: 0, comm: swapper Not tainted 2.6.26-rc8-mm1_64 #427 Call Trace: IRQ [8023813f] warn_on_slowpath+0x5f/0x90 [...] [8023e1fb] local_bh_enable_ip+0x8b/0xb0 [8055b2cf] _spin_unlock_bh+0xf/0x20 [803b0bd1] drm_lock_take+0x81/0xe0 [803b006b] drm_locked_tasklet_func+0x4b/0xb0 [8023daf9] tasklet_hi_action+0x69/0xf0 [8023e3e4] __do_softirq+0x84/0xf0 [stack snipped] Signed-off-by: Jiri Slaby [EMAIL PROTECTED] Cc: David Airlie [EMAIL PROTECTED] --- drivers/gpu/drm/drm_lock.c | 12 +++- 1 files changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c index 0998723..79943e4 100644 --- a/drivers/gpu/drm/drm_lock.c +++ b/drivers/gpu/drm/drm_lock.c @@ -196,10 +196,11 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv) int drm_lock_take(struct drm_lock_data *lock_data, unsigned int context) { + unsigned long flags; unsigned int old, new, prev; volatile unsigned int *lock = lock_data-hw_lock-lock; - spin_lock_bh(lock_data-spinlock); + spin_lock_irqsave(lock_data-spinlock, flags); do { old = *lock; if (old _DRM_LOCK_HELD) @@ -211,7 +212,7 @@ int drm_lock_take(struct drm_lock_data *lock_data, } prev = cmpxchg(lock, old, new); } while (prev != old); - spin_unlock_bh(lock_data-spinlock); + spin_unlock_irqrestore(lock_data-spinlock, flags); if (_DRM_LOCKING_CONTEXT(old) == context) { if (old _DRM_LOCK_HELD) { @@ -270,17 +271,18 @@ static int drm_lock_transfer(struct drm_lock_data *lock_data, */ int drm_lock_free(struct drm_lock_data *lock_data, unsigned int context) { + unsigned long flags; unsigned int old, new, prev; volatile unsigned int *lock = lock_data-hw_lock-lock; - spin_lock_bh(lock_data-spinlock); + spin_lock_irqsave(lock_data-spinlock, flags); if (lock_data-kernel_waiters != 0) { drm_lock_transfer(lock_data, 0); lock_data-idle_has_lock = 1; - spin_unlock_bh(lock_data-spinlock); + spin_unlock_irqrestore(lock_data-spinlock, flags); return 1; } - spin_unlock_bh(lock_data-spinlock); + spin_unlock_irqrestore(lock_data-spinlock, flags); do { old = *lock; -- 1.5.6.2 - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 1/1] DRM: don't enable irqs in locking
drm_lock_take(); and drm_lock_free(); are called from drm_locked_tasklet_func(); which disables interrupts when grabbing its spinlock. Don't allow these locking functions to re-enable interrupts when the tasklet expects them disabled. I.e. use spin_lock_irqsave instead of spin_lock_bh (with their unlock opposites). We will get such a warnings otherwise: [ cut here ] WARNING: at kernel/softirq.c:136 local_bh_enable_ip+0x8b/0xb0() Modules linked in: arc4 ecb crypto_blkcipher cryptomgr crypto_algapi ath5k usbhid mac80211 ohci1394 hid led_class floppy cfg80211 ff_memless ieee1394 rtc_cmos evdev [last unloaded: freq_table] Pid: 0, comm: swapper Not tainted 2.6.26-rc8-mm1_64 #427 Call Trace: IRQ [8023813f] warn_on_slowpath+0x5f/0x90 [...] [8023e1fb] local_bh_enable_ip+0x8b/0xb0 [8055b2cf] _spin_unlock_bh+0xf/0x20 [803b0bd1] drm_lock_take+0x81/0xe0 [803b006b] drm_locked_tasklet_func+0x4b/0xb0 [8023daf9] tasklet_hi_action+0x69/0xf0 [8023e3e4] __do_softirq+0x84/0xf0 [stack snipped] Signed-off-by: Jiri Slaby [EMAIL PROTECTED] Cc: David Airlie [EMAIL PROTECTED] --- drivers/gpu/drm/drm_lock.c | 12 +++- 1 files changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c index 0998723..79943e4 100644 --- a/drivers/gpu/drm/drm_lock.c +++ b/drivers/gpu/drm/drm_lock.c @@ -196,10 +196,11 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv) int drm_lock_take(struct drm_lock_data *lock_data, unsigned int context) { + unsigned long flags; unsigned int old, new, prev; volatile unsigned int *lock = lock_data-hw_lock-lock; - spin_lock_bh(lock_data-spinlock); + spin_lock_irqsave(lock_data-spinlock, flags); do { old = *lock; if (old _DRM_LOCK_HELD) @@ -211,7 +212,7 @@ int drm_lock_take(struct drm_lock_data *lock_data, } prev = cmpxchg(lock, old, new); } while (prev != old); - spin_unlock_bh(lock_data-spinlock); + spin_unlock_irqrestore(lock_data-spinlock, flags); if (_DRM_LOCKING_CONTEXT(old) == context) { if (old _DRM_LOCK_HELD) { @@ -270,17 +271,18 @@ static int drm_lock_transfer(struct drm_lock_data *lock_data, */ int drm_lock_free(struct drm_lock_data *lock_data, unsigned int context) { + unsigned long flags; unsigned int old, new, prev; volatile unsigned int *lock = lock_data-hw_lock-lock; - spin_lock_bh(lock_data-spinlock); + spin_lock_irqsave(lock_data-spinlock, flags); if (lock_data-kernel_waiters != 0) { drm_lock_transfer(lock_data, 0); lock_data-idle_has_lock = 1; - spin_unlock_bh(lock_data-spinlock); + spin_unlock_irqrestore(lock_data-spinlock, flags); return 1; } - spin_unlock_bh(lock_data-spinlock); + spin_unlock_irqrestore(lock_data-spinlock, flags); do { old = *lock; -- 1.5.6.2 - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 1/2] DRM: i915, suspend oops fix
Jiri Slaby wrote: On 12/13/2007 11:40 AM, Andrew Morton wrote: ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc5/2.6.24-rc5-mm1/ Broken @#$%^ suspend, again (and maybe still for a longer time). Unable to reproduce this with netconsole. trace led to i915_suspend callpci_bus_read_config_byte# movq8(%rbx), %rdi # variable.mmio_map, variable.mmio_map movq24(%rdi), %rax # variable.handle, D.24395 movl458760(%rax), %eax #, D.24397 address in rax (i.e. dev_priv-mmio_map-handle) is broken, at least it seems so from the part of the trace and RIP. movl%eax, 408(%rbx) # D.24397, variable.savePIPEACONF movq24(%rdi), %rax # variable.handle, temp.676 movl393244(%rax), %eax #, D.24399 in pci_save_state(dev-pdev); pci_read_config_byte(dev-pdev, LBB, dev_priv-saveLBB); /* Pipe plane A info */ -- dev_priv-savePIPEACONF = I915_READ(PIPEACONF); I think, the problem is, that something randomizes ioremapped addresses. Old userspace driver closes drm when X starts and the mapping is lost. The problem dismissed after X userspace driver update, anyway I think that the patch still might be needed. Anyway, it's not enough, the same problem for sarea (next patch). BTW the new driver (also without both patches) breaks killing of X. Screen becomes black and console is not shown. -- i915, suspend oops fix Register mmio_map space when suspending, it might be lost due to DRM device closing with older X userspace drivers (it closes drm device and frees resources after X starts) and then it accesses bad address and oopses while suspending. Signed-off-by: Jiri Slaby [EMAIL PROTECTED] Cc: Dave Airlie [EMAIL PROTECTED] --- commit f2e573d8a1b391584c76e95f287010b38867de64 tree cf24a5949513ed8ad03b3920d7213bcebfd9ce99 parent 39dc99d1618c5b3f96ad741cadeccaba055f4b72 author Jiri Slaby [EMAIL PROTECTED] Sun, 16 Dec 2007 17:56:47 +0100 committer Jiri Slaby [EMAIL PROTECTED] Sun, 16 Dec 2007 17:56:47 +0100 drivers/char/drm/i915_dma.c | 24 +++- drivers/char/drm/i915_drv.c | 10 +- drivers/char/drm/i915_drv.h |1 + 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/drivers/char/drm/i915_dma.c b/drivers/char/drm/i915_dma.c index 9e5adca..b274554 100644 --- a/drivers/char/drm/i915_dma.c +++ b/drivers/char/drm/i915_dma.c @@ -1276,11 +1276,23 @@ static int i915_set_status_page(struct drm_device *dev, void *data, return 0; } -int i915_driver_load(struct drm_device *dev, unsigned long flags) +int i915_register_mmio_map(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev-dev_private; unsigned long base, size; - int ret = 0, mmio_bar = IS_I9XX(dev) ? 0 : 1; + int mmio_bar = IS_I9XX(dev) ? 0 : 1; + + /* Add register map (needed for suspend/resume) */ + base = drm_get_resource_start(dev, mmio_bar); + size = drm_get_resource_len(dev, mmio_bar); + + return drm_addmap(dev, base, size, _DRM_REGISTERS, _DRM_KERNEL, +dev_priv-mmio_map); +} + +int i915_driver_load(struct drm_device *dev, unsigned long flags) +{ + struct drm_i915_private *dev_priv = dev-dev_private; /* i915 has 4 more counters */ dev-counters += 4; @@ -1297,13 +1309,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) dev-dev_private = (void *)dev_priv; - /* Add register map (needed for suspend/resume) */ - base = drm_get_resource_start(dev, mmio_bar); - size = drm_get_resource_len(dev, mmio_bar); - - ret = drm_addmap(dev, base, size, _DRM_REGISTERS, _DRM_KERNEL, -dev_priv-mmio_map); - return ret; + return i915_register_mmio_map(dev); } int i915_driver_unload(struct drm_device *dev) diff --git a/drivers/char/drm/i915_drv.c b/drivers/char/drm/i915_drv.c index 0f9c1f1..a8c87f0 100644 --- a/drivers/char/drm/i915_drv.c +++ b/drivers/char/drm/i915_drv.c @@ -266,7 +266,7 @@ static void i915_restore_vga(struct drm_device *dev) static int i915_suspend(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev-dev_private; - int i; + int i, ret; if (!dev || !dev_priv) { printk(KERN_ERR dev: %p, dev_priv: %p\n, dev, dev_priv); @@ -274,6 +274,14 @@ static int i915_suspend(struct drm_device *dev) return -ENODEV; } + /* Every lastclose will destroy this mapping, we need it for suspend. +* It doesn't matter if it exists already, it will return the existing +* one. Also it will be surely destroyed; either on next lastclose or +* on lastclose called from drm unload path. -js */ + ret = i915_register_mmio_map(dev); + if (ret) + return ret; + pci_save_state(dev-pdev); pci_read_config_byte(dev
[PATCH 2/2] DRM: i915, fix oops after killing X
i915, fix oops after killing X Null sarea_priv, because next lastclose would have bad address in it if initialization is not called in the meantime. This is a problem in setups, where drm are closed after X starts. Next lastclose is invoked on X kill. Newer intel drivers (2.2) with EXA support hold the device whole time while X runs. Signed-off-by: Jiri Slaby [EMAIL PROTECTED] Cc: Dave Airlie [EMAIL PROTECTED] --- commit c50f4766654ec13d8dc35f96a8d2c199d6ae5c91 tree 3e3a65f44bedf6d846cbb43a315d2f0bce8b7da2 parent f2e573d8a1b391584c76e95f287010b38867de64 author Jiri Slaby [EMAIL PROTECTED] Sun, 16 Dec 2007 19:24:13 +0100 committer Jiri Slaby [EMAIL PROTECTED] Sun, 16 Dec 2007 19:24:13 +0100 drivers/char/drm/i915_dma.c |6 ++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/drivers/char/drm/i915_dma.c b/drivers/char/drm/i915_dma.c index b274554..7a97eea 100644 --- a/drivers/char/drm/i915_dma.c +++ b/drivers/char/drm/i915_dma.c @@ -1335,6 +1335,12 @@ void i915_driver_lastclose(struct drm_device * dev) i915_mem_takedown((dev_priv-agp_heap)); i915_dma_cleanup(dev); + + /* Mapping won't survive to the next firstopen anyways. It will +* probably oops without it on next lastclose if we not null it +* here, if it will be mapped anywhere else, but without dma being +* initialized -js */ + dev_priv-sarea_priv = NULL; } void i915_driver_preclose(struct drm_device * dev, struct drm_file *file_priv) - SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
broken suspend, sometimes (drm related) [Was: 2.6.24-rc5-mm1]
On 12/13/2007 11:40 AM, Andrew Morton wrote: ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc5/2.6.24-rc5-mm1/ Broken @#$%^ suspend, again (and maybe still for a longer time). Unable to reproduce this with netconsole. trace led to i915_suspend callpci_bus_read_config_byte# movq8(%rbx), %rdi # variable.mmio_map, variable.mmio_map movq24(%rdi), %rax # variable.handle, D.24395 movl458760(%rax), %eax #, D.24397 address in rax (i.e. dev_priv-mmio_map-handle) is broken, at least it seems so from the part of the trace and RIP. movl%eax, 408(%rbx) # D.24397, variable.savePIPEACONF movq24(%rdi), %rax # variable.handle, temp.676 movl393244(%rax), %eax #, D.24399 in pci_save_state(dev-pdev); pci_read_config_byte(dev-pdev, LBB, dev_priv-saveLBB); /* Pipe plane A info */ -- dev_priv-savePIPEACONF = I915_READ(PIPEACONF); I use distro pm-utils and it chvt's to some terminal, write out the output, suspend, resume, switch back to X. The patch I'm currently using for debugging: Index: BH/drivers/char/drm/i915_drv.c === --- BH.orig/drivers/char/drm/i915_drv.c +++ BH/drivers/char/drm/i915_drv.c @@ -274,9 +274,18 @@ static int i915_suspend(struct drm_devic return -ENODEV; } + if (!dev_priv-mmio_map || !dev_priv-mmio_map-handle) { + printk(KERN_ERR BAD BAD BAD %p %p\n, dev_priv-mmio_map, + dev_priv-mmio_map ? dev_priv-mmio_map-handle : NULL); + return -EIO; + } + pci_save_state(dev-pdev); pci_read_config_byte(dev-pdev, LBB, dev_priv-saveLBB); + printk(KERN_ERR \n\n\nmap %p, HANDLE: %p\n\n\n, dev_priv-mmio_map, + dev_priv-mmio_map-handle); + msleep(5000); /* Pipe plane A info */ dev_priv-savePIPEACONF = I915_READ(PIPEACONF); dev_priv-savePIPEASRC = I915_READ(PIPEASRC); Index: BH/drivers/char/drm/drm_bufs.c === --- BH.orig/drivers/char/drm/drm_bufs.c +++ BH/drivers/char/drm/drm_bufs.c @@ -136,6 +136,7 @@ static int drm_addmap_core(struct drm_de return -EINVAL; } map-mtrr = -1; + printk(BLE %s a: map %p, handle %p\n, __func__, map, map-handle); map-handle = NULL; switch (map-type) { @@ -183,6 +184,7 @@ static int drm_addmap_core(struct drm_de drm_free(map, sizeof(*map), DRM_MEM_MAPS); return -ENOMEM; } + printk(BLE %s b: map %p, handle %p\n, __func__, map, map-handle); } break; @@ -201,6 +203,7 @@ static int drm_addmap_core(struct drm_de return 0; } map-handle = vmalloc_user(map-size); + printk(BLE %s c: map %p, handle %p\n, __func__, map, map-handle); DRM_DEBUG(%lu %d %p\n, map-size, drm_order(map-size), map-handle); if (!map-handle) { @@ -211,6 +214,7 @@ static int drm_addmap_core(struct drm_de if (map-flags _DRM_CONTAINS_LOCK) { /* Prevent a 2nd X Server from creating a 2nd lock */ if (dev-lock.hw_lock != NULL) { + printk(BLE %s d: map %p, handle %p\n, __func__, map, map-handle); vfree(map-handle); drm_free(map, sizeof(*map), DRM_MEM_MAPS); return -EBUSY; @@ -281,6 +285,7 @@ static int drm_addmap_core(struct drm_de return -ENOMEM; } map-handle = dmah-vaddr; + printk(BLE %s f: map %p, handle %p\n, __func__, map, map-handle); map-offset = (unsigned long)dmah-busaddr; kfree(dmah); break; @@ -291,6 +296,7 @@ static int drm_addmap_core(struct drm_de list = drm_alloc(sizeof(*list), DRM_MEM_MAPS); if (!list) { + printk(BLE %s g: map %p, handle %p\n, __func__, map, map-handle); if (map-type == _DRM_REGISTERS) iounmap(map-handle); drm_free(map, sizeof(*map), DRM_MEM_MAPS); @@ -308,6 +314,7 @@ static int drm_addmap_core(struct drm_de map-offset; ret = drm_map_handle(dev, list-hash, user_token, 0); if (ret) { + printk(BLE %s h: map %p, handle %p\n, __func__, map, map-handle); if (map-type == _DRM_REGISTERS) iounmap(map-handle); drm_free(map, sizeof(*map), DRM_MEM_MAPS); @@ -355,6 +362,7 @@ int drm_addmap_ioctl(struct drm_device * return err; /* avoid a warning on 64-bit, this casting isn't very nice, but the API is set so
[PATCH 1/1] DRM: i915, fix pointer strip
i915, fix pointer strip Beside the emitted warning, the added cast (u64 - unsigned) strips out part of address on 64 bit. Cast to unsigned long instead. Signed-off-by: Jiri Slaby [EMAIL PROTECTED] Cc: Thomas Hellstrom [EMAIL PROTECTED] Cc: Dave Airlie [EMAIL PROTECTED] --- commit 496b198ff1b261c902337f93f07e7eabebd15fcd tree 82e09385c7079b58397c547d4213f8a7f066191e parent 32df077a4a9ff106df31681999e869971eacb470 author Jiri Slaby [EMAIL PROTECTED] Tue, 13 Nov 2007 14:12:08 +0100 committer Jiri Slaby [EMAIL PROTECTED] Tue, 13 Nov 2007 14:12:08 +0100 drivers/char/drm/i915_dma.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/char/drm/i915_dma.c b/drivers/char/drm/i915_dma.c index eced445..a68e0ee 100644 --- a/drivers/char/drm/i915_dma.c +++ b/drivers/char/drm/i915_dma.c @@ -900,7 +900,7 @@ int i915_validate_buffer_list(struct drm_file *file_priv, buffers[buf_count] = NULL; - if (copy_from_user(arg, (void __user *)(unsigned)data, sizeof(arg))) { + if (copy_from_user(arg, (void __user *)(unsigned long)data, sizeof(arg))) { ret = -EFAULT; goto out_err; } @@ -951,7 +951,7 @@ int i915_validate_buffer_list(struct drm_file *file_priv, arg.handled = 1; arg.d.rep = rep; - if (copy_to_user((void __user *)(unsigned)data, arg, sizeof(arg))) + if (copy_to_user((void __user *)(unsigned long)data, arg, sizeof(arg))) return -EFAULT; data = next; - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now http://get.splunk.com/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: Revert intel_agp: fix stolen mem range on G33
On 10/06/2007 07:42 AM, Kyle McMartin wrote: This reverts commit f443675affe3f16dd428e46f0f7fd3f4d703eeab, which breaks horribly if you aren't running an unreleased xf86-video-intel driver out of git. I guess, this will break my graphics, no? http://lkml.org/lkml/2007/9/20/447 Conflicts: drivers/char/agp/intel-agp.c Signed-off-by: Kyle McMartin [EMAIL PROTECTED] --- drivers/char/agp/intel-agp.c |5 - 1 files changed, 0 insertions(+), 5 deletions(-) diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c index a5d0e95..141ca17 100644 --- a/drivers/char/agp/intel-agp.c +++ b/drivers/char/agp/intel-agp.c @@ -506,11 +506,6 @@ static void intel_i830_init_gtt_entries(void) break; } } else { - /* G33's GTT stolen memory is separate from gfx data - * stolen memory. - */ - if (IS_G33) - size = 0; switch (gmch_ctrl I855_GMCH_GMS_MASK) { case I855_GMCH_GMS_STOLEN_1M: gtt_entries = MB(1) - KB(size); -- Jiri Slaby ([EMAIL PROTECTED]) Faculty of Informatics, Masaryk University - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now http://get.splunk.com/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: Revert intel_agp: fix stolen mem range on G33
On 10/06/2007 09:29 PM, Keith Packard wrote: On Sat, 2007-10-06 at 08:59 -0700, Linus Torvalds wrote: We do have a rule about no regressions, so I think we'll have to do the revert, but it would be nice to hear what the consequences for the revert is for the affected hardware and new X.org.. Agree with the first part. Here comes the X log diff: --- orig2007-10-07 11:57:50.0 +0200 +++ agp 2007-10-07 11:56:07.0 +0200 @@ -3,7 +3,7 @@ Release Date: 19 April 2007 X Protocol Version 11, Revision 0, Release 1.3 Build Operating System: Fedora Core 7 Red Hat, Inc. -Current Operating System: Linux bellona 2.6.23-rc8-mm2_64 #58 SMP Fri Sep 28 08:52:12 CEST 2007 x86_64 +Current Operating System: Linux bellona 2.6.23-rc8-mm2_64 #59 SMP Sun Oct 7 11:43:55 CEST 2007 x86_64 Build Date: 11 June 2007 Build ID: xorg-x11-server 1.3.0.0-9.fc7 Before reporting problems, check http://wiki.x.org @@ -12,7 +12,7 @@ Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. -(==) Log file: /var/log/Xorg.0.log, Time: Sun Oct 7 11:57:20 2007 +(==) Log file: /var/log/Xorg.0.log, Time: Sun Oct 7 11:54:36 2007 (==) Using config file: /etc/X11/xorg.conf (==) ServerLayout Default Layout (**) |--Screen Screen0 (0) @@ -34,7 +34,8 @@ (**) Option BlankTime 8 (**) Option StandbyTime 10 (**) Extension Composite is enabled -(II) Open ACPI successful (/var/run/acpid.socket) +(WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory) +(II) No APM support in BIOS or kernel (II) Loader magic: 0x7be760 (II) Module ABI versions: X.Org ANSI C Emulation: 0.3 @@ -760,18 +761,18 @@ (II) intel(0): 0x0800-0x09ff: textures (32768 kB) (II) intel(0): 0x1000:end of aperture drmOpenDevice: node name is /dev/dri/card0 -drmOpenDevice: open result is 10, (OK) +drmOpenDevice: open result is 9, (OK) drmOpenDevice: node name is /dev/dri/card0 -drmOpenDevice: open result is 10, (OK) +drmOpenDevice: open result is 9, (OK) drmOpenByBusid: Searching for BusID pci::00:02.0 drmOpenDevice: node name is /dev/dri/card0 -drmOpenDevice: open result is 10, (OK) -drmOpenByBusid: drmOpenMinor returns 10 +drmOpenDevice: open result is 9, (OK) +drmOpenByBusid: drmOpenMinor returns 9 drmOpenByBusid: drmGetBusid reports pci::00:02.0 (II) intel(0): [drm] DRM interface version 1.3 (II) intel(0): [drm] created i915 driver at busid pci::00:02.0 (II) intel(0): [drm] added 8192 byte SAREA at 0x2efff000 -(II) intel(0): [drm] mapped SAREA 0x2efff000 to 0x7f794b3bb000 +(II) intel(0): [drm] mapped SAREA 0x2efff000 to 0x7fd637f76000 (II) intel(0): [drm] framebuffer handle = 0xd400 (II) intel(0): [drm] added 1 reserved context for kernel (II) intel(0): [drm] Registers = 0xffa8 @@ -838,11 +839,11 @@ (II) Initializing built-in extension DAMAGE (II) Initializing built-in extension XEVIE drmOpenDevice: node name is /dev/dri/card0 -drmOpenDevice: open result is 11, (OK) +drmOpenDevice: open result is 10, (OK) drmOpenByBusid: Searching for BusID pci::00:02.0 drmOpenDevice: node name is /dev/dri/card0 -drmOpenDevice: open result is 11, (OK) -drmOpenByBusid: drmOpenMinor returns 11 +drmOpenDevice: open result is 10, (OK) +drmOpenByBusid: drmOpenMinor returns 10 drmOpenByBusid: drmGetBusid reports pci::00:02.0 (WW) AIGLX: 3D driver claims to not support visual 0x23 (WW) AIGLX: 3D driver claims to not support visual 0x24 @@ -906,7 +907,7 @@ (II) default pointer: ps2EnableDataReporting: succeeded (II) Mouse0-usb-:00:1d.0-1.2/input0: Off (II) intel(0): [drm] removed 1 reserved context for kernel -(II) intel(0): [drm] unmapping 8192 bytes of SAREA 0x2efff000 at 0x7f794b3bb000 +(II) intel(0): [drm] unmapping 8192 bytes of SAREA 0x2efff000 at 0x7fd637f76000 (EE) intel(0): I830 Vblank Pipe Setup Failed 0 (EE) intel(0): I830 Vblank Pipe Setup Failed 0 (EE) intel(0): I830 Vblank Pipe Setup Failed 0 And it seems to work, so I think no regression here. regards, -- Jiri Slaby ([EMAIL PROTECTED]) Faculty of Informatics, Masaryk University - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now http://get.splunk.com/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]
On 09/09/2007 04:43 PM, Jiri Slaby wrote: On 09/09/2007 04:33 PM, Andi Kleen wrote: On Sun, Sep 09, 2007 at 04:26:22PM +0200, Jiri Slaby wrote: BTW it is reproducible for me on two different machines (i386-x86_64, radeon-intel), don't you have the problem too? No problems here with a radeon, no. Does your CPU have clflush or not in /proc/cpuinfo? BTW this is how my flush_kernel_map looks like: static void flush_kernel_map(void *arg) { struct flush_arg *a = (struct flush_arg *)arg; struct page *pg; unsigned int xx = 0; /* When clflush is available use it because it is much cheaper than WBINVD. */ printk(%s: 1\n, __func__); if (a-full_flush || !cpu_has_clflush) asm volatile(wbinvd ::: memory); else list_for_each_entry(pg, a-l, lru) { printk(%s: %10u 1a\n, __func__, xx++); if (PageFlush(pg)) clflush_cache_range(page_address(pg), PAGE_SIZE); } printk(%s: 2\n, __func__); __flush_tlb_all(); printk(%s: 3\n, __func__); } It outputs 1a in the infinite loop with incrementing xx. But only in this case, some global_flush_tlb are OK. e.g.: Sep 10 01:39:19 localhost kernel: agpgart: Detected an Intel G33 Chipset. Sep 10 01:39:19 localhost kernel: global_flush_tlb: 1 Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1 Sep 10 01:39:19 localhost kernel: flush_kernel_map: 0 1a Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1 1a Sep 10 01:39:19 localhost kernel: flush_kernel_map: 2 Sep 10 01:39:19 localhost kernel: flush_kernel_map: 3 Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1 Sep 10 01:39:19 localhost kernel: flush_kernel_map: 0 1a Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1 1a Sep 10 01:39:19 localhost kernel: flush_kernel_map: 2 Sep 10 01:39:19 localhost kernel: flush_kernel_map: 3 Sep 10 01:39:19 localhost kernel: global_flush_tlb: 2 Sep 10 01:39:19 localhost kernel: global_flush_tlb: 3 Sep 10 01:39:19 localhost kernel: agpgart: Detected 6140K stolen memory. It seems, that the list is broken only on X shutdown. How can be deferred-pages list inited in some bad manner, when list_replace_init is called on it? Weird. Ok, here comes a BUG with trace: set status page addr 0x00033000 list_add corruption. next-prev should be prev (8068ae70), but was 80697a50. (next=81000117fbd0). [ cut here ] kernel BUG at /home/l/latest/xxx/lib/list_debug.c:27! invalid opcode: [1] SMP last sysfs file: /devices/pci:00/:00:02.0/enable CPU 0 Modules linked in: ipv6 floppy sr_mod rtc_cmos rtc_core cdrom ehci_hcd rtc_lib usbhid Pid: 1639, comm: X Not tainted 2.6.23-rc4-mm1_64 #23 RIP: 0010:[80332f49] [80332f49] __list_add+0x39/0x60 RSP: 0018:81000547bd48 EFLAGS: 00010296 RAX: 0079 RBX: 81000117a380 RCX: 8068b450 RDX: 81000317d6a0 RSI: 0001 RDI: 8068b420 RBP: 81000547bd48 R08: R09: 0001 R10: 0001 R11: R12: 6da2 R13: 810006c10d10 R14: 810006da2000 R15: 8163 FS: 7f7a05258710() GS:806d1000() knlGS: CS: 0010 DS: ES: CR0: 8005003b CR2: 00a33040 CR3: 04a43000 CR4: 06e0 DR0: DR1: DR2: DR3: DR6: 0ff0 DR7: 0400 Process X (pid: 1639, threadinfo 81000547a000, task 81000317d6a0) Stack: 81000547bd58 80332f7c 81000547bdc8 80225c56 80225cb5 8163 806830e8 806830a0 806830a0 810006da2000 81000547bda8 6da2 Call Trace: [80332f7c] list_add+0xc/0x10 [80225c56] __change_page_attr+0x376/0x390 [80225cb5] change_page_attr_addr+0x45/0x140 [80225d16] change_page_attr_addr+0xa6/0x140 [80225de3] change_page_attr+0x33/0x40 [80387b64] agp_generic_destroy_page+0x44/0x70 [80388645] agp_free_memory+0x65/0xd0 [80386d49] agp_free_memory_wrap+0x39/0x60 [803873fb] agp_release+0xdb/0x1c0 [80299551] __fput+0xd1/0x1b0 [802996b6] fput+0x16/0x20 [802964e6] filp_close+0x56/0x90 [80297bed] sys_close+0xad/0x110 [8020bd0e] system_call+0x7e/0x83 INFO: lockdep is turned off. Code: 0f 0b eb fe 0f 1f 00 48 89 f1 4c 89 c2 48 89 c6 48 c7 c7 e8 RIP [80332f49] __list_add+0x39/0x60 RSP 81000547bd48 regards, -- Jiri Slaby ([EMAIL PROTECTED]) Faculty of Informatics, Masaryk University - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go
Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]
On 08/28/2007 01:41 PM, Jiri Slaby wrote: Does this went through to your boxes? Any progress, clue, idea? Jiri Slaby napsal(a): Andrew Morton napsal(a): ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/ Hi, I've found a regression against 2.6.23-rc2-mm2. X server shutdown freezes (untainted) kernel hardly. Nothing on netconsole, X output follows: X Window System Version 1.3.0 Release Date: 19 April 2007 X Protocol Version 11, Revision 0, Release 1.3 Build Operating System: Fedora Core 7 Red Hat, Inc. Current Operating System: Linux bellona 2.6.23-rc3-mm1 #315 SMP Wed Aug 22 21:43:06 CEST 2007 i686 Build Date: 11 June 2007 Build ID: xorg-x11-server 1.3.0.0-9.fc7 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Module Loader present Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: /var/log/Xorg.0.log, Time: Sun Aug 26 14:22:43 2007 (==) Using config file: /etc/X11/xorg.conf (WW) RADEON: No matching Device section for instance (BusID PCI:1:0:1) found (**) RADEON(0): RADEONPreInit (II) Module already built-in (II) Module already built-in (II) Module already built-in (**) RADEON(0): RADEONScreenInit f000 0 (**) RADEON(0): Map: 0xf000, 0x0400 (**) RADEON(0): RADEONSave (**) RADEON(0): RADEONSaveMode(0x8240870) (**) RADEON(0): Read: 0x000c 0x00030065 0x (**) RADEON(0): Read: rd=12, fd=101, pd=3 (**) RADEON(0): RADEONSaveMode returns 0x8240870 (**) RADEON(0): DRI New memory map param (**) RADEON(0): RADEONInitMemoryMap() : (**) RADEON(0): mem_size : 0x0400 (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000 (**) RADEON(0): MC_AGP_LOCATION : 0xffc0 (**) RADEON(0): RADEONModeInit() 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V (**) RADEON(0): Pitch = 10485920 bytes (virtualX = 1280, displayWidth = 1280) (**) RADEON(0): dc=10800, of=21600, fd=96, pd=2 (**) RADEON(0): RADEONInit returns 0x8241220 (**) RADEON(0): RADEONRestoreMode() (**) RADEON(0): RADEONRestoreMode(0x8241220) (**) RADEON(0): RADEONRestoreMemMapRegisters() : (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000 (**) RADEON(0): MC_AGP_LOCATION : 0xffc0 (**) RADEON(0): Map Changed ! Applying ... (**) RADEON(0): Map applied, resetting engine ... (**) RADEON(0): Updating display base addresses... (**) RADEON(0): Memory map updated. (**) RADEON(0): Programming CRTC1, offset: 0x (**) RADEON(0): Wrote: 0x000c 0x00010060 0x (0xa400) (**) RADEON(0): Wrote: rd=12, fd=96, pd=1 (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c (**) RADEON(0): RADEONSaveScreen(0) (**) RADEON(0): Setting up initial surfaces (**) RADEON(0): Initializing fb layer (**) RADEON(0): Setting up accel memmap (**) RADEON(0): Initializing backing store (**) RADEON(0): DRI Finishing init ! (**) RADEON(0): EngineRestore (32/32) (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c (**) RADEON(0): Setting up final surfaces (**) RADEON(0): Initializing Acceleration (**) RADEON(0): EngineInit (32/32) (**) RADEON(0): Pitch for acceleration = 160 (**) RADEON(0): EngineRestore (32/32) (**) RADEON(0): Initializing DPMS (**) RADEON(0): Initializing Cursor (**) RADEON(0): Initializing color map (**) RADEON(0): Initializing DGA (**) RADEON(0): Initializing Xv (**) RADEON(0): RADEONScreenInit finished (**) RADEON(0): RADEONSaveScreen(2) (**) RADEON(0): RADEONCloseScreen (**) RADEON(0): RADEONDRIStop (**) RADEON(0): EngineRestore (32/32) (**) RADEON(0): RADEONDisplayPowerManagementSet(0,0x0) (**) RADEON(0): RADEONRestore (**) RADEON(0): RADEONRestoreMode() (**) RADEON(0): RADEONRestoreMode(0x8240870) (**) RADEON(0): RADEONRestoreMemMapRegisters() : (**) RADEON(0): MC_FB_LOCATION : 0x1fff (**) RADEON(0): MC_AGP_LOCATION : 0x27ff2000 (**) RADEON(0): Map Changed ! Applying ... (**) RADEON(0): Map applied, resetting engine ... (**) RADEON(0): Updating display base addresses... (**) RADEON(0): Memory map updated. (**) RADEON(0): Programming CRTC1, offset: 0x (**) RADEON(0): Wrote: 0x000c 0x00030065 0x (0xa400) (**) RADEON(0): Wrote: rd=12, fd=101, pd=3 (**) RADEON(0): Disposing accel... (**) RADEON(0): Disposing cusor info (**) RADEON(0): Disposing DGA (**) RADEON(0): Unmapping memory (**) RADEON(0): RADEONDRICloseScreen the only difference is, that 2.6.23-rc2-mm2 writes further FreeFontPath: FPE /usr/share/X11/fonts/misc:unscaled refcount is 2, should be 1; fixing. and exits succesfully (note that these messages are taken on remote host, X runned remotely). Both vesa and radeon + Option NoAccel
Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]
Removed [EMAIL PROTECTED] (dead e-mail) On 09/09/2007 02:47 PM, Andrew Morton wrote: On Sun, 09 Sep 2007 13:44:56 +0200 Jiri Slaby [EMAIL PROTECTED] wrote: On 08/28/2007 01:41 PM, Jiri Slaby wrote: Does this went through to your boxes? Any progress, clue, idea? Jiri Slaby napsal(a): Andrew Morton napsal(a): ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/ Hi, I've found a regression against 2.6.23-rc2-mm2. X server shutdown freezes (untainted) kernel hardly. Nothing on netconsole, X output follows: ^^^ sorry, both netconsole and my usb devices (including my keyboard -- no numlock led switch) are dead. The trace I've taken appears on the screen after a while. X Window System Version 1.3.0 Release Date: 19 April 2007 X Protocol Version 11, Revision 0, Release 1.3 Build Operating System: Fedora Core 7 Red Hat, Inc. Current Operating System: Linux bellona 2.6.23-rc3-mm1 #315 SMP Wed Aug 22 [...] (**) RADEON(0): RADEONDRICloseScreen the only difference is, that 2.6.23-rc2-mm2 writes further FreeFontPath: FPE /usr/share/X11/fonts/misc:unscaled refcount is 2, should be 1; fixing. and exits succesfully (note that these messages are taken on remote host, X runned remotely). Both vesa and radeon + Option NoAccel true works obviously fine. Also intel on integrated i915 causes this (NoAccell has no effect in this case). Note that also 2.6.23-rc4-mm1 is affected by this behaviour. I have a trace for you: http://www.fi.muni.cz/~xslaby/sklad/panics/x-freeze.png (this is the only what I'm able to grab so far) afacit everything on that call trace is good. I guess it's possible that one of the higher-level loops has gone infinite (eg, the one in agp_remove_controller()). There is no loop in this function. Anyway, going to track this whole issue down. Hold on. Are you able to get netconsole working, and run sysrq-P and sysrq-T ten or so times, see if it's always stuck in the same place on the same CPU? thanks so far, -- Jiri Slaby ([EMAIL PROTECTED]) Faculty of Informatics, Masaryk University - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]
On 09/09/2007 02:47 PM, Andrew Morton wrote: On Sun, 09 Sep 2007 13:44:56 +0200 Jiri Slaby [EMAIL PROTECTED] wrote: On 08/28/2007 01:41 PM, Jiri Slaby wrote: Does this went through to your boxes? Any progress, clue, idea? Jiri Slaby napsal(a): Andrew Morton napsal(a): ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/ Hi, I've found a regression against 2.6.23-rc2-mm2. X server shutdown freezes (untainted) kernel hardly. Nothing on netconsole, X output follows: X Window System Version 1.3.0 Release Date: 19 April 2007 X Protocol Version 11, Revision 0, Release 1.3 Build Operating System: Fedora Core 7 Red Hat, Inc. Current Operating System: Linux bellona 2.6.23-rc3-mm1 #315 SMP Wed Aug 22 21:43:06 CEST 2007 i686 Build Date: 11 June 2007 Build ID: xorg-x11-server 1.3.0.0-9.fc7 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Module Loader present Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: /var/log/Xorg.0.log, Time: Sun Aug 26 14:22:43 2007 (==) Using config file: /etc/X11/xorg.conf (WW) RADEON: No matching Device section for instance (BusID PCI:1:0:1) found (**) RADEON(0): RADEONPreInit (II) Module already built-in (II) Module already built-in (II) Module already built-in (**) RADEON(0): RADEONScreenInit f000 0 (**) RADEON(0): Map: 0xf000, 0x0400 (**) RADEON(0): RADEONSave (**) RADEON(0): RADEONSaveMode(0x8240870) (**) RADEON(0): Read: 0x000c 0x00030065 0x (**) RADEON(0): Read: rd=12, fd=101, pd=3 (**) RADEON(0): RADEONSaveMode returns 0x8240870 (**) RADEON(0): DRI New memory map param (**) RADEON(0): RADEONInitMemoryMap() : (**) RADEON(0): mem_size : 0x0400 (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000 (**) RADEON(0): MC_AGP_LOCATION : 0xffc0 (**) RADEON(0): RADEONModeInit() 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V (**) RADEON(0): Pitch = 10485920 bytes (virtualX = 1280, displayWidth = 1280) (**) RADEON(0): dc=10800, of=21600, fd=96, pd=2 (**) RADEON(0): RADEONInit returns 0x8241220 (**) RADEON(0): RADEONRestoreMode() (**) RADEON(0): RADEONRestoreMode(0x8241220) (**) RADEON(0): RADEONRestoreMemMapRegisters() : (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000 (**) RADEON(0): MC_AGP_LOCATION : 0xffc0 (**) RADEON(0): Map Changed ! Applying ... (**) RADEON(0): Map applied, resetting engine ... (**) RADEON(0): Updating display base addresses... (**) RADEON(0): Memory map updated. (**) RADEON(0): Programming CRTC1, offset: 0x (**) RADEON(0): Wrote: 0x000c 0x00010060 0x (0xa400) (**) RADEON(0): Wrote: rd=12, fd=96, pd=1 (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c (**) RADEON(0): RADEONSaveScreen(0) (**) RADEON(0): Setting up initial surfaces (**) RADEON(0): Initializing fb layer (**) RADEON(0): Setting up accel memmap (**) RADEON(0): Initializing backing store (**) RADEON(0): DRI Finishing init ! (**) RADEON(0): EngineRestore (32/32) (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c (**) RADEON(0): Setting up final surfaces (**) RADEON(0): Initializing Acceleration (**) RADEON(0): EngineInit (32/32) (**) RADEON(0): Pitch for acceleration = 160 (**) RADEON(0): EngineRestore (32/32) (**) RADEON(0): Initializing DPMS (**) RADEON(0): Initializing Cursor (**) RADEON(0): Initializing color map (**) RADEON(0): Initializing DGA (**) RADEON(0): Initializing Xv (**) RADEON(0): RADEONScreenInit finished (**) RADEON(0): RADEONSaveScreen(2) (**) RADEON(0): RADEONCloseScreen (**) RADEON(0): RADEONDRIStop (**) RADEON(0): EngineRestore (32/32) (**) RADEON(0): RADEONDisplayPowerManagementSet(0,0x0) (**) RADEON(0): RADEONRestore (**) RADEON(0): RADEONRestoreMode() (**) RADEON(0): RADEONRestoreMode(0x8240870) (**) RADEON(0): RADEONRestoreMemMapRegisters() : (**) RADEON(0): MC_FB_LOCATION : 0x1fff (**) RADEON(0): MC_AGP_LOCATION : 0x27ff2000 (**) RADEON(0): Map Changed ! Applying ... (**) RADEON(0): Map applied, resetting engine ... (**) RADEON(0): Updating display base addresses... (**) RADEON(0): Memory map updated. (**) RADEON(0): Programming CRTC1, offset: 0x (**) RADEON(0): Wrote: 0x000c 0x00030065 0x (0xa400) (**) RADEON(0): Wrote: rd=12, fd=101, pd=3 (**) RADEON(0): Disposing accel... (**) RADEON(0): Disposing cusor info (**) RADEON(0): Disposing DGA (**) RADEON(0): Unmapping memory (**) RADEON(0): RADEONDRICloseScreen the only difference is, that 2.6.23-rc2-mm2 writes further FreeFontPath: FPE /usr/share/X11/fonts/misc:unscaled refcount is 2, should be 1; fixing. and exits
Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]
On 09/09/2007 04:17 PM, Andi Kleen wrote: Hm, I suspect Andi's x86_64-mm-cpa-clflush.patch or something like that. It loops in flush_kernel_map in list_for_each_entry on the first CPU. The a-l list is somehow corrupted I guess. Does it still happen with the latest version I think so :) $ diff -u x86_64-mm-cpa-clflush.patch cpa-clflush |wc -l 0 ftp://ftp.firstfloor.org/pub/ak/x86_64/quilt/patches/cpa-clflush ? (you might need to replace the other cpa-* patches too because they depend on each other) And are there any changes against the -rc4-mm1 in those patches? BTW it is reproducible for me on two different machines (i386-x86_64, radeon-intel), don't you have the problem too? regards, -- Jiri Slaby ([EMAIL PROTECTED]) Faculty of Informatics, Masaryk University - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]
On 09/09/2007 04:33 PM, Andi Kleen wrote: On Sun, Sep 09, 2007 at 04:26:22PM +0200, Jiri Slaby wrote: BTW it is reproducible for me on two different machines (i386-x86_64, radeon-intel), don't you have the problem too? No problems here with a radeon, no. Does your CPU have clflush or not in /proc/cpuinfo? yes: processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Core(TM)2 Duo CPU E6850 @ 3.00GHz stepping: 11 cpu MHz : 2992.543 cache size : 4096 KB physical id : 0 siblings: 2 core id : 0 cpu cores : 2 fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr lahf_lm bogomips: 5991.99 clflush size: 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Core(TM)2 Duo CPU E6850 @ 3.00GHz stepping: 11 cpu MHz : 2992.543 cache size : 4096 KB physical id : 0 siblings: 2 core id : 1 cpu cores : 2 fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr lahf_lm bogomips: 5985.42 clflush size: 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: -- Jiri Slaby ([EMAIL PROTECTED]) Faculty of Informatics, Masaryk University - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]
On 09/09/2007 04:33 PM, Andi Kleen wrote: On Sun, Sep 09, 2007 at 04:26:22PM +0200, Jiri Slaby wrote: BTW it is reproducible for me on two different machines (i386-x86_64, radeon-intel), don't you have the problem too? No problems here with a radeon, no. Does your CPU have clflush or not in /proc/cpuinfo? BTW this is how my flush_kernel_map looks like: static void flush_kernel_map(void *arg) { struct flush_arg *a = (struct flush_arg *)arg; struct page *pg; unsigned int xx = 0; /* When clflush is available use it because it is much cheaper than WBINVD. */ printk(%s: 1\n, __func__); if (a-full_flush || !cpu_has_clflush) asm volatile(wbinvd ::: memory); else list_for_each_entry(pg, a-l, lru) { printk(%s: %10u 1a\n, __func__, xx++); if (PageFlush(pg)) clflush_cache_range(page_address(pg), PAGE_SIZE); } printk(%s: 2\n, __func__); __flush_tlb_all(); printk(%s: 3\n, __func__); } It outputs 1a in the infinite loop with incrementing xx. But only in this case, some global_flush_tlb are OK. e.g.: Sep 10 01:39:19 localhost kernel: agpgart: Detected an Intel G33 Chipset. Sep 10 01:39:19 localhost kernel: global_flush_tlb: 1 Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1 Sep 10 01:39:19 localhost kernel: flush_kernel_map: 0 1a Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1 1a Sep 10 01:39:19 localhost kernel: flush_kernel_map: 2 Sep 10 01:39:19 localhost kernel: flush_kernel_map: 3 Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1 Sep 10 01:39:19 localhost kernel: flush_kernel_map: 0 1a Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1 1a Sep 10 01:39:19 localhost kernel: flush_kernel_map: 2 Sep 10 01:39:19 localhost kernel: flush_kernel_map: 3 Sep 10 01:39:19 localhost kernel: global_flush_tlb: 2 Sep 10 01:39:19 localhost kernel: global_flush_tlb: 3 Sep 10 01:39:19 localhost kernel: agpgart: Detected 6140K stolen memory. It seems, that the list is broken only on X shutdown. How can be deferred-pages list inited in some bad manner, when list_replace_init is called on it? Weird. -- Jiri Slaby ([EMAIL PROTECTED]) Faculty of Informatics, Masaryk University - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]
On 09/09/2007 05:01 PM, Andi Kleen wrote: On Sun, Sep 09, 2007 at 04:43:37PM +0200, Jiri Slaby wrote: On 09/09/2007 04:33 PM, Andi Kleen wrote: On Sun, Sep 09, 2007 at 04:26:22PM +0200, Jiri Slaby wrote: BTW it is reproducible for me on two different machines (i386-x86_64, radeon-intel), don't you have the problem too? No problems here with a radeon, no. Does your CPU have clflush or not in /proc/cpuinfo? BTW this is how my flush_kernel_map looks like: Can you stick a printk into change_page_attr to log in which order it changes pages (including their addresses and the pgattr)? printk(%s: %p %p %.16lx %d\n, __func__, page, page_address(page), pgprot_val(prot), numpages); http://www.fi.muni.cz/~xslaby/sklad/panics/x-freeze_chpa.png What other info needed? -- Jiri Slaby ([EMAIL PROTECTED]) Faculty of Informatics, Masaryk University - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]
Does this went through to your boxes? Any progress, clue, idea? Jiri Slaby napsal(a): Andrew Morton napsal(a): ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/ Hi, I've found a regression against 2.6.23-rc2-mm2. X server shutdown freezes (untainted) kernel hardly. Nothing on netconsole, X output follows: X Window System Version 1.3.0 Release Date: 19 April 2007 X Protocol Version 11, Revision 0, Release 1.3 Build Operating System: Fedora Core 7 Red Hat, Inc. Current Operating System: Linux bellona 2.6.23-rc3-mm1 #315 SMP Wed Aug 22 21:43:06 CEST 2007 i686 Build Date: 11 June 2007 Build ID: xorg-x11-server 1.3.0.0-9.fc7 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Module Loader present Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: /var/log/Xorg.0.log, Time: Sun Aug 26 14:22:43 2007 (==) Using config file: /etc/X11/xorg.conf (WW) RADEON: No matching Device section for instance (BusID PCI:1:0:1) found (**) RADEON(0): RADEONPreInit (II) Module already built-in (II) Module already built-in (II) Module already built-in (**) RADEON(0): RADEONScreenInit f000 0 (**) RADEON(0): Map: 0xf000, 0x0400 (**) RADEON(0): RADEONSave (**) RADEON(0): RADEONSaveMode(0x8240870) (**) RADEON(0): Read: 0x000c 0x00030065 0x (**) RADEON(0): Read: rd=12, fd=101, pd=3 (**) RADEON(0): RADEONSaveMode returns 0x8240870 (**) RADEON(0): DRI New memory map param (**) RADEON(0): RADEONInitMemoryMap() : (**) RADEON(0): mem_size : 0x0400 (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000 (**) RADEON(0): MC_AGP_LOCATION : 0xffc0 (**) RADEON(0): RADEONModeInit() 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V (**) RADEON(0): Pitch = 10485920 bytes (virtualX = 1280, displayWidth = 1280) (**) RADEON(0): dc=10800, of=21600, fd=96, pd=2 (**) RADEON(0): RADEONInit returns 0x8241220 (**) RADEON(0): RADEONRestoreMode() (**) RADEON(0): RADEONRestoreMode(0x8241220) (**) RADEON(0): RADEONRestoreMemMapRegisters() : (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000 (**) RADEON(0): MC_AGP_LOCATION : 0xffc0 (**) RADEON(0): Map Changed ! Applying ... (**) RADEON(0): Map applied, resetting engine ... (**) RADEON(0): Updating display base addresses... (**) RADEON(0): Memory map updated. (**) RADEON(0): Programming CRTC1, offset: 0x (**) RADEON(0): Wrote: 0x000c 0x00010060 0x (0xa400) (**) RADEON(0): Wrote: rd=12, fd=96, pd=1 (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c (**) RADEON(0): RADEONSaveScreen(0) (**) RADEON(0): Setting up initial surfaces (**) RADEON(0): Initializing fb layer (**) RADEON(0): Setting up accel memmap (**) RADEON(0): Initializing backing store (**) RADEON(0): DRI Finishing init ! (**) RADEON(0): EngineRestore (32/32) (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c (**) RADEON(0): Setting up final surfaces (**) RADEON(0): Initializing Acceleration (**) RADEON(0): EngineInit (32/32) (**) RADEON(0): Pitch for acceleration = 160 (**) RADEON(0): EngineRestore (32/32) (**) RADEON(0): Initializing DPMS (**) RADEON(0): Initializing Cursor (**) RADEON(0): Initializing color map (**) RADEON(0): Initializing DGA (**) RADEON(0): Initializing Xv (**) RADEON(0): RADEONScreenInit finished (**) RADEON(0): RADEONSaveScreen(2) (**) RADEON(0): RADEONCloseScreen (**) RADEON(0): RADEONDRIStop (**) RADEON(0): EngineRestore (32/32) (**) RADEON(0): RADEONDisplayPowerManagementSet(0,0x0) (**) RADEON(0): RADEONRestore (**) RADEON(0): RADEONRestoreMode() (**) RADEON(0): RADEONRestoreMode(0x8240870) (**) RADEON(0): RADEONRestoreMemMapRegisters() : (**) RADEON(0): MC_FB_LOCATION : 0x1fff (**) RADEON(0): MC_AGP_LOCATION : 0x27ff2000 (**) RADEON(0): Map Changed ! Applying ... (**) RADEON(0): Map applied, resetting engine ... (**) RADEON(0): Updating display base addresses... (**) RADEON(0): Memory map updated. (**) RADEON(0): Programming CRTC1, offset: 0x (**) RADEON(0): Wrote: 0x000c 0x00030065 0x (0xa400) (**) RADEON(0): Wrote: rd=12, fd=101, pd=3 (**) RADEON(0): Disposing accel... (**) RADEON(0): Disposing cusor info (**) RADEON(0): Disposing DGA (**) RADEON(0): Unmapping memory (**) RADEON(0): RADEONDRICloseScreen the only difference is, that 2.6.23-rc2-mm2 writes further FreeFontPath: FPE /usr/share/X11/fonts/misc:unscaled refcount is 2, should be 1; fixing. and exits succesfully (note that these messages are taken on remote host, X runned remotely). Both vesa and radeon + Option NoAccel true works obviously fine. regards
X freezes kernel during exit [Re: 2.6.23-rc3-mm1]
Andrew Morton napsal(a): ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/ Hi, I've found a regression against 2.6.23-rc2-mm2. X server shutdown freezes (untainted) kernel hardly. Nothing on netconsole, X output follows: X Window System Version 1.3.0 Release Date: 19 April 2007 X Protocol Version 11, Revision 0, Release 1.3 Build Operating System: Fedora Core 7 Red Hat, Inc. Current Operating System: Linux bellona 2.6.23-rc3-mm1 #315 SMP Wed Aug 22 21:43:06 CEST 2007 i686 Build Date: 11 June 2007 Build ID: xorg-x11-server 1.3.0.0-9.fc7 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Module Loader present Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: /var/log/Xorg.0.log, Time: Sun Aug 26 14:22:43 2007 (==) Using config file: /etc/X11/xorg.conf (WW) RADEON: No matching Device section for instance (BusID PCI:1:0:1) found (**) RADEON(0): RADEONPreInit (II) Module already built-in (II) Module already built-in (II) Module already built-in (**) RADEON(0): RADEONScreenInit f000 0 (**) RADEON(0): Map: 0xf000, 0x0400 (**) RADEON(0): RADEONSave (**) RADEON(0): RADEONSaveMode(0x8240870) (**) RADEON(0): Read: 0x000c 0x00030065 0x (**) RADEON(0): Read: rd=12, fd=101, pd=3 (**) RADEON(0): RADEONSaveMode returns 0x8240870 (**) RADEON(0): DRI New memory map param (**) RADEON(0): RADEONInitMemoryMap() : (**) RADEON(0): mem_size : 0x0400 (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000 (**) RADEON(0): MC_AGP_LOCATION : 0xffc0 (**) RADEON(0): RADEONModeInit() 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V (**) RADEON(0): Pitch = 10485920 bytes (virtualX = 1280, displayWidth = 1280) (**) RADEON(0): dc=10800, of=21600, fd=96, pd=2 (**) RADEON(0): RADEONInit returns 0x8241220 (**) RADEON(0): RADEONRestoreMode() (**) RADEON(0): RADEONRestoreMode(0x8241220) (**) RADEON(0): RADEONRestoreMemMapRegisters() : (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000 (**) RADEON(0): MC_AGP_LOCATION : 0xffc0 (**) RADEON(0): Map Changed ! Applying ... (**) RADEON(0): Map applied, resetting engine ... (**) RADEON(0): Updating display base addresses... (**) RADEON(0): Memory map updated. (**) RADEON(0): Programming CRTC1, offset: 0x (**) RADEON(0): Wrote: 0x000c 0x00010060 0x (0xa400) (**) RADEON(0): Wrote: rd=12, fd=96, pd=1 (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c (**) RADEON(0): RADEONSaveScreen(0) (**) RADEON(0): Setting up initial surfaces (**) RADEON(0): Initializing fb layer (**) RADEON(0): Setting up accel memmap (**) RADEON(0): Initializing backing store (**) RADEON(0): DRI Finishing init ! (**) RADEON(0): EngineRestore (32/32) (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c (**) RADEON(0): Setting up final surfaces (**) RADEON(0): Initializing Acceleration (**) RADEON(0): EngineInit (32/32) (**) RADEON(0): Pitch for acceleration = 160 (**) RADEON(0): EngineRestore (32/32) (**) RADEON(0): Initializing DPMS (**) RADEON(0): Initializing Cursor (**) RADEON(0): Initializing color map (**) RADEON(0): Initializing DGA (**) RADEON(0): Initializing Xv (**) RADEON(0): RADEONScreenInit finished (**) RADEON(0): RADEONSaveScreen(2) (**) RADEON(0): RADEONCloseScreen (**) RADEON(0): RADEONDRIStop (**) RADEON(0): EngineRestore (32/32) (**) RADEON(0): RADEONDisplayPowerManagementSet(0,0x0) (**) RADEON(0): RADEONRestore (**) RADEON(0): RADEONRestoreMode() (**) RADEON(0): RADEONRestoreMode(0x8240870) (**) RADEON(0): RADEONRestoreMemMapRegisters() : (**) RADEON(0): MC_FB_LOCATION : 0x1fff (**) RADEON(0): MC_AGP_LOCATION : 0x27ff2000 (**) RADEON(0): Map Changed ! Applying ... (**) RADEON(0): Map applied, resetting engine ... (**) RADEON(0): Updating display base addresses... (**) RADEON(0): Memory map updated. (**) RADEON(0): Programming CRTC1, offset: 0x (**) RADEON(0): Wrote: 0x000c 0x00030065 0x (0xa400) (**) RADEON(0): Wrote: rd=12, fd=101, pd=3 (**) RADEON(0): Disposing accel... (**) RADEON(0): Disposing cusor info (**) RADEON(0): Disposing DGA (**) RADEON(0): Unmapping memory (**) RADEON(0): RADEONDRICloseScreen the only difference is, that 2.6.23-rc2-mm2 writes further FreeFontPath: FPE /usr/share/X11/fonts/misc:unscaled refcount is 2, should be 1; fixing. and exits succesfully (note that these messages are taken on remote host, X runned remotely). Both vesa and radeon + Option NoAccel true works obviously fine. regards, -- Jiri Slaby ([EMAIL PROTECTED]) Faculty of Informatics, Masaryk University - This SF.net email is sponsored by: Splunk Inc
Re: [PATCH 4 of 5 ] /drivers/char/rio ioremap balancing/ returncode check
Scott Thompson napsal(a): On Mon, 13 Aug 2007 16:30:14 -0400 Jiri Slaby [EMAIL PROTECTED] wrote: why [EMAIL PROTECTED] David Airlie was listed as the owner on several of the files and in maintainers for DRM, which was my best to: guess for /drivers/char/drm (which was patch 3 in this series). If there was a better list, or just to linux-kernel, please let me know as tracking down the 'right' list for these kernel-janitor kind of tasks can be tricky Ok. I was just curious, why did you CC drm people for char drivers changes. BTW. is there anybody on janitors list, who collects all those patches and forwards them upstream? -- Jiri Slaby ([EMAIL PROTECTED]) Faculty of Informatics, Masaryk University - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now http://get.splunk.com/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH 1 of 5 ] /drivers/char ioremap balancing/ returncode check
Scott Thompson napsal(a): patchset against 2.6.23-rc2 and this set is an audit of /drivers/char/a* through drivers/char . this corrects missing ioremap return checks and balancing on iounmap calls.. Signed-off-by: Scott Thompson postfail at hushmail.com NAK. -- diff --git a/drivers/char/moxa.c b/drivers/char/moxa.c index ed76f0a..094323d 100644 --- a/drivers/char/moxa.c +++ b/drivers/char/moxa.c @@ -447,6 +447,13 @@ static int __init moxa_init(void) for (i = 0; i numBoards; i++) { moxa_boards[i].basemem = ioremap(moxa_boards[i].baseAddr, 0x4000); + if (!moxa_boards[i].basemem) { + for (;i 0;i--) + if (moxa_boards[i].basemem) + iounmap(moxa_boards[i].basemem); + + return -ENOMEM; + } This leaks. This is loop only for ISA cards. If you have CONFIG_PCI and have the card, resources of the PCI one are not freed and are unusable from now. } return retval; diff --git a/drivers/char/sx.c b/drivers/char/sx.c index 85a2328..30829ed 100644 --- a/drivers/char/sx.c +++ b/drivers/char/sx.c @@ -2627,6 +2627,12 @@ static void __devinit fix_sx_pci(struct pci_dev *pdev, struct sx_board *board) pci_read_config_dword(pdev, PCI_BASE_ADDRESS_0, hwbase); hwbase = PCI_BASE_ADDRESS_MEM_MASK; rebase = ioremap(hwbase, 0x80); + if (!rebase) { + printk(KERN_DEBUG + sx:ioremap fail, unable to perform cntrl reg fix\n); + return; + } + 1) this should be pci_iomap(pdev, 0, 0x80) 2) KERN_DEBUG is inappropriate and wrap the string in the middle and not in the beginning 3) you should change void to int and return some error and check it in the caller t = readl(rebase + CNTRL_REG_OFFSET); if (t != CNTRL_REG_GOODVALUE) { printk(KERN_DEBUG sx: performing cntrl reg fix: %08x - diff --git a/drivers/char/vr41xx_giu.c b/drivers/char/vr41xx_giu.c index e5ed091..2381162 100644 --- a/drivers/char/vr41xx_giu.c +++ b/drivers/char/vr41xx_giu.c @@ -639,8 +639,10 @@ static int __devinit giu_probe(struct platform_device *dev) } irq = platform_get_irq(dev, 0); - if (irq 0 || irq = NR_IRQS) + if (irq 0 || irq = NR_IRQS) { + iounmap(giu_base); + unregister_chrdev()? return -EBUSY; + } return cascade_irq(irq, giu_get_irq); } -- Jiri Slaby ([EMAIL PROTECTED]) Faculty of Informatics, Masaryk University - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now http://get.splunk.com/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[PATCH 1/2] Char: add __devinitdata to pci_device_ids
add __devinitdata to pci_device_ids Signed-off-by: Jiri Slaby [EMAIL PROTECTED] --- commit 6518489059ea5f8eca8d1ae6de51a6452b46eb52 tree 241f514f7cd903b7815b4ffb10fa650f1e34ba26 parent 1647618e3fba255fc77181e9e2e4eeb09e214680 author Jiri Slaby [EMAIL PROTECTED] Sat, 03 Feb 2007 15:47:33 +0100 committer Jiri Slaby [EMAIL PROTECTED] Sat, 03 Feb 2007 15:47:33 +0100 drivers/char/agp/ali-agp.c |2 +- drivers/char/agp/amd-k7-agp.c|2 +- drivers/char/agp/amd64-agp.c |2 +- drivers/char/agp/ati-agp.c |2 +- drivers/char/agp/efficeon-agp.c |2 +- drivers/char/agp/i460-agp.c |2 +- drivers/char/agp/intel-agp.c |2 +- drivers/char/agp/nvidia-agp.c|2 +- drivers/char/agp/sis-agp.c |2 +- drivers/char/agp/sworks-agp.c|2 +- drivers/char/agp/uninorth-agp.c |2 +- drivers/char/agp/via-agp.c |2 +- drivers/char/applicom.c |2 +- drivers/char/cs5535_gpio.c |2 +- drivers/char/drm/i810_drv.c |2 +- drivers/char/drm/i830_drv.c |2 +- drivers/char/drm/i915_drv.c |2 +- drivers/char/drm/mga_drv.c |2 +- drivers/char/drm/r128_drv.c |2 +- drivers/char/drm/radeon_drv.c|2 +- drivers/char/drm/savage_drv.c|2 +- drivers/char/drm/sis_drv.c |2 +- drivers/char/drm/tdfx_drv.c |2 +- drivers/char/drm/via_drv.c |2 +- drivers/char/epca.c |2 +- drivers/char/hw_random/amd-rng.c |2 +- drivers/char/hw_random/geode-rng.c |2 +- drivers/char/hw_random/intel-rng.c |2 +- drivers/char/ipmi/ipmi_si_intf.c |2 +- drivers/char/isicom.c|2 +- drivers/char/istallion.c |2 +- drivers/char/moxa.c |2 +- drivers/char/mxser.c |2 +- drivers/char/mxser_new.c |2 +- drivers/char/nozomi.c|2 +- drivers/char/stallion.c |2 +- drivers/char/sx.c|2 +- drivers/char/synclink.c |2 +- drivers/char/synclink_gt.c |2 +- drivers/char/synclinkmp.c|2 +- drivers/char/watchdog/alim1535_wdt.c |2 +- drivers/char/watchdog/i6300esb.c |2 +- drivers/char/watchdog/i8xx_tco.c |2 +- drivers/char/watchdog/pcwd_pci.c |2 +- drivers/char/watchdog/wdt_pci.c |2 +- 45 files changed, 45 insertions(+), 45 deletions(-) diff --git a/drivers/char/agp/ali-agp.c b/drivers/char/agp/ali-agp.c index 98177a9..2862a24 100644 --- a/drivers/char/agp/ali-agp.c +++ b/drivers/char/agp/ali-agp.c @@ -376,7 +376,7 @@ static void __devexit agp_ali_remove(struct pci_dev *pdev) agp_put_bridge(bridge); } -static struct pci_device_id agp_ali_pci_table[] = { +static struct pci_device_id agp_ali_pci_table[] __devinitdata = { { .class = (PCI_CLASS_BRIDGE_HOST 8), .class_mask = ~0, diff --git a/drivers/char/agp/amd-k7-agp.c b/drivers/char/agp/amd-k7-agp.c index 3d8d448..30b4407 100644 --- a/drivers/char/agp/amd-k7-agp.c +++ b/drivers/char/agp/amd-k7-agp.c @@ -490,7 +490,7 @@ static void __devexit agp_amdk7_remove(struct pci_dev *pdev) } /* must be the same order as name table above */ -static struct pci_device_id agp_amdk7_pci_table[] = { +static struct pci_device_id agp_amdk7_pci_table[] __devinitdata = { { .class = (PCI_CLASS_BRIDGE_HOST 8), .class_mask = ~0, diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c index 636d984..058b420 100644 --- a/drivers/char/agp/amd64-agp.c +++ b/drivers/char/agp/amd64-agp.c @@ -612,7 +612,7 @@ static int agp_amd64_resume(struct pci_dev *pdev) #endif /* CONFIG_PM */ -static struct pci_device_id agp_amd64_pci_table[] = { +static struct pci_device_id agp_amd64_pci_table[] __devinitdata = { { .class = (PCI_CLASS_BRIDGE_HOST 8), .class_mask = ~0, diff --git a/drivers/char/agp/ati-agp.c b/drivers/char/agp/ati-agp.c index 77c9ad6..e96f380 100644 --- a/drivers/char/agp/ati-agp.c +++ b/drivers/char/agp/ati-agp.c @@ -528,7 +528,7 @@ static void __devexit agp_ati_remove(struct pci_dev *pdev) agp_put_bridge(bridge); } -static struct pci_device_id agp_ati_pci_table[] = { +static struct pci_device_id agp_ati_pci_table[] __devinitdata = { { .class = (PCI_CLASS_BRIDGE_HOST 8), .class_mask = ~0, diff --git a/drivers/char/agp/efficeon-agp.c b/drivers/char/agp/efficeon-agp.c index 658cb1a..ced8104 100644 --- a/drivers/char/agp/efficeon-agp.c +++ b/drivers/char/agp/efficeon-agp.c @@ -421,7 +421,7 @@ static int agp_efficeon_resume(struct pci_dev *pdev) } #endif -static struct pci_device_id agp_efficeon_pci_table[] = { +static struct pci_device_id agp_efficeon_pci_table[] __devinitdata
Re: [PATCH 1/2] Char: add __devinitdata to pci_device_ids
On 2/3/07, Bartlomiej Zolnierkiewicz [EMAIL PROTECTED] wrote: On 2/3/07, Jiri Slaby [EMAIL PROTECTED] wrote: add __devinitdata to pci_device_ids Signed-off-by: Jiri Slaby [EMAIL PROTECTED] http://lkml.org/lkml/2003/8/1/135 I think that it is still true, Greg? Hmm, then I misunderstood this: http://lkml.org/lkml/2007/1/17/136 ? regards, -- http://www.fi.muni.cz/~xslaby/Jiri Slaby faculty of informatics, masaryk university, brno, cz e-mail: jirislaby gmail com, gpg pubkey fingerprint: B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH 1/2] Char: add __devinitdata to pci_device_ids
Greg KH napsal(a): On Sat, Feb 03, 2007 at 04:39:34PM +0100, Jiri Slaby wrote: On 2/3/07, Bartlomiej Zolnierkiewicz [EMAIL PROTECTED] wrote: On 2/3/07, Jiri Slaby [EMAIL PROTECTED] wrote: add __devinitdata to pci_device_ids Signed-off-by: Jiri Slaby [EMAIL PROTECTED] http://lkml.org/lkml/2003/8/1/135 I think that it is still true, Greg? No it is not. Hmm, then I misunderstood this: http://lkml.org/lkml/2007/1/17/136 ? Yes, that is correct. But Jiri, why do this? What memory savings are you seeing here now that CONFIG_HOTPLUG is enabled by default? The only people I see liking this kind of change are embedded, and I don't think many embedded devices have these drivers and do not use hotplug at the same time :) Yes, correct, please cat this_patch /dev/null. thanks, -- http://www.fi.muni.cz/~xslaby/Jiri Slaby faculty of informatics, masaryk university, brno, cz e-mail: jirislaby gmail com, gpg pubkey fingerprint: B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH 2.6.13-rc4-mm1] Re: Obsolete files in 2.6 tree
Jiri Slaby napsal(a): Alan Cox napsal(a): drivers/char/drm/gamma_dma.c drivers/char/drm/gamma_drv.c Gamma is defunct certainly Removes gamma sources, headers and pointers from Kconfig and Makefile. Signed-off-by: Jiri Slaby [EMAIL PROTECTED] patch is here (about 70 KiB): http://www.fi.muni.cz/~xslaby/lnx/gamma.txt Removes gamma line from Documentation/kernel-parameters.txt Signed-off-by: Jiri Slaby [EMAIL PROTECTED] diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -497,8 +497,6 @@ running once the system is up. Format: port#,pad1,pad2,pad3,pad4,pad5 See also Documentation/input/joystick-parport.txt - gamma= [HW,DRM] - gdth= [HW,SCSI] See header of drivers/scsi/gdth.c. -- Jiri Slaby www.fi.muni.cz/~xslaby ~\-/~ [EMAIL PROTECTED] ~\-/~ 241B347EC88228DE51EE A49C4A73A25004CB2A10 diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -497,8 +497,6 @@ running once the system is up. Format: port#,pad1,pad2,pad3,pad4,pad5 See also Documentation/input/joystick-parport.txt - gamma= [HW,DRM] - gdth= [HW,SCSI] See header of drivers/scsi/gdth.c.
[PATCH 2.6.13-rc4-mm1] Re: Obsolete files in 2.6 tree
Alan Cox napsal(a): drivers/char/drm/gamma_dma.c drivers/char/drm/gamma_drv.c Gamma is defunct certainly Removes gamma sources, headers and pointers from Kconfig and Makefile. Signed-off-by: Jiri Slaby [EMAIL PROTECTED] patch is here (about 70 KiB): http://www.fi.muni.cz/~xslaby/lnx/gamma.txt -- Jiri Slaby www.fi.muni.cz/~xslaby ~\-/~ [EMAIL PROTECTED] ~\-/~ 241B347EC88228DE51EE A49C4A73A25004CB2A10 --- SF.Net email is Sponsored by the Better Software Conference EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile Plan-Driven Development * Managing Projects Teams * Testing QA Security * Process Improvement Measurement * http://www.sqe.com/bsce5sf -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel