linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: Fwd: [Bug 164337]  New: radeonfb oopses
       [not found] ` <1122538735.18835.19.camel@gaston>
@ 2005-07-28 23:08   ` Dave Jones
  2005-07-29 11:45     ` Jon Smirl
  0 siblings, 1 reply; 3+ messages in thread
From: Dave Jones @ 2005-07-28 23:08 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linux-fbdev-devel, notting

On Thu, Jul 28, 2005 at 09:18:54AM +0100, Ben Herrenschmidt wrote:
 > On Wed, 2005-07-27 at 15:34 -0400, Dave Jones wrote:
 > > This was on a git snapshot from a day or two ago.
 > 
 > I'll have a look when I'm done travelling ... maybe this week-end or
 > monday. Can you CC the linux-fbdev list in the meantime ? I wonder if
 > it's related to some cmap handling changes I've seen floating around...
 > 
 > Thanks,
 > Ben.

BenH asked me to forward this here.

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=164337

git snapshot from a few days ago yields this oops..

radeonfb: Retreived PLL infos from BIOS
radeonfb: Reference=27.00 MHz (RefDiv=12) Memory=252.00 Mhz, System=200.00 MHz
radeonfb: PLL min 20000 max 35000
Non-DDC laptop panel detected
radeonfb: Monitor 1 type LCD found
radeonfb: Monitor 2 type no found
radeonfb: panel ID string: SXGA+ Single (85MHz)
radeonfb: detected LVDS panel size from BIOS: 1400x1050
radeondb: BIOS provided dividers will be used
radeonfb: Dynamic Clock Power Management enabled
radeonfb: forcefully enabling sleep mode
Unable to handle kernel paging request at virtual address fffffff6
 printing eip:
c02311f1
*pde = 00002067
Oops: 0000 [#1]
Modules linked in: radeonfb i2c_algo_bit nfs lockd nfs_acl tun arc4
ieee80211_crypt_wep radeon drm loop parport_pc lp parport ipv6 autofs4 sunrpc
ipt_REJECT ipt_state ip_conntrack iptable_filter ip_tables dm_mod video button
battery ac pcmcia yenta_socket rsrc_nonstatic pcmcia_core uhci_hcd ehci_hcd
shpchp hw_random i8xx_tco i2c_i801 i2c_core snd_intel8x0m snd_intel8x0
snd_ac97_codec snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq
snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd soundcore
snd_page_alloc e1000 ipw2200 ieee80211 ieee80211_crypt ext3 jbd
CPU:    0
EIP:    0060:[<c02311f1>]    Not tainted VLI
EFLAGS: 00010246   (2.6.12-1.1435_FC5)
EIP is at fb_set_logocmap+0x79/0xee
eax: 00000020   ebx: fffffff6   ecx: 00000000   edx: 00000010
esi: 00000000   edi: 00000010   ebp: 00000000   esp: ef26bc2c
ds: 007b   es: 007b   ss: 0068
Process modprobe (pid: 25357, threadinfo=ef26b000 task=f1b0b000)
Stack: c045f154 eb944000 00000008 00000282 00000002 00000004 d67c2208 eb944000
       00000007 00000000 00000000 f90d8000 00000010 00000001 c015cca3 d67c21f4
       de3bcb10 00ffffff 00ffff00 00000000 00000010 c04a4c60 c04a4c40 f8c03a85
Call Trace:
 [<c015cca3>] poison_obj+0x20/0x3d
 [<f8c03a85>] radeonfb_setcmap+0xc7/0x4b9 [radeonfb]
 [<c023180d>] fb_show_logo+0x1af/0x1f5
 [<c02306ce>] bit_clear_margins+0xa2/0xdb
 [<c022eaa5>] fbcon_switch+0x474/0x4c4
 [<c026f110>] redraw_screen+0xab/0x1ba
 [<c026e8df>] update_attr+0x8c/0x9d
 [<c02720eb>] take_over_console+0x26f/0x35a
 [<c015eac7>] cache_alloc_refill+0xc8/0x389
 [<c01d5113>] sysfs_make_dirent+0x13/0x81
 [<c015cca3>] poison_obj+0x20/0x3d
 [<c022b4db>] fbcon_takeover+0x69/0xa0
 [<c0135799>] notifier_call_chain+0x17/0x27
 [<c0232553>] register_framebuffer+0xd3/0x181
 [<c012df54>] process_timeout+0x0/0x5
 [<c012e334>] msleep+0x30/0x38
 [<f8c0c9d4>] radeon_pm_enable_dynamic_mode+0x1ce6/0x28c9 [radeonfb]
 [<c01227a5>] printk+0x1b/0x1f
 [<f8c07f6b>] radeonfb_pci_register+0x2e7/0x54b [radeonfb]
 [<c0216af0>] kobject_hotplug+0x2a4/0x39e
 [<c0223494>] __pci_device_probe+0x30/0x3d
 [<c02234bf>] pci_device_probe+0x1e/0x35
 [<c0291a3d>] driver_probe_device+0x35/0x9e
 [<c0291b58>] __driver_attach+0x45/0x47
 [<c02912f5>] bus_for_each_dev+0x3c/0x5a
 [<c0291b70>] driver_attach+0x16/0x1a
 [<c0291b13>] __driver_attach+0x0/0x47
 [<c02916be>] bus_add_driver+0x66/0xaf
 [<c02236a4>] pci_register_driver+0x97/0xb7
 [<c01486c4>] sys_init_module+0xca/0x1c4
 [<c0103b15>] syscall_call+0x7/0xb
Code: 31 d2 89 c7 29 d7 89 fa 83 ff 10 7e 0a bf 10 00 00 00 ba 10 00 00 00 8d 45
20 89 44 24 68 89 54 24 6c 85 ff 7e 53 31 f6 8d 0c 36 <0f> b6 03 89 c2 c1 e2 08
66 0f b6 c0 09 c2 8b 44 24 70 66 89 14




-------------------------------------------------------
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

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

* Re: Re: Fwd: [Bug 164337] New: radeonfb oopses
  2005-07-28 23:08   ` Fwd: [Bug 164337] New: radeonfb oopses Dave Jones
