* Re: linux-next: Tree for Sept 12 (kernel-panic after pressing any key at X login) [not found] <CA+icZUVEQNPGL7_BbLA-urgP6rFvdOh0SUtYESUv6ZJc+w78Nw@mail.gmail.com> @ 2012-09-13 5:29 ` Sedat Dilek 2012-09-13 6:04 ` Minchan Kim 0 siblings, 1 reply; 8+ messages in thread From: Sedat Dilek @ 2012-09-13 5:29 UTC (permalink / raw) To: Stephen Rothwell; +Cc: linux-next, LKML, Dmitry Torokhov, linux-input [-- Attachment #1: Type: text/plain, Size: 1804 bytes --] On Thu, Sep 13, 2012 at 5:18 AM, Sedat Dilek <sedat.dilek@gmail.com> wrote: > On Wed, Sep 12, 2012 at 10:46 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote: >> Hi all, >> >> Changes since 201209011: >> >> The pci tree lost its build failure. >> >> The mfd tree gained a conflict against Linus' tree. >> >> The omap_dss2 tree lost its conflict. >> >> The trivial tree gained a conflict against the mfd tree. >> >> The kvm tree gained a conflict against Linus' tree. >> >> The workqueues tree gained a conflict against the omap_dss2 tree. >> >> The usb tree gained conflicts against the usb.current tree. >> >> The staging tree gained a conflict against the thermal tree and a build >> failure for which I applied a merge fix patch. >> >> The tegra tree gained conflicts against the usb and arm-perf trees. >> >> ---------------------------------------------------------------------------- >> > > Hi, > > this weeks linux-next seems to bring new and new issues, yay :-)! > > I have taken a photo, but can't say what can have caused. > The issue is reproducible... > Immediately, after pressing any key (when X-display-manager (lightdm) > and X-greeter are up) my machine panics and is no more usable (cold > rough brutal killer restart). > Note: Using upstart or systemd does not matter. > > Any pointer to an area where to dig into or any feedback in general is welcome! > > Kind Regards, > - Sedat - [ CC Dmitry Torokhov (linux-input maintainer) plus linux-input ML ] By looking at my screenshot, someone could imagine that there is a problem coming from the input GIT branch(es) merges: input_to_handler() input_pass_values() input_handle_event() input_event() Unfortunately, with those 3 revert-patches I see the same kernel-panic. Dimitry, any idea what can cause this kernel-panic? - Sedat - [-- Attachment #2: 0001-Revert-Input-evdev-Add-the-events-callback.patch --] [-- Type: application/octet-stream, Size: 3885 bytes --] From 4858ce6b65a61b46fee3f056e59c149f1756cb96 Mon Sep 17 00:00:00 2001 From: Sedat Dilek <sedat.dilek@gmail.com> Date: Thu, 13 Sep 2012 06:59:36 +0200 Subject: [PATCH 1/3] Revert "Input: evdev - Add the events() callback" This reverts commit cd8eeb31c8a8e2991fc4f2c4e9dd6b97d27ff8f6. --- drivers/input/evdev.c | 68 +++++++++++++++---------------------------------- 1 file changed, 21 insertions(+), 47 deletions(-) diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c index 118d030..a0692c5 100644 --- a/drivers/input/evdev.c +++ b/drivers/input/evdev.c @@ -54,9 +54,16 @@ struct evdev_client { static struct evdev *evdev_table[EVDEV_MINORS]; static DEFINE_MUTEX(evdev_table_mutex); -static void __pass_event(struct evdev_client *client, - const struct input_event *event) +static void evdev_pass_event(struct evdev_client *client, + struct input_event *event, + ktime_t mono, ktime_t real) { + event->time = ktime_to_timeval(client->clkid == CLOCK_MONOTONIC ? + mono : real); + + /* Interrupts are disabled, just acquire the lock. */ + spin_lock(&client->buffer_lock); + client->buffer[client->head++] = *event; client->head &= client->bufsize - 1; @@ -79,74 +86,42 @@ static void __pass_event(struct evdev_client *client, client->packet_head = client->head; kill_fasync(&client->fasync, SIGIO, POLL_IN); } -} - -static void evdev_pass_values(struct evdev_client *client, - const struct input_value *vals, unsigned int count, - ktime_t mono, ktime_t real) -{ - struct evdev *evdev = client->evdev; - const struct input_value *v; - struct input_event event; - bool wakeup = false; - - event.time = ktime_to_timeval(client->clkid == CLOCK_MONOTONIC ? - mono : real); - - /* Interrupts are disabled, just acquire the lock. */ - spin_lock(&client->buffer_lock); - - for (v = vals; v != vals + count; v++) { - event.type = v->type; - event.code = v->code; - event.value = v->value; - __pass_event(client, &event); - if (v->type == EV_SYN && v->code == SYN_REPORT) - wakeup = true; - } spin_unlock(&client->buffer_lock); - - if (wakeup) - wake_up_interruptible(&evdev->wait); } /* - * Pass incoming events to all connected clients. + * Pass incoming event to all connected clients. */ -static void evdev_events(struct input_handle *handle, - const struct input_value *vals, unsigned int count) +static void evdev_event(struct input_handle *handle, + unsigned int type, unsigned int code, int value) { struct evdev *evdev = handle->private; struct evdev_client *client; + struct input_event event; ktime_t time_mono, time_real; time_mono = ktime_get(); time_real = ktime_sub(time_mono, ktime_get_monotonic_offset()); + event.type = type; + event.code = code; + event.value = value; + rcu_read_lock(); client = rcu_dereference(evdev->grab); if (client) - evdev_pass_values(client, vals, count, time_mono, time_real); + evdev_pass_event(client, &event, time_mono, time_real); else list_for_each_entry_rcu(client, &evdev->client_list, node) - evdev_pass_values(client, vals, count, - time_mono, time_real); + evdev_pass_event(client, &event, time_mono, time_real); rcu_read_unlock(); -} -/* - * Pass incoming event to all connected clients. - */ -static void evdev_event(struct input_handle *handle, - unsigned int type, unsigned int code, int value) -{ - struct input_value vals[] = { { type, code, value } }; - - evdev_events(handle, vals, 1); + if (type == EV_SYN && code == SYN_REPORT) + wake_up_interruptible(&evdev->wait); } static int evdev_fasync(int fd, struct file *file, int on) @@ -1075,7 +1050,6 @@ MODULE_DEVICE_TABLE(input, evdev_ids); static struct input_handler evdev_handler = { .event = evdev_event, - .events = evdev_events, .connect = evdev_connect, .disconnect = evdev_disconnect, .fops = &evdev_fops, -- 1.7.9.5 [-- Attachment #3: 0002-Revert-Input-Send-events-one-packet-at-a-time.patch --] [-- Type: application/octet-stream, Size: 11147 bytes --] From e0a20bb89ded22eec9a9dc76cd030d3f55d83051 Mon Sep 17 00:00:00 2001 From: Sedat Dilek <sedat.dilek@gmail.com> Date: Thu, 13 Sep 2012 06:59:36 +0200 Subject: [PATCH 2/3] Revert "Input: Send events one packet at a time" This reverts commit b276fc1e875a51e4a9dc3322ed008bf4ae481baf. --- drivers/input/input.c | 176 +++++++++++++++---------------------------------- include/linux/input.h | 24 +------ 2 files changed, 56 insertions(+), 144 deletions(-) diff --git a/drivers/input/input.c b/drivers/input/input.c index e4ee39f..2e96c3f 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -47,8 +47,6 @@ static DEFINE_MUTEX(input_mutex); static struct input_handler *input_table[8]; -static const struct input_value input_value_sync = { EV_SYN, SYN_REPORT, 1 }; - static inline int is_event_supported(unsigned int code, unsigned long *bm, unsigned int max) { @@ -92,81 +90,46 @@ static void input_stop_autorepeat(struct input_dev *dev) * filtered out, through all open handles. This function is called with * dev->event_lock held and interrupts disabled. */ -static unsigned int input_to_handler(struct input_handle *handle, - struct input_value *vals, unsigned int count) +static void input_pass_event(struct input_dev *dev, + unsigned int type, unsigned int code, int value) { - struct input_handler *handler = handle->handler; - struct input_value *end = vals; - struct input_value *v; - - for (v = vals; v != vals + count; v++) { - if (handler->filter && - handler->filter(handle, v->type, v->code, v->value)) - continue; - if (end != v) - *end = *v; - end++; - } - - count = end - vals; - if (!count) - return 0; + struct input_handler *handler; + struct input_handle *handle; - if (handler->events) - handler->events(handle, vals, count); - else - for (v = vals; v != end; v++) - handler->event(handle, v->type, v->code, v->value); + rcu_read_lock(); - return count; -} + handle = rcu_dereference(dev->grab); + if (handle) + handle->handler->event(handle, type, code, value); + else { + bool filtered = false; -/* - * Pass values first through all filters and then, if event has not been - * filtered out, through all open handles. This function is called with - * dev->event_lock held and interrupts disabled. - */ -static void input_pass_values(struct input_dev *dev, - struct input_value *vals, unsigned int count) -{ - struct input_handle *handle; - struct input_value *v; + list_for_each_entry_rcu(handle, &dev->h_list, d_node) { + if (!handle->open) + continue; - if (!count) - return; + handler = handle->handler; + if (!handler->filter) { + if (filtered) + break; - rcu_read_lock(); + handler->event(handle, type, code, value); - handle = rcu_dereference(dev->grab); - if (handle) { - count = input_to_handler(handle, vals, count); - } else { - list_for_each_entry_rcu(handle, &dev->h_list, d_node) - if (handle->open) - count = input_to_handler(handle, vals, count); + } else if (handler->filter(handle, type, code, value)) + filtered = true; + } } rcu_read_unlock(); - add_input_randomness(vals->type, vals->code, vals->value); - /* trigger auto repeat for key events */ - for (v = vals; v != vals + count; v++) { - if (v->type == EV_KEY && v->value != 2) { - if (v->value) - input_start_autorepeat(dev, v->code); - else - input_stop_autorepeat(dev); - } + if (type == EV_KEY && value != 2) { + if (value) + input_start_autorepeat(dev, code); + else + input_stop_autorepeat(dev); } -} - -static void input_pass_event(struct input_dev *dev, - unsigned int type, unsigned int code, int value) -{ - struct input_value vals[] = { { type, code, value } }; - input_pass_values(dev, vals, ARRAY_SIZE(vals)); } /* @@ -183,12 +146,18 @@ static void input_repeat_key(unsigned long data) if (test_bit(dev->repeat_key, dev->key) && is_event_supported(dev->repeat_key, dev->keybit, KEY_MAX)) { - struct input_value vals[] = { - { EV_KEY, dev->repeat_key, 2 }, - input_value_sync - }; - input_pass_values(dev, vals, ARRAY_SIZE(vals)); + input_pass_event(dev, EV_KEY, dev->repeat_key, 2); + + if (dev->sync) { + /* + * Only send SYN_REPORT if we are not in a middle + * of driver parsing a new hardware packet. + * Otherwise assume that the driver will send + * SYN_REPORT once it's done. + */ + input_pass_event(dev, EV_SYN, SYN_REPORT, 1); + } if (dev->rep[REP_PERIOD]) mod_timer(&dev->timer, jiffies + @@ -201,8 +170,6 @@ static void input_repeat_key(unsigned long data) #define INPUT_IGNORE_EVENT 0 #define INPUT_PASS_TO_HANDLERS 1 #define INPUT_PASS_TO_DEVICE 2 -#define INPUT_SLOT 4 -#define INPUT_FLUSH 8 #define INPUT_PASS_TO_ALL (INPUT_PASS_TO_HANDLERS | INPUT_PASS_TO_DEVICE) static int input_handle_abs_event(struct input_dev *dev, @@ -248,14 +215,14 @@ static int input_handle_abs_event(struct input_dev *dev, /* Flush pending "slot" event */ if (is_mt_event && dev->slot != input_abs_get_val(dev, ABS_MT_SLOT)) { input_abs_set_val(dev, ABS_MT_SLOT, dev->slot); - return INPUT_PASS_TO_HANDLERS | INPUT_SLOT; + input_pass_event(dev, EV_ABS, ABS_MT_SLOT, dev->slot); } return INPUT_PASS_TO_HANDLERS; } -static int input_get_disposition(struct input_dev *dev, - unsigned int type, unsigned int code, int value) +static void input_handle_event(struct input_dev *dev, + unsigned int type, unsigned int code, int value) { int disposition = INPUT_IGNORE_EVENT; @@ -268,9 +235,13 @@ static int input_get_disposition(struct input_dev *dev, break; case SYN_REPORT: - disposition = INPUT_PASS_TO_HANDLERS | INPUT_FLUSH; + if (!dev->sync) { + dev->sync = true; + disposition = INPUT_PASS_TO_HANDLERS; + } break; case SYN_MT_REPORT: + dev->sync = false; disposition = INPUT_PASS_TO_HANDLERS; break; } @@ -355,48 +326,14 @@ static int input_get_disposition(struct input_dev *dev, break; } - return disposition; -} - -static void input_handle_event(struct input_dev *dev, - unsigned int type, unsigned int code, int value) -{ - int disposition; - - disposition = input_get_disposition(dev, type, code, value); + if (disposition != INPUT_IGNORE_EVENT && type != EV_SYN) + dev->sync = false; if ((disposition & INPUT_PASS_TO_DEVICE) && dev->event) dev->event(dev, type, code, value); - if (!dev->vals) - return; - - if (disposition & INPUT_PASS_TO_HANDLERS) { - struct input_value *v; - - if (disposition & INPUT_SLOT) { - v = &dev->vals[dev->num_vals++]; - v->type = EV_ABS; - v->code = ABS_MT_SLOT; - v->value = dev->slot; - } - - v = &dev->vals[dev->num_vals++]; - v->type = type; - v->code = code; - v->value = value; - } - - if (disposition & INPUT_FLUSH) { - if (dev->num_vals >= 2) - input_pass_values(dev, dev->vals, dev->num_vals); - dev->num_vals = 0; - } else if (dev->num_vals >= dev->max_vals - 2) { - dev->vals[dev->num_vals++] = input_value_sync; - input_pass_values(dev, dev->vals, dev->num_vals); - dev->num_vals = 0; - } - + if (disposition & INPUT_PASS_TO_HANDLERS) + input_pass_event(dev, type, code, value); } /** @@ -424,6 +361,7 @@ void input_event(struct input_dev *dev, if (is_event_supported(type, dev->evbit, EV_MAX)) { spin_lock_irqsave(&dev->event_lock, flags); + add_input_randomness(type, code, value); input_handle_event(dev, type, code, value); spin_unlock_irqrestore(&dev->event_lock, flags); } @@ -902,12 +840,10 @@ int input_set_keycode(struct input_dev *dev, if (test_bit(EV_KEY, dev->evbit) && !is_event_supported(old_keycode, dev->keybit, KEY_MAX) && __test_and_clear_bit(old_keycode, dev->key)) { - struct input_value vals[] = { - { EV_KEY, old_keycode, 0 }, - input_value_sync - }; - input_pass_values(dev, vals, ARRAY_SIZE(vals)); + input_pass_event(dev, EV_KEY, old_keycode, 0); + if (dev->sync) + input_pass_event(dev, EV_SYN, SYN_REPORT, 1); } out: @@ -1498,7 +1434,6 @@ static void input_dev_release(struct device *device) input_ff_destroy(dev); input_mt_destroy_slots(dev); kfree(dev->absinfo); - kfree(dev->vals); kfree(dev); module_put(THIS_MODULE); @@ -1919,11 +1854,6 @@ int input_register_device(struct input_dev *dev) if (dev->hint_events_per_packet < packet_size) dev->hint_events_per_packet = packet_size; - dev->max_vals = max(dev->hint_events_per_packet, packet_size) + 2; - dev->vals = kcalloc(dev->max_vals, sizeof(*dev->vals), GFP_KERNEL); - if (!dev->vals) - return -ENOMEM; - /* * If delay and period are pre-set by the driver, then autorepeating * is handled by the driver itself and we don't do it in input.c. diff --git a/include/linux/input.h b/include/linux/input.h index 797f335..76d6788 100644 --- a/include/linux/input.h +++ b/include/linux/input.h @@ -1169,18 +1169,6 @@ struct ff_effect { #include <linux/mod_devicetable.h> /** - * struct input_value - input value representation - * @type: type of value (EV_KEY, EV_ABS, etc) - * @code: the value code - * @value: the value - */ -struct input_value { - __u16 type; - __u16 code; - __s32 value; -}; - -/** * struct input_dev - represents an input device * @name: name of the device * @phys: physical path to the device in the system hierarchy @@ -1253,6 +1241,7 @@ struct input_value { * last user closes the device * @going_away: marks devices that are in a middle of unregistering and * causes input_open_device*() fail with -ENODEV. + * @sync: set to %true when there were no new events since last EV_SYN * @dev: driver model's view of this device * @h_list: list of input handles associated with the device. When * accessing the list dev->mutex must be held @@ -1318,14 +1307,12 @@ struct input_dev { unsigned int users; bool going_away; + bool sync; + struct device dev; struct list_head h_list; struct list_head node; - - unsigned int num_vals; - unsigned int max_vals; - struct input_value *vals; }; #define to_input_dev(d) container_of(d, struct input_dev, dev) @@ -1386,9 +1373,6 @@ struct input_handle; * @event: event handler. This method is being called by input core with * interrupts disabled and dev->event_lock spinlock held and so * it may not sleep - * @events: event sequence handler. This method is being called by - * input core with interrupts disabled and dev->event_lock - * spinlock held and so it may not sleep * @filter: similar to @event; separates normal event handlers from * "filters". * @match: called after comparing device's id with handler's id_table @@ -1425,8 +1409,6 @@ struct input_handler { void *private; void (*event)(struct input_handle *handle, unsigned int type, unsigned int code, int value); - void (*events)(struct input_handle *handle, - const struct input_value *vals, unsigned int count); bool (*filter)(struct input_handle *handle, unsigned int type, unsigned int code, int value); bool (*match)(struct input_handler *handler, struct input_dev *dev); int (*connect)(struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id); -- 1.7.9.5 [-- Attachment #4: 0003-Revert-Input-Move-autorepeat-to-the-event-passing-ph.patch --] [-- Type: application/octet-stream, Size: 2432 bytes --] From 4121a37166478946910f8f27ae13d4531cd44a74 Mon Sep 17 00:00:00 2001 From: Sedat Dilek <sedat.dilek@gmail.com> Date: Thu, 13 Sep 2012 06:59:37 +0200 Subject: [PATCH 3/3] Revert "Input: Move autorepeat to the event-passing phase" This reverts commit 8fb3be46299f0d5e9f60aa8cd811a1dbfc81d69e. --- drivers/input/input.c | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/drivers/input/input.c b/drivers/input/input.c index 2e96c3f..54f83d7 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -69,22 +69,6 @@ static int input_defuzz_abs_event(int value, int old_val, int fuzz) return value; } -static void input_start_autorepeat(struct input_dev *dev, int code) -{ - if (test_bit(EV_REP, dev->evbit) && - dev->rep[REP_PERIOD] && dev->rep[REP_DELAY] && - dev->timer.data) { - dev->repeat_key = code; - mod_timer(&dev->timer, - jiffies + msecs_to_jiffies(dev->rep[REP_DELAY])); - } -} - -static void input_stop_autorepeat(struct input_dev *dev) -{ - del_timer(&dev->timer); -} - /* * Pass event first through all filters and then, if event has not been * filtered out, through all open handles. This function is called with @@ -121,15 +105,6 @@ static void input_pass_event(struct input_dev *dev, } rcu_read_unlock(); - - /* trigger auto repeat for key events */ - if (type == EV_KEY && value != 2) { - if (value) - input_start_autorepeat(dev, code); - else - input_stop_autorepeat(dev); - } - } /* @@ -167,6 +142,22 @@ static void input_repeat_key(unsigned long data) spin_unlock_irqrestore(&dev->event_lock, flags); } +static void input_start_autorepeat(struct input_dev *dev, int code) +{ + if (test_bit(EV_REP, dev->evbit) && + dev->rep[REP_PERIOD] && dev->rep[REP_DELAY] && + dev->timer.data) { + dev->repeat_key = code; + mod_timer(&dev->timer, + jiffies + msecs_to_jiffies(dev->rep[REP_DELAY])); + } +} + +static void input_stop_autorepeat(struct input_dev *dev) +{ + del_timer(&dev->timer); +} + #define INPUT_IGNORE_EVENT 0 #define INPUT_PASS_TO_HANDLERS 1 #define INPUT_PASS_TO_DEVICE 2 @@ -260,6 +251,11 @@ static void input_handle_event(struct input_dev *dev, __change_bit(code, dev->key); disposition = INPUT_PASS_TO_HANDLERS; + + if (value) + input_start_autorepeat(dev, code); + else + input_stop_autorepeat(dev); } } break; -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: linux-next: Tree for Sept 12 (kernel-panic after pressing any key at X login) 2012-09-13 5:29 ` linux-next: Tree for Sept 12 (kernel-panic after pressing any key at X login) Sedat Dilek @ 2012-09-13 6:04 ` Minchan Kim 2012-09-13 6:36 ` Sedat Dilek 0 siblings, 1 reply; 8+ messages in thread From: Minchan Kim @ 2012-09-13 6:04 UTC (permalink / raw) To: Sedat Dilek Cc: Stephen Rothwell, linux-next, LKML, Dmitry Torokhov, linux-input On Thu, Sep 13, 2012 at 07:29:32AM +0200, Sedat Dilek wrote: > On Thu, Sep 13, 2012 at 5:18 AM, Sedat Dilek <sedat.dilek@gmail.com> wrote: > > On Wed, Sep 12, 2012 at 10:46 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote: > >> Hi all, > >> > >> Changes since 201209011: > >> > >> The pci tree lost its build failure. > >> > >> The mfd tree gained a conflict against Linus' tree. > >> > >> The omap_dss2 tree lost its conflict. > >> > >> The trivial tree gained a conflict against the mfd tree. > >> > >> The kvm tree gained a conflict against Linus' tree. > >> > >> The workqueues tree gained a conflict against the omap_dss2 tree. > >> > >> The usb tree gained conflicts against the usb.current tree. > >> > >> The staging tree gained a conflict against the thermal tree and a build > >> failure for which I applied a merge fix patch. > >> > >> The tegra tree gained conflicts against the usb and arm-perf trees. > >> > >> ---------------------------------------------------------------------------- > >> > > > > Hi, > > > > this weeks linux-next seems to bring new and new issues, yay :-)! > > > > I have taken a photo, but can't say what can have caused. > > The issue is reproducible... > > Immediately, after pressing any key (when X-display-manager (lightdm) > > and X-greeter are up) my machine panics and is no more usable (cold > > rough brutal killer restart). > > Note: Using upstart or systemd does not matter. > > > > Any pointer to an area where to dig into or any feedback in general is welcome! > > > > Kind Regards, > > - Sedat - > > [ CC Dmitry Torokhov (linux-input maintainer) plus linux-input ML ] > > By looking at my screenshot, someone could imagine that there is a > problem coming from the input GIT branch(es) merges: > > input_to_handler() > input_pass_values() > input_handle_event() > input_event() > > Unfortunately, with those 3 revert-patches I see the same kernel-panic. > > Dimitry, any idea what can cause this kernel-panic? Today, I met similar problem in mmotm-2012-09-12-17-36 on my KVM. It's hard to reproduce in my mahcine but I confirmed following as Hoping it helps you. static unsigned int input_to_handler(struct input_handle *handle, struct input_value *vals, unsigned int count) { ... ... if (handler->events) handler->events(handle, vals, count); else for (v = vals; v != end; v++) handler->event(...); <-- handler->event is *ZERO*. return count; } [ 34.667212] BUG: unable to handle kernel NULL pointer dereference at (null) [ 34.668320] IP: [< (null)>] (null) [ 34.669095] PGD 1fe47c067 PUD 1fe47b067 PMD 0 [ 34.669808] Oops: 0010 [#1] SMP [ 34.670316] Modules linked in: i2c_piix4 [ 34.670618] CPU 6 [ 34.670618] Pid: 0, comm: swapper/6 Not tainted 3.6.0-rc5-mm1-alloc-enhance+ #60 Bochs Bochs[ 34.670618] RIP: 0010:[<0000000000000000>] [< (null)>] (null) [ 34.670618] RSP: 0018:ffff88021fd83c20 EFLAGS: 00010082 [ 34.670618] RAX: 0000000000000010 RBX: 0000000000000002 RCX: 000000000000000f [ 34.670618] RDX: 0000000000000004 RSI: 0000000000000004 RDI: ffff8802145b4c00 [ 34.670618] RBP: ffff88021fd83c68 R08: 0000000000000000 R09: 0000000000000000 [ 34.670618] R10: 0000000000000000 R11: 0000000000000001 R12: ffff880215c21070 [ 34.670618] R13: ffff880215c21068 R14: ffffffff81a8bfe0 R15: ffff8802145b4c00 [ 34.670618] FS: 0000000000000000(0000) GS:ffff88021fd80000(0000) knlGS:0000000000000000 [ 34.670618] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [ 34.670618] CR2: 0000000000000000 CR3: 00000001fe46f000 CR4: 00000000000006e0 [ 34.670618] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 34.670618] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [ 34.670618] Process swapper/6 (pid: 0, threadinfo ffff88021611e000, task ffff880216128000) [ 34.670618] Stack: [ 34.670618] ffffffff81480a5d 0000000000000000 ffff880215c21060 0000000000000000 [ 34.670618] ffff880215c21060 0000000000000002 ffff8802161ca800 ffff8802145b4c00 [ 34.670618] ffff8802161cadb0 ffff88021fd83cc8 ffffffff81482caf ffffffff81482b28 [ 34.670618] Call Trace: [ 34.670618] <IRQ> [ 34.670618] [<ffffffff81480a5d>] ? input_to_handler+0xdd/0xf0 [ 34.670618] [<ffffffff81482caf>] input_pass_values+0x1cf/0x1e0 [ 34.670618] [<ffffffff81482b28>] ? input_pass_values+0x48/0x1e0 [ 34.670618] [<ffffffff8148320e>] input_handle_event+0xce/0x540 [ 34.670618] [<ffffffff8148380c>] input_event+0x6c/0x80 [ 34.670618] [<ffffffff8148acf6>] atkbd_interrupt+0x4f6/0x660 [ 34.670618] [<ffffffff812e6b94>] ? do_raw_spin_lock+0x54/0x120 [ 34.670618] [<ffffffff8147dd52>] serio_interrupt+0x52/0xa0 [ 34.670618] [<ffffffff8147ece3>] i8042_interrupt+0x193/0x3b0 [ 34.670618] [<ffffffff810e4de5>] handle_irq_event_percpu+0x75/0x270 [ 34.670618] [<ffffffff812e6cfd>] ? do_raw_spin_unlock+0x5d/0xb0 [ 34.670618] [<ffffffff810e5028>] handle_irq_event+0x48/0x70 [ 34.670618] [<ffffffff810e79d7>] handle_edge_irq+0x77/0x110 [ 34.670618] [<ffffffff81016192>] handle_irq+0x22/0x40 [ 34.670618] [<ffffffff81591c3a>] do_IRQ+0x5a/0xe0 [ 34.670618] [<ffffffff8158786f>] common_interrupt+0x6f/0x6f [ 34.670618] <EOI> [ 34.670618] [<ffffffff810422e6>] ? native_safe_halt+0x6/0x10 [ 34.670618] [<ffffffff810b027d>] ? trace_hardirqs_on+0xd/0x10 [ 34.670618] [<ffffffff8101c5d8>] default_idle+0x58/0x270 [ 34.670618] [<ffffffff8101d669>] cpu_idle+0xe9/0x130 [ 34.670618] [<ffffffff815734fc>] start_secondary+0x200/0x207 [ 34.670618] Code: Bad RIP value. [ 34.670618] RIP [< (null)>] (null) [ 34.670618] RSP <ffff88021fd83c20> [ 34.670618] CR2: 0000000000000000 [ 34.670618] ---[ end trace 11a3b8aa65519925 ]--- [ 34.670618] Kernel panic - not syncing: Fatal exception in interrupt -- Kind regards, Minchan Kim ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: linux-next: Tree for Sept 12 (kernel-panic after pressing any key at X login) 2012-09-13 6:04 ` Minchan Kim @ 2012-09-13 6:36 ` Sedat Dilek 2012-09-13 6:49 ` Dmitry Torokhov 0 siblings, 1 reply; 8+ messages in thread From: Sedat Dilek @ 2012-09-13 6:36 UTC (permalink / raw) To: Minchan Kim Cc: Stephen Rothwell, linux-next, LKML, Dmitry Torokhov, linux-input, Henrik Rydberg, Daniel Kurtz, Benjamin Tissoires, Ping Cheng On Thu, Sep 13, 2012 at 8:04 AM, Minchan Kim <minchan@kernel.org> wrote: > On Thu, Sep 13, 2012 at 07:29:32AM +0200, Sedat Dilek wrote: >> On Thu, Sep 13, 2012 at 5:18 AM, Sedat Dilek <sedat.dilek@gmail.com> wrote: >> > On Wed, Sep 12, 2012 at 10:46 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote: >> >> Hi all, >> >> >> >> Changes since 201209011: >> >> >> >> The pci tree lost its build failure. >> >> >> >> The mfd tree gained a conflict against Linus' tree. >> >> >> >> The omap_dss2 tree lost its conflict. >> >> >> >> The trivial tree gained a conflict against the mfd tree. >> >> >> >> The kvm tree gained a conflict against Linus' tree. >> >> >> >> The workqueues tree gained a conflict against the omap_dss2 tree. >> >> >> >> The usb tree gained conflicts against the usb.current tree. >> >> >> >> The staging tree gained a conflict against the thermal tree and a build >> >> failure for which I applied a merge fix patch. >> >> >> >> The tegra tree gained conflicts against the usb and arm-perf trees. >> >> >> >> ---------------------------------------------------------------------------- >> >> >> > >> > Hi, >> > >> > this weeks linux-next seems to bring new and new issues, yay :-)! >> > >> > I have taken a photo, but can't say what can have caused. >> > The issue is reproducible... >> > Immediately, after pressing any key (when X-display-manager (lightdm) >> > and X-greeter are up) my machine panics and is no more usable (cold >> > rough brutal killer restart). >> > Note: Using upstart or systemd does not matter. >> > >> > Any pointer to an area where to dig into or any feedback in general is welcome! >> > >> > Kind Regards, >> > - Sedat - >> >> [ CC Dmitry Torokhov (linux-input maintainer) plus linux-input ML ] >> >> By looking at my screenshot, someone could imagine that there is a >> problem coming from the input GIT branch(es) merges: >> >> input_to_handler() >> input_pass_values() >> input_handle_event() >> input_event() >> >> Unfortunately, with those 3 revert-patches I see the same kernel-panic. >> >> Dimitry, any idea what can cause this kernel-panic? > > Today, I met similar problem in mmotm-2012-09-12-17-36 on my KVM. > It's hard to reproduce in my mahcine but I confirmed following as > Hoping it helps you. > [ CC more input developers/testers ] Hi Minchan, Hey, cool. Thanks for the pointer in the source-code and the call-trace! I had reverted [1], but anyway input folks should look at this. Kind Regards, - Sedat - [1] http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=commitdiff;h=b276fc1e875a51e4a9dc3322ed008bf4ae481baf > static unsigned int input_to_handler(struct input_handle *handle, > struct input_value *vals, unsigned int count) > { > ... > ... > if (handler->events) > handler->events(handle, vals, count); > else > for (v = vals; v != end; v++) > handler->event(...); <-- handler->event is *ZERO*. > > return count; > } > > > [ 34.667212] BUG: unable to handle kernel NULL pointer dereference at (null) > [ 34.668320] IP: [< (null)>] (null) > [ 34.669095] PGD 1fe47c067 PUD 1fe47b067 PMD 0 > [ 34.669808] Oops: 0010 [#1] SMP > [ 34.670316] Modules linked in: i2c_piix4 > [ 34.670618] CPU 6 > [ 34.670618] Pid: 0, comm: swapper/6 Not tainted 3.6.0-rc5-mm1-alloc-enhance+ #60 Bochs Bochs[ 34.670618] RIP: 0010:[<0000000000000000>] [< (null)>] (null) > [ 34.670618] RSP: 0018:ffff88021fd83c20 EFLAGS: 00010082 > [ 34.670618] RAX: 0000000000000010 RBX: 0000000000000002 RCX: 000000000000000f > [ 34.670618] RDX: 0000000000000004 RSI: 0000000000000004 RDI: ffff8802145b4c00 > [ 34.670618] RBP: ffff88021fd83c68 R08: 0000000000000000 R09: 0000000000000000 > [ 34.670618] R10: 0000000000000000 R11: 0000000000000001 R12: ffff880215c21070 > [ 34.670618] R13: ffff880215c21068 R14: ffffffff81a8bfe0 R15: ffff8802145b4c00 > [ 34.670618] FS: 0000000000000000(0000) GS:ffff88021fd80000(0000) knlGS:0000000000000000 > [ 34.670618] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b > [ 34.670618] CR2: 0000000000000000 CR3: 00000001fe46f000 CR4: 00000000000006e0 > [ 34.670618] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > [ 34.670618] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 > [ 34.670618] Process swapper/6 (pid: 0, threadinfo ffff88021611e000, task ffff880216128000) > [ 34.670618] Stack: > [ 34.670618] ffffffff81480a5d 0000000000000000 ffff880215c21060 0000000000000000 > [ 34.670618] ffff880215c21060 0000000000000002 ffff8802161ca800 ffff8802145b4c00 > [ 34.670618] ffff8802161cadb0 ffff88021fd83cc8 ffffffff81482caf ffffffff81482b28 > [ 34.670618] Call Trace: > [ 34.670618] <IRQ> > [ 34.670618] [<ffffffff81480a5d>] ? input_to_handler+0xdd/0xf0 > [ 34.670618] [<ffffffff81482caf>] input_pass_values+0x1cf/0x1e0 > [ 34.670618] [<ffffffff81482b28>] ? input_pass_values+0x48/0x1e0 > [ 34.670618] [<ffffffff8148320e>] input_handle_event+0xce/0x540 > [ 34.670618] [<ffffffff8148380c>] input_event+0x6c/0x80 > [ 34.670618] [<ffffffff8148acf6>] atkbd_interrupt+0x4f6/0x660 > [ 34.670618] [<ffffffff812e6b94>] ? do_raw_spin_lock+0x54/0x120 > [ 34.670618] [<ffffffff8147dd52>] serio_interrupt+0x52/0xa0 > [ 34.670618] [<ffffffff8147ece3>] i8042_interrupt+0x193/0x3b0 > [ 34.670618] [<ffffffff810e4de5>] handle_irq_event_percpu+0x75/0x270 > [ 34.670618] [<ffffffff812e6cfd>] ? do_raw_spin_unlock+0x5d/0xb0 > [ 34.670618] [<ffffffff810e5028>] handle_irq_event+0x48/0x70 > [ 34.670618] [<ffffffff810e79d7>] handle_edge_irq+0x77/0x110 > [ 34.670618] [<ffffffff81016192>] handle_irq+0x22/0x40 > [ 34.670618] [<ffffffff81591c3a>] do_IRQ+0x5a/0xe0 > [ 34.670618] [<ffffffff8158786f>] common_interrupt+0x6f/0x6f > [ 34.670618] <EOI> > [ 34.670618] [<ffffffff810422e6>] ? native_safe_halt+0x6/0x10 > [ 34.670618] [<ffffffff810b027d>] ? trace_hardirqs_on+0xd/0x10 > [ 34.670618] [<ffffffff8101c5d8>] default_idle+0x58/0x270 > [ 34.670618] [<ffffffff8101d669>] cpu_idle+0xe9/0x130 > [ 34.670618] [<ffffffff815734fc>] start_secondary+0x200/0x207 > [ 34.670618] Code: Bad RIP value. > [ 34.670618] RIP [< (null)>] (null) > [ 34.670618] RSP <ffff88021fd83c20> > [ 34.670618] CR2: 0000000000000000 > [ 34.670618] ---[ end trace 11a3b8aa65519925 ]--- > [ 34.670618] Kernel panic - not syncing: Fatal exception in interrupt > > -- > Kind regards, > Minchan Kim ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: linux-next: Tree for Sept 12 (kernel-panic after pressing any key at X login) 2012-09-13 6:36 ` Sedat Dilek @ 2012-09-13 6:49 ` Dmitry Torokhov 2012-09-13 7:04 ` Henrik Rydberg 0 siblings, 1 reply; 8+ messages in thread From: Dmitry Torokhov @ 2012-09-13 6:49 UTC (permalink / raw) To: Sedat Dilek Cc: Minchan Kim, Stephen Rothwell, linux-next, LKML, linux-input, Henrik Rydberg, Daniel Kurtz, Benjamin Tissoires, Ping Cheng On Thu, Sep 13, 2012 at 08:36:36AM +0200, Sedat Dilek wrote: > On Thu, Sep 13, 2012 at 8:04 AM, Minchan Kim <minchan@kernel.org> wrote: > > On Thu, Sep 13, 2012 at 07:29:32AM +0200, Sedat Dilek wrote: > >> On Thu, Sep 13, 2012 at 5:18 AM, Sedat Dilek <sedat.dilek@gmail.com> wrote: > >> > On Wed, Sep 12, 2012 at 10:46 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote: > >> >> Hi all, > >> >> > >> >> Changes since 201209011: > >> >> > >> >> The pci tree lost its build failure. > >> >> > >> >> The mfd tree gained a conflict against Linus' tree. > >> >> > >> >> The omap_dss2 tree lost its conflict. > >> >> > >> >> The trivial tree gained a conflict against the mfd tree. > >> >> > >> >> The kvm tree gained a conflict against Linus' tree. > >> >> > >> >> The workqueues tree gained a conflict against the omap_dss2 tree. > >> >> > >> >> The usb tree gained conflicts against the usb.current tree. > >> >> > >> >> The staging tree gained a conflict against the thermal tree and a build > >> >> failure for which I applied a merge fix patch. > >> >> > >> >> The tegra tree gained conflicts against the usb and arm-perf trees. > >> >> > >> >> ---------------------------------------------------------------------------- > >> >> > >> > > >> > Hi, > >> > > >> > this weeks linux-next seems to bring new and new issues, yay :-)! > >> > > >> > I have taken a photo, but can't say what can have caused. > >> > The issue is reproducible... > >> > Immediately, after pressing any key (when X-display-manager (lightdm) > >> > and X-greeter are up) my machine panics and is no more usable (cold > >> > rough brutal killer restart). > >> > Note: Using upstart or systemd does not matter. > >> > > >> > Any pointer to an area where to dig into or any feedback in general is welcome! > >> > > >> > Kind Regards, > >> > - Sedat - > >> > >> [ CC Dmitry Torokhov (linux-input maintainer) plus linux-input ML ] > >> > >> By looking at my screenshot, someone could imagine that there is a > >> problem coming from the input GIT branch(es) merges: > >> > >> input_to_handler() > >> input_pass_values() > >> input_handle_event() > >> input_event() > >> > >> Unfortunately, with those 3 revert-patches I see the same kernel-panic. > >> > >> Dimitry, any idea what can cause this kernel-panic? > > > > Today, I met similar problem in mmotm-2012-09-12-17-36 on my KVM. > > It's hard to reproduce in my mahcine but I confirmed following as > > Hoping it helps you. > > > > [ CC more input developers/testers ] > > Hi Minchan, > > Hey, cool. Thanks for the pointer in the source-code and the call-trace! > I had reverted [1], but anyway input folks should look at this. > > Kind Regards, > - Sedat - > > [1] http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=commitdiff;h=b276fc1e875a51e4a9dc3322ed008bf4ae481baf Henrik, It looks like your changes are causing the panic. -- Dmitry ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: linux-next: Tree for Sept 12 (kernel-panic after pressing any key at X login) 2012-09-13 6:49 ` Dmitry Torokhov @ 2012-09-13 7:04 ` Henrik Rydberg 2012-09-13 8:18 ` Sedat Dilek 0 siblings, 1 reply; 8+ messages in thread From: Henrik Rydberg @ 2012-09-13 7:04 UTC (permalink / raw) To: Dmitry Torokhov Cc: Sedat Dilek, Minchan Kim, Stephen Rothwell, linux-next, LKML, linux-input, Daniel Kurtz, Benjamin Tissoires, Ping Cheng > > >> > this weeks linux-next seems to bring new and new issues, yay :-)! > > >> > > > >> > I have taken a photo, but can't say what can have caused. > > >> > The issue is reproducible... > > >> > Immediately, after pressing any key (when X-display-manager (lightdm) > > >> > and X-greeter are up) my machine panics and is no more usable (cold > > >> > rough brutal killer restart). > > >> > Note: Using upstart or systemd does not matter. > > >> > > > >> > Any pointer to an area where to dig into or any feedback in general is welcome! > > >> > > > >> > Kind Regards, > > >> > - Sedat - > > > > Hey, cool. Thanks for the pointer in the source-code and the call-trace! > > I had reverted [1], but anyway input folks should look at this. > > > > Kind Regards, > > - Sedat - > > > > [1] http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=commitdiff;h=b276fc1e875a51e4a9dc3322ed008bf4ae481baf > > Henrik, > > It looks like your changes are causing the panic. Indeed, I have pushed the fix below to next already. Thanks for Sedat, and sorry for not catching this earlier. :-( Henrik -- >From ccc6557bfd02efdca4d9dfda6cfdfe5a08d0193b Mon Sep 17 00:00:00 2001 From: Henrik Rydberg <rydberg@euromail.se> Date: Thu, 13 Sep 2012 08:59:40 +0200 Subject: [PATCH] Input: Fix oops caused by missing null test Found in linux-next on September 12, thanks Sedat. Reported-by: Sedat Dilek <sedat.dilek@gmail.com> Signed-off-by: Henrik Rydberg <rydberg@euromail.se> --- drivers/input/input.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/input/input.c b/drivers/input/input.c index 5b66b2f..2dff71b 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -114,7 +114,7 @@ static unsigned int input_to_handler(struct input_handle *handle, if (handler->events) handler->events(handle, vals, count); - else + else if (handler->event) for (v = vals; v != end; v++) handler->event(handle, v->type, v->code, v->value); -- 1.7.12 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: linux-next: Tree for Sept 12 (kernel-panic after pressing any key at X login) 2012-09-13 7:04 ` Henrik Rydberg @ 2012-09-13 8:18 ` Sedat Dilek 2012-09-13 9:05 ` Sedat Dilek 2012-09-13 12:24 ` Stephen Rothwell 0 siblings, 2 replies; 8+ messages in thread From: Sedat Dilek @ 2012-09-13 8:18 UTC (permalink / raw) To: Stephen Rothwell, Henrik Rydberg Cc: Dmitry Torokhov, Minchan Kim, linux-next, LKML, linux-input, Daniel Kurtz, Benjamin Tissoires, Ping Cheng On Thu, Sep 13, 2012 at 9:04 AM, Henrik Rydberg <rydberg@bitmath.se> wrote: >> > >> > this weeks linux-next seems to bring new and new issues, yay :-)! >> > >> > >> > >> > I have taken a photo, but can't say what can have caused. >> > >> > The issue is reproducible... >> > >> > Immediately, after pressing any key (when X-display-manager (lightdm) >> > >> > and X-greeter are up) my machine panics and is no more usable (cold >> > >> > rough brutal killer restart). >> > >> > Note: Using upstart or systemd does not matter. >> > >> > >> > >> > Any pointer to an area where to dig into or any feedback in general is welcome! >> > >> > >> > >> > Kind Regards, >> > >> > - Sedat - >> > >> > Hey, cool. Thanks for the pointer in the source-code and the call-trace! >> > I had reverted [1], but anyway input folks should look at this. >> > >> > Kind Regards, >> > - Sedat - >> > >> > [1] http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=commitdiff;h=b276fc1e875a51e4a9dc3322ed008bf4ae481baf >> >> Henrik, >> >> It looks like your changes are causing the panic. > > Indeed, I have pushed the fix below to next already. Thanks for Sedat, > and sorry for not catching this earlier. :-( > Hi Hendrik, Wow, so fast :-). Stephen, can you apply this to today's linux-next (next-20120913), please? Regards, - Sedat - > Henrik > > -- > > From ccc6557bfd02efdca4d9dfda6cfdfe5a08d0193b Mon Sep 17 00:00:00 2001 > From: Henrik Rydberg <rydberg@euromail.se> > Date: Thu, 13 Sep 2012 08:59:40 +0200 > Subject: [PATCH] Input: Fix oops caused by missing null test > > Found in linux-next on September 12, thanks Sedat. > > Reported-by: Sedat Dilek <sedat.dilek@gmail.com> > Signed-off-by: Henrik Rydberg <rydberg@euromail.se> > --- > drivers/input/input.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/input/input.c b/drivers/input/input.c > index 5b66b2f..2dff71b 100644 > --- a/drivers/input/input.c > +++ b/drivers/input/input.c > @@ -114,7 +114,7 @@ static unsigned int input_to_handler(struct input_handle *handle, > > if (handler->events) > handler->events(handle, vals, count); > - else > + else if (handler->event) > for (v = vals; v != end; v++) > handler->event(handle, v->type, v->code, v->value); > > -- > 1.7.12 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: linux-next: Tree for Sept 12 (kernel-panic after pressing any key at X login) 2012-09-13 8:18 ` Sedat Dilek @ 2012-09-13 9:05 ` Sedat Dilek 2012-09-13 12:24 ` Stephen Rothwell 1 sibling, 0 replies; 8+ messages in thread From: Sedat Dilek @ 2012-09-13 9:05 UTC (permalink / raw) To: Stephen Rothwell, Henrik Rydberg Cc: Dmitry Torokhov, Minchan Kim, linux-next, LKML, linux-input, Daniel Kurtz, Benjamin Tissoires, Ping Cheng On Thu, Sep 13, 2012 at 10:18 AM, Sedat Dilek <sedat.dilek@gmail.com> wrote: > On Thu, Sep 13, 2012 at 9:04 AM, Henrik Rydberg <rydberg@bitmath.se> wrote: >>> > >> > this weeks linux-next seems to bring new and new issues, yay :-)! >>> > >> > >>> > >> > I have taken a photo, but can't say what can have caused. >>> > >> > The issue is reproducible... >>> > >> > Immediately, after pressing any key (when X-display-manager (lightdm) >>> > >> > and X-greeter are up) my machine panics and is no more usable (cold >>> > >> > rough brutal killer restart). >>> > >> > Note: Using upstart or systemd does not matter. >>> > >> > >>> > >> > Any pointer to an area where to dig into or any feedback in general is welcome! >>> > >> > >>> > >> > Kind Regards, >>> > >> > - Sedat - >>> > >>> > Hey, cool. Thanks for the pointer in the source-code and the call-trace! >>> > I had reverted [1], but anyway input folks should look at this. >>> > >>> > Kind Regards, >>> > - Sedat - >>> > >>> > [1] http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=commitdiff;h=b276fc1e875a51e4a9dc3322ed008bf4ae481baf >>> >>> Henrik, >>> >>> It looks like your changes are causing the panic. >> >> Indeed, I have pushed the fix below to next already. Thanks for Sedat, >> and sorry for not catching this earlier. :-( >> > > Hi Hendrik, > > Wow, so fast :-). > > Stephen, can you apply this to today's linux-next (next-20120913), please? > > Regards, > - Sedat - > >> Henrik >> >> -- >> >> From ccc6557bfd02efdca4d9dfda6cfdfe5a08d0193b Mon Sep 17 00:00:00 2001 >> From: Henrik Rydberg <rydberg@euromail.se> >> Date: Thu, 13 Sep 2012 08:59:40 +0200 >> Subject: [PATCH] Input: Fix oops caused by missing null test >> >> Found in linux-next on September 12, thanks Sedat. >> >> Reported-by: Sedat Dilek <sedat.dilek@gmail.com> Tested-by: Sedat Dilek <sedat.dilek@gmail.com> Unfortunately, the fix will be in tomorrow's Linux-Next (next-20120914). - Sedat - [1] https://github.com/rydberg/linux/commit/ccc6557bfd02efdca4d9dfda6cfdfe5a08d0193b >> Signed-off-by: Henrik Rydberg <rydberg@euromail.se> >> --- >> drivers/input/input.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/input/input.c b/drivers/input/input.c >> index 5b66b2f..2dff71b 100644 >> --- a/drivers/input/input.c >> +++ b/drivers/input/input.c >> @@ -114,7 +114,7 @@ static unsigned int input_to_handler(struct input_handle *handle, >> >> if (handler->events) >> handler->events(handle, vals, count); >> - else >> + else if (handler->event) >> for (v = vals; v != end; v++) >> handler->event(handle, v->type, v->code, v->value); >> >> -- >> 1.7.12 >> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: linux-next: Tree for Sept 12 (kernel-panic after pressing any key at X login) 2012-09-13 8:18 ` Sedat Dilek 2012-09-13 9:05 ` Sedat Dilek @ 2012-09-13 12:24 ` Stephen Rothwell 1 sibling, 0 replies; 8+ messages in thread From: Stephen Rothwell @ 2012-09-13 12:24 UTC (permalink / raw) To: sedat.dilek Cc: Henrik Rydberg, Dmitry Torokhov, Minchan Kim, linux-next, LKML, linux-input, Daniel Kurtz, Benjamin Tissoires, Ping Cheng [-- Attachment #1: Type: text/plain, Size: 288 bytes --] Hi Sedat, On Thu, 13 Sep 2012 10:18:28 +0200 Sedat Dilek <sedat.dilek@gmail.com> wrote: > > Stephen, can you apply this to today's linux-next (next-20120913), please? Sorry, it was just a little too late. -- Cheers, Stephen Rothwell sfr@canb.auug.org.au [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-09-13 12:24 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CA+icZUVEQNPGL7_BbLA-urgP6rFvdOh0SUtYESUv6ZJc+w78Nw@mail.gmail.com>
2012-09-13 5:29 ` linux-next: Tree for Sept 12 (kernel-panic after pressing any key at X login) Sedat Dilek
2012-09-13 6:04 ` Minchan Kim
2012-09-13 6:36 ` Sedat Dilek
2012-09-13 6:49 ` Dmitry Torokhov
2012-09-13 7:04 ` Henrik Rydberg
2012-09-13 8:18 ` Sedat Dilek
2012-09-13 9:05 ` Sedat Dilek
2012-09-13 12:24 ` Stephen Rothwell
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).