kernel_optimize_test/drivers/char
Linus Torvalds 386f40c86d Revert "tty: fix a little bug in scrup, vt.c"
This reverts commit 962400e8fd, which was
entirely bogus.

The code used to multiply the character offset by "vc->vc_cols", and
that's actually correct, because 'd' itself is an 'unsigned short'.  So
the pointer arithmetic already takes the size of a VGA character into
account.  Changing it to use vc_size_row (which is just "vc_cols"
shifted up to take the size of the character into account) ends up
multiplying with the VGA character size twice.

This got reported as bugs for various other subsystems, because what it
actually results in is writing the 16-bit vc_video_erase_char pattern
(usually 0x0720: 0x07 is the default attribute, 0x20 is ASCII space)
into some random other allocation.

So Markus ended up reporting this as a ext4 bug, while to Torsten Kaiser
it looked like a problem with KMS or libata.  Jeff Chua saw it in
different places.

And finally - Justin Mattock had slab poisoning enabled, and saw it as a
slab poison overwritten.  And bisected and reverted this to verify the
buggy commit.

Reported-by: Markus Trippelsdorf <markus@trippelsdorf.de>
Reported-by: Torsten Kaiser <just.for.lkml@googlemail.com>
Reported-by: Jeff Chua <jeff.chua.linux@gmail.com>
Reported-by: Justin P. Mattock <justinmattock@gmail.com>
Reported-bisected-and-tested-by: Justin P. Mattock <justinmattock@gmail.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Cc: Frank Pan <frankpzh@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-06-06 20:44:04 -07:00
..
agp agp/uninorth: Fix oops caused by flushing too much 2010-06-02 17:50:37 +10:00
hw_random Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2010-05-25 12:06:33 -07:00
ip2
ipmi ipmi: handle run_to_completion properly in deliver_recv_msg() 2010-05-27 09:12:50 -07:00
mwave
pcmcia
rio
tpm TPM: ACPI/PNP dependency removal 2010-05-17 09:08:18 +10:00
xilinx_hwicap of: Remove duplicate fields from of_platform_driver 2010-05-22 00:10:40 -06:00
.gitignore
amiserial.c m68k: amiga - Serial port platform device conversion 2010-05-26 19:51:09 +02:00
apm-emulation.c drivers: Push down BKL into various drivers 2010-05-17 05:27:41 +02:00
applicom.c drivers/char/applicom.c: use memdup_user 2010-05-27 09:12:50 -07:00
applicom.h
bfin_jtag_comm.c
bfin-otp.c
briq_panel.c
bsr.c
cd1865.h
consolemap.c
cp437.uni
cs5535_gpio.c
cyclades.c
defkeymap.c_shipped
defkeymap.map
digi1.h
digiFep1.h
digiPCI.h
ds1302.c
ds1620.c drivers: Push down BKL into various drivers 2010-05-17 05:27:41 +02:00
dsp56k.c
dtlk.c drivers: Push down BKL into various drivers 2010-05-17 05:27:41 +02:00
efirtc.c
epca.c
epca.h
epcaconfig.h
generic_nvram.c drivers: Push down BKL into various drivers 2010-05-17 05:27:41 +02:00
generic_serial.c
genrtc.c drivers: Push down BKL into various drivers 2010-05-17 05:27:41 +02:00
hangcheck-timer.c hangcheck-timer: fix x86_32 bugs 2010-05-25 08:07:02 -07:00
hpet.c drivers: Push down BKL into various drivers 2010-05-17 05:27:41 +02:00
hvc_beat.c
hvc_console.c
hvc_console.h
hvc_irq.c
hvc_iseries.c
hvc_iucv.c
hvc_rtas.c
hvc_udbg.c
hvc_vio.c
hvc_xen.c
hvcs.c
hvsi.c hvsi: fix messed up error checking getting state name 2010-05-25 08:07:03 -07:00
i8k.c procfs: Push down the bkl from ioctl 2010-05-17 03:06:12 +02:00
isicom.c serial: isicomm: handle running out of slots 2010-05-21 09:34:30 -07:00
istallion.c
Kconfig ramoops: add HAS_IOMEM dependency 2010-06-04 15:21:44 -07:00
keyboard.c
lp.c
Makefile char drivers: RAM oops/panic logger 2010-05-27 09:12:50 -07:00
mbcs.c
mbcs.h
mem.c
misc.c drivers: misc: pass miscdevice pointer via file private data 2010-05-25 08:07:03 -07:00
mmtimer.c
moxa.c
moxa.h
mspec.c
mxser.c
mxser.h
n_gsm.c TTY/n_gsm: potential double lock 2010-06-04 13:37:17 -07:00
n_hdlc.c
n_r3964.c
n_tty.c
nozomi.c
nsc_gpio.c
nvram.c drivers: Push down BKL into various drivers 2010-05-17 05:27:41 +02:00
nwbutton.c
nwbutton.h
nwflash.c drivers: Push down BKL into various drivers 2010-05-17 05:27:41 +02:00
pc8736x_gpio.c
ppdev.c drivers/char/ppdev.c: use kasprintf 2010-05-27 09:12:50 -07:00
ps3flash.c drop unused dentry argument to ->fsync 2010-05-27 22:05:02 -04:00
pty.c
ramoops.c char drivers: RAM oops/panic logger 2010-05-27 09:12:50 -07:00
random.c random: simplify fips mode 2010-05-20 19:55:01 +10:00
raw.c drivers: Push down BKL into various drivers 2010-05-17 05:27:41 +02:00
riscom8_reg.h
riscom8.c
riscom8.h
rocket_int.h
rocket.c
rocket.h
rtc.c
scc.h
scx200_gpio.c
selection.c
ser_a2232.c
ser_a2232.h
ser_a2232fw.ax
ser_a2232fw.h
serial167.c serial: Tidy REMOTE_DEBUG 2010-05-21 09:34:31 -07:00
snsc_event.c
snsc.c
snsc.h
sonypi.c
specialix_io8.h
specialix.c
stallion.c
sx.c
sx.h
sxboards.h
sxwindow.h
synclink_gt.c
synclink.c
synclinkmp.c
sysrq.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-05-20 10:33:06 -07:00
tb0219.c
tlclk.c
toshiba.c
tty_audit.c
tty_buffer.c tty: fix obsolete comment on tty_insert_flip_string_fixed_flag 2010-05-21 09:34:30 -07:00
tty_io.c
tty_ioctl.c
tty_ldisc.c
tty_port.c
uv_mmtimer.c
vc_screen.c
viotape.c of: Always use 'struct device.of_node' to get device node pointer. 2010-05-18 16:10:44 -06:00
virtio_console.c virtio: console: Fix crash when port is unplugged and blocked for write 2010-06-03 22:39:19 +09:30
vme_scc.c
vt_ioctl.c vt_ioctl: return -EFAULT on copy_from_user errors 2010-06-04 13:37:18 -07:00
vt.c Revert "tty: fix a little bug in scrup, vt.c" 2010-06-06 20:44:04 -07:00