Re: 2.6.14-rc4-mm1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 17, 2005 at 01:22:42PM -0700, Andrew Morton wrote:
> Brice Goglin <[email protected]> wrote:
> > Modules linked in: pcspkr parport_pc parport irtty_sir sir_dev irda
> > crc_ccitt hw_random uhci_hcd usbcore snd_maestro3 snd_ac97_codec
> > snd_ac97_bus snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc
> > snd soundcore yenta_socket rsrc_nonstatic pcmcia_core nls_iso8859_15
> > nls_cp850 vfat fat nls_base psmouse
> > CPU:    0
> > EIP:    0060:[<c01dda09>]    Not tainted VLI
> > EFLAGS: 00010246   (2.6.14-rc4-mm1=LoulousMobile)
> > EIP is at get_kobj_path_length+0x19/0x30
> > eax: 00000000   ebx: 00000000   ecx: ffffffff   edx: e6efee50
> > esi: 00000001   edi: 00000000   ebp: e737eec8   esp: e737eebc
> > ds: 007b   es: 007b   ss: 0068
> > Process sed (pid: 3258, threadinfo=e737e000 task=e7970a90)
> > Stack: e6efe800 00000001 e6de4000 e737eee8 c01dda9a e6efee50 e6de42e4
> > 00000286
> >        e6efe800 00000001 e6de4000 e737ef24 c02a357f e6efee50 800000d0
> > 0000000f
> >        00000002 0000000a 00000000 e6efe800 00000000 000002e5 000002e5
> > e7e9ce60
> > Call Trace:
> >  [<c010414b>] show_stack+0xab/0xf0
> >  [<c010433f>] show_registers+0x18f/0x230
> >  [<c0104592>] die+0x102/0x1c0
> >  [<c035f27a>] do_page_fault+0x33a/0x66f
> >  [<c0103dbb>] error_code+0x4f/0x54
> >  [<c01dda9a>] kobject_get_path+0x1a/0x70
> >  [<c02a357f>] input_devices_read+0x53f/0x590
> >  [<c01a2e75>] proc_file_read+0x1b5/0x260
> >  [<c01689f8>] vfs_read+0xa8/0x190
> >  [<c0168dc7>] sys_read+0x47/0x70
> >  [<c0103325>] syscall_call+0x7/0xb
> > Code: f8 89 ec 5d c3 8d b6 00 00 00 00 8d bc 27 00 00 00 00 55 89 e5 8b
> > 55 08 57 56 be 01 00 00 00 53 31 db 8b 3a b9 ff ff ff ff 89 d8 <f2> ae
> > f7 d1 49 8b 52 24 8d 74 31 01 85 d2 75 e7 5b 89 f0 5e 5f
> > <6>input: isa0061/input0//class/input_dev as input3
> 
> Something went wrong under input_devices_read().   Probably culprits cc'ed.

I know this patch doesn't have the proc path, but it does fix an easy
oops that I can generate from sysfs input devices.  Can you try it out
to see if it fixes your issue too?

thanks,

greg k-h

---
 drivers/input/input.c |   19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

--- gregkh-2.6.orig/drivers/input/input.c
+++ gregkh-2.6/drivers/input/input.c
@@ -522,17 +522,22 @@ static ssize_t input_dev_show_##name(str
 	up(&input_dev->sem);							\
 										\
 	return retval;								\
-}
+}										\
+static CLASS_DEVICE_ATTR(name, S_IRUGO, input_dev_show_##name, NULL);
 
 INPUT_DEV_STRING_ATTR_SHOW(name);
 INPUT_DEV_STRING_ATTR_SHOW(phys);
 INPUT_DEV_STRING_ATTR_SHOW(uniq);
 
-static struct class_device_attribute input_dev_attrs[] = {
-	__ATTR(name, S_IRUGO, input_dev_show_name, NULL),
-	__ATTR(phys, S_IRUGO, input_dev_show_phys, NULL),
-	__ATTR(uniq, S_IRUGO, input_dev_show_uniq, NULL),
-	__ATTR_NULL
+static struct attribute *input_dev_attrs[] = {
+	&class_device_attr_name.attr,
+	&class_device_attr_phys.attr,
+	&class_device_attr_uniq.attr,
+	NULL
+};
+
+static struct attribute_group input_dev_group = {
+	.attrs	= input_dev_attrs,
 };
 
 #define INPUT_DEV_ID_ATTR(name)							\
@@ -694,7 +699,6 @@ struct class input_class = {
 	.name			= "input",
 	.release		= input_dev_release,
 	.hotplug		= input_dev_hotplug,
-	.class_dev_attrs	= input_dev_attrs,
 };
 
 struct input_dev *input_allocate_device(void)
@@ -732,6 +736,7 @@ static void input_register_classdevice(s
 	kfree(path);
 
 	class_device_add(&dev->cdev);
+	sysfs_create_group(&dev->cdev.kobj, &input_dev_group);
 	sysfs_create_group(&dev->cdev.kobj, &input_dev_id_attr_group);
 	sysfs_create_group(&dev->cdev.kobj, &input_dev_caps_attr_group);
 }
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux