aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] build compile.h earlierAndrew Morton2006-12-222-18/+22
| | | | | | | | | | | | | | | | | compile.h is created super-late in the build. But proc_misc.c want to include it, and it's generally not sane to have a header file in include/linux be created at the end of the build: it's either not present or, worse, wrong for most of the build. So the patch arranges for compile.h to be built at the start of the build process. It also consolidates the compile.h rules with those for version.h and utsname.h, so they all get built together. I hope. My chances of having got this right are about 2%. Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] sched: fix bad missed wakeups in the i386, x86_64, ia64, ACPI and ↵Ingo Molnar2006-12-225-7/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | APM idle code Fernando Lopez-Lezcano reported frequent scheduling latencies and audio xruns starting at the 2.6.18-rt kernel, and those problems persisted all until current -rt kernels. The latencies were serious and unjustified by system load, often in the milliseconds range. After a patient and heroic multi-month effort of Fernando, where he tested dozens of kernels, tried various configs, boot options, test-patches of mine and provided latency traces of those incidents, the following 'smoking gun' trace was captured by him: _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | caller \ / ||||| \ | / IRQ_19-1479 1D..1 0us : __trace_start_sched_wakeup (try_to_wake_up) IRQ_19-1479 1D..1 0us : __trace_start_sched_wakeup <<...>-5856> (37 0) IRQ_19-1479 1D..1 0us : __trace_start_sched_wakeup (c01262ba 0 0) IRQ_19-1479 1D..1 0us : resched_task (try_to_wake_up) IRQ_19-1479 1D..1 0us : __spin_unlock_irqrestore (try_to_wake_up) ... <idle>-0 1...1 11us!: default_idle (cpu_idle) ... <idle>-0 0Dn.1 602us : smp_apic_timer_interrupt (c0103baf 1 0) ... <...>-5856 0D..2 618us : __switch_to (__schedule) <...>-5856 0D..2 618us : __schedule <<idle>-0> (20 162) <...>-5856 0D..2 619us : __spin_unlock_irq (__schedule) <...>-5856 0...1 619us : trace_stop_sched_switched (__schedule) <...>-5856 0D..1 619us : trace_stop_sched_switched <<...>-5856> (37 0) what is visible in this trace is that CPU#1 ran try_to_wake_up() for PID:5856, it placed PID:5856 on CPU#0's runqueue and ran resched_task() for CPU#0. But it decided to not send an IPI that no CPU - due to TS_POLLING. But CPU#0 never woke up after its NEED_RESCHED bit was set, and only rescheduled to PID:5856 upon the next lapic timer IRQ. The result was a 600+ usecs latency and a missed wakeup! the bug turned out to be an idle-wakeup bug introduced into the mainline kernel this summer via an optimization in the x86_64 tree: commit 495ab9c045e1b0e5c82951b762257fe1c9d81564 Author: Andi Kleen <ak@suse.de> Date: Mon Jun 26 13:59:11 2006 +0200 [PATCH] i386/x86-64/ia64: Move polling flag into thread_info_status During some profiling I noticed that default_idle causes a lot of memory traffic. I think that is caused by the atomic operations to clear/set the polling flag in thread_info. There is actually no reason to make this atomic - only the idle thread does it to itself, other CPUs only read it. So I moved it into ti->status. the problem is this type of change: if (!hlt_counter && boot_cpu_data.hlt_works_ok) { - clear_thread_flag(TIF_POLLING_NRFLAG); + current_thread_info()->status &= ~TS_POLLING; smp_mb__after_clear_bit(); while (!need_resched()) { local_irq_disable(); this changes clear_thread_flag() to an explicit clearing of TS_POLLING. clear_thread_flag() is defined as: clear_bit(flag, &ti->flags); and clear_bit() is a LOCK-ed atomic instruction on all x86 platforms: static inline void clear_bit(int nr, volatile unsigned long * addr) { __asm__ __volatile__( LOCK_PREFIX "btrl %1,%0" hence smp_mb__after_clear_bit() is defined as a simple compile barrier: #define smp_mb__after_clear_bit() barrier() but the explicit TS_POLLING clearing introduced by the patch: + current_thread_info()->status &= ~TS_POLLING; is not an atomic op! So the clearing of the TS_POLLING bit is freely reorderable with the reading of the NEED_RESCHED bit - and both now reside in different memory addresses. CPU idle wakeup very much depends on ordered memory ops, the clearing of the TS_POLLING flag must always be done before we test need_resched() and hit the idle instruction(s). [Symmetrically, the wakeup code needs to set NEED_RESCHED before it tests the TS_POLLING flag, so memory ordering is paramount.] Fernando's dual-core Athlon64 system has a sufficiently advanced memory ordering model so that it triggered this scenario very often. ( And it also turned out that the reason why these latencies never triggered on my testsystems is that i routinely use idle=poll, which was the only idle variant not affected by this bug. ) The fix is to change the smp_mb__after_clear_bit() to an smp_mb(), to act as an absolute barrier between the TS_POLLING write and the NEED_RESCHED read. This affects almost all idling methods (default, ACPI, APM), on all 3 x86 architectures: i386, x86_64, ia64. Signed-off-by: Ingo Molnar <mingo@elte.hu> Tested-by: Fernando Lopez-Lezcano <nando@ccrma.Stanford.EDU> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] jbd: wait for already submitted t_sync_datalist buffer to completeHisashi Hifumi2006-12-221-2/+6
| | | | | | | | | | | | | | | | | | | | | 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 <hifumi.hisashi@oss.ntt.co.jp> Cc: Jan Kara <jack@ucw.cz> Cc: "Stephen C. Tweedie" <sct@redhat.com> Cc: <linux-ext4@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] fix s3c24xx gpio driver (include linux/workqueue.h)Ben Dooks2006-12-221-0/+1
| | | | | | | | | | The general gpio driver includes seem to now depend on having <linux/workqueue.h> included before they are. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] md: fix a few problems with the interface (sysfs and ioctl) to mdNeilBrown2006-12-221-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | While developing more functionality in mdadm I found some bugs in md... - When we remove a device from an inactive array (write 'remove' to the 'state' sysfs file - see 'state_store') would should not update the superblock information - as we may not have read and processed it all properly yet. - initialise all raid_disk entries to '-1' else the 'slot sysfs file will claim '0' for all devices in an array before the array is started. - all '\n' not to be present at the end of words written to sysfs files - when we use SET_ARRAY_INFO to set the md metadata version, set the flag to say that there is persistant metadata. - allow GET_BITMAP_FILE to be called on an array that hasn't been started yet. Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] increase CARDBUS_MEM_SIZEAndrew Morton2006-12-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Linus sayeth: Google knows everything, and finds, on MS own site no less: "Windows 2000 default resources: One 4K memory window One 2 MB memory window Two 256-byte I/O windows" which is clearly utterly bogus and insufficient. But Microsoft apparently realized this, and: "Windows XP default resources: Because one memory window of 4K and one window of 2 MB are not sufficient for CardBus controllers in many configurations, Windows XP allocates larger memory windows to CardBus controllers where possible. However, resource windows are static (that is, the operating system does not dynamically allocate larger memory windows if new devices appear.) Under Windows XP, CardBus controllers will be assigned the following resources: One 4K memory window, as in Windows 2000 64 MB memory, if that amount of memory is available. If 64 MB is not available the controller will receive 32 MB; if 32 MB is not available, the controller will receive 16 MB; if 16 MB is not available, the bridge will receive 8 MB; and so on down to a minimum assignment of 1 MB in configurations where memory is too constrained for the operating system to provide a larger window. Two 256-byte I/O windows" So I think we have our answer. Windows uses one 4k window, and one 64MB window. And they are no more dynamic than we are (we _could_ try to do it dynamically, but let's face it, it's fairly painful to dynamically expand PCI bus resources - you may need to reprogram everything up to the root, so it would be absolutely crazy to do that unless you have some serious masochistic tendencies). So let's just increase our default value to 64M too. Cc: Markus Rechberger <mrechberger@gmail.com> Cc: Daniel Ritz <daniel.ritz@gmx.ch> Cc: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] relay: remove inliningAndrew Morton2006-12-221-8/+7
| | | | | | | | | | | text data bss dec hex filename before: 4036 44 0 4080 ff0 kernel/relay.o after: 3727 44 0 3771 ebb kernel/relay.o Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> Cc: Tom Zanussi <zanussi@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] ptrace: Fix EFL_OFFSET value according to i386 pda changesJeremy Fitzhardinge2006-12-221-11/+10
| | | | | | | | | | | | | | | | | | | The PDA patches introduced a bug in ptrace: it reads eflags from the wrong place on the target's stack, but writes it back to the correct place. The result is a corrupted eflags, which is most visible when it turns interrupts off unexpectedly. This patch fixes this by making the ptrace code a little less fragile. It changes [gs]et_stack_long to take a straightforward byte offset into struct pt_regs, rather than requiring all callers to do a sizeof(struct pt_regs) offset adjustment. This means that the eflag's offset (EFL_OFFSET) on the target stack can be simply computed with offsetof(). Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> Cc: Frederik Deweerdt <deweerdt@free.fr> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] memory hotplug: fix compile error for i386 with NUMA configYasunori Goto2006-12-222-8/+30
| | | | | | | | | | | | | Fix compile error when config memory hotplug with numa on i386. The cause of compile error was missing of arch_add_memory(), remove_memory(), and memory_add_physaddr_to_nid(). Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com> Acked-by: David Rientjes <rientjes@cs.washington.edu> Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] mips: if_fddi.h: Add a missing inclusionMaciej W. Rozycki2006-12-221-0/+2
| | | | | | | | | | | | This is a change to include <linux/netdevice.h> in <linux/if_fddi.h> which is needed for "struct fddi_statistics". Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Jeff Garzik <jeff@garzik.org> Cc: "David S. Miller" <davem@davemloft.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] kernel-doc: remove Martin from MAINTAINERSMartin Waitz2006-12-221-3/+0
| | | | | | | | | | | I don't have the time to work on Linux Documentation, so I really should document that in MAINTAINERS. With Randy, kernel-doc is in good hands anyway. Signed-off-by: Martin Waitz <tali@admingilde.org> Cc: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] kernel-doc: allow unnamed structs/unionsRandy Dunlap2006-12-221-2/+15
| | | | | | | | | | Make kernel-doc support unnamed (anonymous) structs and unions. There is one (union) in include/linux/skbuff.h (inside struct sk_buff) that is currently generating a kernel-doc warning, so this fixes that warning. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] fdtable: Provide free_fdtable() wrapperVadim Lobanov2006-12-223-2/+7
| | | | | | | | | | | | | | Christoph Hellwig has expressed concerns that the recent fdtable changes expose the details of the RCU methodology used to release no-longer-used fdtable structures to the rest of the kernel. The trivial patch below addresses these concerns by introducing the appropriate free_fdtable() calls, which simply wrap the release RCU usage. Since free_fdtable() is a one-liner, it makes sense to promote it to an inline helper. Signed-off-by: Vadim Lobanov <vlobanov@speakeasy.net> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] gxt4500: Fix colormap and PLL setting, support GXT6000PPaul Mackerras2006-12-221-31/+64
| | | | | | | | | | | | | | | | | | | | | | | This fixes some bugs in the gxt4500 framebuffer driver, and adds support for GXT6000P cards. First, I had the red and blue channels swapped in the colormap update code, resulting in penguins' noses and feet turning blue (though the penguins weren't actually shivering :). Secondly, the code that calculated the values to put in the PLL that generates the pixel clock wasn't observing some constraints that I wasn't originally aware of, but am now that I have some documentation on the chip. The GXT6000P is essentially identical from software's point of view, except for a different reference clock for the PLL, and the addition of a geometry engine (which this driver doesn't use). Signed-off-by: Paul Mackerras <paulus@samba.org> Cc: James Simmons <jsimmons@infradead.org> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] tlclk: delete unnecessary sysfs_remove_groupAkinobu Mita2006-12-221-2/+0
| | | | | | | | | | | | It is unnecessary and invalid to call sysfs_remove_group() after sysfs_create_group() failure. Cc: Sebastien Bouchard <sebastien.bouchard@ca.kontron.com> Cc: Mark Gross <mark.gross@intel.com> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] MAINTAINERS: fix email for S3C2410 and S3C2440Ben Dooks2006-12-221-2/+2
| | | | | | | | | Change the email address for the S3C2410 and S3C2440 maintainer. The old addresses have been deleted due to spam issues. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] microcode: fix mc_cpu_notifier section warningJean Delvare2006-12-221-1/+1
| | | | | | | | | | | | | Structure mc_cpu_notifier references a __cpuinit function, but isn't declared __cpuinitdata itself: WARNING: arch/i386/kernel/microcode.o - Section mismatch: reference to .init.text: from .data after 'mc_cpu_notifier' (at offset 0x118) Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Tigran Aivazian <tigran@aivazian.fsnet.co.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] schedule_timeout(): improve warning messageAndrew Morton2006-12-221-4/+3
| | | | | | | | | Kyle is hitting this warning, and we don't have a clue what it's caused by. Add the obligatory dump_stack(). Cc: kyle <kylewong@southa.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] gss_spkm3: fix error handling in module initAkinobu Mita2006-12-221-1/+1
| | | | | | | | | | | | Return error and prevent from loading module when gss_mech_register() failed. Cc: Andy Adamson <andros@citi.umich.edu> Cc: J. Bruce Fields <bfields@citi.umich.edu> Acked-by: Trond Myklebust <Trond.Myklebust@netapp.com> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] audit: fix kstrdup() error checkAkinobu Mita2006-12-221-2/+2
| | | | | | | | | | kstrdup() returns NULL on error. Cc: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] compile error of register_memory()Yasunori Goto2006-12-223-3/+3
| | | | | | | | | | | | | register_memory() becomes double definition in 2.6.20-rc1. It is defined in arch/i386/kernel/setup.c as static definition in 2.6.19. But it is moved to arch/i386/kernel/e820.c in 2.6.20-rc1. And same name function is defined in driver/base/memory.c too. So, it becomes cause of compile error of duplicate definition if memory hotplug option is on. Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] handle SLOB with sparsemenYasunori Goto2006-12-221-1/+1
| | | | | | | | | | | This is to disallow to make SLOB with SMP or SPARSEMEM. This avoids latent troubles of SLOB with SLAB_DESTROY_BY_RCU. And fix compile error. Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com> Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Acked-by: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] mm: more rmap debuggingNick Piggin2006-12-225-8/+15
| | | | | | | | | Add more debugging in the rmap code in an attempt to locate to source of the occasional "mapcount went negative" assertions. Cc: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] fix aoe without scatter-gather [Bug 7662]Ed L. Cashin2006-12-221-7/+6
| | | | | | | | | | | | | | | | | | | | Fix a bug that only appears when AoE goes over a network card that does not support scatter-gather. The headers in the linear part of the skb appeared to be larger than they really were, resulting in data that was offset by 24 bytes. This patch eliminates the offset data on cards that don't support scatter-gather or have had scatter-gather turned off. There remains an unrelated issue that I'll address in a separate email. Fixes bugzilla #7662 Signed-off-by: "Ed L. Cashin" <ecashin@coraid.com> Cc: <stable@kernel.org> Cc: Greg KH <greg@kroah.com> Cc: <boddingt@optusnet.com.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Add a new section to CodingStyle, promoting include/linux/kernel.hRobert P. J. Day2006-12-221-0/+18
| | | | | | | | | | | | Add a new section to the CodingStyle file, encouraging people not to re-invent available kernel macros such as ARRAY_SIZE(), FIELD_SIZEOF(), min() and max(), among others. Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Acked-by: Jan Engelhardt <jengelh@gmx.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Make JFFS depend on CONFIG_BROKENJosh Boyer2006-12-221-1/+4
| | | | | | | | | Mark JFFS as broken and provide a warning to users that it is deprecated and scheduled for removal in 2.6.21 Signed-off-by: Josh Boyer <jwboyer@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] lock debugging: fix DEBUG_LOCKS_WARN_ON() & debug_locks_silentIngo Molnar2006-12-221-1/+1
| | | | | | | | | | | Matthew Wilcox noticed that the debug_locks_silent use should be inverted in DEBUG_LOCKS_WARN_ON(). This bug was causing spurious stacktraces and incorrect failures in the locking self-test on the parisc kernel. Bug-found-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] fsstack: Remove inode copyMichael Halcrow2006-12-221-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Trevor found a file size problem in eCryptfs in recent kernels, and he tracked it down to an fsstack change. This was the eCryptfs copy_attr_all: > -void ecryptfs_copy_attr_all(struct inode *dest, const struct inode *src) > -{ > - dest->i_mode = src->i_mode; > - dest->i_nlink = src->i_nlink; > - dest->i_uid = src->i_uid; > - dest->i_gid = src->i_gid; > - dest->i_rdev = src->i_rdev; > - dest->i_atime = src->i_atime; > - dest->i_mtime = src->i_mtime; > - dest->i_ctime = src->i_ctime; > - dest->i_blkbits = src->i_blkbits; > - dest->i_flags = src->i_flags; > -} This is the fsstack copy_attr_all: > +void fsstack_copy_attr_all(struct inode *dest, const struct inode *src, > + int (*get_nlinks)(struct inode *)) > +{ > + if (!get_nlinks) > + dest->i_nlink = src->i_nlink; > + else > + dest->i_nlink = (*get_nlinks)(dest); > + > + dest->i_mode = src->i_mode; > + dest->i_uid = src->i_uid; > + dest->i_gid = src->i_gid; > + dest->i_rdev = src->i_rdev; > + dest->i_atime = src->i_atime; > + dest->i_mtime = src->i_mtime; > + dest->i_ctime = src->i_ctime; > + dest->i_blkbits = src->i_blkbits; > + dest->i_flags = src->i_flags; > + > + fsstack_copy_inode_size(dest, src); > +} The addition of copy_inode_size breaks eCryptfs, since eCryptfs needs to interpolate the file sizes (eCryptfs has extra space in the lower file for the header). The setting of the upper inode size occurs elsewhere in eCryptfs, and the new copy_attr_all now undoes what eCryptfs was doing right beforehand. I see three ways of going forward from here. (1) Something like this patch needs to go in (assuming it jives with Unionfs), (2) we need to make a change to the fsstack API for more fine-grained control over copying attributes (e.g., by also including a callback function for calculating the right file size, which will require some more work on both eCryptfs and Unionfs), or (3) the fsstack patch on eCryptfs (commit 0cc72dc7f050188d8d7344b1dd688cbc68d3cd30 made on Fri Dec 8 02:36:31 2006 -0800) needs to be yanked in 2.6.20. I think the simplest solution, from eCryptfs' perspective, is to just remove the inode size copy. Remove inode size copy in general fsstack attr copy code. Stacked filesystems may need to interpolate the inode size, since the file size in the lower file may be different than the file size in the stacked layer. Signed-off-by: Michael Halcrow <mhalcrow@us.ibm.com> Acked-by: Josef "Jeff" Sipek <jsipek@cs.sunysb.edu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] smc911 workqueue fixesAndrew Morton2006-12-221-7/+14
| | | | | | | | | Teach this driver about the workqueue changes. Cc: Vitaly Wool <vitalywool@gmail.com> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] smc911x: fix netpoll compilation faliureVitaly Wool2006-12-221-1/+1
| | | | | | | | | | Fix the compilation failure for smc911x.c when NET_POLL_CONTROLLER is set. Signed-off-by: Vitaly Wool <vitalywool@gmail.com> Cc: Jeff Garzik <jeff@garzik.org> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] genirq: fix irq flow handler uninstallThomas Gleixner2006-12-221-2/+1
| | | | | | | | | | | | | | The sanity check for no_irq_chip in __set_irq_hander() is unconditional on both install and uninstall of an handler. This triggers false warnings and replaces no_irq_chip by dummy_irq_chip in the uninstall case. Check only, when a real handler is installed. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Ingo Molnar <mingo@elte.hu> Acked-by: Sylvain Munaut <tnt@246tNt.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] fix vm_events_fold_cpu() build breakageMagnus Damm2006-12-221-0/+6
| | | | | | | | | | | | | | | | | | | | fix vm_events_fold_cpu() build breakage 2.6.20-rc1 does not build properly if CONFIG_VM_EVENT_COUNTERS is set and CONFIG_HOTPLUG is unset: CC init/version.o LD init/built-in.o LD .tmp_vmlinux1 mm/built-in.o: In function `page_alloc_cpu_notify': page_alloc.c:(.text+0x56eb): undefined reference to `vm_events_fold_cpu' make: *** [.tmp_vmlinux1] Error 1 [akpm@osdl.org: cleanup] Signed-off-by: Magnus Damm <magnus@valinux.co.jp> Cc: Christoph Lameter <clameter@engr.sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] sched: remove __cpuinitdata anotation to cpu_isolated_mapTim Chen2006-12-221-1/+1
| | | | | | | | | | | | | | The structure cpu_isolated_map is used not only during initialization. Multi-core scheduler configuration changes and exclusive cpusets use this during run time. During setting of sched_mc_power_savings policy, this structure is accessed to update sched_domains. Signed-off-by: Tim Chen <tim.c.chen@intel.com> Acked-by: Suresh Siddha <suresh.b.siddha@intel.com> Acked-by: Ingo Molnar <mingo@elte.hu> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Add cscope generated files to .gitignoreTobias Klauser2006-12-221-0/+3
| | | | | | | | Ignore files generated by 'make cscope' Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Fix swapped parameters in mm/vmscan.cNigel Cunningham2006-12-221-2/+2
| | | | | | | | | | | | | The version of mm/vmscan.c in Linus' current tree has swapped parameters in the shrink_all_zones declaration and call, used by the various suspend-to-disk implementations. This doesn't seem to have any great adverse effect, but it's clearly wrong. Signed-off-by: Nigel Cunningham <nigel@suspend2.net> Cc: Pavel Machek <pavel@ucw.cz> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] fs/sysv/: proper prototypes for 2 functionsAdrian Bunk2006-12-222-3/+3
| | | | | | | | | Add proper prototypes for sysv_{init,destroy}_icache() in sysv.h Signed-off-by: Adrian Bunk <bunk@stusta.de> Acked-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] make kernel/printk.c:ignore_loglevel_setup() staticAdrian Bunk2006-12-221-1/+1
| | | | | | Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] fix kernel-doc warnings in 2.6.20-rc1Randy Dunlap2006-12-226-4/+7
| | | | | | | | Fix kernel-doc warnings in 2.6.20-rc1. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] slab: fix kmem_ptr_validate definitionChristoph Lameter2006-12-221-1/+1
| | | | | | | | | | The declaration of kmem_ptr_validate in slab.h does not match the one in slab.c. Remove the fastcall attribute (this is the only use in slab.c). Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] rtc warning fixAndrew Morton2006-12-221-1/+6
| | | | | | | | drivers/char/rtc.c:116: warning: 'hpet_rtc_interrupt' defined but not used Cc: Jan Beulich <jbeulich@novell.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Fix for shmem_truncate_range() BUG_ON()Badari Pulavarty2006-12-221-1/+6
| | | | | | | | | | | | | | Ran into BUG() while doing madvise(REMOVE) testing. If we are punching a hole into shared memory segment using madvise(REMOVE) and the entire hole is below the indirect blocks, we hit following assert. BUG_ON(limit <= SHMEM_NR_DIRECT); Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com> Cc: Hugh Dickins <hugh@veritas.com> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Conditionally check expected_preempt_count in __resched_legal()Mark Fasheh2006-12-221-0/+2
| | | | | | | | | | | | | | | | | | | | | | Commit 2d7d253548cffdce80f4e03664686e9ccb1b0ed7 ("fix cond_resched() fix") introduced an 'expected_preempt_count' parameter to __resched_legal() to fix a bug where it was returning a false negative when called from cond_resched_lock() and preemption was enabled. Unfortunately this broke things for when preemption is disabled. preempt_count() will always return zero, thus failing the check against any value of expected_preempt_count not equal to zero. cond_resched_lock() for example, passes an expected_preempt_count value of 1. So fix the fix for the cond_resched() fix by skipping the check of preempt_count() against expected_preempt_count when preemption is disabled. Credit should go to Sunil Mushran for spotting the bug during testing. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] CONFIG_VM_EVENT_COUNTER comment decrustifyPaul Jackson2006-12-222-6/+7
| | | | | | | | | | | | | | | | The VM event counters, enabled by CONFIG_VM_EVENT_COUNTERS, which provides VM event counters in /proc/vmstat, has become more essential to non-EMBEDDED kernel configurations than they were in the past. Comments in the code and the Kconfig configuration explanation were stale, downplaying their role excessively. Refresh those comments to correctly reflect the current role of VM event counters. Signed-off-by: Paul Jackson <pj@sgi.com> Acked-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] KVM: API versioningAvi Kivity2006-12-222-0/+6
| | | | | | | | Add compile-time and run-time API versioning. Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] KVM: Handle p5 mce msrsMichael Riepe2006-12-222-0/+4
| | | | | | | | | This allows plan9 to get a little further booting. Signed-off-by: Michael Riepe <michael@mr511.de> Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] KVM: Force real-mode cs limit to 64KMichael Riepe2006-12-221-0/+1
| | | | | | | | | This allows opensolaris to boot on kvm/intel. Signed-off-by: Michael Riepe <michael@mr511.de> Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] KVM: Do not export unsupported msrs to userspaceMichael Riepe2006-12-221-3/+24
| | | | | | | | | | | | Some msrs, such as MSR_STAR, are not available on all processors. Exporting them causes qemu to try to fetch them, which will fail. So, check all msrs for validity at module load time. Signed-off-by: Michael Riepe <michael@mr511.de> Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] KVM: Use more traditional error handling in kvm_mmu_init()Avi Kivity2006-12-221-6/+12
| | | | | | Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] KVM: AMD SVM: Save and restore the floating point unit stateAvi Kivity2006-12-221-0/+9
| | | | | | | | Fixes sf bug 1614113 (segfaults in nbench). Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] KVM: AMD SVM: handle MSR_STAR in 32-bit modeAvi Kivity2006-12-221-5/+5
| | | | | | | | This is necessary for linux guests. Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>