Ingo Molnar [Wed, 20 Aug 2008 03:50:29 +0000 (20:50 -0700)]
irq: sparse irqs, fix IRQ auto-probe crash
fix:
[ 10.631533] calling yenta_socket_init+0x0/0x20
[ 10.631533] Yenta: CardBus bridge found at 0000:15:00.0 [17aa:2012]
[ 10.631533] Yenta: Using INTVAL to route CSC interrupts to PCI
[ 10.631533] Yenta: Routing CardBus interrupts to PCI
[ 10.631533] Yenta TI: socket 0000:15:00.0, mfunc 0x01d01002, devctl 0x64
[ 10.731599] BUG: unable to handle kernel NULL pointer dereference at
00000040
[ 10.731838] IP: [<
c0c95b5f>] _spin_lock_irq+0xf/0x20
[ 10.732221] *pde =
00000000
[ 10.732741] Oops: 0002 [#1] SMP
[ 10.733453]
[ 10.734253] Pid: 1, comm: swapper Tainted: G W (
2.6.27-rc3-tip-00173-gd7eaa4f-dirty #1)
[ 10.735188] EIP: 0060:[<
c0c95b5f>] EFLAGS:
00010002 CPU: 0
[ 10.735523] EIP is at _spin_lock_irq+0xf/0x20
[ 10.735523] EAX:
00000040 EBX:
00000000 ECX:
f6e04c90 EDX:
00000100
[ 10.735523] ESI:
000000df EDI:
f6e04c90 EBP:
f7867df0 ESP:
f7867df0
[ 10.735523] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
[ 10.735523] Process swapper (pid: 1, ti=
f7867000 task=
f7870000 task.ti=
f7867000)
[ 10.735523] Stack:
f7867e04 c0155fbd 00000000 00000000 f6e04c90 f7867e5c c0c6e319 c0f6a074
[ 10.735523]
f6e04c90 000017aa 00002012 c112b648 f791f240 c112b5e0 f7867e44 c010440b
[ 10.735523]
f791f240 f791f29c c112b8ec f791f240 00000000 f7867e5c c048f893 03c0b648
[ 10.735523] Call Trace:
[ 10.735523] [<
c0155fbd>] ? probe_irq_on+0x3d/0x140
[ 10.735523] [<
c0c6e319>] ? yenta_probe+0x529/0x640
[ 10.735523] [<
c010440b>] ? mcount_call+0x5/0xa
[ 10.735523] [<
c048f893>] ? pci_match_device+0xa3/0xb0
[ 10.735523] [<
c048fc1e>] ? pci_device_probe+0x5e/0x80
[ 10.735523] [<
c0515423>] ? driver_probe_device+0x83/0x180
[ 10.735523] [<
c0515594>] ? __driver_attach+0x74/0x80
[ 10.735523] [<
c0514b69>] ? bus_for_each_dev+0x49/0x70
[ 10.735523] [<
c051528e>] ? driver_attach+0x1e/0x20
[ 10.735523] [<
c0515520>] ? __driver_attach+0x0/0x80
[ 10.735523] [<
c05150d3>] ? bus_add_driver+0x1a3/0x220
[ 10.735523] [<
c048fb60>] ? pci_device_remove+0x0/0x40
[ 10.735523] [<
c05157f4>] ? driver_register+0x54/0x130
[ 10.735523] [<
c048fe2f>] ? __pci_register_driver+0x4f/0x90
[ 10.735523] [<
c11e9419>] ? yenta_socket_init+0x19/0x20
[ 10.735523] [<
c0101125>] ? do_one_initcall+0x35/0x160
[ 10.735523] [<
c11e9400>] ? yenta_socket_init+0x0/0x20
[ 10.735523] [<
c01391a6>] ? __queue_work+0x36/0x50
[ 10.735523] [<
c013922d>] ? queue_work_on+0x3d/0x50
[ 10.735523] [<
c11a2758>] ? kernel_init+0x148/0x210
[ 10.735523] [<
c11a2610>] ? kernel_init+0x0/0x210
[ 10.735523] [<
c01043f3>] ? kernel_thread_helper+0x7/0x10
[ 10.735523] =======================
[ 10.735523] Code: 10 38 f2 74 06 f3 90 8a 10 eb f6 5d 89 c8 c3 8d b6 00 00 00 00 8d bc 27 00 00 00 00 55 89 e5 e8 a4 e8 46 ff fa ba 00 01 00 00 90 <66> 0f c1 10 38 f2 74 06 f3 90 8a 10 eb f6 5d c3 90 55 89 e5 53
as auto-probing wants to iterate over existing irqs.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:50:05 +0000 (20:50 -0700)]
generic: sparse irqs: use irq_desc() together with dyn_array, instead of irq_desc[]
add CONFIG_HAVE_SPARSE_IRQ to for use condensed array.
Get rid of irq_desc[] array assumptions.
Preallocate 32 irq_desc, and irq_desc() will try to get more.
( No change in functionality is expected anywhere, except the odd build
failure where we missed a code site or where a crossing commit itroduces
new irq_desc[] usage. )
v2: according to Eric, change get_irq_desc() to irq_desc()
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:50:04 +0000 (20:50 -0700)]
x86: remove nr_irq_vectors
remove unused defines derived from the (now obsolete) NR_IRQS define.
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:50:03 +0000 (20:50 -0700)]
x86, irq: get nr_irqs from madt
Until now, NR_IRQS was derived from black magic defines that had to
be "large enough" to both accomodate NR_CPUS and MAX_NR_IO_APICs.
This resulted in a way too large irq_desc[] array on most x86 systems.
Especially with larger CPU masks, the size of irq_desc can spiral out
of control quickly.
So be smarter about it and use precise allocation instead: determine the
default maximum possible IRQ number from the ACPI MADT. Use a minimum limit
of at least 32 IRQs for broken BIOSes.
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Ingo Molnar [Wed, 20 Aug 2008 03:50:31 +0000 (20:50 -0700)]
irq: sparse irqs, fix #3
fix non-APIC UP build:
arch/x86/kernel/built-in.o: In function `setup_arch':
: undefined reference to `pin_map_size'
arch/x86/kernel/built-in.o: In function `setup_arch':
: undefined reference to `first_free_entry'
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:50:02 +0000 (20:50 -0700)]
x86: use dyn_array in io_apic_xx.c
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:50:01 +0000 (20:50 -0700)]
irq: make irqs in kernel stat use per_cpu_dyn_array
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Ingo Molnar [Wed, 20 Aug 2008 03:50:30 +0000 (20:50 -0700)]
irq: sparse irqs, export nr_irqs
fix:
Building modules, stage 2.
MODPOST 458 modules
ERROR: "nr_irqs" [drivers/serial/8250.ko] undefined!
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:50:00 +0000 (20:50 -0700)]
irq: make irq_desc to use dyn_array
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:59 +0000 (20:49 -0700)]
irq: make irq2_iommu to use dyn_array
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:58 +0000 (20:49 -0700)]
irqs: make irq_timer_state to use dyn_array
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:57 +0000 (20:49 -0700)]
drivers/xen: use nr_irqs
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:56 +0000 (20:49 -0700)]
fs/proc: use nr_irqs
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:55 +0000 (20:49 -0700)]
drivers/serial: use nr_irqs
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:54 +0000 (20:49 -0700)]
drivers/scsi: use nr_irqs
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:53 +0000 (20:49 -0700)]
drivers/rtc: use nr_irqs
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:52 +0000 (20:49 -0700)]
drivers/pcmcia: use nr_irqs
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:51 +0000 (20:49 -0700)]
drivers/pci/ intr remapping: use nr_irqs
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:50 +0000 (20:49 -0700)]
drivers/net: use nr_irqs
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:49 +0000 (20:49 -0700)]
drivers/char: use nr_irqs
convert them to nr_irqs.
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:48 +0000 (20:49 -0700)]
x86: use nr_irqs
also add first_free_entry and pin_map_size, which were NR_IRQS derived
constants.
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:47 +0000 (20:49 -0700)]
irq: introduce nr_irqs
at this point nr_irqs is equal NR_IRQS
convert a few easy users from NR_IRQS to dynamic nr_irqs.
v2: according to Eric, we need to take care of arch without generic_hardirqs
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:46 +0000 (20:49 -0700)]
x86: enable dyn_array support
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:45 +0000 (20:49 -0700)]
x86: alloc dyn_array all together
so could spare some memory with small alignment in bootmem
also tighten the alignment checking, and make print out less debug info.
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:44 +0000 (20:49 -0700)]
add per_cpu_dyn_array support
allow dyn-array in per_cpu area, allocated dynamically.
usage:
| /* in .h */
| struct kernel_stat {
| struct cpu_usage_stat cpustat;
| unsigned int *irqs;
| };
|
| /* in .c */
| DEFINE_PER_CPU(struct kernel_stat, kstat);
|
| DEFINE_PER_CPU_DYN_ARRAY_ADDR(per_cpu__kstat_irqs, per_cpu__kstat.irqs, sizeof(unsigned int), nr_irqs, sizeof(unsigned long), NULL);
after setup_percpu()/per_cpu_alloc_dyn_array(), the dyn_array in
per_cpu area is ready to use.
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:43 +0000 (20:49 -0700)]
generic: add dyn_array support
Allow crazy big arrays via bootmem at init stage.
Architectures use CONFIG_HAVE_DYN_ARRAY to enable it.
usage:
| static struct irq_desc irq_desc_init __initdata = {
| .status = IRQ_DISABLED,
| .chip = &no_irq_chip,
| .handle_irq = handle_bad_irq,
| .depth = 1,
| .lock = __SPIN_LOCK_UNLOCKED(irq_desc->lock),
| #ifdef CONFIG_SMP
| .affinity = CPU_MASK_ALL
| #endif
| };
|
| static void __init init_work(void *data)
| {
| struct dyn_array *da = data;
| struct irq_desc *desc;
| int i;
|
| desc = *da->name;
|
| for (i = 0; i < *da->nr; i++)
| memcpy(&desc[i], &irq_desc_init, sizeof(struct irq_desc));
| }
|
| struct irq_desc *irq_desc;
| DEFINE_DYN_ARRAY(irq_desc, sizeof(struct irq_desc), nr_irqs, PAGE_SIZE, init_work);
after pre_alloc_dyn_array() after setup_arch(), the array is ready to be
used.
Via this facility we can replace irq_desc[NR_IRQS] array with dyn_array
irq_desc[nr_irqs].
v2: remove _nopanic in pre_alloc_dyn_array()
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:42 +0000 (20:49 -0700)]
x86: remove irq_vectors_limits
there's no user left.
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Yinghai Lu [Wed, 20 Aug 2008 03:49:41 +0000 (20:49 -0700)]
x86: add after_bootmem flag for 32bit
to prepare to use dyn_array support etc.
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Alan Cox [Wed, 20 Aug 2008 03:49:40 +0000 (20:49 -0700)]
serial, 8250: remove NR_IRQ usage
Works on my test box with a quick test.
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Ingo Molnar [Thu, 16 Oct 2008 14:51:32 +0000 (16:51 +0200)]
Merge branch 'linus' into genirq
Linus Torvalds [Tue, 14 Oct 2008 23:53:02 +0000 (16:53 -0700)]
Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6
* 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6:
i2c-viapro: Add support for SMBus Process Call transactions
i2c: Restore i2c_smbus_process_call function
i2c: Do earlier driver model init
i2c: Only build Tyan SMBus mux drivers on x86
i2c: Guard against oopses from bad init sequences
i2c: Document the implementation details of the /dev interface
i2c: Improve dev-interface documentation
i2c-parport-light: Don't register a platform device resource
hwmon: (dme1737) Convert to a new-style i2c driver
hwmon: (dme1737) Be less i2c-centric
i2c/tps65010: Vibrator hookup to gpiolib
i2c-viapro: Add VX800/VX820 support
i2c: Renesas Highlander FPGA SMBus support
i2c-pca-isa: Don't grab arbitrary resources
i2c/isp1301_omap: Convert to a new-style i2c driver, part 2
i2c/isp1301_omap: Convert to a new-style i2c driver, part 1
Linus Torvalds [Tue, 14 Oct 2008 23:35:43 +0000 (16:35 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/jikos/hid
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (55 commits)
HID: build drivers for all quirky devices by default
HID: add missing blacklist entry for Apple ATV ircontrol
HID: add support for Bright ABNT2 brazilian device
HID: Don't let Avermedia Radio FM800 be handled by usb hid drivers
HID: fix numlock led on Dell device 0x413c/0x2105
HID: remove warn() macro from usb hid drivers
HID: remove info() macro from usb HID drivers
HID: add appletv IR receiver quirk
HID: fix a lockup regression when using force feedback on a PID device
HID: hiddev.h: Fix example code.
HID: hiddev.h: Fix mixed space and tabs in example code.
HID: convert to dev_* prints
HID: remove hid-ff
HID: move zeroplus FF processing
HID: move thrustmaster FF processing
HID: move pantherlord FF processing
HID: fix incorrent length condition in hidraw_write()
HID: fix tty<->hid deadlock
HID: ignore iBuddy devices
HID: report descriptor fix for remaining MacBook JIS keyboards
...
Linus Torvalds [Tue, 14 Oct 2008 23:34:11 +0000 (16:34 -0700)]
Merge branch 'upstream-linus' of git://git./linux/kernel/git/mfasheh/ocfs2
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (56 commits)
ocfs2: Make cached block reads the common case.
ocfs2: Kill the last naked wait_on_buffer() for cached reads.
ocfs2: Move ocfs2_bread() into dir.c
ocfs2: Simplify ocfs2_read_block()
ocfs2: Require an inode for ocfs2_read_block(s)().
ocfs2: Separate out sync reads from ocfs2_read_blocks()
ocfs2: Refactor xattr list and remove ocfs2_xattr_handler().
ocfs2: Calculate EA hash only by its suffix.
ocfs2: Move trusted and user attribute support into xattr.c
ocfs2: Uninline ocfs2_xattr_name_hash()
ocfs2: Don't check for NULL before brelse()
ocfs2: use smaller counters in ocfs2_remove_xattr_clusters_from_cache
ocfs2: Documentation update for user_xattr / nouser_xattr mount options
ocfs2: make la_debug_mutex static
ocfs2: Remove pointless !!
ocfs2: Add empty bucket support in xattr.
ocfs2/xattr.c: Fix a bug when inserting xattr.
ocfs2: Add xattr mount option in ocfs2_show_options()
ocfs2: Switch over to JBD2.
ocfs2: Add the 'inode64' mount option.
...
Bjorn Helgaas [Tue, 14 Oct 2008 23:01:59 +0000 (17:01 -0600)]
rtc-cmos: look for PNP RTC first, then for platform RTC
We shouldn't rely on "pnp_platform_devices" to tell us whether there
is a PNP RTC device.
I introduced "pnp_platform_devices", but I think it was a mistake.
All it tells us is whether we found any PNPBIOS or PNPACPI devices.
Many machines have some PNP devices, but do not describe the RTC
via PNP. On those machines, we need to do the platform driver probe
to find the RTC.
We should just register the PNP driver and see whether it claims anything.
If we don't find a PNP RTC, fall back to the platform driver probe.
This (in conjunction with the arch/x86/kernel/rtc.c patch to add
a platform RTC device when PNP doesn't have one) should resolve
these issues:
http://bugzilla.kernel.org/show_bug.cgi?id=11580
https://bugzilla.redhat.com/show_bug.cgi?id=451188
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Reported-by: Rik Theys <rik.theys@esat.kuleuven.be>
Reported-by: shr_msn@yahoo.com.tw
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Bjorn Helgaas [Tue, 14 Oct 2008 23:01:03 +0000 (17:01 -0600)]
x86: register a platform RTC device if PNP doesn't describe it
Most if not all x86 platforms have an RTC device, but sometimes the RTC
is not exposed as a PNP0b00/PNP0b01/PNP0b02 device in PNPBIOS or ACPI:
http://bugzilla.kernel.org/show_bug.cgi?id=11580
https://bugzilla.redhat.com/show_bug.cgi?id=451188
It's best if we can discover the RTC via PNP because then we know
which flavor of device it is, where it lives, and which IRQ it uses.
But if we can't, we should register a platform device using the
compiled-in RTC_PORT/RTC_IRQ resource assumptions.
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Reported-by: Rik Theys <rik.theys@esat.kuleuven.be>
Reported-by: shr_msn@yahoo.com.tw
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Bjorn Helgaas [Tue, 14 Oct 2008 19:50:21 +0000 (13:50 -0600)]
rtc-cmos: move wake setup from ACPI glue into RTC driver
Move rtc_wake_setup() from drivers/acpi/glue.c into the RTC driver
in drivers/rtc/rtc-cmos.c.
This removes the ordering constraint between the module_init(acpi_rtc_init)
and the cmos_do_probe() code that depends on it.
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Jiri Kosina [Tue, 14 Oct 2008 21:37:33 +0000 (23:37 +0200)]
HID: build drivers for all quirky devices by default
Once kernel configuration has CONFIG_HID turned on, let also all the
specialized drivers for quirky devices to be built (unless CONFIG_EMBEDDED is
specified), as usually users don't care that much which driver
gives them the functionality, but when they want generic support, they
probably want to have support for all the quirky devices as well.
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Kosina [Tue, 14 Oct 2008 20:45:40 +0000 (22:45 +0200)]
HID: add missing blacklist entry for Apple ATV ircontrol
This device is already handled by hid-apple driver, but the blacklist entry
was missing in generic driver.
Reported-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Mauro Carvalho Chehab [Tue, 14 Oct 2008 20:41:43 +0000 (22:41 +0200)]
HID: add support for Bright ABNT2 brazilian device
This keyboard needs to reset the LEDS during probe.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Mauro Carvalho Chehab [Tue, 14 Oct 2008 20:34:32 +0000 (22:34 +0200)]
HID: Don't let Avermedia Radio FM800 be handled by usb hid drivers
Based on an original patch from Alexey Klimov <klimov.linux@gmail.com>,
against kernel version 2.6.27.
This device is already handled by radio-mr800 driver, and we therefore
want usbhid not to touch it.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Mauro Carvalho Chehab [Tue, 14 Oct 2008 13:08:47 +0000 (11:08 -0200)]
HID: fix numlock led on Dell device 0x413c/0x2105
This keyboard needs to re-sync numlock after probing.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
From: Greg Kroah-Hartman [Sat, 11 Oct 2008 22:25:51 +0000 (00:25 +0200)]
HID: remove warn() macro from usb hid drivers
USB should not be having it's own printk macros, so remove warn() and
use the system-wide standard of dev_warn() wherever possible. In the
few places that will not work out, use a basic printk().
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Greg Kroah-Hartman [Sat, 11 Oct 2008 22:14:23 +0000 (00:14 +0200)]
HID: remove info() macro from usb HID drivers
USB should not be having it's own printk macros, so remove info() and
use the system-wide standard of dev_info() wherever possible.
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Peter Korsgaard [Mon, 6 Oct 2008 09:15:34 +0000 (11:15 +0200)]
HID: add appletv IR receiver quirk
Similar to the existing IRCONTROL4 handling
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Anssi Hannula [Sat, 4 Oct 2008 12:44:06 +0000 (14:44 +0200)]
HID: fix a lockup regression when using force feedback on a PID device
Commit
8006479c9b75fb6594a7b746af3d7f1fbb68f18f introduced a spinlock in
input_dev->event_lock, which is locked when handling input events.
However, the hid-pidff driver sleeps when handling events as it waits for
reports being sent to the device before changing the report contents
again.
This causes a system lockup when trying to use force feedback with a PID
device, a regression introduced in 2.6.24 and 2.6.23.15.
Fix it by extracting the raw report data from struct hid_report
immediately when hid_submit_report() is called, therefore allowing
drivers to change the contents of struct hid_report immediately without
affecting the already-queued transfer.
In hid-pidff, re-add the removed usbhid_wait_io() to
pidff_erase_effect() instead, to prevent a full report queue from causing
the submission to fail, thus not freeing up device memory.
pidff_erase_effect() is not called while dev->event_lock is held.
Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Antonio Ospite [Thu, 2 Oct 2008 20:15:02 +0000 (22:15 +0200)]
HID: hiddev.h: Fix example code.
Fix hiddev.h example code.
To get the correct usage code, you need to set report_type and
report_id.
Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Antonio Ospite [Thu, 2 Oct 2008 20:14:54 +0000 (22:14 +0200)]
HID: hiddev.h: Fix mixed space and tabs in example code.
Fix mixed space and tabs in example code.
Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Thu, 18 Sep 2008 10:23:34 +0000 (12:23 +0200)]
HID: convert to dev_* prints
Since we have a real device bound to a driver, we may use struct
device for printing. Use dev_* functions instead of printks in
4 drivers.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Thu, 18 Sep 2008 10:23:33 +0000 (12:23 +0200)]
HID: remove hid-ff
hid-ff.c now calls only pidff (generic driver), the special ones are now
in separate drivers. Invoke pidff on all non-special directly.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Thu, 18 Sep 2008 10:23:32 +0000 (12:23 +0200)]
HID: move zeroplus FF processing
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Thu, 18 Sep 2008 10:23:31 +0000 (12:23 +0200)]
HID: move thrustmaster FF processing
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Thu, 18 Sep 2008 17:43:32 +0000 (19:43 +0200)]
HID: move pantherlord FF processing
Move the force feedback processing into a separate module.
[jkosina@suse.cz: fix Kconfig texts a little bit]
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Kosina [Wed, 17 Sep 2008 17:41:58 +0000 (19:41 +0200)]
HID: fix incorrent length condition in hidraw_write()
The bound check on the buffer length
if (count > HID_MIN_BUFFER_SIZE)
is of course incorrent, the proper check is
if (count > HID_MAX_BUFFER_SIZE)
Fix it.
Reported-by: Jerry Ryle <jerry@mindtribe.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Mon, 8 Sep 2008 23:23:03 +0000 (01:23 +0200)]
HID: fix tty<->hid deadlock
hid_compat_load() runs on the default workqueue, it request_module(), it
execs modprobe, it exits, tty flushes default workqueue, it hangs, because
we are still in it.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Tested-by: <Valdis.Kletnieks@vt.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Remi Cattiau [Mon, 8 Sep 2008 23:39:33 +0000 (01:39 +0200)]
HID: ignore iBuddy devices
iBuddy devices claim to be HID devices, but they are not.
Add them to the blacklist.
Signed-off-by: Remi Cattiau <remi@cattiau.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Tomoya Adachi [Thu, 4 Sep 2008 09:29:27 +0000 (11:29 +0200)]
HID: report descriptor fix for remaining MacBook JIS keyboards
This patch fixes a problem that MacBook JIS keyboard sends wrong report
descriptors. Although it has already been fixed in the first Core 2 Duo model,
it still remains in other models of MacBook.
Signed-off-by: Tomoya Adachi <adachi@il.is.s.u-tokyo.ac.jp>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Randy Dunlap [Thu, 4 Sep 2008 08:55:00 +0000 (10:55 +0200)]
HID: fix gyration build error
Fix config symbol name in ifdef to fix build error:
ERROR: "hid_compat_gyration" [drivers/hid/hid-dummy.ko] undefined!
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Acked-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Sergey Belyashov [Tue, 2 Sep 2008 15:31:16 +0000 (17:31 +0200)]
HID: Autocentering support for Logitech MOMO Racing Wheel
Current kernel has no support for autocentering for Logitech wheels. By
default autocentering enabled in wheel and constant effect does not work
properly. Using USB sniffer I found command which change autocentering
settings: 0xFE, 0x0D, 0x0R, 0x0L, 0x80, 0x00, 0x00, where R - clockwise force,
L - counter-clockwise (0x0-0xF, 0xC = 100%).
Signed-off-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Alex Chiang [Wed, 27 Aug 2008 11:36:18 +0000 (13:36 +0200)]
HID: fix grammo in HID_COMPAT Kconfig help text
The Kconfig option for HID_COMPAT should read "lose", not "loose".
Signed-off-by: Alex Chiang <achiang@hp.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Kosina [Wed, 27 Aug 2008 09:21:42 +0000 (11:21 +0200)]
HID: add support for Super Dual Box Pro USB PS2/PS2 adapter
This seems to be the very same device, as already supported Smartjoy
dual Plus, but with slightly different vendor ID. Let's support this
one too.
Reported-by: David Ashley <dashxdr@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Richard Hughes [Wed, 27 Aug 2008 09:19:37 +0000 (11:19 +0200)]
HID: remove ignore quirk for MGE UPS devices
This patch reverts the change made four years ago here:
http://www.vg.kernel.org/pub/linux/kernel/people/gregkh/usb/2.4/usb-hid-2.4.25-pre7.patch
UPS's made by MGE can be used with usbhid just fine, and by removing the
ignore quirk allows them to be used with HAL so they just work when plugged
in, without needing to be manually configured.
With the ignore quirk in place a user would have to configure NUT before the
UPS could be used, as NUT uses it's own internal USB matching framework
to match against the USB devices, do low level control messages on the
device and then parse the HID tables all in userspace.
This is not needed, as allowing the device to be claimed as a usbhid device
allows it to be used like any other USB UPS device. The devices correctly
advertise the power device page which can be queried for the device state.
I assume the quirk was changed so that people using < libusb 0.1.8 could
still use NUT's internal HID code to manage the UPS.
libusb 0.1.8 was released quite some time ago: 2004-02-11.
This patch does not break NUT as in drivers/libusb.c the device is force
unbound from the kernel driver using usb_detach_kernel_driver_np () where
it can be controlled like normal.
[jkosina@suse.cz: adapt to the new hidbus code]
Signed-off-by: Richard Hughes <rhughes@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Kosina [Wed, 20 Aug 2008 17:13:52 +0000 (19:13 +0200)]
HID: introduce list for hiddev creation forcing
Introduce a list of devices for which there is need to
force a creation of the hiddev interface, but still they
are operated by generic driver (i.e. certain UPS).
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Fri, 4 Jul 2008 21:06:45 +0000 (23:06 +0200)]
HID: move logitech FF processing
Merge the logitech force feedback processing directly into logitech
driver from the usbhid core.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Fri, 27 Jun 2008 18:41:02 +0000 (20:41 +0200)]
HID: move reset leds quirk
Move the handling of the leds resetting from the core to
the dell and logitech drivers.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Thu, 26 Jun 2008 22:04:24 +0000 (00:04 +0200)]
HID: move connect quirks
Move connecting from usbhid to the hid layer and fix also hidp in
that manner.
This removes all the ignore/force hidinput/hiddev connecting quirks.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Thu, 26 Jun 2008 20:25:33 +0000 (22:25 +0200)]
HID: move dell quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Wed, 25 Jun 2008 21:47:04 +0000 (23:47 +0200)]
HID: move sony quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Wed, 25 Jun 2008 21:03:55 +0000 (23:03 +0200)]
HID: remove rdesc quirk support
Remove support for both dynamic and static report descriptor
quirks. There is no longer rdesc code which it would support,
so it's useless.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Thu, 31 Jul 2008 09:09:37 +0000 (11:09 +0200)]
HID: remove hid-input-quirks
Remove the file since these is no user now.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Wed, 25 Jun 2008 20:31:48 +0000 (22:31 +0200)]
HID: move samsung quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Thu, 24 Jul 2008 21:35:13 +0000 (23:35 +0200)]
HID: move gyration quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Tue, 24 Jun 2008 22:07:50 +0000 (00:07 +0200)]
HID: move monterey quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Tue, 24 Jun 2008 21:46:21 +0000 (23:46 +0200)]
HID: move petalynx quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Tue, 24 Jun 2008 21:24:57 +0000 (23:24 +0200)]
HID: move belkin quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Tue, 24 Jun 2008 20:48:52 +0000 (22:48 +0200)]
HID: move chicony quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Tue, 24 Jun 2008 19:11:21 +0000 (21:11 +0200)]
HID: move ezkey quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Tue, 24 Jun 2008 18:42:25 +0000 (20:42 +0200)]
HID: move cherry quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Mon, 23 Jun 2008 21:31:09 +0000 (23:31 +0200)]
HID: move a4tech quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Mon, 23 Jun 2008 20:54:08 +0000 (22:54 +0200)]
HID: move cypress quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Mon, 23 Jun 2008 19:56:07 +0000 (21:56 +0200)]
HID: move sunplus quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Fri, 20 Jun 2008 19:26:11 +0000 (21:26 +0200)]
HID: move microsoft quirks
Move them from the core code to a separate driver.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Wed, 18 Jun 2008 21:55:41 +0000 (23:55 +0200)]
HID: indent switches/cases
Bring switch and cases into coding style and save thus some
indentation to make the code tighter.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Fri, 16 May 2008 09:49:22 +0000 (11:49 +0200)]
HID: add compat support
Add compat option to hid code to allow loading of all modules on
systems which don't allow autoloading because of old userspace.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Wed, 18 Jun 2008 21:36:49 +0000 (23:36 +0200)]
HID: move apple quirks
Move them from the core code to a separate driver.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Fri, 16 May 2008 09:49:20 +0000 (11:49 +0200)]
HID: move ignore quirks
Move ignore quirks from usbhid-quirks into hid-core code. Also don't output
warning when ENODEV is error code in usbhid and try ordinal input in hidp
when that error is returned.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Fri, 16 May 2008 09:49:19 +0000 (11:49 +0200)]
HID: move logitech quirks
Move them from the core and input code to a separate driver.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Fri, 16 May 2008 09:49:18 +0000 (11:49 +0200)]
HID: move usage input mapping to hid.h
This mapping are currently used on 2 placces and will be needed by more
quirk drivers, so move them to hid.h to allow them to use it.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Wed, 4 Jun 2008 09:02:56 +0000 (11:02 +0200)]
HID: move ids into separate file
Move ids from hid-quirks.c into separate file, since it will be needed in
more than one place.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Fri, 16 May 2008 09:49:16 +0000 (11:49 +0200)]
HID: hid, make parsing event driven
Next step for complete hid bus, this patch includes:
- call parser either from probe or from hid-core if there is no probe.
- add ll_driver structure and centralize some stuff there (open, close...)
- split and merge usb_hid_configure and hid_probe into several functions
to allow hooks/fixes between them
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Fri, 16 May 2008 09:49:15 +0000 (11:49 +0200)]
HID: make a bus from hid code
Make a bus from hid core. This is the first step for converting all the
quirks and separate almost-drivers into real drivers attached to this bus.
It's implemented to change behaviour in very tiny manner, so that no driver
needs to be changed this time.
Also add generic drivers for both usb and bt into usbhid or hidp
respectively which will bind all non-blacklisted device. Those blacklisted
will be either grabbed by special drivers or by nobody if they are broken at
the very rude base.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Slaby [Mon, 19 May 2008 13:50:01 +0000 (15:50 +0200)]
modpost: add support for hid
Generate aliases for hid device modules to support autoloading.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Linus Torvalds [Tue, 14 Oct 2008 19:31:14 +0000 (12:31 -0700)]
Merge branch 'for-2.6.28' of git://linux-nfs.org/~bfields/linux
* 'for-2.6.28' of git://linux-nfs.org/~bfields/linux: (59 commits)
svcrdma: Fix IRD/ORD polarity
svcrdma: Update svc_rdma_send_error to use DMA LKEY
svcrdma: Modify the RPC reply path to use FRMR when available
svcrdma: Modify the RPC recv path to use FRMR when available
svcrdma: Add support to svc_rdma_send to handle chained WR
svcrdma: Modify post recv path to use local dma key
svcrdma: Add a service to register a Fast Reg MR with the device
svcrdma: Query device for Fast Reg support during connection setup
svcrdma: Add FRMR get/put services
NLM: Remove unused argument from svc_addsock() function
NLM: Remove "proto" argument from lockd_up()
NLM: Always start both UDP and TCP listeners
lockd: Remove unused fields in the nlm_reboot structure
lockd: Add helper to sanity check incoming NOTIFY requests
lockd: change nlmclnt_grant() to take a "struct sockaddr *"
lockd: Adjust nlmsvc_lookup_host() to accomodate AF_INET6 addresses
lockd: Adjust nlmclnt_lookup_host() signature to accomodate non-AF_INET
lockd: Support non-AF_INET addresses in nlm_lookup_host()
NLM: Convert nlm_lookup_host() to use a single argument
svcrdma: Add Fast Reg MR Data Types
...
Linus Torvalds [Tue, 14 Oct 2008 19:28:55 +0000 (12:28 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/lrg/voltage-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6: (26 commits)
mfd: Fix warning in WM8350
mfd: Add placeholders for WM8350 client devices
da903x: add regulator support for DA9030/DA9034
mfd: Add WM8350 subdevice registration helper
regulator: Add WM8350 regulator support
mfd: Add WM8350 interrupt support
mfd: Add initialisation callback for WM8350
mfd: Add GPIO pin configuration support for WM8350
mfd: Add I2C control support for WM8350
mfd: Core support for the WM8350 AudioPlus PMIC
mfd: Add WM8350 watchdog register definitions
mfd: Add WM8350 RTC register definitions
mfd: Add WM8350 comparator register definitions
mfd: Add WM8350 PMU register definitions
mfd: Add WM8350 PMIC register definitions
mfd: Add WM8350 GPIO register definitions
mfd: Add WM8350 audio register definitions
regulator: Export regulator name via sysfs
regulator: Add WM8400 regulator support
mfd: Core support for the WM8400 AudioPlus HiFi CODEC and PMU
...
Linus Torvalds [Tue, 14 Oct 2008 19:28:02 +0000 (12:28 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/arjan/linux-2.6-fastboot
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-fastboot:
raid, fastboot: hide RAID autodetect option if MD is compiled as a module
raid: make RAID autodetect default a KConfig option
warning: fix init do_mounts_md c
fastboot: make the RAID autostart code print a message just before waiting
fastboot: make the raid autodetect code wait for all devices to init
fastboot: Fix bootgraph.pl initcall name regexp
fastboot: fix issues and improve output of bootgraph.pl
Add a script to visualize the kernel boot process / time
Linus Torvalds [Tue, 14 Oct 2008 19:12:02 +0000 (12:12 -0700)]
Revert "vt: fix background color on line feed"
This reverts commit
c9e587abfdec2c2aaa55fab83bcb4972e2f84f9b, and the
subsequent commits that fixed it up:
-
afa9b649 "fbcon: prevent cursor disappearance after switching to 512
character font"
-
d850a2fa "vt/fbcon: fix background color on line feed"
-
7fe3915a "vt/fbcon: update scrl_erase_char after 256/512-glyph font
switch"
by request of Alan Cox. Quoth Alan:
"Unfortunately it's wrong and its been causing breakages because
various apps like ncurses expect our previous (and correct)
behaviour."
Alexander sent out a similar patch.
Requested-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Tested-by: Jan Engelhardt <jengelh@medozas.de>
Cc: Alexander V. Lukyanov <lav@netis.ru>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Joel Becker [Fri, 10 Oct 2008 00:20:34 +0000 (17:20 -0700)]
ocfs2: Make cached block reads the common case.
ocfs2_read_blocks() currently requires the CACHED flag for cached I/O.
However, that's the common case. Let's flip it around and provide an
IGNORE_CACHE flag for the special users. This has the added benefit of
cleaning up the code some (ignore_cache takes on its special meaning
earlier in the loop).
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Joel Becker [Fri, 10 Oct 2008 00:20:33 +0000 (17:20 -0700)]
ocfs2: Kill the last naked wait_on_buffer() for cached reads.
ocfs2's cached buffer I/O goes through ocfs2_read_block(s)(). dir.c had
a naked wait_on_buffer() to wait for some readahead, but it should
use ocfs2_read_block() instead.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Joel Becker [Fri, 10 Oct 2008 00:20:32 +0000 (17:20 -0700)]
ocfs2: Move ocfs2_bread() into dir.c
dir.c is the only place using ocfs2_bread(), so let's make it static to
that file.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Joel Becker [Fri, 10 Oct 2008 00:20:31 +0000 (17:20 -0700)]
ocfs2: Simplify ocfs2_read_block()
More than 30 callers of ocfs2_read_block() pass exactly OCFS2_BH_CACHED.
Only six pass a different flag set. Rather than have every caller care,
let's make ocfs2_read_block() take no flags and always do a cached read.
The remaining six places can call ocfs2_read_blocks() directly.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Joel Becker [Fri, 10 Oct 2008 00:20:30 +0000 (17:20 -0700)]
ocfs2: Require an inode for ocfs2_read_block(s)().
Now that synchronous readers are using ocfs2_read_blocks_sync(), all
callers of ocfs2_read_blocks() are passing an inode. Use it
unconditionally. Since it's there, we don't need to pass the
ocfs2_super either.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>