@ 2005-07-29 11:45     ` Jon Smirl
  2005-07-29 14:55       ` Antonino A. Daplas
  0 siblings, 1 reply; 3+ messages in thread
From: Jon Smirl @ 2005-07-29 11:45 UTC (permalink / raw)
  To: linux-fbdev-devel, Michal Januszewski; +Cc: Benjamin Herrenschmidt, notting

I would suspect: [Linux-fbdev-devel] [patch 158/160] fbdev: update
info->cmap when setting cmap from user-/kernelspace.

The stack trace does not show the sysfs cmap attibute in use.

On 7/28/05, Dave Jones <davej@redhat.com> wrote:
> On Thu, Jul 28, 2005 at 09:18:54AM +0100, Ben Herrenschmidt wrote:
>  > On Wed, 2005-07-27 at 15:34 -0400, Dave Jones wrote:
>  > > This was on a git snapshot from a day or two ago.
>  >
>  > I'll have a look when I'm done travelling ... maybe this week-end or
>  > monday. Can you CC the linux-fbdev list in the meantime ? I wonder if
>  > it's related to some cmap handling changes I've seen floating around...
>  >
>  > Thanks,
>  > Ben.
> 
> BenH asked me to forward this here.
> 
> https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=164337
> 
> git snapshot from a few days ago yields this oops..
> 
> radeonfb: Retreived PLL infos from BIOS
> radeonfb: Reference=27.00 MHz (RefDiv=12) Memory=252.00 Mhz, System=200.00 MHz
> radeonfb: PLL min 20000 max 35000
> Non-DDC laptop panel detected
> radeonfb: Monitor 1 type LCD found
> radeonfb: Monitor 2 type no found
> radeonfb: panel ID string: SXGA+ Single (85MHz)
> radeonfb: detected LVDS panel size from BIOS: 1400x1050
> radeondb: BIOS provided dividers will be used
> radeonfb: Dynamic Clock Power Management enabled
> radeonfb: forcefully enabling sleep mode
> Unable to handle kernel paging request at virtual address fffffff6
>  printing eip:
> c02311f1
> *pde = 00002067
> Oops: 0000 [#1]
> Modules linked in: radeonfb i2c_algo_bit nfs lockd nfs_acl tun arc4
> ieee80211_crypt_wep radeon drm loop parport_pc lp parport ipv6 autofs4 sunrpc
> ipt_REJECT ipt_state ip_conntrack iptable_filter ip_tables dm_mod video button
> battery ac pcmcia yenta_socket rsrc_nonstatic pcmcia_core uhci_hcd ehci_hcd
> shpchp hw_random i8xx_tco i2c_i801 i2c_core snd_intel8x0m snd_intel8x0
> snd_ac97_codec snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq
> snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd soundcore
> snd_page_alloc e1000 ipw2200 ieee80211 ieee80211_crypt ext3 jbd
> CPU:    0
> EIP:    0060:[<c02311f1>]    Not tainted VLI
> EFLAGS: 00010246   (2.6.12-1.1435_FC5)
> EIP is at fb_set_logocmap+0x79/0xee
> eax: 00000020   ebx: fffffff6   ecx: 00000000   edx: 00000010
> esi: 00000000   edi: 00000010   ebp: 00000000   esp: ef26bc2c
> ds: 007b   es: 007b   ss: 0068
> Process modprobe (pid: 25357, threadinfo=ef26b000 task=f1b0b000)
> Stack: c045f154 eb944000 00000008 00000282 00000002 00000004 d67c2208 eb944000
>        00000007 00000000 00000000 f90d8000 00000010 00000001 c015cca3 d67c21f4
>        de3bcb10 00ffffff 00ffff00 00000000 00000010 c04a4c60 c04a4c40 f8c03a85
> Call Trace:
>  [<c015cca3>] poison_obj+0x20/0x3d
>  [<f8c03a85>] radeonfb_setcmap+0xc7/0x4b9 [radeonfb]
>  [<c023180d>] fb_show_logo+0x1af/0x1f5
>  [<c02306ce>] bit_clear_margins+0xa2/0xdb
>  [<c022eaa5>] fbcon_switch+0x474/0x4c4
>  [<c026f110>] redraw_screen+0xab/0x1ba
>  [<c026e8df>] update_attr+0x8c/0x9d
>  [<c02720eb>] take_over_console+0x26f/0x35a
>  [<c015eac7>] cache_alloc_refill+0xc8/0x389
>  [<c01d5113>] sysfs_make_dirent+0x13/0x81
>  [<c015cca3>] poison_obj+0x20/0x3d
>  [<c022b4db>] fbcon_takeover+0x69/0xa0
>  [<c0135799>] notifier_call_chain+0x17/0x27
>  [<c0232553>] register_framebuffer+0xd3/0x181
>  [<c012df54>] process_timeout+0x0/0x5
>  [<c012e334>] msleep+0x30/0x38
>  [<f8c0c9d4>] radeon_pm_enable_dynamic_mode+0x1ce6/0x28c9 [radeonfb]
>  [<c01227a5>] printk+0x1b/0x1f
>  [<f8c07f6b>] radeonfb_pci_register+0x2e7/0x54b [radeonfb]
>  [<c0216af0>] kobject_hotplug+0x2a4/0x39e
>  [<c0223494>] __pci_device_probe+0x30/0x3d
>  [<c02234bf>] pci_device_probe+0x1e/0x35
>  [<c0291a3d>] driver_probe_device+0x35/0x9e
>  [<c0291b58>] __driver_attach+0x45/0x47
>  [<c02912f5>] bus_for_each_dev+0x3c/0x5a
>  [<c0291b70>] driver_attach+0x16/0x1a
>  [<c0291b13>] __driver_attach+0x0/0x47
>  [<c02916be>] bus_add_driver+0x66/0xaf
>  [<c02236a4>] pci_register_driver+0x97/0xb7
>  [<c01486c4>] sys_init_module+0xca/0x1c4
>  [<c0103b15>] syscall_call+0x7/0xb
> Code: 31 d2 89 c7 29 d7 89 fa 83 ff 10 7e 0a bf 10 00 00 00 ba 10 00 00 00 8d 45
> 20 89 44 24 68 89 54 24 6c 85 ff 7e 53 31 f6 8d 0c 36 <0f> b6 03 89 c2 c1 e2 08
> 66 0f b6 c0 09 c2 8b 44 24 70 66 89 14
> 
> 
> 
> 
> -------------------------------------------------------
> 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
> _______________________________________________
> Linux-fbdev-devel mailing list
> Linux-fbdev-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel
> 


-- 
Jon Smirl
jonsmirl@gmail.com


-------------------------------------------------------
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

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

* Re: Re: Fwd: [Bug 164337] New: radeonfb oopses
  2005-07-29 11:45     ` Jon Smirl
@ 2005-07-29 14:55       ` Antonino A. Daplas
  0 siblings, 0 replies; 3+ messages in thread
From: Antonino A. Daplas @ 2005-07-29 14:55 UTC (permalink / raw)
  To: linux-fbdev-devel; +Cc: Michal Januszewski, Benjamin Herrenschmidt, notting

Jon Smirl wrote:
> I would suspect: [Linux-fbdev-devel] [patch 158/160] fbdev: update
> info->cmap when setting cmap from user-/kernelspace.
> 

It's possible that this bug is the result of this patch.  But I also
suspect some weirdness in the logo code. The tracing points to a
pointer loaded in register ebx and disassembling the function shows that
the logo clut address is loaded in this register. Can you try to set
CONFIG_LOGO to n?

If the above still doesn't work, reverse the patch below.

> The stack trace does not show the sysfs cmap attibute in use.

I don't think it's fbsysfs.

Tony

diff -puN drivers/video/fbcmap.c~fbdev-update-info-cmap-when-setting-cmap-from-user-kernelspace drivers/video/fbcmap.c
--- devel/drivers/video/fbcmap.c~fbdev-update-info-cmap-when-setting-cmap-from-user-kernelspace	2005-07-27 11:10:12.000000000 -0700
+++ devel-akpm/drivers/video/fbcmap.c	2005-07-27 11:10:12.000000000 -0700
@@ -212,7 +212,7 @@ int fb_cmap_to_user(struct fb_cmap *from
 
 int fb_set_cmap(struct fb_cmap *cmap, struct fb_info *info)
 {
-	int i, start;
+	int i, start, rc = 0;
 	u16 *red, *green, *blue, *transp;
 	u_int hred, hgreen, hblue, htransp = 0xffff;
 
@@ -225,75 +225,51 @@ int fb_set_cmap(struct fb_cmap *cmap, st
 	if (start < 0 || (!info->fbops->fb_setcolreg &&
 			  !info->fbops->fb_setcmap))
 		return -EINVAL;
-	if (info->fbops->fb_setcmap)
-		return info->fbops->fb_setcmap(cmap, info);
-	for (i = 0; i < cmap->len; i++) {
-		hred = *red++;
-		hgreen = *green++;
-		hblue = *blue++;
-		if (transp)
-			htransp = *transp++;
-		if (info->fbops->fb_setcolreg(start++,
-					      hred, hgreen, hblue, htransp,
-					      info))
-			break;
+	if (info->fbops->fb_setcmap) {
+		rc = info->fbops->fb_setcmap(cmap, info);
+	} else {
+		for (i = 0; i < cmap->len; i++) {
+			hred = *red++;
+			hgreen = *green++;
+			hblue = *blue++;
+			if (transp)
+				htransp = *transp++;
+			if (info->fbops->fb_setcolreg(start++,
+						      hred, hgreen, hblue,
+						      htransp, info))
+				break;
+		}
 	}
-	return 0;
+	if (rc == 0)
+		fb_copy_cmap(cmap, &info->cmap);
+
+	return rc;
 }
 
 int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info)
 {
-	int i, start;
-	u16 __user *red, *green, *blue, *transp;
-	u_int hred, hgreen, hblue, htransp = 0xffff;
-
-	red = cmap->red;
-	green = cmap->green;
-	blue = cmap->blue;
-	transp = cmap->transp;
-	start = cmap->start;
+	int rc, size = cmap->len * sizeof(u16);
+	struct fb_cmap umap;
 
-	if (start < 0 || (!info->fbops->fb_setcolreg &&
-			  !info->fbops->fb_setcmap))
+	if (cmap->start < 0 || (!info->fbops->fb_setcolreg &&
+			        !info->fbops->fb_setcmap))
 		return -EINVAL;
 
-	/* If we can batch, do it */
-	if (info->fbops->fb_setcmap && cmap->len > 1) {
-		struct fb_cmap umap;
-		int size = cmap->len * sizeof(u16);
-		int rc;
-
-		memset(&umap, 0, sizeof(struct fb_cmap));
-		rc = fb_alloc_cmap(&umap, cmap->len, transp != NULL);
-		if (rc)
-			return rc;
-		if (copy_from_user(umap.red, red, size) ||
-		    copy_from_user(umap.green, green, size) ||
-		    copy_from_user(umap.blue, blue, size) ||
-		    (transp && copy_from_user(umap.transp, transp, size))) {
-			rc = -EFAULT;
-		}
-		umap.start = start;
-		if (rc == 0)
-			rc = info->fbops->fb_setcmap(&umap, info);
-		fb_dealloc_cmap(&umap);
+	memset(&umap, 0, sizeof(struct fb_cmap));
+	rc = fb_alloc_cmap(&umap, cmap->len, cmap->transp != NULL);
+	if (rc)
 		return rc;
+	if (copy_from_user(umap.red, cmap->red, size) ||
+	    copy_from_user(umap.green, cmap->green, size) ||
+	    copy_from_user(umap.blue, cmap->blue, size) ||
+	    (cmap->transp && copy_from_user(umap.transp, cmap->transp, size))) {
+		fb_dealloc_cmap(&umap);
+		return -EFAULT;
 	}
-
-	for (i = 0; i < cmap->len; i++, red++, blue++, green++) {
-		if (get_user(hred, red) ||
-		    get_user(hgreen, green) ||
-		    get_user(hblue, blue) ||
-		    (transp && get_user(htransp, transp)))
-			return -EFAULT;
-		if (info->fbops->fb_setcolreg(start++,
-					      hred, hgreen, hblue, htransp,
-					      info))
-			return 0;
-		if (transp)
-			transp++;
-	}
-	return 0;
+	umap.start = cmap->start;
+	rc = fb_set_cmap(&umap, info);
+	fb_dealloc_cmap(&umap);
+	return rc;
 }
 
 /**
_




-------------------------------------------------------
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

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

end of thread, other threads:[~2005-07-29 14:56 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20050727193425.GB2388@redhat.com>
     [not found] ` <1122538735.18835.19.camel@gaston>
2005-07-28 23:08   ` Fwd: [Bug 164337] New: radeonfb oopses Dave Jones
2005-07-29 11:45     ` Jon Smirl
2005-07-29 14:55       ` Antonino A. Daplas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).