commit 3bf8ba38f38d3647368e4edcf7d019f9f8d9184a Author: Linus Torvalds Date: Sat Dec 23 20:00:32 2006 -0800 Linux 2.6.20-rc2 commit cb876f451455b6187a7d69de2c112c45ec4b7f99 Author: Linus Torvalds Date: Sat Dec 23 16:19:07 2006 -0800 Fix up CIFS for "test_clear_page_dirty()" removal This also adds he required page "writeback" flag handling, that cifs hasn't been doing and that the page dirty flag changes made obvious. Acked-by: Steve French Acked-by: Dave Kleikamp Signed-off-by: Linus Torvalds commit 8d1c481960ba833362aa78245fdff12e3804f8b5 Author: OGAWA Hirofumi Date: Sat Dec 23 10:00:43 2006 +0900 [PATCH] arch/i386/pci/mmconfig.c tlb flush fix We use the fixmap for accessing pci config space in pci_mmcfg_read/write(). The problem is in pci_exp_set_dev_base(). It is caching a last accessed address to avoid calling set_fixmap_nocache() whenever pci_mmcfg_read/write() is used. static inline void pci_exp_set_dev_base(int bus, int devfn) { u32 dev_base = base | (bus << 20) | (devfn << 12); if (dev_base != mmcfg_last_accessed_device) { mmcfg_last_accessed_device = dev_base; set_fixmap_nocache(FIX_PCIE_MCFG, dev_base); } } cpu0 cpu1 --------------------------------------------------------------------------- pci_mmcfg_read("device-A") pci_exp_set_dev_base() set_fixmap_nocache() pci_mmcfg_read("device-B") pci_exp_set_dev_base() set_fixmap_nocache() pci_mmcfg_read("device-B") pci_exp_set_dev_base() /* doesn't flush tlb */ But if cpus accessed the above order, the second pci_mmcfg_read() on cpu0 doesn't flush the TLB, because "mmcfg_last_accessed_device" is device-B. So, second pci_mmcfg_read() on cpu0 accesses a device-A via a previous TLB cache. This problem became the cause of several strange behavior. This patches fixes this situation by adds "mmcfg_last_accessed_cpu" check. [ Alternatively, we could make a per-cpu mapping area or something. Not that it's probably worth it, but if we wanted to avoid all locking and instead just disable preemption, that would be the way to go. --Linus ] Signed-off-by: OGAWA Hirofumi Signed-off-by: OGAWA Hirofumi Signed-off-by: Linus Torvalds commit e1d9fd2e3d33b2fec3207171ec8ca6e71d5c81c7 Author: Ingo Molnar Date: Sat Dec 23 16:55:29 2006 +0100 [PATCH] suspend: fix suspend on single-CPU systems Clark Williams reported that suspend doesnt work on his laptop on 2.6.20-rc1-rt kernels. The bug was introduced by the following cleanup commit: commit 112cecb2cc0e7341db92281ba04b26c41bb8146d Author: Siddha, Suresh B Date: Wed Dec 6 20:34:31 2006 -0800 [PATCH] suspend: don't change cpus_allowed for task initiating the suspend because with this change 'error' is not initialized to 0 anymore, if there are no other online CPUs. (i.e. if the system is single-CPU). the fix is the initialize it to 0. The really weird thing is that my version of gcc does not warn about this non-initialized variable situation ... (also fix the kernel printk in the error branch, it was missing a newline) Reported-by: Clark Williams Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds commit ffaa82008f1aad52a6d3979f49d2a76c2928b60f Author: Linus Torvalds Date: Sat Dec 23 09:32:45 2006 -0800 Fix reiserfs after "test_clear_page_dirty()" removal Thanks to Len Brown for testing this fix, since while they have in the past, none of my machines run reiserfs at the moment. Cc: Vladimir V. Saveliev Acked-by: Len Brown Signed-off-by: Linus Torvalds commit 8368e328dfe1c534957051333a87b3210a12743b Author: Linus Torvalds Date: Sat Dec 23 09:25:04 2006 -0800 Clean up and export cancel_dirty_page() to modules Make cancel_dirty_page() act more like all the other dirty and writeback accounting functions: test for "mapping" being NULL, and do the NR_FILE_DIRY accounting purely based on mapping_cap_account_dirty()). Also, add it to the exports, so that modular filesystems can use it. Acked-by: Andrew Morton Signed-off-by: Linus Torvalds commit dab6df63086762629936e8b89a5984bae39724f6 Author: Marcel Holtmann Date: Thu Dec 21 23:06:24 2006 +0100 [PATCH] Call init_timer() for ISDN PPP CCP reset state timer The function isdn_ppp_ccp_reset_alloc_state() sets ->timer.function and ->timer.data and later on calls add_timer() with no init_timer() ever done. Noted by Al Viro. Signed-off-by: Marcel Holtmann Cc: Al Viro Cc: Karsten Keil Signed-off-by: Linus Torvalds commit 719d34027e1a186e46a3952e8a24bf91ecc33837 Author: Jens Axboe Date: Fri Dec 22 09:38:53 2006 +0100 [PATCH] cfq-iosched: tighten allow merge criteria The logic in cfq_allow_merge() wasn't clear enough - basically allow merging for the same queues only. Do a fast check for 'rq and bio both sync/async' before doing the cfqq hash lookup. This is verified to work with the fixed elv_try_merge() from commit bb4067e34159648d394943d5e2a011f838bff22f. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds commit 5c668704b7fa5a4ebf21a490ddfbd6dc2e01fc97 Author: David S. Miller Date: Fri Dec 22 11:42:26 2006 -0800 [UDP]: Fix reversed logic in udp_get_port(). When this code was converted to use sk_for_each() the logic for the "best hash chain length" code was reversed, breaking everything. The original code was of the form: size = 0; do { if (++size >= best_size_so_far) goto next; } while ((sk = sk->next) != NULL); best_size_so_far = size; best = result; next:; and this got converted into: sk_for_each(sk2, node, head) if (++size < best_size_so_far) { best_size_so_far = size; best = result; } Which does something very very different from the original. Signed-off-by: David S. Miller commit b23e3536667373e44f52a907f63cb55f75969490 Author: Al Viro Date: Thu Dec 21 13:15:18 2006 -0800 [IPV6]: Dumb typo in generic csum_ipv6_magic() ... duh Signed-off-by: Al Viro Signed-off-by: David S. Miller commit 24123186fa271e7ad34a40f815782e6205f34ff7 Author: Adrian Bunk Date: Wed Dec 20 16:08:22 2006 -0800 [SCTP]: make 2 functions static This patch makes the following needlessly global functions static: - ipv6.c: sctp_inet6addr_event() - protocol.c: sctp_inetaddr_event() Signed-off-by: Adrian Bunk Signed-off-by: Sridhar Samudrala Signed-off-by: David S. Miller commit 0f3fffd8ab1db7658c97c167e8ab001cc814e1f4 Author: Ivan Skytte Jorgensen Date: Wed Dec 20 16:07:04 2006 -0800 [SCTP]: Fix typo adaption -> adaptation as per the latest API draft. Signed-off-by: Ivan Skytte Jorgensen Signed-off-by: Sridhar Samudrala Signed-off-by: David S. Miller commit a3f7f142f73ed4cb23826bee84afc31d10377e39 Author: Sridhar Samudrala Date: Wed Dec 20 16:06:09 2006 -0800 [SCTP]: Don't export include/linux/sctp.h to userspace. This file contains protocol definitions and there are no SCTP apps that use this file. Signed-off-by: Sridhar Samudrala Signed-off-by: David S. Miller commit 9a036b9c33f74c989c4c8ac0abe05e0ed88f1f25 Author: Gerrit Renker Date: Wed Dec 20 10:25:55 2006 -0800 [TCP]: Fix ambiguity in the `before' relation. While looking at DCCP sequence numbers, I stumbled over a problem with the following definition of before in tcp.h: static inline int before(__u32 seq1, __u32 seq2) { return (__s32)(seq1-seq2) < 0; } Problem: This definition suffers from an an ambiguity, i.e. always before(a, (a + 2^31) % 2^32)) = 1 before((a + 2^31) % 2^32), a) = 1 In text: when the difference between a and b amounts to 2^31, a is always considered `before' b, the function can not decide. The reason is that implicitly 0 is `before' 1 ... 2^31-1 ... 2^31 Solution: There is a simple fix, by defining before in such a way that 0 is no longer `before' 2^31, i.e. 0 `before' 1 ... 2^31-1 By not using the middle between 0 and 2^32, before can be made unambiguous. This is achieved by testing whether seq2-seq1 > 0 (using signed 32-bit arithmetic). I attach a patch to codify this. Also the `after' relation is basically a redefinition of `before', it is now defined as a macro after before. Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit 1f8a5fb80e63aab63de81169ab749d73e7509e3f Author: Adrian Bunk Date: Tue Dec 19 19:36:32 2006 -0800 [ATM] drivers/atm/fore200e.c: Cleanups. This patch contains the following transformations from custom functions to standard kernel version: - fore200e_kmalloc() -> kzalloc() - fore200e_kfree() -> kfree() - fore200e_swap() -> cpu_to_be32() Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller commit 52a91071306c3b129efa6ea2bfe16244b8619cd9 Author: Adrian Bunk Date: Tue Dec 19 19:35:05 2006 -0800 [ATM]: Remove dead ATM_TNETA1570 option. This patch removes the unconverted ATM_TNETA1570 option that also lacks any code in the kernel. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller commit caff5b6a6bfd0c55b359b2b4acd8c14f828b689e Author: Paul Moore Date: Fri Dec 15 16:49:28 2006 -0500 NetLabel: correctly fill in unused CIPSOv4 level and category mappings Back when the original NetLabel patches were being changed to use Netlink attributes correctly some code was accidentially dropped which set all of the undefined CIPSOv4 level and category mappings to a sentinel value. The result is the mappings data in the kernel contains bogus mappings which always map to zero. This patch restores the old/correct behavior by initializing the mapping data to the correct sentinel value. Signed-off-by: Paul Moore Signed-off-by: James Morris commit 1fd2a25b77bb6755d38aca50b826ff8dca81d762 Author: Paul Moore Date: Fri Dec 15 16:49:27 2006 -0500 NetLabel: perform input validation earlier on CIPSOv4 DOI add ops There are a couple of cases where the user input for a CIPSOv4 DOI add operation was not being done soon enough; the result was unexpected behavior which was resulting in oops/panics/lockups on some platforms. This patch moves the existing input validation code earlier in the code path to protect against bogus user input. Signed-off-by: Paul Moore Signed-off-by: James Morris commit c2fda5fed81eea077363b285b66eafce20dfd45a Author: Peter Zijlstra Date: Fri Dec 22 14:25:52 2006 +0100 [PATCH] Fix up page_mkclean_one(): virtual caches, s390 - add flush_cache_page() for all those virtual indexed cache architectures. - handle s390. Signed-off-by: Peter Zijlstra Signed-off-by: Linus Torvalds commit e21654a756177bf209d7a3cbe971f16104555f75 Author: Peter Korsgaard Date: Fri Dec 22 16:38:40 2006 +0100 [PATCH] serial/uartlite: Only enable port if request_port succeeded The uartlite driver used to always enable the port even if request_port failed causing havoc. This patch fixes it. Signed-off-by: Peter Korsgaard Signed-off-by: Linus Torvalds commit b2b2cbc4b2a2f389442549399a993a8306420baf Author: Eric W. Biederman Date: Thu Dec 21 21:28:40 2006 -0700 [PATCH] Fix reparenting to the same thread group. (take 2) This patch fixes the case when we reparent to a different thread in the same thread group. This modifies the code so that we do not send signals and do not change the signal to send to SIGCHLD unless we have change the thread group of our parents. It also suppresses sending pdeath_sig in this cas as well since the result of geppid doesn't change. Thanks to Oleg for spotting my bug of only fixing this for non-ptraced tasks. Signed-off-by: Eric W. Biederman Cc: Mike Galbraith Cc: Albert Cahalan Cc: Andrew Morton Cc: Roland McGrath Cc: Ingo Molnar Cc: Coywolf Qi Hunt Acked-by: Oleg Nesterov Signed-off-by: Linus Torvalds commit ef129412b4cbd6686d0749612cb9b76e207271f4 Author: Andrew Morton Date: Fri Dec 22 01:12:01 2006 -0800 [PATCH] build compile.h earlier 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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0888f06ac99f993df2bb4c479f5b9306dafe154f Author: Ingo Molnar Date: Fri Dec 22 01:11:56 2006 -0800 [PATCH] sched: fix bad missed wakeups in the i386, x86_64, ia64, ACPI and 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) ... -0 1...1 11us!: default_idle (cpu_idle) ... -0 0Dn.1 602us : smp_apic_timer_interrupt (c0103baf 1 0) ... <...>-5856 0D..2 618us : __switch_to (__schedule) <...>-5856 0D..2 618us : __schedule <-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 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 Tested-by: Fernando Lopez-Lezcano Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6f5a9da1af5a8c286575c30c2706dc1fbef9164b Author: Hisashi Hifumi Date: Fri Dec 22 01:11:50 2006 -0800 [PATCH] jbd: wait for already submitted t_sync_datalist buffer to complete 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 commit 6d3a25f1fb75206ae8b2b1cdd1431b3852e1a45a Author: Ben Dooks Date: Fri Dec 22 01:11:45 2006 -0800 [PATCH] fix s3c24xx gpio driver (include linux/workqueue.h) The general gpio driver includes seem to now depend on having included before they are. Signed-off-by: Ben Dooks Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3f9d7b0d810f9fe3dc670901b694a9632b8d62b3 Author: NeilBrown Date: Fri Dec 22 01:11:41 2006 -0800 [PATCH] md: fix a few problems with the interface (sysfs and ioctl) to md 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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fe0e5c4d947d34f10002b4cf272f0ebf110305b7 Author: Andrew Morton Date: Fri Dec 22 01:11:36 2006 -0800 [PATCH] increase CARDBUS_MEM_SIZE 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 Cc: Daniel Ritz Cc: Dominik Brodowski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 192636ad9097b13d58310a6358fd512d3084c09a Author: Andrew Morton Date: Fri Dec 22 01:11:30 2006 -0800 [PATCH] relay: remove inlining 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 Cc: Tom Zanussi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8701ea957dd2a7c309e17c8dcde3a64b92d8aec0 Author: Jeremy Fitzhardinge Date: Fri Dec 22 01:11:21 2006 -0800 [PATCH] ptrace: Fix EFL_OFFSET value according to i386 pda changes 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 Cc: Frederik Deweerdt Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7c7e9425f114a109b07be2c2c1c6c169e34e9bb3 Author: Yasunori Goto Date: Fri Dec 22 01:11:13 2006 -0800 [PATCH] memory hotplug: fix compile error for i386 with NUMA config 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 Acked-by: David Rientjes Acked-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 080dd51d81c8a9373303e9c344bbc75aacf54dce Author: Maciej W. Rozycki Date: Fri Dec 22 01:11:04 2006 -0800 [PATCH] mips: if_fddi.h: Add a missing inclusion This is a change to include in which is needed for "struct fddi_statistics". Signed-off-by: Maciej W. Rozycki Cc: Ralf Baechle Cc: Jeff Garzik Cc: "David S. Miller" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 73fa186e28a04cf9ca79c9c0b6fd736bc556c7a7 Author: Martin Waitz Date: Fri Dec 22 01:10:56 2006 -0800 [PATCH] kernel-doc: remove Martin from MAINTAINERS 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 Cc: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 134fe01bfafa74e691d84bf15666fb30e89896ff Author: Randy Dunlap Date: Fri Dec 22 01:10:50 2006 -0800 [PATCH] kernel-doc: allow unnamed structs/unions 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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 01b2d93ca4c495f056471189ac6c4e6ac4cbbccb Author: Vadim Lobanov Date: Fri Dec 22 01:10:43 2006 -0800 [PATCH] fdtable: Provide free_fdtable() wrapper 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 Cc: Christoph Hellwig Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 31fccf7fe4097e62f038bdfe8f4f68ecaea8ebe7 Author: Paul Mackerras Date: Fri Dec 22 01:10:36 2006 -0800 [PATCH] gxt4500: Fix colormap and PLL setting, support GXT6000P 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 Cc: James Simmons Cc: "Antonino A. Daplas" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5e40508e5fee2dac7b04d5bc5b5ef3b452f0a899 Author: Akinobu Mita Date: Fri Dec 22 01:10:28 2006 -0800 [PATCH] tlclk: delete unnecessary sysfs_remove_group It is unnecessary and invalid to call sysfs_remove_group() after sysfs_create_group() failure. Cc: Sebastien Bouchard Cc: Mark Gross Signed-off-by: Akinobu Mita Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 449d4dd5add718578eb2e6671168de9f67dd239c Author: Ben Dooks Date: Fri Dec 22 01:10:23 2006 -0800 [PATCH] MAINTAINERS: fix email for S3C2410 and S3C2440 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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit be31f9cbc809dae0bcdd39211c33c6882a7b0c9e Author: Jean Delvare Date: Fri Dec 22 01:10:19 2006 -0800 [PATCH] microcode: fix mc_cpu_notifier section warning 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 Cc: Tigran Aivazian Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5b149bcc230e4696a1d893504bed38aeb3832314 Author: Andrew Morton Date: Fri Dec 22 01:10:14 2006 -0800 [PATCH] schedule_timeout(): improve warning message Kyle is hitting this warning, and we don't have a clue what it's caused by. Add the obligatory dump_stack(). Cc: kyle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fadfc8e930dcaf502b49a0a0170ba8ebe9a34c49 Author: Akinobu Mita Date: Fri Dec 22 01:10:09 2006 -0800 [PATCH] gss_spkm3: fix error handling in module init Return error and prevent from loading module when gss_mech_register() failed. Cc: Andy Adamson Cc: J. Bruce Fields Acked-by: Trond Myklebust Signed-off-by: Akinobu Mita Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3e1fbd12c958591695f89b11f9c6ec08d002e358 Author: Akinobu Mita Date: Fri Dec 22 01:10:02 2006 -0800 [PATCH] audit: fix kstrdup() error check kstrdup() returns NULL on error. Cc: David Woodhouse Signed-off-by: Akinobu Mita Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5c95da9f5abeff865b7273b59e1a3c50a2c5acb2 Author: Yasunori Goto Date: Fri Dec 22 01:09:54 2006 -0800 [PATCH] compile error of register_memory() 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 Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 561ccd3a97867ed33e1670feeca3391cd4d6fa2c Author: Yasunori Goto Date: Fri Dec 22 01:09:44 2006 -0800 [PATCH] handle SLOB with sparsemen 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 Acked-by: Randy Dunlap Acked-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7de6b8057976584e5a422574cae4dd21c677b4d4 Author: Nick Piggin Date: Fri Dec 22 01:09:33 2006 -0800 [PATCH] mm: more rmap debugging Add more debugging in the rmap code in an attempt to locate to source of the occasional "mapcount went negative" assertions. Cc: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 19900cdee29c812857ce938ab449e1053d516252 Author: Ed L. Cashin Date: Fri Dec 22 01:09:21 2006 -0800 [PATCH] fix aoe without scatter-gather [Bug 7662] 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" Cc: Cc: Greg KH Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 58637ec90b7ceed5909e726ac90118852f79d2b1 Author: Robert P. J. Day Date: Fri Dec 22 01:09:11 2006 -0800 [PATCH] Add a new section to CodingStyle, promoting include/linux/kernel.h 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 Acked-by: Randy Dunlap Acked-by: Jan Engelhardt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 163ca88b9c5858909ee3f8801ae0096b5f94e835 Author: Josh Boyer Date: Fri Dec 22 01:09:03 2006 -0800 [PATCH] Make JFFS depend on CONFIG_BROKEN 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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9127d4b1d9b2e8fba8e7fbc7f88ea93e5eb01396 Author: Ingo Molnar Date: Fri Dec 22 01:08:52 2006 -0800 [PATCH] lock debugging: fix DEBUG_LOCKS_WARN_ON() & debug_locks_silent 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 Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ba3ff12fca318225cb978c6181b83d38dcbc5b09 Author: Michael Halcrow Date: Fri Dec 22 01:08:43 2006 -0800 [PATCH] fsstack: Remove inode copy 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 Acked-by: Josef "Jeff" Sipek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ef8142a525c58dec325e8dd9a7bf92fb240d05c7 Author: Andrew Morton Date: Fri Dec 22 01:08:33 2006 -0800 [PATCH] smc911 workqueue fixes Teach this driver about the workqueue changes. Cc: Vitaly Wool Cc: Jeff Garzik Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9b6d2efed2f4cfa07827d3e497655ce91dd97866 Author: Vitaly Wool Date: Fri Dec 22 01:08:24 2006 -0800 [PATCH] smc911x: fix netpoll compilation faliure Fix the compilation failure for smc911x.c when NET_POLL_CONTROLLER is set. Signed-off-by: Vitaly Wool Cc: Jeff Garzik Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9d7ac8be4b48737ad1cebd94ed754a269f360708 Author: Thomas Gleixner Date: Fri Dec 22 01:08:14 2006 -0800 [PATCH] genirq: fix irq flow handler uninstall 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 Acked-by: Ingo Molnar Acked-by: Sylvain Munaut Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e903387f1ebe3a7ddb93cd49c38341d3632df528 Author: Magnus Damm Date: Fri Dec 22 01:08:01 2006 -0800 [PATCH] fix vm_events_fold_cpu() build breakage 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 Cc: Christoph Lameter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 67af63a6ab4ce064f807bdce614fe0fa2bcea252 Author: Tim Chen Date: Fri Dec 22 01:07:50 2006 -0800 [PATCH] sched: remove __cpuinitdata anotation to cpu_isolated_map 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 Acked-by: Suresh Siddha Acked-by: Ingo Molnar Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 132e2bc3ee7181c178314ced49da9944b76411c2 Author: Tobias Klauser Date: Fri Dec 22 01:07:32 2006 -0800 [PATCH] Add cscope generated files to .gitignore Ignore files generated by 'make cscope' Signed-off-by: Tobias Klauser Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e07aa05b606deeb1a8b55cd19098427c72daebce Author: Nigel Cunningham Date: Fri Dec 22 01:07:21 2006 -0800 [PATCH] Fix swapped parameters in mm/vmscan.c 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 Cc: Pavel Machek Cc: "Rafael J. Wysocki" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3b2b96abbf321891bdde5412d23bc4123c6cccec Author: Adrian Bunk Date: Fri Dec 22 01:07:09 2006 -0800 [PATCH] fs/sysv/: proper prototypes for 2 functions Add proper prototypes for sysv_{init,destroy}_icache() in sysv.h Signed-off-by: Adrian Bunk Acked-by: Christoph Hellwig Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 99eea6a105106a94758724ccce996607f60bc0f2 Author: Adrian Bunk Date: Fri Dec 22 01:07:00 2006 -0800 [PATCH] make kernel/printk.c:ignore_loglevel_setup() static Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit af9997e426f9ddfe7a84cb4cd3c7ff938fabd41a Author: Randy Dunlap Date: Fri Dec 22 01:06:52 2006 -0800 [PATCH] fix kernel-doc warnings in 2.6.20-rc1 Fix kernel-doc warnings in 2.6.20-rc1. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b7f869a2847dfe6f9b0835ca1b24e73bed926d7d Author: Christoph Lameter Date: Fri Dec 22 01:06:44 2006 -0800 [PATCH] slab: fix kmem_ptr_validate definition 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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 533ffc289db9f44c0633d3a7b87243b5740b02b2 Author: Andrew Morton Date: Fri Dec 22 01:06:36 2006 -0800 [PATCH] rtc warning fix drivers/char/rtc.c:116: warning: 'hpet_rtc_interrupt' defined but not used Cc: Jan Beulich Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 92a3d03aab912624cae799e5772a6eb2ef55083f Author: Badari Pulavarty Date: Fri Dec 22 01:06:23 2006 -0800 [PATCH] Fix for shmem_truncate_range() BUG_ON() 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 Cc: Hugh Dickins Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ba0084048ab785c2cb1d6cc2cccabe642a5b799a Author: Mark Fasheh Date: Fri Dec 22 01:06:15 2006 -0800 [PATCH] Conditionally check expected_preempt_count in __resched_legal() 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 Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2aea4fb61609ba7ef82f7dc6fca116bda88816e1 Author: Paul Jackson Date: Fri Dec 22 01:06:10 2006 -0800 [PATCH] CONFIG_VM_EVENT_COUNTER comment decrustify 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 Acked-by: Christoph Lameter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0b76e20b27d20f7cb240e6b1b2dbebaa1b7f9b60 Author: Avi Kivity Date: Fri Dec 22 01:06:02 2006 -0800 [PATCH] KVM: API versioning Add compile-time and run-time API versioning. Signed-off-by: Avi Kivity Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0f8e3d365a30a8788d4c348e2885bac9640bf4d0 Author: Michael Riepe Date: Fri Dec 22 01:05:53 2006 -0800 [PATCH] KVM: Handle p5 mce msrs This allows plan9 to get a little further booting. Signed-off-by: Michael Riepe Signed-off-by: Avi Kivity Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit abacf8dff911ecc11513dff162d7990aa8ed2da0 Author: Michael Riepe Date: Fri Dec 22 01:05:45 2006 -0800 [PATCH] KVM: Force real-mode cs limit to 64K This allows opensolaris to boot on kvm/intel. Signed-off-by: Michael Riepe Signed-off-by: Avi Kivity Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bf591b24d07126143356058966d79423661f491f Author: Michael Riepe Date: Fri Dec 22 01:05:36 2006 -0800 [PATCH] KVM: Do not export unsupported msrs to userspace 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 Signed-off-by: Avi Kivity Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2c264957105b7c248a456ba6602df667ae986550 Author: Avi Kivity Date: Fri Dec 22 01:05:28 2006 -0800 [PATCH] KVM: Use more traditional error handling in kvm_mmu_init() Signed-off-by: Avi Kivity Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 36241b8c7cbcc83e7fd534d25e1df8339db8244e Author: Avi Kivity Date: Fri Dec 22 01:05:20 2006 -0800 [PATCH] KVM: AMD SVM: Save and restore the floating point unit state Fixes sf bug 1614113 (segfaults in nbench). Signed-off-by: Avi Kivity Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0e859cacb0b01bdbe34b5200dd2457d4818248fa Author: Avi Kivity Date: Fri Dec 22 01:05:08 2006 -0800 [PATCH] KVM: AMD SVM: handle MSR_STAR in 32-bit mode This is necessary for linux guests. Signed-off-by: Avi Kivity Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5aacf0ca4128fdeadf91c0ac50271841b643d1fd Author: James Morris Date: Fri Dec 22 01:04:55 2006 -0800 [PATCH] KVM: add valid_vcpu() helper Consolidate the logic for checking whether a vcpu index is valid. Also, use likely(), as a valid value should be the overwhelmingly common case. Signed-off-by: James Morris Signed-off-by: Avi Kivity Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5f2a105d5e33a038a717995d2738434f9c25aed2 Author: Andrew Morton Date: Fri Dec 22 01:04:48 2006 -0800 [PATCH] truncate: dirty memory accounting fix Only (un)account for IO and page-dirtying for devices which have real backing store (ie: not tmpfs or ramdisks). Cc: "David S. Miller" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bb4067e34159648d394943d5e2a011f838bff22f Author: Jens Axboe Date: Thu Dec 21 21:20:01 2006 +0100 [PATCH] elevator: fixup typo in merge logic The recent io scheduler allow_merge commit left the block layer with no merging, oops. This patch fixes that up. That means the CFQ change needs to be verified again, it might not fix the original bug now. But that's a seperate thing, I'll double check that tomorrow. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds commit 3e67c0987d7567ad666641164a153dca9a43b11d Author: Andrew Morton Date: Thu Dec 21 11:00:33 2006 -0800 [PATCH] truncate: clear page dirtiness before running try_to_free_buffers() truncate presently invalidates the dirty page's buffer_heads then shoots down the page. But try_to_free_buffers() will now bale out because the page is dirty. Net effect: the LRU gets filled with dirty pages which have invalidated buffer_heads attached. They have no ->mapping and hence cannot be cleaned. The machine leaks memory at an enormous rate. Fix this by cleaning the page before running try_to_free_buffers(), so try_to_free_buffers() can do its work. Also, remember to do dirty-page-acoounting in cancel_dirty_page() so the machine won't wedge up trying to write non-existent dirty pages. Probably still wrong, but now less so. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 921320210bd2ec4f17053d283355b73048ac0e56 Author: David Chinner Date: Thu Dec 21 10:24:01 2006 +1100 [PATCH] Fix XFS after clear_page_dirty() removal XFS appears to call clear_page_dirty to get the mapping tree dirty tag set correctly at the same time the page dirty flag is cleared. I note that this can be done by set_page_writeback() if we clear the dirty flag on the page first when we are writing back the entire page. Hence it seems to me that the XFS call to clear_page_dirty() could easily be substituted by clear_page_dirty_for_io() followed by a call to set_page_writeback() to get the mapping tree tags set correctly after the page has been marked clean. Signed-off-by: Linus Torvalds commit 9280f6822c2d7112b47107251fce307aefb31f35 Author: Miklos Szeredi Date: Thu Dec 21 15:18:23 2006 +0100 [PATCH] fuse: remove clear_page_dirty() call The use by FUSE was just a remnant of an optimization from the time when writable mappings were supported. Now FUSE never actually allows the creation of dirty pages, so this invocation of clear_page_dirty() is effectively a no-op. Signed-off-by: Miklos Szeredi Signed-off-by: Linus Torvalds commit d0e671a932cb9c653b27393cec26aec012a8d97e Author: Dave Kleikamp Date: Wed Dec 20 15:55:35 2006 -0600 [PATCH] Fix JFS after clear_page_dirty() removal This patch removes some questionable code that attempted to make a no-longer-used page easier to reclaim. Calling metapage_writepage against such a page will not result in any I/O being performed, so removing this code shouldn't be a big deal. [ It's likely that we could have just replaced the "clear_page_dirty()" call with a call to "cancel_dirty_page()" instead, but in the meantime this is cleaner and simpler anyway, so unless there is some overriding reason (and Dave implies there isn't) I'll just use this patch as-is. - Linus ] Signed-off-by: Dave Kleikamp Signed-off-by: Linus Torvalds commit fba2591bf4e418b6c3f9f8794c9dd8fe40ae7bd9 Author: Linus Torvalds Date: Wed Dec 20 13:46:42 2006 -0800 VM: Remove "clear_page_dirty()" and "test_clear_page_dirty()" functions They were horribly easy to mis-use because of their tempting naming, and they also did way more than any users of them generally wanted them to do. A dirty page can become clean under two circumstances: (a) when we write it out. We have "clear_page_dirty_for_io()" for this, and that function remains unchanged. In the "for IO" case it is not sufficient to just clear the dirty bit, you also have to mark the page as being under writeback etc. (b) when we actually remove a page due to it becoming inaccessible to users, notably because it was truncate()'d away or the file (or metadata) no longer exists, and we thus want to cancel any outstanding dirty state. For the (b) case, we now introduce "cancel_dirty_page()", which only touches the page state itself, and verifies that the page is not mapped (since cancelling writes on a mapped page would be actively wrong as it is still accessible to users). Some filesystems need to be fixed up for this: CIFS, FUSE, JFS, ReiserFS, XFS all use the old confusing functions, and will be fixed separately in subsequent commits (with some of them just removing the offending logic, and others using clear_page_dirty_for_io()). This was confirmed by Martin Michlmayr to fix the apt database corruption on ARM. Cc: Martin Michlmayr Cc: Peter Zijlstra Cc: Hugh Dickins Cc: Nick Piggin Cc: Arjan van de Ven Cc: Andrei Popa Cc: Andrew Morton Cc: Dave Kleikamp Cc: Gordon Farquharson Cc: Martin Schwidefsky Cc: Trond Myklebust Signed-off-by: Linus Torvalds commit 46d2277c796f9f4937bfa668c40b2e3f43e93dd0 Author: Linus Torvalds Date: Tue Dec 19 15:21:59 2006 -0800 Clean up and make try_to_free_buffers() not race with dirty pages This is preparatory work in our continuing saga on some hard-to-trigger file corruption with shared writable mmap() after the dirty page tracking changes (commit d08b3851da41d0ee60851f2c75b118e1f7a5fc89 etc) were merged. Signed-off-by: Linus Torvalds commit 9bfb18392ef586467277fa25d8f3a7a93611f6df Author: Ingo Molnar Date: Mon Dec 18 20:05:09 2006 +0100 [PATCH] workqueue: fix schedule_on_each_cpu() fix the schedule_on_each_cpu() implementation: __queue_work() is now stricter, hence set the work-pending bit before passing in the new work. (found in the -rt tree, using Peter Zijlstra's files-lock scalability patchset) Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds commit 5ccac88eeb5659c716af8e695e2943509c80d172 Author: Al Viro Date: Mon Dec 18 13:31:18 2006 +0000 [PATCH] fix leaks on pipe(2) failure exits Signed-off-by: Al Viro Signed-off-by: Linus Torvalds commit bc947631d1d532c758f8fcbdeb1f7fc2f4c863f8 Author: Peter Williams Date: Tue Dec 19 12:48:50 2006 +1000 [PATCH] sched: improve efficiency of sched_fork() Problem: sched_fork() has always called scheduler_tick() in some (unlikely) circumstances in order to update the current task in light of those circumstances. It has always been the case that the work done by scheduler_tick() was more than was required to handle the problem in hand but no harm was done except for the waste of a few CPU cycles. However, the splitting of scheduler_tick() into two procedures in 2.6.20-rc1 enables the wasted cycles to be saved as the new procedure task_running_tick() does all the work that is required to rectify the problem being handled. Solution: Replace the call to scheduler_tick() in sched_fork() with a call to task_running_tick(). Signed-off-by: Peter Williams Acked-by: Ingo Molnar Signed-off-by: Linus Torvalds commit 136f1e7a8cb7d17ff91706518549697071640ae4 Author: Ingo Molnar Date: Wed Dec 20 11:53:32 2006 +0100 [PATCH] x86_64: fix boot time hang in detect_calgary() if CONFIG_CALGARY_IOMMU is built into the kernel via CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT, or is enabled via the iommu=calgary boot option, then the detect_calgary() function runs to detect the presence of a Calgary IOMMU. detect_calgary() first searches the BIOS EBDA area for a "rio_table_hdr" BIOS table. It has this parsing algorithm for the EBDA: while (offset) { ... /* The next offset is stored in the 1st word. 0 means no more */ offset = *((unsigned short *)(ptr + offset)); } got that? Lets repeat it slowly: we've got a BIOS-supplied data structure, plus Linux kernel code that will only break out of an infinite parsing loop once the BIOS gives a zero offset. Ok? Translation: what an excellent opportunity for BIOS writers to lock up the Linux boot process in an utterly hard to debug place! Indeed the BIOS jumped on that opportunity on my box, which has the following EBDA chaining layout: 384, 65282, 65535, 65535, 65535, 65535, 65535, 65535 ... see the pattern? So my, definitely non-Calgary system happily locks up in detect_calgary()! the patch below fixes the boot hang by trusting the BIOS-supplied data structure a bit less: the parser always has to make forward progress, and if it doesnt, we break out of the loop and i get the expected kernel message: Calgary: Unable to locate Rio Grande Table in EBDA - bailing! Signed-off-by: Ingo Molnar Acked-by: Muli Ben-Yehuda Signed-off-by: Linus Torvalds commit a9622f6219ce58faba1417743bf3078501eb3434 Author: Ingo Molnar Date: Wed Dec 20 11:28:46 2006 +0100 [PATCH] x86_64: fix boot hang caused by CALGARY_IOMMU_ENABLED_BY_DEFAULT one of my boxes didnt boot the 2.6.20-rc1-rt0 kernel rpm, it hung during early bootup. After an hour or two of happy debugging i narrowed it down to the CALGARY_IOMMU_ENABLED_BY_DEFAULT option, which was freshly added to 2.6.20 via the x86_64 tree and /enabled by default/. commit bff6547bb6a4e82c399d74e7fba78b12d2f162ed claims: [PATCH] Calgary: allow compiling Calgary in but not using it by default This patch makes it possible to compile Calgary in but not use it by default. In this mode, use 'iommu=calgary' to activate it. but the change does not actually practice it: config CALGARY_IOMMU_ENABLED_BY_DEFAULT bool "Should Calgary be enabled by default?" default y depends on CALGARY_IOMMU help Should Calgary be enabled by default? if you choose 'y', Calgary will be used (if it exists). If you choose 'n', Calgary will not be used even if it exists. If you choose 'n' and would like to use Calgary anyway, pass 'iommu=calgary' on the kernel command line. If unsure, say Y. it's both 'default y', and says "If unsure, say Y". Clearly not a typo. disabling this option makes my box boot again. The patch below fixes the Kconfig entry. Grumble. Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds commit b039db8eeab0b3cee66dcf9820526dd9cfb04f6b Author: Geert Uytterhoeven Date: Wed Dec 20 15:59:48 2006 +0100 [PATCH] __set_irq_handler bogus space __set_irq_handler: Kill a bogus space Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds commit 36bcbec7ce21e2e8b3143b11a05747330abeca70 Author: Burman Yan Date: Tue Dec 19 12:56:11 2006 -0800 ACPI: replace kmalloc+memset with kzalloc Signed-off-by: Andrew Morton Signed-off-by: Len Brown commit c3052905033f8785bcb2c71d5ce40b84259e3a80 Author: Greg Kroah-Hartman Date: Wed Dec 20 11:46:03 2006 -0800 USB Storage: remove duplicate Nokia entry in unusual_devs.h How many times are we going to merge this entry... Signed-off-by: Greg Kroah-Hartman commit 850a9d8a8bbeeba8263025a983d1c18e5e250f5d Author: Jeff Garzik Date: Wed Dec 20 14:37:04 2006 -0500 [libata] sata_svw, sata_vsc: kill iomem warnings Now that iomap merge is close to reality, and since the warnings and issue have been around so long, we don't need a reminder on every build that libata needs to be converted over to iomap. Signed-off-by: Jeff Garzik commit 71c83515f23b8f9c36abb4ceb37f2d911565942b Author: Olivier Galibert Date: Tue Dec 19 13:15:25 2006 -0800 [PATCH] bluetooth: add support for another Kensington dongle Add the stupid sco fixup quirk to yet another Broadcom/Kensington device. Cc: Marcel Holtmann Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 11e82730ccdaf2a6c056d04b03368c5a9e7c1305 Author: Eric Smith Date: Tue Dec 19 13:15:25 2006 -0800 [PATCH] usb serial: add support for Novatel S720/U720 CDMA/EV-DO modems Add USB vendor/device IDs for Novatel Wireless S720 and U720 CDMA/EV-DO modems to airprime.c. Signed-off-by: Eric Smith Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit a5176b78974451680bd93b8954230cf1a47dee1b Author: Andrew Morton Date: Tue Dec 19 13:15:23 2006 -0800 [PATCH] USB: Nokia E70 is an unusual device Taken from http://bugzilla.kernel.org/show_bug.cgi?id=7508 When the Nokia E70 Phone is plugged in to the USB port, I get: end_request: I/O error, dev sda, sector 1824527 sd 0:0:0:0: SCSI error: return code = 0x10070000 end_request: I/O error, dev sda, sector 1824535 sd 0:0:0:0: SCSI error: return code = 0x10070000 The fix is to add these lines to drivers/usb/storage/unusual_devs.h: Cc: Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 2e5704f63ed56b040a3189f6b7eb17f6f849ea22 Author: Tejun Heo Date: Sun Dec 17 10:46:33 2006 +0900 [PATCH] libata: take scmd->cmd_len into account when translating SCSI commands libata depended on SCSI command to have the correct length when tranlating it into an ATA command. This generally worked for commands issued by SCSI HLD but user could issue arbitrary broken command using sg interface. Also, when building ATAPI command, full command size was always copied. Because some ATAPI devices needs bytes after CDB cleared, if upper layer doesn't clear bytes after CDB, such devices will malfunction. This necessiated recent clear-garbage-after-CDB fix in sg interfaces. However, scsi_execute() isn't fixed yet and HL-DT-ST DVD-RAM GSA-H30N malfunctions on initialization commands issued from SCSI. This patch makes xlat functions always consider SCSI cmd_len. Each translation function checks for proper cmd_len and ATAPI translaation clears bytes after CDB. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Douglas Gilbert Signed-off-by: Jeff Garzik commit ad706991f4f0d1476aecbdae2df5e36552b340b2 Author: Tejun Heo Date: Sun Dec 17 10:45:57 2006 +0900 [PATCH] libata: kill @cdb argument from xlat methods xlat function will be updated to consider qc->scsicmd->cmd_len and many xlat functions deference qc->scsicmd already. It doesn't make sense to pass qc->scsicmd->cmnd as @cdb separately. Kill the argument. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 542b1444c5639e5964f9aa99e1cb231381d8a7a4 Author: Tejun Heo Date: Sun Dec 17 10:45:08 2006 +0900 [PATCH] libata: clean up variable name usage in xlat related functions Variable names in xlat functions are quite confusing now. 'scsicmd' is used for CDB while qc->scsicmd points to struct scsi_cmnd while 'cmd' is used for struct scsi_cmnd. This patch cleans up variable names in xlat functions such that 'scmd' is used for struct scsi_cmnd and 'cdb' for CDB. Also, 'scmd' local variable is added if qc->scsicmd is used multiple times. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 6fbf5ba461f5bd36e921627568aca20abc0e2abe Author: Peer Chen Date: Wed Dec 20 14:18:00 2006 -0500 [libata] Move some PCI IDs from sata_nv to ahci The content of memory map io of BAR5 have been change from MCP65 then sata_nv can't work fine on the platform based on MCP65 and MCP67, so move their IDs from sata_nv.c to ahci.c. Signed-off-by: Peer Chen Signed-off-by: Jeff Garzik commit 1f21782e63da81f56401a813a52091ef2703838f Author: Adrian Bunk Date: Tue Dec 19 13:01:28 2006 -0800 Driver core: proper prototype for drivers/base/init.c:driver_init() Add a prototype for driver_init() in include/linux/device.h. Also remove a static function of the same name in drivers/acpi/ibm_acpi.c to ibm_acpi_driver_init() to fix the namespace collision. Signed-off-by: Adrian Bunk Acked-by: Henrique de Moraes Holschuh Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 542cfce6f36e8c43f71ae9c235b78497f350ae55 Author: Aneesh Kumar K.V Date: Tue Dec 19 13:01:27 2006 -0800 kobject: kobject_uevent() returns manageable value Since kobject_uevent() function does not return an integer value to indicate if its operation was completed with success or not, it is worth changing it in order to report a proper status (success or error) instead of returning void. [randy.dunlap@oracle.com: Fix inline kobject functions] Cc: Mauricio Lin Signed-off-by: Aneesh Kumar K.V Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit f334b60b43a0927f4ab1187cbdb4582f5227c3b1 Author: Venkatesh Pallipadi Date: Tue Dec 19 13:01:29 2006 -0800 kref refcnt and false positives With WARN_ON addition to kobject_init() [ http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19/2.6.19-mm1/dont-use/broken-out/gregkh-driver-kobject-warn.patch ] I started seeing following WARNING on CPU offline followed by online on my x86_64 system. WARNING at lib/kobject.c:172 kobject_init() Call Trace: [] dump_trace+0xaa/0x3ef [] show_trace+0x3a/0x50 [] dump_stack+0x15/0x17 [] kobject_init+0x3f/0x8a [] kobject_register+0x1a/0x3e [] sysdev_register+0x5b/0xf9 [] mce_create_device+0x77/0xf4 [] mce_cpu_callback+0x3a/0xe5 [] notifier_call_chain+0x26/0x3b [] raw_notifier_call_chain+0x9/0xb [] _cpu_up+0xb4/0xdc [] cpu_up+0x2b/0x42 [] store_online+0x4a/0x72 [] sysdev_store+0x24/0x26 [] sysfs_write_file+0xcf/0xfc [] vfs_write+0xae/0x154 [] sys_write+0x47/0x6f [] system_call+0x7e/0x83 DWARF2 unwinder stuck at system_call+0x7e/0x83 Leftover inexact backtrace: This is a false positive as mce.c is unregistering/registering sysfs interfaces cleanly on hotplug. kref_put() and conditional decrement of refcnt seems to be the root cause for this and the patch below resolves the issue for me. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 031f30d2bc69f78cf542c0e5874a9d67c03d0ffe Author: Kristen Carlson Accardi Date: Sat Dec 16 15:26:04 2006 -0800 acpiphp: Link-time error for PCI Hotplug I'm seeing: `acpiphp_glue_exit' referenced in section `.init.text' of drivers/built-in.o: defined in discarded section `.exit.text' of drivers/built-in.o when trying to compile an IA64 kernel with PCI hotplug enabled. I suggest this patch: Signed-off-by: Peter Chubb Signed-off-by: Kristen Carlson Accardi Signed-off-by: Greg Kroah-Hartman commit 8352e04eb427db0ca8ebb9a8547971d433627cad Author: Kenji Kaneshige Date: Sat Dec 16 15:25:57 2006 -0800 shpchp: cleanup shpchp.h This patch cleans up shpchp.h. Signed-off-by: Kenji Kaneshige Signed-off-by: Kristen Carlson Accardi Signed-off-by: Greg Kroah-Hartman commit 6f39be2e05cc6e66481f1395264297f06bef1e21 Author: Kenji Kaneshige Date: Sat Dec 16 15:25:49 2006 -0800 shpchp: remove shpchprm_get_physical_slot_number This patch removes unnecessary shpchprm_get_physical_slot_number() function. Signed-off-by: Kenji Kaneshige Signed-off-by: Kristen Carlson Accardi Signed-off-by: Greg Kroah-Hartman commit 227b84c77f5fb3a3b01e5dee1a2928cafc5fd216 Author: Kenji Kaneshige Date: Sat Dec 16 15:25:42 2006 -0800 shpchp: cleanup struct controller This patch removes unused/unnecessary members from struct controller. Signed-off-by: Kenji Kaneshige Signed-off-by: Kristen Carlson Accardi Signed-off-by: Greg Kroah-Hartman commit 0abe68ce24973a23fcc6cbce80343f68656de7b6 Author: Kenji Kaneshige Date: Sat Dec 16 15:25:34 2006 -0800 shpchp: remove unnecessary struct php_ctlr The struct php_ctlr seems to be only for complicating codes. This patch removes struct php_ctlr and related codes. Signed-off-by: Kenji Kaneshige Signed-off-by: Kristen Carlson Accardi Signed-off-by: Greg Kroah-Hartman commit ab17443a3df35abe4b7529e83511a591aa7384f3 Author: Conke Hu Date: Tue Dec 19 13:11:37 2006 -0800 PCI: ATI sb600 sata quirk Acked-by: Jeff Garzik Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit fb0f2b40faff41f03acaa2ee6e6231fc96ca497c Author: Ralf Baechle Date: Tue Dec 19 13:12:08 2006 -0800 PCI legacy resource fix Since commit 368c73d4f689dae0807d0a2aa74c61fd2b9b075f the kernel will try to update the non-writeable BAR registers 0..3 of PIIX4 IDE adapters if pci_assign_unassigned_resources() is used to do full resource assignment of the bus. This fails because in the PIIX4 these BAR registers have implicitly assumed values and read back as zero; it used to work because the kernel used to just write zero to that register the read back value did match what was written. The fix is a new resource flag IORESOURCE_PCI_FIXED used to mark a resource as non-movable. This will also be useful to keep other import system resources from being moved around - for example system consoles on PCI busses. [akpm@osdl.org: cleanup] Signed-off-by: Ralf Baechle Acked-by: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 7e7a43c32a8970ea2bfc3d1af353dcb1a9237769 Author: Adrian Bunk Date: Tue Dec 19 13:12:07 2006 -0800 PCI: don't export device IDs to userspace I don't see any good reason for exporting device IDs to userspace. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 9ac0ce8596b17093739d42721cc8a616cedf734b Author: Jesper Juhl Date: Mon Dec 4 15:14:48 2006 -0800 PCI: Be a bit defensive in quirk_nvidia_ck804() so we don't risk dereferencing a NULL pdev. pci_get_slot() may return NULL if nothing was found. quirk_nvidia_ck804() does not check the value returned from pci_get_slot(), so it may end up causing a NULL pointer deref. Signed-off-by: Jesper Juhl Acked-by: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 1597cacbe39802d86656d1f2e6329895bd2ef531 Author: Alan Cox Date: Mon Dec 4 15:14:45 2006 -0800 PCI: Fix multiple problems with VIA hardware This patch is designed to fix: - Disk eating corruptor on KT7 after resume from RAM - VIA IRQ handling - VIA fixups for bus lockups after resume from RAM The core of this is to add a table of resume fixups run at resume time. We need to do this for a variety of boards and features, but particularly we need to do this to get various critical VIA fixups done on resume. The second part of the problem is to handle VIA IRQ number rules which are a bit odd and need special handling for PIC interrupts. Various patches broke various boxes and while this one may not be perfect (hopefully it is) it ensures the workaround is applied to the right devices only. From: Jean Delvare Now that PCI quirks are replayed on software resume, we can safely re-enable the Asus SMBus unhiding quirk even when software suspend support is enabled. [akpm@osdl.org: fix const warning] Signed-off-by: Alan Cox Cc: Jean Delvare Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit beb7cc8238a8334d86c96bf32bf66182db3b619f Author: Michael Ellerman Date: Wed Nov 22 18:26:22 2006 +1100 PCI: Only check the HT capability bits in mpic.c Only compare the exact HT capability bits against HT_CAPTYPE_IRQ, this is a little paranoid, but doesn't hurt. Signed-off-by: Michael Ellerman Signed-off-by: Greg Kroah-Hartman commit 7a380507c48f7894bae7d367375313df9d51b2e5 Author: Michael Ellerman Date: Wed Nov 22 18:26:21 2006 +1100 PCI: Use pci_find_ht_capability() in drivers/pci/quirks.c Use pci_find_ht_capability() in drivers/pci/quirks.c. I'm pretty sure the logic is unchanged here, but someone please eye-ball it for me. I've changed the message to be a little shorter, it's now: PCI: Found (enabled|disabled) HT MSI mapping on xxxx:xx:xx.x Signed-off-by: Michael Ellerman Signed-off-by: Greg Kroah-Hartman commit d010b51c7ea9c28e30a476032615941aa77b1498 Author: Michael Ellerman Date: Wed Nov 22 18:26:20 2006 +1100 PCI: Add #defines for Hypertransport MSI fields Add a few #defines for grabbing and working with the address fields in a HT_CAPTYPE_MSI_MAPPING capability. All from the HT spec v3.00. Signed-off-by: Michael Ellerman Signed-off-by: Greg Kroah-Hartman commit 120a50df4536da69d2e85633a60bc40a85088dd1 Author: Michael Ellerman Date: Wed Nov 22 18:26:19 2006 +1100 PCI: Use pci_find_ht_capability() in drivers/pci/htirq.c Use pci_find_ht_capability() in drivers/pci/htirq.c Signed-off-by: Michael Ellerman Signed-off-by: Greg Kroah-Hartman commit 687d5fe3dc33794efb500f42164a0588e2647914 Author: Michael Ellerman Date: Wed Nov 22 18:26:18 2006 +1100 PCI: Add pci_find_ht_capability() for finding Hypertransport capabilities There are already several places in the kernel that want to search a PCI device for a given Hypertransport capability. Although this is possible using pci_find_capability() etc., it makes sense to encapsulate that logic in a helper - pci_find_ht_capability(). To cater for searching exhaustively for a capability, we also provide pci_find_next_ht_capability(). We also need to cater for the fact that the HT capability fields may be either 3 or 5 bits wide. pci_find_ht_capability() deals with this for you, but callers using the #defines directly must handle that themselves. Signed-off-by: Michael Ellerman Signed-off-by: Greg Kroah-Hartman commit d3bac118fb27a365d5e9f54f4a078eb9b42f968f Author: Michael Ellerman Date: Wed Nov 22 18:26:16 2006 +1100 PCI: Create __pci_bus_find_cap_start() from __pci_bus_find_cap() The current implementation of __pci_bus_find_cap() does two things, first it determines the start of the capability chain for the device, and then it trys to find the requested capability. Split these out, so that we can use the two parts independantly in a subsequent patch. Externally visible behaviour should be unchanged. Signed-off-by: Michael Ellerman Signed-off-by: Greg Kroah-Hartman commit d86f90f9913d27bb968132bf63499c56bca56db6 Author: Alan Cox Date: Mon Dec 4 15:14:44 2006 -0800 pci: Introduce pci_find_present This works like pci_dev_present but instead of returning boolean returns the matching pci_device_id entry. This makes it much more useful. Code bloat is basically nil as the old boolean function is rewritten in terms of the new one. This will be used by the updated VIA PCI quirks for one Signed-off-by: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 83e42bcdd3be31a0df8b1a8d2d3fa1a65e43815c Author: Kenji Kaneshige Date: Wed Dec 6 22:07:30 2006 +0900 PCI: pcieport-driver: remove invalid warning message The following warning message should not be displayed for devices which don't use an interrupt pin. pcie_portdrv_probe->Dev[XXXX:XXXX] has invalid IRQ. Check vendor BIOS Signed-off-by: Kenji Kaneshige Signed-off-by: Greg Kroah-Hartman commit f1e79092d9a59e2b1c8eae3b0f4ef3827dda08a0 Author: Linas Vepstas Date: Fri Dec 1 16:31:27 2006 -0800 rpaphp: compiler warning cleanup This janitorial patch removes the following annoying compile-time message: drivers/pci/hotplug/rpaphp_slot.c:57: warning: ignoring return value of sfs_create_file declared with attribute warn_unused_result It also fixes a typo, removes some misc crud. Signed-off-by: Linas Vepstas Cc: John Rose Signed-off-by: Kristen Carlson Accardi Signed-off-by: Greg Kroah-Hartman commit 0c875c28649eac0adb8d2e2efac2186c3089e100 Author: David Rientjes Date: Sun Dec 3 11:55:34 2006 -0800 PCI quirks: remove redundant check Removes redundant check for dev->subordinate; if it is NULL, the function returns before the patch-affected code region. Signed-off-by: David Rientjes Acked-by: Brice Goglin Signed-off-by: Greg Kroah-Hartman commit 42a0ee3238a0adb4c5bea3bd5b201c297b476e66 Author: Inaky Perez-Gonzalez Date: Thu Nov 30 15:58:58 2006 -0800 pci: add class codes for Wireless RF controllers pci: add class codes for Wireless RF controllers Add PCI codes to include/linux/pci_ids.h for RF controllers; first batch of these devices seem to be the Ultra-Wide-Band and Wireless USB controllers (WHCI spec). Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 7461b60afa62b26943e97861d87b9f9a32d7fd9c Author: Russell King Date: Wed Nov 29 21:18:04 2006 +0000 PCI: use /sys/bus/pci/drivers//new_id first Unfortunately, the .../new_id feature does not work with the 8250_pci driver. The reason for this comes down to the way .../new_id is implemented. When PCI tries to match a driver to a device, it checks the modules static device ID tables _before_ checking the dynamic new_id tables. When a driver is capable of matching by ID, and falls back to matching by class (as 8250_pci does), this makes it absolutely impossible to specify a board by ID, and as such the correct driver_data value to use with it. Let's say you have a serial board with vendor 0x1234 and device 0x5678. It's class is set to PCI_CLASS_COMMUNICATION_SERIAL. On boot, this card is matched to the 8250_pci driver, which tries to probe it because it matched using the class entry. The driver finds that it is unable to automatically detect the correct settings to use, so it returns -ENODEV. You know that the information the driver needs is to match this card using a device_data value of '7'. So you echo 1234 5678 0 0 0 0 7 into new_id. The kernel attempts to re-bind 8250_pci to this device. However, because it scans the PCI driver tables, it _again_ matches the class entry which has the wrong device_data. It fails. End of story. You can't support the card without rebuilding the kernel (or writing a specific PCI probe module to support it.) So, can we make new_id override the driver-internal PCI ID tables? IOW, like this: From: Russell King Signed-off-by: Greg Kroah-Hartman commit df251b8bfcc5879b947223746779f90018424a6d Author: Chris Frey Date: Sat Dec 16 02:37:42 2006 -0500 USB: fix to usbfs_snoop logging of user defined control urbs When sending CONTROL URB's using the usual CONTROL ioctl, logging works fine, but when sending them via SUBMITURB, like VMWare does, the control fields are not logged. This patch fixes that. I didn't see any major changes to devio.c recently, so this patch should apply cleanly to even the latest kernel. I can resubmit if it doesn't. From: Chris Frey Signed-off-by: Greg Kroah-Hartman commit bfb7fb79e913f60330037d1f302efee28d5f6770 Author: Wojtek Kaniewski Date: Fri Dec 8 03:26:00 2006 -0800 USB: at91_udc: Additional checks This patch performs additional checks in at91_udc, just in case of some spurious interrupts or device enumeration. Signed-off-by: Wojtek Kaniewski Acked-by: David Brownell Cc: Andrew Victor Signed-off-by: Greg Kroah-Hartman commit 943c441948581bd01ab196a4d32da88bfa0f13ce Author: Wojtek Kaniewski Date: Fri Dec 8 03:23:00 2006 -0800 USB: at91_udc: Cleanup variables after failure in usb_gadget_register_driver() This patch zeroes some variables when usb_gadget_register_driver() fails. gadgetfs does a dummy registration to get the name of the USB driver and then waits for user-land driver. If someone plugs the cable in the meantime, bad things happen, because at91_udc has been left in inconsistent state. Signed-off-by: Wojtek Kaniewski Acked-by: David Brownell Cc: Andrew Victor Signed-off-by: Greg Kroah-Hartman commit bc92c32aa21cf2e8808f8cff0be0a2a653652e92 Author: Wojtek Kaniewski Date: Fri Dec 8 09:39:36 2006 -0800 USB: at91_udc: allow drivers that support high speed This patch allows gadget drivers that support high speed (e.g. gadgetfs) to work properly with at91_udc. Fix suggested by Milan Svoboda in http://marc.theaimsgroup.com/?l=linux-usb-devel&m=115822184711817 Signed-off-by: Wojtek Kaniewski Acked-by: David Brownell Cc: Andrew Victor Signed-off-by: Greg Kroah-Hartman commit 4b87361d49c04894458f4d4e80f9669abc894ae1 Author: Tony Olech Date: Wed Dec 6 13:16:22 2006 +0000 USB: u132-hcd/ftdi-elan: add support for Option GT 3G Quad card ELAN's U132 is a USB to CardBus OHCI controller adapter, designed specifically for CardBus 3G data cards to function in machines without a CardBus slot. The "ftdi-elan" module is a USB client driver, that detects a supported CardBus OHCI controller plugged into the U132 adapter and thereafter provides the conduit for for access by the "u132-hcd" module. The "u132-hcd" module is a (cut-down OHCI) host controller that supports a single OHCI function of the CardBus card inserted into the U132 adapter. The problem with the initial implementation is that when the CardBus card inserted into the U132 adapter has multiple functions (and a CardBus card can support up to 4 functions), it was the first function that was arbitrarily choosen. The first batch of 3G cards tested, like the Merlin Qualcomm V620, have two functions each supporting a seperate USB OHCI host controller, of which it was that first function that is wired up to the 3G modem. Then along comes the Vodafone Mobile Connect 3G/GPRS data card, aka "Option GT 3G Quad" as printed on it's rear or "Option N.V. GlobeTrotter Fusion Quad Lite" as read with "lspci -v". And it has the meaningful functionality in the second CardBus function. That presents a problem because it was the "ftdi-elan" module alone that knows how to communicate to the embedded CardBus slot and the "u132-hcd" module alone that knows how to access the pcmcia configuration and CardBus accessible memory space. And of course, the information about attached (internally hardwired) devices is contained within USB configuration embedded somewhere within the CardBus card. If only the "u132-hcd" module probe() interface could return a result code that propagated back to the instigating function platform_device_register() then the "ftdi-elan" module could try an alternative CardBus function. However in spite of the recent changes to the drivers/base/ routines that moved device_attach() from bus_add_device() to bus_attach_device() both of those routines lose the "failed to attach" 0 result code and thus the calling routine, namely device_add() is incapable of propaging the "failed to attach" condition back to platform_device_add() and consequently back to the caller of platform_device_register() Experiments show that patching bus_attach_device() to return ENODEV fails with the kernel locking up very early during boot. But, however, if the patch is restricted to calls from platform_device_add() then it does seem to work. Unfortunately, until the kernel's drivers/base is properly modified to propagate -ENODEV back to the caller of platform_device_register(), it is necessary to "fix" the "ftdi-elan" module by importing knowledge from the "u132-hcd" module. This is the reason for the duplicated functionality introduced in this patch. Signed-off-by: Tony Olech Signed-off-by: Greg Kroah-Hartman commit 29ba4b533b677f3cd7f2fc901d51054555a8f243 Author: Andrew Victor Date: Thu Dec 7 22:44:38 2006 -0800 USB: at91_udc, misc fixes This is an update to the AT91 USB Device (Gadget) driver. Adds support for the Atmel AT91SAM9260 and AT91SAM9261 processors. The only difference is how they handle the pullup pin. [Patch from Patrice Vilchez] Need to clear any pending USB Device interrupts before registering the interrupt handler. The bootloader might have been using the USB Device port. [Patch from Peer Georgi] VBUS detection is handled by a GPIO interrupt which only triggers on a change. Is is therefore necessary to read the current VBUS state explicitly at startup. [Patch from Peer Georgi] Signed-off-by: Andrew Victor Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit ffd3326bf6282b9f606e92ae57e8f47f2e10e6b5 Author: Andrew Victor Date: Thu Dec 7 22:44:33 2006 -0800 USB: at91 udc, support at91sam926x addresses This is an update to the AT91 USB Device (Gadget) driver. The base I/O address provided in the platform_device resources is now ioremap()'ed instead of using a statically mapped memory area. This helps portability to the newer AT91sam926x processors. The major change is that we now have to pass a 'struct at91_udc' parameter to at91_udp_read() and at91_udp_write(). Signed-off-by: Andrew Victor Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit 5151d04068e37e710d2cc3962351ca0979fc5ad1 Author: Vitaly Wool Date: Mon Oct 9 01:32:00 2006 -0700 USB: OHCI support for PNX8550 OHCI HCD (Host Controller Driver) for USB. Bus Glue for PNX8550. Signed-off-by: Vitaly Wool Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit 23d10a9e376d6a9cd4afd4e27e5e403864f6729b Author: Takamasa Ohtake Date: Wed Dec 6 17:04:15 2006 -0800 USB: ohci handles hardware faults during root port resets I have found a problem where the root_port_reset() goes into an infinite loop and stalls the kernel. This happens when a hardware fault inside the machine occurs during a small timing window. In case of USB device connection, if a USB device responds to hcd_submit_urb(), and later the controller fails before root_port_reset(), root_port_reset() will loop infinitely because ohci_readl() will always return "-1". Such a failure can include ejecting a CardBus OHCI controller. The probability of this problem is low, but it will increase if PnP type usage is frequent. The attached patch can solve this problem and I believe that it is better to fix this problem. Signed-off-by: Takamasa Ohtake Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit ee269d98a9248fbb729c20ffda0f1b97e82c5c37 Author: Andrew Victor Date: Tue Dec 5 03:20:31 2006 -0800 USB: ohci at91 warning fix Remove a warning about an unused variable in the OHCI bus glue for at91. Signed-off-by: Andrew Victor Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit dd9048af41d017f5f9ea18fb451a3b5dc89d6b83 Author: David Brownell Date: Tue Dec 5 03:18:31 2006 -0800 USB: ohci whitespace/comment fixups This is an OHCI cleanup patch ... it removes a lot of erroneous whitespace (space before tab, at end of line) as well as the obsolete inline changelog. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit 23d8c90e5691992a09ab113be2c1a81271b6d0d8 Author: David Brownell Date: Tue Dec 5 03:10:08 2006 -0800 USB: MAINTAINERS update, EHCI and OHCI Update maintainer records for two USB host controller drivers. I'm the main point of contact for both EHCI and OHCI, although I don't have much time for them any more. Roman hasn't submitted OHCI patches for years. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit 6bea476cf628eb7bb18a036ac6a8fed1ad319951 Author: David Brownell Date: Tue Dec 5 03:15:33 2006 -0800 USB: gadget driver unbind() is optional; section fixes; misc Allow gadget drivers to omit the unbind() method. When they're statically linked, that's an appropriate memory saving tweak. Similarly, provide consistent/simpler handling for a should-not-happen error case: removing a peripheral controller driver when a gadget driver is still loaded. Such code dates back to early versions of the first implementation of the gadget API, and has never been triggered. Includes relevant section annotation fixs for gmidi.c, file_storage.c, and serial.c; we don't yet have an "init or exit" annotation. Also some whitespace fixes in gmidi.c (space at EOL, before tabs, etc). Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit 5f8364b7d63acdc2216ca0f7d0a8557c318479ea Author: Alan Stern Date: Tue Dec 5 16:29:55 2006 -0500 UHCI: module parameter to ignore overcurrent changes Certain boards seem to like to issue false overcurrent notifications, for example on ports that don't have anything connected to them. This looks like a hardware error, at the level of noise to those ports' overcurrent input signals (or non-debounced VBUS comparators). This surfaces to users as truly massive amounts of syslog spam from khubd (which is appropriate for real hardware problems, except for the volume from multiple ports). Using this new "ignore_oc" flag helps such systems work more sanely, by preventing such indications from getting to khubd (and spamming syslog). The downside is of course that true overcurrent errors will be masked; they'll appear as spontaneous disconnects, without the diagnostics that will let users troubleshoot issues like short-circuited cables. In addition, controllers with no devices attached will be forced to poll for new devices rather than relying on interrupts, since each overcurrent event would generate a new interrupt. This patch (as826) is essentially a copy of David Brownell's ignore_oc patch for ehci-hcd, ported to uhci-hcd. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit fe1ec341df1b510e5e614ccdad4a89273d6f6fe8 Author: Andrew Morton Date: Mon Dec 4 15:22:40 2006 -0800 USB: Nokia E70 is an unusual device Taken from http://bugzilla.kernel.org/show_bug.cgi?id=7508 When the Nokia E70 Phone is plugged in to the USB port, I get: end_request: I/O error, dev sda, sector 1824527 sd 0:0:0:0: SCSI error: return code = 0x10070000 end_request: I/O error, dev sda, sector 1824535 sd 0:0:0:0: SCSI error: return code = 0x10070000 The fix is to add these lines to drivers/usb/storage/unusual_devs.h: Cc: Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 66eb2e93b99b79bd3d55ecea2098a8369c1ded0d Author: Burman Yan Date: Mon Dec 4 15:22:40 2006 -0800 USB AUERSWALD: replace kmalloc+memset with kzalloc Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 071e0a2aee9c289f50b9329d0c26474ca94f7c7a Author: Ping Cheng Date: Tue Dec 5 17:09:51 2006 -0800 USB: fix Wacom Intuos3 4x6 bugs Fixes Intuos3 4x6 bugs Signed-off-by: Ping Cheng Signed-off-by: Greg Kroah-Hartman commit ab1958905514da3b6c06d61523ebed142a16cc72 Author: Johann Wilhelm Date: Sat Dec 2 07:25:31 2006 +0100 usb-gsm-driver: Added VendorId and ProductId for Huawei E220 USB Modem Added VendorId and ProductId for Huawei E220 USB Modem Signed-off-by: Johann Wilhelm Signed-off-by: Greg Kroah-Hartman commit 16c76865df40357027479b6d85f59a07f8d01c8d Author: Johann Wilhelm Date: Sat Dec 2 07:16:32 2006 +0100 usb-storage: Ignore the virtual cd-drive of the Huawei E220 USB Modem This prevents the kernel from detecting the virtual cd-drive with the Windows drivers. Signed-off-by: Johann Wilhelm Signed-off-by: Greg Kroah-Hartman commit 5859271ebd6c60d7d946bbbb6b485e164c6c614a Author: Petko Manolov Date: Mon Dec 4 14:27:36 2006 +0200 USB: rtl8150 new device id This one adds another vendor ID to rtl8150 driver. Please apply. Signed-off-by: Petko Manolov Signed-off-by: Greg Kroah-Hartman commit abc9404bb0bcfa8677ab5978b2c8b60ab5ef7536 Author: Jeff Garzik Date: Sun Dec 3 20:53:58 2006 -0500 USB: fix ohci.h over-use warnings When u132-hcd is built, it includes local header ohci.h, which appears to have been intended only for use by ohci-hcd. This throws warnings about functions which are defined and not used. The warnings thrown are because three small functions are implemented in the header, but not declared 'inline', a rather strange affair. Since these functions are small, let's go ahead and define them as 'inline', just like the inline functions surrounding them. This makes things more consistent, and kills the warnings. Signed-off-by: Jeff Garzik Signed-off-by: Greg Kroah-Hartman commit c2585d962572744271a7e254d48c747727441936 Author: David Clare Date: Fri Dec 1 18:24:38 2006 -0800 USB: Prevent the funsoft serial device from entering raw mode Added a device specific ioctl function to prevent the disabling of canonical mode. EINVAL is returned for any TCSETSF ioctl that doesn't have ICANON set. This patch is for 2.6.17 or later kernels. When "hwinfo --modem" is executed it opens the funsoft USB serial device and disables canonical mode. The device is kept this way until hwininfo has finished probing any modems on a system. The funsoft device expects to be running in canonical mode. Switching the device to raw mode can cause incomplete data packets and device timeouts. Signed-off-by: David Clare Signed-off-by: Greg Kroah-Hartman commit e05998d50d0bf9de5409a178e2f9869c7d1ea83e Author: Johannes Hoelzl Date: Sat Dec 2 16:54:27 2006 +0100 Add Baltech Reader ID to CP2101 driver this patch adds the Baltech Reader ID to the list of USB IDs in the CP2101 driver. From: Johannes Hoelzl Signed-off-by: Greg Kroah-Hartman commit 8e42266965b9db03a86d2cf55400cd3afb67a114 Author: Oliver Neukum Date: Sun Dec 3 09:46:35 2006 +0100 USB: mutexification of usblp this patch: - converts usblp fully to mutex - makes sleeping interruptible where EINTR can be returned anyway Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit b1cff285ae8d21012ad3717e412b0f50066dc061 Author: Alan Date: Mon Dec 4 16:43:01 2006 +0000 usb serial: Eliminate bogus ioctl code Several drivers have bogus ioctl code that tries unneccessarily to override the standard processing. In the three cases here the actual code is not only wrong but also not required as they implement the proper set_termios method as well. Remove the junk. Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 337445313ffb7a7e97f408500c7448044d54f921 Author: Oliver Neukum Date: Mon Nov 27 18:41:30 2006 +0100 USB: removing ifdefed code from gl620a as David has objected to the patch against the gl620a driver, here's a patch implementing David' suggestion of removing the incomplete ifdefed code from the gl620a driver. Signed-off-by: Oliver Neukum Signed-off-by: David Brownell commit ec434e9b43c7d41bd6962b79f5374be5ca2ebe2d Author: Jan Capek Date: Tue Nov 28 22:35:12 2006 +0100 USB: ftdi_sio - MachX product ID added below is a patch for the ftdi_sio driver to include a new device ID for CCS MachX PIC programmer. From: Jan Capek Signed-off-by: Greg Kroah-Hartman commit 87f28bde949125901494f50e4b4a5b609a20a120 Author: Eagle Jones Date: Fri Nov 24 16:40:04 2006 -0800 USB: airprime: add device id for dell wireless 5500 hsdpa card Added the device id (0x413c, 0x8115) for the Dell wireless HSDPA 5500, which is a rebranded Novatel EU730. Signed-off-by: Eagle Jones Signed-off-by: Greg Kroah-Hartman commit 96ca014d53d2c2f9d3b32fe6f2f003e660c3bc63 Author: Oliver Neukum Date: Fri Nov 24 12:55:59 2006 +0100 USB: fix transvibrator disconnect race in disconnect you set the interface's private data to NULL. In your IO methods you unconditionally follow the pointer into never never land. Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 6a7255e1df3cf8f89c2c0c6eeea866c6bb17cfb9 Author: Sean Young Date: Wed Dec 6 20:27:32 2006 +0000 USB: Fix oops in PhidgetServo The PhidgetServo causes an Oops when any of its sysfs attributes are read or written too, making the driver useless. Signed-off-by: Sean Young Signed-off-by: Greg Kroah-Hartman commit 73720861d211e2b23c3026c6adea6f758676c46f Author: Andrew Morton Date: Wed Dec 20 13:09:10 2006 -0500 [libata] pata_via: suspend/resume support fix Make this array static so it doesn't have to be built at runtime. Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik commit 0153260a1e4379e70d224a7bfdf2b5c5c9b43e94 Author: Andrew Morton Date: Wed Dec 20 13:03:11 2006 -0500 [libata] pata_cs5530: suspend/resume support tweak side-effectful-expression-within-assert give me the creeps. Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik commit 126ec9a676f601818dc3a85af0552b146410d888 Author: Jens Axboe Date: Wed Dec 20 11:06:15 2006 +0100 [PATCH] block: document io scheduler allow_merge_fn hook Signed-off-by: Jens Axboe commit da775265021b61d5eb81df155e36cb0810f6df53 Author: Jens Axboe Date: Wed Dec 20 11:04:12 2006 +0100 [PATCH] cfq-iosched: don't allow sync merges across queues Currently we allow any merge, even if the io originates from different processes. This can cause really bad starvation and unfairness, if those ios happen to be synchronous (reads or direct writes). So add a allow_merge hook to the io scheduler ops, so an io scheduler can help decide whether a bio/process combination may be merged with an existing request. Signed-off-by: Jens Axboe commit 7c21699e30a5c0ca4972d1b6ad22350fe63128d3 Author: Jaroslav Kysela Date: Wed Dec 20 09:11:55 2006 +0100 [ALSA] version 1.0.14rc1 Signed-off-by: Jaroslav Kysela commit f8cb2c450e7ff61abe75fabc94a4f62667a79c2b Author: James Courtier-Dutton Date: Tue Dec 12 17:05:24 2006 +0000 [ALSA] ac97: Identify CMI9761 chips. Signed-off-by: James Courtier-Dutton Signed-off-by: Jaroslav Kysela commit e8bb036a46ec4a9d748672f54a6b2d62c82b6fbd Author: James C Georgas Date: Thu Dec 7 08:10:57 2006 +0100 [ALSA] ac97_codec - trivial fix for bit update functions This patch fixes a couple of bit update functions in alsa-kernel/pci/ac97/ac97_codec.c, which could possibly corrupt bits not in the given mask. Specifically, it'll clobber unset bits in the target that are not in the mask, when the corresponding bit in the given new value is set. Signed-off-by: James C Georgas Signed-off-by: Jaroslav Kysela commit d5f6a38d9896614e2e78a82c6cb818721601c52f Author: James Courtier-Dutton Date: Sat Nov 25 19:50:11 2006 +0000 [ALSA] snd-ca0106: Fix typos. Signed-off-by: James Courtier-Dutton Signed-off-by: Jaroslav Kysela commit e4f55d8010eacb2669c2a68f195993e4563b94c8 Author: James Courtier-Dutton Date: Sat Nov 25 19:42:29 2006 +0000 [ALSA] snd-ca0106: Add new card variant. Fixed ALSA bug#2326 Signed-off-by: James Courtier-Dutton Signed-off-by: Jaroslav Kysela commit 4d361285925613516560f81f8c7fc96b89c8b1a8 Author: Akinobu Mita Date: Thu Nov 23 12:03:24 2006 +0100 [ALSA] sound: fix PCM substream list If snd_pcm_new_stream() fails to initalize a substream (if snd_pcm_substream_proc_init() returns error), snd_pcm_new_stream() immediately return without unlinking that kfree()d substram. It causes oops when snd_pcm_free() iterates the list of substream to free them by invalid reference. Signed-off-by: Akinobu Mita Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit c13893d7be4f159b359a1b7ee46b3646ecb2fe20 Author: Akinobu Mita Date: Thu Nov 23 12:02:33 2006 +0100 [ALSA] sound: initialize rawmidi substream list If snd_rawmidi_new() failed to allocate substreams for input (snd_rawmidi_alloc_substreams() failed to populate a &rmidi->streams[SNDRV_RAWMIDI_STREAM_INPUT]), it will try to free rawmidi instance by snd_rawmidi_free(). But it will cause oops because snd_rawmidi_free() tries to free both of substreams list but list for output (&rmidi->streams[SNDRV_RAWMIDI_STREAM_OUTPUT]) is not initialized yet. Signed-off-by: Akinobu Mita Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit a48bb28c167b5cad1bd4978dbb83c89252caab78 Author: Nickolay V. Shmyrev Date: Tue Nov 21 18:56:37 2006 +0100 [ALSA] snd_hda_intel 3stack mode for ASUS P5P-L2 I have ASUS P5PL2 motherboard and it's embedded sound card requires the following patch which sets '3stack' model to operate properly: 00:1b.0 0403: 8086:27d8 (rev 01) Subsystem: 1043:817f Flags: bus master, fast devsel, latency 0, IRQ 177 Memory at dfdf8000 (64-bit, non-prefetchable) [size=16K] Capabilities: [50] Power Management version 2 Capabilities: [60] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable- Capabilities: [70] Express Unknown type IRQ 0 Signed-off-by: Nickolay V. Shmyrev Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 437a5a4606c12ab904793a7cad5b2062fc76c04e Author: Takashi Iwai Date: Tue Nov 21 12:14:23 2006 +0100 [ALSA] Remove IRQF_DISABLED for shared PCI irqs Fix IRQ flags for PCI devices. The shared IRQs for PCI devices shouldn't be allocated with IRQF_DISABLED. Also, when MSI is enabled, IRQF_SHARED shouldn't be used. The patch removes unnecessary cast in request_irq and free_irq, too. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 01f681da496831eb3aff5a908cefdafe74dd263b Author: Takashi Iwai Date: Thu Nov 16 15:39:07 2006 +0100 [ALSA] Fix invalid assignment of PCI revision Fix the type of PCI revision to char from int and avoid invalid assignment with pointer cast. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit e3a5d59a17e9a42e3f3e0e37342b2679bab2ff43 Author: Takashi Iwai Date: Tue Nov 14 13:03:19 2006 +0100 [ALSA] Fix races in PCM OSS emulation Fixed the race among multiple threads accessing the OSS PCM instance concurrently by simply introducing a mutex for protecting a setup of the PCM. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit ba8bdf8584c6f8af6d009dfd716ea5ee37fc15cd Author: Christian Hesse Date: Wed Nov 8 15:50:41 2006 +0100 [ALSA] hda-codec - fix typo in PCI IDs my notebook is a Samsung X11 of course... The attached patch fixes the typo. Signed-off-by: Christian Hesse Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit c19bcdc64a13c6d7eedfdb46d705531e24e69cad Author: Takashi Iwai Date: Wed Nov 8 15:48:43 2006 +0100 [ALSA] ac97 - Fix potential negative array index Fix the case cidx2 >= 0 and cidx2 < 0 which may result in negative array index. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit b90d7760ea784f916cb1fc0d8123410f1f0c9194 Author: Takashi Iwai Date: Tue Nov 7 16:10:06 2006 +0100 [ALSA] hda-codec - Verbose proc output for PCM parameters Make the output for PCM parameters more verbose, showing each rate, bits and format. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit ee3527b0362e3b1b2e212d6161869aff9a8a98a0 Author: Takashi Iwai Date: Tue Nov 7 16:09:00 2006 +0100 [ALSA] hda-codec - Fix detection of supported sample rates Don't include 9.6kHz in the list of supported sample rates. Since this rate isn't indicated in AC_PAR_PCM parameter, the driver might guess wrongly as if it's available. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 4a95cd86604740cf8cd27166e22a24944ed1e2f6 Author: Takashi Iwai Date: Tue Nov 7 13:48:42 2006 +0100 [ALSA] hda-codec - Fix model for ASUS V1j laptop Add a proper model entry (laptop-eapd) for ASUS V1j laptop with AD1986A codec. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 0e5d720ced4111cc75dd8cf66ab7b68607a0b306 Author: Adrian Bunk Date: Tue Nov 7 13:42:54 2006 +0100 [ALSA] sound/core/control.c: remove dead code This patch removes some obviously dead code spotted by the Coverity checker. Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit efeccac5b79d3569112c886396935ce574f6af9e Author: Takashi Iwai Date: Tue Oct 24 14:57:52 2006 +0200 [ALSA] hda-codec - Add model for HP q965 Added a model entry (HP_BPC) for HP q965 with ALC262 codec. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 9a826ddba6e087b1be24dd78cd0eac42f7eb7e97 Author: Clemens Ladisch Date: Mon Oct 23 16:26:57 2006 +0200 [ALSA] pcm core: fix silence_start calculations The case where silence_size < boundary was broken because different parts of the snd_pcm_playback_silence() function disagreed about whether silence_start should point to the start or to the end of the buffer part to be silenced. This patch changes the code to always use to the start, which also simplifies several calculations. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela commit 3bc89529594767b0f894589f6c05b2d9821b6791 Author: Takashi Iwai Date: Tue Oct 17 20:41:38 2006 +0200 [ALSA] hda-codec - Fix a typo Fixed a typo in proc file. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 176546ab562fa696e56d67d4f1ea85851275ebf8 Author: Remy Bruno Date: Mon Oct 16 12:32:53 2006 +0200 [ALSA] hdsp: precise_ptr control switched off by default precise_ptr option causes dysfunction with hdsp driver. Turn it off as default. Signed-off-by: Remy Bruno Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 83af036d9878dc5b7ba72efa52f066a25639740e Author: Takashi Iwai Date: Tue Oct 10 20:01:01 2006 +0200 [ALSA] hda-codec - Don't return error at initialization of modem codec Some modem codec seem to fail in the initialization, and this stopped loading of the whole module although the audio is OK. Since it's usually a non-fatal issue, the driver tries to proceed to initialize now. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit bd2033f27f346610b11b40a74ff7d1d023abcfd9 Author: Takashi Iwai Date: Tue Oct 10 19:49:31 2006 +0200 [ALSA] hda-codec - Fix wrong error checks in patch_{realtek,analog}.c Fix wrong error checks of *_ch_mode_put() in patch_realtek.c and patch_analog.c. snd_hda_ch_mode_put() could return a positive value for success, too. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit d9301263cce69ee4ef989de5bbe57515ef71a780 Author: Glen Masgai Date: Tue Oct 10 09:27:19 2006 +0200 [ALSA] ymfpci: fix swap_rear for S/PDIF passthrough This patch fixes incorrect assignment of swap_rear, which was broken since patch 'ymfpci - make rear channel swap optional' It removes module_param rear_swap. Signed-off-by: Glen Masgai Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela commit 201efe3793b0faab3538a463ad6d63cf0ef4403c Author: Clemens Ladisch Date: Mon Oct 9 08:14:15 2006 +0200 [ALSA] use the roundup macro Use the roundup macro instead of manual calculations. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela commit 7ab399262ee636d19db5163a35ac406d5b892a0a Author: Clemens Ladisch Date: Mon Oct 9 08:13:32 2006 +0200 [ALSA] use the ALIGN macro Use the ALIGN macro instead of manual calculations. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela commit e7d24f0bbd0eb0d9a6d337ef67d5e2ad78900488 Author: Jaroslav Kysela Date: Thu Oct 5 09:30:36 2006 +0200 [ALSA] ac97_codec (ALC655): add EAPD hack for MSI L725 laptop New PCI ID described and tested Spectr . Signed-off-by: Jaroslav Kysela commit 99b5aa3c10c7cff1e97239fda93649222fc12d25 Author: Jean Delvare Date: Wed Oct 4 18:38:16 2006 +0200 [ALSA] sound: Don't include i2c-dev.h Don't include as it's not needed. Signed-off-by: Jean Delvare Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit cf78bbc4b1dca9ce14b665143cf693c35da47eb0 Author: Tobias Klauser Date: Wed Oct 4 18:12:43 2006 +0200 [ALSA] sound/usb/usbaudio: Handle return value of usb_register() Handle the return value of usb_register() in the module_init function. Signed-off-by: Tobias Klauser Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 082d6c673cae6565d874cd9f64ab304edaa8ef66 Author: Andreas Mohr Date: Wed Oct 4 17:15:04 2006 +0200 [ALSA] via82xx: add __devinitdata add __devinitdata to struct whitelist, since it's used within a __devinit function. Add const attribute to iterator variable, too. Compile-tested (no section warnings etc.) and run-tested on vt8233, 2.6.18-mm3 (hopefully applies well to current ALSA). Signed-off-by: Andreas Mohr Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela commit 0f0fe1a08aa421266060ac67e50453a06d9ceb63 Author: John Keller Date: Tue Dec 19 12:56:19 2006 -0800 ACPI: Add support for acpi_load_table/acpi_unload_table_id Make acpi_load_table() available for use by removing it from the #ifdef ACPI_FUTURE_USAGE. Also add a new routine used to unload an ACPI table of a given type and "id" - acpi_unload_table_id(). The implementation of this new routine was almost a direct copy of existing routine acpi_unload_table() - only difference being that it only removes a specific table id instead of ALL tables of a given type. The SN hotplug driver (sgi_hotplug.c) now uses both of these interfaces to dynamically load and unload SSDT ACPI tables. Also, a few other ACPI routines now used by the SN hotplug driver are exported (since the driver can be a loadable module): acpi_ns_map_handle_to_node acpi_ns_convert_entry_to_handle acpi_ns_get_next_node Signed-off-by: Aaron Young Cc: Greg KH Cc: "Luck, Tony" Signed-off-by: Andrew Morton Signed-off-by: Len Brown commit a8274d57afb83e4954ddcb3f8b7dd1c03a379bd4 Author: James Simmons Date: Tue Dec 19 12:56:16 2006 -0800 fbdev: update after backlight argument change Update the frambuffer drivers to the backlight_device_registers changes. Signed-off-by: James Simmons Cc: Luming Yu Cc: "Antonino A. Daplas" Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Len Brown commit 519ab5f2be65b72cf12ae99c89752bbe79b44df6 Author: Yu Luming Date: Tue Dec 19 12:56:15 2006 -0800