08 Dec, 2006
40 commits
-
In time for 2.6.20, we can get rid of this junk.
Signed-off-by: Adrian Bunk
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
If you do something like:
# touch foo
# tail -f foo &
# rm foo
#
#you'll panic, because ext3/4 tries to do orphan list processing on the
readonly snapshot device, and:kernel: journal commit I/O error
kernel: Assertion failure in journal_flush_Rsmp_e2f189ce() at journal.c:1356: "!journal->j_checkpoint_transactions"
kernel: Kernel panic: Fatal exceptionfor a truly readonly underlying device, it's reasonable and necessary
to just skip orphan list processing.Signed-off-by: Eric Sandeen
Cc:
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Add 3 more files to get "unifdef"ed when creating sanitized headers with
"make headers_install".Signed-off-by: Robert P. J. Day
Acked-by: David Woodhouse
Acked-by: "John W. Linville"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Signed-off-by: Mariusz Kozlowski
Cc: Evgeniy Dushistov
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Rename a poorly worded PCI ID for the Geode GX and CS5535 companion chips.
The graphics processor and host bridge actually live in the northbridge on
the integrated processor, not in the companion chip.Signed-off-by: Jordan Crouse
Acked-by: Alan Cox
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Every file should #include the headers containing the prototypes for
its global functions.Signed-off-by: Adrian Bunk
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Commit c7bce3097c0f9bbed76ee6fd03742f2624031a45 removed all usages of
baud_table[] but not the array itself.Spotted by the GNU C compiler.
Signed-off-by: Adrian Bunk
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Add a proper prototype for remove_inode_dquot_ref() in
include/linux/quotaops.hSigned-off-by: Adrian Bunk
Acked-by: Jan Kara
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Remove two different changelog files from fs/sysv/ and merges the INTRO
file into Documentation/filesystems/sysv-fs.txtSigned-off-by: Adrian Bunk
Cc: Christoph Hellwig
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Keith says
Compiling 2.6.19-rc6 with gcc version 4.1.0 (SUSE Linux), wait_hpet_tick is
optimized away to a never ending loop and the kernel hangs on boot in timer
setup.0000001a :
1a: 55 push %ebp
1b: 89 e5 mov %esp,%ebp
1d: eb fe jmp 1dThis is not a problem with gcc 3.3.5. Adding barrier() calls to
wait_hpet_tick does not help, making the variables volatile does.And the consensus is that gcc-4.1.0 is busted. Suse went and shipped
gcc-4.1.0 so we cannot ban it. Add a warning.Cc: Keith Owens
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
The pl010 primecell documentation specifies that an error indicated via RSR
should be cleared by a write to ECR. We didn't do this, which was causing
errors to be re-reported on every call to pl010_rx_chars().Doing a write to ECR once we detect an error appears to prevent the ep93xx
console UART driver from going into a mode where it reports "ttyAM0: X
input overrun(s)" every couple of keystrokes.Signed-off-by: Lennert Buytenhek
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
winbond ide depends on idedma.
Move the option into the IDEDMA section.drivers/built-in.o: In function `.sl82c105_ide_dma_timeout':
sl82c105.c:(.text+0x624d0): undefined reference to `.__ide_dma_timeout'
drivers/built-in.o: In function `.sl82c105_ide_dma_off_quietly':
sl82c105.c:(.text+0x6274c): undefined reference to `.__ide_dma_off_quietly'
drivers/built-in.o: In function `.sl82c105_ide_dma_on':
sl82c105.c:(.text+0x6284c): undefined reference to `.__ide_dma_on'
drivers/built-in.o: In function `.sl82c105_check_drive':
sl82c105.c:(.text+0x628ec): undefined reference to `.__ide_dma_bad_drive'
sl82c105.c:(.text+0x62934): undefined reference to `.__ide_dma_good_drive'
drivers/built-in.o: In function `.sl82c105_ide_dma_start':
sl82c105.c:(.text+0x62c24): undefined reference to `.ide_dma_start'
make[1]: *** [.tmp_vmlinux1] Error 1Signed-off-by: Olaf Hering
Acked-by: "Bartlomiej Zolnierkiewicz"
Cc: Alan Cox
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
[acme@newtoy net-2.6.20]$ pahole --cacheline 64 fs/inode.o inode
/* /pub/scm/linux/kernel/git/acme/net-2.6.20/include/linux/dcache.h:86 */
struct inode {
struct hlist_node i_hash; /* 0 8 */
struct list_head i_list; /* 8 8 */
struct list_head i_sb_list; /* 16 8 */
struct list_head i_dentry; /* 24 8 */
long unsigned int i_ino; /* 32 4 */
atomic_t i_count; /* 36 4 */
umode_t i_mode; /* 40 2 *//* XXX 2 bytes hole, try to pack */
unsigned int i_nlink; /* 44 4 */
uid_t i_uid; /* 48 4 */
gid_t i_gid; /* 52 4 */
dev_t i_rdev; /* 56 4 */
loff_t i_size; /* 60 8 */
struct timespec i_atime; /* 68 8 */
struct timespec i_mtime; /* 76 8 */
struct timespec i_ctime; /* 84 8 */
unsigned int i_blkbits; /* 92 4 */
long unsigned int i_version; /* 96 4 */
blkcnt_t i_blocks; /* 100 4 */
short unsigned int i_bytes; /* 104 2 *//* XXX 2 bytes hole, try to pack */
spinlock_t i_lock; /* 108 40 */
struct mutex i_mutex; /* 148 76 */
struct rw_semaphore i_alloc_sem; /* 224 64 */
struct inode_operations * i_op; /* 288 4 */
const struct file_operations * i_fop; /* 292 4 */
struct super_block * i_sb; /* 296 4 */
struct file_lock * i_flock; /* 300 4 */
struct address_space * i_mapping; /* 304 4 */
struct address_space i_data; /* 308 188 */
struct list_head i_devices; /* 496 8 */
union ; /* 504 4 */
int i_cindex; /* 508 4 */
__u32 i_generation; /* 512 4 */
/* ---------- cacheline 8 boundary ---------- */
long unsigned int i_dnotify_mask; /* 516 4 */
struct dnotify_struct * i_dnotify; /* 520 4 */
struct list_head inotify_watches; /* 524 8 */
struct mutex inotify_mutex; /* 532 76 */
long unsigned int i_state; /* 608 4 */
long unsigned int dirtied_when; /* 612 4 */
unsigned int i_flags; /* 616 4 */
atomic_t i_writecount; /* 620 4 */
void * i_security; /* 624 4 */
void * i_private; /* 628 4 */
}; /* size: 632, sum members: 628, holes: 2, sum holes: 4 */[acme@newtoy net-2.6.20]$
So just moving i_mode to after i_bytes we save 4 bytes by nuking both holes:
[acme@newtoy net-2.6.20]$ codiff -V /tmp/inode.o.before fs/inode.o
/pub/scm/linux/kernel/git/acme/net-2.6.20/fs/inode.c:
struct inode | -4
i_mode;
from: umode_t /* 40(0) 2(0) */
to: umode_t /* 102(0) 2(0) */
1 struct changed
[acme@newtoy net-2.6.20]$I've prunned all the other offset changes, only this one is of interest here.
So now we have:
[acme@newtoy net-2.6.20]$ pahole --cacheline 64 ../OUTPUT/qemu/net-2.6.20/fs/inode.o inode
/* /pub/scm/linux/kernel/git/acme/net-2.6.20/include/linux/dcache.h:86 */
struct inode {
struct hlist_node i_hash; /* 0 8 */
struct list_head i_list; /* 8 8 */
struct list_head i_sb_list; /* 16 8 */
struct list_head i_dentry; /* 24 8 */
long unsigned int i_ino; /* 32 4 */
atomic_t i_count; /* 36 4 */
unsigned int i_nlink; /* 40 4 */
uid_t i_uid; /* 44 4 */
gid_t i_gid; /* 48 4 */
dev_t i_rdev; /* 52 4 */
loff_t i_size; /* 56 8 */
/* ---------- cacheline 1 boundary ---------- */
struct timespec i_atime; /* 64 8 */
struct timespec i_mtime; /* 72 8 */
struct timespec i_ctime; /* 80 8 */
unsigned int i_blkbits; /* 88 4 */
long unsigned int i_version; /* 92 4 */
blkcnt_t i_blocks; /* 96 4 */
short unsigned int i_bytes; /* 100 2 */
umode_t i_mode; /* 102 2 */
spinlock_t i_lock; /* 104 40 */
struct mutex i_mutex; /* 144 76 */
struct rw_semaphore i_alloc_sem; /* 220 64 */
struct inode_operations * i_op; /* 284 4 */
const struct file_operations * i_fop; /* 288 4 */
struct super_block * i_sb; /* 292 4 */
struct file_lock * i_flock; /* 296 4 */
struct address_space * i_mapping; /* 300 4 */
struct address_space i_data; /* 304 188 */
struct list_head i_devices; /* 492 8 */
union ; /* 500 4 */
int i_cindex; /* 504 4 */
__u32 i_generation; /* 508 4 */
/* ---------- cacheline 8 boundary ---------- */
long unsigned int i_dnotify_mask; /* 512 4 */
struct dnotify_struct * i_dnotify; /* 516 4 */
struct list_head inotify_watches; /* 520 8 */
struct mutex inotify_mutex; /* 528 76 */
long unsigned int i_state; /* 604 4 */
long unsigned int dirtied_when; /* 608 4 */
unsigned int i_flags; /* 612 4 */
atomic_t i_writecount; /* 616 4 */
void * i_security; /* 620 4 */
void * i_private; /* 624 4 */
}; /* size: 628 */[acme@newtoy net-2.6.20]$
Signed-off-by: Arnaldo Carvalho de Melo
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This macro is broken and unused so why not remove it.
Signed-off-by: Mariusz Kozlowski
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
The real time clocks ds1742 and ds1743 differs only in the size of the
nvram. This patch changes the existing ds1742 driver to support also
ds1743. The main change is that the nvram size is determined from the
resource attached to the device.The patch have benefitted from suggestions from Atsushi Nemeto, who is the
author of the ds1742 driver.Signed-off-by: Torsten Rasmussen Rasmussen
Acked-by: Alessandro Zummo
Acked-by: Atsushi Nemoto
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
It is possible to have tasklets get scheduled before softirqd has had a chance
to spawn on all CPUs. This is totally harmless; after success during action
CPU_UP_PREPARE, action CPU_ONLINE will be called, which immediately wakes
softirqd on the appropriate CPU to process the already pending tasklets. So
there is no danger of having a missed wakeup for any tasklets that were
already pending.In particular, i386 is affected by this during startup, and is visible when
using a very large initrd; during the time it takes for the initrd to be
decompressed, a timer IRQ can come in and schedule RCU callbacks. It is also
possible that resending of a hardware IRQ via a softirq triggers the same bug.Because of different timing conditions, this shows up in all emulators and
virtual machines tested, including Xen, VMware, Virtual PC, and Qemu. It is
also possible to trigger on native hardware with a large enough initrd,
although I don't have a reliable case demonstrating that.Signed-off-by: Zachary Amsden
Cc:
Cc: Ingo Molnar
Cc:
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
When kernel is compiled with old version of autofs (CONFIG_AUTOFS_FS), and
new (observed at least with 5.x.x) automount deamon is started, kernel
correctly reports incompatible version of kernel and userland daemon, but
then screws things up instead of correct handling of the error:autofs: kernel does not match daemon version
=====================================
[ BUG: bad unlock balance detected! ]
-------------------------------------
automount/4199 is trying to release lock (&type->s_umount_key) at:
[] get_sb_nodev+0x76/0xa4
but there are no more locks to release!other info that might help us debug this:
no locks held by automount/4199.stack backtrace:
[] dump_trace+0x68/0x1b2
[] show_trace_log_lvl+0x18/0x2c
[] show_trace+0xf/0x11
[] dump_stack+0x12/0x14
[] print_unlock_inbalance_bug+0xe7/0xf3
[] lock_release+0x8d/0x164
[] up_write+0x14/0x27
[] get_sb_nodev+0x76/0xa4
[] vfs_kern_mount+0x83/0xf6
[] do_kern_mount+0x2d/0x3e
[] do_mount+0x607/0x67a
[] sys_mount+0x72/0xa4
[] sysenter_past_esp+0x5f/0x99
DWARF2 unwinder stuck at sysenter_past_esp+0x5f/0x99
Leftover inexact backtrace:
=======================and then deadlock comes.
The problem: autofs_fill_super() returns EINVAL to get_sb_nodev(), but
before that, it calls kill_anon_super() to destroy the superblock which
won't be needed. This is however way too soon to call kill_anon_super(),
because get_sb_nodev() has to perform its own cleanup of the superblock
first (deactivate_super(), etc.). The correct time to call
kill_anon_super() is in the autofs_kill_sb() callback, which is called by
deactivate_super() at proper time, when the superblock is ready to be
killed.I can see the same faulty codepath also in autofs4. This patch solves
issues in both filesystems in a same way - it postpones the
kill_anon_super() until the proper time is signalized by deactivate_super()
calling the kill_sb() callback.[raven@themaw.net: update comment]
Signed-off-by: Jiri Kosina
Acked-by: Ian Kent
Cc:
Signed-off-by: Ian Kent
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
The i2c and hwmon trees have moved to a new location.
The lm-sensors project moved to a new home as well.
Signed-off-by: Jean Delvare
Cc: Greg KH
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Add suspend/resume methods to drivers/serial/8250_pnp.c. Tested on a
P4/HT 16550A box, ttyS0 login survives across suspend to ram.[akpm@osdl.org: cleanups]
Signed-off-by: Mike Galbraith
Cc: "Rafael J. Wysocki"
Cc: Pavel Machek
Cc: Russell King
Cc: Adam Belay
Cc: Bjorn Helgaas
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Some people want to use ide_cd for CD-ROM but still dynamically load
ide-scsi for things like tape drives. If you compile in the CD driver this
works out but if you want them modular you need an option to ensure that
whoever loads first the right things happen.This replaces the original draft patch which leaked a scsi host reference
[akpm@osdl.org: add MODULE_PARM_DESC]
Signed-off-by: Alan Cox
Cc: Bartlomiej Zolnierkiewicz
Cc: Jens Axboe
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Make the locking self-test failures (of 'FAILURE' type) easier to debug by
printing more information.Signed-off-by: Ingo Molnar
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Some have reported a chain-table overflow - double its size.
Signed-off-by: Ingo Molnar
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
CONFIG_W1_SLAVE_DS2433_CRC can be used directly, there's no reason for the
indirection of defining a different variable in the Makefile.Signed-off-by: Adrian Bunk
Signed-off-by: Evgeniy Polyakov
Cc: Greg KH
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Port fix to the off-by-one in find_next_usable_block's memscan from ext2 to
ext4; but it didn't cause a serious problem for ext4 because the additional
ext4_test_allocatable check rescued it from the error.[akpm@osdl.org: build fix]
Signed-off-by: Mingming Cao
Signed-off-by: Hugh Dickins
Cc:
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
ext4_new_blocks has a nice io_error label for setting -EIO, so goto that in
the one place that doesn't already use it.Signed-off-by: Mingming Cao
Signed-off-by: Hugh Dickins
Cc:
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
The reservations tree is an rb_tree not a list, so it's less confusing to use
rb_entry() than list_entry() - though they're both just container_of().Signed-off-by: Mingming Cao
Signed-off-by: Hugh Dickins
Cc:
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
rsv_end is the last block within the reservation, so alloc_new_reservation
should accept start_block == rsv_end as success.Signed-off-by: Mingming Cao
Signed-off-by: Hugh Dickins
Cc:
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
grp_goal 0 is a genuine goal (unlike -1), so ext4_try_to_allocate_with_rsv
should treat it as such.Signed-off-by: Mingming Cao
Signed-off-by: Hugh Dickins
Cc:
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
ext4_new_blocks should reset the reservation window size to 0 when squeezing
the last blocks out of an almost full filesystem, so the retry doesn't skip
any groups with less than half that free, reporting ENOSPC too soon.Signed-off-by: Mingming Cao
Signed-off-by: Hugh Dickins
Cc:
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
In the current jbd code, if a buffer on BJ_SyncData list is dirty and not
locked, the buffer is refiled to BJ_Locked list, submitted to the IO and
waited for IO completion.But the fsstress test showed the case that when a buffer was already
submitted to the IO just before the buffer_dirty(bh) check, the buffer was
not waited for IO completion.Following patch solves this problem. If it is assumed that a buffer is
submitted to the IO before the buffer_dirty(bh) check and still being
written to disk, this buffer is refiled to BJ_Locked list.Signed-off-by: Hisashi Hifumi
Cc: Jan Kara
Cc: "Stephen C. Tweedie"
Cc:
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Always build hweight8/16/32/64() functions into the kernel so that loadable
modules may use them.I didn't remove GENERIC_HWEIGHT since ALPHA_EV67, ia64, and some variants
of UltraSparc(64) provide their own hweight functions.Fixes config/build problems with NTFS=m and JOYSTICK_ANALOG=m.
Kernel: arch/x86_64/boot/bzImage is ready (#19)
Building modules, stage 2.
MODPOST 94 modules
WARNING: "hweight32" [fs/ntfs/ntfs.ko] undefined!
WARNING: "hweight16" [drivers/input/joystick/analog.ko] undefined!
WARNING: "hweight8" [drivers/input/joystick/analog.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2Signed-off-by: Randy Dunlap
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Remove the carta_random32.h header file. The carta_random32() function was
was put in and removed in favor of random32(). In the removal process, the
header file was forgotten.Signed-off-by: Stephane Eranian
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Add kernel .config file to REPORTING-BUGS.
Signed-off-by: Randy Dunlap
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
According to the datasheet rs5c372 supports three different methods for
reading register values. Change from method #1 to method #3, since method #3
is the only one that works on Thecus N2100 board with this RTC.Signed-off-by: Riku Voipio
Cc: Alessandro Zummo
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
We add a save link for O_DIRECT writes to protect the i_size against the
crashes before we actually finish the I/O. If we hit an -ENOSPC in
aops->prepare_write(), we would do a truncate() to release the blocks which
might have got initialized. Now the truncate would add another save link
for the same inode causing a reiserfs panic for having multiple save links
for the same inode.Signed-off-by: Vladimir V. Saveliev
Signed-off-by: Amit Arora
Signed-off-by: Suzuki K P
Cc: Jeff Mahoney
Cc: Chris Mason
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
At present show_state prints a header the does not match the output of
show_task, as follows:-
sibling
task PC pid father child younger older
init S 00000000 0 1 0 2 (NOTLB)
-This patch corrects the output of show_state so that the header is
aligned with the data, ala:-
free sibling
task PC stack pid father child younger older
init S 00000000 0 1 0 2 (NOTLB)
-Signed-off-by: Chris Caputo
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
In the functions do_proc_dointvec() and do_proc_doulongvec_minmax(),
there seems to be a bug in string length calculation if string contains
negative integer.The console log given below explains the bug. Setting negative values
may not be a right thing to do for "console log level" but then the test
(given below) can be used to demonstrate the bug in the code.# echo "-1 -1 -1 -123456" > /proc/sys/kernel/printk
# cat /proc/sys/kernel/printk
-1 -1 -1 -1234
#
# echo "-1 -1 -1 123456" > /proc/sys/kernel/printk
# cat /proc/sys/kernel/printk
-1 -1 -1 1234
#(akpm: the bug is that 123456 gets truncated)
It works as expected if string contains all +ve integers
# echo "1 2 3 4" > /proc/sys/kernel/printk
# cat /proc/sys/kernel/printk
1 2 3 4
#The patch given below fixes the issue.
Signed-off-by: Praveen BP
Cc: "Eric W. Biederman"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Initialization synclink_gt forgot to unregister pci driver on error path.
Signed-off-by: Akinobu Mita
Cc: Paul Fulghum
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Check the return value of platform_device_register_simple().
Cc: David Brownell
Signed-off-by: Akinobu Mita
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds