GIT 9cf4a263bab0c2736353f0b573ac7365717d84b8 git+ssh://master.kernel.org/pub/scm/linux/kernel/git/sfr/linux-next.git commit 9cf4a263bab0c2736353f0b573ac7365717d84b8 Author: Stephen Rothwell Date: Fri Jun 6 18:08:39 2008 +1000 Add linux-next specific files Signed-off-by: Stephen Rothwell commit 77c221a5e1765b30ff10eed13b9208513a1c9c37 Author: Tony Breeds Date: Mon May 19 15:03:52 2008 +1000 Fix various 8390 builds The commit 3f8cb098859bbea29d7b3765a3102e4a6bf81b85 (drivers/net/lib8390: fix warning, trim trailing whitespace) removed ei_local from ei_tx_err() and ei_rx_overrun() resulting in the following build errors on m68k and sh: Using /scratch1/tony/next as source for kernel GEN /scratch1/tony/next_out/Makefile CHK include/linux/version.h CHK include/linux/utsrelease.h CALL /scratch1/tony/next/scripts/checksyscalls.sh CHK include/linux/compile.h CC [M] drivers/net/zorro8390.o In file included from /scratch1/tony/next/drivers/net/zorro8390.c:47: drivers/net/lib8390.c: In function 'ei_tx_err': drivers/net/lib8390.c:556: error: 'ei_local' undeclared (first use in this function) drivers/net/lib8390.c:556: error: (Each undeclared identifier is reported only once drivers/net/lib8390.c:556: error: for each function it appears in.) drivers/net/lib8390.c: In function 'ei_rx_overrun': drivers/net/lib8390.c:823: error: 'ei_local' undeclared (first use in this function) make[3]: *** [drivers/net/zorro8390.o] Error 1 make[2]: *** [drivers/net] Error 2 make[1]: *** [drivers] Error 2 make: *** [sub-make] Error 2 The problem is that ei_inb_p() is using various #defines (from drivers/net/8390.h) that use EI_SHIFT, which in some drivers on some architectures use ei_local. Tag ei_local as "__maybe_unused" to keep it around and keep the warnings the original commit is trying to silence ... silenced. Signed-off-by: Tony Breeds commit ec498d369e8ac486c4b7147c56feff4e744943bc Author: Stephen Rothwell Date: Fri Jun 6 17:43:37 2008 +1000 Revert "firmware: convert Ambassador ATM driver to request_firmware()" This reverts commit 62836d89ead6bd0502cb56b31ebccae818db157f. commit 3a9128e7913589be48913493dc251e8149af1731 Author: Stephen Rothwell Date: Wed Jun 4 15:06:07 2008 +1000 ldp: fix fallout from v4l struct element renaming Signed-off-by: Stephen Rothwell commit 4cf95755242147bd10e568c66bcd27354c061e00 Author: Stephen Rothwell Date: Mon Jun 2 15:06:02 2008 +1000 scsi: fix fallout from KOBJ_NAME_LEN removal Signed-off-by: Stephen Rothwell commit 66bcc1fea773190ed16597c1b57b9a8601ba1a23 Author: Stephen Rothwell Date: Fri Jun 6 14:26:18 2008 +1000 scsi: fix fallout from the class_find_device API change Signed-off-by: Stephen Rothwell commit 0ccd1d1036dd494355688e1153d1e008878daa64 Author: Stephen Rothwell Date: Tue May 27 12:53:04 2008 +1000 ftrace: fix rculist split fallout Signed-off-by: Stephen Rothwell commit b4d0dcf75edd25de4f7880223efd4b6358ec9d75 Author: Greg Kroah-Hartman Date: Fri Mar 21 14:12:51 2008 -0700 Input: add appleir driver This driver was originally written by James McKenzie but forward ported and cleaned up by me to get it to work with modern kernel versions. Tested on my mac mini and it actually works! Signed-off-by: Greg Kroah-Hartman commit b878977316e84fca09126505ad7ad7ec55367773 Author: Dean Anderson Date: Fri Feb 15 18:08:42 2008 -0500 USB: add Sensoray 2255 v4l driver This driver adds support for the Sensoray 2255 devices. It was primarily developed by Dean Anderson with only a little bit of guidance and cleanup by Greg. Signed-off-by: Dean Anderson Signed-off-by: Greg Kroah-Hartman commit 17f2ed62f55fb881881c4438586f74aba50ecbdb Author: Greg Kroah-Hartman Date: Mon Apr 14 11:41:16 2008 -0700 USB: add option hso driver This driver is for a number of different Option devices. Originally written by Option and Andrew Bird, but cleaned up massivly for acceptance into mainline by me and others. Many thanks to the following for their help in cleaning up the driver by providing feedback and patches to it: - Paulius Zaleckas - Oliver Neukum - Alan Cox - Javier Marcet Cc: Andrew Bird Cc: Javier Marcet Cc: Filip Aben Cc: Paulius Zaleckas Cc: Oliver Neukum Acked-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 4a327406e6414dcada5c0e11ad2d1eea1e9f8498 Author: Rusty Russell Date: Fri Jun 6 11:00:18 2008 +1000 misc:down_nowait-kernel_printk down_trylock -> down_try in kernel/printk.c Signed-off-by: Rusty Russell commit 3e3dc01443d455118310a299178c4dd977d59495 Author: Rusty Russell Date: Fri Jun 6 11:00:18 2008 +1000 misc:down_nowait-xfs down_trylock -> down_try in xfs Signed-off-by: Rusty Russell Cc: xfs@oss.sgi.com commit 0eeb20442d40d48a6c5d2625f6423ff444991ed1 Author: Rusty Russell Date: Fri Jun 6 11:00:18 2008 +1000 misc:down_nowait-fs_reiserfs_journal down_trylock -> down_try in fs/reiserfs/journal.c Signed-off-by: Rusty Russell commit bbbbcc90e6b14deca87ebfcff8e69ebdbb6d6baa Author: Rusty Russell Date: Fri Jun 6 11:00:18 2008 +1000 misc:down_nowait-drivers_usb_gadget_inode down_trylock -> down_try in drivers/usb/gadget/inode.c Signed-off-by: Rusty Russell commit a82d08b5b74ab280c1fd3333b47f0ce748009cd2 Author: Rusty Russell Date: Fri Jun 6 11:00:17 2008 +1000 misc:down_nowait-drivers_usb_core_usb down_trylock -> down_try for usb_trylock_device() I took the liberty of reversing the sense of usb_trylock_device(): it only has one user anyway. Signed-off-by: Rusty Russell commit 81fa737bd04ecb70fe5ed50907f4dd16ff35ab4b Author: Rusty Russell Date: Fri Jun 6 11:00:17 2008 +1000 misc:down_nowait-drivers_scsi_aacraid_commsup down_trylock -> down_try in drivers/scsi/aacraid/commsup.c Signed-off-by: Rusty Russell commit 47c3e27c400e492c35917847ec59485017e6918d Author: Rusty Russell Date: Fri Jun 6 11:00:17 2008 +1000 misc:down_nowait-drivers_net_wireless_airo down_trylock -> down_try in drivers/net/wireless/airo.c Signed-off-by: Rusty Russell commit 5e788be1c41747c8608f5cdb482d632baf166a7b Author: Rusty Russell Date: Fri Jun 6 11:00:17 2008 +1000 misc:down_nowait-drivers_net_irda_sir_dev down_trylock -> down_try in drivers/net/irda/sir_dev.c Signed-off-by: Rusty Russell commit fd211b2de5d21d5e53459c05071a1c3b93ba715a Author: Rusty Russell Date: Fri Jun 6 11:00:16 2008 +1000 misc:down_nowait-drivers_net_3c527 down_trylock -> down_try in drivers/net/3c527.c Signed-off-by: Rusty Russell commit bfe1c99c18e55018b89aa4f0c95beff0dd0476b8 Author: Rusty Russell Date: Fri Jun 6 11:00:16 2008 +1000 misc:down_nowait-drivers_md_dm-raid1 down_trylock -> down_try in drivers/md/dm-raid1.c Signed-off-by: Rusty Russell commit 0b704d318e572903fdf3056f060958c38ed03058 Author: Rusty Russell Date: Fri Jun 6 11:00:16 2008 +1000 misc:down_nowait-drivers_input_serio_hp_sdc_mlc down_trylock -> down_try in drivers/input/serio/hp_sdc_mlc.c Signed-off-by: Rusty Russell commit 297f53e09fb6d2dac0f3e7341798b699c9cbb352 Author: Rusty Russell Date: Fri Jun 6 11:00:16 2008 +1000 misc:down_nowait-drivers_input_serio_hil_mlc down_trylock -> down_try in drivers/input/serio/hil_mlc.c Signed-off-by: Rusty Russell commit 7eb789239babdbbbf216059b6c7a4fad76bb4763 Author: Rusty Russell Date: Fri Jun 6 11:00:16 2008 +1000 misc:down_nowait-drivers_infiniband_core_user_mad down_trylock -> down_try in drivers/infiniband/core/user_mad.c Signed-off-by: Rusty Russell commit 4d51e23cc3831eaaf708ac6b0708785442934c9b Author: Rusty Russell Date: Fri Jun 6 11:00:15 2008 +1000 misc:down_nowait-drivers_char_viotape down_trylock -> down_try in drivers/char/viotape.c Signed-off-by: Rusty Russell commit 2958ce4a8634d3bd4aabc2f00c121c64e6678acc Author: Rusty Russell Date: Fri Jun 6 11:00:15 2008 +1000 misc:down_nowait-drivers_char_snsc down_trylock -> down_try in drivers/char/snsc.c Signed-off-by: Rusty Russell commit e069a8b978a4c735666d8fb38521206b683d7408 Author: Rusty Russell Date: Fri Jun 6 11:00:15 2008 +1000 misc:down_nowait-arch_ia64_kernel_salinfo down_trylock -> down_try in arch/ia64/kernel/salinfo.c Signed-off-by: Rusty Russell commit a0b83354accb49de3da2c99627979a681c93b012 Author: Rusty Russell Date: Fri Jun 6 11:00:15 2008 +1000 misc:down_nowait-documentation down_trylock -> down_try in documentation and comments. Fix up kernel-locking.tmpl and random bitching about down_trylock. Signed-off-by: Rusty Russell commit 65ec33aeb4f370230bfd08b95c0b98d191dd438e Author: Rusty Russell Date: Fri Jun 6 11:00:14 2008 +1000 misc:down_nowait Deprecate down_trylock() down_trylock() returns 1 on failure, 0 on success. This differs from spin_trylock(), mutex_trylock() and common sense. Or as ocfs2 put it "kernel 1, world 0". Deprecate it and make down_try() the primary function. Signed-off-by: Rusty Russell commit c4684b7d223b3990a55014c9d149d7bf06df859b Author: Rusty Russell Date: Fri Jun 6 11:00:14 2008 +1000 misc:introduce-down_nowait Introduce down_try() I planned on removing the much-disliked down_trylock() (with its backwards return codes) in 2.6.27, but it's creating something of a logjam with other patches in -mm and linux-next. Andrew suggested introducing "down_try" as a wrapper now, to make the transition easier. Signed-off-by: Rusty Russell Cc: Andrew Morton Cc: Christoph Hellwig Cc: Matthew Wilcox Cc: Stephen Rothwell commit 7a22dd365a7f8b5c703f2ce0717ac882e25a039e Author: Rusty Russell Date: Fri Jun 6 11:00:14 2008 +1000 misc:timer-typesafe This patch lets timer callback functions have their natural type (ie. exactly match the data pointer type); it allows the old "unsigned long data" type as well. Downside: if you use the old "unsigned long" callback type, you won't get a warning if your data is not an unsigned long, due to the cast. Signed-off-by: Rusty Russell commit a30a588956d36c9b6d9ad9981825341fe3774435 Author: Rusty Russell Date: Fri Jun 6 11:00:14 2008 +1000 misc:kthread-typesafe Straight-forward conversion to allow typesafe callbacks. Signed-off-by: Rusty Russell commit ab2a8568767b05ddf00968f5a7632ed552f09a3a Author: Rusty Russell Date: Fri Jun 6 11:00:14 2008 +1000 misc:stop_machine-typesafe Straightforward conversion of stop_machine_run. Signed-off-by: Rusty Russell commit c97c01c596ec8c8b3c888347bd40eb54f25d3257 Author: Rusty Russell Date: Fri Jun 6 11:00:13 2008 +1000 misc:typesafe_cb cast_if_type is clever but annoying to use, so we make some slightly less annoying wrappers for callback registration. These allow const pointer-taking functions as well as the normal non-const ones (volatile variant omitted for simplicity). We also have a typesafe_cb_preargs() for callbacks which don't just take one argument. Here's an example of use: BEFORE: void foo_set_callback(int (*callback)(void *), void *arg); AFTER: #define foo_set_callback(cb, arg) \ __foo_set_callback(typesafe_cb(int, (cb), (arg)), (arg)) void __foo_set_callback(int (*callback)(void *), void *arg); o If cb is of form "int cb(typeof(arg))" or "int cb(const typeof(arg))" it will be cast to form "int cb(void *)". o Otherwise, if cb is not already of form "int cb(void *)" it will cause a warning when passed to __foo_set_callback(). o If arg is not a pointer, then handing it to __foo_set_callback() will cause a warning. Note: there are at least two possible additions we don't yet need. We don't cover callbacks which take a volatile pointer, even though that would be fine, and we don't have a typesafe_cb_postargs(). Signed-off-by: Rusty Russell commit 1dbeaf270f30e710b3ebca640946730d2f586a5f Author: Rusty Russell Date: Fri Jun 6 11:00:13 2008 +1000 misc:cast_if_type To create functions which can take two types, but still warn on any other types, we need a way of casting one type and no others. To make things more complex, it should correctly handle function args, NULL, and be usable in initializers. __builtin_choose_expr was introduced in gcc 3.1 (kernel needs >= 3.2 anyway). Signed-off-by: Rusty Russell commit 2275808c92279cc0d6cb23723a03e8725f0f7ddd Author: Rusty Russell Date: Fri Jun 6 11:00:13 2008 +1000 misc:kthread-printf-attribute Label kthread_create() with printf attribute tag. Signed-off-by: Rusty Russell commit 43bcc8e1e2dc77155ff63195fd642f264ac9119c Author: Matthew Wilcox Date: Wed Apr 23 07:20:41 2008 -0400 Remove mention of semaphores from kernel-locking Since the consensus seems to be to eliminate semaphores where possible, we shouldn't be educating people about how to use them as locks. Use mutexes instead. Semaphores should be described in a separate document if we end up keeping them. Signed-off-by: Matthew Wilcox Signed-off-by: Rusty Russell commit 013382581c1105b2eb7ce62e21bf2588e0e91d91 Author: Rusty Russell Date: Fri Jun 6 11:00:12 2008 +1000 stop_machine:simplify Simplify stop_machine stop_machine creates a kthread which creates kernel threads. We can create those threads directly and simplify things a little. Some care must be taken with CPU hotunplug, which has special needs, but that code seems more robust than it was in the past. Hotplug CPU with this patch is untested. Signed-off-by: Rusty Russell commit f80b96b9e71c735524c859d4367af388a994d90c Author: Jason Baron Date: Thu Feb 28 11:33:03 2008 -0500 Add all cpus option to stop machine run -allow stop_mahcine_run() to call a function on all cpus. Calling stop_machine_run() with a 'ALL_CPUS' invokes this new behavior. stop_machine_run() proceeds as normal until the calling cpu has invoked 'fn'. Then, we tell all the other cpus to call 'fn'. Signed-off-by: Jason Baron Signed-off-by: Mathieu Desnoyers Signed-off-by: Rusty Russell CC: Adrian Bunk CC: Andi Kleen CC: Alexey Dobriyan CC: Christoph Hellwig CC: mingo@elte.hu CC: akpm@osdl.org commit ec7fc1fd53446a46c5bb6bb22c39ebaddc5e4fcc Author: Christian Borntraeger Date: Thu May 29 11:08:26 2008 +0200 virtio_blk: check for hardsector size from host Currently virtio_blk assumes a 512 byte hard sector size. This can cause trouble / performance issues if the backing has a different block size (like a file on an ext3 file system formatted with 4k block size or a dasd). Lets add a feature flag that tells the guest to use a different hard sector size than 512 byte. Signed-off-by: Christian Borntraeger Signed-off-by: Rusty Russell commit 5c234aa8cf72b56b2a43c8d9a86b33e7d7768e81 Author: Rusty Russell Date: Fri Jun 6 11:00:10 2008 +1000 lguest:publish-indices Set the VIRTIO_RING_F_PUBLISH_INDICES feature on all devices, and use the last_avail within the vring rather than storing our own. Signed-off-by: Rusty Russell commit 1277464593159197b78fe3d346887352b309174c Author: Rusty Russell Date: Fri Jun 6 11:00:09 2008 +1000 virtio:vring-enhance Generally, the other end of the virtio ring doesn't need to see where you're up to in consuming the ring. However, to completely understand what's going on from the outside, this information must be exposed. For example, if you want to save and restore a virtio_ring, but you're not the consumer because the kernel is using it directly. Fortunately, we have room to expand: the ring is always a whole number of pages and there's hundreds of bytes of padding after the avail ring and the used ring, whatever the number of descriptors (which must be a power of 2). We add a feature bit so the guest can tell the host that it's writing out the current value there, if it wants to use that. Signed-off-by: Rusty Russell commit 2e46b596bb68e6ece96c5165f7f31bc09e163a27 Author: Rusty Russell Date: Fri Jun 6 11:00:09 2008 +1000 virtio:transport-features We assign feature bits as required, but it makes sense to reserve some for the particular transport, rather than the particular device. Signed-off-by: Rusty Russell commit 762c472454b01bc51f00a8141637cf13261399c5 Author: Rusty Russell Date: Fri Jun 6 11:00:09 2008 +1000 virtio:net-recycle-unused-pages If we hack the virtio_net driver to always allocate full-sized (64k+) skbuffs, the driver slows down (lguest numbers): Time to receive 1GB (small buffers): 10.85 seconds Time to receive 1GB (64k+ buffers): 24.75 seconds Of course, large buffers use up more space in the ring, so we increase that from 128 to 2048: Time to receive 1GB (64k+ buffers, 2k ring): 16.61 seconds If we recycle pages rather than using alloc_page/free_page: Time to receive 1GB (64k+ buffers, 2k ring, recycle pages): 10.81 seconds This demonstrates that with efficient allocation, we don't need to have a separate "small buffer" queue. Signed-off-by: Rusty Russell commit 134e3b75d651d536aa18e22b08cb60b699f04105 Author: Herbert Xu Date: Fri Apr 18 11:24:27 2008 +0800 virtio net: Allow receiving SG packets Finally this patch lets virtio_net receive GSO packets in addition to sending them. This can definitely be optimised for the non-GSO case. For comparison the Xen approach stores one page in each skb and uses subsequent skb's pages to construct an SG skb instead of preallocating the maximum amount of pages per skb. Signed-off-by: Rusty Russell (added feature bits) commit 224e43c97c7febc19124b24f6e71957cacad9dff Author: Herbert Xu Date: Fri Apr 18 11:21:42 2008 +0800 virtio net: Add ethtool ops for SG/GSO This patch adds some basic ethtool operations to virtio_net so I could test SG without GSO (which was really useful because TSO turned out to be buggy :) Signed-off-by: Rusty Russell (remove MTU setting) commit 4b45b1fdc9ef40f20a8bd59764e1405cce6fd5fb Author: Rusty Russell Date: Fri Jun 6 11:00:08 2008 +1000 lguest:rng This is a simple patch to add support for the virtio "hardware random generator" to lguest. It gets about 1.2 MB/sec reading from /dev/hwrng in the guest. Signed-off-by: Rusty Russell commit 42cb3d5ef87b23da185b43fde5d5d0e336b9d2e5 Author: Rusty Russell Date: Fri Jun 6 11:00:08 2008 +1000 virtio:net-force-callback-on-empty virtio_net uses a timer to free old transmitted packets, rather than leaving callbacks enabled all the time. If the host promises to always notify us when the transmit ring is empty, we can free packets at that point and avoid the timer. Signed-off-by: Rusty Russell commit 930ecbd822a01fa2e87b445c1ac1974106f94747 Author: Mark McLoughlin Date: Fri Jun 6 11:00:08 2008 +1000 virtio:net_free_transmit_skbs_in_a_timer virtio_net currently only frees old transmit skbs just before queueing new ones. If the queue is full, it then enables interrupts and waits for notification that more work has been performed. However, a side-effect of this scheme is that there are always xmit skbs left dangling when no new packets are sent, against the Documentation/networking/driver.txt guideline: "... it is not allowed for your TX mitigation scheme to let TX packets "hang out" in the TX ring unreclaimed forever if no new TX packets are sent." Add a timer to ensure that any time we queue new TX skbs, we will shortly free them again. This fixes an easily reproduced hang at shutdown where iptables attempts to unload nf_conntrack and nf_conntrack waits for an skb it is tracking to be freed, but virtio_net never frees it. Signed-off-by: Mark McLoughlin Signed-off-by: Rusty Russell commit 9a34100fab7b09ab515a71f4f81cbf2e475b4b7a Author: Mark McLoughlin Date: Tue May 27 12:20:45 2008 +0100 virtio: Fix typo in virtio_net_hdr comments Signed-off-by: Mark McLoughlin Signed-off-by: Rusty Russell commit 2ba5fefc23cf1300e1f7bdf70f58d073d1c683cf Author: Mark McLoughlin Date: Tue May 27 12:20:47 2008 +0100 virtio_net: Fix skb->csum_start computation hdr->csum_start is the offset from the start of the ethernet header to the transport layer checksum field. skb->csum_start is the offset from skb->head. skb_partial_csum_set() assumes that skb->data points to the ethernet header - i.e. it computes skb->csum_start by adding the headroom to hdr->csum_start. Since eth_type_trans() skb_pull()s the ethernet header, skb_partial_csum_set() should be called before eth_type_trans(). (Without this patch, GSO packets from a guest to the world outside the host are corrupted). Signed-off-by: Mark McLoughlin Acked-by: Herbert Xu Signed-off-by: Rusty Russell commit 5e24f8249f733722fa3ad587f9df781217a6fb95 Author: Mathieu Desnoyers Date: Fri Jun 6 11:00:04 2008 +1000 Stringify support commas > This is a no-no for those archs that still use -traditional. > > I dunno if this is a problem for you at the moment and the > > right fix is anyway to nuke -traditional. > > > > Sam Signed-off-by: Mathieu Desnoyers Signed-off-by: Geert Uytterhoeven commit f8a12fe10c298402f4f0b24bd528e2680ca35b1a Author: Geert Uytterhoeven Date: Fri Jun 6 11:00:00 2008 +1000 m68k: Allow no CPU/platform type for allnoconfig Allow no CPU/platform type for allnoconfig - Provide a dummy value for FPSTATESIZE if no CPU type was selected - Provide a dummy value for NR_IRQS if no platform type was selected - Warn the user if no CPU or platform type was selected Note: you still cannot build an allnoconfig kernel, as CONFIG_SWAP=n doesn't build and we cannot easily fix that (http://groups.google.com/group/linux.kernel/browse_thread/thread/d430c78b07e1827b) Signed-off-by: Geert Uytterhoeven commit 1a0039ef5ce3ac4ffe04ef76e5df7c276c867890 Author: Cyrill Gorcunov Date: Fri Jun 6 11:00:00 2008 +1000 m68k: vmlinux-std/sun3.lds.S cleanup - use PAGE_SIZE macro This patch includes page.h header into linker script that allow us to use PAGE_SIZE macro instead of numeric constant Signed-off-by: Cyrill Gorcunov Signed-off-by: Geert Uytterhoeven commit 75e1a96bd07086007a956aa2315118452fda72f8 Author: Geert Uytterhoeven Date: Fri Jun 6 11:00:00 2008 +1000 m68k: Return -ENODEV if no device is found According to the tests in do_initcalls(), the proper error code in case no device is found is -ENODEV, not -ENXIO or -EIO. Signed-off-by: Geert Uytterhoeven commit 3701b43dfb0bcd0409b0dba00915215f0b57ecf3 Author: Robert P. J. Day Date: Fri Jun 6 10:59:59 2008 +1000 ZORRO: Replace deprecated __initcall with equivalent device_initcall. ZORRO: Replace deprecated __initcall with equivalent device_initcall. Signed-off-by: Robert P. J. Day Signed-off-by: Geert Uytterhoeven commit e3b5ae3ed182c892de67f9e0240e1dcbdd8c060c Author: Paulius Zaleckas Date: Fri Jun 6 10:59:59 2008 +1000 ariadne: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Signed-off-by: Paulius Zaleckas Signed-off-by: Geert Uytterhoeven commit c48b8aae99989ac87f1e468dbe1e6e3bf1734f0b Author: Adrian Bunk Date: Fri Jun 6 10:59:59 2008 +1000 m68k: remove CVS keywords This patch removes CVS keywords that weren't updated for a long time from comments. Signed-off-by: Adrian Bunk Signed-off-by: Geert Uytterhoeven commit 1301120171dc735ce81fa58493b5c16216ce7832 Author: Geert Uytterhoeven Date: Fri Jun 6 10:59:59 2008 +1000 m68k: enable CONFIG_COMPAT_BRK by default As some m68k machines have plenty of libc5 binaries in active use, enable CONFIG_COMPAT_BRK by default. Signed-off-by: Geert Uytterhoeven commit 4d1c31634763bd348827f58ff05a7eda4c3b3be5 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:56 2008 +1000 ide-cs: use struct ide_port_info Convert the driver to use struct ide_port_info. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit f860d995a088eeb54022c22a504a6d03b5adff5f Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:55 2008 +1000 ide_4drives: use struct ide_port_info Convert the driver to use struct ide_port_info - as a nice side-effect this fixes hwif->channel initialization. Signed-off-by: Bartlomiej Zolnierkiewicz commit a955d000cbed2e04c31cf348d2497f7628dc5691 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:55 2008 +1000 au1xxx-ide: don't use hwif->hwif_data * Use &auide_hwif directly instead of using hwif->hwif_data. While at it: * No need to initialize hwif->{select,config}_data. There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit f78337e2c12caa54da52326f03ab50f8ba344ce1 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:54 2008 +1000 delkin_cb: add missing __init/__exit tags Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 858a1ecc2b9254110c40a3b157f9e648fdf092be Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:54 2008 +1000 delkin_cb: add warm-plug support Don't fail the probe if there are no devices attached to the controller. Signed-off-by: Bartlomiej Zolnierkiewicz commit f489feb595ac4945b256be67acb10dca0385520a Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:54 2008 +1000 delkin_cb: use struct ide_port_info Convert the driver to use struct ide_port_info - as a nice side-effect this fixes racy setup of ->io_32bit/unmask settings (after ide_device_add() call device can be already in use). Signed-off-by: Bartlomiej Zolnierkiewicz commit b8e75c1861becadf3da4f14883fbb81da5714109 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:54 2008 +1000 delkin_cb: set proper hwif->gendev.parent value hwif->dev was set too late (after ide_device_add() call) so hwif->gendev.parent was not initialized properly. Fix it by setting hw.dev and letting ide_init_port_hw() do the rest. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 47ef0ff08006fc7b8b586e49a85f2f62d70dd920 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:54 2008 +1000 ide: set hwif->dev in ide_init_port_hw() * Add 'parent' field to hw_regs_t for optional parent device pointer (needed by macio PMAC IDE controllers) and set hwif->dev in ide_init_port_hw(). * Update au1xxx-ide.c, sgiioc4.c, pmac.c and setup-pci.c accordingly. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit acf0132432a2aa9f2ed2558531d9a397339a2a90 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:53 2008 +1000 ide: fix host drivers missing hwif->chipset initialization ide_find_port() now depends on ->chipset being set for occupied ide_hwifs[] slots so all host drivers have to initialize hwif->chipset properly. This patch fixes a regression on hosts with > 1 port or with a single port but no devices attached to it for an affected host drivers. Signed-off-by: Bartlomiej Zolnierkiewicz commit 9053d568decd6554c5ed186b7005263239d00ae7 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:53 2008 +1000 ide: make ide_hwifs[] static Move ide_hwifs[] from ide.c to ide-probe.c and make it static. Signed-off-by: Bartlomiej Zolnierkiewicz commit 96b946c581c00cc22f35b4a2d7036ae5aea6b5a3 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:53 2008 +1000 ide: fix hwif-s initialization * Add ide_hwifs[] entry initialization to ide_find_port_slot() and remove ide_init_port_data() calls from host drivers. * Unexport ide_init_port_data(). * Remove no longer needed init_ide_data(). Signed-off-by: Bartlomiej Zolnierkiewicz commit 0a4e94110055c773e9b7d3f39b2ae9c39e187e20 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:53 2008 +1000 ide-generic: add missing hwif->chipset setup hwif->chipset need to be set properly or ide-generic driver will break once we make a final step in fixing host drivers' dependence on ide_hwifs[]. Problem was catched early thanks to IDE tree exposure in -mm / -next trees and reported by people listed people (thank you guys!). Reported-by: "John Keller" Reported-by: Dmitri Vorobiev Reported-by: Mel Gorman Signed-off-by: Bartlomiej Zolnierkiewicz commit d0fdc428c2ec577093d0edc691bb5cb8dd4a21c4 Author: Borislav Petkov Date: Fri Jun 6 10:59:52 2008 +1000 ide-floppy: fix unfortunate function naming mv idefloppy_transfer_pc1 idefloppy_start_pc_transfer mv idefloppy_transfer_pc2 idefloppy_transfer_pc which describes their functionality and disambiguates them. There should be no functionality change introduced by this patch. Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit e2b715c6401387b7203ec0ef54f286304e8271a4 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:52 2008 +1000 ide: move PIO blacklist to ide-pio-blacklist.c Move PIO blacklist to ide-pio-blacklist.c. While at it: - fix comment - fix whitespace damage There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit d138bc351283ca59224e104fb956dfb02640b50e Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:52 2008 +1000 ide: remove no longer used ide_pio_timings[] Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 41759af062d3b647702ccd9722ef6b794a493ac1 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:52 2008 +1000 ide: move ide_pio_cycle_time() to ide-timings.c All ide_pio_cycle_time() users already select CONFIG_IDE_TIMINGS so move the function from ide-lib.c to ide-timings.c. While at it: - convert ide_pio_cycle_time() to use ide_timing_find_mode() - cleanup ide_pio_cycle_time() a bit There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit d3479f18290a462f0d87daf84617630e06c44a80 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:52 2008 +1000 ide-pmac: convert to use ide_timing_find_mode() Also update my Copyrights while at it. There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 02c5ba5a5ef8f46899aab3d7f2c3f3f1b4b49619 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:51 2008 +1000 ide-mpc8xx: convert to use ide_timing_find_mode() Also fix (disabled) debugging code while at it. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit 5850ad9416359836f1f53f8f4aa2e5e93037feb2 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:51 2008 +1000 sl82c105: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit cf7af26d6e8a0b769ab1ba10a50408d3e2586eff Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:51 2008 +1000 opti621: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 112826915bbeeabf4bc9b83d3d0878e4cfb7d148 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:50 2008 +1000 cy82c693: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 2d2bdbdbb1c5f922acac64486167e89146d2443c Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:50 2008 +1000 cmd64x: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit f61c82e0afeed266c9206151287ce0dcbc68d596 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:50 2008 +1000 cmd640: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 447c1febd622d58383bdf7de1557de9b62eefae9 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:49 2008 +1000 alim15x3: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit a8ccf934e001bc5250b9b873b4b2810636d20d0a Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:49 2008 +1000 qd65xx: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit bd017668ef9f72d2aa6a2fce322e18fb1896de18 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:49 2008 +1000 ht6560b: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 869afa18321fc6257b30624356f0f2bc92bfc5e3 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:49 2008 +1000 ali14xx: convert to use ide_timing_find_mode() There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 0d8f9440d479cb7a932f2a07530c5772870ce78e Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:48 2008 +1000 ide: convert ide-timing.h to ide-timings.c library (take 2) * Don't include ide-timing.h in cs5535 and sis5513 host drivers (they don't need it currently). * Convert ide-timing.h to ide-timings.c library and add CONFIG_IDE_TIMINGS config option to be selected by host drivers using the library. While at it: - fix ide_timing_find_mode() placement v2: * Add missing EXPORT_SYMBOLs. (Stephen Rothwell ) There should be no functional changes caused by this patch. Cc: Stephen Rothwell Signed-off-by: Bartlomiej Zolnierkiewicz commit b8164c085b763ba03c278ddfe93ad2f6d60eb4ad Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:48 2008 +1000 ide: checkpatch.pl fixes for ide-timing.h Also fix placement of comments in ide_timing_compute() while at it. There should be no functional changes caused by this patch (md5sum was verified to be the same before/after the patch). Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit b6c7fb83386e9cb5f70fc249239aa1aff62beead Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:48 2008 +1000 ide: remove XFER_* masks from ide-timing.h * Check requested xfer mode against xfer modes instead of XFER_* masks in ide_timing_compute() and cs5535.c::cs5535_set_speed(). * Remove XFER_[MODE,MWDMA,EPIO,PIO] masks. There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 2421f6efa5a861cb21a249894a6e60ddda79dc22 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:48 2008 +1000 ide: move some bits from ide-timing.h to Move struct ide_timing and IDE_TIMING_* defines to from drivers/ide/ide-timing.h. While at it: - use u8/u16 instead of short for struct ide_timing fields - use enum for IDE_TIMING_* There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit b1c12fc903b2467a87033fd5613db828e4670de8 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:48 2008 +1000 ide: use u8 for xfer modes in ide-timing.h There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit dc744735b84b64a31a589b5d339c51a6c9214587 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:47 2008 +1000 ide: remove unused XFER_UDMA_SLOW Remove unused XFER_UDMA_SLOW from ide_timing[]. While at it: - fix re-defining XFER_PIO_5 (no need to define it in ide-timing.h as it is defined in which is included by ) - fix whitespace damage There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit a70371feca1c0a9feb293129d98bb0e50b661934 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:47 2008 +1000 ide: remove needless includes from ide-lib.c Signed-off-by: Bartlomiej Zolnierkiewicz commit 372db3fcf134fddfb76b56c16b673702725f267d Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:47 2008 +1000 sis5513: add missing pci_enable_device() call Cc: Riccardo Gori Signed-off-by: Bartlomiej Zolnierkiewicz commit cd5e1a3fb72608db02140dfac93f485454fb6672 Author: Borislav Petkov Date: Fri Jun 6 10:59:47 2008 +1000 ide-tape: unify idetape_create_read/write_cmd A straightforward one. There should be no functional change resulting from this change. [bart: minor fixups] Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 4229d2188d6661321c40c48da213c332e56e13b9 Author: Adrian Bunk Date: Fri Jun 6 10:59:46 2008 +1000 MAINTAINERS: remove SIS 5513 IDE entry - maintainer has not been active for years - URLs no longer exist - covered by the IDE SUBSYSTEM entry - maintainer email bounces Signed-off-by: Adrian Bunk Cc: Lionel.Bouton@inet6.fr Signed-off-by: Bartlomiej Zolnierkiewicz commit 298695ddf8f9cc709022891ef768afc4affc9a69 Author: Adrian Bunk Date: Fri Jun 6 10:59:46 2008 +1000 ide: remove the ide_etrax100 chipset type I forgot to remove the ide_etrax100 chipset type when removing the ETRAX_IDE driver. Reported-by: Bartlomiej Zolnierkiewicz Signed-off-by: Adrian Bunk Signed-off-by: Bartlomiej Zolnierkiewicz commit b2379d958ce5eebe18ac5af8d0f44abeac3da235 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:46 2008 +1000 ide: add ide_pc_intr() helper * ide-tape.c: add 'drive' argument to idetape_update_buffers(). * Add generic ide_pc_intr() helper to ide-atapi.c and then convert ide-{floppy,tape,scsi} device drivers to use it. * ide-tape.c: remove no longer needed DBG_PC_INTR. There should be no functional changes caused by this patch (unless the debugging is explicitely compiled in). Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 2fbb89a1bdef910019930aad864359e9db4978d7 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:46 2008 +1000 ide-{floppy,scsi}: read Status Register before stopping DMA engine Read Status Register before stopping DMA engine to match ide-tape device driver - it should be safe and shouldn't affect anything. This is a preparation for adding generic ide_pc_intr() helper. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit f96e5278be736d2ca454e3c86a79ff862203352a Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:45 2008 +1000 ide-scsi: add more debugging to idescsi_pc_intr() Add more debugging to idescsi_pc_intr() to match ide-tape's idetape_pc_intr(). While at it: * Correct the first debug message. This is a preparation for adding generic ide_pc_intr() helper. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit f94d6b1a096258ab37044b2552ed878831c0c0df Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:45 2008 +1000 ide-scsi: use pc->callback * Add ide_scsi_callback() pc->callback implementation, then update idescsi_check_condition() and idescsi_queue() to setup ->callback. * Convert idescsi_pc_intr() to use pc->callback. This is a preparation for adding generic ide_pc_intr() helper. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit da39df1a81e3f693895a0968202984888d7a4d6f Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:44 2008 +1000 ide-floppy: add more debugging to idefloppy_pc_intr() Add more debugging to idefloppy_pc_intr() to match ide-tape's idetape_pc_intr(). While at it: * Correct the first debug message. * Log device name with "DMA finished" message. This is a preparation for adding generic ide_pc_intr() helper. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit f7a3a5bbf0c7e30a39d557c30ebc54c185988b54 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:44 2008 +1000 ide-tape: always log debug info in idetape_pc_intr() if debugging is enabled Add DBG_PC_INTR debug level and use it to always log debug info in idetape_pc_intr() if debugging is enabled. While at it: * Use drive->name instead of tape->name. * Log device name with "DMA finished" message. This is a preparation for adding generic ide_pc_intr() helper. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 01f67688a7b5ca095568b25671314f3dea6cfe7c Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:44 2008 +1000 ide-tape: add ide_tape_io_buffers() helper * Add ide_tape_io_buffers() helper which is a wrapper for idetape_{in,out}put_buffers() and convert idetape_pc_intr() to use it. * Remove no longer used idetape_io_buf typedef. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz --- commit c33e052522bbdd9752943d10313cc95fbeb8b26c Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:44 2008 +1000 ide-tape: factor out DSC handling from idetape_pc_intr() Factor out DSC handling from idetape_pc_intr() to ide_tape_handle_dsc() helper as a preparation for adding generic ide_pc_intr() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 47bd4e2f60c13fb36fc7878e21d1f85fe0148be3 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:43 2008 +1000 ide-{floppy,tape}: move checking of ->failed_pc to ->callback Move checking/resetting of ->failed_pc from ide*_pc_intr() to ->callback as a preparation for adding generic ide_pc_intr() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz --- commit 56122e9899e709f9e5c651fefb0eec88fd5debbc Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:43 2008 +1000 ide: add ide_issue_pc() helper Add generic ide_issue_pc() helper to ide-atapi.c and then convert ide-{floppy,tape,scsi} device drivers to use it. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit de52a61715e14939a246ce2b65f792a73957a8cd Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:43 2008 +1000 ide: add PC_FLAG_DRQ_INTERRUPT pc flag Add PC_FLAG_DRQ_INTERRUPT pc flag, set it in ide*_do_request() and check for it (instead of checking for IDE*_FLAG_DRQ_INTERRUPT) in ide*_issue_pc(). This is a preparation for adding generic ide_issue_pc() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit c2a46a254dab9f077bd2275a97f76b719491ba18 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:43 2008 +1000 ide-scsi: move idescsi_map_sg() call out from idescsi_issue_pc() Move idescsi_map_sg() call out from idescsi_issue_pc() to idescsi_do_request() as a preparation to adding generic ide_issue_pc() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit c416f7d1430650f268e8ef68088bbcca9648424d Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:43 2008 +1000 ide: add ide_transfer_pc() helper * Add ide-atapi.c file for generic ATAPI support together with CONFIG_IDE_ATAPI config option. * Add generic ide_transfer_pc() helper to ide-atapi.c and then convert ide-{floppy,tape,scsi} device drivers to use it. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 4c75a775ebe3130ee7bd5e5d630b2ac9e2f43b79 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:42 2008 +1000 ide-scsi: set drive->scsi flag for devices handled by the driver This is a preparation for adding generic ide_transfer_pc() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit ce2871fcd8d20d395662f8fa1946e5dbfd081562 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:42 2008 +1000 ide-{cd,floppy,tape}: remove checking for drive->scsi Remove checking for drive->scsi which is no longer set by IDE core code (leave the flag since it will be re-used for generic ATAPI support). Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 5d0707b48273caadb0bb22ad8c9c29a15e317ad6 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:42 2008 +1000 ide: add PC_FLAG_ZIP_DRIVE pc flag Add PC_FLAG_ZIP_DRIVE pc flag, set it in idefloppy_do_request() and check for it (instead of checking for IDEFLOPPY_FLAG_ZIP_DRIVE) in idefloppy_transfer_pc(). This is a preparation for adding generic ide_transfer_pc() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 6f1c8b76a123542b491ab3e9a69984117faa3ebf Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:42 2008 +1000 ide-tape: factor out waiting for good ireason from idetape_transfer_pc() Factor out waiting for good ireason from idetape_transfer_pc() to ide_tape_wait_ireason() as a preparation for adding generic ide_transfer_pc() helper. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit f3a0f8baa264daf16c79e7cee658ea0fe4352250 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:41 2008 +1000 ide-tape: set PC_FLAG_DMA_IN_PROGRESS flag in idetape_transfer_pc() Set PC_FLAG_DMA_IN_PROGRESS flag in idetape_transfer_pc() instead of idetape_issue_pc() to match the other ATAPI device drivers. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 76277f5e17038e1770e8560604f16be0724c6dac Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:41 2008 +1000 ide-floppy: start DMA engine in idefloppy_transfer_pc1() Start DMA engine and set PC_FLAG_DMA_IN_PROGRESS flag in idefloppy_transfer_pc1() instead of idefloppy_issue_pc() so the Status Register and the Interrupt Reason Register are checked first. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 822f00c2d42216e9fa537350c68594adac3518f7 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:41 2008 +1000 ide-{floppy,tape}: PC_FLAG_DMA_RECOMMENDED -> PC_FLAG_DMA_OK * Use PC_FLAG_DMA_OK flag instead of PC_FLAG_DMA_RECOMMENDED one. * Remove no longer used PC_FLAG_DMA_RECOMMENDED flag. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit b7e15929d2b37f4b267bb0b160066739049f6ed1 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:41 2008 +1000 ide-{floppy,tape}: merge pc->idefloppy_callback and pc->idetape_callback Merge pc->idefloppy_callback and pc->idetape_callback into pc->callback. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit f4b3f2a1880e29532319d4e2eaeb0dddc4594384 Author: Borislav Petkov Date: Fri Jun 6 10:59:41 2008 +1000 ide-floppy: merge callbacks The appropriate functionality of the callback is established through querying the ATAPI packet command in pc->c[0]. While at it, simplify if (floppy->failed_pc)-branch to be found in the original idefloppy_request_sense_callback(). Bart: - keep handling for blk_pc_request() requests unchanged + add FIXME - add uptodate variable + leave just one idefloppy_end_request() call - add newline to the debug message Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 9522d947f95894ef2622de0484fe61233ab070a7 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:40 2008 +1000 ide-tape: make pc->idetape_callback void There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 5421d0ed2962dfe29fced93c25e7cb83c691e460 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:40 2008 +1000 ide-tape: merge callbacks The appropriate functionality of the callback is established through querying the ATAPI packet command in pc->c[0]. While at it: - add uptodate variable + leave just one idetape_end_request() call - don't use HWGROUP() macro Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit d684a0dd0b416080c6add39244bee138e80e5148 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:40 2008 +1000 ide-tape: make idetape_retry_pc() void idetape_retry_pc() always returns ide_stopped so make it void. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 3ab34db916cc9131f8b9c7ca7dc26fbe71f525df Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:39 2008 +1000 ide-{floppy,tape,scsi}: log device name instead of driver name Log device name instead of driver name in *_pc_intr() and *_transfer_pc*(). While at it: * Merge two consecutive printk()-s in *_pc_intr() together. * Replace "floppy"/"tape"/"scsi" references in printk()-s by "device". Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 0f68c5bafc8e0844ae0bd1415c4cfa2a3b14cc88 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:39 2008 +1000 ide-floppy: merge idefloppy_transfer_pc() and idefloppy_transfer_pc1() * Check IDEFLOPPY_FLAG_ZIP_DRIVE flag in idefloppy_transfer_pc1() and skip idefloppy_transfer_pc2()-phase if the flag is not set. * Always use idefloppy_transfer_pc1() in idefloppy_issue_pc() and remove no longer needed idefloppy_transfer_pc(). There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit b26fb645d09abf391d5dfa10376e05f31ae1e7bb Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:39 2008 +1000 ide-tape: remove SIMULATE_ERRORS debug code Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit a86c7c81300e3e90d17b0e7405d42eb83eea4338 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:39 2008 +1000 ide-tape: remove stale comments from idetape_pc_intr() Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit f47fbb053c775729754a440022aea205618c50c0 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:38 2008 +1000 ide-tape: remove unneeded CONFIG_BLK_DEV_IDEDMA ifdef PC_FLAG_DMA_IN_PROGRESS flag is never set if DMA support is disabled. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 2d940a83cf80b31f04908105d20118681afc2b57 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:38 2008 +1000 ide-tape: remove superfluous warning message from idetape_issue_pc() ide_dma_off() prints info about DMA being disabled. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 1e8a0d6ac79c6969ff613027ad0ad1afd18e4a54 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:38 2008 +1000 ide-tape: remove superfluous error message from idetape_pc_intr() ide_dma_off() prints info about DMA being disabled. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit ff843b005d8cd33362734c08455c9d900ae7618e Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:38 2008 +1000 ide-tape: idetape_pc_intr() should use local_irq_enable_in_hardirq() Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 4315a56cf44c275f50866ae5152025fa18e028df Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:38 2008 +1000 ide-scsi: add debug_log() macro Add debug_log() macro and convert the driver to use it. [ This makes debug messages to be always prefixed with "ide-scsi: " and use KERN_INFO level. ] While at it: * Change "DMA complete" debug message to "DMA finished" to match other ATAPI device drivers. * Use __func__. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit f127188824f96733eeffaa98be9ac946b622c24c Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:37 2008 +1000 ide-scsi: remove superfluous BUG_ON() from idescsi_transfer_pc() ide_set_handler() bugs on ->handler == NULL so no need to do it in idescsi_transfer_pc(). There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 0ddb35edd2502256a2d38f3397b3f32f12f182bf Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:37 2008 +1000 ide-scsi: merge idescsi_input_buffers() and idescsi_output_buffers() * Merge idescsi_input_buffers() and idescsi_output_buffers() into ide_scsi_io_buffers() helper. While at it: * Log device name instead of driver name on error. * Use xfer_func_t. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit edb53ce4fc6c070b18e64494cfb42fa11a28055e Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:37 2008 +1000 ide-scsi: fix Interrupt Reason checking in idescsi_pc_intr() Set PC_FLAG_WRITING pc flag in idescsi_queue() (if needed) and then fix Interrupt Reason checking in idescsi_pc_intr(). Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 4b36edf26f0fce69512b4a3c5bb7d116a22eddb9 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:37 2008 +1000 ide-scsi: fix handling of DMA errors in idescsi_pc_intr() Check return value of ->dma_end method and if there was a DMA error handle it accordingly (set PC_FLAG_DMA_ERROR pc flag, don't update pc->xferred and increase rq->errors). Also move debug message in the right place while at it. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 285f8b7c926ebd9426785eea3c923f25ef8f5aca Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:36 2008 +1000 ide-scsi: fix DRQ checking for DMA transfers in idescsi_pc_intr() If DRQ bit of Status Register is not cleared it is an error condition and should be handled accordingly (disable DMA + reset the device). Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 6bbc6a1c293e26973d3a0b04e8d4c0b604ba9ce7 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:36 2008 +1000 ide-scsi: fix race in idescsi_transfer_pc() Start DMA engine before sending content of packet command (otherwise it is possible that IRQ will happen before DMA engine is started). Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 3768264eee327412554dfbb840e56163af48c219 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:36 2008 +1000 ide: remove action argument in ide_do_drive_cmd ide_do_drive_cmd is called only with ide_preempt action argument. So we can remove the action argument in ide_do_drive_cmd and ide_action_t typedef. This patch also includes two minor cleanups: 1) ide_do_drive_cmd always succeeds so we don't need the return value; 2) the callers use blk_rq_init before ide_do_drive_cmd so there is no need to initialize rq->errors. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 2567b965850c300e2669faca8b14b24a3285486e Author: FUJITA Tomonori Date: Fri Jun 6 10:59:36 2008 +1000 ide-scsi: replace ide_do_drive_cmd with blk_execute_rq_nowait All the callers of ide_do_drive_cmd() except for ide-scsi use ide_preempt action argument. This converts ide-scsi to use blk_execute_rq_nowait instead of ide_do_drive_cmd so that we can remove the action argument in ide_do_drive_cmd and ide_action_t typedef. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 6512ca3407b72effbd1290188e839bb097302ae7 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:36 2008 +1000 ide: remove drive->ctl Remove drive->ctl (it is always equal to 0x08 after init time). While at it: * Use ATA_DEVCTL_OBS define. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit 145af7fdce18a262ac3d5fd9e618e8eda8e04788 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:35 2008 +1000 ide: use ->OUTBSYNC in ide_set_irq() Signed-off-by: Bartlomiej Zolnierkiewicz commit 800c1bc5f2ec9d8c63f69169b620e100d6727e81 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:35 2008 +1000 ide: use ->OUTBSYNC in init_irq() Signed-off-by: Bartlomiej Zolnierkiewicz commit bdcdb42282f8ad4c406696f21e233c70adc98222 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:34 2008 +1000 ide: pass 'hwif *' instead of 'drive *' to ->OUTBSYNC method There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit b5b7f5c7481dc11fe16916c1dc9b8bf65c9729e7 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:33 2008 +1000 ide: remove ->mmio flag from ide_hwif_t Since scc_pata host driver no longer uses IDE PCI layer / ide_dma_setup() and all other ->mmio users set also IDE_HFLAG_MMIO host flag we can safely remove ->mmio flag. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit 5cb11df8912c0006475b951f8d339ba1882f16bb Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:33 2008 +1000 ide: move IRQ unmasking out from ->tf_load method Move IRQ unmasking out from ->tf_load method to its users. There should be no functional changes caused by this patch (SELECT_MASK() is NOP except for hpt366, icside and sgiioc4). Signed-off-by: Bartlomiej Zolnierkiewicz commit 73d1c021e2ffa5ef14eda720815e71befb85ad76 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:32 2008 +1000 ide: remove IDE_TFLAG_NO_SELECT_MASK taskfile flag Always call SELECT_MASK(..., 0) in ide_tf_load() (needs to be done to match ide_set_irq(..., 1)) and then remove IDE_TFLAG_NO_SELECT_MASK taskfile flag. This change should only affect hpt366 and icside host drivers since ->maskproc(..., 0) for sgiioc4 is equivalent to ide_set_irq(..., 1). Cc: Sergei Shtylyov Cc: Russell King Signed-off-by: Bartlomiej Zolnierkiewicz commit 08059f6f02673ce90ddf1be830e34a1a9368a739 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:32 2008 +1000 ide: fix do_probe() to use SELECT_DRIVE() Fix one place in do_probe() which used ->OUTB directly instead of calling SELECT_DRIVE() (so ->selectproc method is also used). Signed-off-by: Bartlomiej Zolnierkiewicz commit 54fa04f5085eff20c050c6e4f54efbb0192d3d58 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:32 2008 +1000 ide: remove commented out code from ide_config_drive_speed() Signed-off-by: Bartlomiej Zolnierkiewicz commit cd80b3206e0efd03982ccf950a12ae4642a92c5d Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:32 2008 +1000 sgiioc4: use ->extra_base instead of ->dma_status for dma_handle This is a preparation for removal of ->dma_status field from ide_hwif_t. There should be no functional changes caused by this patch. Acked-by: Jeremy Higdon Signed-off-by: Bartlomiej Zolnierkiewicz commit d245a9594e985bc295d13e8b3df6bdfa38ae0cb2 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:31 2008 +1000 ide: remove try_to_flush_leftover_data() Just use the new & shiny ide_pad_transfer() helper instead. Also remove the superfluous check for 'drive->media == ide_disk' while at it (ide_ata_error() is used only for ide_disk devices). Signed-off-by: Bartlomiej Zolnierkiewicz commit 087fea32007717ba771e69b35dfb5f295d627e56 Author: FUJITA Tomonori Date: Fri Jun 6 10:59:31 2008 +1000 block: unexport blk_end_sync_rq All the users of blk_end_sync_rq has gone (they are converted to use blk_execute_rq). This unexports blk_end_sync_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Signed-off-by: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 5154a158c48d927ceec9e28ed16540df9d17a3de Author: FUJITA Tomonori Date: Fri Jun 6 10:59:31 2008 +1000 block: remove the checking for NULL queue in blk_put_request Some uses blk_put_request asymmetrically, that is, they uses it with requests that not allocated by blk_get_request. As a result, blk_put_request has a hack to catch a NULL request_queue. Now such callers are fixed (they use blk_get_request properly). So we can safely remove the hack in blk_put_request. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Signed-off-by: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit ec6c60641eb6c61a6bfb7d831685bac83a68ee85 Author: FUJITA Tomonori Date: Fri Jun 6 10:59:31 2008 +1000 block: convert pd_special_command to use blk_execute_rq pd_special_command uses blk_put_request with struct request on the stack. As a result, blk_put_request needs a hack to catch a NULL request_queue. This converts pd_special_command to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Signed-off-by: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 2cf66b94cc4021b55c1f7aade4096eacc4bdaea0 Author: FUJITA Tomonori Date: Fri Jun 6 10:59:30 2008 +1000 ide-cd: remove ide_cd_init_rq ide_cd_init_rq is not used by ide-cd_ioctl any more. Only cdrom_queue_request_sense use it. This converts cdrom_queue_request_sense to use blk_rq_init directly and removes ide_cd_init_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit ff28d967eb3ff53e1054ff874f2808def15d3177 Author: FUJITA Tomonori Date: Fri Jun 6 10:59:30 2008 +1000 ide: remove ide_init_drive_cmd ide_init_drive_cmd just calls blk_rq_init. This converts the users of ide_init_drive_cmd to use blk_rq_init directly and removes ide_init_drive_cmd. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 9d41e94c63cbaa0edebb841560d1aa1c7608d63d Author: FUJITA Tomonori Date: Fri Jun 6 10:59:30 2008 +1000 ide: remove ide_wait/head_wait path in ide_do_drive_cmd Now all the users of ide_do_drive_cmd using ide_wait/head_wait are converted to use blk_execute_rq this removes the ide_wait/head_wait path in ide_do_drive_cmd. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 4dd1aebec0e0af310a457f9b9e4767a1532664af Author: FUJITA Tomonori Date: Fri Jun 6 10:59:30 2008 +1000 ide: convert ide_do_drive_cmd path to use blk_execute_rq This converts the ide_do_drive_cmd path using ide_[head_]wait to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 1742e29ea9f301d4ca8475c7f5710e13ab8a6272 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:30 2008 +1000 block: handle blk_pm_resume_request() requests in blk_execute_rq_nowait() For blk_pm_resume_request() requests (which are used only by IDE subsystem currently) the queue is stopped so we need to call ->request_fn explicitly. Thanks to: - Rafael for reporting/bisecting the bug - Borislav/Rafael for testing the fix This is a preparation for converting IDE to use blk_execute_rq(). Cc: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Cc: "Rafael J. Wysocki" Signed-off-by: Bartlomiej Zolnierkiewicz commit c892a8f54231e2bef85f3a9e57e979a67e9071b2 Author: FUJITA Tomonori Date: Fri Jun 6 10:59:29 2008 +1000 ide-tape: convert ide_do_drive_cmd path to use blk_execute_rq This converts the ide_do_drive_cmd path using ide_wait to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 5c5a731c748c3388fc4499e4cfabe6497cc923a5 Author: FUJITA Tomonori Date: Fri Jun 6 10:59:29 2008 +1000 ide-taskfile: convert ide_do_drive_cmd path to use blk_execute_rq This converts the ide_do_drive_cmd path using ide_wait to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 41f3ab05dfe49f8432b294406b5104d71031336a Author: FUJITA Tomonori Date: Fri Jun 6 10:59:29 2008 +1000 ide-floppy: convert ide_do_drive_cmd path to use blk_execute_rq This converts the ide_do_drive_cmd path using ide_wait to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 9ae515ea2b72973e6715ec5ac07b522c7fd1d40f Author: FUJITA Tomonori Date: Fri Jun 6 10:59:29 2008 +1000 ide-disk: convert ide_do_drive_cmd path to use blk_execute_rq This converts the ide_do_drive_cmd path using ide_wait to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 3cb040827cf39e7d37aaa9e9ef4405ba1fbdfcd1 Author: FUJITA Tomonori Date: Fri Jun 6 10:59:29 2008 +1000 ide-cd: convert ide_do_drive_cmd path to use blk_execute_rq This converts the ide_do_drive_cmd path using ide_wait to use blk_execute_rq. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit 030e88e78aa55c1861326765f68b67e64ecaa51a Author: FUJITA Tomonori Date: Fri Jun 6 10:59:28 2008 +1000 ide-cd: convert ide_cd_queue_pc to use blk_execute_rq This converts ide_cd_queue_pc to use blk_execute_rq, necessitating changing the ide_cd_queue_pc prototype into a form that doesn't takes a pointer to request struct. ide_cd_queue_pc works like scsi_execute. Signed-off-by: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit bf98e5bec0a904a93c010b85e4f0e10db2b71912 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:28 2008 +1000 ide: use __generic_unplug_device() in ide_do_drive_cmd() (take 2) * Call __elv_add_request() with 'plug' == 1 (so the device will be plugged) and then use __generic_unplug_device() instead of calling ide_do_request() directly. v2: * For blk_pm_resume_request() requests the queue is stopped so we need to call ->request_fn explicitly. Thanks to: - Rafael for reporting/bisecting the bug - Borislav/Rafael for testing the fix This is a preparation for converting IDE to use blk_execute_rq(). Cc: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Cc: "Rafael J. Wysocki" Signed-off-by: Bartlomiej Zolnierkiewicz commit 3aa30f2f3363838c3c6e65ac29803aa4156ace01 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:28 2008 +1000 ide: set REQ_PREEMPT request flag in ide_do_drive_cmd() users * Set REQ_PREEMPT request flag in ide_do_drive_cmd() users for ide_preempt and ide_head_wait action types. * Remove setting REQ_PREEMPT from ide_do_drive_cmd(). While at it: * Set 'where' variable outside ide_lock. This is a preparation for converting IDE to use blk_execute_rq(). There should be no functional changes caused by this patch. Cc: FUJITA Tomonori Cc: Borislav Petkov Cc: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz commit aa9a0a95ca3d73ea51555cce93a9c91a904a2a99 Author: Harvey Harrison Date: Fri Jun 6 10:59:28 2008 +1000 ide: use get_unaligned_* helpers Signed-off-by: Harvey Harrison Cc: Andrew Morton Signed-off-by: Bartlomiej Zolnierkiewicz commit 88bb69fc89227c2733364929a0da7319ff99db6e Author: Harvey Harrison Date: Fri Jun 6 10:59:27 2008 +1000 ide-tape: use clamp_t() rather than nested min_t()/max_t() Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Bartlomiej Zolnierkiewicz commit efa849502e18d57beae5e8f97c9970955aedb3b7 Author: Harvey Harrison Date: Fri Jun 6 10:59:27 2008 +1000 ide: eliminate FIT() macro Replace the FIT() macro with the kernel-provided clamp_val() macro. FIT was always being called with a member of a struct ide_timing, which are shorts, and constant constraints for the min and max. Thus we can use clamp_val, rather than clamp_t. Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Bartlomiej Zolnierkiewicz commit 63350e7580fb2e41f8ef9f9be963d78dc303396b Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:27 2008 +1000 ide: remove obsoleted "ide=" kernel parameters * Remove obsoleted "ide=" kernel parameters. * Remove no longer needed: - ide_setup() - parse_options() - __setup("", ...) - module_param(options, ...) * Use module_{init,exit}() for MODULE=y case and remove MODULE ifdef. * Make ide_*acpi* and ide_doubler variables static. Signed-off-by: Bartlomiej Zolnierkiewicz commit e8a19808c6f5db4255a07d03a2f4bfad3b764779 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:27 2008 +1000 ide: cleanup init_ide_data() * Remove no longer need init_ide_data() call from ide_setup(). * Cleanup init_ide_data(). Signed-off-by: Bartlomiej Zolnierkiewicz commit d4ab523e818f9542d200e9ee9695506b23fb20d7 Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:26 2008 +1000 ide: remove obsoleted "hdx=" kernel parameters * Remove obsoleted "hdx=" kernel parameters. * Remove no longer used stridx() and match_parm(). Signed-off-by: Bartlomiej Zolnierkiewicz commit bced1ab0350ee7019c6998eee56a55f985f25edf Author: Bartlomiej Zolnierkiewicz Date: Fri Jun 6 10:59:26 2008 +1000 ide: remove obsoleted "idebus=" kernel parameter * Remove obsoleted "idebus=" kernel parameter. * Remove no longer needed ide_system_bus_speed() and system_bus_clock() (together with idebus_parameter and system_bus_speed variables). Signed-off-by: Bartlomiej Zolnierkiewicz commit d45f7169715b07f3f270ee5c38e3f6f1b6f92764 Author: Randy Dunlap Date: Fri Jun 6 10:59:05 2008 +1000 doc-move-initrd-txt Continuing Documentation/ tree cleanups and re-organizations. Add early-userspace/00-INDEX file. Move initrd.txt to early-userspace/ sub-dir and remove some trailing whitespace. Signed-off-by: Randy Dunlap commit 55d537be851b9478f7e5f19984334a87c0d2d671 Author: Stefan Roese Date: Fri Jun 6 10:59:00 2008 +1000 i2c-ibm_iic: Remove deprecated OCP style part The deprecated OCP style driver part is used by the "old" arch/ppc platform. This platform is scheduled for removal in June/July this year. This patch now removes the OCP driver part from the IBM I2C driver. Signed-off-by: Stefan Roese Signed-off-by: Jean Delvare commit 4f2acf11c9050efd09144efb5070ba17dcddb8c2 Author: Jean Delvare Date: Fri Jun 6 10:59:00 2008 +1000 i2c: Simplify i2c_device_probe i2c_driver.id_table is mandatory now, so we can simplify i2c_device_probe() a bit. Signed-off-by: Jean Delvare commit 6a0da5bb8e07a0dcbd736de0abdddc46431ca228 Author: Jean Delvare Date: Fri Jun 6 10:58:58 2008 +1000 i2c/eeprom: Fall back to SMBus read word transactions When I2C block reads are not supported by the underlying adapter, use SMBus read word transactions instead of consecutive byte reads. Reasons for this change are: * The consecutive byte read approach is not safe on multi-master buses. * While consecutive byte reads have less overhead if you only count the bytes on the bus, it takes more than twice as many transactions as with SMBus read word transactions, and each transaction has a cost: taking and releasing the adapter mutex, and for polling drivers, waiting for the transaction to complete. This change yields a significant performance boost at HZ=250 with EEPROMs on an Intel 82801 bus (basically twice as fast.) SMBus read word transactions are widely supported so I don't expect compatibility issues. Signed-off-by: Jean Delvare commit 31f675c1e235490020033c8af54f3ac52d6c6c34 Author: Jean Delvare Date: Fri Jun 6 10:58:58 2008 +1000 i2c/eeprom: Only probe buses with DDC or SPD class The eeprom driver shouldn't probe i2c buses which don't want to be probed. Signed-off-by: Jean Delvare commit 40da2ea0224a74e561bd21f3b320df6e3c95c1d5 Author: Jean Delvare Date: Fri Jun 6 10:58:58 2008 +1000 i2c: Let bus drivers add SPD to their class Let general purpose I2C/SMBus bus drivers add SPD to their class. Once this is done, we will be able to tell the eeprom driver to only probe for SPD EEPROMs and similar on these buses. Note that I took a conservative approach here, adding I2C_CLASS_SPD to many drivers that have no idea whether they can host SPD EEPROMs or not. This is to make sure that the eeprom driver doesn't stop probing buses where SPD EEPROMs or equivalent live. So, bus driver maintainers and users should feel free to remove the SPD class from drivers those buses never have SPD EEPROMs or they don't want the eeprom driver to bind to them. Likewise, feel free to add the SPD class to any bus driver I might have missed. Signed-off-by: Jean Delvare commit 8637044823212aefddf5ae2ab740690826e3b4e2 Author: Jean Delvare Date: Fri Jun 6 10:58:58 2008 +1000 i2c: Let framebuffer drivers set their I2C bus class to DDC Let framebuffer drivers set their I2C bus class to DDC. Once this is done, we will be able to tell the eeprom driver to only probe for EDID EEPROMs on these buses. Signed-off-by: Jean Delvare commit 11f6e46f64b92060336146563a37b7f7f2e5d034 Author: Jochen Friedrich Date: Fri Jun 6 10:58:58 2008 +1000 i2c: Add MAINTAINER entry for i2c-cpm Signed-off-by: Jochen Friedrich Signed-off-by: Jean Delvare commit beb0415efea34f78d1e3b57d5f6011f1d98dae5f Author: Jochen Friedrich Date: Fri Jun 6 10:58:57 2008 +1000 i2c: Add support for I2C bus on Freescale CPM1/CPM2 controllers This driver uses the port of 2.4 code from Vitaly Bordug and the actual algorithm used by the i2c driver of the DBox code on cvs.tuxboc.org from Felix Domke (tmbinc@gmx.net) and Gillem (htoa@gmx.net) converted to an of_platform_driver. Tested on CPM1 (MPC823 on dbox2 hardware) and CPM2 (MPC8272). Signed-off-by: Jochen Friedrich Tested-by: Wolfram Sang Signed-off-by: Jean Delvare commit 6025a589003eb98741ad153cdd76cd4068589c30 Author: Alan Cox Date: Fri Jun 6 10:58:57 2008 +1000 i2c: Push ioctl BKL down into the i2c code This is part of the effort to get rid of the BKL. [JD: In fact i2c-dev doesn't need more locking than is already done for the other i2c drivers, so we can simply switch to unlocked_ioctl.] Signed-off-by: Alan Cox Signed-off-by: Jean Delvare commit c5c71e4149441455ec7be2196d30aeeb8c8dd26c Author: Jean Delvare Date: Fri Jun 6 10:58:57 2008 +1000 i2c: Check for ACPI resource conflicts Check for ACPI resource conflicts in i2c bus drivers. I've included all recent SMBus master drivers for PC hardware. I've voluntarily left out: * Drivers that don't run on PCs: they can't conflict with ACPI. * Bit-banged bus device drivers: it's very unlikely that ACPI would deal with such buses. Signed-off-by: Jean Delvare commit f6cf8e7079573dd4dd457d306f5ccf1a493f9334 Author: Alek Du Date: Fri Jun 6 10:58:57 2008 +1000 i2c: Add Intel SCH SMBus support New i2c bus driver for the Intel SCH chipsets (AF82US15W, AF82US15L, AF82UL11L). Signed-off-by: Alek Du Signed-off-by: Jean Delvare commit f978ee3dda870d56e8fd395b76b2fe78a85af9a7 Author: Jean Delvare Date: Fri Jun 6 10:58:56 2008 +1000 i2c: Simplify i2c_del_driver() i2c_del_driver() can be simplified a bit. Signed-off-by: Jean Delvare commit 6d7cb5611f2dbf7a83ee4df5dc4fdd3aa2c56209 Author: Matthias Kaehlcke Date: Fri Jun 6 10:58:56 2008 +1000 i2c: Use list_for_each_entry_safe Use list_for_each_entry_safe() in i2c_del_adapter() and i2c_del_driver(). Signed-off-by: Matthias Kaehlcke Signed-off-by: Jean Delvare commit ed477ada27a1cbf16ac31e149aa0627b1697a01b Author: Wolfram Sang Date: Fri Jun 6 10:58:56 2008 +1000 i2c-pca-platform: Fix error code Fix errorcode to be more descriptive when ioremap fails. Signed-off-by: Wolfram Sang Signed-off-by: Jean Delvare commit eee83c69487c2a08ae04e55dcd7f00fbca834f01 Author: Wolfram Sang Date: Fri Jun 6 10:58:56 2008 +1000 i2c-pca-algo: Fix error code Give a more concrete error code, when the bus is not idle. Signed-off-by: Wolfram Sang Signed-off-by: Jean Delvare commit e41a28b6a4198d019742f6042f780a23b2b8e625 Author: Dave Young Date: Fri Jun 6 10:58:56 2008 +1000 i2c: Use class_for_each_device Use class_for_each_device for iteration. Signed-off-by: Dave Young Signed-off-by: Jean Delvare commit daa5f1d0256d48e899ddf13a66823adb02fa6628 Author: Jean Delvare Date: Fri Jun 6 10:58:55 2008 +1000 i2c: Consistently reject unsupported transactions Many PC SMBus host controller drivers don't properly handle the case where they are requested to achieve a transaction they do not support. Update them so that the consistently print a warning message and return a single error value in this case. Signed-off-by: Jean Delvare commit fb5f68c168348cfe1d8e6dc015082ba1c9575795 Author: Jean Delvare Date: Fri Jun 6 10:58:55 2008 +1000 i2c-piix4: Various cleanups and minor fixes The i2c-piix4 driver was used recently as a model to write a new SMBus host controller driver and this made me realize that the code of this old driver wasn't exactly good. So, here are many cleanups and minor fixes to this driver, so that these minor mistakes aren't duplicated again: * Delete unused structure. * Delete needless forward function declaration. * Properly announce the SMBus host controller as we find it. * Spell it SMBus not SMB. * Return -EBUSY instead of -ENODEV when the I/O region is already in use. * Drop useless masks on the 7-bit address and the R/W bit. * Reject block transaction requests with an invalid block length. * Check and report block transaction replies with an invalid block length. * Delete a useless comment. Signed-off-by: Jean Delvare commit c6e312e9b35a87924c74e68080a6501bd66e68b1 Author: David Brownell Date: Fri Jun 6 10:58:55 2008 +1000 i2c: Bus drivers return -Errno not -1 Tighten error paths used by various i2c adapters (mostly x86) so they return real fault/errno codes instead of a "-1" (which is most often interpreted as "-EPERM"). Build tested, with eyeball review. One minor initial goal is to have adapters consistently return the code "-ENXIO" when addressing a device doesn't get an ACK response, at least in the probe paths where they are already good at stifling related logspam. Signed-off-by: David Brownell Signed-off-by: Jean Delvare commit 96240193a61b13b6c6c8e3f3cccf03e4b9dc3fc1 Author: David Brownell Date: Fri Jun 6 10:58:54 2008 +1000 i2c: i2c_use_client() defends against NULL Defend the i2c refcount calls against NULL pointers, as is important (and conventional) for such calls. Note that none of the current callers of i2c_use_client() use its return value. [JD: I hate this but apparently all the other subsystems do it so...] Signed-off-by: David Brownell Signed-off-by: Jean Delvare commit c6530cc6e7cc4f89291766b7910dfd1328aaf55d Author: David Brownell Date: Fri Jun 6 10:58:54 2008 +1000 i2c: Kerneldoc for most I/O calls Provide kerneldoc for most of the I2C and SMBus I/O calls. Add a comment summarizing some fault reporting issues which affect the ability to provide clean fault reports through I2C master transfer calls. (Making it hard to precisely specify their return values...) Signed-off-by: David Brownell Signed-off-by: Jean Delvare commit ac5a2620e99ec908617f428717e5c909ce7fe4df Author: Jean Delvare Date: Fri Jun 6 10:58:54 2008 +1000 i2c: Update stray references to smbus_access That function is actually named i2c_smbus_xfer. Signed-off-by: Jean Delvare commit 0203e544f1be52933308804d96697646c72d098f Author: Jean Delvare Date: Fri Jun 6 10:58:54 2008 +1000 i2c: Delete unused function i2c_smbus_write_quick Function i2c_smbus_write_quick has no users left, so we can delete it. Also update the list of these helper functions which are gone but could be added back if needed. Signed-off-by: Jean Delvare commit 84c5bf7e375d2e91575ac99dc25bb44569af16d5 Author: Jean Delvare Date: Fri Jun 6 10:58:53 2008 +1000 i2c: Group bus drivers by type The list of I2C/SMBus bus drivers is growing and it is sometimes difficult for the users to figure out what drivers they should enable. By grouping the drivers by type, I hope to make the selection easier. Signed-off-by: Jean Delvare commit 10f7b2b05fe70d0ad359f5f38d3561bc2d99a67c Author: David Brownell Date: Fri Jun 6 10:58:53 2008 +1000 i2c-core: Return -Errno, not -1 More updates to the I2C stack's fault reporting: make the core stop returning "-1" (usually "-EPERM") for all faults. Instead, pass lower level fault code up the stack, or return some appropriate errno. This patch happens to touch almost exclusively SMBus calls. Signed-off-by: David Brownell Signed-off-by: Jean Delvare commit 8ed224174dc5bcb0d4210205e864f2c075d65248 Author: Jean Delvare Date: Fri Jun 6 10:58:53 2008 +1000 i2c-core: Remove needless include i2c-core doesn't use seq files, so doesn't need to include . Signed-off-by: Jean Delvare commit 5a00e9dfa678a6e2e7fe9d3590fa0a20b62f53a3 Author: David Brownell Date: Fri Jun 6 10:58:52 2008 +1000 i2c: Document standard fault codes Create Documentation/i2c/fault-codes to help standardize fault/error code usage in the I2C stack. It turns out that returning -1 (-EPERM) for everything was not at all helpful. Signed-off-by: David Brownell Signed-off-by: Jean Delvare commit 8ac51781594dd55b30606bf23183d5f214603cf6 Author: Mike Frysinger Date: Fri Jun 6 10:58:52 2008 +1000 i2c-bfin-twi: Update the dependencies Since only a few Blackfins lack TWI, just list them in a depends statement. Signed-off-by: Mike Frysinger Signed-off-by: Bryan Wu Signed-off-by: Jean Delvare commit f922b84e6757c47d64ea73411d6a366326802669 Author: Adrian Bunk Date: Fri Jun 6 10:58:52 2008 +1000 i2c: Remove 3 deprecated bus drivers This patch contains the scheduled removal of i2c-i810, i2c-prosavage and i2c-savage4. Signed-off-by: Adrian Bunk Signed-off-by: Jean Delvare commit 1424dc62f03581a54c2ee9767fd91f196b3ef7d5 Author: Jean Delvare Date: Fri Jun 6 10:58:52 2008 +1000 i2c-nforce2: Add support for multiplexing on the Tyan S4985 Just like the Tyan S4882, the S4985 uses a multiplexer to give access to all 16 memory module SPD EEPROMs. This specific i2c-nforce2-s4985 driver adds support for this. It is heavily based on the older i2c-amd756-s4882 driver. As more mainboards will use multiplexer chips, we will have to find a way to support them without having to write a new specfic driver for each. The recent changes to the i2c subsystem should help us, and the new gpio subsystem might help, too. Signed-off-by: Jean Delvare commit aa1ec0f82f43c99825aaf78e7f913a059cc51229 Author: Troy Kisky Date: Fri Jun 6 10:58:52 2008 +1000 i2c-davinci: Initialize cmd_complete sooner If an interrupt happens before an I2c master read/write, complete is called on uninitialized structure. Signed-off-by: Troy Kisky Signed-off-by: Kevin Hilman Signed-off-by: Jean Delvare commit 313a97dbce215c68f698727cb8ddcfd9c24fc016 Author: Troy Kisky Date: Fri Jun 6 10:58:51 2008 +1000 i2c-davinci: Fix signal handling bug If wait_for_completion_interruptible_timeout exits due to a signal, the i2c bus was locking up. Signed-off-by: Troy Kisky Signed-off-by: Kevin Hilman Signed-off-by: Jean Delvare commit b295c796dfe3d7e7bbc6c2880979bdce848aa19b Author: Troy Kisky Date: Fri Jun 6 10:58:51 2008 +1000 i2c-davinci: Remove useless IVR read Interrupts are enabled at the point where the DAVINCI_I2C_IVR_REG is read, so unless an interrupt happened just at that moment, no interrupt would be pending. Even though documentation implies you should do this, I see no reason. If slave support is added, this read would cause a hard to reproduce bug. Signed-off-by: Troy Kisky Signed-off-by: Kevin Hilman Signed-off-by: Jean Delvare commit a026fc99ce03a8926a55cb98d8dac1e895c97433 Author: Troy Kisky Date: Fri Jun 6 10:58:51 2008 +1000 i2c-davinci: Move dev_dbg statement for more output Previously the dev_dbg only printed if no error. Printing also on an error is more useful Signed-off-by: Troy Kisky Signed-off-by: Kevin Hilman Signed-off-by: Jean Delvare commit 3fd6570920476f7d3ca9d31381a08faed4317876 Author: Troy Kisky Date: Fri Jun 6 10:58:51 2008 +1000 i2c-davinci: Ensure clock between 7-12 MHz Ensure psc value gives a clock between 7-12 MHz Signed-off-by: Troy Kisky Signed-off-by: Kevin Hilman Signed-off-by: Jean Delvare commit 46d38da84cd76046ce3a238ce2e794375a783dc3 Author: Ben Dooks Date: Fri Jun 6 10:58:50 2008 +1000 i2c: Documentation: fix device matching description The matching process described for new style clients in Documentation/i2c/writing-clients is classed as out-of-date as it requires the presence of an .id_table entry in the driver's i2c_driver entry. Signed-off-by: Ben Dooks Signed-off-by: Jean Delvare commit 799e0c9d32c0498450c9ae8fe403fbe1c675e2b7 Author: Greg Kroah-Hartman Date: Tue Apr 9 12:14:34 2002 -0700 USB: driver for gotemp device NOT FOR MAINLINE! This is for the driver tutorial I give. It will not be included in the mainline kernel tree ever. Use the ldusb driver that is already there instead for this device. This is only a teaching tool. commit ff781a4e83d1165890c6bfd9fdca0838312287ca Author: Anderson Lizardo Date: Tue May 13 10:32:45 2008 +0100 uwb: disable command/event filtering for D-Link DUB-1210 The D-Link DUB-1210 HWA uses commands and events from the WHCI specification, although reporting itself as WUSB compliant. Therefore, we disable WUSB command/event filtering for it. USB_DEVICE_AND_INTERFACE_INFO is used for matching only the RC interface. Signed-off-by: Anderson Lizardo Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 018c21dab342882c838644a3629fa42ed6698cf6 Author: Anderson Lizardo Date: Tue May 13 10:32:57 2008 +0100 WUSB: fix error path for wusb_set_dev_addr() Error path for wusb_set_dev_addr() was handled incorrectly. Fix it by considering error only when return value is negative. Signed-off-by: Anderson Lizardo Signed-off-by: David Vrabel commit 655167f50b11edad50cfa9200ae2d36117dca589 Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:57 2008 +0100 wusb: add hwa-hc wireless host controller driver Add a driver for Wireless USB host controllers connected via USB (a Host Wire Adapter or HWA). Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit fedb5e2b781e83856b5fe49af4a120bf9b8c309d Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:56 2008 +0100 wusb: add the Wire Adapter (WA) core Common code for supporting Host Wire Adapters and Device Wire Adapters. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 65be4ae9eefa1e2e24116419345e66761e5e81a8 Author: David Vrabel Date: Tue May 13 10:32:55 2008 +0100 wusb: WHCI host controller driver A driver for Wireless USB host controllers that comply with the Wireless Host Controller Interface (HCI) specification as published by Intel. The latest publically available version of the specification (0.95) is supported (except for isochronous transfers). Build fixes by Randy Dunlap Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit ec706b79c5998f6b6ca71e5848493506e51d5207 Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:54 2008 +0100 wusb: add the USB wusb-cbaf driver Add a driver for cable based associated of (Wireless) USB devices. Cc: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 0d4cb833fb5adfd3c36fb88c12745826fbbc7a64 Author: Greg Kroah-Hartman Date: Tue May 13 10:32:53 2008 +0100 wusb: add the Wireless USB core (build-system) Add the WUSB build system (Kconfig and Kbuild) files. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit dbb8dfc816bf29388a694da2d85037f52544cee5 Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:52 2008 +0100 wusb: add the Wireless WUSB core (security) Add the WUSB security (authentication) code. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit f8c0adad4695b68fd3d0fa85f55f347962d37eb7 Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:51 2008 +0100 wusb: add the Wireless USB core (protocol) Add the WUSB protocol (MMC management and device connection) code. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit ecda1e3e5585d4ca3ce2a89f0b7ba58cc3dcf7ff Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:50 2008 +0100 wusb: add the Wireless USB core Add support for Ceritified Wireless USB 1.0 to the USB stack. This has been split into several patches for easier review. core (this patch): - host controller infrastructure - cluster reservation - UWB PAL registration - fake root hub protocol: - MMC management (start/stop, managing IEs) - device connection security: - device authentication and authorization build-system: - Kconfig and Kbuild files Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit f3bfef378538d2041f7ccc1eab583a7f9360eab7 Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:49 2008 +0100 wusb: add the Wireless USB include files. Common header files derived from the WUSB 1.0 specification. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 08ed4aa67781d626f227142174449d160355c497 Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:48 2008 +0100 uwb: add the i1480 WLP driver Add the driver for the WLP capability of the Intel i1480 device. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 56fedd5d6b8ef3b06162e083de540305b88c03a0 Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:47 2008 +0100 uwb: add the i1480 DFU driver Add the driver for downloading the firmware to an Intel i1480 device. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 8c9a97646714f43ae1af93e642d7a6ca8723980c Author: Greg Kroah-Hartman Date: Tue May 13 10:32:46 2008 +0100 uwb: add WiMedia LLC Protocol (build system) Add the WLP build system (Kconfig and Kbuild files). Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 8721d3b8e7e5ca83e4d0cc94c45a29c95c50b0f4 Author: Reinette Chatre Date: Tue May 13 10:32:45 2008 +0100 uwb: add WiMedia LLC Protocol stack (WSS) Add the Wireless Service Set (WSS) code. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 03f39b4b5fda7120cb594bf4c5dd3af49157dcbc Author: Reinette Chatre Date: Tue May 13 10:32:44 2008 +0100 uwb: add WiMedia LLC Protocol stack (messages) Add the WLP message formatting/decoding code. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 3f03dbae9c1bf7792cfb2a35464cab152f45c11b Author: Reinette Chatre Date: Tue May 13 10:32:43 2008 +0100 uwb: add the WiMedia LLC Protocol stack Add the generic code for the WiMedia Logical Link Control Protocol (WLP). This has been split into several patches for easier review. core (this patch): - everything else messages: - WLP message construction/decode wss: - Wireless Service Set support build-system: - Kconfig and Kbuild files Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 1aa367595f985ce85969c134b79454de87c676d5 Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:42 2008 +0100 uwb: add hwa-rc radio controller driver Add a driver for USB-connected UWB radio controllers (HWAs). Cc: Inaky Perez-Gonzalez Signed-off-by: Greg Kroah-Hartman commit 1893cb422664ac77aaa3cbc129f3e613ebfd7081 Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:41 2008 +0100 uwb: add whc-rc radio control driver Add the driver for WHCI radio controllers. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 5fd73cbd1456310a35895339c27dd9a3c00e1c4f Author: David Vrabel Date: Tue May 13 10:32:40 2008 +0100 uwb: add the driver to enumerate WHCI capabilities This enumerates the capabilties of a WHCI device, adding a umc device for each one. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 96ef9ae9aa2d164bd7e1f71a8461e638ac577ceb Author: David Vrabel Date: Tue May 13 10:32:39 2008 +0100 uwb: add the umc bus The UMC bus is used for the capabilities exposed by a UWB Multi-interface Controller as described in the WHCI specification. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 0df070201a8d282be2f06c63b886b38e15425854 Author: Greg Kroah-Hartman Date: Tue May 13 10:32:38 2008 +0100 uwb: add the UWB stack (build system) The Kbuild and Kconfig files. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit d0571d881bf6fc95dc85361842bb522d70f7e3f0 Author: David Vrabel Date: Tue May 13 10:32:37 2008 +0100 uwb: add the UWB stack (debug support) Add various debugfs files, principaly for the reservation manager. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 2ba2decab07a648edebe86f414afacd61442d535 Author: David Vrabel Date: Tue May 13 10:32:36 2008 +0100 uwb: add the UWB stack (reservation manager) DRP and reservation management. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 39b48a455c0dc62d92a14d90fc2ccf87e581407a Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:35 2008 +0100 uwb: add the UWB stack (MLME) Most of the MAC Layer Management Entity (MLME) support: address, beacon, IE and scan management. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 88bf0bd64e94b2e48786dfb038e4f33ac7ed6314 Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:34 2008 +0100 uwb: add the UWB stack (radio controller interface) Add the UWB radio controller interface (URCI) support. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 0e022dd10c60b55f5f9bcce8d0672736bc6674ef Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:33 2008 +0100 uwb: add the UWB stack (core files) UWB device and radio controller device and event management. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit 47454d3ed3d99f126a4bfbd4010606e6fa249517 Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:32 2008 +0100 uwb: add the uwb include files Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit a221c6e3ed7bef5ab6f2865e46a917a4f6319f58 Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:31 2008 +0100 uwb: add initial documentation Documentation (and example utilities) for the UWB (and WUSB) stacks. Some of the documentation may be out-of-date. Signed-off-by: David Vrabel Signed-off-by: Greg Kroah-Hartman commit dafef61233255409ac96cbef8d7ee371f03ced6f Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:30 2008 +0100 USB: add usb_dev_reset_delayed Introduce a new utility function to be able to reset a device from interrupt context using a workqueue. If a reset is already pending, it won't schedule another one. This has been NACKed by Oliver Neukum and Alan Stern. NOT TO BE SUBMITTED!!! Signed-off-by: Inaky Perez-Gonzalez commit a43f9ce86d82e864315dbfaeacd5e70f1fd8c6fc Author: Inaky Perez-Gonzalez Date: Tue May 13 10:32:28 2008 +0100 Add helper macros for little-endian bitfields This adds some macros to help in defining structures with little-endian values with bitfields. Useful when defining hardware interfaces. Signed-off-by: David Vrabel commit 301c54f46c0225da4339f13018d8835542166d25 Author: David Vrabel Date: Tue May 13 10:32:27 2008 +0100 bitmap: add bitmap_copy_le() bitmap_copy_le() copies a bitmap, putting the bits into little-endian order (i.e., each unsigned long word in the bitmap is put into little-endian order). The UWB stack used bitmaps to manage Medium Access Slot availability, and these bitmaps need to be written to the hardware in LE order. Signed-off-by: David Vrabel Cc: Inaky Perez-Gonzalez commit 5f87140f21c4433e9aa1ac20af6ec48f42722959 Author: Alexey Dobriyan Date: Wed May 14 16:25:13 2008 -0700 USB: rndis: switch to seq_files Signed-off-by: Alexey Dobriyan Cc: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit a7b84cddfc5a36424a697718869c882a85c26acc Author: David Brownell Date: Fri May 16 10:44:09 2008 -0700 usb serial gadget: use new tty glue Teach "gadget serial" to use the new abstracted (and bugfixed) TTY glue, and remove all the orignal tangled-up code. Update the documentation accordingly. This is a net object code shrink and cleanup; it should make it a lot easier to see how the TTY glue should accomodate updates to the TTY layer, be bugfixed, etc. Notable behavior changes include: it can now support getty even when there's no USB connection; it fits properly into the mdev/udev world; and RX handling is better (throttling works, and low latency). Configurations with scripts setting up the /dev/ttygserial device node (with "experimental" major number) may want to change that to be a symlink pointing to the /dev/ttyGS0 file, as a migration aid; else, just switch entirely over to mdev/udev. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit aa73ecfc4352ba355a4cb74cea4f7a233bece859 Author: David Brownell Date: Fri May 16 10:42:09 2008 -0700 usb serial gadget: modular tty glue This abstracts the "gadget serial" driver TTY glue into a separate module, cleaning it up and disentangling it from connection state. It also changed some behaviors for the better: - Stops using "experimental" major #127, and switches over to having the TTY layer allocate the dev_t numbers. - Provides /sys/class/tty/ttyGS* nodes, thus mdev/udev support. (Note "mdev" hotplug bug in Busybox v1.7.2: /dev/ttyGS0 will be a *block* device without CONFIG_SYSFS_DEPRECATED_V2.) - The tty nodes no longer reject opens when there's no host. Now they can support normal getty configs in /etc/inttab... - Now implements RX throttling. When the line discipline says it doesn't want any more data, only packets in flight will be delivered (currently, max 1K/8K at full/high speeds) until it unthrottles the data. - Supports low_latency. This is a good policy for all USB serial adapters, since it eliminates scheduler overhead on RX paths. This also includes much cleanup including better comments, fixing memory leaks and other bugs (including some locking fixes), messaging cleanup, and an interface audit and tightening. This added up to a significant object code shrinkage, on the order of 20% (!) depending on CPU and compiler. A separate patch actually kicks in this new code, using the functions declared in this new header, and removes the previous glue. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit dcdf4354b078044641ea5ded252f5354d38d5773 Author: Adrian Bunk Date: Tue May 20 01:00:24 2008 +0300 USB: remove Documentation/usb/uhci.txt The driver was removed before kernel 2.6.0 Signed-off-by: Adrian Bunk Signed-off-by: Greg Kroah-Hartman commit 298522ecc0c3dce98201bc297038eca1c12e18eb Author: Adrian Bunk Date: Tue May 20 01:00:46 2008 +0300 USB: remove CVS keywords This patch removes CVS keywords that weren't updated for a long time from comments. Signed-off-by: Adrian Bunk Signed-off-by: Greg Kroah-Hartman commit 745ff4e454474c20bdba8d5fcdc80d78784fad96 Author: Alan Stern Date: Thu May 8 11:55:59 2008 -0400 usb-storage: implement "soft" unbinding This patch (as1092) implements "soft" unbinding for usb-storage. When the disconnect routine is called, all commands and reset delays are allowed to complete normally until after scsi_remove_host() returns. This means that the commands needed for an orderly shutdown will be sent through to the device. Unlike before, the driver will now execute every command that it accepts. Hence there's no need for special code to catch unexecuted commands and fail them. The new sequence of events when disconnect runs goes as follows: If the device is truly unplugged, set the DISCONNECTING flag so we won't try to access it any more. If the SCSI-scanning thread hasn't started up yet, prevent it from doing anything by setting the new DONT_SCAN flag. Then wake it up and wait for it to terminate. Remove the SCSI host. This unbinds the upper-level drivers, doing an orderly shutdown. Commands sent to quiesce the device will be transmitted normally, unless the device is unplugged. Set the DISCONNECTING flag so that we won't accept any new commands that might get submitted (there aren't supposed to be any) and we won't try to access the device for resets. Tell the control thread to exit by waking it up with no pending command, and wait for it to terminate. Go on to do all the other normal stuff: releasing resources, freeing memory, and so on. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit f41d9205cf5a58da8c38407c162714946b86b50d Author: Alan Stern Date: Thu May 8 11:54:37 2008 -0400 USB: implement "soft" unbinding This patch (as1091) changes the way usbcore handles interface unbinding. If the interface's driver supports "soft" unbinding (a new flag in the driver structure) then in-flight URBs are not cancelled and endpoints are not disabled. Instead the driver is allowed to continue communicating with the device (although of course it should stop before its disconnect routine returns). The purpose of this change is to allow drivers to do a clean shutdown when they get unbound from a device that is still plugged in. Killing all the URBs and disabling the endpoints before calling the driver's disconnect method doesn't give the driver any control over what happens, and it can leave devices in indeterminate states. For example, when usb-storage unbinds it doesn't want to stop while in the middle of transmitting a SCSI command. The soft_unbind flag is added because in the past, a number of drivers have experienced problems related to ongoing I/O after their disconnect routine returned. Hence "soft" unbinding is made available only to drivers that claim to support it. The patch also replaces "interface_to_usbdev(intf)" with "udev" in a couple of places, a minor simplification. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit d29dd3cd5b94bbca09cd45db2522d4511249e605 Author: Adrian Bunk Date: Mon May 5 21:25:33 2008 +0300 USB: isp1760-hcd.c: make 2 functions static This patch makes the following needlessly global functions static: - enqueue_an_ATL_packet() - enqueue_an_INT_packet() Signed-off-by: Adrian Bunk Acked-by: Sebastian Siewior Signed-off-by: Greg Kroah-Hartman commit eb83bc2279ec1d95735cc54247a0b5db76015a99 Author: Alan Stern Date: Thu May 1 15:36:13 2008 -0400 usb-storage: change remaining semaphore to completion This patch (as1090) converts the one remaining semaphore in usb-storage into a completion. Signed-off-by: Alan Stern Cc: Matthew Dharm Signed-off-by: Greg Kroah-Hartman commit 4921d3528b721d22d741bb1018e0e8780bf92bc9 Author: Alan Stern Date: Thu May 1 15:35:18 2008 -0400 usb-storage: separate dynamic flags from fixed flags This patch (as1089) separates out the dynamic atomic bitflags and the static bitfields in usb-storage. Until now the two sorts of flags have been sharing the same word; this has always been awkward. To help prevent possible confusion, the two new fields each have a different name from the original. us->fflags contains the fixed bitfields (mostly taken from the USB ID table in unusual_devs.h), and us->dflags contains the dynamic atomic bitflags (used with set_bit, test_bit, and so on). Signed-off-by: Alan Stern Cc: Matthew Dharm Signed-off-by: Greg Kroah-Hartman commit bafa6018ffd94f2a5fd48e0662e9b1425453778b Author: Alan Cox Date: Tue Apr 29 14:45:15 2008 +0100 USB: io_ti: FIrst cut at a big clean up Sort out the insane naming like "OperationalFirmwareVersion" which seems designed to cause formatting problems and RSI Merge various common code together Clean up the pointlessly complex and spread about MCR handling This is really just the low hanging fruit. Needs lots of testing before it goes upstream so testers and reports appreciated Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 290d17e280f0b80c4e55ad67df87fc48b335bd9c Author: Alan Stern Date: Mon Apr 28 11:07:31 2008 -0400 USB: combine hub_quiesce and hub_stop This patch (as1083) combines hub_quiesce() and hub_stop() into a single routine. There's no point keeping them separate since they are usually called together. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit cb4b1f1f5875a23ce96b4c4239947e9a3d659458 Author: Alan Stern Date: Mon Apr 28 11:07:17 2008 -0400 USB: combine hub_activate and hub_restart This patch (as1071) combines hub_activate() and hub_restart() into a single routine. There's no point keeping them separate, since they are always called together. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit bdf9f6754a1704953fb37bc992a2cd00abb9f170 Author: Alan Stern Date: Mon Apr 28 11:07:07 2008 -0400 USB: optimize port debouncing during hub activation This patch (as1082) makes a small optimization to the way the hub driver carries out port debouncing immediately after a hub is activated (i.e., initialized, reset, or resumed). If any port-change statuses are observed, the code will delay for a minimal debounce period -- thereby making a good start at debouncing all the ports at once. If this wasn't sufficient then khubd will debounce any port that still requires attention. But in most cases it should suffice; it's rare for a device to need more than a minimal debounce delay. (In the cases of hub initialization or reset even that is most likely not needed, since any devices plugged in at such times have probably been attached for a while.) Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 68db8fc92ae5672809080d313ad4730246b11acb Author: Alan Stern Date: Mon Apr 28 11:06:55 2008 -0400 USB: try to salvage lost power sessions This patch (as1073) adds to khubd a way to recover from power-session interruption caused by transient connect-change or enable-change events. After the debouncing period, khubd attempts to do a USB-Persist-style reset or reset-resume. If it works, the connection will remain unscathed. The upshot is that we will be more immune to noise caused by EMI. The grace period is on the order of 100 ms, so this won't permit recovery from the "accidentally knocked the USB cable out of its socket" type of event, but it's a start. As an added bonus, if a device was suspended when the system goes to sleep then we no longer need to check for power-session interruptions when the system wakes up. Khubd will naturally see the status change while processing the device's parent hub and will do the right thing. The remote_wakeup() routine is changed; now it expects the caller to acquire the device lock rather than acquiring the lock itself. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 8cc33e01dbfff1960e7096a8ae0279b437eb9f1a Author: Alan Stern Date: Mon Apr 28 11:06:42 2008 -0400 USB: simplify hub_restart() logic This patch (as1081) straightens out the logic of the hub_restart() routine. Each port of the hub is scanned and the driver makes sure that ports which are supposed to be disabled really _are_ disabled. Any ports with a significant change in status are flagged in hub->change_bits, so that khubd can focus on them without the need to scan all the ports a second time -- which means the hub->activating flag is no longer needed. Also, it is now recognized explicitly that the only reason for resuming a port which was not suspended is to carry out a reset-resume operation, which happens only in a non-CONFIG_USB_SUSPEND setting. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 0810b6f181f8d7c71816ec13f5aab8f0f1d166d1 Author: Alan Stern Date: Mon Apr 28 11:06:28 2008 -0400 USB: debounce before unregistering This patch (as1080) makes a significant change to the way khubd handles port connect-change and enable-change events. Both types of event are now debounced, and the debouncing is carried out _before_ an existing usb_device is unregistered, instead of afterward. This means that drivers will have to deal with longer runs of errors when a device is unplugged, but they are supposed to be prepared for that in any case. The advantage is that when an enable-change occurs (caused for example by electromagnetic interference), the debouncing period will provide time for the cause of the problem to die away. A simple port reset (added in a forthcoming patch) will then allow us to recover from the fault. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit cb1365b4fac30814576e3c7ebfdfa6bba8794991 Author: Alan Stern Date: Mon Apr 28 11:06:11 2008 -0400 USB: add new routine for checking port-resume type This patch (as1070) creates a new subroutine to check whether a device can be resumed. This code is needed even when CONFIG_USB_SUSPEND isn't set, because devices do suspend themselves when the root hub (and hence the entire bus) is suspended, and power sessions can get lost during a system sleep even without individual port suspends. The patch also fixes a loose end in USB-Persist reset-resume handling. When a low- or full-speed device is attached to an EHCI's companion controller, the port handoff during resume will cause the companion port's connect-status-change feature to be set. If that flag isn't cleared, the port-reset code will think it indicates that the device has been unplugged and the reset-resume will fail. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit a0477704fb2fc0b621eb6637128e10bd8b7a2acc Author: Alan Cox Date: Tue Apr 29 14:38:22 2008 +0100 ti_usb: kick firmware into user space The patch leaves a compile it in option as distributions need time to update to this, and hopefully to doing the same over time with more serial drivers. Firmware belongs on disk (cheap) not in kernel non paged memory. Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit a94c02d5622363d5b6de13e7facc6898d99abbe5 Author: Harvey Harrison Date: Thu May 1 20:52:57 2008 -0700 USB: use get_unaligned_* helpers for kl5kusb105 driver Signed-off-by: Harvey Harrison Signed-off-by: Greg Kroah-Hartman commit 5aada95fe8ff6a51e0d16c2d882cdf3f1fef0d59 Author: Andrew Morton Date: Fri Aug 24 16:11:54 2007 -0700 sysfs: crash debugging Print the name of the last-accessed sysfs file when we oops, to help track down oopses which occur in sysfs store/read handlers. Because these oopses tend to not leave any trace of the offending code in the stack traces. Cc: Kay Sievers Cc: Mathieu Desnoyers Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 01c3b408f95b19670cca23521241a90213e74126 Author: Dave Hansen Date: Thu Mar 16 17:30:16 2006 -0800 warn when statically-allocated kobjects are used One of the top ten sysfs problems is that users use statically allocated kobjects. This patch reminds them that this is a naughty thing. One _really_ nice thing this patch does, is us the kallsyms mechanism to print out exactly which symbol is being complained about: The kobject at, or inside 'statickobj.2'@(0xc040d020) is not dynamically allocated. This patch replaces the previous implementation's use of a _sdata symbol in favor of using kallsyms_lookup(). If a kobject's address is a resolvable symbol, then it isn't dynamically allocated. The one exception to this is init symbols. The patch also checks to see whether __init memory has been freed and if it has will allow kobjects in those sections. Signed-off-by: Dave Hansen Signed-off-by: Greg Kroah-Hartman commit 3fcc7d3405187a996c7ea8de964fa807ad1b9ec5 Author: Greg Kroah-Hartman Date: Fri Jun 6 10:58:30 2008 +1000 Make put_device() warn that it will sleep This makes scsi emit messages all over the place... But it's something that we need to fix up. Signed-off-by: Greg Kroah-Hartman commit da2a6933fbdd2f64af4a35849fc7b2f01d8f8e7c Author: Greg Kroah-Hartman Date: Sun Jan 27 10:29:20 2008 -0800 NET: convert the phy_device file to use bus_find_device_by_name The driver core now has this helper function, so might as well use it instead of forcing the phy code to roll their own version. Signed-off-by: Greg Kroah-Hartman commit 45809050f1b7db9cded3fca2247dcf7c4297a230 Author: David Woodhouse Date: Fri May 23 18:38:49 2008 +0100 firmware: make fw->data const In preparation for supporting firmware files linked into the static kernel, make fw->data const to ensure that users aren't modifying it (so that we can pass a pointer to the original in-kernel copy, rather than having to copy it). Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 5915b346fac182ad95a13521d7426cb3bef63396 Author: Greg Kroah-Hartman Date: Thu May 29 10:05:08 2008 -0700 x86 microcode: firmware data is const Cc: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit c50a18539c5fd90c5f85058f3fc56d3cfa9e5fb3 Author: Greg Kroah-Hartman Date: Thu May 29 10:05:08 2008 -0700 dell_rbu: firmware data is const Cc: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 676dee392cd590b8d6558ebc83bb807dc84a875d Author: Greg Kroah-Hartman Date: Thu May 29 10:05:08 2008 -0700 isight: firmware data is const Cc: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit b9e50b4a853203336f713bb854f0aa55230aa9f8 Author: David Woodhouse Date: Thu May 29 14:40:00 2008 +0300 ymfpci: treat firmware data as const Standardise both in-kernel and loaded firmware to be stored as little-endian instead of host-endian. Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit a160c0fa02a2f1b1057de9886d44138a863657df Author: David Woodhouse Date: Thu May 29 11:58:27 2008 +0300 maestro3: treat firmware data as const The maestro3 driver is byte-swapping its firmware to be host-endian in advance, when it doesn't seem to be necessary -- we could just use le16_to_cpu() as we load it. Doing that means that we need to switch the in-tree firmware to be little-endian too. Take the least intrusive way of doing this, which is to switch the existing snd_m3_convert_from_le() function to convert _to_ little-endian instead, and use it on the in-tree firmware instead of the loaded firmware. It's a bit suboptimal but doesn't matter much right now because we're about to remove the special cases for the in-tree version anyway. Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 37c95c2b7f95ac93d49211fc662780438d0f9f97 Author: David Woodhouse Date: Sat May 24 00:13:34 2008 +0100 tuners: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit a35bdc040ff9adb6d0196715ba23bd98ebb372b1 Author: David Woodhouse Date: Sat May 24 00:13:08 2008 +0100 gp8psk: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 13111c4eac0afb1b3f505b572e6f5f422b332d94 Author: David Woodhouse Date: Sat May 24 00:12:42 2008 +0100 cxusb: treat firmware data as const ...which means allocating our own copy when we want to modify it. (stupid thinko fixed by mkrufky) Signed-off-by: David Woodhouse Signed-off-by: Michael Krufky Signed-off-by: Greg Kroah-Hartman commit 631d705a557cd7f0848639e67621dfa879f99231 Author: David Woodhouse Date: Sat May 24 00:12:23 2008 +0100 dvb frontends: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit aeecb7ec7c21faf34877c233c87dc467e1b68b18 Author: David Woodhouse Date: Sat May 24 00:12:00 2008 +0100 ttusb-dec: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 84f7ea8e0e1475fd0d2b3628276be2f405f03045 Author: David Woodhouse Date: Sat May 24 00:11:44 2008 +0100 bt8xx: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit b79810ec3bf30c1c8d43f2b041b84a2871251450 Author: David Woodhouse Date: Sat May 24 00:10:55 2008 +0100 cxgb3: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 494bf3aa9438e80621519eba5ff4671952834996 Author: David Woodhouse Date: Sat May 24 00:10:26 2008 +0100 irda-usb: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit e864f81a7c7809330dbb9c8172c821810aa68992 Author: David Woodhouse Date: Sat May 24 00:09:29 2008 +0100 atmel: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 1dc863dc2de8aba8d72b7abfbec7c8c96ca62714 Author: David Woodhouse Date: Sat May 24 00:08:55 2008 +0100 p54: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit ddf6d583d80319587290afce35cff8be86dbf5ba Author: David Woodhouse Date: Sat May 24 00:08:39 2008 +0100 rt2x00: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 3bc963d49c0c9d2911c46c7153aa89f57dabf8e0 Author: David Woodhouse Date: Sat May 24 00:08:19 2008 +0100 zd1201: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit b0683cfd2fd0b78563a9160afc9d623e603fd8ea Author: David Woodhouse Date: Sat May 24 00:05:45 2008 +0100 aic94xx: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 5301106931c184d25d12434c3ae5ab6352c87cd0 Author: David Woodhouse Date: Sat May 24 00:05:28 2008 +0100 cxacru: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 6e6d4d083566708d91c8c903119fabd9be3fede0 Author: David Woodhouse Date: Sat May 24 00:05:10 2008 +0100 ueagle-atm: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 7b2589dff8e850ca952d151c86013cd5a0d16b88 Author: David Woodhouse Date: Sat May 24 00:02:49 2008 +0100 vx: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 2c17e1e6f133cf6eaf549c474ee3956b4eea18e5 Author: David Woodhouse Date: Sat May 24 00:02:28 2008 +0100 pcxhr: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit e8ab73080b023badeddbd8f2e4b0f5839a4dae61 Author: David Woodhouse Date: Sat May 24 00:02:03 2008 +0100 riptide: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 4d09f6540601eccb528ad776a0afae510bcb12f6 Author: David Woodhouse Date: Sat May 24 00:01:40 2008 +0100 vx222: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit ae5a3d0fd0d5b63144f2a537e9a10d7c465d846c Author: David Woodhouse Date: Sat May 24 00:00:07 2008 +0100 myri10ge: treat firmware data as const ... which means allocating our own buffer for reading it back. Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 3471ebf0142c5c3649653ec07810b48f7681b4d2 Author: David Woodhouse Date: Fri May 23 23:58:24 2008 +0100 cx25840: treat firmware data as const Signed-off-by: David Woodhouse Acked-by: Hans Verkuil Acked-by: Tyler Trafford Acked-by: Mike Isely Signed-off-by: Greg Kroah-Hartman commit 0afe7ed2638fde28b38f236de5125acd99ade2a5 Author: David Woodhouse Date: Fri May 23 23:57:19 2008 +0100 cyclades: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit e34dd490acf6a00ca36472abfd6bde322f9327b6 Author: David Woodhouse Date: Fri May 23 23:56:51 2008 +0100 bluetooth: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 8c1e7a6e6808e5d61aad8e2bbbd85a86f480a320 Author: David Woodhouse Date: Fri May 23 18:37:51 2008 +0100 libertas: treat firmware data as const Signed-off-by: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit 63aed95e652242e62f6fb0ec0ba8e1f8772ebfd0 Author: Greg Kroah-Hartman Date: Fri May 30 10:45:12 2008 -0700 driver core: add init_name to struct device This gives us a way to handle both the bus_id and init_name values being used for a while during the transition period. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 4d54ad95b24d491136e57a6e1fa0789e1d10b007 Author: Greg Kroah-Hartman Date: Fri May 2 06:02:41 2008 +0200 driver core: lguest: convert to new device API to allow names longer than 20 chars Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 84557a68529a9956cc89f88e60438fc061d36008 Author: Kay Sievers Date: Fri May 2 06:02:41 2008 +0200 driver core: convert to new device API to allow names longer than 20 chars Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit b16fa5e051064488f241647a080271f1cd41d077 Author: Kay Sievers Date: Fri May 2 06:02:41 2008 +0200 driver-core: prepare for removal of 20 char limit from struct device The access of struct device->bus_id is replaced by dev_name(), to be able to use the non-limited kobject name after the conversion of the device register callers. Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 276ef9ae6a238d72e295102b819bc0b4a4a50a3b Author: Kay Sievers Date: Fri May 30 17:42:11 2008 +0200 arm: bus_id -> dev_name() and dev_set_name() conversions Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit a13e8cd4479aabfb1ad2e114993ea337cb4e5d36 Author: Cornelia Huck Date: Fri Jun 6 10:58:19 2008 +1000 s390: bus_id -> dev_set_name() changes Convert s390 users setting bus_id to dev_set_name() or init_name. Cc: Kay Sievers Signed-off-by: Cornelia Huck Signed-off-by: Greg Kroah-Hartman commit d3c4fa5771b3654b92fd99ac26dcc80a00e4db1e Author: Cornelia Huck Date: Fri Jun 6 10:58:19 2008 +1000 s390: Use s390_root_dev_* in kvm_virtio. No need to define a static device for the kvm_s390 root device, just use s390_root_dev_register(). This is needed for the bus_id rework Acked-by: Carsten Otte Cc: Kay Sievers Signed-off-by: Cornelia Huck Signed-off-by: Greg Kroah-Hartman commit 25f7103d1780e1dcd6532877feeb9954b35fb2b4 Author: Cornelia Huck Date: Fri Jun 6 10:58:18 2008 +1000 s390: more bus_id -> dev_name conversions Some further bus_id -> dev_name() conversions in s390 code. Cc: Kay Sievers Signed-off-by: Cornelia Huck Signed-off-by: Greg Kroah-Hartman commit 92bc1ce530c968fe61b89228bcc78e791506bced Author: Kay Sievers Date: Fri May 2 06:02:41 2008 +0200 s390: bus_id -> dev_name conversions bus_id -> dev_name() conversions in s390 code. Signed-off-by: Kay Sievers Cc: Cornelia Huck Signed-off-by: Greg Kroah-Hartman commit af730d9a5b5c594e6363d7a3e6562aff1d91e890 Author: Greg Kroah-Hartman Date: Fri May 2 06:02:41 2008 +0200 sparc64: fix up bus_id changes in sparc core code This converts all instances of bus_id in the sparc core kernel to use either dev_set_name(), or dev_name() depending on the need. This is done in anticipation of removing the bus_id field from struct driver. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 20961be49571d9640affb23940735ca96b58b737 Author: Greg Kroah-Hartman Date: Fri May 2 06:02:41 2008 +0200 PCI: make pci_name use dev_name Also fixes up the sparc code that was assuming this is not a constant. Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 9fd46974d54b41ef3349835df08c7b6be9c2c16a Author: Kay Sievers Date: Wed May 28 23:06:47 2008 +0200 pnp: add acpi:* modalias entries Along with the non-modalias conformant "pnp:*" aliases, we add "acpi:*" entries to PNP drivers, to allow module autoloading by ACPI PNP device entries, which export proper modalias information, without any specific userspace modprobe mangling. Cc: Adam Belay Cc: Thomas Renninger Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 7f0d1508c8c9a81de11dceef52b5b43b656fc5ae Author: Greg Kroah-Hartman Date: Fri May 2 06:02:41 2008 +0200 driver core: fix a lot of printk usages of bus_id We have the dev_printk() variants for this kind of thing, use them instead of directly trying to access the bus_id field of struct device. This is done in order to remove bus_id entirely. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 9017341344858334bf4c7b4d584a6043e2d3608f Author: Greg Kroah-Hartman Date: Fri May 2 06:02:41 2008 +0200 driver core: remove DEVICE_ID_SIZE define There is no such thing as a "device id size" in the driver core, so remove the define and fix up any users of this odd define in the rest of the kernel. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 6172554bef00aa9acf92bc92e4c2673b96178629 Author: Kay Sievers Date: Fri May 2 06:02:41 2008 +0200 driver core: remove DEVICE_NAME_SIZE define There is no such thing as a "device name size" in the driver core, so remove the define and fix up any users of this odd define in the rest of the kernel. Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit d471c043fc5b1c5b30eb54bd7297d7a2bed62013 Author: Kay Sievers Date: Fri May 2 06:02:41 2008 +0200 driver core: remove KOBJ_NAME_LEN define Kobjects do not have a limit in name size since a while, so stop pretending that they do. Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit c41859d6238cba53aba31afc8d7932e8cbffb4cd Author: Dave Young Date: Wed May 28 09:28:39 2008 -0700 class: change internal semaphore to a mutex Now that the lockdep infrastructure in the class core is in place, we should be able to properly change the internal class semaphore to be a mutex. David wrote the original patch, and Greg fixed it up to apply properly due to all of the recent changes in this area. From: Dave Young Cc: Matthew Wilcox Cc: Kay Sievers Cc: Andrew Morton Cc: James Bottomley Signed-off-by: Greg Kroah-Hartman commit 1362948212ede778e2e3e614f0fe0ac45eb01a8d Author: Matthew Wilcox Date: Wed May 28 09:28:39 2008 -0700 class: add lockdep infrastructure This adds the infrastructure to properly handle lockdep issues when the internal class semaphore is changed to a mutex. Matthew wrote the original patch, and Greg fixed it up to work properly with the class_create() function. From: Matthew Wilcox Cc: Kay Sievers Cc: Dave Young Cc: Andrew Morton Cc: James Bottomley Cc: Peter Zijlstra Cc: Ingo Molnar Signed-off-by: Greg Kroah-Hartman commit 37bf1aa7d7df4fcfc6a6097106cc81c6ad199399 Author: Greg Kroah-Hartman Date: Wed May 28 09:28:39 2008 -0700 class: fix docbook comments for class_private structure Removes a field that has been deleted, and adds a description fo the class_dirs field which was previously undocumented. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 4b5cc860624be8a5efc4e1995016698caed9c4c3 Author: Greg Kroah-Hartman Date: Wed May 28 09:28:39 2008 -0700 class: rename "sem" to "class_sem" in internal class structure This renames the struct class "sem" field to be "class_sem" to make things easier when struct bus_type and struct class merge in the future. It also makes grepping for fields easier as well. Based on an idea from Kay. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit f210766618a4d7a991d4a50854b10b3e9d8561cb Author: Greg Kroah-Hartman Date: Wed May 28 09:28:39 2008 -0700 class: rename "subsys" to "class_subsys" in internal class structure This renames the struct class "subsys" field to be "class_subsys" to make things easier when struct bus_type and struct class merge in the future. It also makes grepping for fields easier as well. Based on an idea from Kay. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit c73bfc0bf1dd7ba6838680d44fbb794ce9b202c8 Author: Greg Kroah-Hartman Date: Wed May 28 09:28:39 2008 -0700 class: rename "interfaces" to "class_interfaces" in internal class structure This renames the struct class "interfaces" field to be "class_interfaces" to make things easier when struct bus_type and struct class merge in the future. It also makes grepping for fields easier as well. Based on an idea from Kay. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit adf3cc5d16e55b14c617329d4f4eb121242621e4 Author: Greg Kroah-Hartman Date: Wed May 28 09:28:39 2008 -0700 class: rename "devices" to "class_devices" in internal class structure This renames the struct class "devices" field to be "class_devices" to make things easier when struct bus_type and struct class merge in the future. It also makes grepping for fields easier as well. Based on an idea from Kay. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit feed30e354acf27bb6b4e89aaabeec206d2eab83 Author: Greg Kroah-Hartman Date: Tue Jan 22 18:17:41 2008 -0500 class: move driver core specific parts to a private structure This moves the portions of struct class that are dynamic (kobject and lock and lists) out of the main structure and into a dynamic, private, structure. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit eecfe1955900fd3c7b2ef4a8c694691c05ba5352 Author: Greg Kroah-Hartman Date: Tue May 27 11:50:16 2008 -0700 bluetooth: remove improper bluetooth class symlinks. Don't create symlinks in a class to a device that is not owned by the class. If the bluetooth subsystem really wants to point to all of the devices it controls, it needs to create real devices, not fake symlinks. Cc: Maxim Krasnyansky Cc: Kay Sievers Acked-by: Marcel Holtmann Signed-off-by: Greg Kroah-Hartman commit a3ff124168118b57aef25815a684224837bf1eb8 Author: Greg Kroah-Hartman Date: Tue May 27 10:17:53 2008 +0300 infiniband: make cm_device use a struct device and not a kobject. This object really should be a struct device, or at least contain a pointer to a struct device, as it is trying to create a separate device tree outside of the main device tree. This patch fixes this problem. It is needed for the class core rework that is being done in the driver core. Cc: Kay Sievers Cc: Roland Dreier Cc: Sean Hefty Cc: Hal Rosenstock Signed-off-by: Greg Kroah-Hartman commit bf778e787d2671d5422685d6fba806d490374f75 Author: Greg Kroah-Hartman Date: Tue May 27 10:17:53 2008 +0300 infiniband: rename "device" to "ib_device" in cm_device This pointer really is a struct ib_device, not a struct device, so name it properly to help prevent confusion. This makes the followon patch in this series much smaller and easier to understand as well. Cc: Kay Sievers Cc: Roland Dreier Cc: Hal Rosenstock Acked-by: Sean Hefty Signed-off-by: Greg Kroah-Hartman commit 036b9eb17274a6fec2397be9807da7e2caad29df Author: Greg KH Date: Fri Jun 6 10:58:11 2008 +1000 i2c-use-class_for_each_device erom foo@baz Tue Apr 9 12:12:43 2002 Date: Tue, 22 Jan 2008 18:17:41 -0500 To: Greg KH From: Greg Kroah-Hartman Subject: I2C: use class_for_each_device Don't much around in the internals of struct class, but use the proper iterator functions instead. Cc: Kay Sievers Cc: Jean Delvare Signed-off-by: Greg Kroah-Hartman commit fcf9c34ed9d4b98ef08a28cec701531924e5203c Author: Greg Kroah-Hartman Date: Thu May 22 17:21:08 2008 -0400 block: make /proc/partitions and /proc/diskstats use class_find_device() Use the proper class iterator function instead of mucking around in the internals of the class structures. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit dd818c8e08e6da82b14beb54efc352e029d1ee97 Author: Greg Kroah-Hartman Date: Thu May 22 17:21:08 2008 -0400 block: move header for /proc/partitions to seq_start The seq_start call is the better place for the header for the file, that way we don't have to be mucking in the class structure to try to figure out if this is the first partition or not. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 0ee558b9ebaa475591ad91d6c7635d4cd81356b7 Author: Greg Kroah-Hartman Date: Thu May 22 17:21:08 2008 -0400 block: make proc files seq_start use the class_find_device() Use the proper class iterator function instead of mucking around in the internals of the class structures. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 1010202699be20b0ace8c2706375707af7616afe Author: Randy Dunlap Date: Fri May 23 09:44:11 2008 -0700 block: make /proc/diskstats only build if CONFIG_PROC_FS is enabled These functions are only needed if CONFIG_PROC_FS is enabled, so save the space when it is not. This also makes it easier for a patch later in this series to work properly if CONFIG_PROC_FS is not enabled. Signed-off-by: Randy Dunlap Signed-off-by: Greg Kroah-Hartman commit bb7ee70edb8745021c17ab604f2f4c897004e1c5 Author: Greg Kroah-Hartman Date: Thu May 22 17:21:08 2008 -0400 block: make blk_lookup_devt use the class iterator function Use the proper class iterator function instead of mucking around in the internals of the class structures. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 531a49bf799a2c1afd1875425da6b3640a1b6080 Author: Greg Kroah-Hartman Date: Thu May 22 17:21:08 2008 -0400 block: make printk_partition use the class iterator function Use the proper class iterator function instead of mucking around in the internals of the class structures. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit e4ecf9a9992d3896405f0246c22a709ef431e350 Author: Greg Kroah-Hartman Date: Thu May 22 17:21:08 2008 -0400 block: fix compiler warning in genhd.c Warn if something really bad happens if we can't create this link. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit daa142252d5d2bc942b8687a3d7a11f38f8471e7 Author: Greg Kroah-Hartman Date: Thu May 22 17:21:08 2008 -0400 Driver Core: add ability for class_find_device to start in middle of list This mirrors the functionality that driver_find_device has as well. We add a start variable, and all callers of the function are fixed up at the same time. The block layer will be using this new functionality in a follow-on patch. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 8ab80d43316f551aa8daddbd7a49e1ddd3a72d93 Author: Greg Kroah-Hartman Date: Thu May 22 17:21:08 2008 -0400 Driver Core: add ability for class_for_each_device to start in middle of list This mirrors the functionality that driver_for_each_device has as well. We add a start variable, and all callers of the function are fixed up at the same time. The block layer will be using this new functionality in a follow-on patch. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 48cdff5a340b80e35392afa881217a5d351c837b Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 driver core: remove device_create() There are no more users of this, and it is racy. Use device_create_drvdata() or device_create_vargs() instead. Signed-off-by: Greg Kroah-Hartman commit 36a8fe11dd81f15e0dc2d5aff7b233c68815573a Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: x86: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: H. Peter Anvin Signed-off-by: Greg Kroah-Hartman commit fe4d19fdf1a61ae91e432488adb73d8a442c8bc2 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: usb: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Signed-off-by: Greg Kroah-Hartman commit 882412b95c0f5ca86a3de364ed6b240a3151ce70 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: sound: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Jaroslav Kysela Signed-off-by: Greg Kroah-Hartman commit c72ad286223a0c1b6e891c05df2aa64bc2d10b6c Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: scsi: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: James E.J. Bottomley Signed-off-by: Greg Kroah-Hartman commit fa45ed7b88bd1653df26c4ae91dc3081a22f116c Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: s390: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Martin Schwidefsky Cc: Heiko Carstens Signed-off-by: Greg Kroah-Hartman commit e856fedb789ea2f7a37a04e9ec6ed3a6950041e4 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: net: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Jeff Garzik Signed-off-by: Greg Kroah-Hartman commit b1473ec6693176704bdce1f3fdc569ad385fafaa Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: mtd: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: David Woodhouse Signed-off-by: Greg Kroah-Hartman commit db1d65b2567d9c0394a52f980d18957318b1ec0b Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: misc: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Signed-off-by: Greg Kroah-Hartman commit 75b6e0206dcb4a4cfb64d17ac821465374a87a8f Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: mips: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Ralf Baechle Signed-off-by: Greg Kroah-Hartman commit eb7cd9f676cc0c746078cf52d61c80aab01de5a3 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: macintosh: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Benjamin Herrenschmidt Signed-off-by: Greg Kroah-Hartman commit 75d26172a275fd52d75de6021b2b91c7907592e1 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: isdn: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Karsten Keil Signed-off-by: Greg Kroah-Hartman commit 45f7ad5e4e8a612977b13197bbc588212e68aebf Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: infiniband: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Roland Dreier Cc: Sean Hefty Cc: Hal Rosenstock Signed-off-by: Greg Kroah-Hartman commit d0ef08b9588325dc067a4fab5f7279fa4cd68473 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: ieee1394: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Ben Collins Acked-by: Stefan Richter Signed-off-by: Greg Kroah-Hartman commit 1996544e81ceef2da43b5287d76d80b78c4e1132 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: ide: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Bartlomiej Zolnierkiewicz Signed-off-by: Greg Kroah-Hartman commit 493d6f6cb311e6b138ff6eb38fa84fc64779ba30 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: i2c: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Jean Delvare Signed-off-by: Greg Kroah-Hartman commit 103eadd94c25451f23ca59587a4ba6ba2230e8cd Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: hwmon: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Mark M. Hoffman Signed-off-by: Greg Kroah-Hartman commit 6d3fd8910f1629e251b97c50493f7d05ad2ab2f0 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: hid: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Jiri Kosina Signed-off-by: Greg Kroah-Hartman commit 4234db95cc51dbf57d1d6a2469a5b655a26df523 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: framebuffer: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Antonino Daplas Signed-off-by: Greg Kroah-Hartman commit 10ccceb995cb9be0baf678ce2fab8678e1164dc8 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: dvb: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Signed-off-by: Greg Kroah-Hartman commit f40e00af54b8dc00712e555fc46aa5075e8fb70a Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: dca: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Signed-off-by: Greg Kroah-Hartman commit 593a6b5851e4fbdde7784dd1a353288d042291c6 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: coda: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Jan Harkes Signed-off-by: Greg Kroah-Hartman commit d6377129cee4e76841b419a00d4f5d9d1a604a38 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: char: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Signed-off-by: Greg Kroah-Hartman commit c4cc4fec6cd89d29c4ffd69530a8a7de0ad223d5 Author: Greg Kroah-Hartman Date: Wed May 21 12:52:33 2008 -0700 device create: block: convert device_create to device_create_drvdata device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Signed-off-by: Greg Kroah-Hartman commit 9048a7502a5af71d1b6f4402c1eb61c7b3f5e2de Author: Greg Kroah-Hartman Date: Wed May 21 18:21:38 2008 -0400 Firmware: fix typo in example code It's not like this stuff even builds right now, but this will make Randy's scripts happy :) Cc: Randy Dunlap Signed-off-by: Greg Kroah-Hartman commit 9140283101b8072365fd09093f2773f56b29d7d1 Author: Robert P. J. Day Date: Tue May 20 00:06:00 2008 +0200 debugfs: Add a reference to the debugfs API documentation. Signed-off-by: Robert P. J. Day Cc: Jesper Juhl Signed-off-by: Greg Kroah-Hartman commit 882a05e14a2b90f91434bb5e585eaf78664d81a1 Author: Kay Sievers Date: Tue May 6 22:24:04 2008 +0200 kobject: replace '/' with '!' in name Some (block) devices have a '/' in the name, and need special handling. Let's have that rule to the core, so we can remove it from the block class. Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 63c3d5e0a1ebb83dc76664ca227ad7b7655231bd Author: Dan Williams Date: Mon Apr 21 10:51:07 2008 -0700 sysfs: add /sys/dev/{char,block} to lookup sysfs path by major:minor Why?: There are occasions where userspace would like to access sysfs attributes for a device but it may not know how sysfs has named the device or the path. For example what is the sysfs path for /dev/disk/by-id/ata-ST3160827AS_5MT004CK? With this change a call to stat(2) returns the major:minor then userspace can see that /sys/dev/block/8:32 links to /sys/block/sdc. What are the alternatives?: 1/ Add an ioctl to return the path: Doable, but sysfs is meant to reduce the need to proliferate ioctl interfaces into the kernel, so this seems counter productive. 2/ Use udev to create these symlinks: Also doable, but it adds a udev dependency to utilities that might be running in a limited environment like an initramfs. 3/ Do a full-tree search of sysfs. [kay.sievers@vrfy.org: fix duplicate registrations] [kay.sievers@vrfy.org: cleanup suggestions] Cc: Neil Brown Cc: Tejun Heo Acked-by: Kay Sievers Reviewed-by: SL Baur Acked-by: Kay Sievers Acked-by: Mark Lord Acked-by: H. Peter Anvin Signed-off-by: Dan Williams Signed-off-by: Greg Kroah-Hartman commit 1973ea319251d80f6fe65e3c01cd5920f84ca820 Author: Eric W. Biederman Date: Thu May 8 14:41:00 2008 -0700 kobject: Fix kobject_rename and !CONFIG_SYSFS When looking at kobject_rename I found two bugs with that exist when sysfs support is disabled in the kernel. kobject_rename does not change the name on the kobject when sysfs support is not compiled in. kobject_rename without locking attempts to check the validity of a rename operation, which the kobject layer simply does not have the infrastructure to do. This patch documents the previously unstated requirement of kobject_rename that is the responsibility of the caller to provide mutual exclusion and to be certain that the new_name for the kobject is valid. This patch modifies sysfs_rename_dir in !CONFIG_SYSFS case to call kobject_set_name to actually change the kobject_name. This patch removes the bogus and misleading check in kobject_rename that attempts to see if a rename is valid. The check is bogus because we do not have the proper locking. The check is misleading because it looks like we can and do perform checking at the kobject level that we don't. Changelog: v3: Documentation typo fixes v2: Added a declaration of kboject_set_name to sysfs.h so the code actually compiles with !CONFIG_SYSFS. Unscrambling the header dependencies so everything looks beautiful is a project for another day. Signed-off-by: Eric W. Biederman Signed-off-by: Greg Kroah-Hartman commit 62836d89ead6bd0502cb56b31ebccae818db157f Author: David Woodhouse Date: Thu Jun 5 12:59:51 2008 +0100 firmware: convert Ambassador ATM driver to request_firmware() Since it had various regions to be loaded to separate addresses, and it wanted to do them in fairly small chunks anyway, switch it to use the new ihex code. Encode the start address in the first record. Signed-off-by: David Woodhouse commit 9b795a32bf97732d69ecc872dce8475993d68053 Author: David Woodhouse Date: Sat May 31 01:35:29 2008 +0300 whiteheat: use request_firmware() Signed-off-by: David Woodhouse commit 7131bc6ff1b99c57ed62a1a9229605b6101d6efa Author: David Woodhouse Date: Fri May 30 18:49:51 2008 +0300 ti_usb_3410_5052: use request_firmware() Signed-off-by: David Woodhouse commit 103a24fa389d4b80d905575c2a5129a1a39a23f5 Author: David Woodhouse Date: Fri May 30 17:35:47 2008 +0300 emi62: use request_firmware() Signed-off-by: David Woodhouse commit d6185255ebe909e566cd745cc77da0656add41f9 Author: David Woodhouse Date: Fri May 30 16:19:39 2008 +0300 emi26: use request_firmware() Signed-off-by: David Woodhouse commit ccf3219ce4cb3d76c950191aa37309ce5df044f1 Author: David Woodhouse Date: Fri May 30 15:15:13 2008 +0300 keyspan_pda: use request_firmware() Signed-off-by: David Woodhouse commit 56db9e9c91025ea2e18f16fe83fed2571162660f Author: David Woodhouse Date: Fri May 30 14:04:03 2008 +0300 keyspan: use request_firmware() Signed-off-by: David Woodhouse commit 3a4c0b6f1b80b76903538c5c5c4953ac927b5c95 Author: David Woodhouse Date: Sat May 31 15:07:18 2008 +0300 ihex: add ihex2fw tool for converting HEX files into firmware images Not the straight conversion to binary which objcopy can do for us, but actually representing each record with its original {addr, length}, because some drivers need that information preserved. Fix up 'firmware_install' to be able to build $(hostprogs-y) too. Signed-off-by: David Woodhouse commit 0f67276489c7bef88953b8cba72484215e7e37a1 Author: David Woodhouse Date: Sat May 31 15:20:37 2008 +0300 ihex: request_ihex_firmware() function to load and validate firmware Provide a helper to load the file and validate it in one call, to simplify error handling in the drivers which are going to use it. Signed-off-by: David Woodhouse commit a9df289ca6f7e1a9c2dc52d788bfad143a3323e2 Author: David Woodhouse Date: Fri May 30 13:57:27 2008 +0300 ihex.h: binary representation of ihex records Some devices need their firmware as a set of {address, len, data...} records in some specific order rather than a simple blob. The normal way of doing this kind of thing is 'ihex', which is a text format and not entirely suitable for use in the kernel. This provides a binary representation which is very similar, but much more compact -- and a helper routine to skip to the next record, because the alignment constraints mean that everybody will screw it up for themselves otherwise. Also a helper function which can verify that a 'struct firmware' contains a valid set of ihex records, and that following them won't run off the end of the loaded data. Signed-off-by: David Woodhouse commit 4dbface6b2d7b2421276f5bbd248d78b190bc8a4 Author: David Woodhouse Date: Thu May 29 19:50:06 2008 +0300 ttusb-budget: use request_firmware() Signed-off-by: David Woodhouse commit 13ed5f322db46ef9ab1d7221173ee7ec3b23bf56 Author: David Woodhouse Date: Thu May 29 17:17:17 2008 +0300 kaweth: use request_firmware() Signed-off-by: David Woodhouse commit 682944a203ac82f4438ab156cf791a6e013067db Author: Alex Chiang Date: Wed Jun 4 11:39:07 2008 -0600 PCIe: fix 'symbol not declared' sparse warnings While refreshing my physical PCI slot series against upstream, I noticed a few simple sparse/compile warnings that were easy to fix. Fix the following sparse warnings in PCIe: drivers/pci/pcie/aer/aerdrv.c:86:6: warning: symbol 'pci_no_aer' was not declared. Should it be static? drivers/pci/pcie/portdrv_bus.c:21:17: warning: symbol 'pcie_port_bus_type' was not declared. Should it be static? Signed-off-by: Alex Chiang Signed-off-by: Jesse Barnes commit e469e170cbde583917d977779f0c5ab6f37b5e6d Author: Jean Delvare Date: Wed Jun 4 13:53:31 2008 +0200 PCI: Unhide the SMBus on the Compaq Evo D510 One more machine with a hidden Intel SMBus. Unhiding it reveals a SMSC EMC6D100 hardware monitoring chip. I have checked that this machine has no ACPI magic touching the SMBus nor the hardware monitoring chip, so this should be safe. Signed-off-by: Jean Delvare Signed-off-by: Jesse Barnes commit 0a1bb480249153786872df3d1d764139a41993b5 Author: Julia Lawall Date: Thu May 29 15:04:38 2008 +0200 PCI: eliminate double kfree in intel-iommu initialization The destination of goto error also does a kfree(g_iommus), so it is not correct to do one here. This was found using Coccinelle (http://www.emn.fr/x-info/coccinelle/). Signed-off-by: Julia Lawall Signed-off-by: Jesse Barnes commit d7303661c51163efb5b6b7585acaec49979d6974 Author: Stefan Richter Date: Thu Jun 5 20:50:53 2008 +0200 firewire: fw-ohci: write selfIDBufferPtr before LinkControl.rcvSelfID OHCI 1.1 clause 5.10 requires that selfIDBufferPtr is valid when a 1 is written into LinkControl.rcvSelfID. This driver bug has so far not been known to cause harm because most chips obviously accept a later selfIDBufferPtr write. Signed-off-by: Stefan Richter Signed-off-by: Jarod Wilson commit b8cffa01602167c38bea459d43a0d1d338b7c4cb Author: Stefan Richter Date: Thu Jun 5 20:49:38 2008 +0200 firewire: fw-ohci: disable PHY packet reception into AR context We want the rcvPhyPkt bit in LinkControl off before we start using the chip. However, the spec says that the reset value of it is undefined. Hence switch it explicitly off. https://bugzilla.redhat.com/show_bug.cgi?id=244576#c48 shows that for example the nForce2 integrated FireWire controller seems to have it on by default. Signed-off-by: Stefan Richter Signed-off-by: Jarod Wilson commit 4474573a90bae41351fad576fa80c424d62be567 Author: Randy Dunlap Date: Thu Jun 5 09:43:03 2008 -0700 [MTD] [NAND] nandsim: missing header for do_div Fix nandsim build error, missing #include: linux-next-20080605/drivers/mtd/nand/nandsim.c: In function 'divide': linux-next-20080605/drivers/mtd/nand/nandsim.c:462: error: implicit declaration of function 'do_div' Signed-off-by: Randy Dunlap Signed-off-by: David Woodhouse commit 0f202c21878eac14d1c53907888b24945f009ad0 Author: Stefan Richter Date: Sat May 31 19:36:06 2008 +0200 firewire: fw-ohci: use of uninitialized data in AR handler header_length and payload_length are filled with random data if an unknown tcode was read from the AR buffer (i.e. if the AR buffer contained invalid data). We still need a better strategy to recover from this, but at least handle_ar_packet now doesn't return out of bound buffer addresses anymore. Signed-off-by: Stefan Richter commit 17689c01410f5399a6943a0d7e17183e39d393ee Author: Stefan Richter Date: Sat May 31 19:01:26 2008 +0200 firewire: don't panic on invalid AR request buffer BUG() at this place is wrong. (Unless if the low level driver would already do higher-level input validation of incoming request headers.) Invalid incoming requests or bugs in the controller which corrupt the AR-req buffer needlessly crashed the box because this is run in tasklet context. Signed-off-by: Stefan Richter commit 6cee852f5625f0505c8550e93be8ff99a2ec7c45 Author: Stefan Richter Date: Sun May 25 11:06:55 2008 +0200 firewire: don't respond to broadcast write requests Contrary to a comment in the source, request->ack of a broadcast write request can be ACK_PENDING. Hence the existing check is insufficient. Debug dmesg before: AR spd 0 tl 00, ffc0 -> ffff, ack_pending , QW req, fffff0000234 = ffffffff AT spd 0 tl 00, ffff -> ffc0, ack_complete, W resp And the requesting node (linux1394) reports an unsolicited response. Debug dmesg after: AR spd 0 tl 00, ffc0 -> ffff, ack_pending , QW req, fffff0000234 = ffffffff Signed-off-by: Stefan Richter commit 76dbcb2ce8db35894b7eb9bc9532a64040ef9be5 Author: Stefan Richter Date: Sat May 24 16:48:05 2008 +0200 firewire: clean up some includes Signed-off-by: Stefan Richter commit 4b64ad8f4d2ac53786b79c098e81c8f757293a3a Author: Stefan Richter Date: Sat May 24 16:46:10 2008 +0200 firewire: remove unused struct members Signed-off-by: Stefan Richter commit b83a67048e3d6ef128f6492257b9eaaf9de946a8 Author: Stefan Richter Date: Sat May 24 16:41:09 2008 +0200 firewire: implement broadcast_channel CSR for 1394a compliance See IEEE 1394a clause 8.3.2.3.11. Signed-off-by: Stefan Richter commit 222576baf968a64ac0243af5d0fc2bb3538ab96b Author: Mark Salyzyn Date: Wed May 28 15:32:55 2008 -0400 [SCSI] aacraid: prevent copy_from_user() BUG! Seen: kernel BUG at arch/i386/lib/usercopy.c:872 under a 2.6.18-8.el5 kernel. Traced it to a garbage-in/garbage-out ioctl condition in the aacraid driver. Adaptec's special ioctl scb passthrough needs to check the validity of the individual scatter gather count fields to the maximum the adapter supports. Doing so will have the side effect of preventing copy_from_user() from bugging out while populating the dma buffers. This is a hardening effort, issue was triggered by an errant version of the management tools and thus the BUG should not be seen in the field. [jejb: fixed up compile failure] Signed-off-by: Mark Salyzyn Signed-off-by: James Bottomley commit abf94e556db0f53608de72b4e26db05b86d208e6 Author: Martin K. Petersen Date: Thu Jun 5 00:12:59 2008 -0400 [SCSI] scsi_debug: Runtime-configurable sector size Make scsi_debug sector size configurable at load time instead of being a #define. Handy for testing 4KB sectors. Signed-off-by: Martin K. Petersen Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 3c1872bfd710b1b889916585359092440b78d977 Author: FUJITA Tomonori Date: Thu May 29 07:56:55 2008 +0900 [SCSI] bsg: fix bsg_mutex hang with device removal We don't need to hold bsg_mutex during bsg_complete_all_commands(). It leads to a problem that we block bsg_unregister_queue during bsg_complete_all_commands (untill all the outstanding commands complete). Thanks to Pete Wyckoff for finding the bug and testing the patch. The detailed bug report is: http://marc.info/?l=linux-scsi&m=121182137132145&w=2 Tested-by: Pete Wyckoff Signed-off-by: FUJITA Tomonori Signed-off-by: James Bottomley commit 359a90c1276c0b2b0e63fea59d630b0de340bb2e Author: Boaz Harrosh Date: Mon May 26 11:31:19 2008 +0300 [SCSI] iscsi_tcp: Enable any size command Let through upto the largest command of 260 defined by the scsi standard. iscsi core supports this already. Now that the scsi-ml supports it we can start using large commands. [jejb:rejections fixed up] Signed-off-by: Boaz Harrosh Acked-by: Mike Christie Signed-off-by: James Bottomley commit b385608b429bfc71e8beecd1e3a749baea121c40 Author: Geoffrey Wossum Date: Thu Jun 5 13:49:34 2008 +0100 [ALSA] Revised AT32 ASoC Patch Attached is a revised version of my patch to add AT32 to ASoC. This cleans most of the style issues associated with the previous patch. Also fixes an issue with the playpaq_wm8510.c code depending on a non-released patch to th AT32 portmux support. Patch is against 2.6.24.3.atmel.3 kernel, the latest AVR32 kernel Atmel has released, with the linux-2.6-asoc patches from when v2.6.24 was tagged also applied. [Fixed up minor checkpatch issues and updated for current kernels -- broonie] Signed-off-by: Geoffrey Wossum Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit 92c1398457d6ff37efea7d5955e2bd00b47b034b Author: Mark Brown Date: Thu Jun 5 13:49:33 2008 +0100 [ALSA] ASoC: Add WM8990 driver The WM8990 is a highly integrated ultra-low power hi-fi codec designed for handsets rich in multimedia features such as mobile TV, digital audio playback and gaming. The bulk of this driver was written by Liam Girdwood with some additional development and updates for new ASoC APIs by me. Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit 21948004dbb0c58106c721c32a8bf8814c96a616 Author: Mark Brown Date: Thu Jun 5 13:49:32 2008 +0100 [ALSA] ASoC: Add WM8510 driver The WM8510 is a mono CODEC with speaker driver optimised for telephony applications, featuring: - 16/20/24/32 bit audio at data rates between 8kHz and 48kHz - On-chip PLL - Dual microphone inputs This driver was originally written by Liam Girdwood with updates from Brett Saunders, Geoffrey Wossum and myself. Signed-off-by: Liam Girdwood Signed-off-by: Brett Saunders Signed-off-by: Geoffrey Wossum Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit ce517d627858442b7ee91d5f00e2916a26c02268 Author: Harvey Harrison Date: Wed May 21 15:54:20 2008 -0500 [SCSI] scsi: use get_unaligned_* helpers Signed-off-by: Harvey Harrison Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 371e00ed7b4f516d76b87d47948cee0200690974 Author: Harvey Harrison Date: Wed May 21 15:54:19 2008 -0500 [SCSI] Replace __FUNCTION__ with __func__ in iscsi_tcp. __FUNCTION__ is gcc-specific, use __func__ (Update diff by Mike Christie) Signed-off-by: Harvey Harrison Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 1a61e26bd636fded0b957cb92d5aae815c54777a Author: Mike Christie Date: Wed May 21 15:54:18 2008 -0500 [SCSI] libiscsi, iser, tcp: remove recv_lock The recv lock was defined so the iscsi layer could block the recv path from processing IO during recovery. It turns out iser just set a lock to that pointer which was pointless. We now disconnect the transport connection before doing recovery so we do not need the recv lock. For iscsi_tcp we still stop the recv path incase older tools are being used. This patch also has iscsi_itt_to_ctask user grab the session lock and has the caller access the task with the lock or get a ref to it in case the target is broken and sends a tmf success response then sends data or a response for the command that was supposed to be affected bty the tmf. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 42f6f039c84124028ef301b004cf03353a888187 Author: Mike Christie Date: Wed May 21 15:54:17 2008 -0500 [SCSI] libiscsi: fix cmds_max setting Drivers expect that the cmds_max value they pass to the iscsi layer is the max scsi commands + mgmt tasks. This patch implements that and fixes some checks for nr cmd limits. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 4546a24b9dfacbd8bc9a902417a532ebaa88da3d Author: Mike Christie Date: Wed May 21 15:54:16 2008 -0500 [SCSI] iscsi class: Add session initiatorname and ifacename sysfs attrs. This adds two new attrs used for creating initiator ports and binding sessions to hardware. The session level initiatorname: Since bnx2i does a scsi_host per host device, we need to add the iface initiator port settings on the session, so we can create multiple initiator ports (each with different inames) per device/scsi_host. The current iname reflects that qla4xxx can have one iname per hba, and we are allocating a host per session for software. The iname on the host will remain so we can export and set the hba level qla4xxx setting. The ifacename attr: To bind a session to a some peice of hardware in userspace we maintain some mappings, but during boot or iscsid restart (iscsid contains the user space part of the driver) we need to be able to figure out which of those host mappings abstractions maps to certain sessions. This patch adds a ifacename attr, which userspace can set to id the host side of the endpoint across pivot_roots and iscsid restarts. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 90954b69a0b08ac2f4a33d7e258968cb6e0b9eee Author: Mike Christie Date: Wed May 21 15:54:15 2008 -0500 [SCSI] iscsi_tcp: hook iscsi_tcp into iscsi_endpoint code iscsi_tcp creates its ep in userspace using sockets because it is virtual, so we just check if we are sent a ep and fail if we are. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit d576b11ef31bb9f5935e3d9aec9702784a36d3fa Author: Mike Christie Date: Wed May 21 15:54:14 2008 -0500 [SCSI] iser: Modify iser to take a iscsi_endpoint struct in ep callouts and session setup This hooks iser into the iscsi endpoint code. Previously it handled the lookup and allocation. This has been made generic so bnx2i and iser can share it. It also allows us to pass iser the leading conn's ep, so we know the ib_deivce being used and can set it as the scsi_host's parent. And that allows scsi-ml to set the dma_mask based on those values. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit f750906f13a16deb52a04d6d020ea08b26afc5d2 Author: Mike Christie Date: Wed May 21 15:54:13 2008 -0500 [SCSI] iscsi class: add endpoint class Add sysfs representation for the endpoint, so userspace can match the host and session to the endpoint. This will allow us to set the host's parent correctly at host creation time. The next patches will convert tcp and iser, and fix iser's dma_mask bug. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit fe35a7f6fe4bc27d34ec2ecf4beb497dde1d9d02 Author: Mike Christie Date: Wed May 21 15:54:12 2008 -0500 [SCSI] iscsi class: user device_for_each_child instead of duplicating session list Currently we duplicate the list of sessions, because we were using the test for if a session was on the host list to indicate if the session was bound or unbound. We can instead use the target_id and fix up the class so that drivers like bnx2i do not have to manage the target id space. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 900faba6f7e35f1fd4c3a8b8e38975c016abecfd Author: Mike Christie Date: Wed May 21 15:54:11 2008 -0500 [SCSI] iser: handle iscsi_cmd_task rename This handles the iscsi_cmd_task rename and renames the iser cmd task to iser task. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 33e109b925ef4f54a757b03545d97457a63ef5ab Author: Mike Christie Date: Wed May 21 15:54:10 2008 -0500 [SCSI] iscsi_tcp: handle iscsi_cmd_task rename This converts iscsi_tcp to use the iscsi_task name. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit d65577da09eb62502365871d25581be382392355 Author: Mike Christie Date: Wed May 21 15:54:09 2008 -0500 [SCSI] libiscsi: rename iscsi_cmd_task to iscsi_task This is the second part of the iscsi task merging, and all it does it rename iscsi_cmd_task to iscsi_task and mtask/ctask to just task. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit cacbde014258afbd24de7ab78acfca1f40f73e5f Author: Mike Christie Date: Wed May 21 15:54:08 2008 -0500 [SCSI] iser: convert ib_iser to support merged tasks Convert ib_iser to support merged tasks. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit eb8b791a38aa92881b702135a5e46d1b3921b0ee Author: Mike Christie Date: Wed May 21 15:54:07 2008 -0500 [SCSI] iscsi_tcp: convert iscsi_tcp to support merged tasks Convert iscsi_tcp to support merged tasks. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 3c96c59c9787e4d407b8be97435f0c0f0b846ea1 Author: Mike Christie Date: Wed May 21 15:54:06 2008 -0500 [SCSI] libiscsi: merge iscsi_mgmt_task and iscsi_cmd_task There is no need to have the mgmt and cmd tasks separate structs. It used to save a lot of memory when we overprealocated memory for tasks, but the next patches will set up the driver so in the future they can use a mempool or some other common scsi command allocator and common tagging. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 7324db6b639c863245269a3203f29fff0b207da2 Author: Mike Christie Date: Wed May 21 15:54:05 2008 -0500 [SCSI] libiscsi: modify libiscsi so it supports offloaded data paths This patch modifies libiscsi, so drivers like bnx2i and iser can execute a command from queuecommand/send_pdu instead of having to be queued to be run in a workq. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 51b3c49355c212933d99800ec8927c2433d4c322 Author: Mike Christie Date: Wed May 21 15:54:04 2008 -0500 [SCSI] libiscsi, iscsi_tcp, iser: add session cmds array accessor Currently to get a ctask from the session cmd array, you have to know to use the itt modifier. To make this easier on LLDs and so in the future we can easilly kill the session array and use the host shared map instead, this patch adds a nice wrapper to strip the itt into a session->cmds index and return a ctask. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 6e33f88fb6baef650cd2be4c182c685039a6a6af Author: Mike Christie Date: Wed May 21 15:54:03 2008 -0500 [SCSI] iser: fix handling of scsi cmnds during recovery. After the stop_conn callback has returned the LLD should not touch the scsi cmds. iscsi_tcp and libiscsi use the conn->recv_lock and suspend_rx field to halt recv path processing, but iser does not have any protection. This patch modifies iser so that userspace can just call the ep_disconnect callback, which will halt all recv IO, before calling the stop_conn callback so we do not have to worry about the conn->recv_lock and suspend rx field. iser just needs to stop the send side from accessing the ib conn. Fixup to handle when the ep poll fails and ep disconnect is called from Erez. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 7b2dc93f7800533d92a01f7f1ef891b6b4440c28 Author: Mike Christie Date: Wed May 21 15:54:02 2008 -0500 [SCSI] iscsi: modify iscsi printk so it can take driver data pointers Some drivers want to be able to just pass in the driver data pointers to the iscsi objects. To enable this we need the iscsi printk macro to cast the object. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 4b32807339a519eeed4cdf4672d241d0ed435f48 Author: Mike Christie Date: Wed May 21 15:54:01 2008 -0500 [SCSI] iscsi: remove session/conn_data_size from iscsi_transport This removes the session and conn data_size fields from the iscsi_transport. Just pass in the value like with host allocation. This patch also makes it so the LLD iscsi_conn data is allocated with the iscsi_cls_conn. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit b36a6986afdff5243668c40815e4b7214c6894c1 Author: Mike Christie Date: Wed May 21 15:54:00 2008 -0500 [SCSI] iscsi: add iscsi host helpers This finishes the host/session unbinding, by adding some helpers to add and remove hosts and the session they manage. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit cd9f923477801b3207d83ee06f4fdec3f78eb8b8 Author: Mike Christie Date: Wed May 21 15:53:59 2008 -0500 [SCSI] iscsi: remove session and host binding in libiscsi bnx2i allocates a host per netdevice but will use libiscsi, so this unbinds the session from the host in that code. This will also be useful for the iser parent device dma settings fixes. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit b4d95c9b70086ea363f24fedd98bd94ccaf8abd3 Author: Mike Christie Date: Wed May 21 15:53:58 2008 -0500 [SCSI] iscsi class: rename iscsi_host to iscsi_cls_host This renames the iscsi_host to iscsi_cls_host to match the other structs, because libiscsi wants to use the iscsi_host name in the future. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit ac404594075af33ed883d9ce3c0a6cc77e334d3c Author: Mike Christie Date: Wed May 21 15:53:57 2008 -0500 [SCSI] iscsi class, iscsi drivers: remove unused iscsi_transport attrs max_cmd_len and max_conn are not really used. max_cmd_len is always 16 and can be set by the LLD. max_conn is always one since we do not support MCS. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 096b8f177457626c56c650d0e2a37f0de3430a11 Author: Mike Christie Date: Wed May 21 15:53:56 2008 -0500 [SCSI] iscsi class, iscsi_tcp/iser: add host arg to session creation iscsi offload (bnx2i and qla4xx) allocate a scsi host per hba, so the session creation path needs a shost/host_no argument. Software iscsi/iser will follow the same behabior as before where it allcoates a host per session, but in the future iser will probably look more like bnx2i where the host's parent is the hardware (rnic for iser and for bnx2i it is the nic), because it does not use a socket layer like how iscsi_tcp does. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 603cb7381daa21f1cb7e73205ccb1a7d214ce48a Author: Stephen Smalley Date: Thu Jun 5 09:48:51 2008 -0400 selinux: fix endianness bug in network node address handling Fix an endianness bug in the handling of network node addresses by SELinux. This yields no change on little endian hardware but fixes the incorrect handling on big endian hardware. The network node addresses are stored in network order in memory by checkpolicy, not in cpu/host order, and thus should not have cpu_to_le32/le32_to_cpu conversions applied upon policy write/read unlike other data in the policy. Bug reported by John Weeks of Sun, who noticed that binary policy files built from the same policy source on x86 and sparc differed and tracked it down to the ipv4 address handling in checkpolicy. Signed-off-by: Stephen Smalley Signed-off-by: James Morris commit d870bb60987ffa5c10e902dec2a2d202b2ecea29 Author: Stephen Smalley Date: Thu Jun 5 09:21:28 2008 -0400 selinux: simplify ioctl checking Simplify and improve the robustness of the SELinux ioctl checking by using the "access mode" bits of the ioctl command to determine the permission check rather than dealing with individual command values. This removes any knowledge of specific ioctl commands from SELinux and follows the same guidance we gave to Smack earlier. Signed-off-by: Stephen Smalley Signed-off-by: James Morris commit 67be3df55b43b62c7d13478ac4765ff875f03644 Author: Prakash, Sathya Date: Wed May 21 01:02:18 2008 +0530 [SCSI] mpt fusion : Adding FAULT Reset polling work When the firmware is in Fault state it will be identifed only when the next time the driver access the IOC state. This patch includes a polling function in the driver which will be executed in regular interval to check the status of the firmware and if it is in Fault state, then the firmware will be reset by the driver. Signed-off-by: Sathya Prakash Signed-off-by: James Bottomley commit e8ec21775ab141abe96903f82f231eed8e2c66b1 Author: Prakash, Sathya Date: Wed May 21 01:01:11 2008 +0530 [SCSI] mpt fusion : Setting intial period to 0xFF instead of 0xA The initial period is set to 0xFF Signed-off-by: Sathya Prakash Signed-off-by: James Bottomley commit 9b7095b6ca1a614d72b29982c898dc354aa78633 Author: Prakash, Sathya Date: Wed May 21 00:57:42 2008 +0530 [SCSI] Fixing default enabling of MSI for SPI and FC controllers The patch submitted to enable the MSI by default for SAS controllers sets the MSI even for SPI and FC controllers due to a coding error This patch fixes that. Signed-off-by: Sathya Prakash Signed-off-by: James Bottomley commit cddc0ab71194a09c0ac359be10a0f1ef976ddc95 Author: Prakash, Sathya Date: Wed May 21 00:56:41 2008 +0530 [SCSI] mpt fusion : Updated copyright statment with 2008 included Updating copyright statement to include the year 2008 Signed-off-by: Sathya Prakash Signed-off-by: James Bottomley commit 22288ca9e6d19ead263249521ab77e576c6e7fdd Author: Prakash, Sathya Date: Wed May 21 00:55:33 2008 +0530 [SCSI] mpt fusion: Driver version upgrade to 3.04.07 Updating driver version to 3.04.07 from 3.04.06 Signed-off-by: Sathya Prakash Signed-off-by: James Bottomley commit aa0fec62391cd429385e7f3f9fc4a1fb8e2d1218 Author: Christof Schmitt Date: Mon May 19 12:17:47 2008 +0200 [SCSI] zfcp: Fix sparse warning by providing new entry in dbf drivers/s390/scsi/zfcp_dbf.c:692:2: warning: context imbalance in 'zfcp_rec_dbf_event_thread' - different lock contexts for basic block Replace the parameter indicating if the lock is held with a new entry function that only acquires the lock. This makes the lock handling more visible and removes the sparse warning. Signed-off-by: Christof Schmitt Signed-off-by: Martin Peschke Signed-off-by: James Bottomley commit 7337891f381f856a63595392d7e79f2580912bf7 Author: Martin Peschke Date: Mon May 19 12:17:46 2008 +0200 [SCSI] zfcp: remove some __attribute__ ((packed)) There is no need to pack data structures which describe the contents of records in the new recovery trace. lcrash currently depends on the binary format for the other traces, removing the packed attribute from all traces would break trace debugging with lcrash. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 70c665405151bc0fdb73ea47c85eb9d0254770b0 Author: Martin Peschke Date: Mon May 19 12:17:45 2008 +0200 [SCSI] zfcp: Refine trace levels of some recovery related events. This change better spreads trace levels of recovery related events. There was an overlap of traces for some recovery triggers and the processing of recovery actions. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit c3baa9a26c5ac7e8d801093d55d33620d8bc2fe2 Author: Martin Peschke Date: Mon May 19 12:17:44 2008 +0200 [SCSI] zfcp: Add information about interrupt to trace. Store the index of the buffer in the inbound queue used to report request completion in trace record for request coompletion. This piece of information allows to better compare qdio and zfcp traces. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit e891bffe927f39718cf84c35b380d6edb189848b Author: Martin Peschke Date: Mon May 19 12:17:43 2008 +0200 [SCSI] zfcp: Rename sbal_curr to sbal_last. sbal_last is more appropriate, because it matches sbal_first. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit d01d51beee4dd9f7ff9caf7491aa1727a318e665 Author: Martin Peschke Date: Mon May 19 12:17:42 2008 +0200 [SCSI] zfcp: Rename sbal_last. sbal_last is confusing, as it is not the last one actually used, but just a limit. sbal_limit is a better name. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 0f83b110f0cf6aef59e66184d5a1513318d654b5 Author: Martin Peschke Date: Mon May 19 12:17:41 2008 +0200 [SCSI] zfcp: Remove field sbal_last from trace record. This field is not needed, because it designates an index with a fix offset from sbal_first. It's name is confusing anyway. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 5c9a6890de80ed9222e6920f5930c272800f75ad Author: Christof Schmitt Date: Mon May 19 12:17:40 2008 +0200 [SCSI] zfcp: Remove some sparse warnings Remove some sparse warnings by telling sparse that zfcp_req_create acquires the lock for the request queue. Signed-off-by: Christof Schmitt Signed-off-by: Martin Peschke Signed-off-by: James Bottomley commit b21417820f8f659a6b73cc937ab39bf77d350ce6 Author: Heiko Carstens Date: Mon May 19 12:17:39 2008 +0200 [SCSI] zfcp: Fix fsf_status_read return code handling If allocation of a status buffer failed the function incorrectly returned 0 instead of -ENOMEM. Signed-off-by: Heiko Carstens Signed-off-by: Martin Peschke Signed-off-by: James Bottomley commit 9dfe1cc36be27040144238d30da05053db71beb1 Author: Christof Schmitt Date: Mon May 19 12:17:38 2008 +0200 [SCSI] zfcp: Fix mempool pointer for GID_PN request allocation When allocating memory for GID_PN nameserver requests, the allocation function stores the pointer to the mempool, but then overwrites the pointer via memset. Later, the wrong function to free the memory will be called, since this is based on the stored pointer. Fix this by first initializing the struct and then storing the pointer. Signed-off-by: Christof Schmitt Signed-off-by: Martin Peschke Signed-off-by: James Bottomley commit d26ab06ede83287f99067fee3034c5455a75faf9 Author: Swen Schillig Date: Mon May 19 12:17:37 2008 +0200 [SCSI] zfcp: receiving an unsolicted status can lead to I/O stall Processing of an unsolicted status request can lead to a locking race of the request_queue's queue_lock during the recreation of the used up status read request while still in interrupt context of the response handler. Detaching the 'refill' of the long running status read requests from the handler to a scheduled work is solving this issue. In addition, each refill-run is trying to re-establish the full amount of status read requests, which might have failed in earlier runs. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 15424921222f2bed0aa92ef1e8bc94f753d2c6ea Author: Adrian Bunk Date: Tue Apr 22 00:31:51 2008 +0300 [SCSI] mpt fusion: make struct mpt_proc_root_dir static This patch makes the needlessly global struct mpt_proc_root_dir static. Signed-off-by: Adrian Bunk Acked-by: "Prakash, Sathya" Signed-off-by: James Bottomley commit 427e59f09fdba387547106de7bab980b7fff77be Author: James Bottomley Date: Sat Mar 8 18:24:17 2008 -0600 [SCSI] make use of the residue value USB sometimes doesn't return an error but instead returns a residue value indicating part (or all) of the command wasn't completed. So if the driver _done() error processing indicates the command was fully processed, subtract off the residue so that this USB error gets propagated. Cc: Alan Stern Signed-off-by: James Bottomley commit 19c4158bcdf42ee3b2394342caf14f8471d2c78e Author: Alan Stern Date: Fri Mar 7 11:20:25 2008 -0500 [SCSI] SCSI: remove dev->power.power_state from mesh driver power.power_state is scheduled for removal. This patch (as1055) removes all uses of that field from the SCSI mesh driver. Signed-off-by: Alan Stern Acked-by: Paul Mackerras Signed-off-by: James Bottomley commit 13a17fdeedbb156463a9a007378366ec0a0c30ef Author: Harvey Harrison Date: Thu May 8 12:08:53 2008 -0700 [SCSI] aacraid: linit.c make aac_show_serial_number static drivers/scsi/aacraid/linit.c:865:9: warning: symbol 'aac_show_serial_number' was not declared. Should it be static? Signed-off-by: Harvey Harrison Acked-by: Mark Salyzyn Signed-off-by: James Bottomley commit a4c38cfa462be3be6c200740a4f2edbae25903c5 Author: Mark Salyzyn Date: Wed May 7 15:24:23 2008 -0400 [SCSI] aacraid: Add Power Management cards to documentation Update the documented list of products supported by the aacraid driver. Signed-off-by: Mark Salyzyn Signed-off-by: James Bottomley commit 3a0d9e92356feb60ee4e978355f712366a93f4ef Author: Christof Schmitt Date: Tue May 6 11:00:06 2008 +0200 [SCSI] zfcp: sysfs attributes for fabric and channel latencies The latency information is provided on a SCSI device level (LUN) which can be found at the following location  /sys/class/scsi_device//device/cmd_latency  /sys/class/scsi_device//device/read_latency  /sys/class/scsi_device//device/write_latency Each sysfs attribute provides the available data: min, max and sum for fabric and channel latency and the number of requests processed. An overrun of the variables is neither detected nor treated. The file has to be read twice to make a meaningful statement, because only the differences of the values between the two reads can be used. A reset of the values can be achieved by writing to the attribute. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit c9615858a81d2424c78b10a2f689ba24b156937c Author: Christof Schmitt Date: Tue May 6 11:00:05 2008 +0200 [SCSI] zfcp: Track fabric and channel latencies provided by FCP adapter Add the infrastructure to retrieve the fabric and channel latencies from FSF commands for each SCSI command that has been processed. For each unit, the sum, min, max and number of requests is tracked. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 688864e29869a71a8183e4e2f96ccf9f2de1375f Author: Chandra Seetharaman Date: Thu May 1 14:50:40 2008 -0700 [SCSI] scsi_dh: Remove hardware handler infrastructure from dm This patch just removes infrastructure that provided support for hardware handlers in the dm layer as it is not needed anymore. Signed-off-by: Chandra Seetharaman Acked-by: Alasdair G Kergon Signed-off-by: James Bottomley commit cb520223d7f22c5386aff27a5856a66e2c32aaac Author: Chandra Seetharaman Date: Thu May 1 14:50:34 2008 -0700 [SCSI] scsi_dh: Remove hardware handlers from dm This patch removes the 3 hardware handlers that currently exist under dm as the functionality is moved to SCSI layer in the earlier patches. [jejb: removed more makefile hunks and rejection fixes] Signed-off-by: Chandra Seetharaman Acked-by: Alasdair G Kergon Signed-off-by: James Bottomley commit 2651f5d7d3bc5120a439e498f131e4d731f99b3e Author: Chandra Seetharaman Date: Thu May 1 14:50:28 2008 -0700 [SCSI] scsi_dh: Remove dm_pg_init_complete This patch just removes the dm layer's path initialization completion routine. This is separated from the other patch(scsi_dh: Use SCSI device handler in dm-multipath) Just to make that patch more readable. Signed-off-by: Chandra Seetharaman Acked-by: Alasdair G Kergon Signed-off-by: James Bottomley commit bab7cfc733f4453a502b7491b9ee37b091440ec4 Author: Chandra Seetharaman Date: Thu May 1 14:50:22 2008 -0700 [SCSI] scsi_dh: Add a single threaded workqueue for initializing paths Before this patch set (SCSI hardware handlers), initialization of a path was done asynchronously. Doing that requires a workqueue in each device/hardware handler module and leads to unneccessary complication in the device handler code, making it difficult to read the code and follow the state diagram. Moving that workqueue to this level makes the device handler code simpler. Hence, the workqueue is moved to dm level. A new workqueue is added instead of adding it to the existing workqueue (kmpathd) for the following reasons: 1. Device activation has to happen faster, stacking them along with the other workqueue might lead to unnecessary delay in the activation of the path. 2. The effect could be felt the other way too. i.e the current events that are handled by the existing workqueue might get a delayed response. Signed-off-by: Chandra Seetharaman Acked-by: Alasdair G Kergon Signed-off-by: James Bottomley commit cfae5c9bb66325cd32d5f2ee41f14749f062a53c Author: Chandra Seetharaman Date: Thu May 1 14:50:11 2008 -0700 [SCSI] scsi_dh: Use SCSI device handler in dm-multipath This patch converts dm-mpath to use scsi device handlers instead of dm's hardware handlers. This patch does not add any new functionality. Old behaviors remain and userspace tools work as is except that arguments supplied with hardware handler are ignored. One behavioral exception is: Activation of a path is synchronous in this patch, opposed to the older behavior of being asynchronous (changed in patch 07: scsi_dh: Add a single threaded workqueue for initializing a path) Note: There is no need to get a reference for the device handler module (as it was done in the dm hardware handler case) here as the reference is held when the device was first found. Instead we check and make sure that support for the specified device is present at table load time. Signed-off-by: Chandra Seetharaman Signed-off-by: Mike Christie Acked-by: Alasdair G Kergon Signed-off-by: James Bottomley commit 5e7dccad3621f6e2b572f309cf830a2c902cae80 Author: Chandra Seetharaman Date: Thu May 1 14:50:04 2008 -0700 [SCSI] scsi_dh: add EMC Clariion device handler This adds support for EMC Clariions. This patch has the features that currently exists in mainline and advanced features from Ed's patches. Signed-off-by: Chandra Seetharaman Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit f6dd337ee4c440f29a873da3779eb3af44bd1623 Author: Mike Christie Date: Thu May 1 14:49:59 2008 -0700 [SCSI] scsi_dh: add hp sw device handler This patch provides the device handler to support the older hp boxes which cannot be upgraded. Signed-off-by: Mike Christie Signed-off-by: Chandra Seetharaman Signed-off-by: James Bottomley commit fbd7ab3eb53a3b88fefa7873139a62e439860155 Author: Chandra Seetharaman Date: Thu May 1 14:49:52 2008 -0700 [SCSI] scsi_dh: add lsi rdac device handler This patch provides the device handler to support the LSI RDAC SCSI based storage devices. Signed-off-by: Chandra Seetharaman Signed-off-by: James Bottomley commit a6a8d9f87eb8510a8f53672ea87703f62185d75f Author: Chandra Seetharaman Date: Thu May 1 14:49:46 2008 -0700 [SCSI] scsi_dh: add infrastructure for SCSI Device Handlers Some of the storage devices (that can be accessed through multiple paths), do need some special handling for 1. Activating the passive path of the storage access. 2. Decode and handle the special sense codes returned by the devices. 3. Handle the I/Os being sent to the passive path, especially during the device probe time. when accessed through multiple paths. As of today this special device handling is done at the dm-multipath layer using dm-handlers. That works well for (1); for (2) to be handled at dm layer, scsi sense information need to be exported from SCSI to dm-layer, which is not very attractive; (3) cannot be done at all at the dm layer. Device handler has been moved to SCSI mainly to handle (2) and (3) properly. Signed-off-by: Chandra Seetharaman Signed-off-by: Mike Anderson Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 411665558ec45a67e33cce0b04b5e0756de6645d Author: Michael Krufky Date: Thu Jun 5 10:08:29 2008 -0300 V4L/DVB (8001): dib0070: fix dib0070_attach when !CONFIG_DVB_TUNER_DIB0070 Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit 264f918ce518573af958066db65d281c4b3338bc Author: Sigmund Augdal Date: Thu Jun 5 09:53:08 2008 -0300 V4L/DVB (8000): tda827x: fix NULL pointer in tda827xa_lna_gain Check that tda827x_config is defined before attempting to use it. Signed-off-by: Sigmund Augdal Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit 75b9f5d2a0318da9d5e694a9a1be33f46b4c021e Author: mingo@elte.hu Date: Thu Jun 5 11:18:12 2008 +0200 x86, nmi: fix build fix: arch/x86/kernel/built-in.o: In function `proc_nmi_enabled': : undefined reference to `nmi_watchdog_default' arch/x86/kernel/built-in.o: In function `native_smp_prepare_cpus': : undefined reference to `nmi_watchdog_default' Signed-off-by: Ingo Molnar commit 1a1b1d1322ebd1ece405f3057cdd408bc77e391d Author: Cyrill Gorcunov Date: Wed Jun 4 01:00:58 2008 +0400 x86: watchdog - check for CPU is being supported This patch does check if CPU is being recongnized before call the unreserve(). Since enable_lapic_nmi_watchdog() does have such a check the same is make sense here too in a sake of code consistency (but nothing more). Signed-off-by: Cyrill Gorcunov Cc: mingo@redhat.com Cc: hpa@zytor.com Cc: macro@linux-mips.org Signed-off-by: Thomas Gleixner commit 3ed3f06295e69700fa808396f7b350bff2b69de0 Author: Cyrill Gorcunov Date: Wed Jun 4 01:00:47 2008 +0400 x86: nmi - consolidate nmi_watchdog_default for 32bit mode 64bit mode bootstrap code does set nmi_watchdog to NMI_NONE by default and doing the same on 32bit mode is safe too. Such an action saves us from several #ifdef. Btw, my previous commit commit 19ec673ced067316b9732bc6d1c4ff4052e5f795 Author: Cyrill Gorcunov Date: Wed May 28 23:00:47 2008 +0400 x86: nmi - fix incorrect NMI watchdog used by default did not fix the problem completely, moreover it introduced additional bug - nmi_watchdog would be set to either NMI_LOCAL_APIC or NMI_IO_APIC _regardless_ to boot option if being enabled thru /proc/sys/kernel/nmi_watchdog. Sorry for that. Fix it too. Signed-off-by: Cyrill Gorcunov Cc: mingo@redhat.com Cc: hpa@zytor.com Cc: macro@linux-mips.org Signed-off-by: Thomas Gleixner commit 6f8ed28f1a793806f6dd671f1e7e4dbf5df1a2ad Author: Joe Korty Date: Mon Jun 2 17:21:06 2008 -0400 x86: fix asm warning in head_32.S On Mon, May 19, 2008 at 04:10:02PM -0700, Linus Torvalds wrote: > It also causes these warnings on 32-bit PAE: > > AS arch/x86/kernel/head_32.o > arch/x86/kernel/head_32.S: Assembler messages: > arch/x86/kernel/head_32.S:225: Warning: left operand is a bignum; integer 0 assumed > arch/x86/kernel/head_32.S:609: Warning: left operand is a bignum; integer 0 assumed > > and I do not see why (the end result seems to be identical). Fix head_32.S gcc bignum warnings when CONFIG_PAE=y. arch/x86/kernel/head_32.S: Assembler messages: arch/x86/kernel/head_32.S:225: Warning: left operand is a bignum; integer 0 assumed arch/x86/kernel/head_32.S:609: Warning: left operand is a bignum; integer 0 assumed The assembler was stumbling over the 64-bit constant 0x100000000 in the KPMDS #define. Testing: a cmp(1) on head_32.o before and after shows the binary is unchanged. Signed-off-by: Joe Korty Cc: Theodore Tso Cc: Gabriel C Cc: Keith Packard Cc: "Pallipadi Venkatesh" Cc: Eric Anholt Cc: "Siddha Suresh B" Cc: bugme-daemon@bugzilla.kernel.org Cc: airlied@linux.ie Cc: "Barnes Jesse" Cc: Jeremy Fitzhardinge Cc: Andrew Morton Cc: "Rafael J. Wysocki" Cc: Linus Torvalds Signed-off-by: Thomas Gleixner commit 74e411cb6443d8bcb55fbe89fcc7a9ee574df91b Author: Krzysztof Oledzki Date: Wed Jun 4 03:40:17 2008 +0200 x86: add another PCI ID for ICH6 force hpet. Tested on Asus P5GDC-V $ lspci -n -n |grep ISA 00:1f.0 ISA bridge [0601]: Intel Corporation 82801FB/FR (ICH6/ICH6R) LPC Interface Bridge [8086:2640] (rev 03) Force enabled HPET at base address 0xfed00000 hpet clockevent registered hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0 hpet0: 3 64-bit timers, 14318180 Hz Signed-off-by: Krzysztof Piotr Oledzki Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner commit c45a707dbe35cb9aa6490223e5b1129fa3583948 Author: Huang, Ying Date: Mon Jun 2 14:26:25 2008 +0800 x86: linked list of setup_data for i386 This patch adds linked list of struct setup_data supported for i386. Signed-off-by: Huang Ying Cc: andi@firstfloor.org Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 0c51a965ed3c44dd50497e74492a015680e49899 Author: Huang, Ying Date: Mon Jun 2 14:26:23 2008 +0800 x86: extract common part of head32.c and head64.c into head.c This patch extracts the common part of head32.c and head64.c into head.c. Signed-off-by: Huang Ying Cc: andi@firstfloor.org Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit ecacf09f7d26b2317e8b1d59fa40f62081fad0bb Author: Huang, Ying Date: Mon Jun 2 14:26:21 2008 +0800 x86: reserve EFI memory map with reserve_early This patch reserves the EFI memory map with reserve_early(). Because EFI memory map is allocated by bootloader, if it is not reserved by reserved_early(), it may be overwritten through address returned by find_e820_area(). Signed-off-by: Huang Ying Cc: andi@firstfloor.org Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit d0ec2c6f2c2f0478b34ae78b3e65f60a561ac807 Author: Huang, Ying Date: Mon Jun 2 14:26:18 2008 +0800 x86: reserve highmem pages via reserve_early This patch makes early reserved highmem pages become reserved pages. This can be used for highmem pages allocated by bootloader such as EFI memory map, linked list of setup_data, etc. Signed-off-by: Huang Ying Cc: andi@firstfloor.org Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit d3fbe5ea9518b46a68e6b278974e92e2c3acef4a Author: Huang, Ying Date: Mon Jun 2 14:26:14 2008 +0800 x86: split out common code into find_overlapped_early() This patch clean up reserve_early() family functions by extracting the common part of reserve_early(), free_early() and bad_addr() into find_overlapped_early(). Signed-off-by: Huang Ying Cc: andi@firstfloor.org Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 4ff98444c4bcfc20eb18a9fabe0d03d53413d9ad Author: Tobias Lorenz Date: Sat May 31 12:11:32 2008 -0300 V4L/DVB (7997): si470x: hardware frequency seek support This patch brings the following changes: - this now finally adds hardware frequency seek support Signed-off-by: Tobias Lorenz Signed-off-by: Mauro Carvalho Chehab commit b0371807d63d99933728f9a6f26ddfa9ad7c3aee Author: Tobias Lorenz Date: Sat May 31 12:09:07 2008 -0300 V4L/DVB (7996): si470x: afc indication This patch brings the following changes: - afc indication: device has no indication whether freq is too low or too high therefore afc always return 1, when freq is wrong Signed-off-by: Tobias Lorenz Signed-off-by: Mauro Carvalho Chehab commit 47775f09e9e6212a2f1b56b412ecd80e6b96bfee Author: Tobias Lorenz Date: Sat May 31 12:07:52 2008 -0300 V4L/DVB (7995): si470x: a lot of small code cleanups This patch brings the following changes: - comment on how to listen to an usb audio device   (i get so many questions about that...) - code cleanup (error handling, more warnings, spacing, ...) Signed-off-by: Tobias Lorenz Signed-off-by: Mauro Carvalho Chehab commit 791d58dd1b4dda148c9c28acf1e3e39e5fa94882 Author: Tobias Lorenz Date: Sat May 31 12:06:50 2008 -0300 V4L/DVB (7994): si470x: let si470x_get_freq return errno This patch brings the following changes: - version bumped to 1.0.8 for all the following patches - si470x_get_freq now returns errno Signed-off-by: Tobias Lorenz Signed-off-by: Mauro Carvalho Chehab commit bf291df404eb283bf62cf73b9d0d79fafd6b99f8 Author: Tobias Lorenz Date: Sat May 31 12:04:32 2008 -0300 V4L/DVB (7993): si470x: move global lock to device structure this patch brings the following changes: - move the global disconnect lock into the device structure - code cleanup (spaces to tabs, long line splits, ...) Signed-off-by: Tobias Lorenz Signed-off-by: Mauro Carvalho Chehab commit 4f384f8bcdb5d618a0a68fb84c809e602c798b8f Author: Pavel Machek Date: Mon May 26 21:17:30 2008 +0200 x86: aperture_64.c: corner case wrong If fix == 0, aper_enabled == 1, gart_fix_e820 == 0 if (!fix && !aper_enabled) return; if (gart_fix_e820 && !fix && aper_enabled) { if (e820_any_mapped(aper_base, aper_base + aper_size, E820_RAM)) { /* reserve it, so we can reuse it in second kernel */ printk(KERN_INFO "update e820 for GART\n"); add_memory_region(aper_base, aper_size, E820_RESERVED); update_e820(); } return; } /* different nodes have different setting, disable them all atfirst*/ we'll fall back here and disable all the settings, even when they were all consistent. What about this? (I hope it compiles...) Signed-off-by: Pavel Machek Cc: Dave Jones Cc: Andi Kleen Signed-off-by: Thomas Gleixner commit fa5b8a30cf03520737e9a0ee2ee03a61b2eccf05 Author: Pavel Machek Date: Mon May 26 20:40:47 2008 +0200 aperture_64.c: duplicated code, buggy? Hi! void __init early_gart_iommu_check(void) contains for (num = 24; num < 32; num++) { if (!early_is_k8_nb(read_pci_config(0, num, 3, 0x00))) continue; loop, with very similar loop duplicated in void __init gart_iommu_hole_init(void) . First copy of a loop seems to be buggy, too. It uses 0 as a "nothing set" value, which may actually bite us in last_aper_enabled case (because it may be often zero). (Beware, it is hard to test this patch, because this code has about 2^8 different code paths, depending on hardware and cmdline settings). Plus, the second loop does not check for consistency of aper_enabled. Should it? Signed-off-by: Thomas Gleixner commit 1930c75eeb9088a5a249e2d2e7eeac62ff304ecc Author: Devin Heitmueller Date: Wed Jun 4 10:43:46 2008 -0300 V4L/DVB (7992): Add support for Pinnacle PCTV HD Pro stick (the older variant 2304:0227) Signed-off-by: Devin Heitmueller Signed-off-by: Mauro Carvalho Chehab commit f4840cee09cb5e1c960ee74263c7813ec652840f Author: Daniel Gimpelevich Date: Tue Jun 3 18:29:45 2008 -0300 V4L/DVB (7990): Fix entry for PowerColor RA 330 and make it run with firmware version 2.7 Signed-off-by: Daniel Gimpelevich Signed-off-by: Mauro Carvalho Chehab commit af50adda011b876490d1e2aeeb6e543d96e67f34 Author: Hans Verkuil Date: Sun Jun 1 07:35:18 2008 -0300 V4L/DVB (7988): soc_camera: missed fmt callback conversion. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 9b54d7bab4de1ab85c78952e8e785c9c7dcc9406 Author: Michael Krufky Date: Tue May 6 22:43:10 2008 -0300 V4L/DVB (7986): cx23885: add initial support for DViCO FusionHDTV7 Dual Express Only one frontend is enabled right now. The second frontend can lock, but transport doesn't work yet. The device will be supported as a single tuner device until the second frontend is working. Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit 9b054d16f512c49bff6f921cfda5d1fa51ef2c70 Author: Michael Krufky Date: Tue Jun 3 02:16:37 2008 -0300 V4L/DVB (7984): tda18271: update filename in comments This file was renamed but we forgot to change it in the comments. Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit 7a973f4ccf14a230dbd086738153b7e99a419b54 Author: Michael Krufky Date: Sat May 31 15:18:55 2008 -0300 V4L/DVB (7983): tda18271_calc_rf_cal must return the return value of tda18271_lookup_map On the TDA18271HD/C1, we perform RF tracking filter correction for VHF low band, only. If supplied a frequency out of range, the error must be returned to the caller (tda18271c1_rf_tracking_filter_calibration) so that it can decide whether or not to write to register EB14, RFC_CPROG[7:0] Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit c71c0639fdfaa0c101c21b47b33046e159877dc0 Author: Hans Verkuil Date: Fri May 30 08:03:12 2008 -0300 V4L/DVB (7978): cx18: explicitly test for XC2028 tuner Testing whether xceive_pin is non-zero is not good enough as 0 is a valid value. Instead explicitly test whether the Xceive tuner is used. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 19ea9630a43972bad2ae6711786bf837ff6ad26b Author: Hans Verkuil Date: Fri May 30 07:51:53 2008 -0300 V4L/DVB (7977): cx18: fix init order and remove duplicate open_on_first_use. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 2db78c111802b82723edd245e38ea402953b7cce Author: Dmitri Belimov Date: Wed May 21 00:16:52 2008 -0300 V4L/DVB (7976): I2S on for MPEG of saa7134_empress Rework saa7134_enable_i2s function. Add vendor specific data. Add definition for I2S audio output control register. Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov Signed-off-by: Mauro Carvalho Chehab commit f48587332bf67c043b682586d220fe7dff2130a6 Author: Dmitri Belimov Date: Tue May 20 22:20:34 2008 -0300 V4L/DVB (7975): saa7134_empress This is patch for fix data structure in querycap syscall. Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov Signed-off-by: Mauro Carvalho Chehab commit 40af691cfce1986f05c8bbf3a55c745731d7aa53 Author: Ingo Molnar Date: Tue May 20 16:34:09 2008 -0300 V4L/DVB (7974): fix MEDIA_TUNER && FW_LOADER build error -tip testing found the following build failure: LD .tmp_vmlinux1 drivers/built-in.o: In function `generic_set_freq': tuner-xc2028.c:(.text+0xbd896): undefined reference to `request_firmware' tuner-xc2028.c:(.text+0xbdd7a): undefined reference to `release_firmware' drivers/built-in.o: In function `xc_load_fw_and_init_tuner': xc5000.c:(.text+0xc68e6): undefined reference to `request_firmware' xc5000.c:(.text+0xc6abe): undefined reference to `release_firmware' with this config: http://redhat.com/~mingo/misc/config-Tue_May_20_18_11_34_CEST_2008.bad the reason is another kconfig tool bug that has to be worked around in the driver's Kconfig file: if FW_LOADER is selected in a second dependency, that is not properly propagated up the dependencies. in this case, FW_LOADER is selected from MEDIA_TUNER_XC2028: config MEDIA_TUNER_XC2028 tristate "XCeive xc2028/xc3028 tuners" depends on VIDEO_MEDIA && I2C depends on HOTPLUG select FW_LOADER which got selected by MEDIA_TUNER: config MEDIA_TUNER tristate default VIDEO_MEDIA && I2C depends on VIDEO_MEDIA && I2C select FW_LOADER if !MEDIA_TUNER_CUSTOMIZE && HOTPLUG but the kconfig tool did not pick up this second-order dependency and allowed CONFIG_FW_LOADER=m to be selected - in which case the build fails. the workaround i found was to move the select of FW_LOADER one level up, so that the buggy kconfig tool can notice it and can act appropriately. This problem can probably be worked around in other ways as well, i went for the minimal fix. Obviously, the kconfig tool should be fixed, it is not reasonable to expect driver authors to do manual dependency resolution (that kconfig itself already does) and uglify the Kconfig files. The kconfig tool did nothing to warn about this situation and did not prevent this faulty .config from being constructed. Signed-off-by: Ingo Molnar Signed-off-by: Mauro Carvalho Chehab commit b10a535172402d71d0d8529f1dc8eb4472294798 Author: Al Viro Date: Tue May 20 21:33:11 2008 -0300 V4L/DVB (7972): or51132.c: unaligned Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit 107f1bfff9ecaee18b97cc94b99f39882babed0d Author: Al Viro Date: Tue May 20 21:33:01 2008 -0300 V4L/DVB (7971): usb: unaligned Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit 541c07e33545b3eda6a45501b45bf28b45f23b69 Author: Al Viro Date: Tue May 20 21:32:51 2008 -0300 V4L/DVB (7970): mix trivial endianness annotations Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit 200e7048756b13660b04c4af2037660051988419 Author: Al Viro Date: Tue May 20 21:32:41 2008 -0300 V4L/DVB (7969): m920x: unaligned access Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit a46a64c638d52b1dbc30fe4e8eaf4dd35a699477 Author: Al Viro Date: Tue May 20 21:32:31 2008 -0300 V4L/DVB (7968): zoran: endianness annotations Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit 2089a869644d61183451208e2e38e36700a964cd Author: Al Viro Date: Tue May 20 21:32:21 2008 -0300 V4L/DVB (7967): bt8xx: unaligned access Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit e1c9c51ac5144e5ccd9e4ec28d6b43c348fe678e Author: Al Viro Date: Tue May 20 21:32:11 2008 -0300 V4L/DVB (7966): cx18: direct dereferencing of iomem Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit b713eb486e41438a6a1323ca08144caadbe1feb6 Author: Al Viro Date: Tue May 20 21:31:51 2008 -0300 V4L/DVB (7965): annotate bcx_riscmem Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit 1317fec6406b2c2c2e809a20df59c45ba96f6fc1 Author: Al Viro Date: Tue May 20 21:32:01 2008 -0300 V4L/DVB (7964): cx18 iomem annotations Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit d24cd68ba97301d9ee55dcba15298641aaf32edc Author: Al Viro Date: Tue May 20 21:31:41 2008 -0300 V4L/DVB (7963): ivtv: trivial annotations Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit 85ddbb59fb8c27df10ef984fe2abdb265f3c9fde Author: Al Viro Date: Tue May 20 21:31:31 2008 -0300 V4L/DVB (7962): ttusb endianness annotations and fixes Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit 649a127fd08b3ced296e9df4d9f072b5e8879cf9 Author: Al Viro Date: Tue May 20 21:31:21 2008 -0300 V4L/DVB (7961): fix endianness bug in dib0700_devices.c Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit 66b5adea011d56d18d77dfe0f3d4bb77c70d3f57 Author: Al Viro Date: Tue May 20 21:31:11 2008 -0300 V4L/DVB (7960): net: endianness annotations Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit 0b11e5db193a3129b81262a428b8a5f32ac39691 Author: Al Viro Date: Tue May 20 21:31:01 2008 -0300 V4L/DVB (7959): endianness fix in flexcop-usb.c Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit 66b9bae27da294d60f29e81541bd55f6b0ed7095 Author: Al Viro Date: Tue May 20 21:30:51 2008 -0300 V4L/DVB (7958): fix unaligned access in av7110.c Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit 2a9ac959160e7a5d9969c40050a85fb4ef850732 Author: Al Viro Date: Tue May 20 21:30:41 2008 -0300 V4L/DVB (7957): fix the roothole in av7110_av.c direct dereferencing from user-supplied address Signed-off-by: Al Viro Reviewed-by: Oliver Endriss Signed-off-by: Mauro Carvalho Chehab commit bab8654ca9e313bec630f20b21416c365da05b51 Author: Al Viro Date: Tue May 20 21:30:31 2008 -0300 V4L/DVB (7956): cinergyT2: endianness annotations, endianness and race fixes Endianness annotations and fixes + fixing the handling of ->uncorrected_block_count Signed-off-by: Al Viro Signed-off-by: Mauro Carvalho Chehab commit 412cf09f02babc363b5915679e8c5f432b755293 Author: David Woodhouse Date: Mon Jun 2 12:46:51 2008 -0300 V4L/DVB (7166): [v4l] Add new user class controls and deprecate others These were removed in commit 26d507fcfef7f7d0cd2eec874a87169cc121c835: > -#define V4L2_CID_HCENTER (V4L2_CID_BASE+22) > -#define V4L2_CID_VCENTER (V4L2_CID_BASE+23) > -#define V4L2_CID_LASTP1 (V4L2_CID_BASE+24) /* > last CID + 1 */ > + > +/* Deprecated, use V4L2_CID_PAN_RESET and V4L2_CID_TILT_RESET */ > +#define V4L2_CID_HCENTER_DEPRECATED (V4L2_CID_BASE+22) > +#define V4L2_CID_VCENTER_DEPRECATED (V4L2_CID_BASE+23) But there was no warning in Documentation/feature-removal-schedule.txt and I'm receiving reports that it's breaking userspace apps (the gstreamer-v4l2 plugin breaks in Fedora rawhide). You can't just pull things from the published userspace API like that. Please can we revert the addition of _DEPRECATED to these ioctl definitions. Perhaps we can add a runtime warning if they actually get used? Or a compile-time warning if we can manage that? Signed-off-by: David Woodhouse Signed-off-by: Mauro Carvalho Chehab commit a1a94385ad17afba86de6f63e04bcc75fb5bf2e9 Author: Antti Palosaari Date: Wed May 28 00:57:39 2008 -0300 V4L/DVB (7952): AU6610: various cosmetic changes - update license comments - change MODULE_DESCRIPTION from device specific to chipset specific - correct debug switch from deb_rc to deb_info - correct MPEG2 stream interval from 1.25 to 1 - change frontend_attach error code from -EIO to -ENODEV Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab commit fb57949547966050e149a7ab822d5aa67ff3d64e Author: Antti Palosaari Date: Tue May 27 22:01:04 2008 -0300 V4L/DVB (7951): AU6610: remove useless identify_state - remove useless identify_state - device is always warm Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab commit e33a32d52617fcce8a36f2604cd62ba6f41b77c4 Author: Antti Palosaari Date: Tue May 27 21:53:27 2008 -0300 V4L/DVB (7950): AU6610: coding style fixes - coding style fixes raised by checkpatch Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab commit d7c2db3962cb2741eda253a02d7921c1e1295d6d Author: Hans Verkuil Date: Wed May 28 09:16:41 2008 -0300 V4L/DVB (7949): videodev: renamed the vidioc_*_fmt_* callbacks The naming for the callbacks that handle the VIDIOC_ENUM_FMT and VIDIOC_S/G/TRY_FMT ioctls was very confusing. Renamed it to match the v4l2_buf_type name. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 3448fe8966bd8fca3327339d30b31b7bb7383c55 Author: Hans Verkuil Date: Tue May 27 19:31:43 2008 -0300 V4L/DVB (7948): videodev: add missing vidioc_try_fmt_sliced_vbi_output and VIDIOC_ENUMOUTPUT handling There was no vidioc_try_fmt_sliced_vbi_output, instead vidioc_try_fmt_vbi_output was reused. The VIDIOC_ENUMOUTPUT handling was missing altogether, even though the callback existed. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 5e031c7591488fcdedcd727d4d88bb533fe42fa0 Author: Hans Verkuil Date: Wed May 28 05:27:00 2008 -0300 V4L/DVB (7947): videodev: add vidioc_g_std callback. The default videodev behavior for VIDIOC_G_STD is not correct for all devices. Add a new callback that drivers can use instead. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 01dbf8294b58789248beb2be342a603457b857da Author: Hans Verkuil Date: Tue May 27 18:32:08 2008 -0300 V4L/DVB (7946): videodev: small fixes for VIDIOC_G_FREQUENCY and VIDIOC_G_FMT __video_do_ioctl incorrectly zeroed the tuner field of v4l2_frequency and did not zero the full fmt union of v4l2_format. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 5079cd9492e7229f5780fe4320234cbd97d9e57a Author: Michael Krufky Date: Fri Apr 18 18:22:50 2008 -0300 V4L/DVB (7944): tuner-xc2028: use hybrid_tuner_request_state Use a standard method to manage multiple instances of a hybrid tuner. Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit e2455bcdd43c489019dc886a342122049b4928e2 Author: Michael Krufky Date: Fri Apr 18 17:26:04 2008 -0300 V4L/DVB (7943): tuner: add macro, hybrid_tuner_report_instance_count Create a macro to report the number of instances of the tuner driver currently in use. This will allow drivers to perform specific cleanups before destroying the last instance of a tuner. Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit e83ed1ded0bd9c8901783566ad6fa4d49336b685 Author: Tobias Lorenz Date: Mon May 26 15:40:46 2008 -0300 V4L/DVB (7942): Hardware frequency seek ioctl interface Signed-off-by: Tobias Lorenz Signed-off-by: Mauro Carvalho Chehab commit 7afcd9dcdaab91016267c94ae4a184104d478337 Author: Mike Isely Date: Mon May 26 03:00:47 2008 -0300 V4L/DVB (7939): pvrusb2: Remove sysfs interface hackery Back in the early days of the pvrusb2 driver, the kernel class mechanism in use for the sysfs interface had no means to pass per-attribute information to the show / store functions. This forced me to implement a horrible ugly thunking mechanism (i.e. infer the missing data through the use of dedicated cookie cutter bounce functions). However now we're using a better mechanism which also passes enough additional information to the show / store functions that we no longer need the hack. So eliminate all the crap. Yay! Signed-off-by: Mike Isely Signed-off-by: Mauro Carvalho Chehab commit fbf727dbd42edda8d2fb79beb1a8f43edad7010a Author: Mike Isely Date: Mon May 26 02:54:24 2008 -0300 V4L/DVB (7938): pvrusb2: Increase enforced encoder wait delay to improve reliability The driver enforces a "quiet period" on the encoder in certain situations before attempting to operate it. This seems to help avoid video encoding errors / corruption. The quiet period was 50msec, but through experimentation it has been observed to improve further if the interval is increased to 100msec. Signed-off-by: Mike Isely Signed-off-by: Mauro Carvalho Chehab commit e709b7786cd86e8bb8d40cc3cd909d3ee9418b3e Author: Mike Isely Date: Mon May 26 02:51:57 2008 -0300 V4L/DVB (7937): pvrusb2: Change several embedded timer constants to defined values This is primarily a cosmetic change to make it easier to change some of the time constants used in the driver. Signed-off-by: Mike Isely Signed-off-by: Mauro Carvalho Chehab commit 8b4acc718b7f3e4e1b95cc48e5d0ea93825b38a6 Author: Mike Isely Date: Sun May 25 14:08:13 2008 -0300 V4L/DVB (7936): pvrusb2: Remove svn Id keyword from all sources Signed-off-by: Mike Isely Signed-off-by: Mauro Carvalho Chehab commit 4352b60228392eee3e438e9a1baf4864c7e5aaad Author: Hans Verkuil Date: Sun May 25 11:34:36 2008 -0300 V4L/DVB (7934): cx18: move gpio_dir/val statics to the cx18 struct. The gpio_dir/val statics cannot be global, they are card-specific. Thanks to Andy Walls for pointing this out. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 9329e48aa0fbb13cf2565da689868b7c703e6e5c Author: Hans Verkuil Date: Sun May 25 08:45:53 2008 -0300 V4L/DVB (7932): cx18: mark Compro H900 as fully supported. I always assumed that the Compro H900 could do digital as well, but it turned out that it is an analog-only card. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit ae6f6b7536a6a9e530881fd6b0c6dad3d90fbd8c Author: Hans Verkuil Date: Sun May 25 08:21:27 2008 -0300 V4L/DVB (7931): cx18: allow for simultaneous digital and analog capture The HVR-1600 can do both analog and digital capture at the same time. Due to a driver bug -EBUSY would be returned when attempting to setup an analog capture while a digital capture was already in progress. Separate the two internally. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 96fc8ccfd3cce84cb30ce39144902fe6eac144cf Author: Hans Verkuil Date: Sat May 24 09:43:43 2008 -0300 V4L/DVB (7930): ivtv: bump version to 1.3.0. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 13c6d334267dde2f67afca8baf383dd4a0538851 Author: Hans Verkuil Date: Wed May 21 14:40:19 2008 -0300 V4L/DVB (7928): cx18: fix audio registers 808 and 80c The handling of the audio registers 808 and 80c were based on old datasheets. Updated to the latest information. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit b6a5cec435d9d7c3fea22d3ed71e91472f01e63c Author: Hans Verkuil Date: Tue May 20 03:24:04 2008 -0300 V4L/DVB (7927): ivtv: simplify gpio initialization for XCeive tuners. Separate gpio_init field and xceive_pin and combine the two when the gpio is initialized. So there is no longer any need to set the xceive pin in the gpio_init values, simplifying the creation of a new card definition. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 394a7e1ff96cf2e33c16f430b111757645423252 Author: Hans Verkuil Date: Tue May 20 03:19:47 2008 -0300 V4L/DVB (7926): ivtv: add support for the Buffalo PC-MV5L/PCI card. Thanks to Peter Brandt for doing the necessary tests to fill out the card definition! Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 9ce16d2803761c577ddddbd4cba135c04f2517fa Author: Hans Verkuil Date: Mon May 19 19:13:02 2008 -0300 V4L/DVB (7925): cx18: ensure that the xceive pin is always asserted on init. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 3b297e06cfdce782a52631810d0ee3409c6bd4dc Author: Jean Delvare Date: Tue May 13 15:27:15 2008 -0300 V4L/DVB (7924): ivtv/cx18: snprintf fixes snprinf() takes the trailing \0 into account in its length calculations, so there is no need to subtract 1 to the buffer size. Signed-off-by: Jean Delvare Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit a1766882baf9d4216092474f23ea3793a539e849 Author: Andy Walls Date: Sun May 25 22:31:17 2008 -0300 V4L/DVB (7922): tuner-simple: fix tuner_warn() induced kernel oops in simple_tuner_attach() The tuner_warn() macro relies on the local variable "priv" to be a valid pointer. There was a case in simple_tuner_attach() where this cannot be the case yet, so tuner_warn() would dereference a NULL "priv" pointer. Changed the tuner_warn() to a printk() with the originally intended output format. Signed-off-by: Andy Walls Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit c545e2b8bfc6294a93404af9645cbb89f6b8867b Author: Michael Krufky Date: Sun May 25 10:28:46 2008 -0300 V4L/DVB (7921): s5h1411.c shouldn't #include "dvb-pll.h" Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit 26d21c3cd58ade57b3c71d3f3c9b5f19dd2f63f1 Author: Michael Krufky Date: Sun May 25 10:27:57 2008 -0300 V4L/DVB (7920): s5h1409.c shouldn't #include "dvb-pll.h" Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit 7be6498d66bab11b6af0df1a6012ec20730cae0a Author: Michael Krufky Date: Sat May 24 20:49:03 2008 -0300 V4L/DVB (7919): VIDEO_AU0828 does not depend on VIDEO_DEV Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit 4fe9947dc2741610db4f6e7a9bfe99bb6ac46f0a Author: Michael Krufky Date: Sat May 24 20:48:16 2008 -0300 V4L/DVB (7918): au0828: remove irrelevent analog tuner standby code This code is irrelevant to this driver and should be removed. This was copied from a hack in cx88-dvb.c, which prevents noise coming from the analog tuner (via an audio patch cable from the pci card to the sound hardware) when in digital mode by muting the tda988x. This issue does not apply to this USB hybrid chip design, where a single piece of silicon handles both analog and digital demodulation. Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit ed5937784dc47fc21703eab16a6f9ab791382511 Author: Michael Krufky Date: Sat May 24 21:25:08 2008 -0300 V4L/DVB (7917): au8522.c shouldn't #include "dvb-pll.h" Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit d7fdf389dabd40ddc023fbdbb4546f3b78d1661c Author: Michael Krufky Date: Sun May 25 10:09:51 2008 -0300 V4L/DVB (7916): dib7000p: fix dib7000p_attach when !CONFIG_DVB_DIB7000P somebody forgot to to fix this header... Thanks to Ingo Molnar for pointing this out. Tested-by: Ingo Molnar Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit 23e242d3338bbe589a9289ff0f88b9ffc61a1cf3 Author: Antti Palosaari Date: Sat May 17 20:05:48 2008 -0300 V4L/DVB (7914): Anysee: driver for Anysee DVB-T/C receiver - driver for Anysee DVB-T/C receiver Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab commit 4c6dd90f80cad23ee921f72f039e048eba769b5d Author: Antti Palosaari Date: Sat May 17 20:02:00 2008 -0300 V4L/DVB (7913): DVB-PLL: add Samsung DTOS403IH102A tuner - add Samsung DTOS403IH102A tuner Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab commit c34babc16491dfef7babc8f01f1b566101f732f1 Author: Antti Palosaari Date: Sat May 17 19:58:04 2008 -0300 V4L/DVB (7912): TDA10023: make few parameters configurable - separate TDA10021 and TDA10023 attach - configurable Xtal settings - configurable input freq offset + baseband conversion type settings Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab commit 5488a9fd4b06f2154e7108226a376309e5150923 Author: Guennadi Liakhovetski Date: Thu May 22 16:30:40 2008 -0300 V4L/DVB (7911): Remove v4l2_video_std_fps prototype declaration The v4l2_video_std_fps function has been removed by Adrian Bunk in 2004 but then its prototype re-appeared in include/media/v4l2-dev.h. Remove it. Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab commit 889ae1dbb4c61e70f416f51ca97bc574fc509d34 Author: Ingo Molnar Date: Tue May 20 05:02:33 2008 -0300 V4L/DVB (7910): usb: input layer dependency fixes testing of the -tip tree found the following build failures on 2.6.26-rc3: drivers/built-in.o: In function `ttusb_dec_disconnect': ttusb_dec.c:(.text+0xa2c95): undefined reference to `input_unregister_device' drivers/built-in.o: In function `dvb_usb_read_remote_control': dvb-usb-remote.c:(.text+0xa6a94): undefined reference to `input_event' with this config: http://redhat.com/~mingo/misc/config-Tue_May_20_03_48_57_CEST_2008.bad these are due to the media/dvb/usb layer having dependencies on INPUT functionality, without having that spelled out in the Kconfig file. this patch makes that dependency explicit (for the drivers affected), which solves the build error. Signed-off-by: Ingo Molnar Signed-off-by: Mauro Carvalho Chehab commit 662f0ec010abd4b9154a71c3d6048cc99b83b82f Author: Adrian Bunk Date: Mon May 26 11:23:49 2008 -0300 V4L/DVB (7908): always enter drivers/media/video/ After commit 039d40019f3c5e26ea50ec5af4270189f63365e1 (V4L/DVB (7898): Fix VIDEO_MEDIA Kconfig logic) VIDEO_MEDIA is no longer usable in Makefile's for deciding which directories we enter, resulting in compile errors like the following with CONFIG_VIDEO_DEV=y, CONFIG_DVB_CORE=m: <-- snip --> ... MODPOST 187 modules ... make[2]: *** [__modpost] Error 1 <-- snip --> The easiest solution is to always enter video/ Signed-off-by: Adrian Bunk Acked-by: Ingo Molnar Signed-off-by: Mauro Carvalho Chehab commit 821ad971a06bd7e3c387393c459cd31d07213f4e Author: Adrian Bunk Date: Thu May 15 21:15:53 2008 -0300 V4L/DVB (7906): tuners/mxl5005s.c: don't define variables for enums It doesn't seem to be intended that "tuner_modu_type" and "MXL5005_ControlName" were global variables. Signed-off-by: Adrian Bunk Signed-off-by: Mauro Carvalho Chehab commit 313f6a45a4515706e4f6211247ab119034189593 Author: Marcin Slusarz Date: Sun May 11 16:58:59 2008 -0300 V4L/DVB (7905): check_v4l2 should return -EINVAL on error check_v4l2 always returns 0, so this change is an noop for now, but a comment says it will return something else in the future Signed-off-by: Marcin Slusarz Signed-off-by: Mauro Carvalho Chehab commit 10c1cd9f33fb39ab1f0d1c364452bb206b7886af Author: Marcin Slusarz Date: Mon May 26 11:03:02 2008 -0300 V4L/DVB (7904): v4l/tuner-core: consistent handling of return values change check_mode and set_mode to return negative errors and fix all callers Signed-off-by: Marcin Slusarz Signed-off-by: Mauro Carvalho Chehab commit 1604424e877ba181093f6a4fcab7d1da6a52dcac Author: Marcin Slusarz Date: Sun May 11 16:53:39 2008 -0300 V4L/DVB (7903): gp8psk_power_ctrl should return negative errors Signed-off-by: Marcin Slusarz Signed-off-by: Mauro Carvalho Chehab commit f6d4258ad0dba28b3ddc70bc6ef4086da76ceaad Author: Marcin Slusarz Date: Sun May 11 16:51:07 2008 -0300 V4L/DVB (7902): fix handling of tea5761_autodetection return value tea5761_autodetection returns -EINVAL on error Signed-off-by: Marcin Slusarz Signed-off-by: Mauro Carvalho Chehab commit 2f2ea411ce241ebf8ac4246a031bd0c47845717a Author: Andrew Morton Date: Wed May 14 20:14:04 2008 -0300 V4L/DVB (7901): zoran: use correct type for CPU flags locking-add-typecheck-on-irqsave-and-friends-for-correct-flags.patch will cause drivers/media/video/zoran_driver.c: In function 'zoran_close_end_session': drivers/media/video/zoran_driver.c:1172: warning: comparison of distinct pointer types lacks a cast Signed-off-by: Andrew Morton Signed-off-by: Mauro Carvalho Chehab commit d436dd7a3b4417152e73eea9141aede750f540b3 Author: Harvey Harrison Date: Tue Apr 15 19:22:11 2008 -0300 V4L/DVB (7586): radio: use get/put_unaligned_* helpers Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Mauro Carvalho Chehab commit cba1f5a33b1b8eeab8c51ac41a11c708f0b0d700 Author: Sakari Ailus Date: Tue May 13 06:21:06 2008 -0300 V4L/DVB (7897): TCM825x: Include invertation of image mirroring in configuration Add invertation of image mirroring register bits to default configuration. This is useful when the camera module is e.g. mounted upside down. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit c1abae574d97478d492838c50b039222534f53b5 Author: Ian Armstrong Date: Mon May 12 08:53:10 2008 -0300 V4L/DVB (7886): ivtvfb: Use DMA for write() write() operations to the ivtv framebuffer will now attempt to use DMA if the amount of data to copy is >= 4096 bytes. This change effectively depreciates the need for the proprietary IVTVFB_IOC_DMA_FRAME ioctl since a write() of sufficient size will do the same thing. Signed-off-by: Ian Armstrong Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 6015509418be75e3dd42400c1117078d6dde9530 Author: Hans Verkuil Date: Mon May 12 08:21:58 2008 -0300 V4L/DVB (7885): ivtv/cx18: add compat_ioctl entries Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 2ec61092d0b9df09d5e55df54b32eb460358c0eb Author: Michael Krufky Date: Sun May 11 13:37:50 2008 -0300 V4L/DVB (7883): pvrusb2: make default frequency configurable via modprobe option The pvrusb2 driver initially sets the tuner to known broadcast frequencies in the Chicago area, to ease driver testing for the maintainer. This patch keeps those default frequencies, but allows them to be altered via modprobe option. This allows the same ease and convenience for testing multiple pvrusb2 devices one after another under other conditions and areas. For instance, the default initial frequency, 175.25 MHz, might not necessarily be valid on all cable television networks, but usually will be a valid NTSC broadcast channel. Signed-off-by: Michael Krufky Signed-off-by: Mike Isely Signed-off-by: Mauro Carvalho Chehab commit cf985fdf18ed88e834cfc11a66486eb773ba5b29 Author: Adrian Bunk Date: Sat May 10 01:35:24 2008 -0300 V4L/DVB (7882): pvrusb2: make code static This patch makes the following needlessly global code static: - pvrusb2-devattr.c: struct pvr2_onair_creator_fe_props - pvrusb2-devattr.c: struct pvr2_onair_usb2_fe_props - pvrusb2-devattr.c: struct pvr2_73xxx_dvb_props - pvrusb2-devattr.c: struct pvr2_750xx_dvb_props - pvrusb2-devattr.c: struct pvr2_751xx_dvb_props - pvrusb2-hdw.c:pvr2_led_ctrl_hauppauge() Signed-off-by: Adrian Bunk Signed-off-by: Mike Isely Signed-off-by: Mauro Carvalho Chehab commit 310415a0dd9183a7c3b454c0780ba198bc4d2f01 Author: Roman Zippel Date: Wed Apr 30 09:52:50 2008 -0300 V4L/DVB (7812): 2.6.25-rc5-mm1 specifc div64_u64 fixes Rename a few more div64_u64 which are only in -mm. Signed-off-by: Roman Zippel Signed-off-by: Andrew Morton Signed-off-by: Mauro Carvalho Chehab commit 59c06acded08edc5b6b146de45f8cbe1fc085db2 Author: Mauro Carvalho Chehab Date: Thu Apr 24 21:43:23 2008 -0300 V4L/DVB (7737): drx397xD: fix math usage The previous code were using a div64 math specific to i386. Replace for an asm-generic one. Signed-off-by: Mauro Carvalho Chehab commit f5b80dbed56e8a4518b2cca7b0b0162740968498 Author: Henk Vergonet Date: Thu Aug 9 11:02:30 2007 -0300 V4L/DVB (7736): This patch adds support for the Micronas DRX3975D/DRX3977D DVB-T demodulator The module needs an external firmware file. The module has been tested on a Pinnacle 330e, but with modules that are currently not part of the linux-dvb tree. So consider this highly experimental, don't use this code unless you are an experienced kernel developer. Signed-off-by: Henk Vergonet Signed-off-by: Mauro Carvalho Chehab commit 2229ff84f01746d02fb6b79e156fb5cce48c908f Author: Ingo Molnar Date: Thu Jun 5 11:17:16 2008 +0200 x86, io-apic: fix nmi_watchdog=1 bootup hang nmi_watchdog=1 hangs on 64-bit: [ 0.250000] Detected 12.564 MHz APIC timer. [ 0.254178] APIC timer registered as dummy, due to nmi_watchdog=1! [ 0.260366] Testing NMI watchdog ... <4>WARNING: CPU#0: NMI appears to be stuck (0->0)! [ ... ] [ 0.470003] calling genl_init+0x0/0xd0 [ hard hang ] bisected it down to: git-bisect start git-bisect good 1beee8dc8cf58e3f605bd7b34d7a39939be7d8d2 git-bisect bad 11582ece0aaa2d0f94f345c08a4ab9997078a083 git-bisect bad 5479c623bb44089844022c03d4c0eb16d5b7a15f git-bisect bad cfb4c7fabeb499e1c29f9d1878968e37a938e28a git-bisect good 246dd412d31e4f5de1d43aa6422a325b785f36e4 git-bisect bad 3f8237eaff7dc1e35fa791dae095574fd974e671 git-bisect good 90e23b13ab849e2a11f00c655eb3a2011b4623be git-bisect bad 833526a34eeefc117df3191a594c3c3a4f15a9ac git-bisect good 791b93d3dfaf16c23e978bec0cc0a3dd9d855d63 git-bisect bad 65767c64068f2c93e56a1accfed5c78230ac12d7 git-bisect bad 2abc5c05dd82c188e3bdf6641a274f013348d14b git-bisect bad 317e1f2597ffb4d4db940577bbe56dc6e881ef07 | 317e1f2597ffb4d4db940577bbe56dc6e881ef07 is first bad commit | commit 317e1f2597ffb4d4db940577bbe56dc6e881ef07 | Author: Maciej W. Rozycki | Date: Wed May 21 22:10:22 2008 +0100 | x86: I/O APIC: clean up the 8259A on a NMI watchdog failure the problem is that in the dummy-lapic branch we rely on the i8259A but if the NMI watchdog fails we turn off IRQ 0 - which doesnt work too well ;-) Signed-off-by: Ingo Molnar commit ff5bdac4be0230e0bb33e4208ac0a91343c72929 Author: Marcelo Tosatti Date: Thu Jun 5 00:08:11 2008 -0300 KVM: IOAPIC: only set remote_irr if interrupt was injected There's a bug in the IOAPIC code for level-triggered interrupts. Its relatively easy to trigger by sharing (virtio-blk + usbtablet was the testcase, initially reported by Gerd von Egidy). The "remote_irr" variable is used to indicate accepted but not yet acked interrupts. Its cleared from the EOI handler. Problem is that the EOI handler clears remote_irr unconditionally, even if it reinjected another pending interrupt. In that case, kvm_ioapic_set_irq() proceeds to ioapic_service() which sets remote_irr even if it failed to inject (since the IRR was high due to EOI reinjection). Since the TMR bit has been cleared by the first EOI, the second one fails to clear remote_irr. End result is interrupt line dead. Fix it by setting remote_irr only if a new pending interrupt has been generated (and the TMR bit for vector in question set). Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit f2f4b88f593a6ebe2975bad9fe372f7504be7d06 Author: Martin Schwidefsky Date: Thu Jun 5 09:50:27 2008 +0200 [S390] stp support. Add support for clock synchronization with the server time protocol. Signed-off-by: Martin Schwidefsky commit 58cd4ce66310014d4c9e90c22efbfd323cadde79 Author: Heiko Carstens Date: Thu Jun 5 09:50:26 2008 +0200 [S390] initrd vs bss section clearing. In case the initrd is located within the bss section it will be overwritten when the section is cleared. To prevent this just move the initrd right behind the bss section if it starts within the section. The current code already moves the initrd if the bootmem allocator bitmap would overwrite it. With this patch we should be safe against initrd corruptions. Cc: Peter Oberparleiter Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 0cd434ee292e9bf9da6d8afef87b5f2fbbf997c4 Author: Martin Schwidefsky Date: Thu Jun 5 09:50:25 2008 +0200 [S390] Introduce user_regset accessors for s390 Add the user_regset definitions for normal and compat processes, replace the dump_regs core dump cruft with the generic CORE_DUMP_USER_REGSET and replace binfmt_elf32.c with the generic compat_binfmt_elf.c implementation. Signed-off-by: Martin Schwidefsky commit aaeb4d1bc7668190eb93c0f2163db0d26a04fa4f Author: Sebastian Ott Date: Thu Jun 5 09:50:24 2008 +0200 [S390] cio: remove lock from ccw_device_oper_notify. Remove unnecessary ccw device locking inside ccw_device_oper_notify. Signed-off-by: Sebastian Ott Acked-by: Cornelia Huck Signed-off-by: Martin Schwidefsky commit 96a7e748d6037278e646de489b2e064886bd33a3 Author: Peter Oberparleiter Date: Thu Jun 5 09:50:23 2008 +0200 [S390] cio: provide helper functions for fcx enabled I/O Provide functions which can be used to incrementally construct fcx enabled I/O control blocks. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky commit 04a546f6552a7b7e74ae2d4334ff7e1bf680a2f6 Author: Peter Oberparleiter Date: Thu Jun 5 09:50:22 2008 +0200 [S390] cio: provide functions for fcx enabled I/O Provide functions for assembling and starting fcx enabled I/O request blocks. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky commit b774b4d8977485cf7b1358e97f6821b23056dec9 Author: Peter Oberparleiter Date: Thu Jun 5 09:50:21 2008 +0200 [S390] cio: introduce fcx enabled scsw format Extend the scsw data structure to the format required by fcx. Also provide helper functions for easier access to fields which are present in both the traditional as well as the modified format. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky commit 1970c6b008f7788b0e42679f64b4c84e3d2cc47f Author: Peter Oberparleiter Date: Thu Jun 5 09:50:20 2008 +0200 [S390] cio: introduce fcx bit to chsc characteristics Introduce fcx bit to chsc characteristics. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky commit ad082e89c8bf61fcd0959b2380f63d8a423301e7 Author: Cornelia Huck Date: Thu Jun 5 09:50:19 2008 +0200 [S390] cio: Base message subchannel handling. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky commit 53ed7706f6aa1b08a79c5cad7cc41da32f0b84d7 Author: Cornelia Huck Date: Thu Jun 5 09:50:18 2008 +0200 [S390] cio: Export some symbols for modular css drivers. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky commit 2a9d20fc129f6173809917503a2fe873cce9ccd9 Author: Cornelia Huck Date: Thu Jun 5 09:50:17 2008 +0200 [S390] cio: Cleanup crw interface. Eliminate the need for the machine check handler to call into the common I/O layer directly by introducing an interface to register handlers for crws per rsc. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky commit 89cf7af669f97d5d94f19c8be3e24363c91c7758 Author: Cornelia Huck Date: Thu Jun 5 09:50:16 2008 +0200 [S390] cio: Rework css driver. Rework the css driver methods to provide sane callbacks for subchannels of all types. As a bonus, this cleans up and simplyfies the machine check handling for I/O subchannels a lot. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky commit 15146df71d2851c726ab1d864052291db9ab33ec Author: Cornelia Huck Date: Thu Jun 5 09:50:15 2008 +0200 [S390] cio: Introduce modalias for css bus. Add modalias and subchannel type attributes for all subchannels. I/O subchannel specific attributes are now created in io_subchannel_probe(). modalias and subchannel type are also added to the uevent for the css bus. Also make the css modalias known. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky commit ab7a1ef88ae63351e9d5157f3772b1d87e628938 Author: Cornelia Huck Date: Thu Jun 5 09:50:14 2008 +0200 [S390] cio: Register all subchannels. Register all valid subchannels, not only I/O subchannels. Move I/O subchannel specific initialization to io_subchannel_probe(). Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky commit 1f456fd0e18b5fd04a3837c843f0b0497ba54fdc Author: Cornelia Huck Date: Thu Jun 5 09:49:53 2008 +0200 [S390] cio: Fix inverted isc priorities. Priorities for I/O interruption subclasses range from 0 (highest) to 7 (lowest). Unfortunately, the console has been using isc 7 instead of an isc with a higher priority than regular I/O subchannels (which use 3). Fix this by making the console use isc 1. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky commit 0d75b4e9cd4b8b7ad971c88bf8707300feadc5a2 Author: Heiko Carstens Date: Thu Jun 5 09:49:52 2008 +0200 [S390] vmemmap: fix off-by-one bug. If a memory range is supposed to be added to the 1:1 mapping and it ends just below the maximum supported physical address it won't succeed. This is because a test doesn't consider that the end address is 1 smaller than start + size. Fix the comparison. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 3b2ce0b4143fac83f9e0facf5b2e98ef84e38183 Author: Cornelia Huck Date: Thu Jun 5 09:49:51 2008 +0200 [S390] cio: Fix sparse warnings in blacklist.c. sparse complains about signedness: drivers/s390/cio/blacklist.c:132:28: warning: incorrect type in argument 2 (different signedness) drivers/s390/cio/blacklist.c:132:28: expected unsigned int *val drivers/s390/cio/blacklist.c:132:28: got int *cssid drivers/s390/cio/blacklist.c:136:28: warning: incorrect type in argument 2 (different signedness) drivers/s390/cio/blacklist.c:136:28: expected unsigned int *val drivers/s390/cio/blacklist.c:136:28: got int *ssid drivers/s390/cio/blacklist.c:140:28: warning: incorrect type in argument 2 (different signedness) drivers/s390/cio/blacklist.c:140:28: expected unsigned int *val drivers/s390/cio/blacklist.c:140:28: got int *devno cssid, ssid and devno are of course unsigned, so let's make the variables unsigned as well. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky commit 8b5f291e6d4da99c7cc4127f9da1b16d3818fe66 Author: Heiko Carstens Date: Thu Jun 5 09:49:50 2008 +0200 [S390] sparsemem: use SPARSEMEM_STATIC if !64BIT. In case of !64BIT kernel we end up with a zero sized mem_section array. This happens because NR_MEM_SECTIONS is smaller than SECTIONS_PER_ROOT but we have: #define NR_SECTION_ROOTS (NR_MEM_SECTIONS / SECTIONS_PER_ROOT) and struct mem_section *mem_section[NR_SECTION_ROOTS]; So fix this by selecting SPARSEMEM_STATIC which makes sure that SECTIONS_PER_ROOT is 1. Cc: Gerald Schaefer Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 74796303c1615488a947ed6972763ca950ab6f29 Author: David Woodhouse Date: Thu May 29 16:39:16 2008 +0300 smctr: use request_firmware() Signed-off-by: David Woodhouse commit c59b5b182cf413739b264c126ce7c2ab02558901 Author: David Woodhouse Date: Thu May 29 15:07:34 2008 +0300 firmware: convert ymfpci driver to use firmware loader exclusively Signed-off-by: David Woodhouse commit 971d38b2aa09024bf8cf3802410a23c8b34b489f Author: David Woodhouse Date: Thu May 29 14:48:34 2008 +0300 firmware: convert maestro3 driver to use firmware loader exclusively Signed-off-by: David Woodhouse commit 6f48c363bf8e2448b67a1b1672fdbfb39aad8930 Author: David Woodhouse Date: Mon May 26 23:01:27 2008 +0100 firmware: convert korg1212 driver to use firmware loader exclusively Signed-off-by: David Woodhouse commit 49aa352970d573dc40cbf4f669af76a5b126c258 Author: David Woodhouse Date: Thu May 29 11:01:51 2008 +0300 firmware: Add 'firmware_install' make target This installs all the in-kernel-tree firmware into $(INSTALL_FW_PATH), which defaults to $(objtree)/usr/lib/firmware and is intended end up in /lib/firmware for udev to find the files. This, in conjunction with the builtin-firmware support, makes it simple for drivers with associated firmware to move over to request_firmware() and give the user a choice of whether to have it built in to the kernel image or loaded separately from userspace. As with kernel header installation for userspace, it intentionally pays no attention to configuration variables -- it installs _all_ available firmware blobs, unconditionally. Signed-off-by: David Woodhouse commit ae063f9b130450947ae4bba50beb67cf5bcdcfd8 Author: David Woodhouse Date: Fri May 23 13:58:12 2008 +0100 firmware: Add CONFIG_BUILTIN_FIRMWARE option This allows arbitrary firmware files to be included in the static kernel where the firmware loader can find them without requiring userspace to be alive. (Updated and CONFIG_BUILTIN_FIRMWARE_DIR added with lots of help from Johannes Berg). Signed-off-by: David Woodhouse Signed-off-by: Johannes Berg commit 6287c5330d4315221e457622ba2ad6a0d1cc8069 Author: Ville Syrjälä Date: Tue Jun 3 20:52:10 2008 +0300 [ALSA] maestro3: Fix hw volume on HP OmniBook Make the hw volume buttons work correctly on some HP OmniBook laptops. The original quirk was apparently applied a bit too early and it was also lacking some critial register writes. This improved sequence was discovered by trial and error (like the original sequence). Tested and found working on OB500 and OB6000 laptops. Signed-off-by: Ville Syrjala Signed-off-by: Takashi Iwai commit a9575c6c1e2a93cfbc91116880769c1d777a4b59 Author: Takashi Iwai Date: Wed Jun 4 12:41:21 2008 +0200 [ALSA] hda - increase max_codecs of ICH to 4 It turned out that some ICH9-based boards use SD3 for the audio codec where the current driver code doesn't probe. Since we have a better codec slot check now, it must be safe to increase this to 4. Signed-off-by: Takashi Iwai commit d7d1e6de2b87024c3d5308c01081de61d7700150 Author: Takashi Iwai Date: Wed Jun 4 12:39:38 2008 +0200 [ALSA] hda - Fix PLL gating control on Realtek codecs On some Realtek codecs, the analog PLL gating control bit must be set off while the default value is 1. Signed-off-by: Takashi Iwai commit eeb881baace0621e3d8b36a7490710ae2ce8eb70 Author: Jiang zhe Date: Wed Jun 4 12:11:07 2008 +0200 [ALSA] hda - support intel DG33 motherboards These two motherboards's pin configuration are not covered by driver. I wrote a new model to support them. Signed-off-by: Jiang zhe Signed-off-by: Takashi Iwai commit 99dff95bb05f46c9d7a6a064a8b93ba102a664f9 Author: Jaroslav Kysela Date: Tue Jun 3 09:06:20 2008 +0200 ALSA: Release v1.0.17rc1 Signed-off-by: Jaroslav Kysela Signed-off-by: Takashi Iwai commit facab50c4db9749d742348586e147fa8dc0896ed Author: Takashi Iwai Date: Mon Jun 2 11:45:53 2008 +0200 [ALSA] emu10k1 - Fix inverted Analog/Digital mixer switch on Audigy2 On Audigy2 Platinum, the Analog/Digital mixer switch is inverted. https://bugzilla.novell.com/show_bug.cgi?id=396204 The patch adds a simple workaround. There might be another device requiring a similar fix, too (or fix for audigy2 generically), but right now I fix only the known broken one. Signed-off-by: Takashi Iwai commit adb188a0da0894dd7dfe5c8de9041ff754082722 Author: Takashi Iwai Date: Fri May 30 09:49:41 2008 +0200 [ALSA] emu10k1 - simplify page allocation for synth Simplify the page allocation of emu10k1 driver for emux synth support. Since these pages aren't be necessarily coherent, we can avoid expensive DMA-coherent routines. Signed-off-by: Takashi Iwai commit 9f15c5ef7746a87f0059230b6563f3188da72b67 Author: Takashi Iwai Date: Fri May 30 11:27:24 2008 +0200 [ALSA] trivial clean up of sound/isa/sb/Makefile Remove unneeded sort in sound/isa/sb/Makefile. Signed-off-by: Takashi Iwai commit 19d56d8a47f2082e556ad03fdbf89ae6ae4a2c34 Author: Takashi Iwai Date: Fri May 30 11:25:03 2008 +0200 sounds: Clean up sound/oss/Kconfig Removed unnecessary dependencies, fix a wrong selection, and make CONFIG_SOUND_OSS menuconfig to simplify. Signed-off-by: Takashi Iwai commit 055d467ee2d695f39eae174f156ac494f2d1dc60 Author: Takashi Iwai Date: Fri May 30 09:47:45 2008 +0200 [ALSA] trident - clean up obsolete synth codes Clean up the unused synth codes in the memory handling of trident driver. Signed-off-by: Takashi Iwai commit 2c4e46229b6dad4c77d6f7493ea408f60a864ed7 Author: Takashi Iwai Date: Fri May 30 09:22:22 2008 +0200 [ALSA] Make ak4531 local to ens1370 driver The ak4531 module is used only by ens1370 driver (and unlikely that any other will use it ever). Let's make it local to ens1370. Signed-off-by: Takashi Iwai commit 0716b3f748f18444ad8806b33b20e694632e4a32 Author: Takashi Iwai Date: Thu May 29 18:53:05 2008 +0200 [ALSA] Clean up sound/pci/ac97/Makefile Signed-off-by: Takashi Iwai commit 3b480c97b92976e98b37e75ed109379f4f1c1dd7 Author: Philipp Zabel Date: Wed May 28 17:58:06 2008 +0100 [ALSA] ASoC: Add UDA1380 driver The UDA1380 codec is used by the HTC Magician and a number of Samsung reference boards. This driver has had a long out of tree history, having originally been written by Giorgio Padrin and converted to ASoC by Richard Purdie. Since conversion to ASoC most of the work on the driver has been done by Philipp Zabel with some review and updates for new APIs by Liam Girdwood and Mark Brown. Signed-off-by: Richard Purdie Signed-off-by: Philipp Zabel Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit ee33761472b0bd1278bf267bb423fa67e91bdc59 Author: Mark Brown Date: Wed May 28 17:58:05 2008 +0100 [ALSA] ASoC: Add SOC_DOUBLE_S8_TLV control type The SOC_DOUBLE_S8_TLV control type was originally implemented in the UDA1380 driver by Philipp Zabel and was moved into the core by me. Signed-off-by: Philipp Zabel Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit ee82a661fd6bf0d2e896a8e953520d4939a714af Author: Takashi Iwai Date: Tue May 27 17:59:24 2008 +0200 [ALSA] Improve the slots option handling Fix and improve the slots option handling. The sound core tries to find the slot with the given module name first and assign if it's still available. If all pre-given slots are unavailable, then try to find another free slot. Also, when a module name begins with '!', it means the negative match: the slot will be given for any modules but that one. Signed-off-by: Takashi Iwai commit 870c9ff5491587fa266b2ce23d0589543d1f42db Author: Kailang Yang Date: Tue May 27 12:32:25 2008 +0200 [ALSA] hda - Fix EAPD and COEF setups for realtek codecs Fixed EAPD and COEF setups for Realtek ALC662/663, 660-VD and 888 codecs. Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit 5f2db4a192de1f3426fbf19ab461c1eed6bc8554 Author: Kailang Yang Date: Tue May 27 12:14:47 2008 +0200 [ALSA] hda - show correct codec chip in PCM stream names Show more exact codec chip name in the PCM stream name strings. Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit d393e98db09110e29eedcd5f9bf2f3dd3136f46b Author: Kailang Yang Date: Tue May 27 12:10:25 2008 +0200 [ALSA] hda - Fix vref pincap check in alc882 auto-detection Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit 81ec697fb58c6f63e3de83e3e3c779893fd54609 Author: Kailang Yang Date: Tue May 27 12:05:31 2008 +0200 [ALSA] hda - Add ALC663 support Added the support of ALC663 codec, including specific models for ASUS M51VA, ASUS G71V, ASUS H13 and ASUS G50V. Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit d755b99de4fe3f780eb584ea4f9de13ff8358256 Author: Kailang Yang Date: Tue May 27 11:48:01 2008 +0200 [ALSA] hda - Add ICH9 controller support (8086:2911) Added the missing PCI ID for ICH9 controller (8086:2911) Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit f785547dbc5ab7cdc602c5855e04e191a392f500 Author: Kailang Yang Date: Tue May 27 11:44:55 2008 +0200 [ALSA] hda - Add support of Teradici controller Add the new PCI ID 0x6549 0x1200 Teradici controller. Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit 13479d28fd4cf8e373dfc131d98c0ca9c01f25f7 Author: Mike Rapoport Date: Mon May 26 12:59:16 2008 +0300 [ALSA] Add EM-X270 ASoC driver This patch adds ASoC support for EM-X270 machine. Signed-off-by: Mike Rapoport Signed-off-by: Takashi Iwai commit 37da8ddd1b99bbe0347d0a9c6809f60c3f3677a8 Author: Takashi Iwai Date: Tue May 20 12:15:15 2008 +0200 [ALSA] Replace CONFIG_SND_DEBUG_DETECT with CONFIG_SND_DEBUG_VERBOSE Replace CONFIG_SND_DEBUG_DETECT with CONFIG_SND_DEBUG_VERBOSE to represent its meaning more better. This config isn't provided only for the detection but for more verbose debug prints in general. Signed-off-by: Takashi Iwai commit 3b295c5ae5c3fac7c192b76efe6b8601c0fd7e80 Author: Takashi Iwai Date: Fri May 23 16:11:26 2008 +0200 [ALSA] Fix AC97 kconfig items The kconfig items related with AC97-powersave must be outside the CONFIG_SND_PCI range. And it'd be better together with CONFIG_SND_AC97. Signed-off-by: Takashi Iwai commit a34dad280f27a83f13160531544eb685126d58f1 Author: Takashi Iwai Date: Fri May 23 16:10:37 2008 +0200 sound: Convert to menuconfig Convert menu in sound Kconfig files to menuconfig and if. Signed-off-by: Takashi Iwai commit 92e6963641011939ac59595c7db583cd06b63b58 Author: Adrian Bunk Date: Tue May 20 00:59:35 2008 +0300 sound/oss/: remove CVS keywords This patch removes CVS keywords that weren't updated for a long time from comments. Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai commit cd9c45914bb2133a36472c2b8843c5d1044596fa Author: Adrian Bunk Date: Tue May 20 01:06:55 2008 +0300 [ALSA] remove CVS keywords This patch removes CVS keywords that weren't updated for a long time from comments. Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai commit c5decf34415208aaae1930ba35b63f76ae89cd7b Author: Chris Mennie Date: Mon May 19 16:21:33 2008 +0200 [ALSA] usb-audio - Support for Roland SonicCell sound module Added entry into usbquirks.h to recognize Roland SonicCell sound module by mostly duplicating the entry for the Roland SH-201. USB MIDI works just fine, though the USB audio is a little unreliable (but still works well enough). Signed-off-by: Chris Mennie Signed-off-by: Takashi Iwai commit e9e3b429eecc83abe43d9cc99e7accdef24e5f7b Author: Clemens Ladisch Date: Tue May 20 14:22:44 2008 +0200 [ALSA] ice1724: fix MIDI The VT1724 MIDI port is not MPU-401 compatible; remove the hacks that try to make the MPU-401 library work with it, and just use some simple device-specific code. Signed-off-by: Clemens Ladisch Tested-by: Pavel Hofman Signed-off-by: Takashi Iwai commit a2af070adac8cd9eba52f96784dbf391d73be2d5 Author: Werner Almesberger Date: Mon Apr 14 14:26:44 2008 +0200 [ALSA] soc - Fix s3c24xx-i2s LR sync while timer ticks are disabled When timer ticks are disabled when calling sound/soc/s3c24xx/s3c24xx-i2s.c:s3c24xx_snd_lrsync and the LR signal never happens, we loop forever. This has been observed in the following call chain: snd_pcm_common_ioctl1 -> snd_pcm_action_lock_irq -> snd_pcm_action_single -> snd_pcm_do_resume -> soc_pcm_trigger -> s3c24xx_i2s_trigger The patch below changes the timeout mechanism to use udelay, which doesn't need timer ticks. Signed-off-by: Werner Almesberger Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit d1620f525567cc9b49348386083c13cf7d0ea0e2 Author: Mark Brown Date: Tue May 13 14:54:43 2008 +0200 [ALSA] soc - Convert Wolfson codec drivers to use bulk DAPM registration Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit e6de30f3b7b4c6d378badccc94f0dbeff7f9f427 Author: Mark Brown Date: Mon May 19 12:32:25 2008 +0200 [ALSA] ASoC: core checkpatch cleanups Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit c8eec5e104a8397e52e5561edfc6a81ac6b351b0 Author: Mark Brown Date: Mon May 19 12:31:28 2008 +0200 [ALSA] ASoC: Clarify API for bias configuration Currently the ASoC core configures the bias levels in the system using a callback on codecs and machines called 'dapm_event', passing it PCI style power levels as SNDRV_CTL_POWER_ constants. This is more obscure than it needs to be and has caused confusion to driver authors, especially given that DAPM is also performing power management. Address this by renaming the callback function to 'set_bias_level' and using constants explicitly representing the off, standby, pre-on and on states which DAPM transitions through. Also unexport the API for setting bias level: there are currently no in-tree users of this API other than the core itself and it is likely that the core would need to be extended to cater for any users. Signed-off-by: Mark Brown Cc: Jarkko Nikula Signed-off-by: Takashi Iwai commit 23fa93d2a8a4ab6f601c0339c36d28a10344d3a6 Author: Mark Brown Date: Mon May 19 12:31:55 2008 +0200 [ALSA] ASoC: Make CPU and codec DAI operations have same type The CPU and codec DAI operations differ only in the presence of the digital mute operation for the codec so they may as well be the same type. Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit 0ac47873d9d5cc7e995d9ccb2755c33eb86e4620 Author: Mark Brown Date: Mon May 19 12:30:58 2008 +0200 [ALSA] ASoC: Remove in-code changelogs The overwhelming majority just say 'initial version' anyway. Signed-off-by: Mark Brown Acked-by: Ben Dooks Signed-off-by: Takashi Iwai commit 8a4bd4dff53ad23c32ffc0b366e592319dd566a4 Author: Takashi Iwai Date: Fri May 16 12:34:47 2008 +0200 [ALSA] hda - Fix DMA position inaccuracy Many HD-audio controllers seem inaccurate about the IRQ timing of PCM period updates. This has caused problems on audio quality; e.g. JACK doesn't work with two periods. This patch fixes the problem by checking the current DMA position at IRQ handler and delays the period-update via a workq if it's inaccurate. Signed-off-by: Takashi Iwai commit cc4846f88e7d0802fd26aefc7fc8c4c6d12ebf57 Author: Andreas Mohr Date: Fri May 16 12:18:29 2008 +0200 [ALSA] PCI168 snd-azt3328 Linux driver: another huge update - figured out 'Digital(ly) Enhanced Game Port' functionality, implemented support for it (eliminating gameport polling overhead) - removed optional joystick activation, gameport now enabled unconditionally, since we now support it via the PCI I/O space, not via conflict-prone legacy I/O (which I was thus able to DISABLE now)! - fix playback bug (a muted wave output would get unmuted upon start of playback, of course this is not what we want, thus remember mute state) - implement partial power management: when idle, lower clock rate and disable codec (reduced noise!), and disable gameport circuit when unused - instantiate OPL3 timer, too - much better implementation of snd_azf3328_mixer_write_volume_gradually() - slightly optimized interrupt handling - lots of cleanup This time, I also found a way to verify proper OPL3 operation via MIDI file playback (emulation via synth hardware). Signed-off-by: Andreas Mohr Signed-off-by: Takashi Iwai commit 9a941323a1951ac10849492972ec87a9649ab7d2 Author: Jarkko Nikula Date: Thu May 15 11:01:36 2008 +0200 [ALSA] ASoC: Convert N810 machine driver to use gpiolib Use gpiolib since it is now available for OMAPs. Change also references to HW version RX44 to product name N810. Signed-off-by: Jarkko Nikula Signed-off-by: Takashi Iwai commit 0dc57f8a9ee21a99834a8d3759b41db4023afa3d Author: Mark Brown Date: Tue May 13 14:58:57 2008 +0200 [ALSA] soc - n810 - Update for bulk DAPM registration APIs Signed-off-by: Mark Brown Cc: Jarkko Nikula Signed-off-by: Takashi Iwai commit 922fdeb04ac49e95877ff123a9b221c5cb6f6cca Author: Mark Brown Date: Tue May 13 14:58:30 2008 +0200 [ALSA] soc - davinci-evm - Update for bulk DAPM registration APIs Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit c352933168ccc8027b730d0896fc3d637eeb4e88 Author: Mark Brown Date: Tue May 13 14:58:03 2008 +0200 [ALSA] soc - neo1973_wm8753 - Convert to bulk DAPM registration APIs Signed-off-by: Mark Brown Cc: Graeme Gregory Signed-off-by: Takashi Iwai commit 940d1425e6fc75dd6527ae08e4782bbc1a98904f Author: Mark Brown Date: Tue May 13 14:57:37 2008 +0200 [ALSA] soc - eti_b1_wm8731 - Convert to use bulk DAPM control registration Signed-off-by: Mark Brown Cc: Frank Mandarino Signed-off-by: Takashi Iwai commit f038748b276e41d7c9dbdc06c109db5972860484 Author: Mark Brown Date: Tue May 13 14:55:48 2008 +0200 [ALSA] soc - Zaurus - Convert to bulk DAPM registration APIs Signed-off-by: Mark Brown Cc: Richard Purdie Signed-off-by: Takashi Iwai commit 8d8089b7cc7a1ed3af02490061e714fb85dcd947 Author: Mark Brown Date: Tue May 13 14:55:22 2008 +0200 [ALSA] soc - tlv320aic3x - Convert to use bulk registration APIs Signed-off-by: Mark Brown Cc: Jarkko Nikula Signed-off-by: Takashi Iwai commit 97ec32166715adba5b7942fd8289a6a18c8f1a7b Author: Mark Brown Date: Tue May 13 14:52:19 2008 +0200 [ALSA] soc - DAPM - Bulk route registration ASoC codecs and machine drivers that use DAPM routes all cut'n'paste a loop iterating over a null terminated array of routes. Factor out this into a bulk registration function, improving the error reporting for most users, and deprecate the old API to help out of tree users pick up the changes. Signed-off-by: Mark Brown Cc: Graeme Gregory Cc: Frank Mandarino Cc: Jarkko Nikula Cc: Richard Purdie Signed-off-by: Takashi Iwai commit 31f96e4c6a18978fffb6d8bf698eafad45293041 Author: Mark Brown Date: Tue May 13 14:51:19 2008 +0200 [ALSA] soc - DAPM - Add bulk control registration Most SoC drivers cut'n'paste a loop iterating over an array to register their DAPM controls. Provide a function they can call instead. Signed-off-by: Mark Brown Cc: Graeme Gregory Cc: Frank Mandarino Cc: Jarkko Nikula Cc: Richard Purdie Signed-off-by: Takashi Iwai commit 284ee9e6bdb32c1a739dacc10a46ad71716a13af Author: Clemens Ladisch Date: Tue May 13 09:26:01 2008 +0200 [ALSA] virtuoso: restrict period time to less than 10 s Add a constraint for the period time so that there are less than ten seconds between interrupts so that ALSA does not assume that the device is dead. Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai commit 889d5bbe543227ca42d5871963734ad364f405b9 Author: Clemens Ladisch Date: Tue May 13 09:25:39 2008 +0200 [ALSA] oxygen: add symbols for buffer/period size constraints Introduce symbols for the buffer/period size constraints so that their limits and relationships become clearer. Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai commit 6d4788aff745e4e6cffde0c1f8f212610d3d83fb Author: Clemens Ladisch Date: Tue May 13 09:24:39 2008 +0200 [ALSA] oxygen: add PM support Add suspend/resume support. Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai commit eabd20008990a03807faa4d71a3b0384bdab9f9c Author: Clemens Ladisch Date: Tue May 13 09:23:02 2008 +0200 [ALSA] virtuoso: add xonar_enable_output() Move the setting of the output enable GPIO bit to a separate function. Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai commit 12a9a01815c1e53b578ae7253ca9222f2e737365 Author: Clemens Ladisch Date: Tue May 13 09:22:43 2008 +0200 [ALSA] oxygen: separate out hardware initialization code Create separate functions for the code that initializes the hardware, as opposed to initializing internal driver state, so that they can be reused for resume support. Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai commit b34470f5eb3ff6db0a26c51422a3f6dfc78730a2 Author: Clemens Ladisch Date: Tue May 13 09:21:48 2008 +0200 [ALSA] oxygen: simplify DAC volume initialization When initializing the DAC volume registers, we can just use the generic volume update functions instead of setting the registers manually. Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai commit 493dfdfd27919506d16b264e5876e49d45db7cb0 Author: Clemens Ladisch Date: Tue May 13 09:20:51 2008 +0200 [ALSA] oxygen: save register writes Save the written values of all CMI8788 and AC97 registers and of some of the DAC/ADC registers so that it is possible to restore the register state later. Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai commit c100bbbcfed65f6d078933f4e7a83e1ba55f925f Author: Clemens Ladisch Date: Tue May 13 09:19:53 2008 +0200 [ALSA] oxygen: add symbol for I/O space size Remove another magic number - add a symbol for the size of the PCI I/O range. Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai commit c2d5a817391865ab949d0b7843d7ac5c1302a28d Author: Clemens Ladisch Date: Tue May 13 09:18:27 2008 +0200 [ALSA] oxygen: fix version in MODULE_LICENSE Adjust the MODULE_LICENSE strings to properly reflect the actual license. Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai commit a1d396cdb8c03cd77cba057465044842bc1f4585 Author: Takashi Iwai Date: Fri May 9 12:45:56 2008 +0200 [ALSA] Remove unneeded ugly hack for i386 in memalloc.c The hack for dma_alloc_coherent() is no longer needed on 2.6.26 since the base code was improved. Signed-off-by: Takashi Iwai commit d8538fd5c5b0a7fe657b7b75131902002c76346d Author: Daniel Mack Date: Thu May 8 15:42:15 2008 +0200 [ALSA] snd_usb_caiaq: add support for 'Session I/O' interface This patch adds suport for Native Instruments new 'Guitar Rig Session I/O' audio hardware. Signed-off-by: Daniel Mack Signed-off-by: Takashi Iwai commit 7e643157ad1705791dd3f0d31315c49875d97d06 Author: Harvey Harrison Date: Thu May 8 13:01:32 2008 +0200 [ALSA] i2c: cs8427.c use put_unaligned helper Signed-off-by: Harvey Harrison Signed-off-by: Takashi Iwai commit 2c897c20250cbf45a58b2cacafc2ac25ce52bbbf Author: Daniel Jacobowitz Date: Wed May 7 12:05:10 2008 +0200 [ALSA] ac97 - Add virtual master control to VT1616/VT1617A codec. Enable VMASTER for VT1616 / VT1617A codec. Signed-off-by: Daniel Jacobowitz Signed-off-by: Takashi Iwai commit a6da5857f5c3206f11f4ef6a52613a8dd7611644 Author: Tim Niemeyer Date: Mon May 5 14:16:12 2008 +0200 [ALSA] soc - Patch to add debug messages to the neo1973_wm8753 (GTA01) sound driver Signed-off-by: Tim Niemeyer Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit fcc6a5177fc77dced493ab78885722f1989a1d11 Author: Stephen Rothwell Date: Thu May 1 10:49:18 2008 +0200 [ALSA] sound: fix export symbol typo Signed-off-by: Stephen Rothwell Signed-off-by: Takashi Iwai commit e7db3655efb1096649beeff7944f4008466511f4 Author: Graeme Gregory Date: Wed Apr 30 19:27:40 2008 +0200 [ALSA] soc - DAPM - add hook to read state of DAPM widget This adds a hook to read the power state of a DAPM widget, I use this in the gta02 driver to expose certain DAPM widgets in the mixer for ease of audio routing. Signed-off-by: Graeme Gregory Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit a86c016df2e31242c4c1eaf36b39d3cb14065a91 Author: Daniel Mack Date: Wed Apr 30 16:20:52 2008 +0200 [ALSA] soc - tlv320aic3x - add GPIO support This patch adds support for AIC3x GPIO lines. They can be configured for many possible functions as well as be driven manually. I also introduced i2c read functionality since the GPIO state register has to be read from hardware every time and can not be served from cache. Signed-off-by: Daniel Mack Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit 2153964e71cfb4eec2705fefc4e9566dc007972f Author: Daniel Mack Date: Wed Apr 30 16:20:19 2008 +0200 [ALSA] soc - tlv320aic3x - revisit clock setup This patch cleans up the clocking setup for aic3x codecs. It drops the dividers table and determines the PLL control values programatically. Under certain conditions, the PLL is disabled entirely which could save some power. Signed-off-by: Daniel Mack Acked-by: Jarkko Nikula Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit d96df6c20112fca841a098a61690a05a68b4a17f Author: Zhao Yakui Date: Thu Jun 5 11:44:15 2008 +0800 ACPI: Disable the C2C3_FFH access mode if MWAIT is unsupported After the following commit is merged, C2C3_FFH mode will be enabled and passed into the _PDC object. But because MWAIT is unsupported on some laptops, the different power states will be returned by the _CST object. Maybe it will be better to disable C2C3_FFH access mode if MWAIT is unsupported. commit 991528d7348667924176f3e29addea0675298944 Author: Venkatesh Pallipadi Date: Mon Sep 25 16:28:13 2006 -0700 ACPI: Processor native C-states using MWAIT http://bugzilla.kernel.org/show_bug.cgi?id=10807 Signed-off-by: Zhao Yakui Signed-off-by: Li Shaohua Signed-off-by: Len Brown commit 34b4dcd9515e6dd248280181e56c2d520a5bef90 Author: Rafael J. Wysocki Date: Thu Jun 5 01:17:28 2008 +0200 ACPI PM: Remove obsolete Toshiba workaround Remove the obsolete workaround for a Toshiba Satellite 4030cdt S1 problem from drivers/acpi/sleep/main.c . Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Len Brown commit 6261a61bfcbd1a2fef169c1dfaa3766f7bec439c Author: Rafael J. Wysocki Date: Thu Jun 5 01:16:37 2008 +0200 PCI ACPI: Drop the second argument of platform_pci_choose_state Since the second argument of acpi_pci_choose_state() and platform_pci_choose_state() is never used, remove it. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Len Brown commit 744864890aa0ee1d2672afeddcb0a4a53d537c97 Author: David Brownell Date: Thu Jun 5 01:15:40 2008 +0200 ACPI PM: acpi_pm_device_sleep_state() cleanup Get rid of a superfluous acpi_pm_device_sleep_state() parameter. The only legitimate value of that parameter must be derived from the first parameter, which is what all the callers already do. (However, this does not address the fact that ACPI still doesn't set up those flags.) Signed-off-by: David Brownell Acked-by: Pavel Machek Signed-off-by: Rafael J. Wysocki Signed-off-by: Len Brown commit 40aecb1b13f50d96616abb612c17e59457f54263 Author: Allan Stephens Date: Wed Jun 4 17:54:48 2008 -0700 tipc: Message rejection rework preparatory changes This patch defines a few new message header manipulation routines, and generalizes the usefulness of another, in preparation for upcoming rework of TIPC's message rejection code. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 99c145939bc1f65f9b946f2b9dd7bfc1f44783d6 Author: Allan Stephens Date: Wed Jun 4 17:48:25 2008 -0700 tipc: Fix bugs in rejection of message with short header This patch ensures that TIPC doesn't try to access non-existent message header fields when rejecting a message with a short header. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 9bef54383d16568da19cfe46bdc52cdedb9bb8da Author: Allan Stephens Date: Wed Jun 4 17:47:55 2008 -0700 tipc: Message header creation optimizations This patch eliminates several cases where message header fields were being set to the same value twice. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit bd7845337b105e090dd18912d511139945fa7586 Author: Allan Stephens Date: Wed Jun 4 17:47:30 2008 -0700 tipc: Expand link sequence gap field to 13 bits This patch increases the "sequence gap" field of the LINK_PROTOCOL message header from 8 bits to 13 bits (utilizing 5 previously unused 0 bits). This ensures that the field is big enough to indicate the loss of up to 8191 consecutive messages on the link, thereby accommodating the current worst-case scenario of 4000 lost messages. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 307fdf5e7defcacf84db21cda18770b2bf5f5196 Author: Allan Stephens Date: Wed Jun 4 17:38:22 2008 -0700 tipc: Add missing spinlock in name table display code This patch ensures that the display code that traverses the publication lists belonging to a name table entry take its associated spinlock, to protect against a possible change to one of its "head of list" pointers caused by a simultaneous name table lookup operation by another thread of control. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 0f15d36453bbd02d404445dace49f4ae072f44e5 Author: Allan Stephens Date: Wed Jun 4 17:37:59 2008 -0700 tipc: Prevent display of name table types with no publications This patch adds a check to prevent TIPC's name table display code from listing a name type entry if it exists only to hold subscription info, rather than published names. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 757152175666681d54d370500e41a756cfedd4fc Author: Allan Stephens Date: Wed Jun 4 17:37:34 2008 -0700 tipc: Optimize message initialization routine This patch eliminates the rarely-used "error code" argument when initializing a TIPC message header, since the default value of zero is the desired result in most cases; the few exceptional cases now set the error code explicitly. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 9c396a7bfb4fe74e444be09069651280da520944 Author: Allan Stephens Date: Wed Jun 4 17:36:58 2008 -0700 tipc: Prevent access of non-existent field in short message header This patch eliminates a case where TIPC's link code could try reading a field that is not present in a short message header. (The random value obtained was not being used, but the read operation could result in an invalid memory access exception in extremely rare circumstances.) Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 1265a02108c508b508112cdeac922aad03e0146a Author: Allan Stephens Date: Wed Jun 4 17:32:35 2008 -0700 tipc: Minor optimizations to received message processing This patch enhances TIPC's handler for incoming messages in two ways: - the trivial, single-use routine for processing non-sequenced messages has been merged into the main handler - the interface that received a message is now identified without having to access and/or modify the associated sk_buff Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit a686e6859e976712e28f6af927cd52a6a3bb372a Author: Allan Stephens Date: Wed Jun 4 17:29:39 2008 -0700 tipc: Fix minor bugs in link session number handling This patch introduces a new, out-of-range value to indicate that a link endpoint does not have an existing session established with its peer, eliminating the risk that the previously used "invalid session number" value (i.e. zero) might eventually be assigned as a valid session number and cause incorrect link behavior. The patch also introduces explicit bit masking when assigning a new link session number to ensure it does not exceed 16 bits. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit e0d4e3d0d72cfae7b7eac14e39e12dfc6b406313 Author: Allan Stephens Date: Wed Jun 4 17:29:09 2008 -0700 tipc: Fix bugs in message error code display when debugging This patch corrects two problems in the display of error code information in TIPC messages when debugging: - no longer tries to display error code in NAME_DISTRIBUTOR messages, which don't have the error field - now displays error code in 24 byte data messages, which do have the error field Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 5307e46957e76d71f02d2d736030ad92cdb3dd8c Author: Allan Stephens Date: Wed Jun 4 17:28:45 2008 -0700 tipc: Standardize error checking on incoming messages via native API This patch re-orders & re-groups the error checks performed on messages being delivered to native API ports, in order to clarify the similarities and differences required for the various message types. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 84b07c1638c36ae937d4930b467001a0d22904e5 Author: Allan Stephens Date: Wed Jun 4 17:28:21 2008 -0700 tipc: Fix bug in connection setup via native API This patch fixes a bug that prevented TIPC from receiving a connection setup request message on a native TIPC port. The revised connection setup logic ensures that validation of the source of a connection-based message is skipped if the port is not yet connected to a peer. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit bd70e522afce2f7837d081dc52f261ecf9d4d2d5 Author: Yinghai Lu Date: Wed Jun 4 13:21:29 2008 -0700 x86: e820 max_arch_pfn typo fix for 64 bit should use right shift Signed-off-by: Yinghai Lu Cc: Andrew Morton Signed-off-by: Thomas Gleixner commit c0e4bf3ab371be14aa6fcebcb1b1b93135a75ae0 Author: Henry Nestler Date: Mon May 12 15:44:39 2008 +0200 x86: fix endless page faults in mount_block_root for Linux 2.6 Page faults in kernel address space between PAGE_OFFSET up to VMALLOC_START should not try to map as vmalloc. Fix rarely endless page faults inside mount_block_root for root filesystem at boot time. All 32bit kernels up to 2.6.25 can fail into this hole. I can not present this under native linux kernel. I see, that the 64bit has fixed the problem. I copied the same lines into 32bit part. Recorded debugs are from coLinux kernel 2.6.22.18 (virtualisation): http://www.henrynestler.com/colinux/testing/pfn-check-0.7.3/20080410-antinx/bug16-recursive-page-fault-endless.txt The physicaly memory was trimmed down to 192MB to better catch the bug. More memory gets the bug more rarely. Details, how every x86 32bit system can fail: Start from "mount_block_root", http://lxr.linux.no/linux/init/do_mounts.c#L297 There the variable "fs_names" got one memory page with 4096 bytes. Variable "p" walks through the existing file system types. The first string is no problem. But, with the second loop in mount_block_root the offset of "p" is not at beginning of page, the offset is for example +9, if "reiserfs" is the first in list. Than calls do_mount_root, and lands in sys_mount. Remember: Variable "type_page" contains now "fs_type+9" and not contains a full page. The sys_mount copies 4096 bytes with function "exact_copy_from_user()": http://lxr.linux.no/linux/fs/namespace.c#L1540 Mostly exist pages after the buffer "fs_names+4096+9" and the page fault handler was not called. No problem. In the case, if the page after "fs_names+4096" is not mapped, the page fault handler was called from http://lxr.linux.no/linux/fs/namespace.c#L1320 The do_page_fault gots an address 0xc03b4000. It's kernel address, address >= TASK_SIZE, but not from vmalloc! It's from "__getname()" alias "kmem_cache_alloc". The "error_code" is 0. "vmalloc_fault" will be call: http://lxr.linux.no/linux/arch/i386/mm/fault.c#L332 "vmalloc_fault" tryed to find the physical page for a non existing virtual memory area. The macro "pte_present" in vmalloc_fault() got a next page fault for 0xc0000ed0 at: http://lxr.linux.no/linux/arch/i386/mm/fault.c#L282 No PTE exist for such virtual address. The page fault handler was trying to sync the physical page for the PTE lockup. This called vmalloc_fault() again for address 0xc000000, and that also was not existing. The endless began... In normal case the cpu would still loop with disabled interrrupts. Under coLinux this was catched by a stack overflow inside printk debugs. Signed-off-by: Henry Nestler Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 7e74a5076edb3555dc6c96dc91b155706515bb4c Author: Ben Dooks Date: Tue May 20 17:32:27 2008 +0100 [MTD] [NAND] S3C2410: Remove changelog and tidy header The changelog on the driver is superflous given this is being kept under revision control. Remove the other cruft in the header and update the copyright and the supported device list. Signed-off-by: Ben Dooks Signed-off-by: David Woodhouse commit 451d33993b13174d27474ad2ce7a2f10ce2e31ad Author: Ben Dooks Date: Tue May 20 17:32:14 2008 +0100 [MTD] [NAND] S3C2410: Change printk() into dev_dbg() Fix a minor problem with what should have been debug output by changing printk() to dev_dbg() inside s3c2410_nand_update_chip(). Thanks to David Woodhouse for pointing this out. Signed-off-by: Ben Dooks Signed-off-by: David Woodhouse commit 2e3c22f57029ce04d55c07b8332ae405005456d9 Author: Mike Frysinger Date: Mon May 19 18:32:24 2008 +0800 [MTD] [MAPS] Blackfin Async Flash Maps Handle the case where flash memory and ethernet mac/phy are mapped onto the same async bank [try #4] - drop superfluous casts - drop SSYNC() when reading from the flash and rewrite bfin_copy_from() to be like bfin_copy_to() so that we dont have to handle all the aligned/unaligned cases [try #3] rename bf5xx-flash to bfin-async-flash - move all kconfig board settings into board resources - fixup casting style according to lkml feedback - rewrite driver so that it can handle arbitrary of instances according to the declared platform resources [try #2] Remove useless SSYNC() as Will said [try #1] The BF533-STAMP does this for example. All board-specific configuration goes in your board resources file. Signed-off-by: Mike Frysinger Acked-By: Jörn Engel Signed-off-by: Bryan Wu Signed-off-by: David Woodhouse commit 71a928c0e52cedc43747c64b96a5f74592ab678f Author: Chris Malley Date: Mon May 19 20:11:50 2008 +0100 [MTD] Use list_for_each_entry[_safe] where appropriate. Janitorial work to remove temporary pointers and make some functions a bit more readable. Signed-off-by: Chris Malley Reviewed-By: Jörn Engel Signed-off-by: David Woodhouse commit f69eb309de9394a883905fc8c81aea7bf7872cac Author: Artem Bityutskiy Date: Wed Jun 4 14:10:32 2008 +0300 UBIFS: do not return negative available space It is harmless to return negative values, but just not nice and may confuse. Signed-off-by: Artem Bityutskiy commit 6cb2fcac6d6c7338318499ab07324c7999813882 Author: Artem Bityutskiy Date: Wed Jun 4 12:44:55 2008 +0300 UBIFS: rename key_ino to key_inum For consistency, because we use inum everywhere. Signed-off-by: Artem Bityutskiy commit 347ce31f7f58154f2eabf8623670735560753c87 Author: Artem Bityutskiy Date: Wed Jun 4 12:43:01 2008 +0300 UBIFS: rename NC to LPROPS_NC Signed-off-by: Artem Bityutskiy commit 2dce7530474fcb31eb2d457f4f31c01addbe337f Author: Artem Bityutskiy Date: Wed Jun 4 12:09:20 2008 +0300 UBIFS: make dbg_check_dir_size check nlink as well Signed-off-by: Artem Bityutskiy commit 6da4e8440b0fe026941ceec551930ec2861e6746 Author: Artem Bityutskiy Date: Tue Jun 3 21:57:25 2008 +0300 UBIFS: partially get rid of truncation key Signed-off-by: Artem Bityutskiy commit f600f6d4d2d41a981c727bfde05f2e48edfe97d3 Author: Artem Bityutskiy Date: Tue Jun 3 20:53:59 2008 +0300 UBIFS: remove format version 2 support Signed-off-by: Artem Bityutskiy commit 59018b6d2acabb114ab58637e6ab95ba424a89d0 Author: Adrian Bunk Date: Tue May 20 01:03:52 2008 +0300 MTD/JFFS2: remove CVS keywords Once upon a time, the MTD repository was using CVS. This patch therefore removes all usages of the no longer updated CVS keywords from the MTD code. This also includes code that printed them to the user. Signed-off-by: Adrian Bunk Signed-off-by: David Woodhouse commit 6eda7a55f786b75e7d3d636a9431e6c850b20d72 Author: Adrian Hunter Date: Fri May 30 15:56:26 2008 +0300 [MTD] [NAND] nandsim: allow for 64-bit size Amend nandsim so that it does not assume 32-bit flash size. Signed-off-by: Adrian Hunter Signed-off-by: David Woodhouse commit 07293b20083cb66df35bf2041f0c554eaac43e8c Author: Adrian Hunter Date: Fri May 30 15:56:23 2008 +0300 [MTD] [NAND] nandsim: fix overridesize Signed-off-by: Adrian Hunter Signed-off-by: David Woodhouse commit af3deccfa67341a9df39b6f734afcc85998ad4b7 Author: Adrian Hunter Date: Fri May 30 15:56:18 2008 +0300 [MTD] [NAND] nandsim: fix size bug Signed-off-by: Adrian Hunter Signed-off-by: David Woodhouse commit 83973b87938a06a2af7e2a7fd1b630c35f8baff4 Author: Kyungmin Park Date: Thu May 29 14:52:40 2008 +0900 [MTD] [OneNAND] Check the ECC status first instead of controller To get the correct information in case of power off recovery, it should read ECC status first Also remove previous workaround method. Signed-off-by: Kyungmin Park Signed-off-by: David Woodhouse commit 271c5c59e00302494ffc299741e7fa2d63103e76 Author: David Woodhouse Date: Wed Jun 4 17:43:22 2008 +0100 [MTD] DataFlash: use proper types Signed-off-by: David Woodhouse commit e9d42227bdc96238676bd28feca5815fcff2d6a8 Author: Michael Hennerich Date: Tue Jun 3 12:26:05 2008 +0800 [MTD] DataFlash: fix bug - ATMEL AT45DF321D spi flash card fails to be copied to (v2) - Add support for binary page size DataFlashes. - The driver now prints out pagesize and erasesize. Printout valuable information for creating flash filesystems. Signed-off-by: Michael Hennerich Cc: David Brownell Signed-off-by: Bryan Wu Signed-off-by: David Woodhouse commit 856613c98c2f864994d5fb33a62b7a468f68ab9b Author: matthias@kaehlcke.net Date: Sat May 31 15:28:10 2008 +0200 [MTD] use list_for_each_entry() in del_mtd_device() Signed-off-by: Matthias Kaehlcke Signed-off-by: David Woodhouse commit 2606c79759e83fd8b1e45bc99b10e65a1dcf1602 Author: matthias@kaehlcke.net Date: Sat May 31 15:28:09 2008 +0200 [MTD] use list_for_each_entry() in add_mtd_device() Signed-off-by: Matthias Kaehlcke Signed-off-by: David Woodhouse commit 2f271fe1bc9b9bfffc31f193bdf99abf636d4652 Author: Artem Bityutskiy Date: Wed Jun 4 17:58:37 2008 +0300 UBI: fix memory leak on error path Normally UBI volumes are freed in the release function of the struct device object. However, on error path they may have to be freed before the struct device objects have been initialized. Signed-off-by: Artem Bityutskiy commit 2af3e6be180883f62f5aa202a0fcf75035af22d9 Author: Artem Bityutskiy Date: Wed Jun 4 17:00:35 2008 +0300 UBI: do not forget to free internal volumes UBI forgets to free internal volumes when detaching MTD device. Fix this. Pointed-out-by: Adrian Hunter Signed-off-by: Artem Bityutskiy commit 93a6ec218074c9b344d7c7e4ed8c650e039deb78 Author: Artem Bityutskiy Date: Wed Jun 4 16:48:12 2008 +0300 UBI: fix memory leak ubi_free_volume() function sets ubi->volumes[] to NULL, so ubi_eba_close() is useless, it does not free what has to be freed. So zap it and free vol->eba_tbl at the volume release function. Pointed-out-by: Adrian Hunter Signed-off-by: Artem Bityutskiy commit ff0de61c3612410dc84a8de28761ef840d5d35ac Author: Robert P. J. Day Date: Sun May 25 07:35:17 2008 -0400 [MTD] [NAND] excite_nandflash: simplify code using ARRAY_SIZE() macro. Signed-off-by: Robert P. J. Day Signed-off-by: David Woodhouse commit 437d0d299f0e08954c3cb680221d7e888e1a857f Author: Toralf Förster Date: Mon May 26 20:35:46 2008 +0200 [MTD] [NAND] fix 2 "unused variable" warnings in cafe_nand.c Signed-off-by: Toralf Förster Signed-off-by: David Woodhouse commit 1b0b30acf3fc76e5d4d278fa5a8c9c6ac9898745 Author: Mike Rapoport Date: Tue May 27 11:20:07 2008 +0300 [MTD] [NOR] Add support for Eon EN29SL800B[BT] NOR flash chips This patch add support for non-CFI Eon EN29SL800B[BT] NOR flash chips. The Eon chips have manufacturer ID in the first bank, therefore this patch depends on support for flash chips with ID in bank other than 0. Signed-off-by: Mike Rapoport Signed-off-by: David Woodhouse commit 5c9c11e1c47c2101253a95c54ef72e13edcc728a Author: Mike Rapoport Date: Tue May 27 11:20:03 2008 +0300 [MTD] [NOR] Add support for flash chips with ID in bank other than 0 According to JEDEC "Standard Manufacturer's Identification Code" (http://www.jedec.org/download/search/jep106W.pdf) several first banks of NOR flash can contain 0x7f instead of actual ID. This patch adds support for reading manufacturer ID from banks other than 0. Signed-off-by: Mike Rapoport Signed-off-by: David Woodhouse commit 8fd310a1cc3aadb7a17d844beeefae66b1a169c6 Author: Mike Rapoport Date: Tue May 27 11:19:57 2008 +0300 [MTD] [NOR] Add support for AMD AM29SL800D[BT] NOR flash chips Signed-off-by: Mike Rapoport Signed-off-by: David Woodhouse commit 9bdce886e7cd234050341ac05cc501e5350cee81 Author: Ingo Molnar Date: Wed Jun 4 18:13:37 2008 +0200 geode: fix modular build -tip testing found this build bug: MODPOST 331 modules ERROR: "geode_mfgpt_toggle_event" [drivers/watchdog/geodewdt.ko] undefined! ERROR: "geode_mfgpt_alloc_timer" [drivers/watchdog/geodewdt.ko] undefined! make[1]: *** [__modpost] Error 1 make: *** [modules] Error 2 with this config: http://redhat.com/~mingo/misc/config-Wed_Jun__4_18_01_59_CEST_2008.bad export those symbols. commit f5be088374ee543e14380b659b00e4cbe122091e Author: Avi Kivity Date: Wed Jun 4 18:42:24 2008 +0300 KVM: MMU: reschedule during shadow teardown Shadows for large guests can take a long time to tear down, so reschedule occasionally to avoid softlockup warnings. Signed-off-by: Avi Kivity commit 06611ee6f9a6330ffd6cd3c3dc7c7b1a09daab59 Author: Laurent Vivier Date: Fri May 30 16:05:57 2008 +0200 KVM: Add coalesced MMIO support (ia64 part) This patch enables coalesced MMIO for ia64 architecture. It defines KVM_MMIO_PAGE_OFFSET and KVM_CAP_COALESCED_MMIO. It enables the compilation of coalesced_mmio.c. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit f34d1b5189c61f1076ab9551c3a5cc89bdc6279d Author: Laurent Vivier Date: Fri May 30 16:05:56 2008 +0200 KVM: Add coalesced MMIO support (powerpc part) This patch enables coalesced MMIO for powerpc architecture. It defines KVM_MMIO_PAGE_OFFSET and KVM_CAP_COALESCED_MMIO. It enables the compilation of coalesced_mmio.c. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 398996a4bef4c17fe664df2fcef3705353e3ad34 Author: Laurent Vivier Date: Fri May 30 16:05:55 2008 +0200 KVM: Add coalesced MMIO support (x86 part) This patch enables coalesced MMIO for x86 architecture. It defines KVM_MMIO_PAGE_OFFSET and KVM_CAP_COALESCED_MMIO. It enables the compilation of coalesced_mmio.c. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 0ca87ec4ded4e6568f235eff495a0552129d8ff4 Author: Laurent Vivier Date: Fri May 30 16:05:54 2008 +0200 KVM: Add coalesced MMIO support (common part) This patch adds all needed structures to coalesce MMIOs. Until an architecture uses it, it is not compiled. Coalesced MMIO introduces two ioctl() to define where are the MMIO zones that can be coalesced: - KVM_REGISTER_COALESCED_MMIO registers a coalesced MMIO zone. It requests one parameter (struct kvm_coalesced_mmio_zone) which defines a memory area where MMIOs can be coalesced until the next switch to user space. The maximum number of MMIO zones is KVM_COALESCED_MMIO_ZONE_MAX. - KVM_UNREGISTER_COALESCED_MMIO cancels all registered zones inside the given bounds (bounds are also given by struct kvm_coalesced_mmio_zone). The userspace client can check kernel coalesced MMIO availability by asking ioctl(KVM_CHECK_EXTENSION) for the KVM_CAP_COALESCED_MMIO capability. The ioctl() call to KVM_CAP_COALESCED_MMIO will return 0 if not supported, or the page offset where will be stored the ring buffer. The page offset depends on the architecture. After an ioctl(KVM_RUN), the first page of the KVM memory mapped points to a kvm_run structure. The offset given by KVM_CAP_COALESCED_MMIO is an offset to the coalesced MMIO ring expressed in PAGE_SIZE relatively to the address of the start of th kvm_run structure. The MMIO ring buffer is defined by the structure kvm_coalesced_mmio_ring. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit b5779e39ed500c948858d64e90305b133a8e4a1b Author: Laurent Vivier Date: Fri May 30 16:05:53 2008 +0200 KVM: kvm_io_device: extend in_range() to manage len and write attribute Modify member in_range() of structure kvm_io_device to pass length and the type of the I/O (write or read). This modification allows to use kvm_io_device with coalesced MMIO. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit a29ccf6f823a84d89e1c7aaaf221cf7282022024 Author: David Woodhouse Date: Tue Jun 3 14:59:40 2008 +0100 Make console charset translation optional By turning off the new CONSOLE_TRANSLATIONS option and dropping the associated code and tables from the kernel, we can save about 7KiB. Taken from linux-tiny project by Tim Bird and mangled further by dwmw2. Signed-off-by: Tim Bird Signed-off-by: David Woodhouse commit 4d5c2d2930e934c36a7ab554f4b307801c8ebf7f Author: Jiri Kosina Date: Wed Jun 4 15:29:42 2008 +0200 HID: remove unused variable from hiddev compat ioctl Remove unused inode variable from hiddev compat ioctl handler. Signed-off-by: Jiri Kosina commit 048fde1757bc7e4ced24de3debec128780b927b8 Author: Suresh Siddha Date: Mon Jun 2 15:57:27 2008 -0700 x86, fpu: fix CONFIG_PREEMPT=y corruption of application's FPU stack Jürgen Mell reported an FPU state corruption bug under CONFIG_PREEMPT, and bisected it to commit v2.6.19-1363-gacc2076, "i386: add sleazy FPU optimization". Add tsk_used_math() checks to prevent calling math_state_restore() which can sleep in the case of !tsk_used_math(). This prevents making a blocking call in __switch_to(). Apparently "fpu_counter > 5" check is not enough, as in some signal handling and fork/exec scenarios, fpu_counter > 5 and !tsk_used_math() is possible. It's a side effect though. This is the failing scenario: process 'A' in save_i387_ia32() just after clear_used_math() Got an interrupt and pre-empted out. At the next context switch to process 'A' again, kernel tries to restore the math state proactively and sees a fpu_counter > 0 and !tsk_used_math() This results in init_fpu() during the __switch_to()'s math_state_restore() And resulting in fpu corruption which will be saved/restored (save_i387_fxsave and restore_i387_fxsave) during the remaining part of the signal handling after the context switch. Bisected-by: Jürgen Mell Signed-off-by: Suresh Siddha Tested-by: Jürgen Mell Signed-off-by: Ingo Molnar commit 1f4e1d64122369d65d8a9c616112780019fb6188 Author: Eli Collins Date: Sun Jun 1 20:24:40 2008 -0700 KVM: VMX: Clear CR4.VMXE in hardware_disable Clear CR4.VMXE in hardware_disable. There's no reason to leave it set after doing a VMXOFF. VMware Workstation 6.5 checks CR4.VMXE as a proxy for whether the CPU is in VMX mode, so leaving VMXE set means we'll refuse to power on. With this change the user can power on after unloading the kvm-intel module. I tested on kvm-67 and kvm-69. Signed-off-by: Eli Collins Signed-off-by: Avi Kivity commit 7b2a0a6c4866cac146dcb0433e6984eb19a81335 Author: Yinghai Lu Date: Tue Jun 3 19:35:04 2008 -0700 x86: make 32-bit use e820_register_active_regions() this way 32-bit is more similar to 64-bit, and smarter e820 and numa. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit ee0c80fadfa56bf4f9d90c1c023429a6bd8edd69 Author: Yinghai Lu Date: Tue Jun 3 19:34:00 2008 -0700 x86: move e820_register_active() to e820.c to prepare 32-bit to use it. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 84b56fa46b36c2df508e7d421feab514fad30f81 Author: Yinghai Lu Date: Tue Jun 3 19:32:30 2008 -0700 x86, numa, 32-bit: make sure get we kva space when 1/3 user/kernel split is used, and less memory is installed, or if we have a big hole below 4g, max_low_pfn is still using 3g-128m try to go down from max_low_pfn until we get it. otherwise will panic. need to make 32-bit code to use register_e820_active_regions ... later. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit ab530e1f781da4d704892daab2bdd568f473687d Author: Yinghai Lu Date: Tue Jun 3 10:25:54 2008 -0700 x86: early check if a system is numaq so we could fall back to one node numa. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit f19dc2f22a180dde3f9e611b76c73f5390c11ecd Author: Yinghai Lu Date: Tue Jun 3 10:24:49 2008 -0700 x86: change propagate_e820_map() back to find_max_pfn(), 32-bit, fix add memory_present() calls for sparse and non-numa. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit f9b9c83d9575c1ef94b3d515dbf8c7fb665218db Author: Jiri Kosina Date: Tue May 27 11:36:40 2008 +0200 HID: fix compile issue in hiddev ioctl Fix build failure introduced by Alan's ioctl -> unlocked_ioctl (pushing BKL down to the driver) conversion patch for hiddev. Signed-off-by: Jiri Kosina commit e636fc11e2a99bc1f950b4ae222ec15a4b6f01db Author: Alan Cox Date: Mon May 26 11:25:26 2008 +0200 HID: Push down BKL into ioctl handler in hidraw In this case I simply wrapped it as code review suggests the locking already terminally broken and I didn't want to make it first. See added comment Signed-off-by: Alan Cox Signed-off-by: Jiri Kosina commit 0e927ec1db1bceef0078c5a5d1fa82a2ce808c47 Author: Alan Cox Date: Mon May 26 11:25:20 2008 +0200 HID: Switch hiddev to unlocked_ioctl Push down the BKL. In some cases compat_ioctl already doesn't take the BKL so we don't either. Some of the locking here seems already dubious and object lifetimes want documenting Signed-off-by: Alan Cox Signed-off-by: Jiri Kosina commit f6cc3b2ee8d5496ced44b95cf7e2b12bfec15083 Author: Harvey Harrison Date: Fri May 16 11:00:23 2008 +0200 HID: use get/put_unaligned_* helpers Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Jiri Kosina commit 9cebe2379f81b9710fea27489ed058cc16cbef9e Author: Alexandre Karpenko Date: Wed Jun 4 10:31:24 2008 +0200 HID: add fn key support on Macbook Pro 4,1 and Macbook Air Added device ids to hid-quriks for detection of keyboards on 4th generation Macbook Pro and Macbook Air The naming scheme is consistent with past Apple keyboards in hid-quirks; as defined by Apple (including device ids) in: /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/Co ntents/Info.plist Patch was originally posted and tested at: https://bugs.launchpad.net/mactel-support/+bug/207127 Signed-off-by: Alexandre Karpenko Signed-off-by: Andrew Morton Signed-off-by: Jiri Kosina commit d4805c2983bc522e4c332ae7b20d65b4bf36e9fc Author: Jiri Kosina Date: Wed Apr 23 16:39:43 2008 +0200 HID: fix report descriptor handling for MS Wireless model 1028 Fix a typo in report descriptor fixup, which results in improper substitution and leaving old value in place. Reported-by: Juha Motorsportcom Signed-off-by: Jiri Kosina commit e0e91ceada6c48546ad124ff2a964db0a0545d8f Author: Henrique de Moraes Holschuh Date: Tue Jun 3 23:36:11 2008 -0300 thinkpad-acpi: fix LED handling on older ThinkPads The less tested codepaths for LED handling, used on ThinkPads 570, 600e/x, 770e, 770x, A21e, A2xm/p, T20-22, X20 and maybe a few others, would write data to kernel memory it had no business touching, for leds number 3 and above. If one is lucky, that illegal write would cause an OOPS, but chances are it would silently corrupt a byte. The problem was introduced in commit af116101, "ACPI: thinkpad-acpi: add sysfs led class support to thinkpad leds (v3.2)". Fix the bug by refactoring the entire code to be far more obvious on what it wants to do. Also do some defensive "constification". Issue reported by Karol Lewandowski (he's an lucky guy and got an OOPS instead of silent corruption :-) ). Root cause of the OOPS identified by Adrian Bunk . Thanks, Adrian! Signed-off-by: Henrique de Moraes Holschuh Tested-by: Karol Lewandowski Signed-off-by: Len Brown commit 2cb87995299775ea2d8488691037da9dece5fb27 Author: Henrique de Moraes Holschuh Date: Tue Jun 3 23:36:10 2008 -0300 thinkpad-acpi: fix initialization error paths Rework some subdriver init and exit handlers, in order to fix some initialization error paths that were missing, or broken. Hitting those bugs should be extremely rare in the real world, but should that happen, thinkpad-acpi would fail to dealocate some resources and a reboot might well be needed to be able to load the driver again. Signed-off-by: Henrique de Moraes Holschuh Signed-off-by: Len Brown commit 5183e52edee67d221f5e53f1443e3a7614fb2530 Author: Henrique de Moraes Holschuh Date: Tue Jun 3 23:36:09 2008 -0300 thinkpad-acpi: SW_RADIO to SW_RFKILL_ALL rename Rename SW_RADIO to SW_RFKILL_ALL in thinkpad-acpi code and docs, following 5adad0133907790c50283bf03271d920d6897043 "Input: rename SW_RADIO to SW_RFKILL_ALL". Signed-off-by: Henrique de Moraes Holschuh Signed-off-by: Len Brown commit d44b9d17faf7bca165ce73a1acb936b65a3f0cc6 Author: Hiroshi Shimamoto Date: Tue Jun 3 13:06:07 2008 -0700 x86: move bugs_64.c to cpu/bugs_64.c It looks good to move bugs_64.c to cpu/bugs_64.c. Signed-off-by: Hiroshi Shimamoto Signed-off-by: H. Peter Anvin commit fe40ad65733e1bce8195aaf11e5099d8b44ef0e6 Author: David Woodhouse Date: Fri May 23 13:52:42 2008 +0100 firmware: allow firmware files to be built into kernel image Some drivers have their own hacks to bypass the kernel's firmware loader and build their firmware into the kernel; this renders those unnecessary. Other drivers don't use the firmware loader at all, because they always want the firmware to be available. This allows them to start using the firmware loader. A third set of drivers already use the firmware loader, but can't be used without help from userspace, which sometimes requires an initrd. This allows them to work in a static kernel. Signed-off-by: David Woodhouse commit f72770895220a042d55612dbbe1514b05e8e6cb2 Author: David Woodhouse Date: Fri May 23 18:38:49 2008 +0100 firmware: make fw->data const In preparation for supporting firmware files linked into the static kernel, make fw->data const to ensure that users aren't modifying it (so that we can pass a pointer to the original in-kernel copy, rather than having to copy it). Signed-off-by: David Woodhouse commit eb5767b79bbaa381b67918f1f5405233a74f849b Author: gregkh@suse.de Date: Thu May 29 10:17:38 2008 -0700 isight: treat firmware data as const Signed-off-by: Greg Kroah-Hartman Signed-off-by: David Woodhouse commit 47951e6e914f42b5675a1e8d5698563092c92fb6 Author: Greg Kroah-Hartman Date: Thu May 29 10:05:08 2008 -0700 x86 microcode: firmware data is const Signed-off-by: Greg Kroah-Hartman Signed-off-by: David Woodhouse commit b794817c25e3859a072790066b6782dddded8db5 Author: Greg Kroah-Hartman Date: Thu May 29 10:05:08 2008 -0700 dell_rbu: firmware data is const Signed-off-by: Greg Kroah-Hartman Signed-off-by: David Woodhouse commit 5c5ce658c9833952fd4986bebbf0973f1b101cde Author: David Woodhouse Date: Thu May 29 14:40:00 2008 +0300 ymfpci: treat firmware data as const Standardise both in-kernel and loaded firmware to be stored as little-endian instead of host-endian. Signed-off-by: David Woodhouse commit d98ff1c9fbce9c5bc9f8ae98014184e31eb6e093 Author: David Woodhouse Date: Thu May 29 11:58:27 2008 +0300 maestro3: treat firmware data as const The maestro3 driver is byte-swapping its firmware to be host-endian in advance, when it doesn't seem to be necessary -- we could just use le16_to_cpu() as we load it. Doing that means that we need to switch the in-tree firmware to be little-endian too. Take the least intrusive way of doing this, which is to switch the existing snd_m3_convert_from_le() function to convert _to_ little-endian instead, and use it on the in-tree firmware instead of the loaded firmware. It's a bit suboptimal but doesn't matter much right now because we're about to remove the special cases for the in-tree version anyway. Signed-off-by: David Woodhouse commit 9d20f0240b97497f4e96b12f3ec88a9b31c88a94 Author: David Woodhouse Date: Sat May 24 00:13:34 2008 +0100 tuners: treat firmware data as const Signed-off-by: David Woodhouse commit a53e070eb256a59fabb2a2faccb270436887b489 Author: David Woodhouse Date: Sat May 24 00:13:08 2008 +0100 gp8psk: treat firmware data as const Signed-off-by: David Woodhouse commit 7e16c1782152e00f5dbe8107051744a40bc28c51 Author: David Woodhouse Date: Sat May 24 00:12:42 2008 +0100 cxusb: treat firmware data as const ...which means allocating our own copy when we want to modify it. (stupid thinko fixed by mkrufky) Signed-off-by: David Woodhouse Signed-off-by: Michael Krufky commit c18fe22bc86dcde600e88dfbba1208065a32b043 Author: David Woodhouse Date: Sat May 24 00:12:23 2008 +0100 dvb frontends: treat firmware data as const Signed-off-by: David Woodhouse commit 68c921d80ab49729f9beeb6e54e06e569ded782f Author: David Woodhouse Date: Sat May 24 00:12:00 2008 +0100 ttusb-dec: treat firmware data as const Signed-off-by: David Woodhouse commit ba39785fc1dc92fc4696d1ad9e94ff7c0cf777cf Author: David Woodhouse Date: Sat May 24 00:11:44 2008 +0100 bt8xx: treat firmware data as const Signed-off-by: David Woodhouse commit 47cd95278b2e6c95841eacb8468d92a84790c1cc Author: David Woodhouse Date: Sat May 24 00:10:55 2008 +0100 cxgb3: treat firmware data as const Signed-off-by: David Woodhouse commit 952c441c395c1d2845291c729ac80712f6b088c9 Author: David Woodhouse Date: Sat May 24 00:10:26 2008 +0100 irda-usb: treat firmware data as const Signed-off-by: David Woodhouse commit 38d4e95061f2863ce182e5d4df369e16520f5718 Author: David Woodhouse Date: Sat May 24 00:09:29 2008 +0100 atmel: treat firmware data as const Signed-off-by: David Woodhouse commit 86d97695cc9d016a2292000a344f9e152ff4c03a Author: David Woodhouse Date: Sat May 24 00:08:55 2008 +0100 p54: treat firmware data as const Signed-off-by: David Woodhouse commit 72cbca7be6c91037ee407d41f84eac1e7847e4f9 Author: David Woodhouse Date: Sat May 24 00:08:39 2008 +0100 rt2x00: treat firmware data as const Signed-off-by: David Woodhouse commit 03c4a491b45e439a347cca032623bcb0bd48377c Author: David Woodhouse Date: Sat May 24 00:08:19 2008 +0100 zd1201: treat firmware data as const Signed-off-by: David Woodhouse commit eb1bc29495bf888408a91237f883468e62d2ccce Author: David Woodhouse Date: Sat May 24 00:05:45 2008 +0100 aic94xx: treat firmware data as const Signed-off-by: David Woodhouse commit 91ae046172260929dd757077800197a4378393e5 Author: David Woodhouse Date: Sat May 24 00:05:28 2008 +0100 cxacru: treat firmware data as const Signed-off-by: David Woodhouse commit cb7faed200db7187ba1bc885bb1ffe959653e331 Author: David Woodhouse Date: Sat May 24 00:05:10 2008 +0100 ueagle-atm: treat firmware data as const Signed-off-by: David Woodhouse commit b839933f56d54d75c2e545906498302376e3c9d9 Author: David Woodhouse Date: Sat May 24 00:02:49 2008 +0100 vx: treat firmware data as const Signed-off-by: David Woodhouse commit 77b7effc06ff724278ca38d1ec64c661e11b448f Author: David Woodhouse Date: Sat May 24 00:02:28 2008 +0100 pcxhr: treat firmware data as const Signed-off-by: David Woodhouse commit 014314b7454cb785e8b17063a084fc2ca5883634 Author: David Woodhouse Date: Sat May 24 00:02:03 2008 +0100 riptide: treat firmware data as const Signed-off-by: David Woodhouse commit 823de8d465a407966c4888dec5828c87c5ef38d6 Author: David Woodhouse Date: Sat May 24 00:01:40 2008 +0100 vx222: treat firmware data as const Signed-off-by: David Woodhouse commit 463e394c80eb39d1b30a24a75a37ab43dadc37dc Author: David Woodhouse Date: Sat May 24 00:00:07 2008 +0100 myri10ge: treat firmware data as const ... which means allocating our own buffer for reading it back. Signed-off-by: David Woodhouse commit 459af92cf09adcd947aba4a802c9e99a662afecc Author: David Woodhouse Date: Fri May 23 23:58:24 2008 +0100 cx25840: treat firmware data as const Signed-off-by: David Woodhouse Acked-by: Hans Verkuil Acked-by: Tyler Trafford Acked-by: Mike Isely commit 255dd0e6209de3983bbfb1b8bcf8032ebd904137 Author: David Woodhouse Date: Fri May 23 23:57:19 2008 +0100 cyclades: treat firmware data as const Signed-off-by: David Woodhouse commit f6fcfcadb9577adc309c44055db7028643f2d52c Author: David Woodhouse Date: Fri May 23 23:56:51 2008 +0100 bluetooth: treat firmware data as const Signed-off-by: David Woodhouse commit 736d50f3f37d83e094128fd827d4c132304ab04f Author: David Woodhouse Date: Fri May 23 18:37:51 2008 +0100 libertas: treat firmware data as const Signed-off-by: David Woodhouse commit 30935069be7faad5323553d1ce6292a33846c2c7 Author: Dan Williams Date: Mon Jun 2 17:51:23 2008 -0400 ipw2200: queue direct scans When another scan is in progress, a direct scan gets dropped on the floor. However, that direct scan is usually the scan that's really needed by userspace, and gets stomped on by all the broadcast scans the ipw2200 driver issues internally. Make sure the direct scan happens eventually, and as a bonus ensure that the passive scan worker is cleaned up when appropriate. The change of request_passive_scan form a struct work to struct delayed_work is only to make the set_wx_scan() code a bit simpler, it's still only used with a delay of 0 to match previous behavior. Signed-off-by: Dan Williams Signed-off-by: John W. Linville commit 78cf07472f0ede8394bacc4bc02354505080cfe1 Author: Holger Schurig Date: Mon Jun 2 09:25:05 2008 +0200 libertas: unify various CF-related defines Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit 2d892986e82306b8ad96285fb54b9999523331e0 Author: Tomas Winkler Date: Mon Jun 2 20:31:57 2008 +0300 mac80211: removing shadowed sband This patch removes doubly defined sband variable Signed-off-by: Tomas Winkler Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit b97e77e0446f0702de7fa0f5d2c52acf42d0289f Author: Tomas Winkler Date: Mon Jun 2 20:31:56 2008 +0300 mac80211: fix unbalanced locking in ieee80211_get_buffered_bc This patch fixes unbalanced locking in ieee80211_get_buffered_bc Signed-off-by: Tomas Winkler Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 2b2121417eff64125bdb7f322d3b533e06d73dae Author: Pavel Roskin Date: Mon Jun 2 07:54:50 2008 -0400 mac80211: fix panic when using hardware WEP e039fa4a4195ac4ee895e6f3d1334beed63256fe ("mac80211: move TX info into skb->cb") misplaced code for setting hardware WEP keys. Move it back. This fixes kernel panic in b43 if WEP is used and hardware encryption is enabled. Signed-off-by: Pavel Roskin Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 5854a32e6cb672d182ce378c69f0f7470137a062 Author: Johannes Berg Date: Mon Jun 2 09:38:04 2008 +0200 mac80211: fix rate control initialisation In commit 2e92e6f2c50b4baf85cca968f0e6f1b5c0df7d39 ("mac80211: use rate index in TX control") I forgot to initialise a few new variables to -1 which means that the rate control algorithm is never triggered and 0 is used as the only rate index, effectively fixing the transmit bitrate at the lowest supported. This patch adds the missing initialisation. Signed-off-by: Johannes Berg Bisected-by: Sitsofe Wheeler Signed-off-by: John W. Linville commit 7fd871edf437362b62ddd807542638cbda8d8a39 Author: Masakazu Mokuno Date: Mon Jun 2 12:49:16 2008 +0900 PS3: gelic: Add support for ESSID scan This adds the support for ESSID scanning Signed-off-by: Masakazu Mokuno Signed-off-by: John W. Linville commit 552fe53f48ef2fd54b031b37d304211cee893ba0 Author: Johannes Berg Date: Fri May 30 21:07:15 2008 +0200 p54: fix skb->cb tx info conversion When I moved the TX info into skb->cb apparently I forgot to change a few places to put the p54-internal data into info->driver_data rather than skb->cb. This should fix it. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit f409e348005693016281bf29535c9d0a91b21f77 Author: Masakazu Mokuno Date: Fri May 30 16:52:55 2008 +0900 PS3: gelic: Deprecate the private ioctls in the gelic driver As the driver has the standard way to handle PSK, deprecate the old interface. Signed-off-by: Masakazu Mokuno Signed-off-by: John W. Linville commit 04b2046c856e36c3c9cf382adb2c0bc8ba780cf7 Author: Masakazu Mokuno Date: Fri May 30 16:52:44 2008 +0900 PS3: gelic: Use the new PMK interface in the gelic driver With the new WEXT flags, the PS3 wireless driver can tell the user space that it would do handle 4-way handshake by itself and needs the PSK without private ioctls. Signed-off-by: Masakazu Mokuno Signed-off-by: John W. Linville commit ba569b4c68f11906da2996ee252bcff0df61cb90 Author: Masakazu Mokuno Date: Fri May 30 16:52:23 2008 +0900 WEXT: Add support for passing PMK and capability flags to WEXT This defines the flags for setting the PMK to the driver and the capability flag for this so that the user space program can figure out whether the target driver wants to do 4-way hand shake by itself and pass the PMK which is needed before 4-way handshake to the driver. Signed-off-by: Masakazu Mokuno Signed-off-by: John W. Linville commit 3df4e2486a58826f16574ead1818daab0edb59df Author: Masakazu Mokuno Date: Fri May 30 16:27:42 2008 +0900 PS3: gelic: Kill the static bounce buffer As the bounce buffer is allocaetd dynamically, kill the static bounce buffer. Signed-off-by: Masakazu Mokuno Signed-off-by: John W. Linville commit 13de15e71db7a38f02c4d9f642f06541f5acc2b0 Author: Masakazu Mokuno Date: Fri May 30 16:27:24 2008 +0900 PS3: gelic: Allocate the bounce buffer dynamically Allocate the bouce buffer for the wireless command dynamically. Signed-off-by: Masakazu Mokuno Signed-off-by: John W. Linville commit 82a66bbbe96126ca1bc6bc5ded8e67f529bcdfa4 Author: Tomas Winkler Date: Thu May 29 16:35:28 2008 +0800 iwlwifi: clean iwl4965_mac_config This patch cleans up iwl4965_mac_config. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit d2f18bfd9bc6b51c8bb72b272ecca902a88387d4 Author: Emmanuel Grumbach Date: Thu May 29 16:35:27 2008 +0800 iwlwifi: send calibration results as HUGE commands This patch saves memory by reducing the size of the entry in the txq. It was 640 because of the calibration commands. Calibration commands are now sent as HUGE commands (using the extra 1024 bytes at the end of the command txq), hence, there is no need for 640 in every entry any more. Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 67249625089c21ec299b337a26448312b7eb91b3 Author: Emmanuel Grumbach Date: Thu May 29 16:35:26 2008 +0800 iwlwifi: remove debugfs entries before cfg80211 This patch solves a bug in debugfs unregistration. iwlwifi registers its debugfs files under cfg80211's dir, but removed its files only after having unregistered mac80211 that removes cfg80211 debugfs dir. This garbaged debugfs and didn't allow to rmmod and insmod iwlwifi several times in a row. Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 261415f77a947a452dbd32a35186b2dc3ce14020 Author: Emmanuel Grumbach Date: Thu May 29 16:35:25 2008 +0800 iwlwifi: fix a memory leak in scan This patch fixes a memory leak that the scan buffer isn't released on exit. Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 4d38c2e8ea7589f546244a1673b8171455283fcb Author: Emmanuel Grumbach Date: Thu May 29 16:35:24 2008 +0800 iwlwifi: disable FAT channel when not permitted This patch disables FAT channel when it is not permitted according to the EEPROM. Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 9306102ea5696a3815f8d24ac0c0fbd1e19be7d3 Author: Emmanuel Grumbach Date: Thu May 29 16:35:23 2008 +0800 mac80211: allow disable FAT in specific configurations This patch allows to disable FAT channel in specific configurations. For example the configuration (8, +1), (primary channel 8, extension channel 12) isn't permitted in U.S., but (8, -1), (primary channel 8, extension channel 4) is. When FAT channel configuration is not permitted, FAT channel should be reported as not supported in the capabilities of the HT IE in association request. And sssociation is performed on 20Mhz channel. Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 3c57601d0a1993cfc12a27cc6652b750bb44c523 Author: Ron Rindjunsky Date: Thu May 29 16:35:19 2008 +0800 iwlwifi: move iwl_get_hw_mode to iwl-core.h This patch moves iwl_get_hw_mode to iwl-core.h. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 37a44211cbe27795dbb79b2ea7036ff784f18d73 Author: Ron Rindjunsky Date: Thu May 29 16:35:18 2008 +0800 iwlwifi: Rx handlers common use for 4965 and 5000 This patch moves Rx handlers from iwl 4965 only use to common use along with iwl 5000, thus enables Rx path to iwl 5000. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 5e1dd8dc19dc2c1bacadda04a5c2478aa9516a1b Author: Tomas Winkler Date: Thu May 29 16:35:17 2008 +0800 iwlwifi: add frame count limit to link quality command This patch adds frame count limit to link quality host command. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 30e553e3ea3572bee3118fcde36e043c0cb2174c Author: Tomas Winkler Date: Thu May 29 16:35:16 2008 +0800 iwlwifi: move aggregation code to iwl-tx.c This patch moves aggregation action code to iwl-tx.c in iwlcore. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 5083e56326208f9a1d4e597529912004968c77d7 Author: Tomas Winkler Date: Thu May 29 16:35:15 2008 +0800 iwlwifi: move iwl_sta_modify_enable_tid_tx to iwl-sta.c This patch moves iwl_sta_modify_enable_tid_tx into iwl-sta.c. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit fe7a90c2b73f0c1da0882861cd015c835ed28781 Author: Ron Rindjunsky Date: Thu May 29 16:35:14 2008 +0800 iwlwifi: iwl-5000 add rxon_assoc This patch adds rxon assoc command for 5000 HW. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 972cf447d20df30dbd74edfc00ae179c4b822c68 Author: Tomas Winkler Date: Thu May 29 16:35:13 2008 +0800 iwlwifi: implement txq invalidate byte count table This is required to overcome a bug in 5000 HW byte count table. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 17b889290a184b52ee394c31dd5a52b8c1b3456d Author: Tomas Winkler Date: Thu May 29 16:35:12 2008 +0800 iwlwifi: move tx reclaim flow into iwl-tx This patch 1. moves TX reclaim flow into iwl-tx 2. separates command queue and tx queue reclaim flow Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit a5e8b5056ea8762e67c9fa980c8db48009ed2a67 Author: Guy Cohen Date: Thu May 29 16:35:11 2008 +0800 iwlwifi: fix in-column rate scaling This patch fixes cases that the code raised or didn't decrease the rate although the success ratio was not good. Signed-off-by: Guy Cohen Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit f20217d9d57584b6c7fcfef8c4183f10ee45fddd Author: Tomas Winkler Date: Thu May 29 16:35:10 2008 +0800 iwlwifi: move 4965 tx response into iwl-4965.c This patch moves 4965 tx repsone into iwl-4965.c. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit e532fa0e3ce3feda1f1eb14aa31caae503cd9bda Author: Ron Rindjunsky Date: Thu May 29 16:35:09 2008 +0800 iwlwlifi: impelemnt 5000 tx response path This patch implements 5000 HW tx response path. Signed-off-by: Ron Rindjunsky Signed-off-by: John W. Linville commit a332f8d618a7bdb0096c7b21555120a1822cedec Author: Tomas Winkler Date: Thu May 29 16:35:08 2008 +0800 iwlwifi: move tx response common handlers to iwlcore This pach moves common tx response handlers to the header files and iwl-tx.c. Signed-off-by: Tomas Winkler Signed-off-by: Ron Rindjunsky Signed-off-by: John W. Linville commit 001caff0da8784989ef208af0f39d55ea07dfef5 Author: Ron Rindjunsky Date: Thu May 29 16:35:07 2008 +0800 iwlwifi: add iwl5000_tx_response structure This patch adds iwl5000_tx_repsons structure. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit fe9b6b720bd11c598417529755ac850a85070560 Author: Ron Rindjunsky Date: Thu May 29 16:35:06 2008 +0800 iwlwifi: activate status ready timeout only for run time ucode This patch makes driver state timeout checks on ucode alive response only if run time ucode have been loaded. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 7c616cba240cd0d579c996be3f3603456acfb0ad Author: Tomas Winkler Date: Thu May 29 16:35:05 2008 +0800 iwlwifi-5000: implement initial calibration for 5000 This patch adds initial calibration framework for 5000 HW faimily. Signed-off-by: Tomas Winkler Signed-off-by: Gregory Greenman Signed-off-by: Ron Rindjunsky Signed-off-by: John W. Linville commit c135475439f75e6eb29e7586d33f3e22a61c1bb4 Author: Tomas Winkler Date: Thu May 29 16:35:04 2008 +0800 iwlwifi: move iwl_rx_missed_beacon_notif to iwl-rx.c This patch moves iwl_rx_missed_beacon_notif rx handler to iwl-rx.c. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 42132bce8011bf9507cfbb920ced2235d8dd5fce Author: Tomas Winkler Date: Thu May 29 16:35:03 2008 +0800 iwlwifi: move add sta handler to iwl-sta.c This patch moves add_sta hander to iwl-sta.c. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 7a999bf0c5eb19b20ac6ab0f21f6e5013400fa51 Author: Tomas Winkler Date: Thu May 29 16:35:02 2008 +0800 iwlwifi: add remove station functionality This patch adds remove station functionality, which is required for 5000 and AP mode. There are still some gaps in managment that need to be closed but it provides sufficient functionality for 5000 HW. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit b3bbacb78bc688707ac312158c5bbc6bbbb55b23 Author: Tomas Winkler Date: Thu May 29 16:35:01 2008 +0800 iwlwifi: move iwl_rxq_stop into iwl-rx.c This patch moves iwl_rxq_stop into iwl-rx.c. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit da1bc4539f9b10dc30ac1750fbaaf5afae4b3446 Author: Tomas Winkler Date: Thu May 29 16:35:00 2008 +0800 iwlwifi: move txq_ctx_stop into iwl-tx.c This patch moves txq_ctx_stop into iwl-tx.c iwlcore module. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 46315e012236af887cf442fd494a91b1d36858b9 Author: Tomas Winkler Date: Thu May 29 16:34:59 2008 +0800 iwlwifi: refactor stop master function This patch refactors stop master function for 4965 and 5000. Currently it duplicates the function. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit f118a91d16127e461cc8c17c529306910f13a8b1 Author: Tomas Winkler Date: Thu May 29 16:34:58 2008 +0800 iwlwifi: implement apm stop function This patch adds apm stop function for 4965 and 5000. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 7f066108d15d06ec3534434333f0274c868fe798 Author: Tomas Winkler Date: Thu May 29 16:34:57 2008 +0800 iwlwifi: implement apm reset flow This patch implements apm reset flow for 4965 and 5000. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 8f0618914e02c62c5cf2482f8acc7eb8e9afb816 Author: Tomas Winkler Date: Thu May 29 16:34:56 2008 +0800 iwlwifi: setup correctly L1 L0S pi link values This patch setups L1 L0S pci link values. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 885ba202cabd90b8ade1fe59185dc96ed4d69e02 Author: Tomas Winkler Date: Thu May 29 16:34:55 2008 +0800 iwlwifi: remove 4965 from alive_resp structures This patch removes 4965 from alive_resp and init_alivie_resp. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 4a4a9e81aed702421ef3e782f82d4e929fb81796 Author: Tomas Winkler Date: Thu May 29 16:34:54 2008 +0800 iwlwifi: clean up alive_start routine This patch cleans up alive_start routine. It removes 4965 from the common code and moves the run time calibration reset into a common code. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 84df9d3130118146c9aedf5146040f9f6495f471 Author: Tomas Winkler Date: Thu May 29 16:34:53 2008 +0800 iwlwifi: remove notif_missed_beacons variable This patch removes notif_missed_beacons from priv since it was never used. Missed beacons notification will have only meaning if roaming will be implemented in mac80211. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit c317fee3c1a01a0dbf505ed46236e93c55e279fa Author: Tomas Winkler Date: Thu May 29 16:34:52 2008 +0800 iwlwifi: remove unused variable form __iwl4965_down This patch removes unused variable from __iwl4965_down. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 2d87889f61e97194891f7e7ff3a0e5f11e4392db Author: Tomas Winkler Date: Thu May 29 16:34:51 2008 +0800 iwlwifi: mark 4965 ucode types This patch marks 4965 ucode types. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 95b1a8224abf6230899856753c5506a3f737a65b Author: Zhu Yi Date: Thu May 29 16:34:50 2008 +0800 iwlwifi: create drivers debugfs dir under wiphy->debugfsdir This patch creates driver's debugfs tree under wiphy->debugfsdir. This patch fixes collision in debugfs if two or more NICs are plugged. Signed-off-by: Zhu Yi Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit bd68fb6f010eb312ba20349311aceb89848ad5ff Author: Ron Rindjunsky Date: Thu May 29 16:34:49 2008 +0800 iwlwifi: increase max payload of iwl_cmd This patch increases iwl_cmd payload maximum size from 360 to 640 to fit some of iwl5000 commands as well. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit e1dfc0851ae0fb280a5eb827dd08853ed46cb241 Author: Gregory Greenman Date: Thu May 29 16:34:48 2008 +0800 iwlwifi: use uCode error and event tables pointer w.r.t loaded image This patch updates the usage of the pointers to error and log tables received in alive response w.r.t. the current uCode image. Signed-off-by: Gregory Greenman Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 87283cc1290f23458232cdf3b1893acb750a4ad3 Author: Ron Rindjunsky Date: Thu May 29 16:34:47 2008 +0800 iwlwifi: add RTC data address for iwl5000 This patch fills the valid_rtc_data_addr handler in iwl5000. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit ede0cba45f2caf47715d105f6acc1086f4112a7a Author: Ester Kummer Date: Thu May 29 16:34:46 2008 +0800 iwlwifi: move iwl_dump_nic_error_log to iwlcore module This patch moves the function iwl_dump_nic_error_log to iwlcore. Remove sysfs entry it cannot be really triggered. Signed-off-by: Ester Kummer Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit e623157b8d778a63736b0f41c04acc57c4f61ae0 Author: Emmanuel Grumbach Date: Tue May 27 20:00:11 2008 +0300 mac80211: sends HT IE to user level through wext This patch adds HT IE in the scan list that is returned to user level through wext. This is useful to let wpa_supplicant if a bss supports 11n or not: WEP and TKIP are not supported in 11n. Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 43d01c563d271260c1e4fe0a9383c47fae96887f Author: Holger Schurig Date: Mon May 26 12:50:23 2008 +0200 libertas: fix compact flash interrupt handling The old code misbehaved because it polled card status and always called the "tx over" code-path. This also fixes a hard lockup by not allowing and card interrupts while transferring a TX frame or a command into the card. Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit 85319f933a703a92652a8f23339f1ec1694cd594 Author: Javier Cardona Date: Sat May 24 10:59:49 2008 +0100 libertas: rate adaptation configuration via iwconfig. Implemented rate adaptation support via 'iwconfig rate' API. It is now possible to specify a bit-rate value and append 'auto'. That will configure rate adaptation to use all bit-rates equal or lower than than selected value. Made lbs_cmd_802_11_rate_adapt_rateset a direct command. Signed-off-by: Javier Cardona Signed-off-by: David Woodhouse Acked-by: Dan Williams Signed-off-by: John W. Linville commit 553381c430f0e65e87ed1b5cee841a04c8a47b58 Author: Johannes Berg Date: Sat May 24 20:07:55 2008 +0200 b43legacy: fix build errors when DMA or PIO are not selected Currently, b43legacy is broken due to commit fbad4598ca826b994d0fd4ce3deebc9cd1960b31 Author: Johannes Berg Date: Thu May 15 12:55:29 2008 +0200 mac80211: move TX info into skb->cb when compiled with only PIO or only DMA because I forgot to update two stubs. This patch fixes it. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit b83f4e15e65d94f6f56924b0b06a77a7ca2b4d8a Author: Tomas Winkler Date: Tue May 27 17:50:52 2008 +0300 mac80211: fix deadlock in sta->lock This patch fixes a deadlock of sta->lock use, occurring while changing tx aggregation states, as dev_queue_xmit end up in new function test_and_clear_sta_flags that uses that lock thus leading to deadlock Signed-off-by: Tomas Winkler Signed-off-by: Ron Rindjunsky Signed-off-by: John W. Linville commit 747cf5e924a469a15a454b88a813236460b30975 Author: Tomas Winkler Date: Tue May 27 17:50:51 2008 +0300 mac80211: fix ieee80211_get_buffered_bc fix bss not initialized in ieee80211_get_buffered_bc and unbalanced locking Signed-off-by: Tomas Winkler Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 20ad4fd56255b455beb677dc097eb108d15f1d63 Author: Scott Ashcroft Date: Tue May 27 11:15:02 2008 +0300 rndis_wlan: use ARRAY_SIZE instead of sizeof when adding 11g rates While figuring out the TKIP problem I found a bug in the code which adds the 11g rates. It's using sizeof instead of ARRAY_SIZE to terminate the for loop. This makes it fall off the end of the rates array start into the frequency array instead. Running "iwlist rate" should show the problem as there will always be 32 rates with the last few being bogus. The following patch will fix it. Signed-off-by: Scott Ashcroft Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit a888d52d1eda77f08e09d38ac829353200240716 Author: Johannes Berg Date: Mon May 26 16:43:39 2008 +0200 ath5k: use IEEE80211_SKB_CB ath5k still uses the "(void*) skb->cb" direct cast, use IEEE80211_SKB_CB instead. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit ef707b8387c13b6aa3353b5519aa465cbe06034f Author: Holger Schurig Date: Fri May 23 16:04:13 2008 +0200 libertas: before sleeping, check for a command result If we don't check for a command response early, but rather sleep, then we might sleep despite an already-received command response. This will lead to a command-timeout. Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit df349f9fe7500fcb98f560c74b5e99477ca1df1c Author: Holger Schurig Date: Fri May 23 12:16:51 2008 +0200 libertas: use lbs_pr_XX instead of printk ... because lbs_pr_XXX prefixes all messages with "libertas: " Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit 93416c871f8588446e80780f7d62fabc131c276b Author: Holger Schurig Date: Fri May 23 10:18:26 2008 +0200 libertas: speeds up downloading of CF firmware Keep the timeout the same (1000*500 == 100000 * 5), but take shorter naps. Makes downloading the firmware slightly faster. Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit b43441a49d1c64769ff90f34e9543b2ba840b517 Author: Holger Schurig Date: Fri May 23 10:07:56 2008 +0200 libertas: don't spin_unlock_irq() twice priv->driver_lock has already been unlocked some lines above. This patch fixes the sparse warning: drivers/net/wireless/libertas/main.c:792:6: warning: context problem in 'lbs_thread': '_spin_unlock_irq' expected different context drivers/net/wireless/libertas/main.c:792:6: context 'lock': wanted >= 1, got 0 Signed-of-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit 23c0752a25d73ccc4547700e8a57d5ae2f2edf56 Author: Johannes Berg Date: Thu May 29 10:38:53 2008 +0200 mac80211: clean up skb reallocation code This cleans up the skb reallocation code to avoid problems with skb->truesize, not resize an skb twice for a single output path because we didn't expand it enough during the first copy and also removes the code to further expand it during crypto operations which will no longer be necessary. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit f622360bce6facb05fdce4bce5ee4beb2432222d Author: Daniel Walker Date: Thu May 22 00:00:03 2008 -0700 ps3: gelic: updown_lock semaphore to mutex Signed-off-by: Daniel Walker Acked-by: Masakazu Mokuno Signed-off-by: John W. Linville commit bb2d67a34fe80c14d0a379695ab81362b3da1d53 Author: Daniel Walker Date: Thu May 22 00:00:02 2008 -0700 ps3: gelic: assoc_stat_lock semaphore to mutex Signed-off-by: Daniel Walker Acked-by: Masakazu Mokuno Signed-off-by: John W. Linville commit 706ddd600ca637720f87cef630179934add32b13 Author: Daniel Walker Date: Thu May 22 00:00:01 2008 -0700 ps3: gelic: scan_lock semaphore to mutex Signed-off-by: Daniel Walker Acked-by: Masakazu Mokuno Signed-off-by: John W. Linville commit b77ec4caefb280092a45d6798cbc2fd966ad01d8 Author: David Woodhouse Date: Tue May 20 16:48:52 2008 +0100 libertas: provide reset_card() callback on OLPC Signed-off-by: David Woodhouse Signed-off-by: John W. Linville commit 04dea136b06ddd58879c9272b9f66ff060962317 Author: Johannes Berg Date: Tue May 20 12:10:49 2008 +0200 b43: enable mesh This patch enables b43 to do mesh networking, tested against my zd1211rw dongle. Signed-off-by: Johannes Berg Reviewed-by: Michael Buesch Signed-off-by: John W. Linville commit fd5bcf4b1190c4fbcdd959332ed073e436340d9b Author: Adrian Hunter Date: Tue Jun 3 12:34:16 2008 +0300 UBIFS: fix orphan leak on error path Signed-off-by: Adrian Hunter commit d72116055b66163bfe760d32cf0bc168abc89178 Author: Adrian Hunter Date: Tue Jun 3 11:29:48 2008 +0300 UBIFS: fix lpt leaks on error path Signed-off-by: Adrian Hunter commit 93c43f5f3f0ff50faa4f9b853927b2c8139fca5a Author: Adrian Hunter Date: Tue Jun 3 10:41:06 2008 +0300 UBIFS: add a UUID to super block Signed-off-by: Adrian Hunter commit 287041bb1dd77d77051af4cf5c334de2267dd2ae Author: Artem Bityutskiy Date: Tue Jun 3 16:03:09 2008 +0300 UBIFS: fix extended attributes size Signed-off-by: Artem Bityutskiy commit d591cb685cc01799fef8ada9527fc5c2f5447fb0 Author: Artem Bityutskiy Date: Tue Jun 3 15:18:07 2008 +0300 UBIFS: add file-system checking function Signed-off-by: Artem Bityutskiy commit 56b38c4fd4ff2e58afbca78bf9cc825fe92ab93b Author: Artem Bityutskiy Date: Tue Jun 3 13:52:47 2008 +0300 UBIFS: clean up resource freeing Signed-off-by: Artem Bityutskiy commit df9a5ef83e39698591bf29658e882d1eedb75484 Author: Artem Bityutskiy Date: Mon Jun 2 16:09:49 2008 +0300 UBIFS: remove debugging stuff from tnc.c Signed-off-by: Artem Bityutskiy commit 125d7ad6d60f12557038a3225e8d0c7516e6ab6a Author: Artem Bityutskiy Date: Mon Jun 2 15:29:43 2008 +0300 UBIFS: better error message in read_znode Signed-off-by: Artem Bityutskiy commit b82d8563ee30d978aa405e3c319c1b1f7b37dfeb Author: Adrian Hunter Date: Mon Jun 2 11:07:49 2008 +0300 UBIFS: another gc_lnum recovery fix Signed-off-by: Adrian Hunter commit c8300a4d4389d0b6cfbb20bed461f7aad1f0b1a6 Author: Artem Bityutskiy Date: Mon Jun 2 13:24:08 2008 +0300 UBIFS: make dbg_tnc_walk non-recursive We want to improve it so the recursion may hurt. This patch also moves 'load_inode()' to tnc_misc.c. Signed-off-by: Artem Bityutskiy commit 835fc943f34139ed062f1ac194b52ed3b7123d88 Author: Ingo Molnar Date: Tue Jun 3 14:42:06 2008 +0200 x86: mp build fix fix: drivers/built-in.o: In function `acpi_pci_irq_enable': : undefined reference to `mp_config_acpi_gsi' Signed-off-by: Ingo Molnar commit c8c034ce79418d2143c00c4cf751cfa51701f788 Author: Yinghai Lu Date: Sun Jun 1 23:55:37 2008 -0700 x86: clean up max_pfn_mapped usage - 64-bit on 64-bit we only get valid max_pfn_mapped after init_memory_mapping(). Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 6af61a7614a306fe882a0c2b4ddc63b65aa66efc Author: Yinghai Lu Date: Sun Jun 1 23:53:50 2008 -0700 x86: clean up max_pfn_mapped usage - 32-bit on 32-bit in head_32.S after initial page table is done, we get initial max_pfn_mapped, and then kernel_physical_mapping_init will give us a final one. We need to use that to make sure find_e820_area will get valid addresses for boot_map and for NODE_DATA(0) on numa32. XEN PV and lguest may need to assign max_pfn_mapped too. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 287572cb38de7f270b59191a0fecfa5c5de7765d Author: Yinghai Lu Date: Sun Jun 1 21:06:31 2008 -0700 x86, numa, 32-bit: avoid clash between ramdisk and kva use find_e820_area to get address space... Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 2944e16b25e7fb8b5ee0dd9dc7197a0f9e523cfd Author: Yinghai Lu Date: Sun Jun 1 13:17:38 2008 -0700 x86: update mptable make mptable to be consistent with acpi routing, so we could: 1. kexec kernel with acpi=off 2. work around BIOSes where acpi routing is working, but mptable is not right, so can use kernel/kexec to start other OSes that don't have good acpi support. command line: update_mptable Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit e8c27ac9191ab9e6506ae5cbe70d87ac50f8e960 Author: Yinghai Lu Date: Sun Jun 1 13:15:22 2008 -0700 x86, numa, 32-bit: print out debug info on all kvas also fix the print out of node_remap_end_vaddr Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 0596152388e234efebce464355186ad9e16c8cb6 Author: Yinghai Lu Date: Sat May 31 22:52:47 2008 -0700 x86, 32-bit: change propagate_e820_map() back to find_max_pfn() we don't need to call memory_present that early. numa and sparse will call memory_present later and might even fail, it will call memory_present for the full range. also for sparse it will call alloc_bootmem ... before we set up bootmem. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit b66cd7207387b9b428aaf1988e21dd263c6a4928 Author: Yinghai Lu Date: Sat May 31 22:53:47 2008 -0700 x86: set node_remap_size[0] in fallback path ... otherwise alloc_remap will not get node_mem_map from kva area, and alloc_node_mem_map has to alloc_bootmem_node to get mem_map. It will use two low address copies ... Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit ba924c81dd5a7a7fb5ded025af7fdd3b61f8ca67 Author: Yinghai Lu Date: Sat May 31 22:51:51 2008 -0700 x86, numa, 32-bit: increase max_elements to 1024 so every element will represent 64M instead of 256M. AMD opteron could have HW memory hole remapping, so could have [0, 8g + 64M) on node0. Reduce element size to 64M to keep that on node 0 Later we need to use find_e820_area() to allocate memory_node_map like on 64-bit. But need to move memory_present out of populate_mem_map... Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit edb7e2a151c45f3264d070100ab72e3cfc1c8da0 Author: Paul Mundt Date: Tue Jun 3 20:05:39 2008 +0900 sh: Initial consolidation of the _32/_64 uaccess split. This consolidates everything but the bare assembly routines, which we will sync up in a follow-up patch. Signed-off-by: Paul Mundt commit 310fb27891a788952965c93ba3a0086d3e4e770c Author: Paul Mundt Date: Tue Jun 3 19:38:22 2008 +0900 sh: Consolidate addr/access_ok across mmu/nommu on 32bit. Signed-off-by: Paul Mundt commit 51be37c8d928b5e442e0220084d591edb8ed81d5 Author: Paul Mundt Date: Tue Jun 3 19:37:35 2008 +0900 sh: Use the common segment definitions for the _64 uaccess routines. Signed-off-by: Paul Mundt commit 903e1375334dd59c70f15c1e2a8dac0d95a61d5f Author: Paul Mundt Date: Tue Jun 3 18:54:02 2008 +0900 sh: Add support for 16kB PAGE_SIZE. 16kB is a useful size on nommu, while 64kB still tends to be too big to be useful. Newer MMUs are likely to support this as well, so plug it in in anticipation of those, too. Signed-off-by: Paul Mundt commit c03a3a1b24df6e521eb84d61a1c2a634473967f6 Author: Paul Mundt Date: Tue Jun 3 18:52:11 2008 +0900 sh: Support variable page sizes on nommu. PAGE_SIZE doesn't need to be fixed at 4096 on nommu, so stub in a !MMU case for the various PAGE_SIZE Kconfig options. Signed-off-by: Paul Mundt commit 483c77a213a20ea9bb75502d3edf4cf06b23b0be Author: Paul Mundt Date: Tue Jun 3 18:48:54 2008 +0900 sh: Consolidate segment modifiers across mmu/nommu systems. This moves get_fs/set_fs() and friends in to asm/segment.h. The mm_segment_t definition is likewise consolidated from the _32/_64 split. This is prepatory groundwork for using the generic address space limit and verification routines across mmu/nommu configs. Signed-off-by: Paul Mundt commit 98a348646705f2ae3b4f70af5a98b4802ecb4d66 Author: Paul Mundt Date: Mon May 19 16:47:56 2008 +0900 sh: RSK+ 7203 board support. This adds initial support for the RTE RSK+ SH7203 board. Signed-off-by: Paul Mundt commit f6449a02125668310c5afc6746eb1d385e41d8c1 Author: Paul Mundt Date: Mon May 19 14:00:44 2008 +0900 sh: Make dump_task dependent on ELF core. Currently this is only linked in for CONFIG_BINFMT_ELF, make it dependent on CONFIG_ELF_CORE, so it's both selectable there and also linked in for CONFIG_BINFMT_ELF_FDPIC. Signed-off-by: Paul Mundt commit 5119c4f62b02b014a77a66ce692745b4788d4cf6 Author: Paul Mundt Date: Mon May 19 13:40:12 2008 +0900 sh: Initial ELF FDPIC support. This adds initial support for ELF FDPIC on MMU-less SH, as per version 0.2 of the ABI definition at: http://www.codesourcery.com/public/docs/sh-fdpic/sh-fdpic-abi.txt Signed-off-by: Paul Mundt commit 23ab8215c7a1edddda31a89823e9095e3c62f297 Author: Paul Mundt Date: Mon May 19 13:34:45 2008 +0900 binfmt_elf_fdpic: Magical stack pointer index, for NEW_AUX_ENT compat. While implementing binfmt_elf_fdpic on SH it quickly became apparent that SH was the first platform to support both binfmt_elf_fdpic and binfmt_elf, as well as the only of the FDPIC platforms to make use of the auxvt. Currently binfmt_elf_fdpic uses a special version of NEW_AUX_ENT() where the first argument is the entry displacement after csp has been adjusted, being reset after each adjustment. As we have no ability to sort this out through the platform's ARCH_DLINFO, this index needs to be managed entirely in create_elf_fdpic_tables(). Presently none of the platforms that set their own auxvt entries are able to do so through their respective ARCH_DLINFOs when using binfmt_elf_fdpic. In addition to this, binfmt_elf_fdpic has been looking at DLINFO_ARCH_ITEMS for the number of architecture-specific entries in the auxvt. This is legacy cruft, and is not defined by any platforms in-tree, even those that make heavy use of the auxvt. AT_VECTOR_SIZE_ARCH is always available, and contains the number that is of interest here, so we switch to using that unconditionally as well. As this has direct bearing on how much stack is used, platforms that have configurable (or dynamically adjustable) NEW_AUX_ENT calls need to either make AT_VECTOR_SIZE_ARCH more fine-grained, or leave it as a worst-case and live with some lost stack space if those entries aren't pushed (some platforms may also need to purposely sacrifice some space here for alignment considerations, as noted in the code -- although not an issue for any FDPIC-capable platform today). Signed-off-by: Paul Mundt Acked-by: David Howells commit 471b3c1b011f807d16f1e19d1d4ecf703f1e7d1a Author: Ingo Molnar Date: Tue Jun 3 12:39:43 2008 +0200 x86, numaq 32-bit: build fix fix: drivers/built-in.o: In function `acpi_numa_init': : undefined reference to `acpi_numa_arch_fixup' which can happen with ACPI && NUMAQ. commit ed87a2165f0bfdd8f7c8bec05fa7bfcc89449ef6 Author: Neil Horman Date: Tue Jun 3 20:00:16 2008 +1000 [CRYPTO] tcrypt: Add self test for des3_ebe cipher operating in cbc mode Patch to add checking of DES3 test vectors using CBC mode. FIPS-140-2 compliance mandates that any supported mode of operation must include a self test. This satisfies that requirement for cbc(des3_ede). The included test vector was generated by me using openssl. Key/IV was generated with the following command: openssl enc -des_ede_cbc -P input and output values were generated by repeating the string "Too many secrets" a few times over, truncating it to 128 bytes, and encrypting it with openssl using the aformentioned key. Tested successfully by myself Signed-off-by: Neil Horman Acked-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit cf3d0cb8a10a4fd19439bb34995d9ad28854739a Author: Ingo Molnar Date: Tue Jun 3 11:36:56 2008 +0200 x86: 32-bit numa, build fix on Summit it's possible to have: CONFIG_ACPI_SRAT=y CONFIG_HAVE_ARCH_PARSE_SRAT=y in which case acpi.h defines the acpi_numa_slit_init() and acpi_numa_processor_affinity_init() methods as a macro. commit f3294690979634ee10398bb0beadfe1d4edb881d Author: Ingo Molnar Date: Tue Jun 3 10:16:10 2008 +0200 x86, numaq: add pci_acpi_scan_root() stub allow 32-bit numaq build to succeed with ACPI enabled. commit b28852d6703e4b72ce363c5168ea8d3fb28b9c57 Author: Ingo Molnar Date: Tue Jun 3 10:11:07 2008 +0200 x86: add dummy acpi_numa_processor_affinity_init() implementation on 32-bit allow CONFIG_ACPI_NUMA builds to succeed. commit 2772f54bf37b033263abe4a2314c40a308a1a5cd Author: Ingo Molnar Date: Tue Jun 3 10:09:45 2008 +0200 x86: add acpi_numa_slit_init() dummy implementation on 32-bit allow CONFIG_ACPI_NUMA builds to succeed on 32-bit. commit 4c1cbafb88490757a38119c41229251369bcecbc Author: Ingo Molnar Date: Tue Jun 3 09:28:52 2008 +0200 x86 mpparse: build fix fix this build bug: drivers/acpi/pci_irq.c: In function 'acpi_pci_irq_enable': drivers/acpi/pci_irq.c:574: error: implicit declaration of function 'mp_config_acpi_gsi' Signed-off-by: Ingo Molnar commit e026892c85571e12f11abffde5a90bcc704d663e Author: Timur Tabi Date: Mon Jun 2 15:09:35 2008 -0500 [POWERPC] fsl: Update fsl_soc to use cell-index property of I2C nodes Currently, fsl_i2c_of_init() uses the order of the I2C adapter nodes in the device tree to enumerate the I2C adapters. Instead, let's check for the cell-index property and use it if it exists. This is handy for device drivers that need to identify the I2C adapters by specific numbers. The Freescale MPC8610 ASoC V2 sound drivers are an example. Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit 7ee71cee7b3c70294ba07d3bfd9efc2f292e1499 Author: Eli Cohen Date: Mon Jun 2 20:14:25 2008 -0700 IPoIB: Copy small received SKBs in connected mode The connected mode implementation in the IPoIB driver has a large overhead in the way SKBs are handled in the receive flow. It usually allocates an SKB with as big as was used in the currently received SKB and moves unused fragments from the old SKB to the new one. This involves a loop on all the remaining fragments and incurs overhead on the CPU. This patch, for small SKBs, allocates an SKB just large enough to contain the received data and copies to it the data from the received SKB. The newly allocated SKB is passed to the stack and the old SKB is reposted. When running netperf, UDP small messages, without this pach I get: UDP UNIDIRECTIONAL SEND TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 14.4.3.178 (14.4.3.178) port 0 AF_INET Socket Message Elapsed Messages Size Size Time Okay Errors Throughput bytes bytes secs # # 10^6bits/sec 114688 128 10.00 5142034 0 526.31 114688 10.00 1130489 115.71 With this patch I get both send and receive at ~315 mbps. The reason that send performance actually slows down is as follows: When using this patch, the overhead of the CPU for handling RX packets is dramatically reduced. As a result, we do not experience RNR NAK messages from the receiver which cause the connection to be closed and reopened again; when the patch is not used, the receiver cannot handle the packets fast enough so there is less time to post new buffers and hence the mentioned RNR NACKs. So what happens is that the application *thinks* it posted a certain number of packets for transmission but these packets are flushed and do not really get transmitted. Since the connection gets opened and closed many times, each time netperf gets the CPU time that otherwise would have been given to IPoIB to actually transmit the packets. This can be verified when looking at the port counters -- the output of ifconfig and the oputput of netperf (this is for the case without the patch): tx packets ========== port counter: 1,543,996 ifconfig: 1,581,426 netperf: 5,142,034 rx packets ========== netperf 1,1304,089 Signed-off-by: Eli Cohen commit d9a3e6619f3d71ec067e29d6518a22f472a96183 Author: Roland Dreier Date: Mon Jun 2 20:14:25 2008 -0700 RDMA: Remove subversion $Id tags They don't get updated by git and so they're worse than useless. Signed-off-by: Roland Dreier commit 29f352012256f2ca5343afbfb39bf040a6220376 Author: Dotan Barak Date: Mon Jun 2 20:14:25 2008 -0700 RDMA: Improve include file coding style Remove subversion $Id lines and improve readability by fixing other coding style problems pointed out by checkpatch.pl. Signed-off-by: Dotan Barak Signed-off-by: Roland Dreier commit 267ebf4a2c47e9240413eecc5c53ebe72ee42f7e Author: Robert P. J. Day Date: Mon Jun 2 20:14:24 2008 -0700 IB/ipath: Simplify code using ARRAY_SIZE() macro Signed-off-by: Robert P. J. Day Signed-off-by: Roland Dreier commit da9c0202999877b854a31d3baa6cbed381d49eca Author: Eli Cohen Date: Mon Jun 2 20:14:22 2008 -0700 IB/mlx4: Optimize QP stamping The idea is that for QPs with fixed size work requests (eg selective signaling QPs), before stamping the WQE, we read the value of the DS field, which gives the effective size of the descriptor as used in the previous post. Then we stamp only that area, since the rest of the descriptor is already stamped. When initializing the send queue buffer, make sure the DS field is initialized to the max descriptor size so that the subsequent stamping will be done on the entire descriptor area. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 3eec4911347c4e10b186415d70385353d2f6ccbc Author: Barry Naujok Date: Tue Jun 3 11:59:18 2008 +1000 [XFS] Zero uninitialised xfs_da_args structure in xfs_dir2.c Fixes a problem in the xfs_dir2_remove and xfs_dir2_replace paths which intenally call directory format specific lookup funtions that assume args->cmpresult is zeroed. SGI-PV: 982606 SGI-Modid: xfs-linux-melb:xfs-kern:31268a Signed-off-by: Barry Naujok Signed-off-by: Christoph Hellwig commit 80d7681a66c1d800fd6a8e03346219f5e8de185d Author: J. Bruce Fields Date: Mon Jun 2 16:01:51 2008 -0400 nfs: rewrap NFS/RDMA documentation to 80 lines Wrap long lines. Signed-off-by: J. Bruce Fields commit 386db5b95d92c2a8276ff0ec13c202be98d2a5b3 Author: James Lentini Date: Mon Jun 2 15:33:59 2008 -0400 update NFS/RDMA documentation Update the NFS/RDMA documentation to clarify how to run mount.nfs. Signed-off-by: James Lentini Signed-off-by: J. Bruce Fields commit fca622c5b21a259950a2964ceca7b6c2a23c849f Author: Kumar Gala Date: Wed Apr 30 05:23:21 2008 -0500 [POWERPC] 40x/Book-E: Save/restore volatile exception registers On machines with more than one exception level any system register that might be modified by the "normal" exception level needs to be saved and restored on taking a higher level exception. We already are saving and restoring ESR and DEAR. For critical level add SRR0/1. For debug level add CSRR0/1 and SRR0/1. For machine check level add DSRR0/1, CSRR0/1, and SRR0/1. On FSL Book-E parts we always save/restore the MAS registers for critical, debug, and machine check level exceptions. On 44x we always save/restore the MMUCR. Additionally, we save and restore the ksp_limit since we have to adjust it for each exception level. Signed-off-by: Kumar Gala Acked-by: Paul Mackerras commit 369e757b65d4a5e49bae7cfaf671e784f891cfbe Author: Kumar Gala Date: Wed Apr 30 04:17:22 2008 -0500 [POWERPC] Rework EXC_LEVEL_EXCEPTION_PROLOG code * Cleanup the code a bit my allocating an INT_FRAME on our exception stack there by make references go from GPR11-INT_FRAME_SIZE(r8) to just GPR11(r8) * simplify {lvl}_transfer_to_handler code by moving the copying of the temp registers we use if we come from user space into the PROLOG * If the exception came from kernel mode copy thread_info flags, preempt, and task pointer from the process thread_info. Signed-off-by: Kumar Gala Acked-by: Paul Mackerras commit bcf0b0880710409420a4e3b15dbf4b9a63542c0b Author: Kumar Gala Date: Wed Apr 30 03:49:55 2008 -0500 [POWERPC] Move to runtime allocated exception stacks For the additonal exception levels (critical, debug, machine check) on 40x/book-e we were using "static" allocations of the stack in the associated head.S. Move to a runtime allocation to make the code a bit easier to read as we mimic how we handle IRQ stacks. Its also a bit easier to setup the stack with a "dummy" thread_info in C code. Signed-off-by: Kumar Gala Acked-by: Paul Mackerras commit c054065bc10a7ee2bcf78b5bc95f4b4d9bdc923a Author: Kumar Gala Date: Fri May 30 13:43:43 2008 -0500 [POWERPC] 85xx: Add next-level-cache property Added next-level-cache to the L1 and a reference to the new L2 label. This is per the ePAPR 0.94 spec. Since we are't really dependent on this today we aren't supporting the "legacy" l2-cache phandle that is specified in the PPC v2.1 OF Binding spec. Signed-off-by: Kumar Gala commit acd4b715ec83e451990bb82bdbf28ecaeab1b67d Author: Kumar Gala Date: Fri May 30 12:12:26 2008 -0500 [POWERPC] Cleanup mpic nodes in .dts Removed clock-frequency, big-endian, and built-in props as they aren't specified anywhere. Also added compatible = "chrp,open-pic" in the places it was missing. Signed-off-by: Kumar Gala commit 59d13f9dba56c444e5356b42d3d57b46e44ef975 Author: Bryan O'Donoghue Date: Thu May 8 13:47:00 2008 +0100 [POWERPC] 83xx: Add support for Analogue & Micro ASP837E board The following adds support for the Analogue & Micro ASP 8347E, running Redboot. http://www.analogue-micro.com/ASP8347.html Signed-off-by: Bryan O'Donoghue Signed-off-by: Kumar Gala commit 64f9b5ee17ee7974d7cc58d75221432d86960ba3 Author: Timur Tabi Date: Thu May 15 17:46:10 2008 -0500 [POWERPC] fsl: Add CS4270 i2c data to fsl_soc.c The i2c_devices[] array in fsl_soc.c lists all the I2C nodes that are supported on Freescale boards. Add an entry for the Cirrus Logic CS4270 so that a new-style CS4270 driver will work. Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit 22fb7d9be593181e2f779cf7a8421703a6be713b Author: Timur Tabi Date: Thu May 15 17:04:57 2008 -0500 [POWERPC] fsl: Add warning for unrecognized I2C nodes in the device tree Update of_find_i2c_driver in fsl_soc.c to display a warning message if an I2C node in the device tree isn't found in the i2c_devices[] array. Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit 692d1037e6914a8a32a7a9fba416684c75c7efca Author: Anton Vorontsov Date: Fri May 23 17:41:02 2008 +0400 [POWERPC] fsl_msi: few (mostly cosmetic) fixes This patch fixes few cosmetic issues, also removes unused function, makes some functions static and reduces #ifdef count. Signed-off-by: Anton Vorontsov Signed-off-by: Kumar Gala commit 741edc494978bc2770e891b8cfadbca3246a3d1a Author: Jason Jin Date: Fri May 23 16:32:48 2008 +0800 [POWERPC] 85xx: Enable MSI support for 85xxds board This patch enabled MSI on 8544ds and 8572ds board. So far only one MSI interrupt can generate on 8544 board. Signed-off-by: Jason Jin Signed-off-by: Kumar Gala commit 0023352f56f90d01de67f995e248fe4c5308a497 Author: Jason Jin Date: Fri May 23 16:32:47 2008 +0800 [POWERPC] 86xx: Enable MSI support for MPC8610HPCD board This patch enable the MSI on 8610hpcd board. Through the msi-available-ranges property, All the 256 msi interrupts can be tested on this board. Signed-off-by: Jason Jin Signed-off-by: Kumar Gala commit 34e36c1541fe70e5b3842a3278c0e7631d31f4cb Author: Jason Jin Date: Fri May 23 16:32:46 2008 +0800 [POWERPC] fsl: PCIe MSI support for 83xx/85xx/86xx processors. This MSI driver can be used on 83xx/85xx/86xx board. In this driver, virtual interrupt host and chip were setup. There are 256 MSI interrupts in this host, Every 32 MSI interrupts cascaded to one IPIC/MPIC interrupt. The chip was treated as edge sensitive and some necessary functions were setup for this chip. Before using the MSI interrupt, PCI/PCIE device need to ask for a MSI interrupt in the 256 MSI interrupts. A 256bit bitmap show which MSI interrupt was used, reserve bit in the bitmap can be used to force the device use some designate MSI interrupt in the 256 MSI interrupts. Sometimes this is useful for testing the all the MSI interrupts. The msi-available-ranges property in the dts file was used for this purpose. Signed-off-by: Jason Jin Signed-off-by: Kumar Gala commit aee1dc73b519227084d77b0b2fc972b68b4153d8 Author: Jason Jin Date: Fri May 23 16:32:45 2008 +0800 [POWERPC] Update booting-without-of for Freescale PCIe MSI Binding document adding for Freescale PCIe MSI support. Signed-off-by: Jason Jin Signed-off-by: Kumar Gala commit dbfb400baeaa36cf74ebf1e3289e6898d5f1fcf7 Author: Russell King Date: Mon Jun 2 16:10:20 2008 +0100 [ARM] pxa: remove pxa_set_cken() pxa_set_cken() is now unused, remove it. Signed-off-by: Russell King commit 69eaf23a9797e1bdf16e210ef4da3e756a41f4de Author: Dmitry Baryshkov Date: Sat May 31 16:14:48 2008 +0100 [ARM] 5071/2: Drop PXA_SHARPSL_25x/27x case from PXA Kconfig. As nothing in the code references to the PXA_SHARPSL_25x/27x, we can drop that Kconfig case and permit all-zaurus builds. Signed-off-by: Dmitry Baryshkov Acked-by: Richard Purdie Signed-off-by: Russell King commit 5806d8abf6b152f23d057c2e6b9199892883a8df Author: Dmitry Baryshkov Date: Sat May 31 16:17:32 2008 +0100 [ARM] 5073/1: spitz_pm: don't register devices on non-spitz machines Signed-off-by: Dmitry Baryshkov Acked-by: Richard Purdie Signed-off-by: Russell King commit 043fbc099af0fc0ec94112c7235b7544147149f4 Author: Dmitry Baryshkov Date: Sat May 31 16:16:54 2008 +0100 [ARM] 5072/1: corgi_pm: don't register devices on non-corgi machines Signed-off-by: Dmitry Baryshkov Acked-by: Richard Purdie Signed-off-by: Russell King commit 7c5926d4e8d0f3d36688df4652b8f9f9ef0d7945 Author: Mike Rapoport Date: Mon May 12 11:36:28 2008 +0100 [ARM] 5036/2: Combine cm_x270_defconfig and em_x270_defconfig into xm_x270_defconfig Combine cm_x270_defconfig and em_x270_defconfig to allow running the same kernel on both machines Signed-off-by: Mike Rapoport Signed-off-by: Russell King commit 63b43f5d3264f4d70b5d29885997253d33259744 Author: Russell King Date: Sun Apr 20 17:36:20 2008 +0100 [ARM] pxa: allow PXA to be built for multiple platforms Convert the 'choice' into a 'menu' to allow multiple platforms to be selected. This means to do a build check across PXA, you don't end up spending a lifetime building _twenty_ sodding kernels. Signed-off-by: Russell King commit 5855a1e3c0714242b8a1875383b63ccf9bafaab7 Author: Mike Rapoport Date: Mon May 12 06:41:13 2008 +0100 [ARM] 5035/1: Ensure that zone adjustment is done only on CM-X270 Adjust zones for PCI DMA only if machine_is_armcore() to allow running the same kernel on different PXA machines. Signed-off-by: Mike Rapoport Signed-off-by: Russell King commit 0b0a9df6038752674e54e333cd247c877d29aab8 Author: Russell King Date: Sun May 18 14:59:36 2008 +0100 [ARM] pxa: separate out power manager and clock registers The power manager and core clock registers aren't present in PXA3 CPUs. Move them out of pxa-regs.h into pxa2xx-regs.h, and include pxa2xx-regs.h where necessary. Signed-off-by: Russell King commit bc3a595988468b8a9c2526b9fb8d7bcaa27cc1a7 Author: Philipp Zabel Date: Mon Jun 2 18:49:27 2008 +0100 [ARM] 5075/1: i2c-pxa: move i2c pin setup and PCFR_PI2CEN handling into arch/arm/mach-pxa This fixes a build error introduced when the power manager register definitions were moved into pxa2xx-regs.h. Signed-off-by: Philipp Zabel Signed-off-by: Russell King commit 7de6dd7a9e600928c231e6001bb6350b19123398 Author: Benny Halevy Date: Thu May 29 12:56:08 2008 +0300 nfsd: make nfs4xdr WRITEMEM safe against zero count WRITEMEM zeroes the last word in the destination buffer for padding purposes, but this must not be done if no bytes are to be copied, as it would result in zeroing of the word right before the array. The current implementation works since it's always called with non zero nbytes or it follows an encoding of the string (or opaque) length which, if equal to zero, can be overwritten with zero. Nevertheless, it seems safer to check for this case. Signed-off-by: Benny Halevy Signed-off-by: J. Bruce Fields commit f65a58c9793cbcfdc68c8f1f192da45e2b808e80 Author: Kenji Kaneshige Date: Mon Jun 2 09:22:34 2008 -0700 pciehp: removes redundant NULL write to slot status register Cleanup to remove a redundant NULL write to SLOTSTATUS. Signed-off-by: Kenji Kaneshige Signed-off-by: Kristen Carlson Accardi Signed-off-by: Jesse Barnes commit 2b6db221e8bc5499ba1ba2cac0bb14b1fdaf68c3 Author: Kenji Kaneshige Date: Mon Jun 2 09:07:46 2008 -0700 pciehp: fixes typo in dbg_ctrl() in pciehp_hpc.c Fixup a typo in dbg_ctrl(); it was fetching SLOTSTATUS twice. Signed-off-by: Kenji Kaneshige Signed-off-by: Kristen Carlson Accardi Signed-off-by: Jesse Barnes commit 39ab9ddeb3e9573a1ea9a17a1431ea5c81681964 Author: Eric Miao Date: Mon Jun 2 11:20:55 2008 -0400 Input: pxa27x_keypad - add wakeup support Signed-off-by: Eric Miao Acked-by: Russell King Signed-off-by: Dmitry Torokhov commit ba45ca435060614e595a107ac323a36b52619d7d Author: Nicolas Ferre Date: Tue Apr 8 13:59:18 2008 +0100 [ARM] 4940/1: AT91: UDPHS driver: SAM9RL board and cpu integration. Adds support for the USB High Speed Device Port on the AT91SAM9RL system on chip. The AT91SAM9RL uses the same UDPHS IP as the AVR32 and the AT91CAP9 (atmel_usba_udc driver). Signed-off-by: Nicolas Ferre Acked-by: Andrew Victor Signed-off-by: Russell King commit 6b71dbf65e63c13202fb18773a5fd2d4415b6b2e Author: Stelian Pop Date: Sat Apr 5 21:16:15 2008 +0100 [ARM] 4935/1: AT91CAP9: enable RTC-on-RTT in defconfig. Update the help text for RTC_DRV_AT91SAM9 to mention that the option apply to AT91CAP9 processors too, and enable it in the defconfig. Signed-off-by: Stelian Pop Signed-off-by: Andrew Victor Signed-off-by: Russell King commit 7c8cf66529ebf95f1a5f34d1b69504d442b42630 Author: Stelian Pop Date: Sat Apr 5 21:15:25 2008 +0100 [ARM] 4934/1: AT91CAP9 UDPHS driver: board and cpu integration. This is patch 2 of 2 adding support for the USB High Speed Device Port on the AT91CAP9 system on chip. The AT91CAP9 uses the same UDPHS IP as the AVR32 and the AT91SAM9RL. This patch declares the UDPHS ressources in the at91cap9 (cpu and adk board) files, wires up the atmel_usba_udc driver to them, and activates the driver in the defconfig. Signed-off-by: Stelian Pop Acked-by: Haavard Skinnemoen Acked-by: Andrew Victor Signed-off-by: Russell King commit 53d7168026a440c4cba25468a3d926ddd7ab030a Author: Stelian Pop Date: Sat Apr 5 21:14:03 2008 +0100 [ARM] 4933/1: AT91CAP9 UDPHS driver: generic AT91 parts. This is patch 1 of 2 adding support for the USB High Speed Device Port on the AT91CAP9 system on chip. The AT91CAP9 uses the same UDPHS IP as the AVR32 and the AT91SAM9RL. This patch makes the generic AT91 adaptations, mainly dealing with the addition of the UDPHS UTMI clock. Signed-off-by: Stelian Pop Acked-by: Haavard Skinnemoen Acked-by: Andrew Victor Signed-off-by: Russell King commit 41bced166646e3c4d78c708c9f9f82313496c76d Author: eric miao Date: Mon May 26 03:28:09 2008 +0100 [ARM] 5063/1: pxa: add clk support for pxa2xx I2S Signed-off-by: Eric Miao Acked-by: Mark Brown Signed-off-by: Russell King commit 02c5eaabeb4b9de4a9b36bf3a3e27201a1f54801 Author: eric miao Date: Mon May 26 03:28:50 2008 +0100 [ARM] 5064/1: pxa: explicitly specify tosa keyboard GPIOs' low power states to DRIVE_LOW Signed-off-by: Eric Miao Acked-by: Dmitry Baryshkov Signed-off-by: Russell King commit a37cba9e5315bb57e8eb135e401ba35e4b2338ac Author: Dmitry Baryshkov Date: Thu May 22 16:21:48 2008 +0100 [ARM] 5048/2: Clean up tosa and spitz resetting Use new reset_gpio to reset tosa and spitz PDAs. Signed-off-by: Dmitry Baryshkov Acked-by: Eric Miao Signed-off-by: Russell King commit 6539b22fc395775d5aa8e94cf6ec8084d1923474 Author: Philipp Zabel Date: Thu May 29 21:18:07 2008 +0100 [ARM] 5069/1: pxa: include pxa2xx-regs.h in reset.c for RSCR The RCSR definition was moved into pxa2xx-regs.h. Signed-off-by: Philipp Zabel Acked-by: Dmitry Baryshkov Signed-off-by: Russell King commit 19750336d4cc3a171a5aa5f9a258fb81066cc45e Author: Andrew Victor Date: Sat May 24 18:10:26 2008 +0100 [ARM] 5059/1: [AT91] Convert to new-style UART initialization Convert the following AT91RM9200-based boards to the new-style UART initialization: - Conitec ARM&EVA - Atmel AT91RM9200-DK - Embest ATEB9200 - Atmel AT91RM9200-EK - KwikByte KB920x Signed-off-by: Andrew Victor Signed-off-by: Russell King commit 7b2253418cc12877620b4d6782831e8643ab0afa Author: Andrew Victor Date: Sat May 24 17:48:37 2008 +0100 [ARM] 5058/1: [AT91] Calao Systems - default configs Default config files for the three AT91-based boards available from Calao Systems: USB_A9260, USB_A9263 and QIL_A9260. Signed-off-by: Grégory Hermant Signed-off-by: Andrew Victor Signed-off-by: Russell King commit ca0a789ab9c83d8fdf28f5c2700b316cd5dec2f0 Author: Andrew Victor Date: Sat May 24 17:47:04 2008 +0100 [ARM] 5057/1: [AT91] Calao Systems - board files Add support for three AT91-based boards available from Calao Systems: USB_A9260, USB_A9263 and QIL_A9260. Signed-off-by: Grégory Hermant Signed-off-by: Andrew Victor Signed-off-by: Russell King commit e3ba22db09408baee721897fb1b50e16f071d916 Author: Andrew Victor Date: Sat May 24 17:06:45 2008 +0100 [ARM] 5056/1: [AT91] Cleanup YL9200 board file Cleanup the YL9200 board-support file. Other things fixed are: - Use new-style UART initialization - Register all LEDs as gpio_leds. - NOR Flash error noted in comments fixed by increasing YL9200_FLASH_SIZE - The only I2C device is the AT24C eeprom. - Setup of NWAIT pin and programming of SMC controller for the LCD/VGA. - Configure touchscreen interrupt pin. Also adding the board to the KConfig and Makefile. Signed-off-by: Andrew Victor Signed-off-by: Russell King commit ffdf786291636137ef2d51c3a5d340793032aa28 Author: Russell King Date: Sun May 18 14:57:59 2008 +0100 [ARM] pxa: Add PXA3_ prefix to PXA3 specific constants standby.S contains both PXA2 and PXA3 specific code. The PXA3 specific constants clash with the PXA2 ones, so give them a prefix. Signed-off-by: Russell King commit 4e5e8de0dbdeb08df2b4c15fa2b0ba2216091793 Author: Russell King Date: Thu Apr 24 15:28:11 2008 +0100 [ARM] pxa: avoid kfreeing static data if platform device fails to register When a dynamically allocated platform device is 'put', the platform device's platform_data is kfree'd. This is bad if it's pointing at static data. Use the provided function to register platform data for these devices. This also means we can mark the pcmcia ops structures as __initdata. Signed-off-by: Russell King commit 04ba0f656f7580d8a51a5b3441e088309141b67a Author: Russell King Date: Thu Apr 24 15:23:25 2008 +0100 [ARM] pxa: avoid registering multiple pxa2xx_pcmcia devices cm_x270 and mainstone both register their PCMCIA devices using the same name, resulting in a warning message from the kernel. Avoid this by making the cm_x270 and mainstone PCMCIA initialisation conditional on the machine type we're running on. Signed-off-by: Russell King commit 720046de27ec2a96d4497dbca8ee98657efa059c Author: Russell King Date: Thu Apr 24 15:13:36 2008 +0100 [ARM] pxa: don't register lpd270 cpld_irq sysdev if !lpd270 Don't register the LPD270 cpld_irq system device when we're not running on a LPD270 machine - "cpld_irq" is also registered (separately) by Lubbock and Mainstone. Signed-off-by: Russell King commit 1a7e612fa5ea0311232bd5418a40ec7280557789 Author: Dmitry Baryshkov Date: Sat May 31 16:18:11 2008 +0100 [ARM] 5074/1: fix warning: missing terminating ' character Signed-off-by: Dmitry Baryshkov Acked-by: Richard Purdie Signed-off-by: Russell King commit 3d1ba1da2b4ff4ace7801e99fb9a3095b182d847 Author: Ingo Molnar Date: Mon Jun 2 13:50:10 2008 +0200 x86: fix nmi.c build bug apic.h needs to be included for the apic_write_around() definition. commit e0773410247f1e5fc6f7c52a4c5f3c6c9873d527 Author: Abhishek Sagar Date: Sat May 31 14:24:02 2008 +0530 ftrace: export kretprobe_trampoline for function tracer Follow suit from kprobe implementations on other archs and make kretprobe_trampoline non-static. Ftrace implmentation (more specifically, kernel/trace/trace.c) requires access to it (see-> http://kerneltrap.org/mailarchive/linux-kernel/2008/5/27/1955234). Signed-off-by: Abhishek Sagar Signed-off-by: Ingo Molnar commit 8b9ade5a70769bc34d03976837d93681213c9166 Author: Cyrill Gorcunov Date: Thu May 29 22:32:30 2008 +0400 x86: IO-APIC - use NMI_NONE instead of numeric constant Not sure but maybe it is better to use NMI_DISABLED, will take a look. But for now this patch is not change anything in logic so it will not hurt/broke the kernel. For most cases nmi_watchdog assignment is by one of NMI_* macro so I think there it make sense too. Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit d9ed4e68a897fd4334e65d981320c42b4903b1c0 Author: Herbert Xu Date: Mon Jun 2 21:30:38 2008 +1000 [CRYPTO] rmd: Use pointer form of endian swapping operations This patch converts the relevant code in the rmd implementations to use the pointer form of the endian swapping operations. This allows certain architectures to generate more optimised code. For example, on sparc64 this more than halves the CPU cycles on a typical hashing operation. Based on a patch by David Miller. Signed-off-by: Herbert Xu commit 9f65c0fb28f1f7fe2083b5b4a66da9a068bfc87f Author: Robert P. J. Day Date: Mon May 26 21:21:07 2008 +1000 [CRYPTO] hifn: Simplify code using ARRAY_SIZE() macro Signed-off-by: Robert P. J. Day Signed-off-by: Herbert Xu commit 045512239c439fef541328958040a55038215b3b Author: Adrian-Ken Rueegsegger Date: Mon May 26 20:54:34 2008 +1000 [CRYPTO] rmd320: Fix endian issues This patch fixes endian issues making rmd320 work properly on big-endian machines. Signed-off-by: Adrian-Ken Rueegsegger Acked-by: Sebastian Siewior Signed-off-by: Herbert Xu commit b05d6b40efa95d75d7a90eb5ad6406015d49c8de Author: Adrian-Ken Rueegsegger Date: Mon May 26 20:33:44 2008 +1000 [CRYPTO] rmd256: Fix endian issues This patch fixes endian issues making rmd256 work properly on big-endian machines. Signed-off-by: Adrian-Ken Rueegsegger Acked-by: Sebastian Siewior Signed-off-by: Herbert Xu commit 13508033b9e25b6b59acd5cfc250f72139812ce0 Author: Adrian-Ken Rueegsegger Date: Mon May 26 20:32:52 2008 +1000 [CRYPTO] rmd160: Fix endian issues This patch fixes endian issues making rmd160 work properly on big-endian machines. Signed-off-by: Adrian-Ken Rueegsegger Acked-by: Sebastian Siewior Signed-off-by: Herbert Xu commit 44406af45e98d26dffd725fe8cbdcbe1f2bf42f7 Author: Adrian-Ken Rueegsegger Date: Tue May 20 11:41:48 2008 +0800 [CRYPTO] rmd128: Fix endian problems This patch is based on Sebastian Siewior's patch and fixes endian issues making rmd128 work properly on big-endian machines. Signed-off-by: Adrian-Ken Rueegsegger Acked-by: Sebastian Siewior Signed-off-by: Herbert Xu commit a25621cd2c081d0db00ea60b15bf69a91facfda7 Author: Huang Weiyi Date: Thu May 15 14:29:46 2008 +0800 [CRYPTO] hifn: Remove duplicated include Removed duplicated include file . Signed-off-by: Huang Weiyi Signed-off-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit 9d38a3f51410758218ea2762a2cac96b81d20561 Author: Loc Ho Date: Wed May 14 21:24:51 2008 +0800 [CRYPTO] tcrypt: Use asynchronous hash interface This patch changes tcrypt to use the new asynchronous hash interface for testing hash algorithm correctness. The speed tests will continue to use the existing interface for now. Signed-off-by: Loc Ho Signed-off-by: Herbert Xu commit b360240f8b7192a90e75c2030f28b1e3f5901316 Author: Loc Ho Date: Wed May 14 21:23:00 2008 +0800 [CRYPTO] cryptd: Add asynchronous hash support This patch adds asynchronous hash support to crypto daemon. Signed-off-by: Loc Ho Signed-off-by: Herbert Xu commit 29a163d4935e65a859ab873b4a5c4b73fdff33ee Author: Loc Ho Date: Wed May 14 20:41:47 2008 +0800 [CRYPTO] hash: Add asynchronous hash support This patch adds asynchronous hash and digest support. Signed-off-by: Loc Ho Signed-off-by: Herbert Xu commit 60abba4f1adf9a1ef17d816f66608be2de51f6eb Author: Adrian-Ken Rueegsegger Date: Fri May 9 21:30:27 2008 +0800 [CRYPTO] ripemd: Add Kconfig entries for extended RIPEMD hash algorithms This patch adds Kconfig entries for RIPEMD-256 and RIPEMD-320. Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit 6aba4bec5d09f969906f56a4aef4ecfedec7af82 Author: Adrian-Ken Rueegsegger Date: Fri May 9 21:29:35 2008 +0800 [CRYPTO] tcrypt: Add test vectors for RIPEMD-256 and RIPEMD-320 This patch adds test vectors for RIPEMD-256 and RIPEMD-320 hash algorithms. The test vectors are taken from Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit 7e01fb2eb8b8316a2122bad068e53ae6078715bd Author: Adrian-Ken Rueegsegger Date: Fri May 9 21:27:02 2008 +0800 [CRYPTO] ripemd: Add support for RIPEMD-256 and RIPEMD-320 This patch adds support for the extended RIPEMD hash algorithms RIPEMD-256 and RIPEMD-320. Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit 4617122c7cb0ce86e97d5a2c4690f32dd69545a8 Author: Adrian-Ken Rueegsegger Date: Fri May 9 21:25:42 2008 +0800 [CRYPTO] ripemd: Put all common RIPEMD values in header file This patch puts all common RIPEMD values in the appropriate header file. Initial values and constants are the same for all variants of RIPEMD. Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit 2c81a33521c471654e6811980d52d617f56492b4 Author: Patrick McHardy Date: Thu May 8 19:27:47 2008 +0800 [CRYPTO] tcrypt: Catch cipher destination memory corruption Check whether the destination buffer is written to beyond the last byte contained in the scatterlist. Also change IDX1 of the cross-page access offsets to a multiple of 4. This triggers a corruption in the HIFN driver and doesn't seem to negatively impact other testcases. Signed-off-by: Patrick McHardy Signed-off-by: Herbert Xu commit e7034bebfa731bc4ad4ada56617725d52484a64a Author: Patrick McHardy Date: Wed May 7 22:37:29 2008 +0800 [HIFN]: Have HW invalidate src and dest descriptors after processing The descriptors need to be invalidated after processing for ring cleanup to work properly and to avoid using an old destination descriptor when the src and cmd descriptors are already set up and the dst descriptor isn't. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit c2d319e9c9a9a7f2621fff8b1fb5fa4e3e4525d6 Author: Patrick McHardy Date: Wed May 7 22:36:54 2008 +0800 [HIFN]: Move command descriptor setup to seperate function Move command descriptor setup to seperate function as preparation for the following DMA setup fixes. Note 1: also fix a harmless typo while moving it: sa_idx is initialized to dma->resi instead of dma->cmdi. Note 2: errors from command descriptor setup are not propagated back, anymore, they can't be handled anyway and all conditions leading to errors should be checked earlier. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit 071c5b7c19a824f0fddc0ae6ecdfe8b48ec32b3b Author: Patrick McHardy Date: Wed May 7 22:36:17 2008 +0800 [HIFN]: Fix max queue length value All but the last element of the command and result descriptor rings can be used for crypto requests, fix HIFN_QUEUE_LENGTH. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit 72a77cf74771ddeec02e524e78c8706e5729de80 Author: Patrick McHardy Date: Wed May 7 22:35:47 2008 +0800 [HIFN]: Properly initialize ivsize for CBC modes For combined modes like cbc(aes) the driver is responsible for initializing ivsize. Signed-off-by: Patrick McHardy Signed-off-by: Herbert Xu commit 7a411ad42bd5cd489d6dafec1e1fc865de1f0858 Author: Patrick McHardy Date: Wed May 7 22:35:07 2008 +0800 [HIFN]: Use unique driver names for different algos When the CryptoAPI instantiates a new algorithm, it performs a lookup by driver name. Since hifn uses the same name for all modes of one algorithm, the lookup may return an incorrect algorithm. Change the name to use -- to provide unique names for the different combinations and devices. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit 6f21d663780b6b1d302c9baf720df7dd55638bf7 Author: Patrick McHardy Date: Wed May 7 22:34:27 2008 +0800 [HIFN]: Properly handle requests for less than the full scatterlist The scatterlist may contain more data than the crypto request, causing an underflow of the remaining byte count while walking the list. Use the minimum of the scatterlist element size and the remaining byte count specified in the crypto request to avoid this. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit 20b5e9fbf395fa4c0ccae218a05cebf585d4e979 Author: Patrick McHardy Date: Wed May 7 22:33:37 2008 +0800 [HIFN]: Fix data alignment checks The check for misalignment of the scatterlist data has two bugs: - the source buffer doesn't need to be aligned at all - the destination buffer and its size needs to be aligned to a multiple of 4, not to the crypto alg blocksize Introduce symbolic constant for destination buffer alignment requirements, use it instead of the crypto alg blocksize and remove the unnecessary checks for source buffer alignment and change cra_alignmask to zero. Signed-off-by: Patrick McHardy Signed-off-by: Herbert Xu commit d58674f28d0ce6426bb94b7306e38cd9f964649b Author: Patrick McHardy Date: Wed May 7 22:32:28 2008 +0800 [HIFN]: Handle ablkcipher_walk errors ablkcipher_walk may return a negative error value, handle this properly instead of treating it as a huge number of scatter-gather elements. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit 21a5803a1fa38876dfa0b01345bfcb654a573a34 Author: Patrick McHardy Date: Wed May 7 22:31:35 2008 +0800 [HIFN]: Indicate asynchronous processing to crypto API hifn_setup_crypto() needs to return -EINPROGRESS on success to indicate asynchronous processing to the crypto API. This also means it must not return the errno code returned by hifn_process_queue(), if any. Signed-off-by: Patrick McHardy Signed-off-by: Herbert Xu commit 2d9a4555e0a4e98f29bb905f2ac37ec534d79074 Author: Patrick McHardy Date: Wed May 7 22:29:42 2008 +0800 [HIFN]: Remove printk_ratelimit() for debugging printk Without debugging this spams the log with "printk: N messages surpressed" without any actual messages on error. With debugging its more useful to always see the message. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit a495349a55d3c8b06b6580a109f808b4bca4e9ad Author: Patrick McHardy Date: Wed May 7 22:28:27 2008 +0800 [HIFN]: Endianess fixes HIFN uses little-endian by default, move cpu_to_le32 conversion to hifn_write_0/ hifn_write_1, add sparse annotations and fix an invalid endian conversion in hifn_setup_src_desc. Signed-off-by: Patrick McHardy Acked-by: Evgeniy Polyakov Signed-off-by: Herbert Xu commit e4c930ac11a3041a162aed7f4e3756e673099d94 Author: Herbert Xu Date: Wed May 7 22:19:38 2008 +0800 [CRYPTO] tcrpyt: Get rid of change log in source Change logs should be kept in source control systems, not the source. This patch removes the change log from tcrpyt to stop people from extending it any more. Signed-off-by: Herbert Xu commit c80d85aff3f2b6c517c7e175289b80b1a573dbb4 Author: Adrian-Ken Rueegsegger Date: Wed May 7 22:17:37 2008 +0800 [CRYPTO] ripemd: Add Kconfig entries for RIPEMD hash algorithms This patch adds Kconfig entries for RIPEMD-128 and RIPEMD-160. Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit 7ce490151634d6c709d335b05bff923c4fdaf0ee Author: Adrian-Ken Rueegsegger Date: Wed May 7 22:16:36 2008 +0800 [CRYPTO] tcrypt: Add test vectors for RIPEMD-128 and RIPEMD-160 This patch adds test vectors for RIPEMD-128 and RIPEMD-160 hash algorithms and digests (HMAC). The test vectors are taken from ISO:IEC 10118-3 (2004) and RFC2286. Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit e751dafdf09c8870161c22ccc4b39bfcef7146e3 Author: Adrian-Ken Rueegsegger Date: Wed May 7 22:14:10 2008 +0800 [CRYPTO] ripemd: Add support for RIPEMD hash algorithms This patch adds support for RIPEMD-128 and RIPEMD-160 hash algorithms. Signed-off-by: Adrian-Ken Rueegsegger Signed-off-by: Herbert Xu commit ceedc497301daaf17fc89f1498873149567c9ace Author: Herbert Xu Date: Wed May 7 21:10:13 2008 +0800 [CRYPTO] cryptd: Fix EINPROGRESS notification context The EINPROGRESS notifications should be done just like the final call-backs, i.e., with BH off. This patch fixes the call in cryptd since previously it was called with BH on. Signed-off-by: Herbert Xu commit 7e0edc1bc343231029084761ebf59e522902eb49 Author: Jeremy Fitzhardinge Date: Sat May 31 01:33:04 2008 +0100 xen: add new Xen elfnote types and use them appropriately Define recently added XEN_ELFNOTEs, and use them appropriately. Most significantly, this enables domain checkpointing (xm save -c). Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit d07af1f0e3a3e378074fc36322dd7b0e72d9a3e2 Author: Jeremy Fitzhardinge Date: Sat May 31 01:33:03 2008 +0100 xen: resume timers on all vcpus On resume, the vcpu timer modes will not be restored. The timer infrastructure doesn't do this for us, since it assumes the cpus are offline. We can just poke the other vcpus into the right mode directly though. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit 9c7a794209f8a91f47697c3be20597eb60531e6d Author: Jeremy Fitzhardinge Date: Sat May 31 01:33:02 2008 +0100 xen: restore vcpu_info mapping If we're using vcpu_info mapping, then make sure its restored on all processors before relasing them from stop_machine. The only complication is that if this fails, we can't continue because we've already made assumptions that the mapping is available (baked in calls to the _direct versions of the functions, for example). Fortunately this can only happen with a 32-bit hypervisor, which may possibly run out of mapping space. On a 64-bit hypervisor, this is a non-issue. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit e2426cf85f8db5891fb5831323d2d0c176c4dadc Author: Jeremy Fitzhardinge Date: Sat May 31 01:24:27 2008 +0100 xen: avoid hypercalls when updating unpinned pud/pmd When operating on an unpinned pagetable (ie, one under construction or destruction), it isn't necessary to use a hypercall to update a pud/pmd entry. Jan Beulich observed that a similar optimisation avoided many thousands of hypercalls while doing a kernel build. One tricky part is that early in the kernel boot there's no page structure, so we can't check to see if the page is pinned. In that case, we just always use the hypercall. Signed-off-by: Jeremy Fitzhardinge Cc: Jan Beulich Signed-off-by: Ingo Molnar commit 15ce60056b24a65b65e28de973a9fd8ac0750a2f Author: Ingo Molnar Date: Mon Jun 2 13:20:11 2008 +0200 xen: export get_phys_to_machine -tip testing found the following xen-console symbols trouble: ERROR: "get_phys_to_machine" [drivers/video/xen-fbfront.ko] undefined! ERROR: "get_phys_to_machine" [drivers/net/xen-netfront.ko] undefined! ERROR: "get_phys_to_machine" [drivers/input/xen-kbdfront.ko] undefined! with: http://redhat.com/~mingo/misc/config-Mon_Jun__2_12_25_13_CEST_2008.bad commit 58fcc06030e20938f20b72215a19b2008e6f6e04 Author: Pavel Machek Date: Thu May 29 00:30:21 2008 -0700 suspend-vs-iommu: prevent suspend if we could not resume iommu/gart support misses suspend/resume code, which can do bad stuff, including memory corruption on resume. Prevent system suspend in case we would be unable to resume. Signed-off-by: Pavel Machek Tested-by: Patrick Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 0e7bff415c9535967da45d305261192aa680511d Author: Andrew Morton Date: Thu May 29 00:01:28 2008 -0700 x86: section mismatch fix Fix this: WARNING: vmlinux.o(.text+0x114bb): Section mismatch in reference from the function nopat() to the function .cpuinit.text:pat_disable() The function nopat() references the function __cpuinit pat_disable(). This is often because nopat lacks a __cpuinit annotation or the annotation of pat_disable is wrong. Reported-by: "Fabio Comolli" Cc: Sam Ravnborg Signed-off-by: Ingo Molnar commit 9f5314fb4d556d3132c784d0df47352b2830ca53 Author: Jack Steiner Date: Wed May 28 09:51:18 2008 -0500 x86, uv: update macros used by UV platform Update the UV address macros to better describe the fields of UV physical addresses. Improve comments in the header files. Add additional MMR definitions. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit 88ff0a474e98f869d8c321e29481f298320100d6 Author: Hiroshi Shimamoto Date: Tue May 27 18:49:39 2008 -0700 x86: coding style fixes for nmi.c before total: 1 errors, 6 warnings, 534 lines checked after total: 0 errors, 1 warnings, 532 lines checked Signed-off-by: Hiroshi Shimamoto Signed-off-by: Ingo Molnar commit fb093eab6d8963a085f112773284f2bcb3d7907b Author: Yinghai Lu Date: Tue May 27 16:29:20 2008 -0700 x86: remove duplicated e820 func in setup.h we already have them in e820.h Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit ad90c0e3ce8d20d6873b57e36181ef6d7a0097fe Author: Steven Rostedt Date: Tue May 27 20:48:37 2008 -0400 ftrace: user update and disable dynamic ftrace daemon In dynamic ftrace, the mcount function starts off pointing to a stub function that just returns. On start up, the call to the stub is modified to point to a "record_ip" function. The job of the record_ip function is to add the function to a pre-allocated hash list. If the function is already there, it simply is ignored, otherwise it is added to the list. Later, a ftraced daemon wakes up and calls kstop_machine if any functions have been recorded, and changes the calls to the recorded functions to a simple nop. If no functions were recorded, the daemon goes back to sleep. The daemon wakes up once a second to see if it needs to update any newly recorded functions into nops. Usually it does not, but if a lot of code has been executed for the first time in the kernel, the ftraced daemon will call kstop_machine to update those into nops. The problem currently is that there's no way to stop the daemon from doing this, and it can cause unneeded latencies (800us which for some is bothersome). This patch adds a new file /debugfs/tracing/ftraced_enabled. If the daemon is active, reading this will return "enabled\n" and "disabled\n" when the daemon is not running. To disable the daemon, the user can echo "0" or "disable" into this file, and "1" or "enable" to re-enable the daemon. Since the daemon is used to convert the functions into nops to increase the performance of the system, I also added that anytime something is written into the ftraced_enabled file, kstop_machine will run if there are new functions that have been detected that need to be converted. This way the user can disable the daemon but still be able to control the conversion of the mcount calls to nops by simply, "echo 0 > /debugfs/tracing/ftraced_enabled" when they need to do more conversions. To see the number of converted functions: "cat /debugfs/tracing/dyn_ftrace_total_info" Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar commit 6330a30a76c1e62d4b4ec238368957f8febf9113 Author: Vegard Nossum Date: Wed May 28 09:46:19 2008 +0200 x86: break mutual header inclusion This breaks up the mutual inclusion between headers ptrace.h and vm86.h by moving some small part of vm86.h which is needed by ptrace.h into processor-flags.h. We also try to move #include lines to the top. This has been compile tested on x86_32 and x86_64 defconfig, and run through 'make headers_check'. Cc: Adrian Bunk Signed-off-by: Vegard Nossum Signed-off-by: Ingo Molnar commit 83bea8e1fa0c47b30664b6f92397c016c22f77fb Author: Vegard Nossum Date: Tue May 27 21:03:46 2008 +0200 x86: fix incomplete include guard in include/asm-x86/seccomp_32.h Signed-off-by: Vegard Nossum Signed-off-by: Ingo Molnar commit 76094a2cf46e4ab776055d4086615b884408568c Author: Abhishek Sagar Date: Wed May 28 00:03:18 2008 +0530 ftrace: distinguish kretprobe'd functions in trace logs Tracing functions via ftrace which have a kretprobe installed on them, can produce misleading output in their trace logs. E.g, consider the correct trace of the following sequence: do_IRQ() { ~ irq_enter(); ~ } Trace log (sample): -0 [00] 4154504455.781616: irq_enter <- do_IRQ But if irq_enter() has a kretprobe installed on it, the return value stored on the stack at each invocation is modified to divert the return to a kprobe trampoline function called kretprobe_trampoline(). So with this the trace would (currently) look like: -0 [00] 4154504455.781616: irq_enter <- kretprobe_trampoline Now this is quite misleading to the end user, as it suggests something that didn't actually happen. So just to avoid such misinterpretations, the inlined patch aims to output such a log as: -0 [00] 4154504455.781616: irq_enter <- [unknown/kretprobe'd] Signed-off-by: Abhishek Sagar Acked-by: Steven Rostedt Signed-off-by: Ingo Molnar commit c1f64a58003fd2efaa725a857e269a15f765791a Author: Linus Torvalds Date: Tue May 27 09:47:13 2008 -0700 x86: MMIO and gcc re-ordering issue On Tue, 27 May 2008, Linus Torvalds wrote: > > Expecting people to fix up all drivers is simply not going to happen. And > serializing things shouldn't be *that* expensive. People who cannot take > the expense can continue to use the magic __raw_writel() etc stuff. Of course, for non-x86, you kind of have to expect drivers to be well-behaved, so non-x86 can probably avoid this simply because there are less relevant drivers involved. Here's a UNTESTED patch for x86 that may or may not compile and work, and which serializes (on a compiler level) the IO accesses against regular memory accesses. __read[bwlq]()/__write[bwlq]() are not serialized with a :"memory" barrier, although since they still use "asm volatile" I suspect that i practice they are probably serial too. Did not look very closely at any generated code (only did a trivial test to see that the code looks *roughly* correct). Signed-off-by: Ingo Molnar commit 1a5726528a70bb239bdd149aef7f2155cd2b1699 Author: Ingo Molnar Date: Mon Jun 2 12:21:36 2008 +0200 fix build bug in "x86: add PCI extended config space access for AMD Barcelona" commit c78277288e3d561d55fb48bc0fe8d6e2cf4d0880 Author: Jeremy Fitzhardinge Date: Thu May 29 09:02:19 2008 +0100 CONFIG_PM_SLEEP fix: xen: fix compilation when CONFIG_PM_SLEEP is disabled Xen save/restore depends on CONFIG_PM_SLEEP being set for device_power_up/down. Signed-off-by: Jeremy Fitzhardinge Acked-by: Randy Dunlap Signed-off-by: Ingo Molnar commit c46e62f73569d7ef42255bd6f31e35925b7f1492 Author: Pavel Machek Date: Wed May 28 12:42:57 2008 +0200 i8259: fix final ugliness Introduce IRQx_VECTOR on 32-bit, so that #ifdef noise is kept down. There should be no object code change. [ mingo@elte.hu: merged to x86/irq not x86/i8259 due to x86/irq having restructured the vector code into asm-x86/irq_vectors.h, which this patch touches. ] Signed-off-by: Pavel Machek Signed-off-by: Ingo Molnar commit 6fc92866a4a6778a9732a14b61f70cb9014b2a1a Author: Ingo Molnar Date: Mon Jun 2 10:54:16 2008 +0200 fix build bug in "x86: add PCI extended config space access for AMD Barcelona" Signed-off-by: Ingo Molnar commit 831d991821daedd4839073dbca55514432ef1768 Author: Robert Richter Date: Mon Sep 3 10:17:39 2007 +0200 x86: add PCI extended config space access for AMD Barcelona This patch implements PCI extended configuration space access for AMD's Barcelona CPUs. It extends the method using CF8/CFC IO addresses. An x86 capability bit has been introduced that is set for CPUs supporting PCI extended config space accesses. Signed-off-by: Robert Richter Signed-off-by: Ingo Molnar commit 014c257cce65e9d1cd2d28ec1c89a37c536b151d Author: Abhishek Sagar Date: Sat May 31 14:23:50 2008 +0530 ftrace: core support for ARM Core ftrace support for the ARM architecture, which includes support for dynamic function tracing. Signed-off-by: Abhishek Sagar Signed-off-by: Ingo Molnar commit c6f79becb5a40af012435896b88260719ee95665 Author: Steven Whitehouse Date: Mon Jun 2 09:14:54 2008 +0100 [GFS2] Revise readpage locking The previous attempt to fix the locking in readpage failed due to the use of a "try lock" which resulted in occasional high cpu usage during testing (due to repeated tries) and also it did not resolve all the ordering problems wrt the transaction lock (although it did solve all the inode lock ordering problems). This patch avoids the problem by unlocking the page and getting the locks in the correct order. This means that we have to retest the page to ensure that it hasn't changed when we relock the page. This now passes the tests which were previously failing. Signed-off-by: Steven Whitehouse commit 9b6a76f99b73875150eaee554f1dbac5702d4e83 Author: Steven Whitehouse Date: Mon Jun 2 09:08:47 2008 +0100 [GFS2] Fix ordering of args for list_add The patch to remove lock_nolock managed to get the arguments of this list_add backwards. This fixes it. Signed-off-by: Steven Whitehouse commit b5a52b3a2885306d166e3004665c5a9a212820a3 Author: Artem Bityutskiy Date: Mon Jun 2 10:19:54 2008 +0300 UBIFS: fix Kconfig Do the following suggestion from Adrian Bunk: Please change this and similar other options to: config UBIFS_FS tristate "UBIFS file system support" select CRC16 select CRC32 select CRYPTO if UBIFS_FS_LZO select CRYPTO_LZO if UBIFS_FS_LZO depends on MTD_UBI ... config UBIFS_FS_LZO bool "LZO compression support" if UBIFS_FS_ADVANCED_COMPR depends on UBIFS_FS ... This way UBIFS_FS=m, UBIFS_FS_LZO=y will only force CRYPTO_LZO=m and not CRYPTO_LZO=y. Also, fix the following error reported by Randy Dunlap: with: CONFIG_UBIFS_FS=y CONFIG_UBIFS_FS_ADVANCED_COMPR=y build gets: fs/built-in.o: In function `compr_exit': compress.c:(.text+0x4a3fc): undefined reference to `crypto_free_tfm' fs/built-in.o: In function `compr_init': compress.c:(.init.text+0x11d4): undefined reference to `crypto_alloc_base' make[1]: *** [.tmp_vmlinux1] Error 1 because CRYPTO is not enabled. Signed-off-by: Artem Bityutskiy commit e8ef4347099584b49ecf74144ad2089b724292cf Author: Dmitry Torokhov Date: Mon Jun 2 00:41:57 2008 -0400 Input: serio - remove pending events when unregistering driver That fixes an opps when driver is repeatedly loaded and unloaded in a tight loop. Tested-by: Roland Kletzing Signed-off-by: Dmitry Torokhov commit f6d65610df3bd4e7138da03aec391224219df135 Author: Dmitry Torokhov Date: Mon Jun 2 00:39:45 2008 -0400 Input: atkbd - use ushort instead of uchar keymap Since some of the keycodes defined in input.h have values greater than 255 we should use unsigned shorts in keymaps. Tested-by: Carlos Corbacho Signed-off-by: Dmitry Torokhov commit 5a18c343a6bee4b38965f14a40ccb95306641f87 Author: Pau Oliva Fora Date: Mon Jun 2 00:38:35 2008 -0400 Input: add HTC Shift Touchscreen Driver Signed-off-by: Pau Oliva Fora Signed-off-by: Dmitry Torokhov commit fd6050b36bf7355710314dd07b5dce06d405530e Author: Anton Vorontsov Date: Fri May 23 19:43:47 2008 +0400 mmc: change .get_ro() callback semantics get_ro() callback must return values >= 0 for its logical state, and negative errno values in case of error. If particular host instance doesn't support RO/WP switch, it should return -ENOSYS. This patch changes some hosts in two ways: 1. Now functions should be smart to not return negative values in "RO asserted" case (particularly gpio_ calls could return negative values for the outermost GPIOs). Also, board code usually passes get_ro() callbacks that directly return gpioreg & bit result, so imxmmc, pxamci and mmc_spi's get_ro() handlers need take special care when returning platform's values to the mmc core. 2. In case of host instance didn't implement get_ro() callback, it should really return -ENOSYS and let the mmc core decide what to do about it (mmc core thinks the same way as the hosts, so it isn't functional change). Signed-off-by: Anton Vorontsov Signed-off-by: Pierre Ossman commit cd3c93fe826def37abc474e7a91bbf56444d7cd0 Author: Anton Vorontsov Date: Fri May 23 19:43:43 2008 +0400 mmc_spi: add support for card-detection polling This patch adds new platform data variable "caps", so platforms could pass theirs capabilities into MMC core (for example, platforms without interrupt on the CD line will most probably want to pass MMC_CAP_NEEDS_POLL). New platform get_cd() callback provided to optimize polling. Signed-off-by: Anton Vorontsov Signed-off-by: Pierre Ossman commit bee4edd559726f0154ac24bd442aaa21f4e36608 Author: Anton Vorontsov Date: Fri May 23 19:43:40 2008 +0400 mmc: add support for card-detection polling Some hosts (and boards that use mmc_spi) do not use interrupts on the CD line, so they can't trigger mmc_detect_change. We want to poll the card and see if there was a change. 1 second poll interval seems resonable. This patch also implements .get_cd() host operation, that could be used by the hosts that are able to report card-detect status without need to talk MMC. Signed-off-by: Anton Vorontsov Signed-off-by: Pierre Ossman commit 597edb10b93886338dd41cd99ee26d4d4ab6eb0a Author: Matthew Wilcox Date: Sat May 31 13:17:52 2008 -0400 Add missing semaphore.h includes These files call down() but don't include semaphore.h Signed-off-by: Matthew Wilcox commit de146fd667c35a7cfbbef5202ed821292afb5eb2 Author: Matthew Wilcox Date: Wed Apr 23 10:07:27 2008 -0400 Remove __DECLARE_SEMAPHORE_GENERIC There are no users of __DECLARE_SEMAPHORE_GENERIC in the kernel Signed-off-by: Matthew Wilcox commit 069e88113c5cd04d2893d9d1134cd3eb46b40abb Author: Matthew Wilcox Date: Wed Apr 23 07:53:19 2008 -0400 Warn if asm/semaphore.h included In preparation for removing asm/semaphore.h, warn if it is used. Signed-off-by: Matthew Wilcox commit aa30fc52823f3b253fab93586ae7012080cf269d Author: Matthew Wilcox Date: Sat May 31 13:15:33 2008 -0400 Add linux/semaphore.h to hp_sdc.c It was using semaphores without including semaphore.h. Signed-off-by: Geert Uytterhoeven Signed-off-by: Matthew Wilcox commit a17f3b2af7bb17b016492811b52ca657680e07d1 Author: Matthew Wilcox Date: Wed Apr 23 07:20:41 2008 -0400 Remove mention of semaphores from kernel-locking Since the consensus seems to be to eliminate semaphores where possible, we shouldn't be educating people about how to use them as locks. Use mutexes instead. Semaphores should be described in a separate document if we end up keeping them. Signed-off-by: Matthew Wilcox Acked-by: Rusty Russell commit e05c6daff0066a22c4f5dd2e7e3223288c9011bb Author: Matthew Wilcox Date: Fri Apr 25 12:38:41 2008 -0400 Convert board-nokia770 from semaphore to spinlock None of the operations done under the semaphore could sleep, so a spinlock is more appropriate to this case. Signed-off-by: Matthew Wilcox commit c07e5a0c99b5229e4029b8c7fd3eac222b45f45b Author: Matthew Wilcox Date: Fri Apr 25 12:09:25 2008 -0400 Convert ibmphp from semaphores One semaphore had mutex semantics, the other had completion semantics. Signed-off-by: Matthew Wilcox commit ab50ba2f20981b235d4cd02433f225ea0f468b4c Author: Matthew Wilcox Date: Fri Apr 25 11:58:30 2008 -0400 Convert ppp_async from semaphore to a completion This semaphore was being used with completion semantics. Signed-off-by: Matthew Wilcox commit ffb433ddbbeb625e665e7ecb713e91684c74ac9b Author: Matthew Wilcox Date: Fri Apr 25 11:52:34 2008 -0400 Convert ps3 gelic drivers from semaphores to mutexes All three semaphores were being used as mutex, so use the mutex code. Signed-off-by: Matthew Wilcox commit e2c6f1aa2f67c585ffcb879d32ff3e74b53faf25 Author: Matthew Wilcox Date: Fri Apr 25 07:31:13 2008 -0400 Convert qla_os to use mutex instead of semaphore The qla_fw_lock was being used with mutex semantics, so convert it from a semaphore. Signed-off-by: Matthew Wilcox commit d3ecab94381a955aeace54b52c538bbdf282ad19 Author: Matthew Wilcox Date: Sat May 31 09:39:45 2008 -0400 Convert bonding driver from rw_semaphore to mutex The semaphore was only taken for read for displaying the bonds in sysfs. The additional debuggability of mutexes far outweighs this minor loss of concurrency. Signed-off-by: Matthew Wilcox commit d2c3c70448cca04f48fbebb29eb28922defc92d5 Author: Matthew Wilcox Date: Sat May 31 09:10:29 2008 -0400 9p: Convert from mutex to spinlock The virtio_9p_lock is only held for very short periods of time and never does a blocking operation while it's held, so it really should be a spinlock. Signed-off-by: Matthew Wilcox commit 5469811b8b0085c0f19fd3aaad29cde59761e243 Author: Matthew Wilcox Date: Wed Apr 23 11:09:42 2008 -0400 qla2xxx: Turn vport_sem into vport_mutex The semaphore is used as a mutex, and hence can use the more efficient mutex code. Signed-off-by: Matthew Wilcox commit df5a0aff9297958d638be0678f970cf5d8b586ab Author: Matthew Wilcox Date: Fri Apr 25 05:28:17 2008 -0400 Convert s3c2443-ac97 from semaphore to mutex The ac97_mutex semaphore is being used with mutex semantics, so change it to actually be a mutex. Signed-off-by: Matthew Wilcox commit 3dbc7b82db9ecd7d064cbbc461f369b965f62c68 Author: Matthew Wilcox Date: Fri Apr 25 05:45:32 2008 -0400 Convert bluetooth's hci_core to mutexes The hci_req_lock is used with mutex semantics, so convert it to a mutex. Signed-off-by: Matthew Wilcox commit c9070bbc5f66d6ec811600f3e20b6d19f6c81f1f Author: Ingo Molnar Date: Sat May 31 12:20:10 2008 +0200 x86 build fix: arch/x86/kernel/io_apic_64.c: In function 'check_timer': arch/x86/kernel/io_apic_64.c:1688: error: 'vector' undeclared (first use in this function) arch/x86/kernel/io_apic_64.c:1688: error: (Each undeclared identifier is reported only once arch/x86/kernel/io_apic_64.c:1688: error: for each function it appears in.) commit f3de5d1a043cffe5adc4ba3af36eb0f4332a0f11 Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: apic_64.c fix sparse warnings about shadowed variables Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 71e93ac7488149d6a99659c85c1194db92608e3b Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: make irq_cfg static Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 180d671872f4a77607098276fc8cfa391d197ad7 Author: Thomas Gleixner Date: Mon May 12 15:43:37 2008 +0200 x86: move pci_routirq declaration to pci.h Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 7e3530cd98a0c6ab38f5898e855a5beffab26561 Author: Maciej W. Rozycki Date: Tue May 27 21:19:51 2008 +0100 x86: I/O APIC: timer through 8259A second-chance Some systems incorrectly report the ExtINTA pin of the I/O APIC as the genuine target of the timer interrupt. Here is a change that copies timer pin information found to the other pin if one has been found only. This way both a direct and a through-8259A route is tested with the pin letting these problematic systems work well enough. If no timer pin information has been found for the I/O APIC, then local APIC variations are tried only, similarly to what is done without the change (except without the misleading messages). Obviously if we try the first-chance path without being told by the BIOS to do so, we should not complain either, so do not print the message in this case. The 64-bit variation should be updated with a call to replace_pin_at_irq() which can be done with the upcoming merge. Since add_pin_to_irq() is now always called in the first-chance path, the condition to require it in the second-chance path no longer happens. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 7f85ef0fefa5af90c3619912b45aae048e2dff9f Author: Maciej W. Rozycki Date: Tue May 27 21:19:45 2008 +0100 x86: I/O APIC: keep the timer IRQ masked during set-up Keep the timer interrupt line masked when reconfiguring its interrupt redirection entry in the I/O APIC. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 833526a34eeefc117df3191a594c3c3a4f15a9ac Author: Maciej W. Rozycki Date: Tue May 27 21:19:40 2008 +0100 x86: I/O APIC: unmask the second-chance timer interrupt Unmask the timer interrupt line set up in the through-8259A mode explicitly after setup_timer_IRQ0_pin() has set up the I/O APIC interrupt redirection entry to let the two operations be unbound from each other. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 6a926434e563a30480404bc3cdc963e569e8d667 Author: Maciej W. Rozycki Date: Tue May 27 21:19:34 2008 +0100 x86: I/O APIC: rename setup_ExtINT_IRQ0_pin() Rename setup_ExtINT_IRQ0_pin() to setup_timer_IRQ0_pin() to better reflect the upcoming role of a function setting up a (semi-)arbitrary I/O APIC pin appropriately for the 8254 timer. By "appropriate" the following settings are meant: edge-triggered, active-high, all the other settings per-architecture. Adjust comments to reflect code appropriately. No functional changes. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit baf3541865d62675c8bedae85272f93f4f69be3a Author: Maciej W. Rozycki Date: Tue May 27 21:19:28 2008 +0100 x86: I/O APIC: remove redundant LVT0 masking The LINT0 line of the local APIC is masked in the LVT0 entry in check_timer() before this function is ever called. Removed the redundant unmasking for better control. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit aeb5409fa35b3a09e9bf7638fce68f70c3771cba Author: Maciej W. Rozycki Date: Tue May 27 21:19:22 2008 +0100 x86: I/O APIC: remove redundant 8259A {,un}masking For a better control the masking and unmasking of the timer interrupt line in the 8259A operating in the 'Virtual Wire' mode has been moved out of setup_ExtINT_IRQ0_pin() now, so remove the redundant calls from the function. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 65767c64068f2c93e56a1accfed5c78230ac12d7 Author: Maciej W. Rozycki Date: Tue May 27 21:19:16 2008 +0100 x86: I/O APIC: fix the name of the through-8259A handler When the through-8259A mode is used for the timer, the call to set_irq_handler() will register a NULL handler name, resulting in "IO-APIC-" reported. Fix by calling ioapic_register_intr() as done for all the other I/O APIC interrupts. The 64-bit variation calls set_irq_chip_and_handler_name() here needlessly and should get fixed with the upcoming merge. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 2abc5c05dd82c188e3bdf6641a274f013348d14b Author: Maciej W. Rozycki Date: Tue May 27 21:19:09 2008 +0100 x86: I/O APIC: fix the name of the L-APIC IRQ handler The local APIC interrupt handler gets registered with set_irq_chip_and_handler_name(), which results in "local-APIC-edge-fasteoi" reported as the name of the handler. Fix by removing the type of the handler left over from before the generic handlers were introduced. The 64-bit variation should get fixed with the upcoming merge. NB It should really use the "edge" handler and not the "fasteoi" one, but that's a separate issue. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 317e1f2597ffb4d4db940577bbe56dc6e881ef07 Author: Maciej W. Rozycki Date: Wed May 21 22:10:22 2008 +0100 x86: I/O APIC: clean up the 8259A on a NMI watchdog failure There is no point in keeping the 8259A enabled if the I/O APIC NMI watchdog has failed and the 8259A is not used to pass through regular timer interrupts. This fixes problems with some systems where some logic gets confused. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 791b93d3dfaf16c23e978bec0cc0a3dd9d855d63 Author: Maciej W. Rozycki Date: Wed May 21 22:10:16 2008 +0100 x86: APIC/SMP: downgrade the NMI watchdog for "nosmp" If configured to use the I/O APIC, the NMI watchdog is deemed to fail if the chip has been deactivated as a result of "nosmp". Downgrade to the local APIC watchdog similarly to what is done for the UP case. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 96a515e8a9bd225c2c36a8ae681115c3d52f1adb Author: Maciej W. Rozycki Date: Wed May 21 22:09:43 2008 +0100 x86: APIC/SMP: correct the message for "nosmp" The local APIC is no longer forced off when "nosmp" has been specified. Correct the message printed. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit b576c09267f267e5ad4352f2e2feb683f7132cf6 Author: Maciej W. Rozycki Date: Wed May 21 22:09:34 2008 +0100 x86: I/O APIC: keep IRQ off when changing LVT registers Disable the 8259A acting in the "virtual wire" mode to keep the interrupt line inactive while fiddling with local APIC interrupt vector registers associated with its destination inputs. To be on the safe side, especially concerning flipping the trigger mode. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 5636543c3f0e51bab7ec2f638e71cc51ea398c80 Author: Maciej W. Rozycki Date: Wed May 21 22:09:26 2008 +0100 x86: I/O APIC: clean up after a fasteoi failure Disable the 8259A when routing of the timer interrupt through the chip to the local APIC of the primary processor has failed. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 4b151813a40a968fce405ee561a321bea23f459c Author: Maciej W. Rozycki Date: Wed May 21 22:09:19 2008 +0100 x86: I/O APIC: remove parameters to fiddle with the 8259A Remove the "disable_8254_timer" and "enable_8254_timer" kernel parameters. Now that AEOI acknowledgements are no longer needed for correct timer operation, the 8259A can be kept disabled unconditionally unless interrupts, either timer or watchdog ones, are actually passed through it. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 072be0862863d0e17d1553a8e3b647e5b8b044d5 Author: Maciej W. Rozycki Date: Wed May 21 22:09:11 2008 +0100 x86: I/O APIC: AEOI timer acknowledgement clean-ups The code that used to be in do_slow_gettimeoffset() that relied on the IRR bit of the master 8259A PIC for IRQ0 to check the state of the output timer 0 of the PIT is no longer there. As a result, there is no need to use the POLL command to acknowledge the timer interrupt in the "8259A Virtual Wire", except for the NMI watchdog when the i82489DX APIC is used (this is because this particular APIC treats NMIs as level-triggered and keeping the input asserted would keep motherboard NMI sources held off for too long). Remove the unneeded bits and adjust comments accordingly. Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit f0595bc284e3a190afa272fcdc9ffc45da589e58 Author: Venki Pallipadi Date: Thu May 29 12:01:44 2008 -0700 x86: fix Xorg crash with xf86MapVidMem error Clarify the usage of mtrr_lookup() in PAT code, and to make PAT code resilient to mtrr lookup problems. Specifically, pat_x_mtrr_type() is restructured to highlight, under what conditions we look for mtrr hint. pat_x_mtrr_type() uses a default type when there are any errors in mtrr lookup (still maintaining the pat consistency). And, reserve_memtype() highlights its usage ot mtrr_lookup for request type of '-1' and also defaults in a sane way on any mtrr lookup failure. pat.c looks at mtrr type of a range to get a hint on what mapping type to request when user/API: (1) hasn't specified any type (/dev/mem mapping) and we do not want to take performance hit by always mapping UC_MINUS. This will be the case for /dev/mem mappings used to map BIOS area or ACPI region which are WB'able. In this case, as long as MTRR is not WB, PAT will request UC_MINUS for such mappings. (2) user/API requests WB mapping while in reality MTRR may have UC or WC. In this case, PAT can map as WB (without checking MTRR) and still effective type will be UC or WC. But, a subsequent request to map same region as UC or WC may fail, as the region will get trackked as WB in PAT list. Looking at MTRR hint helps us to track based on effective type rather than what user requested. Again, here mtrr_lookup is only used as hint and we fallback to WB mapping (as requested by user) as default. In both cases, after using the mtrr hint, we still go through the memtype list to make sure there are no inconsistencies among multiple users. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Tested-by: Rufus & Azrael Signed-off-by: Ingo Molnar commit 8c9e6751f16dede905bddc1cbbe96efae374a0ac Author: Kevin Winchester Date: Thu May 29 21:14:35 2008 -0300 x86: fix pointer type warning in arch/x86/mm/init_64.c:early_memtest Changed the call to find_e820_area_size to pass u64 instead of unsigned long. Signed-off-by: Kevin Winchester Signed-off-by: Ingo Molnar commit 9a73aa81ffb993382afed2ed404bc2b330d75427 Author: Yinghai Lu Date: Thu May 29 16:25:56 2008 -0700 x86: 32bit numa srat fix early_ioremap leak on two node system (16g RAM) with numa config I got this crash: get_memcfg_from_srat: assigning address to rsdp RSD PTR v0 [ACPIAM] ACPI: Too big length in RSDT: 92 failed to get NUMA memory information from SRAT table NUMA - single node, flat memory mode Node: 0, start_pfn: 0, end_pfn: 153 Setting physnode_map array to node 0 for pfns: 0 ... Pid: 0, comm: swapper Not tainted 2.6.26-rc4 #4 [<80b41289>] hlt_loop+0x0/0x3 [<8011efa0>] ? alloc_remap+0x50/0x70 [<8079e32e>] alloc_node_mem_map+0x5e/0xa0 [<8012e77b>] ? printk+0x1b/0x20 [<80b590f6>] free_area_init_node+0xc6/0x470 [<80b588fc>] ? __alloc_bootmem_node+0x2c/0x50 [<80b58ad8>] ? find_min_pfn_for_node+0x38/0x70 [<8012e77b>] ? printk+0x1b/0x20 [<80b597c4>] free_area_init_nodes+0x254/0x2d0 [<80b544d7>] zone_sizes_init+0x97/0xa0 [<80b48a03>] setup_arch+0x383/0x530 [<8012e77b>] ? printk+0x1b/0x20 [<80b41aa4>] start_kernel+0x64/0x350 [<80b412d8>] i386_start_kernel+0x8/0x10 ======================= this patch increases the acpi table limit to 32. Also match early_ioremap() with early_iounmap(). Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit a5481280b29b6a3db912ec100498bd31eaa6d2db Author: Yinghai Lu Date: Thu May 29 12:58:37 2008 -0700 x86: extend e820 early_res support 32bit -fix #5 reserve early numa kva, so it will not clash with new RAMDISK Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 163872950dc856fd23849c27f60049feaac49ae6 Author: Yinghai Lu Date: Thu May 29 12:57:22 2008 -0700 x86: extend e820 early_res support 32bit -fix #4 reserve_early pgdata for 32bit numa Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit f0d43100f13be0fa5bf52741d7084bb27f00e621 Author: Yinghai Lu Date: Thu May 29 12:56:36 2008 -0700 x86: extend e820 early_res support 32bit -fix #3 introduce init_pg_table_start, so xen PV could specify the value. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit e83728c7b0ce92e57aa90eb4fc271a29d7a393d5 Author: Stephen Hemminger Date: Wed Apr 16 16:37:35 2008 -0700 ns8320: use netdev_alloc_skb Use netdev_alloc_skb. This sets skb->dev and allows arch specific allocation. Compile tested only. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit c7d6b7d20f42996b28b6a26587a081ce0fc37304 Author: Stephen Hemminger Date: Wed Apr 16 16:37:30 2008 -0700 ts108: use netdev_alloc_skb Use netdev_alloc_skb for rx buffer allocation. This sets skb->dev and can be overriden for NUMA machines. This device is PowerPC only, so not tested or compiled. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit 20cbe73cd52f6476f4f7122e8fc801896ea3c4b6 Author: Marcin Slusarz Date: Wed May 14 16:20:17 2008 -0700 net/s2io: set_rxd_buffer_pointer returns -ENOMEM, not ENOMEM Signed-off-by: Marcin Slusarz Cc: Ramkrishna Vepa Cc: Rastapur Santosh Cc: Sivakumar Subramani Cc: Sreenivasa Honnur Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik commit a068c0adf2fe28b324bca87f85d27af7f993cdaf Author: Stephen Hemminger Date: Wed May 14 17:04:17 2008 -0700 sky2: pci power savings Turn on special bits to save more power when device is shutdown. Tested on a limited range of hardware, some of the bits are for hardware that probably isn't even in production (like Yukon Supreme) and was ported from the vendor driver. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit db99b98885e717454feef1c6868b27d3f23c2e7c Author: Stephen Hemminger Date: Wed May 14 17:04:16 2008 -0700 sky2: put PHY in sleep when down Put PHY int sleep mode (from vendor sk98lin 10.50 driver) when the network device is brought down. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit b96936da7a8911cfa29225aa4dc380aba1b8a86e Author: Stephen Hemminger Date: Wed May 14 17:04:15 2008 -0700 sky2: split phy power into two functions Later changes add more code to PHY power changes so refactor now. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit 25d90810ff49d2a63475776f24c74c6bb49b045f Author: Tobias Diedrich Date: Sun May 18 15:04:29 2008 +0200 [netdrvr] forcedeth: reorder suspend/resume code Match the suspend/resume code ordering in e100/e1000e more closely. For example the configuration space should be saved on suspend even for devices that are not up. Signed-off-by: Tobias Diedrich Signed-off-by: Jeff Garzik commit 1a1ca86158eee303af5270338695f90bc7ae02b3 Author: Tobias Diedrich Date: Sun May 18 15:03:44 2008 +0200 [netdrvr] forcedeth: save/restore device configuration space The memory mapped device configuration space is lost during hibernate. Save and restore it (fixes 'swapped mac' problem). Signed-off-by: TTobias Diedrich Signed-off-by: Jeff Garzik commit f735a2a1a4f2a0f5cd823ce323e82675990469e2 Author: Tobias Diedrich Date: Sun May 18 15:02:37 2008 +0200 [netdrvr] forcedeth: setup wake-on-lan before shutting down When hibernating in 'shutdown' mode, after saving the image the suspend hook is not called again. However, if the device is in promiscous mode, wake-on-lan will not work. This adds a shutdown hook to setup wake-on-lan before the final shutdown. Signed-off-by: Tobias Diedrich Signed-off-by: Jeff Garzik commit 2914f3efa7ef80f12ff798cb1aa46af57838f912 Author: Daniel Walker Date: Thu May 22 00:00:03 2008 -0700 ps3: gelic: updown_lock semaphore to mutex Signed-off-by: Daniel Walker Signed-off-by: Jeff Garzik commit 5a2d9af2769c0b4c6ab6d88d31fa3b9a4a432b09 Author: Daniel Walker Date: Thu May 22 00:00:02 2008 -0700 ps3: gelic: assoc_stat_lock semaphore to mutex Signed-off-by: Daniel Walker Signed-off-by: Jeff Garzik commit 3700b62be8c97bec3eb10198d72edb745652cb70 Author: Daniel Walker Date: Thu May 22 00:00:01 2008 -0700 ps3: gelic: scan_lock semaphore to mutex Signed-off-by: Daniel Walker Signed-off-by: Jeff Garzik commit d8b35fac8c7e1b44d873c1afcc5f88bc5ef4b361 Author: Laurent Pinchart Date: Mon May 26 11:53:45 2008 +0200 fs_enet: MDIO on GPIO support Port the fs_enet driver to support the MDIO on GPIO driver for PHY access in addition to the mii-bitbang driver. Signed-off-by: Laurent Pinchart Signed-off-by: Jeff Garzik commit a5edeccb1a8432ae5d9fb9bccea5a4b64c565017 Author: Laurent Pinchart Date: Mon May 26 11:53:21 2008 +0200 net: OpenFirmware GPIO based MDIO bitbang driver This patch adds an MDIO bitbang driver that uses the GPIO library and its OF bindings to access the bus I/Os. Signed-off-by: Laurent Pinchart Signed-off-by: Jeff Garzik commit 62c78329581e76347e1078b8ea996b603be3efec Author: Ben Hutchings Date: Fri May 30 22:27:46 2008 +0100 sfc: Reduce I2C udelay to 5 resulting in a clock frequency of 100 kHz Signed-off-by: Ben Hutchings Signed-off-by: Jeff Garzik commit 37b5a60335305e46be93c2eb904c8b5be7aba5f6 Author: Ben Hutchings Date: Fri May 30 22:27:04 2008 +0100 sfc: Use kernel I2C system and i2c-algo-bit driver Remove our own implementation of I2C bit-banging. Signed-off-by: Ben Hutchings Signed-off-by: Jeff Garzik commit 9e833be3a13aa64e1f3dc50ce0ad95278212511d Author: Randy Dunlap Date: Fri May 30 10:29:19 2008 -0700 cxgb3: fix build error when INET=n cxgb3 uses lro_* functions and selects INET_LRO, but this doesn't help unless INET is already enabled, so make the driver depend on INET also. sge.c:(.text+0x9f09a): undefined reference to `lro_flush_all' sge.c:(.text+0x9f62f): undefined reference to `lro_receive_skb' sge.c:(.text+0x9f8a3): undefined reference to `lro_receive_frags' sge.c:(.text+0x9fbe0): undefined reference to `lro_vlan_hwaccel_receive_skb' sge.c:(.text+0x9ffcd): undefined reference to `lro_vlan_hwaccel_receive_frags' Signed-off-by: Randy Dunlap Signed-off-by: Jeff Garzik commit dfc2c0a6db926749bd49101503644bf915f70e45 Author: Stephen Hemminger Date: Fri May 30 09:49:58 2008 -0700 tlan: wrap source lines Make driver more readable on standard 80 col windows. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit a3ccc78968f00b6589653c1cccadb7940594935a Author: Stephen Hemminger Date: Fri May 30 09:49:57 2008 -0700 tlan: proper shared IRQ support Handle shared IRQ correctly. If IRQ is shared, it typically will show up as an IRQ with an empty status field. So check in driver and handle it without crapping out with invalid interrupt message. Compile tested only. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit 9ded65a1d79a2ca9aa44ee0989fd7924304c31cc Author: Stephen Hemminger Date: Fri May 30 09:49:56 2008 -0700 tlan: manage rx allocation failure better Rx allocation failure at runtime is non-fatal. For normal Rx frame, it just reuses the buffer, and during setup it just continues with a smaller receive buffer pool. Compile tested only. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit 93e16847c9db0093065c98063cfc639cdfccf19a Author: Stephen Hemminger Date: Fri May 30 09:49:55 2008 -0700 tlan: 64bit conversion Make this driver compile cleanly on 64 bit platforms. Compile tested only. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit 92cee9f6804786da6b63255edce7983bebf75655 Author: Stephen Hemminger Date: Fri May 30 09:49:54 2008 -0700 tlan: remove unused devName field Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit f8f31544bf12e0934acb197889215bdc41762912 Author: Stephen Hemminger Date: Fri May 30 09:49:53 2008 -0700 tlan: use netdevice stats Use new netdevice common stats area. Compile tested only. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit 41873e9aff0632d80c74380d58a89e8d420151bd Author: Stephen Hemminger Date: Fri May 30 09:49:52 2008 -0700 tlan: get rid of padding buffer Use skb_padto to pad frames, this avoid allocation of separate buffer just for dma of the extra bytes. Compile tested only. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit 981813d8e0a16946f511f4eda17bb4ee4fa2769c Author: Brice Goglin Date: Fri May 9 02:22:16 2008 +0200 myri10ge: add Direct Cache Access support Add I/O AT DCA (Direct Cache Access) support. Signed-off-by: Brice Goglin Signed-off-by: Andrew Gallatin Signed-off-by: Jeff Garzik commit 0dcffac1a329be69bab0ac604bf7283737108e68 Author: Brice Goglin Date: Fri May 9 02:21:49 2008 +0200 myri10ge: add multislices support Add multi-slice/MSI-X support. By default, a single slice (and the normal firmware) are used. To enable msi-x, multi-slice mode, one must load the driver with myri10ge_max_slices set to either -1, or something larger than 1. Signed-off-by: Brice Goglin Signed-off-by: Andrew Gallatin Signed-off-by: Jeff Garzik commit 779297320d192655c2f95a870c12e9b307612429 Author: Brice Goglin Date: Fri May 9 02:21:10 2008 +0200 myri10ge: add routines for multislices Add several routines that multislices support will use. Signed-off-by: Brice Goglin Signed-off-by: Andrew Gallatin Signed-off-by: Jeff Garzik commit 23deb06821442506615f34bd92ccd6a2422629d7 Author: H. Peter Anvin Date: Fri May 30 17:19:03 2008 -0700 x86: move x86-specific documentation into Documentation/x86 The current organization of the x86 documentation makes it appear as if the "i386" documentation doesn't apply to x86-64, which is does. Thus, move that documentation into Documentation/x86, and move the x86-64-specific stuff into Documentation/x86/x86_64 with the eventual goal to move stuff that isn't actually 64-bit specific back into Documentation/x86. Signed-off-by: H. Peter Anvin commit 4039feb5bae72a5fed9ba6bc1a9cfd8dfe0a8613 Author: H. Peter Anvin Date: Fri May 30 17:16:20 2008 -0700 x86: update Documentation/i386/boot.txt Document QUIET_FLAG, correct the definition of several fields, make it clear this applies to the entire x86 architecture, not just i386. Signed-off-by: H. Peter Anvin commit 3b6b9293d0f8e1b11630102013ca2a1dcef17d44 Author: Kristian Høgsberg Date: Thu May 29 18:31:15 2008 -0400 x86: Honor 'quiet' command line option in real mode boot decompressor. This patch lets the early real mode code look for the 'quiet' option on the kernel command line and pass a loadflag to the decompressor. When this flag is set, we suppress the "Decompressing Linux... Parsing ELF... done." messages. Signed-off-by: Kristian Høgsberg Signed-off-by: H. Peter Anvin commit 23968f71b26ece45ed52895d41b0208b90a516e7 Author: Kristian Høgsberg Date: Thu May 29 18:31:14 2008 -0400 x86: Use structs instead of hardcoded offsets in x86 boot decompressor. Replace hardcoded offsets embedded in macros in arch/x86/boot/compressed with proper structure references. Signed-off-by: Kristian Høgsberg Signed-off-by: H. Peter Anvin commit 1c47cd638e8302bc38be1f6d81067950e038ebd3 Author: H. Peter Anvin Date: Fri May 30 15:42:45 2008 -0700 x86: fix overlong line in arch/x86/kernel/cpu/amd_64.c Clean up an overlong line in arch/x86/kernel/cpu/amd_64.c. Signed-off-by: H. Peter Anvin commit 30a713180b3d08fdec5ca572e5a1cd35253c5d8e Author: Dave Jones Date: Thu May 22 18:57:25 2008 -0400 x86: Move the 64-bit Centaur specific parts out of setup_64.c Create a separate centaur_64.c file in the cpu/ dir for the useful parts to live in. Signed-off-by: Dave Jones Signed-off-by: H. Peter Anvin commit 7e2191127eb414d7d5a11df6552ab6e3845d17a1 Author: Dave Jones Date: Thu May 22 18:55:06 2008 -0400 x86: Remove workaround for prescott (32bit P4) from 64-bit code. Signed-off-by: Dave Jones Signed-off-by: H. Peter Anvin commit a82fbe31cb387bb246e2d3b3c177f551bb991135 Author: Dave Jones Date: Thu May 22 18:54:32 2008 -0400 x86: Move the 64-bit Intel specific parts out of setup_64.c Create a separate intel_64.c file in the cpu/ dir for the useful parts to live in. Signed-off-by: Dave Jones Signed-off-by: H. Peter Anvin commit 4d285878564bb46cf64e54be18eeffe33ca583a0 Author: Dave Jones Date: Thu May 22 18:48:32 2008 -0400 x86: Move the AMD64 specific parts out of setup_64.c Create a separate amd_64.c file in the cpu/ dir for the useful parts to live in. Signed-off-by: Dave Jones Signed-off-by: H. Peter Anvin commit d364319b989967b74e57fef5c8017fd56a16c392 Author: Thomas Gleixner Date: Fri May 2 23:42:01 2008 +0200 x86: move mmconfig declarations to header arch/x86/kernel/mmconf-fam10h_64.c is missing the prototypes, which are decalred in arch/x86/kernel/setup_64.c. Move the prototypes and the inline stubs to the appropriate header file. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 6d43c5eac607e593e5398bcd7533d60aa18a9ca1 Author: Artem Bityutskiy Date: Fri May 30 19:09:06 2008 +0300 UBIFS: dump creat_sqnum as well Signed-off-by: Artem Bityutskiy commit a0b3e7aedd2e00ea6a822b670f964e0bfd372deb Author: Artem Bityutskiy Date: Fri May 30 18:58:21 2008 +0300 UBIFS: remove incorrect cond_resched Signed-off-by: Artem Bityutskiy commit 6bba98e2b49ba62a1f99e04ad219870572e98bf2 Author: Artem Bityutskiy Date: Fri May 30 18:58:12 2008 +0300 UBIFS: add dbg_dump_index Signed-off-by: Artem Bityutskiy commit 7e68e00cc65d7d5ade1368e2a23acc94ddd8efd7 Author: Adrian Hunter Date: Fri May 30 14:48:56 2008 +0300 UBIFS: tweak scan_for_dirty and asserts Signed-off-by: Adrian Hunter commit 74dacd713769e9142a16a6bf7dc077326aca24a3 Author: Adrian Hunter Date: Fri May 30 12:53:41 2008 +0300 UBIFS: define change_lp() 'no-change' value Signed-off-by: Adrian Hunter commit 088f81af2693d33a5b95de4f1d29ec8be4f92a58 Author: Adrian Hunter Date: Fri May 30 11:25:06 2008 +0300 UBIFS: always commit after recovery Signed-off-by: Adrian Hunter commit e9525ffb864d8f752eb77d8f3be35ca6f33c90c9 Author: Adrian Hunter Date: Fri May 30 10:52:33 2008 +0300 UBIFS: add a comment Signed-off-by: Adrian Hunter commit 44205eae882b5921939b89c63c4ef6b46e05c5f7 Author: Adrian Hunter Date: Fri May 30 10:27:02 2008 +0300 UBIFS: kill orphans in ro mount also Signed-off-by: Adrian Hunter commit d3b3314a4a650e2cb71433b0f76693002fff7667 Author: Artem Bityutskiy Date: Fri May 30 12:01:07 2008 +0300 UBIFS: ubifs-v0.7 Signed-off-by: Artem Bityutskiy commit 7fa15e81deab0109c66d176f9a92d685a0eff6ee Author: Artem Bityutskiy Date: Fri May 30 10:34:54 2008 +0300 UBIFS: amend dbg_dump_node Signed-off-by: Artem Bityutskiy commit aa18c1d37266874a2890692813a117b941e66224 Author: Artem Bityutskiy Date: Thu May 29 12:24:15 2008 +0300 UBIFS: minor debugging print fix Signed-off-by: Artem Bityutskiy commit 5a4c540ff755ca6571deadc9cd11bcb898645c33 Author: Artem Bityutskiy Date: Thu May 29 11:36:09 2008 +0300 UBIFS: fix false assertion allarm in budgeting Signed-off-by: Artem Bityutskiy commit 4f986b2af018178c802daa8c8665774c47374697 Author: Artem Bityutskiy Date: Thu May 29 11:38:22 2008 +0300 UBIFS: print dead direntry name Signed-off-by: Artem Bityutskiy commit 843c15e54c994ee78d82f2f6e227cf62b00df06f Author: Artem Bityutskiy Date: Wed May 28 16:21:18 2008 +0300 UBIFS: print format version Signed-off-by: Artem Bityutskiy commit 1ff03166c3aeab4e8e1c71be77d08c934985d534 Author: Artem Bityutskiy Date: Wed May 28 16:17:15 2008 +0300 UBIFS: do not use -1 offsets Because telldir() treats -1 as an error. Signed-off-by: Artem Bityutskiy commit 53ebcc8484904c548a2f7858de3b92e18b5eb2c0 Author: Artem Bityutskiy Date: Wed May 28 15:55:27 2008 +0300 UBIFS: temporary hack for backward compatibility Signed-off-by: Artem Bityutskiy commit 51d3c922435333efa704286bac17a50861877a20 Author: Artem Bityutskiy Date: Wed May 28 15:35:10 2008 +0300 UBIFS: fix bad hash mask bug We had incorrect key mask for hash and block number. This fix breaks binary compatibility. Signed-off-by: Artem Bityutskiy commit a5fb0252b73aa1fa78286f769d9aeddb0c5cafda Author: Artem Bityutskiy Date: Wed May 28 15:31:10 2008 +0300 UBIFS: minor print tweaks Signed-off-by: Artem Bityutskiy commit f49f40acb11e4279b715a11e4a258add4f8ee5f7 Author: Artem Bityutskiy Date: Wed May 28 15:21:08 2008 +0300 UBIFS: get rid of cpu_to_le64(0) Just using 0 is OK. Signed-off-by: Artem Bityutskiy commit d674079a5c526828fa94b53d3dc70a445c7d95cc Author: Artem Bityutskiy Date: Tue May 27 16:13:56 2008 +0300 UBIFS: rename fmt_vers to fmt_version Signed-off-by: Artem Bityutskiy commit c9546bdeae94fea58d523f1d48d168a3c9679e1a Author: Adrian Hunter Date: Tue May 27 09:42:04 2008 +0300 UBIFS: tweak asserts and gc_lnum fix Signed-off-by: Adrian Hunter commit ba3a5974239293d921235e6fa82b09b670e674ef Author: Ingo Molnar Date: Fri May 30 14:55:47 2008 +0200 - fix typo in include/asm-x86/nmi.h commit 72e28289d85f6d0a5064c33e6ddf9853c1bd3ce6 Author: Harvey Harrison Date: Thu May 29 18:27:51 2008 -0700 [GFS2] trivial sparse lock annotations Annotate the &sdp->sd_log_lock. Signed-off-by: Harvey Harrison Signed-off-by: Steven Whitehouse commit 9de1400274ccdcaf9e01d5928ff8328fa2085d15 Author: Li Yang Date: Thu May 29 23:25:45 2008 -0700 fsldma: fix incorrect exit path for initialization Signed-off-by: Li Yang Acked-by: Zhang Wei Signed-off-by: Dan Williams commit e6d7e71f49bfecb2b2f7016f38b358f6183a6c29 Author: Brice Goglin Date: Sat May 24 00:22:18 2008 -0700 net_dma: remove duplicate assignment in dma_skb_copy_datagram_iovec No need to compute copy twice in the frags loop in dma_skb_copy_datagram_iovec(). Signed-off-by: Brice Goglin Acked-by: Shannon Nelson Signed-off-by: Maciej Sosnowski Signed-off-by: Dan Williams commit c2db66b0e9e9b4dd96124f4b673df1e37563a35b Author: Jonathan Corbet Date: Thu May 29 17:14:05 2008 -0600 Make FAT users happier by not deadlocking The FAT BKL removal patch can cause deadlocks. It turns out that the new lock_super() calls are unneeded, remove them (as directed by Linus). Reported-by: "Tony Luck" Signed-off-by: Jonathan Corbet commit c3a34f4390396a4bede3f8b7bcc5153f50b974bb Author: Jiri Kosina Date: Wed May 28 01:10:52 2008 -0400 Input: i8042 - add Intel D845PESV to nopnp list This patch introduces i8042_dmi_nopnp_table to make it possible to perform DMI matches for systems that need 'i8042.nopnp' to work correctly, and introduces such an entry for Intel D845PESV -- this system doesn't detect PS2 mouse reliably without this option, as reported by Robert Lewis. [dtor@mail.ru - make it compile if CONFIG_PNP is off - reported by Randy Dunlap] Signed-off-by: Jiri Kosina Signed-off-by: Dmitry Torokhov commit 0723abd0b2c9d4603b8c51d6615800c2439a328e Author: Josh Boyer Date: Tue May 20 07:59:23 2008 -0500 [POWERPC] 4xx: Fix compiler warning on DCR_NATIVE only builds With the recent DCR code rework, we get a compiler warning about find_dcr_parent being defined but not used. This fixes it by only defining the function if CONFIG_PPC_DCR_MMIO is set. Signed-off-by: Josh Boyer commit 4ebef31fa6e013e5cd3d4522e6018eb6d55046be Author: Sean MacLennan Date: Tue May 20 08:28:52 2008 -0500 [POWERPC] PIKA Warp: Update platform code to support Rev B boards * Switched from 64M NOR/64M NAND to 4M NOR/256M NAND. * Full DTM support including critical temperature. * Added POST information. * Removed LED function, moved to new LED driver. * Moved ad7414 to new style I2C initialization. Signed-off-by: Sean MacLennan Signed-off-by: Josh Boyer commit 0393cb615f369b6ea0e636dd4d1e25675657dc75 Author: Sean MacLennan Date: Tue Apr 29 13:27:46 2008 +1000 [POWERPC] PIKA Warp: Update DTS to support Rev B boards * Switched from 64M NOR/64M NAND to 4M NOR/256M NAND. * Added led entries. * Added fpga-sd entry. * Added ad7414 entry. Signed-off-by: Sean MacLennan Acked-by: Grant Likely Signed-off-by: Josh Boyer commit 6f031101f5c6bb44762911909da575127f676eb8 Author: Josh Boyer Date: Fri May 16 00:41:23 2008 +1000 [POWERPC] 4xx: Fix PCI mem in rainier DTS This fixes the PCI node in the Rainier to match the spec from AMCC. A similar fix was done for 440EPx, which shares the same values as 440GRx. Signed-off-by: Josh Boyer commit 71f349799b34c8b6ce3df42126b4de6cfa16456d Author: David Gibson Date: Thu May 15 16:46:39 2008 +1000 [POWERPC] Convert remaining dts-v0 files to v1 At the moment we have a mixture of left-over version 0 and new-format version 1 files in arch/powerpc/boot/dts. This is potentially confusing to people new to the dts format attempting to figure it out. So, this patch converts all the as-yet unconverted dts v0 files and converts them to v1. They're mechanically-converted, and not hand tweaked so in some cases they're not 100% in keeping with usual v1 style, but the convertor program does have some heuristics so the discrepancies aren't too bad. I have checked that this patch produces no changes to the resulting dtb binaries. Signed-off-by: David Gibson Acked-by: Josh Boyer Acked-by: Geoff Levand Signed-off-by: Josh Boyer commit b786af117b360843349cf66165c4efa0217ca2a7 Author: Stephen Neuendorffer Date: Wed May 7 04:29:17 2008 +1000 [POWERPC] Refactor DCR code Previously, DCR support was configured at compile time to either use MMIO or native dcr instructions. Although this works for most platforms, it fails on FPGA platforms: 1) Systems may include more than one DCR bus. 2) Systems may be native DCR capable and still use memory mapped DCR interface. This patch provides runtime support based on the device trees for the case where CONFIG_PPC_DCR_MMIO and CONFIG_PPC_DCR_NATIVE are both selected. Previously, this was a poorly defined configuration, which happened to provide NATIVE support. The runtime selection is made based on the dcr-controller having a 'dcr-access-method' attribute in the device tree. If only one of the above options is selected, then the code uses #defines to select only the used code in order to avoid introducing overhead in existing usage. Signed-off-by: Stephen Neuendorffer Signed-off-by: Josh Boyer commit d939e935ecd5d57448c33c4c04dd08e92a780131 Author: Avi Kivity Date: Thu May 29 14:56:28 2008 +0300 KVM: MMU: Avoid page prefetch on SVM SVM cannot benefit from page prefetching since guest page fault bypass cannot by made to work there. Avoid accessing the guest page table in this case. Signed-off-by: Avi Kivity commit 320041e6882134011c67d9d689408f0108ab4e42 Author: Avi Kivity Date: Thu May 29 14:55:03 2008 +0300 KVM: MMU: Move nonpaging_prefetch_page() In preparation for next patch. No code change. Signed-off-by: Avi Kivity commit 877a5cef3d49f6dcf29f9f036ec4928f7d3b8e5b Author: Avi Kivity Date: Thu May 29 14:38:38 2008 +0300 KVM: x86 emulator: implement 'push imm' (opcode 0x68) Encountered in FC6 boot sequence, now that we don't force ss.rpl = 0 during the protected mode transition. Not really necessary, but nice to have. Signed-off-by: Avi Kivity commit fdc3c320b3284c211b899e50b8f7863926499765 Author: Avi Kivity Date: Thu May 29 14:26:29 2008 +0300 KVM: x86 emulator: simplify push imm8 emulation Instead of fetching the data explicitly, use SrcImmByte. Signed-off-by: Avi Kivity commit a9522ec88cfba457884dd086571f567aa9513462 Author: Avi Kivity Date: Thu May 29 14:20:16 2008 +0300 KVM: MMU: Optimize prefetch_page() Instead of reading each pte individually, read 256 bytes worth of ptes and batch process them. Signed-off-by: Avi Kivity commit b79eeeb9e48457579cb742cd02e162fcd673c4a3 Author: Ilpo Järvinen Date: Thu May 29 03:25:23 2008 -0700 tcp: Reorganize tcp_sock to fill 64-bit holes & improve locality I tried to group recovery related fields nearby (non-CA_Open related variables, to be more accurate) so that one to three cachelines would not be necessary in CA_Open. These are now contiguously deployed: struct sk_buff_head out_of_order_queue; /* 1968 80 */ /* --- cacheline 32 boundary (2048 bytes) --- */ struct tcp_sack_block duplicate_sack[1]; /* 2048 8 */ struct tcp_sack_block selective_acks[4]; /* 2056 32 */ struct tcp_sack_block recv_sack_cache[4]; /* 2088 32 */ /* --- cacheline 33 boundary (2112 bytes) was 8 bytes ago --- */ struct sk_buff * highest_sack; /* 2120 8 */ int lost_cnt_hint; /* 2128 4 */ int retransmit_cnt_hint; /* 2132 4 */ u32 lost_retrans_low; /* 2136 4 */ u8 reordering; /* 2140 1 */ u8 keepalive_probes; /* 2141 1 */ /* XXX 2 bytes hole, try to pack */ u32 prior_ssthresh; /* 2144 4 */ u32 high_seq; /* 2148 4 */ u32 retrans_stamp; /* 2152 4 */ u32 undo_marker; /* 2156 4 */ int undo_retrans; /* 2160 4 */ u32 total_retrans; /* 2164 4 */ ...and they're then followed by URG slowpath & keepalive related variables. Head of the out_of_order_queue always needed for empty checks, if that's empty (and TCP is in CA_Open), following ~200 bytes (in 64-bit) shouldn't be necessary for anything. If only OFO queue exists but TCP is in CA_Open, selective_acks (and possibly duplicate_sack) are necessary besides the out_of_order_queue but the rest of the block again shouldn't be (ie., the other direction had losses). As the cacheline boundaries depend on many factors in the preceeding stuff, trying to align considering them doesn't make too much sense. Commented one ordering hazard. There are number of low utilized u8/16s that could be combined get 2 bytes less in total so that the hole could be made to vanish (includes at least ecn_flags, urg_data, urg_mode, frto_counter, nonagle). Signed-off-by: Ilpo Järvinen Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit 75a9cd524c6bb441c61c85bae7020ce5e8b2e807 Author: David S. Miller Date: Thu May 29 01:43:48 2008 -0700 wanrouter: Fix ioctl handler declaration. Signed-off-by: David S. Miller commit b1b6b71e2bd6804c88e4d3ad880b7b4aec5c71a5 Author: Dominik Brodowski Date: Thu May 29 10:42:16 2008 +0200 pcmcia: remove version.h pcmcia/version.h is empty and its existence is not even needed by deprecated userspace tools. commit bb9122b829e960f4e242c04c2b38c12efb37757b Author: Matt Carlson Date: Sun May 25 23:51:01 2008 -0700 tg3: Update version to 3.93 This patch increments the version to 3.93. Signed-off-by: Matt Carlson Signed-off-by: Michael Chan Signed-off-by: Benjamin Li Signed-off-by: David S. Miller commit a9daf36746b1fb5c2db8d164ca70c30c63a0d7b2 Author: Matt Carlson Date: Sun May 25 23:49:44 2008 -0700 tg3: Add shmem options. This patch adds some options obtained through shared memory. Signed-off-by: Matt Carlson Signed-off-by: Michael Chan Signed-off-by: Benjamin Li Signed-off-by: David S. Miller commit 57e6983cbde91b4569b4014b933f3a16e12b99fd Author: Matt Carlson Date: Sun May 25 23:48:31 2008 -0700 tg3: Add 5785 ASIC revision This patch added the 5785 device ID and ASIC revision to the code. Signed-off-by: Matt Carlson Signed-off-by: Michael Chan Signed-off-by: Benjamin Li Signed-off-by: David S. Miller commit b02fd9e3ac118037549baeb86fbe0718561db17f Author: Matt Carlson Date: Sun May 25 23:47:41 2008 -0700 tg3: Add libphy support. This patch introduces the libphy support. Signed-off-by: Matt Carlson Signed-off-by: Michael Chan Signed-off-by: Benjamin Li Signed-off-by: David S. Miller commit 158d7abdae85e9ac43d99780c372d79c119f7626 Author: Matt Carlson Date: Thu May 29 01:37:54 2008 -0700 tg3: Add mdio bus registration This patch introduces code to register and unregister the tg3 mdio bus with the system. Signed-off-by: Matt Carlson Signed-off-by: Michael Chan Signed-off-by: Benjamin Li Signed-off-by: David S. Miller commit dd47700310ff929b439223105364c9ee3db81511 Author: Matt Carlson Date: Sun May 25 23:45:58 2008 -0700 tg3: Add TG3_FLG3_USE_PHYLIB This patch introduces the TG3_FLG3_USE_PHYLIB flag and applies it to some select places. This work makes later patches a little easier to read. Signed-off-by: Matt Carlson Signed-off-by: Michael Chan Signed-off-by: Benjamin Li Signed-off-by: David S. Miller commit f51f3562d1c7df6c5a4ffee2185d713e98e76aa0 Author: Matt Carlson Date: Sun May 25 23:45:08 2008 -0700 tg3: Code cleanup. This patch applies cleanups that would otherwise clutter later patches. Signed-off-by: Matt Carlson Signed-off-by: Michael Chan Signed-off-by: Benjamin Li Signed-off-by: David S. Miller commit 95e2869adc13041baf3beecb97ab8e38c01525ae Author: Matt Carlson Date: Sun May 25 23:44:14 2008 -0700 tg3: Pure code movement. This patch moves some functions towards the top of the file to avoid unnecessary function prototypes. Signed-off-by: Matt Carlson Signed-off-by: Michael Chan Signed-off-by: Benjamin Li Signed-off-by: David S. Miller commit 0261ac5f2f43a1906cfacfb19d62ed643d162cbe Author: Ingo Molnar Date: Thu May 29 09:31:50 2008 +0200 xen: fix "xen: implement save/restore" -tip testing found the following build breakage: drivers/built-in.o: In function `xen_suspend': manage.c:(.text+0x4390f): undefined reference to `xen_console_resume' with this config: http://redhat.com/~mingo/misc/config-Thu_May_29_09_23_16_CEST_2008.bad i have bisected it down to: | commit 0e91398f2a5d4eb6b07df8115917d0d1cf3e9b58 | Author: Jeremy Fitzhardinge | Date: Mon May 26 23:31:27 2008 +0100 | | xen: implement save/restore the problem is that drivers/xen/manage.c is built unconditionally if CONFIG_XEN is enabled and makes use of xen_suspend(), but drivers/char/hvc_xen.c, where the xen_suspend() method is implemented, is only build if CONFIG_HVC_XEN=y as well. i have solved this by providing a NOP implementation for xen_suspend() in the !CONFIG_HVC_XEN case. Signed-off-by: Ingo Molnar commit b8cc1d5ceef1ca36f0580649853e20d641fbb824 Author: Tom Tucker Date: Wed May 28 15:14:02 2008 -0500 svcrdma: Change WR context get/put to use the kmem cache Change the WR context pool to be shared across mount points. This reduces the RDMA transport memory footprint significantly since idle mounts don't consume WR context memory. Signed-off-by: Tom Tucker commit a33ff482957457c3f8d296dca7e0525127d8d1b4 Author: Tom Tucker Date: Wed May 28 14:05:54 2008 -0500 svcrdma: Create a kmem cache for the WR contexts Create a kmem cache to hold WR contexts. Next we will convert the WR context get and put services to use this kmem cache. Signed-off-by: Tom Tucker commit e188a5568b65c0d6e9be05d74bba1f80cc4f974b Author: Tom Tucker Date: Wed May 28 13:57:05 2008 -0500 svcrdma: Add flush_scheduled_work to module exit function Make certain all transports pending free are flushed from the wq before unloading the module. Signed-off-by: Tom Tucker commit 3ca88722eee957891eebe64358ab12d582c92821 Author: Tom Tucker Date: Mon May 19 19:00:24 2008 -0500 svcrdma: Limit ORD based on client's advertised IRD When adapters have differing IRD limits, the RDMA transport will fail to connect properly. The RDMA transport should use the client's advertised inbound read limit when computing its outbound read limit. For iWARP transports, there is currently no standard for exchanging IRD/ORD during connection establishment so the 'responder_resources' field in the connect event is the local device's limit. The RDMA transport can be configured to use a smaller ORD by writing the desired number to the /proc/sys/sunrpc/svc_rdma/max_outbound_read_requests file. Signed-off-by: Tom Tucker commit 0b8483752b8773525a0131a1cf426bd41ad2ed08 Author: Tom Tucker Date: Mon May 19 10:17:09 2008 -0500 svcrdma: Remove unused wait q from svcrdma_xprt structure The sc_read_wait queue head is no longer used. Remove it. Signed-off-by: Tom Tucker commit 6261195bae59bc900e219a9754773713664977c0 Author: Tom Tucker Date: Wed May 28 13:20:24 2008 -0500 svcrdma: Remove unneeded spin locks from __svc_rdma_free At the time __svc_rdma_free is called, we are guaranteed that all references to this transport are gone. There is, therefore, no need to protect the resource lists with a spin lock. Signed-off-by: Tom Tucker commit 35c6f3ac2f9c1d22dee773a8523eaee6f45ae9a8 Author: Tom Tucker Date: Wed May 28 13:17:44 2008 -0500 svcrdma: Add dma map count and WARN_ON Add a dma map count in order to verify that all DMA mapping resources have been freed when the transport is closed. Signed-off-by: Tom Tucker commit e1927952f5885ee9ed9769d2666afbdba11c13bf Author: Tom Tucker Date: Wed May 28 12:08:48 2008 -0500 svcrdma: Move the DMA unmap logic to the CQ handler Separate DMA unmap from context destruction and perform DMA unmapping in the SQ/RQ CQ reap functions. This is necessary to support software based RDMA implementations that actually copy the data in their ib_dma_unmap callback functions and architectures that don't have cache coherent I/O busses. Signed-off-by: Tom Tucker commit 8fddee05a6cf74a82992bb711b3ffeca1ab396d6 Author: Tom Tucker Date: Tue May 27 17:03:14 2008 -0500 svcrdma: Use reply and chunk map for RDMA_READ processing Modify the RDMA_READ processing to use the reply and chunk list mapping data types. Also add a special purpose 'hdr_count' field in in the context to hold the header page count instead of overloading the SGE length field and corrupting the DMA map length. Signed-off-by: Tom Tucker commit 6b6f9f6773685ba5f5893f3c457e50759aa87cb9 Author: Tom Tucker Date: Wed May 28 10:54:41 2008 -0500 svcrdma: Use RPC reply map for RDMA_WRITE processing Use the new svc_rdma_req_map data type for mapping the client side memory to the server side memory. Move the DMA mapping to the context pointed to by each WR individually so that it is unmapped after the WR completes. Signed-off-by: Tom Tucker commit 0cd4458745f89330343abc45580cbbbcb4430da7 Author: Tom Tucker Date: Wed May 28 13:54:04 2008 -0500 svcrdma: Add a type for keeping NFS RPC mapping Create a new data structure to hold the remote client address space to local server address space mapping. Signed-off-by: Tom Tucker commit 756bc361a065b65df9977c2632472f587659a6f7 Author: Jan Kara Date: Wed May 28 23:39:19 2008 +0200 udf: Silence warnings about non-uptodate buffers When underlying block device becomes unavailable (e.g. someone pulling an USB stick from under us), kernel produces warning about non-uptodate buffer (superblock) being marked dirty. Silence these warnings by making buffer uptodate before marking it dirty. Signed-off-by: Jan Kara commit d625ad4713bce0af0edead557387129dc35edf19 Author: Randy Dunlap Date: Wed May 28 14:41:00 2008 -0700 ocfs2: fix printk format warnings with OCFS2_FS_STATS=n Fix printk format warnings when OCFS2_FS_STATS=n: linux-next-20080528/fs/ocfs2/dlmglue.c: In function 'ocfs2_dlm_seq_show': linux-next-20080528/fs/ocfs2/dlmglue.c:2623: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'int' linux-next-20080528/fs/ocfs2/dlmglue.c:2623: warning: format '%llu' expects type 'long long unsigned int', but argument 4 has type 'int' linux-next-20080528/fs/ocfs2/dlmglue.c:2623: warning: format '%llu' expects type 'long long unsigned int', but argument 7 has type 'int' linux-next-20080528/fs/ocfs2/dlmglue.c:2623: warning: format '%llu' expects type 'long long unsigned int', but argument 8 has type 'int' Signed-off-by: Randy Dunlap Signed-off-by: Mark Fasheh commit deb097fa72750e4a5d935c4c20cabd27bdb498cf Author: Christoph Hellwig Date: Sun Apr 22 13:55:36 2007 +0100 pcmcia: cs: kill thread_wait There is not reason to have a waitqueue if there it's always the same thread that is waiting for it. Just use wake_up_process instead. Signed-off-by: Christoph Hellwig Signed-off-by: Dominik Brodowski commit 0b9ea667974a84910c15a8bc475dd03ce1fa40a0 Author: Leonardo Potenza Date: Tue Apr 1 23:47:09 2008 +0200 drivers/pcmcia/i82365.c: check request_irq return value Add a check for the request_irq() return value. Signed-off-by: Leonardo Potenza Signed-off-by: Dominik Brodowski commit ba838c16dc8f10a167c8f8ffcad6d164c7758118 Author: Sergei Shtylyov Date: Mon Apr 14 17:27:30 2008 +0400 Alchemy: fix PCMCIA warnings Fix the following warnings: drivers/pcmcia/au1000_generic.c: In function `au1x00_pcmcia_socket_probe': drivers/pcmcia/au1000_generic.c:405: warning: integer constant is too large for "long" type drivers/pcmcia/au1000_generic.c:413: warning: integer constant is too large for "long" type by properly postfixing the socket constants. While at it, fix the lines over 80 characters long in the vicinity... Signed-off-by: Sergei Shtylyov drivers/pcmcia/au1000_generic.h | 26 +++++++++++++++----------- 1 files changed, 15 insertions(+), 11 deletions(-) Signed-off-by: Dominik Brodowski commit 096eee0937dab7b3601cacc7a7252be5cd08bf38 Author: Adrian Bunk Date: Tue May 20 01:02:40 2008 +0300 pcmcia: remove CVS keywords This patch removes CVS keywords that weren't updated for a long time from comments. Signed-off-by: Adrian Bunk Signed-off-by: Dominik Brodowski commit cfd5bf2d175984ed6754543f1d60de6e0a0df901 Author: Roel Kluin <12o3l@tiscali.nl> Date: Wed Jan 30 15:28:16 2008 +0100 pcmcia: yenta-cardbus: ENE_TEST_C9_PFENABLE duplicate *_F0 The test only makes sense if we check for _F0 and _F1. Signed-off-by: Roel Kluin <12o3l@tiscali.nl> Signed-off-by: Dominik Brodowski commit 21a523aea565ec85bdbe4b8d0da89cf2d77ee30c Author: Kristoffer Ericson Date: Wed Mar 21 18:18:03 2007 +0000 pcmcia: add another pata/ide ID Addition of Transcend 1GB 45x id so that it is properly detected. Signed-off-by: William Peters Signed-off-by: Kristoffer Ericson Signed-off-by: Dominik Brodowski commit 0036ed0ee460c16c203bfdd5e30905efa5953e17 Author: Magnus Damm Date: Wed Dec 13 15:40:18 2006 +0900 pcmcia: Update email address for m8xx driver author Update the m8xx driver's author email address. Signed-off-by: Magnus Damm Signed-off-by: Dominik Brodowski commit 3312d300c86475efd493fc41720321a4bbea53dc Author: Matt Reimer Date: Wed Dec 6 12:16:31 2006 -0800 pcmcia: add an pata/ide ID Add an id for: product info: "M-Systems", "CF300", "" manfid: 0x000a, 0x0000 function: 4 (fixed disk) Signed-off-by: Matt Reimer Signed-off-by: Dominik Brodowski commit 19ec673ced067316b9732bc6d1c4ff4052e5f795 Author: Cyrill Gorcunov Date: Wed May 28 23:00:47 2008 +0400 x86: nmi - fix incorrect NMI watchdog used by default The commit commit 4b82b277707a39b97271439c475f186f63ec4692 Author: Cyrill Gorcunov Date: Sat May 24 19:36:35 2008 +0400 set nmi_watchdog to NMI_IO_APIC as by default. This causes hangs on some machines with buggy watchdogs. Fix it - i.e. restore old behaviour. Thanks to Sitsofe Wheeler and Adrian Bunk for catching the problem and Maciej W. Rozycki for explanation what is going on there. Signed-off-by: Cyrill Gorcunov CC: Maciej W. Rozycki Signed-off-by: Ingo Molnar commit 0c9a1fecfa13dcf7814dd77d0a63b007f0114ab5 Author: Hugh Dickins Date: Wed May 28 19:36:07 2008 +0100 x86: fix bad pmd ffff810000207xxx(9090909090909090) OGAWA Hirofumi and Fede have reported rare pmd_ERROR messages: mm/memory.c:127: bad pmd ffff810000207xxx(9090909090909090). Initialization's cleanup_highmap was leaving alignment filler behind in the pmd for MODULES_VADDR: when vmalloc's guard page would occupy a new page table, it's not allocated, and then module unload's vfree hits the bad 9090 pmd entry left over. Signed-off-by: Hugh Dickins Signed-off-by: Ingo Molnar commit 0b4648f9ed497c60baff892a4e02181c51d0c889 Author: Kenji Kaneshige Date: Wed May 28 15:01:03 2008 +0900 shpchp: check firmware before taking control Fix the following problems of shpchp driver about getting hotplug control from firmware. - The shpchp driver must not control the hotplug controller if it fails to get control from the firmware. But current shpchp controls the hotplug controller regardless the result, because it doesn't check the return value of get_hp_hw_control_from_firmware(). - Current shpchp driver doesn't support _OSC. The pciehp driver already have the code for evaluating _OSC and OSHP and shpchp and pciehp can share it. So this patch move that code from pciehp to acpi_pcihp.c. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit 2891e74e409d0377a56e954bab69560af73113dc Author: Kenji Kaneshige Date: Wed May 28 14:59:44 2008 +0900 pciehp: block signals while waiting for command completion Since we need to wait for command completion for muximum 1sec, waiting command should not be interrupted by a signal. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit 7f30b0acd9ea95d15063302594a519f3082fde6a Author: Kenji Kaneshige Date: Wed May 28 14:57:30 2008 +0900 pciehp: evaluate _OSC/OSHP before controller init Current pciehp evaluates _OSC/OSHP method after some controller initialization is done. So if evaluating _OSC/OSHP is failed, we need to cleanup already initialized data structures or hardware. This clearly is not robust way. With this patch, _OSC/OSHP evaluation is done first. Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit dddf5301d1943da36debb94a4e3add5083a9d779 Author: Kenji Kaneshige Date: Wed May 28 14:56:00 2008 +0900 pciehp: remove redundant pci_dev initialization Remove the redundant initialization of pci_dev member of struct controller in pciehp_probe(). It is initialized in pcie_init(). Signed-off-by: Kenji Kaneshige Signed-off-by: Jesse Barnes commit 7d32ea3355242f7f320c469c68499e56265fc24f Author: Yinghai Lu Date: Thu May 22 14:35:11 2008 -0700 PCI/x86: early dump pci conf space v2 Allows us to dump PCI space before any kernel changes have been made. Signed-off-by: Yinghai Lu Signed-off-by: Jesse Barnes commit ef70fffdeb37a23b528bac3c48b72eac1d00ddc0 Author: Yinghai Lu Date: Thu May 22 14:35:21 2008 -0700 PCI/x86: write_pci_config_byte fix offset also add write_pci_config_16 Signed-off-by: Yinghai Lu Signed-off-by: Jesse Barnes commit 8d226439ef99b29fc41854f7c6fc63270bde6a00 Author: Rafael J. Wysocki Date: Wed May 21 01:40:43 2008 +0200 Implement new suspend and hibernation callbacks for platform busses Implement new suspend and hibernation callbacks for the platform bus type. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Greg KH Signed-off-by: Jesse Barnes commit ce6b6443eda1e42383512ef146fd40899306682d Author: Rafael J. Wysocki Date: Tue May 20 00:49:04 2008 +0200 PCI: implement new suspend/resume callbacks Implement new suspend and hibernation callbacks for the PCI bus type. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit 4ba09608f82f2273b731560f702f8bbb167f4c23 Author: Rafael J. Wysocki Date: Tue May 20 23:00:01 2008 +0200 Introduce new top level suspend and hibernation callbacks Introduce 'struct pm_ops' and 'struct pm_ext_ops' ('ext' meaning 'extended') representing suspend and hibernation operations for bus types, device classes, device types and device drivers. Modify the PM core to use 'struct pm_ops' and 'struct pm_ext_ops' objects, if defined, instead of the ->suspend(), ->resume(), ->suspend_late(), and ->resume_early() callbacks (the old callbacks will be considered as legacy and gradually phased out). The main purpose of doing this is to separate suspend (aka S2RAM and standby) callbacks from hibernation callbacks in such a way that the new callbacks won't take arguments and the semantics of each of them will be clearly specified. This has been requested for multiple times by many people, including Linus himself, and the reason is that within the current scheme if ->resume() is called, for example, it's difficult to say why it's been called (ie. is it a resume from RAM or from hibernation or a suspend/hibernation failure etc.?). The second purpose is to make the suspend/hibernation callbacks more flexible so that device drivers can handle more than they can within the current scheme. For example, some drivers may need to prevent new children of the device from being registered before their ->suspend() callbacks are executed or they may want to carry out some operations requiring the availability of some other devices, not directly bound via the parent-child relationship, in order to prepare for the execution of ->suspend(), etc. Ultimately, we'd like to stop using the freezing of tasks for suspend and therefore the drivers' suspend/hibernation code will have to take care of the handling of the user space during suspend/hibernation. That, in turn, would be difficult within the current scheme, without the new ->prepare() and ->complete() callbacks. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek Signed-off-by: Jesse Barnes commit e84fab1afc02bc1fcc2e16d64bc490f02580182c Author: Gary Hade Date: Mon May 12 13:57:46 2008 -0700 PCI: boot parameter to avoid expansion ROM memory allocation Contention for scarce PCI memory resources has been growing due to an increasing number of PCI slots in large multi-node systems. The kernel currently attempts by default to allocate memory for all PCI expansion ROMs so there has also been an increasing number of PCI memory allocation failures seen on these systems. This occurs because the BIOS either (1) provides insufficient PCI memory resource for all the expansion ROMs or (2) provides adequate PCI memory resource for expansion ROMs but provides the space in kernel unexpected BIOS assigned P2P non-prefetch windows. The resulting PCI memory allocation failures may be benign when related to memory requests for expansion ROMs themselves but in some cases they can occur when attempting to allocate space for more critical BARs. This can happen when a successful expansion ROM allocation request consumes memory resource that was intended for a non-ROM BAR. We have seen this happen during PCI hotplug of an adapter that contains a P2P bridge where successful memory allocation for an expansion ROM BAR on device behind the bridge consumed memory that was intended for a non-ROM BAR on the P2P bridge. In all cases the allocation failure messages can be very confusing for users. This patch provides a new 'pci=norom' kernel boot parameter that can be used to disable the default PCI expansion ROM memory resource allocation. This provides a way to avoid the above described issues on systems that do not contain PCI devices for which drivers or user-level applications depend on the default PCI expansion ROM memory resource allocation behavior. Signed-off-by: Gary Hade Signed-off-by: Jesse Barnes commit 1fe6dda25c48767c125ce335272c7e30c504abfa Author: Hidetoshi Seto Date: Mon May 19 13:48:17 2008 +0900 PCI/MSI: skip calling pci_find_capability from msi_set_mask_bits The position of MSI capability is already cached in the msi_desc when we enter the msi_set_mask_bits(). Use it instead. Signed-off-by: Hidetoshi Seto Acked-by: Arnaldo Carvalho de Melo Signed-off-by: Jesse Barnes commit 5522e1844486d0adf64ec201ec5a94996ded1a58 Author: Adrian Bunk Date: Tue May 20 01:02:06 2008 +0300 PCI: remove CVS keywords This patch removes CVS keywords that weren't updated for a long time from comments. Signed-off-by: Adrian Bunk Signed-off-by: Jesse Barnes commit 1c0cb7f77264a3f1a3785aa162773398b5b85cb9 Author: Kenji Kaneshige Date: Thu May 15 15:23:13 2008 +0900 pci-acpi: formatting cleanups for _OSC Minor cleanup in pci-acpi.c. Signed-off-by: Kenji Kaneshige Acked-by: Shaohua Li Signed-off-by: Jesse Barnes commit 364cba71f44cb842387f0b5c825e0dc1c8dac115 Author: Kenji Kaneshige Date: Thu May 15 15:22:35 2008 +0900 pci-acpi: remove unused variable in __pci_osc_support_set The 'retval' variable in __pci_osc_support_set() is no longer used. Remove this unused variable. Signed-off-by: Kenji Kaneshige Acked-by: Shaohua Li Signed-off-by: Jesse Barnes commit 189749e4a9a9415e85f440c36c329a1088ef57da Author: Kenji Kaneshige Date: Thu May 15 15:21:16 2008 +0900 pci-acpi: add flag to indicate query had been done Current pci-acpi implementation checks osc_data->support_stat to see if control bits had been already queried. It is not good from the viewpoint of easy understanding. So this patch adds new 'is_queried' flag to indicate query had been done. Signed-off-by: Kenji Kaneshige Acked-by: Shaohua Li Signed-off-by: Jesse Barnes commit c49aaf40d99cb5065bce61c7727b0ee71d4a9c09 Author: Kenji Kaneshige Date: Thu May 15 15:20:11 2008 +0900 pci-acpi: use local buffer for _OSC Current pci-acpi implementation uses array in osc_data directly to evaluate _OSC. It needs to save the old data and restore it if _OSC evaluation fails. To make it more robust, we should use local array to evaluate _OSC. Signed-off-by: Kenji Kaneshige Acked-by: Shaohua Li Signed-off-by: Jesse Barnes commit 090ca91c867dc974fed13bafd0aad9789ad62a64 Author: Kenji Kaneshige Date: Thu May 15 15:18:53 2008 +0900 pci-acpi: remove duplicate code for _OSC Remove the duplicated code in acpi_query_osc() and acpi_run_osc(). It simplifies the code very much. Signed-off-by: Kenji Kaneshige Acked-by: Shaohua Li Signed-off-by: Jesse Barnes commit a949c83c4f5e477681edfff3f111e183948649fc Author: Zhao Yakui Date: Tue May 13 11:15:05 2008 +0800 PCI: Disable PME during PCI scan If a device supports #PME and can generate PME events from D0, we may see superfluous events before a driver is loaded (drivers should only enable PME as needed), preventing suspend from working if the corresponding GPE was enabled. Likewise, if the ACPI device has the _PRW object, the _PSW/_DSW object will be called in order to disable the wakeup functionality. But when it is allowed to wake up the sleeping state, OSPM will enable it again. So we should disable PME in the course of scanning PCI devices and enable it again only when PME events are actually required to be generated from the requested PCI state (for example, D3_hot or D3_cold). It is also safe to disable PME again when the PME is disabled for the PCI devices. Signed-off-by: Zhao Yakui Signed-off-by: Li Shaohua Signed-off-by: Jesse Barnes commit 638d515d37e4cfc9af9d8672f9668324b7b6600d Author: Rafael J. Wysocki Date: Thu May 15 21:51:31 2008 +0200 Suspend/Resume bug in PCI layer wrt quirks Some quirks should be called with interrupt disabled, we can't directly call them in .resume_early. Also the patch introduces pci_fixup_resume_early and pci_fixup_suspend, which matches current device core callbacks (.suspend/.resume_early). TBD: Somebody knows why we need quirk resume should double check if a quirk should be called in resume or resume_early. I changed some per my understanding, but can't make sure I fixed all. Signed-off-by: Shaohua Li Signed-off-by: Jesse Barnes commit 93923dd4826e2cfd50d3bf29d11d19284c86fdca Author: Miklos Vajna Date: Tue May 13 18:38:56 2008 +0200 x86/PCI: janitor work in irq.c Wrapped long lines, removed trailing whitespaces, fixed case indentation inside switch and so. Signed-off-by: Miklos Vajna Signed-off-by: Jesse Barnes commit 5f9da76c68654466ebae12bb04d5723989b7293f Author: Robert P. J. Day Date: Sun May 11 16:58:53 2008 -0400 PCI: Replace deprecated __initcall with device_initcall. Signed-off-by: Robert P. J. Day Signed-off-by: Jesse Barnes commit 3cc5c5022b1274824e660cd9110383eb992db615 Author: Adrian Bunk Date: Mon May 5 21:25:47 2008 +0300 drivers/pci/pci.c: add prototypes This patch adds prototypes for pcibios_disable_device() and pcibios_set_pcie_reset_state() in include/linux/pci.h While I was at it, I also removed the unneeded "extern" from the prototype of pcibios_add_platform_entries(). Signed-off-by: Adrian Bunk Signed-off-by: Jesse Barnes commit 88eb65ae86f2f0a742b96c4a21ded06f9df025f4 Author: Adrian Bunk Date: Mon May 5 21:21:51 2008 +0300 make {pciehp,shpchp}_slot_with_bus static This patch makes the needlessly global {pciehp,shpchp}_slot_with_bus static. Signed-off-by: Adrian Bunk Signed-off-by: Jesse Barnes commit c7d624d1ee7b77622305bd638755394e4d3f2d2f Author: Dave Jones Date: Wed May 28 12:57:13 2008 -0400 x86: Fix up silly i1586 boot message. Trying to boot a 64-bit kernel on a 32bit Pentium 4 gets you an amusing message along the lines of. "you need an x86-64, but you only have an i1586" due to the P4 being family F. Munge it to be 686. Signed-off-by: Dave Jones Signed-off-by: H. Peter Anvin commit 4d58bbcc89e267d52b4df572acbf209a60a8a497 Author: Isaku Yamahata Date: Wed May 28 09:41:58 2008 -0700 [IA64] pv_ops: move some functions in ivt.S to avoid lack of space. move interrupt, page_fault, non_syscall, dispatch_unaligned_handler and dispatch_to_fault_handler to avoid lack of instructin space. The change set 4dcc29e1574d88f4465ba865ed82800032f76418 bloated SAVE_MIN_WITH_COVER, SAVE_MIN_WITH_COVER_R19 so that it bloated the functions which uses those macros. In the native case, only dispatch_illegal_op_fault had to be moved. When paravirtualized case the all functions which use the macros need to be moved to avoid the lack of space. Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 534dadac99bdccc249e6c8021b89c6247dbf2255 Author: David Teigland Date: Tue May 20 12:18:10 2008 -0500 dlm: fix basts for granted CW waiting PR/CW The fix in commit 3650925893469ccb03dbcc6a440c5d363350f591 was addressing the case of a granted PR lock with waiting PR and CW locks. It's a special case that requires forcing a CW bast. However, that forced CW bast was incorrectly applying to a second condition where the granted lock was CW. So, the holder of a CW lock could receive an extraneous CW bast instead of a PR bast. This fix narrows the original special case to what was intended. Signed-off-by: David Teigland commit f1605096f1fde64403edcb9e18605174a64e1c55 Author: Masatake YAMATO Date: Wed May 28 14:45:10 2008 +0900 dlm: check for null in device_write If `device_write' method is called via "dlm-control", file->private_data is NULL. (See ctl_device_open() in user.c. ) Through proc->flags is read. Signed-off-by: Masatake YAMATO Signed-off-by: David Teigland commit 3c65e8743bf8b5cf0f90e8d767bf1d8b50c14c76 Author: Li Zefan Date: Wed May 28 08:58:56 2008 -0500 JFS: diAlloc() should return -EIO rather than EIO The comment above the function says one of its return value is -EIO, and also the caller of diAlloc() checks for -EIO: struct inode *ialloc(struct inode *parent, umode_t mode) { ... rc = diAlloc(parent, S_ISDIR(mode), inode); if (rc) { jfs_warn("ialloc: diAlloc returned %d!", rc); if (rc == -EIO) make_bad_inode(inode); ... Signed-off-by: Li Zefan Signed-off-by: Dave Kleikamp commit 46865497e876d7e4e299dd39d4a9de82bc6651e4 Author: Adrian Bunk Date: Tue May 20 00:57:27 2008 +0300 include/linux/mmc/mmc.h: remove CVS tags This patch removes a CVS tag that wasn't updated for a long time. Signed-off-by: Adrian Bunk Signed-off-by: Pierre Ossman commit b20aeccd6ad42ccb6be1b3d1d32618ddd2b31bf0 Author: Ingo Molnar Date: Wed May 28 14:24:38 2008 +0200 xen: fix early bootup crash on native hardware -tip tree auto-testing found the following early bootup hang: --------------> get_memcfg_from_srat: assigning address to rsdp RSD PTR v0 [Nvidia] BUG: Int 14: CR2 ffd00040 EDI 8092fbfe ESI ffd00040 EBP 80b0aee8 ESP 80b0aed0 EBX 000f76f0 EDX 0000000e ECX 00000003 EAX ffd00040 err 00000000 EIP 802c055a CS 00000060 flg 00010006 Stack: ffd00040 80bc78d0 80b0af6c 80b1dbfe 8093d8ba 00000008 80b42810 80b4ddb4 80b42842 00000000 80b0af1c 801079c8 808e724e 00000000 80b42871 802c0531 00000100 00000000 0003fff0 80b0af40 80129999 00040100 00040100 00000000 Pid: 0, comm: swapper Not tainted 2.6.26-rc4-sched-devel.git #570 [<802c055a>] ? strncmp+0x11/0x25 [<80b1dbfe>] ? get_memcfg_from_srat+0xb4/0x568 [<801079c8>] ? mcount_call+0x5/0x9 [<802c0531>] ? strcmp+0xa/0x22 [<80129999>] ? printk+0x38/0x3a [<80129999>] ? printk+0x38/0x3a [<8011b122>] ? memory_present+0x66/0x6f [<80b216b4>] ? setup_memory+0x13/0x40c [<80b16b47>] ? propagate_e820_map+0x80/0x97 [<80b1622a>] ? setup_arch+0x248/0x477 [<80129999>] ? printk+0x38/0x3a [<80b11759>] ? start_kernel+0x6e/0x2eb [<80b110fc>] ? i386_start_kernel+0xeb/0xf2 ======================= <------ with this config: http://redhat.com/~mingo/misc/config-Wed_May_28_01_33_33_CEST_2008.bad The thing is, the crash makes little sense at first sight. We crash on a benign-looking printk. The code around it got changed in -tip but checking those topic branches individually did not reproduce the bug. Bisection led to this commit: | d5edbc1f75420935b1ec7e65df10c8f81cea82de is first bad commit | commit d5edbc1f75420935b1ec7e65df10c8f81cea82de | Author: Jeremy Fitzhardinge | Date: Mon May 26 23:31:22 2008 +0100 | | xen: add p2m mfn_list_list Which is somewhat surprising, as on native hardware Xen client side should have little to no side-effects. After some head scratching, it turns out the following happened: randconfig enabled the following Xen options: CONFIG_XEN=y CONFIG_XEN_MAX_DOMAIN_MEMORY=8 # CONFIG_XEN_BLKDEV_FRONTEND is not set # CONFIG_XEN_NETDEV_FRONTEND is not set CONFIG_HVC_XEN=y # CONFIG_XEN_BALLOON is not set which activated this piece of code in arch/x86/xen/mmu.c: > @@ -69,6 +69,13 @@ > __attribute__((section(".data.page_aligned"))) = > { [ 0 ... TOP_ENTRIES - 1] = &p2m_missing[0] }; > > +/* Arrays of p2m arrays expressed in mfns used for save/restore */ > +static unsigned long p2m_top_mfn[TOP_ENTRIES] > + __attribute__((section(".bss.page_aligned"))); > + > +static unsigned long p2m_top_mfn_list[TOP_ENTRIES / P2M_ENTRIES_PER_PAGE] > + __attribute__((section(".bss.page_aligned"))); The problem is, you must only put variables into .bss.page_aligned that have a _size_ that is _exactly_ page aligned. In this case the size of p2m_top_mfn_list is not page aligned: 80b8d000 b p2m_top_mfn 80b8f000 b p2m_top_mfn_list 80b8f008 b softirq_stack 80b97008 b hardirq_stack 80b9f008 b bm_pte So all subsequent variables get unaligned which, depending on luck, breaks the kernel in various funny ways. In this case what killed the kernel first was the misaligned bootmap pte page, resulting in that creative crash above. Anyway, this was a fun bug to track down :-) I think the moral is that .bss.page_aligned is a dangerous construct in its current form, and the symptoms of breakage are very non-trivial, so i think we need build-time checks to make sure all symbols in .bss.page_aligned are truly page aligned. The Xen fix below gets the kernel booting again. Signed-off-by: Ingo Molnar commit f3aa255a33c938d8f2d8b7599a5484fbb19558fd Author: Pierre Ossman Date: Wed May 28 09:54:50 2008 +0200 sdhci-pci: unaligned data with ricoh controllers The Ricoh controllers cannot handle unaligned data blocks. Signed-off-by: Pierre Ossman commit ee8b33574415a6eea96814041daa8a5e8fae5c53 Author: Pierre Ossman Date: Sat May 24 22:36:31 2008 +0200 mmc_test: add test case control Add the ability to run just a single test case by writing the test case number into the sysfs "test" file. Signed-off-by: Pierre Ossman commit 51bfb3ae02be12a44a7fc17d15dd8d1e427a595d Author: Pierre Ossman Date: Wed Apr 16 19:13:13 2008 +0200 sdhci: handle hot-remove Gracefully handle when the device is suddenly removed. Do a test read and avoid any further access if that read returns -1. Signed-off-by: Pierre Ossman commit 0effc43e3fad29c12912479b1c846eccd0d8ef18 Author: Pierre Ossman Date: Fri Apr 4 19:36:59 2008 +0200 sdhci: support JMicron secondary interface JMicron chips sometimes have two interfaces to work around limitations in Microsoft's sdhci driver. This patch allows us to use either interface. Signed-off-by: Pierre Ossman commit 81e51afdcd7c3cc93e42e4aceb7529f90105d8a7 Author: Pierre Ossman Date: Mon Mar 24 13:09:09 2008 +0100 sdhci: toggle JMicron PMOS setting Some of the JMicron chips requires us to manually enable the power output stages of the chip. Add the necessary hooks and functions to manage this. Signed-off-by: Pierre Ossman commit a94896c52a6e08596d37a07cda644d31c12aa10a Author: Pierre Ossman Date: Sun Mar 23 19:33:23 2008 +0100 sdhci: more complex quirks handling Extend the quirks handling in the PCI driver to be able to have callbacks and not just flags. Signed-off-by: Pierre Ossman commit 4b14fe2d3f2f0a66c27eef9ca59cb50a0825216c Author: Guillaume Thouvenin Date: Tue May 27 15:13:28 2008 +0200 KVM: x86 emulator: Add support for mov r, sreg (0x8c) instruction Add support for mov r, sreg (0x8c) instruction Signed-off-by: Guillaume Thouvenin Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 2364863e95fa0a2e7b06fe3a891705f6e65d9623 Author: Guillaume Thouvenin Date: Tue May 27 14:49:15 2008 +0200 KVM: x86 emulator: Add support for mov seg, r (0x8e) instruction Add support for mov r, sreg (0x8c) instruction. [avi: drop the sreg decoding table in favor of 1:1 encoding] Signed-off-by: Guillaume Thouvenin Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit d736b0ec695dcd2f3e8a9150626132953e9e49e6 Author: Guillaume Thouvenin Date: Tue May 27 10:19:16 2008 +0200 KVM: x86 emulator: adds support to mov r,imm (opcode 0xb8) instruction Add support to mov r, imm (0xb8) instruction. Signed-off-by: Guillaume Thouvenin Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 6780f25dcaab2620493bc62700ce653ec567aea2 Author: Guillaume Thouvenin Date: Tue May 27 10:19:08 2008 +0200 KVM: x86 emulator: add support for jmp far 0xea Add support for jmp far (opcode 0xea) instruction. Signed-off-by: Guillaume Thouvenin Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 36742c5470f9717f31a8e3239831baf1e8d17f97 Author: Guillaume Thouvenin Date: Tue May 27 10:19:00 2008 +0200 KVM: VMX: Add mechanism to detect VMentry failure Adds mechanism to detect VMentry failure. When VMentry failure is detected we're trying to emulate the instruction that causes this failure. If emulation failed we modify the SS selector to pass VMX sanity tests and retry to execute the instruction (old behaviour). The good solution is to emulate the instruction that causes the failure. Signed-off-by: Guillaume Thouvenin Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit cb3935d0796e578b382fd20dff128148752127f8 Author: Guillaume Thouvenin Date: Tue May 27 10:22:20 2008 +0200 KVM: x86 emulator: Update c->dst.bytes in decode instruction Update c->dst.bytes in decode instruction instead of instruction itself. It's needed because if c->dst.bytes is equal to 0, the instruction is not emulated. Signed-off-by: Guillaume Thouvenin Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 9544157913288e2cc88415544a2da6fb68542d48 Author: Guillaume Thouvenin Date: Tue May 27 10:18:46 2008 +0200 KVM: Prefixes segment functions that will be exported with "kvm_" Prefixes functions that will be exported with kvm_. We also prefixed set_segment() even if it still static to be coherent. signed-off-by: Guillaume Thouvenin Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 7ea77438cc813a17f85236c2bed1db0bfbbd83ae Author: Marcelo Tosatti Date: Tue May 27 12:10:20 2008 -0300 KVM: migrate PIT timer Migrate the PIT timer to the physical CPU which vcpu0 is scheduled on, similarly to what is done for the LAPIC timers, otherwise PIT interrupts will be delayed until an unrelated event causes an exit. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 1e9cd2c19b88aa388ecd7fefcbc4ee44271ee9d9 Author: Pierre Ossman Date: Sat Mar 22 22:05:40 2008 +0100 sdhci: remove forced dma quirks Remove the quirk to force DMA on the Ricoh and TI controllers as it is no longer needed. The only bug they have is that they use an incorrect PCI interface value, and that is not respected anymore. Signed-off-by: Pierre Ossman commit 4431772cea87aa18b0a6f7fc1a021f1fc03fc944 Author: Pierre Ossman Date: Tue Mar 18 17:35:49 2008 +0100 sdhci: move pci stuff to separate module The SDHCI interface is not PCI specific, yet the Linux driver was intimitely connected to the PCI bus. This patch properly separates the PCI specific portion from the bus independent code. This patch is based on work by Ben Dooks but he did not have time to complete it. Signed-off-by: Pierre Ossman commit b1829d2705daa7cb72eb1e08bdc8b7e9fad34266 Author: Ingo Molnar Date: Wed May 28 01:22:08 2008 +0200 ftrace: fix merge Signed-off-by: Ingo Molnar commit 8a2f2ccc7a6bfbdb8b484198e190d6805d979700 Author: Isaku Yamahata Date: Tue May 27 15:16:47 2008 -0700 [IA64] pvops: documentation on ia64/pv_ops Documentation on ia64/pv_ops which describes its strategy and implementation. Signed-off-by: Isaku Yamahata Cc: Gerald Pfeifer Signed-off-by: Tony Luck commit 30e2a703701e9163b69732c6aa40a5f98c850acf Author: Sunil Mushran Date: Tue May 13 13:45:15 2008 -0700 [PATCH 2/2] ocfs2: Instrument fs cluster locks This patch adds code to track the number of times the fs takes various cluster locks as well as the times associated with it. The information is made available to users via debugfs. This patch was originally written by Jan Kara . Signed-off-by: Sunil Mushran Signed-off-by: Mark Fasheh commit 58e9c04a52abe2c4f0995be71117d8e9dbc01a58 Author: Sunil Mushran Date: Tue May 13 13:45:14 2008 -0700 [PATCH 1/2] ocfs2: Add CONFIG_OCFS2_FS_STATS config option This patch adds config option CONFIG_OCFS2_FS_STATS to allow building the fs with instrumentation enabled. An upcoming patch will provide support to instrument cluster locking, which is a crucial overhead in a cluster file system. This config option allows users to avoid the cpu and memory overhead that is involved in gathering such statistics. Signed-off-by: Sunil Mushran Signed-off-by: Mark Fasheh commit 00d21d82b8a9e290286e09d8eedc20bfc33b0eee Author: Isaku Yamahata Date: Mon May 19 22:13:44 2008 +0900 [IA64] pvops: add to hooks, pv_time_ops, for steal time accounting. Introduce pv_time_ops which adds hook to steal time accounting. On virtualized environment, cpus are shared by many guests and steal time is the time which is used for other guests. On virtualized environtment, streal time should be accounted. Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 85cbc503787d577c215f9540c57294e1ec799144 Author: Isaku Yamahata Date: Mon May 19 22:13:43 2008 +0900 [IA64] pvops: add hooks, pv_irq_ops, to paravirtualized irq related operations. introduce pv_irq_ops which adds hooks to paravirtualize irq related operations. On virtualized environment, interruption may be replaced by something virtualization friendly. So the irq related operation also may need paravirtualization. This patch adds necessary hooks to paravirtualize irq related operations. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 33b39e84209b0308b572dce017df7ee9b63f086c Author: Isaku Yamahata Date: Mon May 19 22:13:42 2008 +0900 [IA64] pvops: add hooks, pv_iosapic_ops, to paravirtualize iosapic. add hooks to paravirtualize iosapic which is a real hardware resource. On virtualized environment it may be replaced something virtualized friendly. Define pv_iosapic_ops and add the hooks. Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit e51835d58a5abdf82211f36f500f666ca7ef9aee Author: Isaku Yamahata Date: Mon May 19 22:13:41 2008 +0900 [IA64] pvops: define initialization hooks, pv_init_ops, for paravirtualized environment. define pv_init_ops hooks which represents various initialization hooks for paravirtualized environment. and add hooks. Signed-off-by: Alex Williamson Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 213060a4d6991a95d0b9344406d195be3464accf Author: Isaku Yamahata Date: Mon May 19 22:13:40 2008 +0900 [IA64] pvops: paravirtualize NR_IRQS Make NR_IRQ overridable by each pv instances. Pv instance may need each own number of irqs so that NR_IRQS should be the maximum number of nr_irqs each pv instances need. Cc: Jes Sorensen Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 4df8d22bbbb16ccfa4e10cc068135183c9e5e006 Author: Isaku Yamahata Date: Tue May 27 15:08:01 2008 -0700 [IA64] pvops: paravirtualize entry.S paravirtualize ia64_swtich_to, ia64_leave_syscall and ia64_leave_kernel. They include sensitive or performance critical privileged instructions so that they need paravirtualization. To paravirtualize them by single source and multi compile they are converted into indirect jump. And define each pv instances. Cc: Keith Owens Cc: "Dong, Eddie" Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 498c5170472ff0c03a29d22dbd33225a0be038f4 Author: Isaku Yamahata Date: Mon May 19 22:13:38 2008 +0900 [IA64] pvops: paravirtualize ivt.S paravirtualize ivt.S which implements fault handler in hand written assembly code. They includes sensitive or performance critical privileged instructions. So they need paravirtualization. Cc: Keith Owens Cc: tgingold@free.fr Cc: Akio Takebe Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 02e32e36f42f8ea7ee6060d02f2d69ad5bad6d50 Author: Isaku Yamahata Date: Mon May 19 22:13:37 2008 +0900 [IA64] pvops: paravirtualize minstate.h. paravirtualize minstate.h which are hand written assembly code. They include sensitive or performance critical privileged instructions. So that they are appropriate for paravirtualization. Cc: Keith Owens Cc: Akio Takebe Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit e92e8c68a61ae7d845c1be0a58a081e7756b0735 Author: Isaku Yamahata Date: Mon May 19 22:13:36 2008 +0900 [IA64] pvops: define paravirtualized instructions for native. pv_cpu_asm_ops: define paravirtualized introduce for native execution environment. Cc: Keith Owens Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 1e39d80a5957eab9dfdd7490d5c5cee272c34aa7 Author: Isaku Yamahata Date: Mon May 19 22:13:35 2008 +0900 [IA64] pvops: preparation for paravirtulization of hand written assembly code. Preparation for paravirtualization of hand written assembly code. They are paravirtualized by single source code and compiled multi times. To tell those files for target (including native), add one defines. Cc: "Dong, Eddie" Cc: Keith Owens Cc: tgingold@free.fr Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 1ff730b52f0c3e4e3846c3ff345c5526b2633ba9 Author: Isaku Yamahata Date: Mon May 19 22:13:34 2008 +0900 [IA64] pvops: introduce pv_cpu_ops to paravirtualize privileged instructions. introduce pv_cpu_ops to paravirtualize privleged instructions which are defined by ia64 intrinsics. make them indirect C function calls by introducing function tables, pv_cpu_ops. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 3e0879deb700f322f6c81ab34f056fc72d15ec02 Author: Isaku Yamahata Date: Mon May 19 22:13:33 2008 +0900 [IA64] pvops: add an early setup hook for pv_ops. This patch adds a setup hook in the very early boot sequence before start_kernel() to initialize paravirtualization stuff. The hook will be set by each pv loader code or by using multi entry point. Signed-off-by: Qing He Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 90aeb169c03a96e22674741f08054023c33d595b Author: Isaku Yamahata Date: Mon May 19 22:13:32 2008 +0900 [IA64] pvops: introduce pv_info which describes some random info. introduce pv_info which describes some randome info about underlying execution environment. Cc: Jes Sorensen Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 72cb4256c7574e1c2c1350fa92eecd7cef9e4772 Author: Isaku Yamahata Date: Mon May 19 22:13:31 2008 +0900 [IA64] pvops: preparation: introduce ia64_get_psr_i() to make kernel paravirtualization friendly. __local_irq_save() and local_save_flags() are used to mask interruptions. They read all psr bits that requres whole bit emulation. On the other hand, reading only psr.i, the single bit, can be virtualized cheaply. Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 0e1a77ccdbc4ca59ccaf84168a0c3c1df4fadfc0 Author: Isaku Yamahata Date: Mon May 19 22:13:30 2008 +0900 [IA64] pvops: preparation: introduce ia64_set_rr0_to_rr4() to make kernel paravirtualization friendly. make kernel paravirtualization friendly by introducing ia64_set_rr0_to_rr4(). ia64/Xen will replace setting rr[0-4] with single hypercall later. Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 8311d21c35092aa4c4a12e0140e1ef3443489d77 Author: Isaku Yamahata Date: Mon May 19 22:13:29 2008 +0900 [IA64] pvops: preparation: move the constants, LOAD_OFFSET, to a header file. Move the LOAD_OFFSET definition from vmlinux.lds.S into system.h. On paravirtualized environments, it is necessary to detect the execution environment. One of the solutions is the multi entry point. The multi entry point allows a boot loader to start the kernel execution from the entry point which is different from the ELF entry point. The non standard entry point will defined as the specialized elf note which contains the LMA of the entry point symbol. The constant, LOAD_OFFSET, is necessary to calculate the symbol's LMA. Move the definition into the public header file to make it available to the multi entry point support. Cc: "He, Qing" Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit 444933c6c6e82362ba8e0da26f41a53c433d11ef Author: Isaku Yamahata Date: Mon May 19 22:13:28 2008 +0900 [IA64] pvops: preparation: remove extern in irq_ia64.c remove extern declaration of handle_IPI() in irq_ia64.c. Instead, declare it in asm-ia64/smp.h. Later handle_IPI() will be referenced from another file. Signed-off-by: Isaku Yamahata Signed-off-by: Tony Luck commit dd564d0cf08686cf0cc332bf9d48cba5b26a8171 Author: Pavel Machek Date: Tue May 27 18:03:56 2008 +0200 x86: aperture_64.c: cleanups Some small cleanups for aperture_64.c; they should not really change any code. Signed-off-by: Pavel Machek Cc: Dave Jones Cc: Andi Kleen Signed-off-by: Thomas Gleixner commit 92d9acbf598427c88922344ae129774f1543bc6e Author: Avi Kivity Date: Mon May 26 20:06:35 2008 +0300 KVM: MTRR support Add emulation for the memory type range registers, needed by VMware esx 3.5, and by pci device assignment. Signed-off-by: Avi Kivity commit 7e7d2566a1f3aadbdd63d8767baa0c9fe3e85252 Author: Ingo Molnar Date: Tue May 27 09:56:49 2008 +0200 x86: ioremap fix failing nesting check Mika Kukkonen noticed that the nesting check in early_iounmap() is not actually done. Reported-by: Mika Kukkonen Signed-off-by: Ingo Molnar Cc: torvalds@linux-foundation.org Cc: arjan@linux.intel.com Cc: mikukkon@iki.fi Signed-off-by: Thomas Gleixner commit fc4e68afa1a2a8c1fb1b61a5b867052cfb17aa24 Author: Avi Kivity Date: Tue May 27 16:26:01 2008 +0300 KVM: Order segment register constants in the same way as cpu operand encoding This can be used to simplify the x86 instruction decoder. Signed-off-by: Avi Kivity commit f0ad0a4d414ec70e1404dfafaa54f1684531897a Author: Artem Bityutskiy Date: Tue May 27 13:30:08 2008 +0300 UBIFS: move ubifs_validate_entry tnc. is very big, move this function to replay.c instead. Signed-off-by: Artem Bityutskiy commit 2e7a18341806f18e9c4f349359b468997fed7bdf Author: Artem Bityutskiy Date: Mon May 26 16:30:27 2008 +0300 UBIFS: fix checkpatch.pl errors Signed-off-by: Artem Bityutskiy commit c69552d0b139446a9bb333065a66d0ce786bfd97 Author: Adrian Hunter Date: Mon May 26 12:58:39 2008 +0300 UBIFS: remove unnecessary 'if' in bg thread Signed-off-by: Adrian Hunter commit 2db2c58ebf26f21dbdd1dbd78c3eea088f76b324 Author: Artem Bityutskiy Date: Mon May 26 15:40:10 2008 +0300 UBIFS: fix flags stupid me. Signed-off-by: Artem Bityutskiy commit 74388633d0f167737fee656d7220511d3b853d5f Author: Artem Bityutskiy Date: Mon May 26 14:55:09 2008 +0300 UBIFS: rework flags inheritance Signed-off-by: Artem Bityutskiy commit 0040b89d003d8d6541fcbd9cee588d956a6906d1 Author: Adrian Hunter Date: Mon May 26 11:04:41 2008 +0300 UBIFS: fix gc_lnum recovery Signed-off-by: Adrian Hunter commit 287ad9097bb4663f03a7229049faa454183eb881 Author: Adrian Hunter Date: Thu May 22 17:37:36 2008 +0300 UBIFS: split out ubifs_fill_super Signed-off-by: Adrian Hunter commit de5219454b4fde9b6d2f22c2426a024d333030f3 Author: Adrian Hunter Date: Mon May 26 11:02:32 2008 +0300 UBIFS: mount_ubifs now cleans up its own errors Signed-off-by: Adrian Hunter commit 9c1c68948913655ed0a58d681153baaf968377bd Author: Artem Bityutskiy Date: Mon May 26 12:10:48 2008 +0300 UBIFS: get rid of scary lockup warnings Like this: INFO: task ubifs_bgt0_0:16436 blocked for more than 120 seconds. "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. ubifs_bgt0_0 D f73aff94 0 16436 2 f73affcc 00000086 f8f44430 f73aff94 00000046 00000000 00000000 edf00fb0 edf00fb0 edf01110 c2a09c80 f7323498 f4045de0 00000296 f73affb0 00000296 f4045ddc f4045de0 f73affcc c011983a 00000000 00000000 c01333f9 f64201b0 Call Trace: [] ? ubifs_bg_thread+0x0/0x1c6 [ubifs] [] ? complete+0x43/0x4b [] ? kthread+0x0/0x5b [] ? ubifs_bg_thread+0x0/0x1c6 [ubifs] [] kthread+0x25/0x5b [] ? kthread+0x0/0x5b [] kernel_thread_helper+0x7/0x10 ======================= Signed-off-by: Artem Bityutskiy commit f27d455bd6b4b164e4ff95f1be0ad72333ec5522 Author: Artem Bityutskiy Date: Mon May 26 12:09:52 2008 +0300 UBIFS: tweak bg thread Re-structure a little, add more comments. Signed-off-by: Artem Bityutskiy commit 193eb722e5b4f9f19ebac312c483ee21e0a93056 Author: Artem Bityutskiy Date: Fri May 23 20:12:15 2008 +0300 UBIFS: remove unnecessary cond_resched() Signed-off-by: Artem Bityutskiy commit 3945e2c9abf8e00c2edc4aa29215ddfad1cd8cf7 Author: Yinghai Lu Date: Sun May 25 10:00:09 2008 -0700 x86: extend e820 ealy_res support 32bit - fix #2 remove extra -1 in reseve_early calling panic if can not find space for new RAMDISK Signed-off-by: Yinghai Lu Cc: Andrew Morton Cc: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 359cdd3f866b6219a6729e313faf2221397f3278 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:28 2008 +0100 xen: maintain clock offset over save/restore Hook into the device model to make sure that timekeeping's resume handler is called. This deals with our clocksource's non-monotonicity over the save/restore. Explicitly call clock_has_changed() to make sure that all the timers get retriggered properly. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 0e91398f2a5d4eb6b07df8115917d0d1cf3e9b58 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:27 2008 +0100 xen: implement save/restore This patch implements Xen save/restore and migration. Saving is triggered via xenbus, which is polled in drivers/xen/manage.c. When a suspend request comes in, the kernel prepares itself for saving by: 1 - Freeze all processes. This is primarily to prevent any partially-completed pagetable updates from confusing the suspend process. If CONFIG_PREEMPT isn't defined, then this isn't necessary. 2 - Suspend xenbus and other devices 3 - Stop_machine, to make sure all the other vcpus are quiescent. The Xen tools require the domain to run its save off vcpu0. 4 - Within the stop_machine state, it pins any unpinned pgds (under construction or destruction), performs canonicalizes various other pieces of state (mostly converting mfns to pfns), and finally 5 - Suspend the domain Restore reverses the steps used to save the domain, ending when all the frozen processes are thawed. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 7d88d32a4670af583c896e5ecd3929b78538ca62 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:26 2008 +0100 xenbus: rebind irq on restore When restoring, rebind the existing xenbus irq to the new xenbus event channel. (It turns out in practice that this is always the same, and is never updated on restore. That's a bug, but Xeno-linux has been like this for a long time, so it can't really be fixed.) Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 6b9b732d0e396a3f1a95977162a8624aafce38a1 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:25 2008 +0100 xen-console: add save/restore Add code to: 1. Deal with the console page being canonicalized. During save, the console's mfn in the start_info structure is canonicalized to a pfn. In order to deal with that, we always use a copy of the pfn and indirect off that all the time. However, we fall back to using the mfn if the pfn hasn't been initialized yet. 2. Restore the console event channel, and rebind it to the existing irq. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 0f2287ad7c61f10b2a22a06e2a66cdbbbfc44ad0 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:24 2008 +0100 xen: fix unbind_from_irq() Rearrange the tests in unbind_from_irq() so that we can still unbind an irq even if the underlying event channel is bad. This allows a device driver to shuffle its irqs on save/restore before the underlying event channels have been fixed up. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit eb1e305f4ef201e549ffd475b7dcbcd4ec36d7dc Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:23 2008 +0100 xen: add rebind_evtchn_irq Add rebind_evtchn_irq(), which will rebind an device driver's existing irq to a new event channel on restore. Since the new event channel will be masked and bound to vcpu0, we update the state accordingly and unmask the irq once everything is set up. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit d5edbc1f75420935b1ec7e65df10c8f81cea82de Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:22 2008 +0100 xen: add p2m mfn_list_list When saving a domain, the Xen tools need to remap all our mfns to portable pfns. In order to remap our p2m table, it needs to know where all its pages are, so maintain the references to the p2m table for it to use. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit a0d695c821544947342a2d372ec4108bc813b979 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:21 2008 +0100 xen: make dummy_shared_info non-static Rename dummy_shared_info to xen_dummy_shared_info and make it non-static, in anticipation of users outside of enlighten.c Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit cf0923ea295ba08ae656ef04164a43cb6553ba99 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:20 2008 +0100 xen: efficiently support a holey p2m table When using sparsemem and memory hotplug, the kernel's pseudo-physical address space can be discontigious. Previously this was dealt with by having the upper parts of the radix tree stubbed off. Unfortunately, this is incompatible with save/restore, which requires a complete p2m table. The solution is to have a special distinguished all-invalid p2m leaf page, which we can point all the hole areas at. This allows the tools to see a complete p2m table, but it only costs a page for all memory holes. It also simplifies the code since it removes a few special cases. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 8006ec3e911f93d702e1d4a4e387e244ab434924 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:19 2008 +0100 xen: add configurable max domain size Add a config option to set the max size of a Xen domain. This is used to scale the size of the physical-to-machine array; it ends up using around 1 page/GByte, so there's no reason to be very restrictive. For a 32-bit guest, the default value of 8GB is probably sufficient; there's not much point in giving a 32-bit machine much more memory than that. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit d451bb7aa852627bdf7be7937dc3d9d9f261b235 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:18 2008 +0100 xen: make phys_to_machine structure dynamic We now support the use of memory hotplug, so the physical to machine page mapping structure must be dynamic. This is implemented as a two-level radix tree structure, which allows us to efficiently incrementally allocate memory for the p2m table as new pages are added. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 955d6f1778da5a9795f2dfb07f760006f194609a Author: Adrian Bunk Date: Mon May 26 23:31:17 2008 +0100 xen: drivers/xen/balloon.c: make a function static Make the needlessly global balloon_set_new_target() static. Signed-off-by: Adrian Bunk Acked-by: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Thomas Gleixner commit 38bb5ab4179572f4d24d3ca7188172a31ca51a69 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:16 2008 +0100 xen: count resched interrupts properly Make sure resched interrupts appear in /proc/interrupts in the proper place. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit bfdab126cfa6fe3c2ddb8b6007a38202b510b6c1 Author: Isaku Yamahata Date: Mon May 26 23:31:15 2008 +0100 xen: add missing definitions in include/xen/interface/memory.h which ia64/xen needs Add xen handles realted definitions for xen memory which ia64/xen needs. Pointer argumsnts for ia64/xen hypercall are passed in pseudo physical address (guest physical address) so that it is required to convert guest kernel virtual address into pseudo physical address. The xen guest handle represents such arguments. Signed-off-by: Isaku Yamahata Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit a90971ebddc81330f59203dee9803512aa4e2ef6 Author: Isaku Yamahata Date: Mon May 26 23:31:14 2008 +0100 xen: compilation fix to balloon driver for ia64 support fix compilation error of ballon driver on ia64. extent_start member is pointer argument. On x86 pointer argument for xen hypercall is passed as virtual address. On the other hand, ia64 and ppc, pointer argument is passed in pseudo physical address. (guest physicall address.) So they must be passed as handle and convert right before issuing hypercall. CC drivers/xen/balloon.o linux-2.6-x86/drivers/xen/balloon.c: In function 'increase_reservation': linux-2.6-x86/drivers/xen/balloon.c:228: error: incompatible types in assignment linux-2.6-x86/drivers/xen/balloon.c: In function 'decrease_reservation': linux-2.6-x86/drivers/xen/balloon.c:324: error: incompatible types in assignment linux-2.6-x86/drivers/xen/balloon.c: In function 'dealloc_pte_fn': linux-2.6-x86/drivers/xen/balloon.c:486: error: incompatible types in assignment linux-2.6-x86/drivers/xen/balloon.c: In function 'alloc_empty_pages_and_pagevec': linux-2.6-x86/drivers/xen/balloon.c:522: error: incompatible types in assignment make[2]: *** [drivers/xen/balloon.o] Error 1 Signed-off-by: Isaku Yamahata Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit ec9b2065d4d3b797604c09a569083dd9ff951b1b Author: Isaku Yamahata Date: Mon May 26 23:31:13 2008 +0100 xen: Move manage.c to drivers/xen for ia64/xen support move arch/x86/xen/manage.c under drivers/xen/to share codes with x86 and ia64. ia64/xen also uses manage.c Signed-off-by: Isaku Yamahata Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 83abc70a4c6e306f4c1672e25884322f797e4fcb Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:12 2008 +0100 xen: make earlyprintk=xen work again For some perverse reason, if you call add_preferred_console() it prevents setup_early_printk() from successfully enabling the boot console - unless you make it a preferred console too... Also, make xenboot console output distinct from normal console output, since it gets repeated when the console handover happens, and the duplicated output is confusing without disambiguation. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner Cc: Markus Armbruster Cc: Gerd Hoffmann commit e4dcff1f6e7582f76c2c9990b1d9111bbc8e26ef Author: Markus Armbruster Date: Mon May 26 23:31:11 2008 +0100 xen pvfb: Dynamic mode support (screen resizing) The pvfb backend indicates dynamic mode support by creating node feature_resize with a non-zero value in its xenstore directory. xen-fbfront sends a resize notification event on mode change. Fully backwards compatible both ways. Framebuffer size and initial resolution can be controlled through kernel parameter xen_fbfront.video. The backend enforces a separate size limit, which it advertises in node videoram in its xenstore directory. xen-kbdfront gets the maximum screen resolution from nodes width and height in the backend's xenstore directory instead of hardcoding it. Additional goodie: support for larger framebuffers (512M on a 64-bit system with 4K pages). Changing the number of bits per pixels dynamically is not supported, yet. Ported from http://xenbits.xensource.com/linux-2.6.18-xen.hg?rev/92f7b3144f41 http://xenbits.xensource.com/linux-2.6.18-xen.hg?rev/bfc040135633 Signed-off-by: Pat Campbell Signed-off-by: Markus Armbruster Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit f4ad1ebd7a0fae2782ef9f76c0b94b536742c3e8 Author: Markus Armbruster Date: Mon May 26 23:31:10 2008 +0100 xen pvfb: Zero unused bytes in events sent to backend This isn't a security flaw (the backend can see all our memory anyway). But it's the right thing to do all the same. Signed-off-by: Markus Armbruster Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 1e892c959da42278e60b21f5ecfd6fba0efff313 Author: Markus Armbruster Date: Mon May 26 23:31:09 2008 +0100 xen pvfb: Module aliases to support module autoloading These are mostly for completeness and consistency with the other frontends, as PVFB is typically compiled in rather than a module. Derived from http://xenbits.xensource.com/linux-2.6.18-xen.hg?rev/5e294e29a43e While there, add module descriptions. Signed-off-by: Markus Armbruster Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 6ba0e7b36c7cc1745b3cbeda244d14edae3ad058 Author: Markus Armbruster Date: Mon May 26 23:31:08 2008 +0100 xen pvfb: Pointer z-axis (mouse wheel) support Add z-axis motion to pointer events. Backward compatible, because there's space for the z-axis in union xenkbd_in_event, and old backends zero it. Derived from http://xenbits.xensource.com/linux-2.6.18-xen.hg?rev/57dfe0098000 http://xenbits.xensource.com/linux-2.6.18-xen.hg?rev/1edfea26a2a9 http://xenbits.xensource.com/linux-2.6.18-xen.hg?rev/c3ff0b26f664 Signed-off-by: Pat Campbell Signed-off-by: Markus Armbruster Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 9e124fe16ff24746d6de5a2ad685266d7bce0e08 Author: Markus Armbruster Date: Mon May 26 23:31:07 2008 +0100 xen: Enable console tty by default in domU if it's not a dummy Without console= arguments on the kernel command line, the first console to register becomes enabled and the preferred console (the one behind /dev/console). This is normally tty (assuming CONFIG_VT_CONSOLE is enabled, which it commonly is). This is okay as long tty is a useful console. But unless we have the PV framebuffer, and it is enabled for this domain, tty0 in domU is merely a dummy. In that case, we want the preferred console to be the Xen console hvc0, and we want it without having to fiddle with the kernel command line. Commit b8c2d3dfbc117dff26058fbac316b8acfc2cb5f7 did that for us. Since we now have the PV framebuffer, we want to enable and prefer tty again, but only when PVFB is enabled. But even then we still want to enable the Xen console as well. Problem: when tty registers, we can't yet know whether the PVFB is enabled. By the time we can know (xenstore is up), the console setup game is over. Solution: enable console tty by default, but keep hvc as the preferred console. Change the preferred console to tty when PVFB probes successfully, unless we've been given console kernel parameters. Signed-off-by: Markus Armbruster Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit a15af1c9ea2750a9ff01e51615c45950bad8221b Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:06 2008 +0100 x86/paravirt: add pte_flags to just get pte flags Add pte_flags() to extract the flags from a pte. This is a special case of pte_val() which is only guaranteed to return the pte's flags correctly; the page number may be corrupted or missing. The intent is to allow paravirt implementations to return pte flags without having to do any translation of the page number (most notably, Xen). Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 239d1fc04ed0b58d638096b12a7f6d50269d30c9 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:05 2008 +0100 xen: don't worry about preempt during xen_irq_enable() When enabling interrupts, we don't need to worry about preemption, because we either enter with interrupts disabled - so no preemption - or the caller is confused and is re-enabling interrupts on some indeterminate processor. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 2956a3511c8c5dccb1d4739ead17c7c3c23a24b7 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:04 2008 +0100 xen: allow some cr4 updates The guest can legitimately change things like cr4.OSFXSR and OSXMMEXCPT, so let it. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 349c709f42453707f74bece0d9d35ee5b3842893 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:02 2008 +0100 xen: use new sched_op Use the new sched_op hypercall, mainly because xenner doesn't support the old one. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 7b1333aa4cb546ddeb9c05098a53d9a777623a05 Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:01 2008 +0100 xen: use hypercall rather than clts Xen will trap and emulate clts, but its better to use a hypercall. Also, xenner doesn't handle clts. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 0922abdc3982ae54cbe1b24ac5aa91a260eca1bb Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:00 2008 +0100 xen: make early console also write to debug console When using "earlyprintk=xen", also write the console output to the raw debug console. This will appear on dom0's console if the hypervisor has been compiled to allow it. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 0acf10d8fbd52926217d3933d196b33fe2468f18 Author: Jeremy Fitzhardinge Date: Mon May 26 23:30:59 2008 +0100 xen: add raw console write functions for debug Add a couple of functions which can write directly to the Xen console for debugging. This output ends up on the host's dom0 console (assuming it allows the domain to write there). Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 4e09e21ccb0dfe7ee8d5641192e0072e83bd916b Author: Jeremy Fitzhardinge Date: Mon May 26 23:31:03 2008 +0100 x86: use symbolic constant in stts() Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit 4226ab93d8ae3fd895abe45879fe34d489a98718 Author: Jeremy Fitzhardinge Date: Mon May 26 23:30:58 2008 +0100 x86: use pteval_t for _PAGE_FOO Rather than making _PAGE_* constants signed, and then relying on sign-extension to make sure that masks derived from them are wide enough, just explicitly type them pteval_t. This guarantees that they and any derived values are the right size for the current pte format. The reliance on sign extension is fragile, and invokes some very subtle corners of the C type system. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit d366f9f8474d2f33016b1a282b7d64338a008072 Author: Moni Shoua Date: Mon May 26 20:43:54 2008 -0700 IB/sa: Fail requests made while creating new SM AH This patch solves a race that occurs after an event occurs that causes the SA query module to flush its SM address handle (AH). When SM AH becomes invalid and needs an update it is handled by the global workqueue. On the other hand this event is also handled in the IPoIB driver by queuing work in the ipoib_workqueue that does multicast joins. Although queuing is in the right order, it is done to 2 different workqueues and so there is no guarantee that the first to be queued is the first to be executed. This causes a problem because IPoIB may end up sending an request to the old SM, which will take a long time to time out (since the old SM is gone); this leads to a much longer than necessary interruption in multicast traffer. The patch sets the SA query module's SM AH to NULL when the event occurs, and until update_sm_ah() is done, any request that needs sm_ah fails with -EAGAIN return status. For consumers, the patch doesn't make things worse. Before the patch, MADs are sent to the wrong SM so the request gets lost. Consumers can be improved if they examine the return code and respond to EAGAIN properly but even without an improvement the situation is not getting worse. Signed-off-by: Moni Levy Signed-off-by: Moni Shoua Signed-off-by: Roland Dreier commit 14b9a20625e3e36edd2abf83bd5217a35ec3ea15 Author: Mark M. Hoffman Date: Mon May 26 15:09:36 2008 -0400 hwmon: (adt7473) clarify an awkward bit of code Signed-off-by: Mark M. Hoffman Acked-by: Jean Delvare commit 02fdf6f53048b7da09fdf8243f9878df9f87cd08 Author: Jean Delvare Date: Sat Apr 26 16:28:27 2008 +0200 hwmon: (adt7473) Remove unused defines All the *_MAX_ADDR defines are never used, so remove them. The number of registers of each type is already expressed by the *_COUNT defines. Signed-off-by: Jean Delvare Acked-by: Darrick J. Wong Signed-off-by: Mark M. Hoffman commit fc6378411820fe65122666a786876104742225dc Author: Juerg Haefliger Date: Tue Mar 25 21:49:15 2008 -0700 hwmon: (dme1737) fix voltage scaling This patch fixes a voltage scaling issue for the sch311x device. Signed-Off-By: Juerg Haefliger Acked-by: Jean Delvare Signed-off-by: Mark M. Hoffman commit f2e4e18d66bc274389ea60f2cddf4f1a3dc356f0 Author: Juerg Haefliger Date: Thu Apr 3 21:34:19 2008 -0700 hwmon: (dme1737) probe all addresses This patch adds a module load parameter to enable probing of non-standard LPC addresses 0x162e and 0x164e when scanning for supported ISA chips. Signed-Off-By: Juerg Haefliger Acked-by: Jean Delvare Signed-off-by: Mark M. Hoffman commit 9b3946f75c7690f0b6112602094fa546f7a87ec3 Author: Juerg Haefliger Date: Tue Mar 25 21:49:02 2008 -0700 hwmon: (dme1737) demacrofy for readability This patch gets rid of a couple of macros previously used for sysfs attribute generation and manipulation. This makes the source a little bigger but a lot more readable and maintainable. It also fixes an issue with pwm5 & pwm6 attributes not being created read-only initially. Signed-Off-By: Juerg Haefliger Acked-by: Jean Delvare Signed-off-by: Mark M. Hoffman commit 3dfcf231784750fa457952dd1c13e29b6379f0de Author: Hans de Goede Date: Tue Feb 26 19:34:48 2008 +0100 hwmon: (abituguru3) Identify Abit AW8D board as such This patch identifies the Abit AW8D board as such, and adds support for its aux5 fan connector Signed-off-by: Hans de Goede Acked-by: Jean Delvare Signed-off-by: Mark M. Hoffman commit 57200b888dea1069f5bf862ac6494d5b1a6e73b6 Author: Jean Delvare Date: Sat Feb 23 10:57:53 2008 +0100 hwmon: Update the sysfs interface documentation * Document the characteristics of libsensors 3.0.0 and 3.0.1. * The sysfs interface is no longer subject to changes. Signed-off-by: Jean Delvare Acked-by: Juerg Haefliger Signed-off-by: Mark M. Hoffman commit 99ec83cbbd53e6e3262018ca13728849c122daf5 Author: Jean Delvare Date: Sat Apr 26 16:34:26 2008 +0200 hwmon: (adt7473) Initialize max_duty_at_overheat before use data->max_duty_at_overheat is not updated in adt7473_update_device, so it might be used before it is initialized (if the user reads from sysfs file max_duty_at_crit before writing to it.) Signed-off-by: Jean Delvare Acked-by: Darrick J. Wong Signed-off-by: Mark M. Hoffman commit 95241de2d47d268b0cedc443a2df6171ddf48f47 Author: Jean Delvare Date: Thu Apr 3 10:40:39 2008 +0200 hwmon: (lm85) Fix function RANGE_TO_REG() Function RANGE_TO_REG() is broken. For a requested range of 2000 (2 degrees C), it will return an index value of 15, i.e. 80.0 degrees C, instead of the expected index value of 0. All other values are handled properly, just 2000 isn't. The bug was introduced back in November 2004 by this patch: http://git.kernel.org/?p=linux/kernel/git/tglx/history.git;a=commit;h=1c28d80f1992240373099d863e4996cdd5d646d0 While this can be fixed easily with the current code, I'd rather rewrite the whole function in a way which is more obviously correct. Signed-off-by: Jean Delvare Cc: Justin Thiessen Signed-off-by: Mark M. Hoffman commit 4734884cabda1e0c42ac517fd04fa63437622538 Author: Suresh Siddha Date: Fri May 23 16:26:37 2008 -0700 x86: fix broken math-emu with lazy allocation of fpu area Fix the math emulation that got broken with the recent lazy allocation of FPU area. init_fpu() need to be added for the math-emulation path aswell for the FPU area allocation. math emulation enabled kernel booted fine with this, in the presence of "no387 nofxsr" boot param. Signed-off-by: Suresh Siddha Cc: hpa@zytor.com Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner commit 492a7ea5bcf263ee02a9eb6a3ab0222a1946fade Author: Abhishek Sagar Date: Sun May 25 00:10:04 2008 +0530 ftrace: fix updating of ftrace_update_cnt Hi Ingo/Steven, Ftrace currently maintains an update count which includes false updates, i.e, updates which failed. If anything, such failures should be tracked by some separate variable, but this patch provides a minimal fix. Signed-off-by: Abhishek Sagar Cc: rostedt@goodmis.org Signed-off-by: Thomas Gleixner commit ffdaa3582b6b39d625d585d07e329ffdc925e971 Author: Abhishek Sagar Date: Sat May 24 23:45:02 2008 +0530 ftrace: safe traversal of ftrace_hash hlist Hi Steven, I noticed that concurrent instances of ftrace_record_ip() have a race between ftrace_hash list traversal during ftrace_ip_in_hash() (before acquiring ftrace_shutdown_lock) and ftrace_add_hash(). If it's so then this should fix it. Signed-off-by: Abhishek Sagar Cc: rostedt@goodmis.org Signed-off-by: Thomas Gleixner commit ccbfac2923c9febaeaf07a50054027a92b502718 Author: Steven Rostedt Date: Thu May 22 14:31:07 2008 -0400 ftrace: powerpc clean ups This patch cleans up the ftrace code in PowerPC based on the comments from Michael Ellerman. Signed-off-by: Steven Rostedt Cc: Michael Ellerman Cc: proski@gnu.org Cc: a.p.zijlstra@chello.nl Cc: Pekka Paalanen Cc: Steven Rostedt Cc: linuxppc-dev@ozlabs.org Cc: Soeren Sandmann Pedersen Cc: paulus@samba.org Signed-off-by: Thomas Gleixner commit 41bc8144d02028133bcd1d545023c6f49e8b2411 Author: Steven Rostedt Date: Thu May 22 11:49:22 2008 -0400 ftrace: fix up cmdline recording The new work with converting the trace hooks over to markers broke the command line recording of ftrace. This patch fixes it again. Signed-off-by: Steven Rostedt Cc: Peter Zijlstra Cc: Mathieu Desnoyers Signed-off-by: Thomas Gleixner commit 41c52c0db9607e59f90da7da5309489fa06e887f Author: Steven Rostedt Date: Thu May 22 11:46:33 2008 -0400 ftrace: set_ftrace_notrace feature While debugging latencies in the RT kernel, I found that it would be nice to be able to filter away functions from the trace than just to filter on functions. I added a new interface to the debugfs tracing directory called set_ftrace_notrace When dynamic frace is enabled, this lets you filter away functions that will not be recorded in the trace. It is similar to adding 'notrace' to those functions but by doing it without recompiling the kernel. Here's how set_ftrace_filter and set_ftrace_notrace interact. Remember, if set_ftrace_filter is set, it removes all functions from the trace execpt for those listed in the set_ftrace_filter. set_ftrace_notrace will prevent those functions from being traced. If you were to set one function in both set_ftrace_filter and set_ftrace_notrace and that function was the same, then you would end up with an empty trace. the set of functions to trace is: set_ftrace_filter == empty then all functions not in set_ftrace_notrace else set of the set_ftrace_filter and not in set of set_ftrace_notrace. Signed-off-by: Steven Rostedt Signed-off-by: Thomas Gleixner commit da89a7a2536c46e76a1a4351a70a8b8417e5fed1 Author: Steven Rostedt Date: Thu May 22 00:22:20 2008 -0400 ftrace: remove printks from irqsoff trace Printing out new max latencies was fine for the old RT tracer. But for mainline it is a bit messy. We also need to test if the run queue is locked before we can do the print. This means that we may not be printing out latencies if the run queue is locked on another CPU. This produces inconsistencies in the output. This patch simply removes the print altogether. Signed-off-by: Steven Rostedt Cc: pq@iki.fi Cc: proski@gnu.org Cc: sandmann@redhat.com Cc: a.p.zijlstra@chello.nl Signed-off-by: Thomas Gleixner commit 7e18d8e701b6798a5df11e0a16881a60ab1018b6 Author: Steven Rostedt Date: Thu May 22 00:22:19 2008 -0400 ftrace: add function tracing to wake up tracing This patch adds function tracing to the functions that are called on the CPU of the task being traced. Signed-off-by: Steven Rostedt Cc: pq@iki.fi Cc: proski@gnu.org Cc: sandmann@redhat.com Cc: a.p.zijlstra@chello.nl Signed-off-by: Thomas Gleixner commit 4902f8849da6d2805bd291551a6dfd48f1b4f604 Author: Steven Rostedt Date: Thu May 22 00:22:18 2008 -0400 ftrace: move ftrace_special to trace.c Move the ftrace_special out of sched_switch to trace.c. Signed-off-by: Steven Rostedt Cc: pq@iki.fi Cc: proski@gnu.org Cc: sandmann@redhat.com Cc: a.p.zijlstra@chello.nl Signed-off-by: Thomas Gleixner commit 19384c0314342222b18d4c7f09cdce1ca74dfd2a Author: Steven Rostedt Date: Thu May 22 00:22:16 2008 -0400 ftrace: limit use of check pages The check_pages function is called often enough that it can cause problems with trace outputs or even bringing the system to a halt. This patch limits the check_pages to the places that are most likely to have problems. The check is made at the flip between the global array and the max save array, as well as when the size of the buffers changes and the self tests. This patch also removes the BUG_ON from check_pages and replaces it with a WARN_ON and disabling of the tracer. Signed-off-by: Steven Rostedt Cc: pq@iki.fi Cc: proski@gnu.org Cc: sandmann@redhat.com Cc: a.p.zijlstra@chello.nl Signed-off-by: Thomas Gleixner commit 1a20d3ecf5c2a6435df2b756435b1eb1c657d45b Author: H. Peter Anvin Date: Mon May 26 13:36:53 2008 -0700 x86: string_32.h: workaround for broken gcc 4.0 gcc 4.0 fails to allocate %eax for the pattern operand in the rep store instructions used by memset; force it to do so by declaring a register variable. Signed-off-by: H. Peter Anvin commit d39bb32304fc451018134b1e2bd0beedd2b505d0 Author: Arnd Bergmann Date: Tue May 20 19:17:02 2008 +0200 x86-mce: BKL pushdown Signed-off-by: Arnd Bergmann commit cca91268a2eb873be777cf8d5c73e084858049bb Author: Arnd Bergmann Date: Tue May 20 19:17:01 2008 +0200 vmwatchdog: BKL pushdown Signed-off-by: Arnd Bergmann commit f7fb703dd56706df1c69452fe118268812c617af Author: Arnd Bergmann Date: Tue May 20 19:16:59 2008 +0200 vmcp: BKL pushdown Signed-off-by: Arnd Bergmann commit efa701a0020e3b620470fd17c0d8236de78fc577 Author: Arnd Bergmann Date: Tue May 20 19:16:58 2008 +0200 via-pmu: BKL pushdown Signed-off-by: Arnd Bergmann commit f41cb532db2b089b64e711e0530478644b2d9dd5 Author: Arnd Bergmann Date: Tue May 20 19:16:57 2008 +0200 uml-random: BKL pushdown Signed-off-by: Arnd Bergmann commit 4de643c1efb3f25eefaf521e7dd914eda3fcd7d6 Author: Arnd Bergmann Date: Tue May 20 19:16:56 2008 +0200 uml-mmapper: BKL pushdown Signed-off-by: Arnd Bergmann commit ee2aa76e8f9e8425398800d45d1051dbd9231b88 Author: Arnd Bergmann Date: Tue May 20 19:16:54 2008 +0200 uml-harddog: BKL pushdown Signed-off-by: Arnd Bergmann commit 8f936cb50e190806b4ee9e2a726a380f94aa491f Author: Arnd Bergmann Date: Tue May 20 19:16:53 2008 +0200 uinput: BKL pushdown Signed-off-by: Arnd Bergmann commit 5d03ce8757ddacfce01f0725a340565c2ef59f3f Author: Arnd Bergmann Date: Tue May 20 19:16:52 2008 +0200 uctrl: BKL pushdown Signed-off-by: Arnd Bergmann commit 4752987aac67f9d97085aae11ce6a6c640b0936d Author: Arnd Bergmann Date: Tue May 20 19:16:51 2008 +0200 tpm-tpm: BKL pushdown Signed-off-by: Arnd Bergmann commit 66f870e99188576d9d66d112fbac0040da8ae3a6 Author: Arnd Bergmann Date: Tue May 20 19:16:50 2008 +0200 sparc64-rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit 8ab111783676574b569d5b8e881efef799e10ad6 Author: Arnd Bergmann Date: Tue May 20 19:16:48 2008 +0200 sparc-apc: BKL pushdown Signed-off-by: Arnd Bergmann commit 691adaccbd63879d35fa26926df1fea6595edccb Author: Arnd Bergmann Date: Tue May 20 19:16:46 2008 +0200 sonypi: BKL pushdown Signed-off-by: Arnd Bergmann commit 225f186f08a040e37621b96d2c57b8fa1ea61b7b Author: Arnd Bergmann Date: Tue May 20 19:16:45 2008 +0200 sony-laptop: BKL pushdown Signed-off-by: Arnd Bergmann commit a40dce5b0e2e9fadf794650075dad901615db26c Author: Arnd Bergmann Date: Tue May 20 19:16:43 2008 +0200 serio: BKL pushdown Signed-off-by: Arnd Bergmann commit 9daddf09902569c28167d4eef5ac0642f7c648b8 Author: Arnd Bergmann Date: Tue May 20 19:16:42 2008 +0200 scsi-tgt: BKL pushdown Signed-off-by: Arnd Bergmann commit a8e0353bc087bd32cf5c29693b61c616e9ba3344 Author: Arnd Bergmann Date: Tue May 20 19:16:40 2008 +0200 sbus-rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit beb543d59ab5d808cd4967fa809bd02dd3f087e1 Author: Arnd Bergmann Date: Tue May 20 19:16:39 2008 +0200 rtc-rtc-m41t80: BKL pushdown Signed-off-by: Arnd Bergmann commit c0ece61b4bd9a882d5e842cd9efb2143da3a43c9 Author: Arnd Bergmann Date: Tue May 20 19:16:37 2008 +0200 rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit 653eef685a18ccc7be4135179f3a686c434a7ecf Author: Arnd Bergmann Date: Tue May 20 19:16:35 2008 +0200 riowatchdog: BKL pushdown Signed-off-by: Arnd Bergmann commit 478dfeabc7e4499fa1c5b009537433f75ef939d8 Author: Arnd Bergmann Date: Tue May 20 19:16:34 2008 +0200 power-user: BKL pushdown Signed-off-by: Arnd Bergmann commit 26834c79b101ff4742711c5ad886a3cdbc502a1c Author: Arnd Bergmann Date: Tue May 20 19:16:33 2008 +0200 pm_qos_params: BKL pushdown [jmc: added ] Signed-off-by: Arnd Bergmann Signed-off-by: Jonathan Corbet commit 5070d4e562b48f358760815e54c4aa9d80c503a4 Author: Arnd Bergmann Date: Tue May 20 19:16:31 2008 +0200 parisc-kernel-perf: BKL pushdown Signed-off-by: Arnd Bergmann commit 92f7edafb381f91bee9ab31ce1eca1bb99faa09a Author: Arnd Bergmann Date: Tue May 20 19:16:30 2008 +0200 parisc-eisa_eeprom: BKL pushdown Signed-off-by: Arnd Bergmann commit 0b7546603af1fcd4324f32f469deb1eebdf2ed19 Author: Arnd Bergmann Date: Tue May 20 19:16:29 2008 +0200 openprom: BKL pushdown Signed-off-by: Arnd Bergmann commit ea29d6656253c7a3d58eba9787173cb0c48ec93b Author: Arnd Bergmann Date: Tue May 20 19:16:28 2008 +0200 ocfs2-stack_user: BKL pushdown Signed-off-by: Arnd Bergmann commit 21484fa702b74e0d34a1f0c890474708e7d8b37b Author: Arnd Bergmann Date: Tue May 20 19:16:26 2008 +0200 nvram: BKL pushdown Signed-off-by: Arnd Bergmann commit 39f963a20d0bd041f15f3f671cd8e8d3223abc02 Author: Arnd Bergmann Date: Tue May 20 19:16:24 2008 +0200 net-tun: BKL pushdown Signed-off-by: Arnd Bergmann commit 5b193f79c7fd92bcd0a7795822aa49fc78f94ec4 Author: Arnd Bergmann Date: Tue May 20 19:16:23 2008 +0200 mwave-mwavedd: BKL pushdown Signed-off-by: Arnd Bergmann commit 7b6dae1aed0635e46503015d556972c4b33076d6 Author: Arnd Bergmann Date: Tue May 20 19:16:22 2008 +0200 mvme16x-rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit 34539e3c67362ec1ab82be17d517d766e9b4661d Author: Arnd Bergmann Date: Tue May 20 19:16:20 2008 +0200 mousedev: BKL pushdown Signed-off-by: Arnd Bergmann commit 71ae0d4e620b9a9162bef996b4db5959c590e863 Author: Arnd Bergmann Date: Tue May 20 19:16:18 2008 +0200 monwriter: BKL pushdown Signed-off-by: Arnd Bergmann commit 489faccdfe7f037f609e4b8fa16969ff197922aa Author: Arnd Bergmann Date: Tue May 20 19:16:17 2008 +0200 monreader: BKL pushdown [jmc: added ] Signed-off-by: Arnd Bergmann Signed-off-by: Jonathan Corbet commit ff7b4f489cdd3a0557df310f7731bed3e5d8787b Author: Arnd Bergmann Date: Tue May 20 19:16:16 2008 +0200 microcode: BKL pushdown Signed-off-by: Arnd Bergmann commit 2ed699ddfbdb19ccc9a672275a9cb8394c4f2574 Author: Arnd Bergmann Date: Tue May 20 19:16:14 2008 +0200 message-i2o-i2o_config: BKL pushdown Signed-off-by: Arnd Bergmann commit 2cb69926891206c7961e09ab998b035d6d036053 Author: Arnd Bergmann Date: Tue May 20 19:16:13 2008 +0200 megaraid: BKL pushdown Signed-off-by: Arnd Bergmann commit c60f97b22bb209dadca424a19e5938bba8de6e20 Author: Arnd Bergmann Date: Tue May 20 19:16:12 2008 +0200 media-radio-miropcm20-rds: BKL pushdown Signed-off-by: Arnd Bergmann commit 5d7816603ce0e312ae7c0e1922c2119d54aad62e Author: Arnd Bergmann Date: Tue May 20 19:16:11 2008 +0200 macintosh-smu: BKL pushdown Signed-off-by: Arnd Bergmann commit d623a1b8a574ca6a7cb2bd54a236020dc7f5ce2a Author: Arnd Bergmann Date: Tue May 20 19:16:10 2008 +0200 lcd: BKL pushdown Signed-off-by: Arnd Bergmann commit 9a73bdbfbba939e5f85161067fef224541b083ee Author: Arnd Bergmann Date: Tue May 20 19:16:08 2008 +0200 jsflash: BKL pushdown Signed-off-by: Arnd Bergmann commit a8859b5bfee3c8b45de5f1b50f4c508f4f56b15f Author: Arnd Bergmann Date: Tue May 20 19:16:06 2008 +0200 irnet_ppp: BKL pushdown Signed-off-by: Arnd Bergmann commit 3feb37381d1b27e1588c4a7570aa47f93631bea5 Author: Arnd Bergmann Date: Tue May 20 19:16:04 2008 +0200 ipmi-watchdog: BKL pushdown Signed-off-by: Arnd Bergmann commit 41e5a58c43eef6b99fdb34c1fa9c4bb7b7d16b6c Author: Arnd Bergmann Date: Tue May 20 19:16:03 2008 +0200 ip27-rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit c5e8b0fd79922105090b0064b8ca88723b5e97a8 Author: Arnd Bergmann Date: Tue May 20 19:16:02 2008 +0200 infiniband-ucma: BKL pushdown Signed-off-by: Arnd Bergmann commit 3f0b5429b37fb3ed67222b7c2a706fe5ff0ed814 Author: Arnd Bergmann Date: Tue May 20 19:16:00 2008 +0200 hw-random: BKL pushdown Signed-off-by: Arnd Bergmann commit d314a283538d5f2db6a0d4dbd324a097cd24bfcc Author: Arnd Bergmann Date: Tue May 20 19:15:59 2008 +0200 hpet: BKL pushdown Signed-off-by: Arnd Bergmann commit 6c32bb32b2b071458e4b84cbdfc98904b00bc67d Author: Arnd Bergmann Date: Tue May 20 19:15:58 2008 +0200 hp_sdc_rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit d2a5e331e1ada9781a9bdba93bacaf28a9aa96dd Author: Arnd Bergmann Date: Tue May 20 19:15:57 2008 +0200 hdpu_cpustate: BKL pushdown Signed-off-by: Arnd Bergmann commit 830aa4da05d6990da3223822693225b96561146c Author: Arnd Bergmann Date: Tue May 20 19:15:55 2008 +0200 genrtc: BKL pushdown Signed-off-by: Arnd Bergmann commit 4c21015aee93bf0324276fda52553c79eb8bb449 Author: Arnd Bergmann Date: Tue May 20 19:15:54 2008 +0200 flash: BKL pushdown Signed-off-by: Arnd Bergmann commit b1a3e8eac26f0c1859725b41487563ca871c7ca9 Author: Arnd Bergmann Date: Tue May 20 19:15:53 2008 +0200 envctrl: BKL pushdown Signed-off-by: Arnd Bergmann commit 0ed52f03131bf8564558f3cd8e1035e3205beee9 Author: Arnd Bergmann Date: Tue May 20 19:15:52 2008 +0200 efirtc: BKL pushdown Signed-off-by: Arnd Bergmann commit 98aae7c9967b03bf560410fd79c295884e33c605 Author: Arnd Bergmann Date: Tue May 20 19:15:50 2008 +0200 ds1620: BKL pushdown Signed-off-by: Arnd Bergmann commit 6336955ce31ed4e801504b23b05a52f7a819eebf Author: Arnd Bergmann Date: Tue May 20 19:15:49 2008 +0200 ds1286: BKL pushdown Signed-off-by: Arnd Bergmann commit c5bd6073072bced212cf0848fb36b3a3292140cc Author: Arnd Bergmann Date: Tue May 20 19:15:48 2008 +0200 dlm-user: BKL pushdown Signed-off-by: Arnd Bergmann commit 98c9280785ee0c12f62ab4ff974aa12bed639cf3 Author: Arnd Bergmann Date: Tue May 20 19:15:47 2008 +0200 display7seg: BKL pushdown Signed-off-by: Arnd Bergmann commit 0e34e2a576453ff6c4a2931fdd56921bf1214324 Author: Arnd Bergmann Date: Tue May 20 19:15:46 2008 +0200 crypto-zcrypt_api: BKL pushdown Signed-off-by: Arnd Bergmann commit 4acd8f3b63f0487c4b90097420c40781fc888610 Author: Arnd Bergmann Date: Tue May 20 19:15:45 2008 +0200 crypto-prng: BKL pushdown Signed-off-by: Arnd Bergmann commit 5becffa9e2379b487dfb1e9fc021d89587ae3a10 Author: Arnd Bergmann Date: Tue May 20 19:15:43 2008 +0200 cpwatchdog: BKL pushdown Signed-off-by: Arnd Bergmann commit a09b6054509522f86d15f4812c7f7467a59d5392 Author: Arnd Bergmann Date: Tue May 20 19:15:42 2008 +0200 bvme6000-rtc: BKL pushdown Signed-off-by: Arnd Bergmann commit 19f5f8f54d542abd46de43ffe28c00053540c8e9 Author: Arnd Bergmann Date: Tue May 20 19:15:41 2008 +0200 briq_panel: BKL pushdown Signed-off-by: Arnd Bergmann commit 71ae22a0f267d0caf495fc9a4a51706dcaad480d Author: Arnd Bergmann Date: Tue May 20 19:15:40 2008 +0200 bluetooth-vhci: BKL pushdown Signed-off-by: Arnd Bergmann commit a6d9b6890482b17745535626d465aceb8a4e828f Author: Arnd Bergmann Date: Tue May 20 19:15:38 2008 +0200 block-dasd_eer: BKL pushdown Signed-off-by: Arnd Bergmann commit 655ccba8ad09cbdad49d6c4cfe9749329fac99df Author: Arnd Bergmann Date: Tue May 20 19:15:37 2008 +0200 bf561-coreb: BKL pushdown Signed-off-by: Arnd Bergmann commit b7f2784c252254d7a5fec5e7d70ead3f6d294e45 Author: Arnd Bergmann Date: Tue May 20 19:15:36 2008 +0200 basler-excite: BKL pushdown Signed-off-by: Arnd Bergmann commit 96acd8900f8681b63b3d2fb116334268e8849c94 Author: Arnd Bergmann Date: Tue May 20 19:15:34 2008 +0200 apm_32: BKL pushdown Signed-off-by: Arnd Bergmann commit 91665b29d6963c60e851bd7e33342ae4f073d727 Author: Arnd Bergmann Date: Tue May 20 19:15:33 2008 +0200 apm-emulation: BKL pushdown Signed-off-by: Arnd Bergmann commit fb4ba280fadc15c9f6e498f73c01dd24d3fcc692 Author: Arnd Bergmann Date: Tue May 20 19:15:32 2008 +0200 ans-lcd: BKL pushdown Signed-off-by: Arnd Bergmann commit f6a2832045fb938d9551b57212cf49a6b18b6dfd Author: Arnd Bergmann Date: Tue May 20 19:15:30 2008 +0200 agp-frontend: BKL pushdown Signed-off-by: Arnd Bergmann commit 35e447fc2fa408df8af2c8735f83a90cafe651ff Author: Linus Torvalds Date: Mon May 19 19:53:01 2008 -0700 Replace BKL with superblock lock in fat/msdos/vfat This replaces the use of the BKL in the FAT family of filesystems with the existing superblock lock instead. The code already appears to do mostly proper locking with its own private spinlocks (and mutexes), but while the BKL could possibly have been dropped entirely, converting it to use the superblock lock (which is just a regular mutex) is the conservative thing to do. As a per-filesystem mutex, it not only won't have any of the possible latency issues related to the BKL, but the lock is obviously private to the particular filesystem instance and will thus not cause problems for entirely unrelated users like the BKL can. Signed-off-by: Linus Torvalds Cc: OGAWA Hirofumi Signed-off-by: Jonathan Corbet commit 263a8d120eb4179dade816673c11fecd1abf60ac Author: Stephen Rothwell Date: Mon May 19 16:06:52 2008 +1000 bkl-removal viotape fixup Signed-off-by: Stephen Rothwell Signed-off-by: Jonathan Corbet commit 95cd3c92a06bba9523fa9e1eab56b3f368ec19ee Author: Jonathan Corbet Date: Sun May 18 15:40:00 2008 -0600 Remove the lock_kernel() call from chrdev_open() All in-kernel char device open() functions now either have their own lock_kernel() calls or clearly do not need one. Signed-off-by: Jonathan Corbet commit 9694d93b1e4272015a867c54b34a24b13a23daf8 Author: Jonathan Corbet Date: Sun May 18 15:39:11 2008 -0600 Add a comment in chrdev_open() I stared at this code for a while and almost deleted it before understanding crept into my slow brain. Hopefully this makes life easier for the next person to happen on it. Signed-off-by: Jonathan Corbet commit 023c37d20b8a85438869f22e962bbf905644883f Author: Jonathan Corbet Date: Sun May 18 15:32:43 2008 -0600 Add a bunch of cycle_kernel_lock() calls All of the open() functions which don't need the BKL on their face may still depend on its acquisition to serialize opens against driver initialization. So make those functions acquire then release the BKL to be on the safe side. Signed-off-by: Jonathan Corbet commit aefe84079f9dac5deb7fa0e1d40e190318c1d875 Author: Jonathan Corbet Date: Sun May 18 14:27:41 2008 -0600 Add cycle_kernel_lock() A number of driver functions are so obviously trivial that they do not need the big kernel lock - at least not overtly. It turns out that the acquisition of the BKL in driver open() functions can perform a sort of poor-hacker's serialization function, delaying the open operation until the driver is certain to have completed its initialization. Add a simple cycle_kernel_lock() function for these cases to make it clear that there is no need to *hold* the BKL, just to be sure that we can acquire it. Signed-off-by: Jonathan Corbet commit 2452a6cdd27725488b39910daab285e3ae49efc4 Author: Jonathan Corbet Date: Fri May 16 14:28:31 2008 -0600 videodev: BKL pushdown Put explicit lock_kernel() calls into videodev_open(). That function itself seems OK, but one never knows about all the open() functions provided by underlying video drivers. Signed-off-by: Jonathan Corbet commit d99f6bc6d5d278e2aaa4da50d9b0e324e549226e Author: Jonathan Corbet Date: Fri May 16 14:25:20 2008 -0600 usbdev: BKL pushdown Add explicit lock_kernel() calls to usbdev_open() Signed-off-by: Jonathan Corbet commit 395a7592bcc9104e7f40f0eccffcc9a3bb82221d Author: Jonathan Corbet Date: Fri May 16 14:23:31 2008 -0600 USB Monitor: BKL pushdown Add explicit lock_kernel() calls to mon_bin_open() Signed-off-by: Jonathan Corbet commit 69c5326d7c625bf8ca2f52576ba5cf1e527a6707 Author: Jonathan Corbet Date: Fri May 16 14:21:30 2008 -0600 printer gadget: BKL pushdown Add explicit lock_kernel() calls to printer_open() Signed-off-by: Jonathan Corbet commit 11dac209eb0633329d75e222671cc0081f7f44b9 Author: Jonathan Corbet Date: Fri May 16 14:19:56 2008 -0600 adb: BKL pushdown Put explicit lock_kernel() calls in adb_open(). The fact that adb_release() already has them suggests this is necessary. Signed-off-by: Jonathan Corbet commit 6f3771d8a7cfe025046c737d07500e3496305f85 Author: Jonathan Corbet Date: Fri May 16 14:17:33 2008 -0600 divamnt: BKL pushdown Put explicit lock_kernel() calls into maint_open(). Signed-off-by: Jonathan Corbet commit c2798f8615c566f5e751f6d4c00a44dd89a33b74 Author: Jonathan Corbet Date: Fri May 16 14:15:33 2008 -0600 CAPI: BKL pushdown Put explicit lock_kernel() calls into capi_open() Signed-off-by: Jonathan Corbet commit 146e7211cd262e68982aae961689088fd67aa474 Author: Jonathan Corbet Date: Fri May 16 14:12:52 2008 -0600 changer: BKL pushdown Add lock_kernel() calls to ch_open(), though the existing locking looks adequate. Signed-off-by: Jonathan Corbet commit 68e5776d686c83bd69392954345f6711144c64e6 Author: Jonathan Corbet Date: Fri May 16 14:11:09 2008 -0600 dpt_i20: BKL pushdown Add lock_kernel() calls to adpt_open() Signed-off-by: Jonathan Corbet commit 59e5d10f04ba1ebb37fef346d97057d42a21d3fd Author: Jonathan Corbet Date: Fri May 16 14:08:58 2008 -0600 videopix: BKL pushdown Add explicit lock_kernel() calls to vfc_open(). Signed-off-by: Jonathan Corbet commit 1b376aa4008fbe5c38ad75ac830940f2467857ed Author: Jonathan Corbet Date: Fri May 16 14:06:45 2008 -0600 bpp: bkl pushdown Put explicit lock_kernel() calls into bpp_open(). It has locking, but I'm not convinced it won't race with ioctl(). Signed-off-by: Jonathan Corbet commit 621a98dceb6e6f1e40c09949e0653905f74ccd93 Author: Jonathan Corbet Date: Fri May 16 14:03:05 2008 -0600 phantom: BKL pushdown Add explicit lock_kernel calls to phantom_open(). Signed-off-by: Jonathan Corbet commit 4265049bf9d65d9bf56cbb8d463fc6cc81f85a87 Author: Jonathan Corbet Date: Fri May 16 14:01:12 2008 -0600 infiniband: more BKL pushdown Be extra-cautious and protect the remaining open() functions. Signed-off-by: Jonathan Corbet commit dc7f88a01f0102345f768fd632dba00a86d61bb9 Author: Jonathan Corbet Date: Fri May 16 13:57:31 2008 -0600 dsp56k: BKL pushdown Put explicit lock_kernel calls into dsp56k_open(). [Stupid missing label error fixed] Signed-off-by: Jonathan Corbet commit 7c9f8861e6c9c839f913e49b98c3854daca18f27 Author: Eric Sandeen Date: Tue Apr 22 16:38:23 2008 -0500 stackprotector: use canary at end of stack to indicate overruns at oops time (Updated with a common max-stack-used checker that knows about the canary, as suggested by Joe Perches) Use a canary at the end of the stack to clearly indicate at oops time whether the stack has ever overflowed. This is a very simple implementation with a couple of drawbacks: 1) a thread may legitimately use exactly up to the last word on the stack -- but the chances of doing this and then oopsing later seem slim 2) it's possible that the stack usage isn't dense enough that the canary location could get skipped over -- but the worst that happens is that we don't flag the overrun -- though this happens fairly often in my testing :( With the code in place, an intentionally-bloated stack oops might do: BUG: unable to handle kernel paging request at ffff8103f84cc680 IP: [] update_curr+0x9a/0xa8 PGD 8063 PUD 0 Thread overran stack or stack corrupted Oops: 0000 [1] SMP CPU 0 ... ... unless the stack overrun is so bad that it corrupts some other thread. Signed-off-by: Eric Sandeen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b40a4392a3c262e0d1b5379b4e142a8eefa63439 Author: Arjan van de Ven Date: Fri Apr 18 06:16:45 2008 -0700 stackprotector: turn not having the right gcc into a #warning If the user selects the stack-protector config option, but does not have a gcc that has the right bits enabled (for example because it isn't build with a glibc that supports TLS, as is common for cross-compilers, but also because it may be too old), then the runtime test fails right now. This patch adds a warning message for this scenario. This warning accomplishes two goals 1) the user is informed that the security option he selective isn't available 2) the user is suggested to turn of the CONFIG option that won't work for him, and would make the runtime test fail anyway. Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b719ac56c0032bc1602914c6ea70b0f1581b08c7 Author: Daniel Walker Date: Mon Apr 14 10:03:50 2008 -0700 panic.c: fix whitespace additions trivial: remove white space addition in stack protector Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 54371a43a66f4477889769b4fa00df936855dc8f Author: Arjan van de Ven Date: Fri Feb 15 15:33:12 2008 -0800 x86: add CONFIG_CC_STACKPROTECTOR self-test This patch adds a simple self-test capability to the stackprotector feature. The test deliberately overflows a stack buffer and then checks if the canary trap function gets called. Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 113c5413cf9051cc50b88befdc42e3402bb92115 Author: Ingo Molnar Date: Thu Feb 14 10:36:03 2008 +0100 x86: unify stackprotector features streamline the stackprotector features under a single option and make the stronger feature the one accessible. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 960a672bd9f1ec06e8f197cf81a50fd07ea02e7f Author: Ingo Molnar Date: Thu Feb 14 09:56:04 2008 +0100 x86: stackprotector: mix TSC to the boot canary mix the TSC to the boot canary. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 420594296838fdc9a674470d710cda7d1487f9f4 Author: Ingo Molnar Date: Thu Feb 14 09:44:08 2008 +0100 x86: fix the stackprotector canary of the boot CPU Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 18aa8bb12dcb10adc3d7c9d69714d53667c0ab7f Author: Ingo Molnar Date: Thu Feb 14 09:42:02 2008 +0100 stackprotector: add boot_init_stack_canary() add the boot_init_stack_canary() and make the secondary idle threads use it. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 9b5609fd773e6ac0b1d6d6e1bf68f32cca64e06b Author: Ingo Molnar Date: Thu Feb 14 09:41:09 2008 +0100 stackprotector: include files create for core kernel files to include. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 72370f2a5b227bd3817593a6b15ea3f53f51dfcb Author: Ingo Molnar Date: Wed Feb 13 16:15:34 2008 +0100 x86: if stackprotector is enabled, thn use stack-protector-all by default also enable the rodata and nx tests. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5cb273013e182a35e7db614d3e20a144cba71e53 Author: Ingo Molnar Date: Thu Feb 14 09:07:01 2008 +0100 panic: print out stacktrace if DEBUG_BUGVERBOSE if CONFIG_DEBUG_BUGVERBOSE is set then the user most definitely wanted to see as much information about kernel crashes as possible - so give them at least a stack dump. this is particularly useful for stackprotector related panics, where the stacktrace can give us the exact location of the (attempted) attack. Pointed out by pageexec@freemail.hu in the stackprotector breakage threads. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 517a92c4e19fcea815332d3155e9fb7723251274 Author: Ingo Molnar Date: Thu Feb 14 09:02:13 2008 +0100 panic: print more informative messages on stackprotect failure pointed out by pageexec@freemail.hu: we just simply panic() when there's a stackprotector attack - giving the attacked person no information about what kernel code the attack went against. print out the attacked function. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 7e09b2a02dae4616a5a26000169964b32f86cd35 Author: Ingo Molnar Date: Thu Feb 14 09:22:34 2008 +0100 x86: fix canary of the boot CPU's idle task the boot CPU's idle task has a zero stackprotector canary value. this is a special task that is never forked, so the fork code does not randomize its canary. Do it when we hit cpu_idle(). Academic sidenote: this means that the early init code runs with a zero canary and hence the canary becomes predictable for this short, boot-only amount of time. Although attack vectors against early init code are very rare, it might make sense to move this initialization to an earlier point. (to one of the early init functions that never return - such as start_kernel()) Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ce22bd92cba0958e052cb1ce0f89f1d3a02b60a7 Author: Arjan van de Ven Date: Mon May 12 15:44:31 2008 +0200 x86: setup stack canary for the idle threads The idle threads for non-boot CPUs are a bit special in how they are created; the result is that these don't have the stack canary set up properly in their PDA. Easiest fix is to just always set the PDA up correctly when entering the idle thread; this is a NOP for the boot cpu. Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e00320875d0cc5f8099a7227b2f25fbb3231268d Author: Ingo Molnar Date: Thu Feb 14 08:48:23 2008 +0100 x86: fix stackprotector canary updates during context switches fix a bug noticed and fixed by pageexec@freemail.hu. if built with -fstack-protector-all then we'll have canary checks built into the __switch_to() function. That does not work well with the canary-switching code there: while we already use the %rsp of the new task, we still call __switch_to() whith the previous task's canary value in the PDA, hence the __switch_to() ssp prologue instructions will store the previous canary. Then we update the PDA and upon return from __switch_to() the canary check triggers and we panic. so update the canary after we have called __switch_to(), where we are at the same stackframe level as the last stackframe of the next (and now freshly current) task. Note: this means that we call __switch_to() [and its sub-functions] still with the old canary, but that is not a problem, both the previous and the next task has a high-quality canary. The only (mostly academic) disadvantage is that the canary of one task may leak onto the stack of another task, increasing the risk of information leaks, were an attacker able to read the stack of specific tasks (but not that of others). To solve this we'll have to reorganize the way we switch tasks, and move the PDA setting into the switch_to() assembly code. That will happen in another patch. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4c7f8900f1d8a0e464e7092f132a7e93f7c20f2f Author: Ingo Molnar Date: Sat Feb 23 07:06:55 2008 +0100 x86: stackprotector & PARAVIRT fix on paravirt enabled 64-bit kernels the paravirt ops do function calls themselves - which is bad with the stackprotector - for example pda_init() loads 0 into %gs and then does MSR_GS_BASE write (which modifies gs.base) - but that MSR write is a function call on paravirt, which with stackprotector tries to read the stack canary from the PDA ... crashing the bootup. the solution was suggested by Arjan van de Ven: to exclude paravirt.c from stackprotector, too many lowlevel functionality is in it. It's not like we'll have paravirt functions with character arrays on their stack anyway... Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 54064600981ab0fe977b0e760732c30f4472d693 Author: Alan Cox Date: Sun May 25 23:43:11 2008 -0700 irda: Push BKL down into irda ioctl handlers Signed-off-by: Alan Cox Signed-off-by: David S. Miller commit 866988edacebb6f1982266b51fc344c969f481ec Author: Alan Cox Date: Sun May 25 23:41:40 2008 -0700 wanrouter: Push down BKL Signed-off-by: Alan Cox Signed-off-by: David S. Miller commit f3ff8a4d80e8ec867caf60b120c65db21f820e6d Author: Alan Cox Date: Sun May 25 23:40:58 2008 -0700 ppp: push BKL down into the driver I've pushed it down as far as I dare at this point. Someone familiar with the internal PPP semantics can probably push it further. Another step to eliminating the old BKL ioctl usage. Signed-off-by: Alan Cox Signed-off-by: David S. Miller commit b714bfcbf7b40eccb68de8e387a3df8afe2bf63c Author: Sean Hefty Date: Sun May 25 15:41:32 2008 -0700 RDMA: Fix license text The license text for several files references a third software license that was inadvertently copied in. Update the license to what was intended. This update was based on a request from HP. Signed-off-by: Sean Hefty Signed-off-by: Roland Dreier commit 50e4fd9ea1568719430398ee28271a3f1a6e15f7 Author: Christophe Jaillet Date: Sun May 25 15:41:32 2008 -0700 RDMA/nes: Remove unnecessary memset() Remove an explicit memset(..., 0, ...) of a 'listener' structure allocated with kzalloc(). Signed-off-by: Christophe Jaillet Acked-by: Faisal Latif Signed-off-by: Roland Dreier commit 8ef15fd1dbcd34d3ef42c046e9d5467b8b7c6d83 Author: Roland Dreier Date: Sun May 25 15:41:32 2008 -0700 IB/srp: Remove use of cached P_Key/GID queries The SRP initiator is currently using ib_find_cached_pkey() and ib_get_cached_gid() in situations where the uncached ib_find_pkey() and ib_query_gid() functions serve just as well: sleeping is allowed and performance is not an issue. Since we want to eliminate the cached operations in the long term, convert SRP to use the uncached variants. Signed-off-by: Roland Dreier commit e71e716c531557308895598002bee24c431d3be1 Author: Steven Rostedt Date: Sun May 25 11:13:32 2008 -0400 x86: enable preemption in delay The RT team has been searching for a nasty latency. This latency shows up out of the blue and has been seen to be as big as 5ms! Using ftrace I found the cause of the latency. pcscd-2995 3dNh1 52360300us : irq_exit (smp_apic_timer_interrupt) pcscd-2995 3dN.2 52360301us : idle_cpu (irq_exit) pcscd-2995 3dN.2 52360301us : rcu_irq_exit (irq_exit) pcscd-2995 3dN.1 52360771us : smp_apic_timer_interrupt (apic_timer_interrupt ) pcscd-2995 3dN.1 52360771us : exit_idle (smp_apic_timer_interrupt) Here's an example of a 400 us latency. pcscd took a timer interrupt and returned with "need resched" enabled, but did not reschedule until after the next interrupt came in at 52360771us 400us later! At first I thought we somehow missed a preemption check in entry.S. But I also noticed that this always seemed to happen during a __delay call. pcscd-2995 3dN.2 52360836us : rcu_irq_exit (irq_exit) pcscd-2995 3.N.. 52361265us : preempt_schedule (__delay) Looking at the x86 delay, I found my problem. In git commit 35d5d08a085c56f153458c3f5d8ce24123617faf, Andrew Morton placed preempt_disable around the entire delay due to TSC's not working nicely on SMP. Unfortunately for those that care about latencies this is devastating! Especially when we have callers to mdelay(8). Here I enable preemption during the loop and account for anytime the task migrates to a new CPU. The delay asked for may be extended a bit by the migration, but delay only guarantees that it will delay for that minimum time. Delaying longer should not be an issue. [ Thanks to Thomas Gleixner for spotting that cpu wasn't updated, and to place the rep_nop between preempt_enabled/disable. ] Signed-off-by: Steven Rostedt Cc: akpm@osdl.org Cc: Clark Williams Cc: Peter Zijlstra Cc: "Luis Claudio R. Goncalves" Cc: Gregory Haskins Cc: Linus Torvalds Cc: Andi Kleen Signed-off-by: Thomas Gleixner commit 4b6011bc6ec71660859139ac8d28b7d0badd681c Author: Sven Wegener Date: Sun May 25 21:16:36 2008 +0200 x86: Remove obsolete LOCK macro from include/asm-x86/atomic_64.h Commit d167a518 "[PATCH] x86_64: x86_64 version of the smp alternative patch." has left the LOCK macro in include/asm-x86_64/atomic.h, which is now include/asm-x86/atomic_64.h. Its scope should be local to the file, other architectures don't provide it, I couldn't find an in-tree user of it and allyesconfig, allmodconfig and allnoconfig build fine without it, so this patch removes it. Signed-off-by: Sven Wegener Signed-off-by: Thomas Gleixner commit 1798bc22b2790bf2a956588e6b17c36ef79ceff7 Author: Cyrill Gorcunov Date: Sat May 24 19:36:41 2008 +0400 x86: nmi_32/64.c - merge down nmi_32.c and nmi_64.c to nmi.c Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit fd5cea02de100197a4c26d9e103508cf09b50a82 Author: Cyrill Gorcunov Date: Sat May 24 19:36:40 2008 +0400 x86: nmi_32/64.c - add helper functions to hide arch specific data Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 7c2ba83f9a479eee6f302147767a30f3187fbd4b Author: Cyrill Gorcunov Date: Sat May 24 19:36:39 2008 +0400 x86: nmi_32.c cleanup - use for_each_online_cpu helper Since cpu_online_map is touched (by for_each_online_cpu) at moment when cpu_callin_map is already filled up we can get rid of its checking at all Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 96f9dcb10755e96eae706b9e869c0dc25adb3d74 Author: Cyrill Gorcunov Date: Sat May 24 19:36:38 2008 +0400 x86: nmi_64.c - use for_each_possible_cpu helper Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 6c8decdf14b17d42f6eb817d310642f4d6598a19 Author: Cyrill Gorcunov Date: Sat May 24 19:36:37 2008 +0400 x86: nmi_32.c - unknown_nmi_panic_callback should always panic Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit ad63ba169d45ccb6594eb35a6c31c421fe70ff45 Author: Cyrill Gorcunov Date: Sat May 24 19:36:36 2008 +0400 x86: nmi_32/64.c - use apic_write_around instead of apic_write apic_write_around will be expanded to apic_write in 64bit mode anyway. Only a few CPUs (well, old CPUs to be precise) requires such an action. In general it should not hurt and could be cleaned up for apic_write (just in case) Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 4b82b277707a39b97271439c475f186f63ec4692 Author: Cyrill Gorcunov Date: Sat May 24 19:36:35 2008 +0400 x86: nmi_32.c - add nmi_watchdog_default helper Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit d1b946b97d71423f365fa797d1428e1847c0bec1 Author: Cyrill Gorcunov Date: Sat May 24 19:36:34 2008 +0400 x86: nmi_32.c - add "panic" option Allow to pass "panic" option in 32bit mode Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit c6425b9f143a75bbcd0a7684b4df40e20d0b2f32 Author: Cyrill Gorcunov Date: Sat May 24 19:36:33 2008 +0400 x86: move do_nmi(), stop_nmi() and restart_nmi() to traps_64.c traps_32.c already holds these functions so do the same for traps_64.c Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit e56b3a12c45e439169f2d1f7194be397667320a6 Author: Cyrill Gorcunov Date: Sat May 24 19:36:32 2008 +0400 x86: nmi - die_nmi() output message unification Make 64bit die_nmi() to produce the same message as 32bit mode has Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit ddca03c98a7f7ad5ab09967ff52d4ed60358c896 Author: Cyrill Gorcunov Date: Sat May 24 19:36:31 2008 +0400 x86: nmi - unify die_nmi() interface By slightly changing 32bit mode die_nmi() we may unify the interface and make it common for both (32/64bit) modes Signed-off-by: Cyrill Gorcunov Cc: hpa@zytor.com Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 85cc35fa7255d113b5383a9c8536c363274bb475 Author: Thomas Gleixner Date: Sun May 25 21:21:36 2008 +0200 x86: fix mpparse fallout UP builds with LOCAL_APIC=y and IO_APIC=n fail with a missing reference to mp_bus_not_pci. Distangle the mpparse code some more and move the ioapic specific bus check into a separate function. This code needs sume urgent un#ifdef surgery all over the place. Signed-off-by: Thomas Gleixner commit 2e4db9d2c5db9c9dd3e1d1ec3263bc4a990ff8df Author: Fernando Luis Vazquez Cao Date: Mon May 19 14:23:44 2008 -0700 x86: remove duplicate declaration of unknown_nmi_panic Signed-off-by: Fernando Luis Vazquez Cao Signed-off-by: Andrew Morton Signed-off-by: Thomas Gleixner commit c6531cce6e6e4b99bcda46b6268d6f2d9e30aea4 Author: Ingo Molnar Date: Mon May 12 21:21:14 2008 +0200 sched: do not trace sched_clock The tracer uses sched_clock, so do not trace it. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 59f25dc2e42f3c697389378801f1093d79d96b82 Author: Ingo Molnar Date: Mon May 12 15:44:38 2008 +0200 x86: disable preemption in native_smp_prepare_cpus Priit Laes reported the following warning: Call Trace: [] warn_on_slowpath+0x51/0x63 [] sys_ioctl+0x2d/0x5d [] _spin_lock+0xe/0x24 [] task_rq_lock+0x3d/0x73 [] set_cpu_sibling_map+0x336/0x350 [] read_apic_id+0x30/0x62 [] verify_local_APIC+0x90/0x138 [] native_smp_prepare_cpus+0x1f9/0x305 [] kernel_init+0x59/0x2d9 [] _spin_unlock_irq+0x11/0x2b [] child_rip+0xa/0x12 [] kernel_init+0x0/0x2d9 [] child_rip+0x0/0x12 fix this by generally disabling preemption in native_smp_prepare_cpus(). Reported-and-bisected-by: Priit Laes Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f6079145c6811a70ab6863779f41641fb733d15c Author: Avi Kivity Date: Sun May 25 14:38:15 2008 +0300 KVM: Remove unnecessary ->decache_regs() call Since we aren't modifying any register, there's no need to decache the register state. Signed-off-by: Avi Kivity commit c018f921a92baf1b32d943e8fc5232890be875f4 Author: Hollis Blanchard Date: Wed May 21 18:22:55 2008 -0500 KVM: ppc: Report bad GFNs This code shouldn't be hit anyways, but when it is, it's useful to have a little more information about the failure. Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit b9d2d3c6184a0f89340751b9663b15b8cae5f2b8 Author: Hollis Blanchard Date: Wed May 21 18:22:54 2008 -0500 KVM: ppc: Use a read lock around MMU operations, and release it on error gfn_to_page() and kvm_release_page_clean() are called from other contexts with mmap_sem locked only for reading. Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit c8ca7a3185b8dd73887fcbcafeeb90d0fec802b1 Author: Hollis Blanchard Date: Wed May 21 18:22:53 2008 -0500 KVM: ppc: Remove unmatched kunmap() call We're not calling kmap() now, so we shouldn't call kunmap() either. This has no practical effect in the non-highmem case, which is why it hasn't caused more obvious problems. Pointed out by Anthony Liguori. Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 00dee2e11f249f9fc0de2422feaec8c7a815798e Author: Hollis Blanchard Date: Wed May 21 18:22:52 2008 -0500 KVM: ppc: add lwzx/stwz emulation Somehow these load/store instructions got missed before, but weren't used by the guest so didn't break anything. Signed-off-by: Hollis Blanchard Signed-off-by: Christian Ehrhardt Signed-off-by: Avi Kivity commit 3e14667c0be3c0199f5a56a66a471d6089395845 Author: Hollis Blanchard Date: Wed May 21 18:22:51 2008 -0500 KVM: ppc: Remove duplicate function This was left behind from some code movement. Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 73e33f60c80e100efb0dae1f7ea4613e67a20c61 Author: Yinghai Lu Date: Thu May 22 18:22:30 2008 -0700 x86: fix APIC warning on 32bit v2 for http://bugzilla.kernel.org/show_bug.cgi?id=10613 BIOS bug, APIC version is 0 for CPU#0! fixing up to 0x10. (tell your hw vendor) v2: fix 64 bit compilation Signed-off-by: Yinghai Lu Cc: Andrew Morton Cc: "Rafael J. Wysocki" Cc: Gabriel C Signed-off-by: Thomas Gleixner commit b764a15f679942a7bc9d4f9645299e1defcc5b43 Author: Alan Cox Date: Thu May 22 21:22:04 2008 +0100 x86: Switch apm to unlocked_kernel This pushes the lock a fair way down and the final kill looks like it should be an easy project for someone who wants to have a shot at it. Signed-off-by: Alan Cox Cc: mingo@redhat.com Signed-off-by: Thomas Gleixner commit 136ef671df04dc157afa0d4b96c7bd23ba072c9c Author: Alexey Starikovskiy Date: Tue May 20 00:29:59 2008 +0400 x86: allow MPPARSE to be deselected in SMP configs commit 8732fc4b237fca3bd3cb0ec87ca8fb90271b0baf Author: Alexey Starikovskiy Date: Mon May 19 19:47:16 2008 +0400 x86: move mp_bus_not_pci from mpparse.c commit ce6444d39fdea29dcf145d2d95fe9cdc850aa53c Author: Alexey Starikovskiy Date: Mon May 19 19:47:09 2008 +0400 x86: mp_bus_id_to_pci_bus is not needed commit bab4b27c00c4880737c18bb91138b1a7dd94164c Author: Alexey Starikovskiy Date: Mon May 19 19:47:03 2008 +0400 x86: move smp_found_config commit f3918352909f839a7b0dbf9b3f81d2e183c46f88 Author: Alexey Starikovskiy Date: Fri May 23 01:54:51 2008 +0400 x86: move pic_mode to apic_32.c commit b3e2416465bc9140bfd209f247e6a789f68f0d19 Author: Alexey Starikovskiy Date: Fri May 23 01:54:44 2008 +0400 x86: Set pic_mode only if local apic code is present commit bf62f3981c7076714e3b9f5fa6989a806cad02bf Author: Yinghai Lu Date: Tue May 20 20:10:58 2008 -0700 x86: move e820_mark_nosave_regions to e820.c and make e820_mark_nosave_regions to take limit_pfn to use max_low_pfn for 32bit and end_pfn for 64bit Signed-off-by: Yinghai Lu Cc: Andrew Morton Signed-off-by: Thomas Gleixner commit 9ea8a453c90bf824b94492922bba2bd1078ffb6b Author: Avi Kivity Date: Sun May 25 12:06:44 2008 +0300 KVM: MMU: Fix set_bit() warning on i386 sptes are 64-bit, but set_bit() wants unsigned longs. Signed-off-by: Avi Kivity commit 9c17819696363ce832ce04f9566bc36443737350 Author: Avi Kivity Date: Sun May 25 12:02:57 2008 +0300 KVM: ia64: stub out NMI injection Fixes build breakage on ia64. Signed-off-by: Avi Kivity commit aafbdf71f1d3aeffd679b1a86e1b28f71515856c Author: Alexey Starikovskiy Date: Thu May 22 12:26:15 2008 +0400 x86: fix mpparse/acpi interaction Sitsofe Wheeler reported boot problems on linux-next. It looks like the same issue as found by Soeren Sandman in 7575217f656a93, "x86: initialize all fields of mp_irqs[mp_irq_entries]". But his fix is also not complete, as dstapic is used before it assigned. Reported-by: Sitsofe Wheeler Bisected-by: Sitsofe Wheeler Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 59f4519ad7ade61123e90085b0dadb2ea197bd87 Author: Soeren Sandmann Date: Sun May 18 05:24:41 2008 +0200 x86: initialize all fields of mp_irqs[mp_irq_entries] Commit "x86: make config_irqsrc not MPspec specific" introduced some uses of uninitialized fields in mp_config_acpi_legacy_irqs(). I need the following patch to get sched-devel/master to boot. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2fddb6e28e903a3ab1704cc5aac01be5a59dc05b Author: Alexey Starikovskiy Date: Wed May 14 19:03:17 2008 +0400 x86: make config_irqsrc not MPspec specific Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit ec2cd0a22e2715f776a934e01c4f8ea098324fe1 Author: Alexey Starikovskiy Date: Wed May 14 19:03:10 2008 +0400 x86: make struct config_ioapic not MPspec specific Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 5f8951487ddbacbc949e9ffae574f94791f9b4dd Author: Alexey Starikovskiy Date: Wed May 14 19:03:04 2008 +0400 x86: make mp_ioapic_routing definition local Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 11113f84c72bd832dc4e76122e613b0e623e2346 Author: Alexey Starikovskiy Date: Wed May 14 19:02:57 2008 +0400 x86: complete move ACPI from mpparse.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 32c5061265caf201d6a2c0d02181e2b68769c22c Author: Alexey Starikovskiy Date: Wed May 14 19:02:51 2008 +0400 x86: move es7000_plat out of mpparse.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 11a62a056093a7f25f1595fbd8bd5f93559572b6 Author: Yinghai Lu Date: Mon May 12 15:43:38 2008 +0200 x86: cleanup print out for mptable the new output is: MPTABLE: OEM ID: SUN MPTABLE: Product ID: 4600 M2 MPTABLE: APIC at: 0x instead of it all in one line with <6> and double Product ID... Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4a139a7fdec8964cecf7a3564ee7ae327141d495 Author: Thomas Gleixner Date: Mon May 12 15:43:37 2008 +0200 x86: include pci.h in e820_64.c global pci_mem_start needs a declaration. include pci.h Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit a91eea6df383f26fc4fcbefcbdb5aee8facd17fd Author: Thomas Gleixner Date: Mon May 12 15:43:37 2008 +0200 x86: fix shadow variables of global end_pnf in e820_64.c Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 7f028bc0fd119a4fc65aedc07728ce85c8813d33 Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: move mp_ioapic_routing to mpparse and make it static mpparse is the only user of mp_ioapic_routing. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit ba5b14cc0311af6ed20dc25aa98a1d5ea6f2e6c0 Author: Yinghai Lu Date: Wed May 21 18:40:18 2008 -0700 x86: extend e820 ealy_res support 32bit - fix use find_e820_area to find addess for new RAMDISK, instead of using ram blindly also print out low ram and bootmap info Signed-off-by: Yinghai Lu Cc: Andrew Morton Cc: Jeremy Fitzhardinge Signed-off-by: Thomas Gleixner commit a4c81cf684350797939416c99effb9d3ae46bca6 Author: Yinghai Lu Date: Sun May 18 01:18:57 2008 -0700 x86: extend e820 ealy_res support 32bit move early_res related from e820_64.c to e820.c make edba detection to be done in head32.c remove smp_alloc_memory, because we have fixed trampoline address now. Signed-off-by: Yinghai Lu arch/x86/kernel/e820.c | 214 ++++++++++++++++++++++++++++++++++++ arch/x86/kernel/e820_64.c | 196 -------------------------------- arch/x86/kernel/head32.c | 76 ++++++++++++ arch/x86/kernel/setup_32.c | 109 +++--------------- arch/x86/kernel/smpboot.c | 17 -- arch/x86/kernel/trampoline.c | 2 arch/x86/mach-voyager/voyager_smp.c | 9 - include/asm-x86/e820.h | 6 + include/asm-x86/e820_64.h | 9 - include/asm-x86/smp.h | 1 arch/x86/kernel/e820.c | 214 ++++++++++++++++++++++++++++++++++++ arch/x86/kernel/e820_64.c | 196 -------------------------------- arch/x86/kernel/head32.c | 76 ++++++++++++ arch/x86/kernel/setup_32.c | 109 +++--------------- arch/x86/kernel/smpboot.c | 17 -- arch/x86/kernel/trampoline.c | 2 arch/x86/mach-voyager/voyager_smp.c | 9 - include/asm-x86/e820.h | 6 + include/asm-x86/e820_64.h | 9 - include/asm-x86/smp.h | 1 arch/x86/kernel/e820.c | 214 ++++++++++++++++++++++++++++++++++++ arch/x86/kernel/e820_64.c | 196 -------------------------------- arch/x86/kernel/head32.c | 76 ++++++++++++ arch/x86/kernel/setup_32.c | 109 +++--------------- arch/x86/kernel/smpboot.c | 17 -- arch/x86/kernel/trampoline.c | 2 arch/x86/mach-voyager/voyager_smp.c | 9 - include/asm-x86/e820.h | 6 + include/asm-x86/e820_64.h | 9 - include/asm-x86/smp.h | 1 10 files changed, 320 insertions(+), 319 deletions(-) Signed-off-by: Ingo Molnar commit 69c9189320c46b14e5ae3ad4b3a0d35cc63cba20 Author: Paul Jackson Date: Wed May 14 08:15:58 2008 -0700 x86 boot: add code to add BIOS provided EFI memory entries to kernel Add to the kernels boot memory map 'memmap' entries found in the EFI memory descriptors passed in from the BIOS. On EFI systems, up to E820MAX == 128 memory map entries can be passed via the legacy E820 interface (limited by the size of the 'zeropage'). These entries can be duplicated in the EFI descriptors also passed from the BIOS, and possibly more entries passed by the EFI interface, which does not have the E820MAX limit on number of memory map entries. This code doesn't worry about the likely duplicate, overlapping or (unlikely) conflicting entries between the EFI map and the E820 map. It just dumps all the EFI entries into the memmap[] array (which already has the E820 entries) and lets the existing routine sanitize_e820_map() sort the mess out. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit 5b7eb2e9ef4e467a1248537b47a63bab265be3cc Author: Paul Jackson Date: Wed May 14 08:15:52 2008 -0700 x86 boot: longer comment explaining sanitize_e820_map routine Elaborate on the comment for sanitize_e820_map(), epxlaining more what it does, what it inputs, and what it returns. Rearrange the placement of this comment to fit kernel conventions, before the routine's code rather than buried inside it. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit 6e9bcc796b120d17b08dde7ab958b82ddb899889 Author: Paul Jackson Date: Wed May 14 08:15:46 2008 -0700 x86 boot: change sanitize_e820_map parameter from byte to int to allow bigger memory maps The map size counter passed into, and back out of, sanitize_e820_map(), was an eight bit type (char or u8), as derived from its origins in legacy BIOS E820 structures. This patch changes that type to an 'int', to allow this sanitize routine to also be used on larger maps (larger than the 256 count that fits in a char). The legacy BIOS E820 interface of course does not change; that remains at 8 bits for this count, holding up to E820MAX == 128 entries. But the kernel internals can handle more when those additional memory map entries are passed from the BIOS via EFI interfaces. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit 028b785888c523baccdf27af0cdbf1deb92edec0 Author: Paul Jackson Date: Wed May 14 08:15:40 2008 -0700 x86 boot: extend some internal memory map arrays to handle larger EFI input Extend internal boot time memory tables to allow for up to three entries per node, which may be larger than the 128 E820MAX entries handled by the legacy BIOS E820 interface. The EFI interface, if present, is capable of passing memory map entries for these larger node counts. This patch requires an earlier patch that rewrote code depending on these array sizes from using E820MAX explicitly to size loops, to instead using ARRAY_SIZE() of the applicable array. Another patch following this one will provide the code to pick up additional memory entries passed via the EFI interface from the BIOS and insert them in the following, now enlarged, arrays. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit c3965bd15118742d72b4bc1a290d37b3f081eb98 Author: Paul Jackson Date: Wed May 14 08:15:34 2008 -0700 x86 boot: proper use of ARRAY_SIZE instead of repeated E820MAX constant This patch is motivated by a subsequent patch which will allow for more memory map entries on EFI supported systems than can be passed via the x86 legacy BIOS E820 interface. The legacy interface is limited to E820MAX == 128 memory entries, and that "E820MAX" manifest constant was used as the size for several arrays and loops over those arrays. The primary change in this patch is to change code loop sizes over those arrays from using the constant E820MAX, to using the ARRAY_SIZE() macro evaluated for the array being looped. That way, a subsequent patch can change the size of some of these arrays, without breaking this code. This patch also adds a parameter to the sanitize_e820_map() routine, which had an implicit size for the array passed it of E820MAX entries. This new parameter explicitly passes the size of said array. Once again, this will allow a subsequent patch to change that array size for some calls to sanitize_e820_map() without breaking the code. As part of enhancing the sanitize_e820_map() interface this way, I further combined the unnecessarily distinct x86_32 and x86_64 declarations for this routine into a single, commonly used, declaration. This patch in itself should make no difference to the resulting kernel binary. [ mingo@elte.hu: merged to -tip ] Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit b25e31cec7788ccba5749d10f8f4343fffff4750 Author: Paul Jackson Date: Wed May 14 08:15:28 2008 -0700 x86 boot: minor code format fixes in e820 and efi routines Standardize a few pointer declarations to not have the extra space after the '*' character. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit c801ed3860fe2f84281d4cae4c3e6ca87e81e890 Author: Paul Jackson Date: Wed May 14 08:15:23 2008 -0700 x86 boot: simplify pageblock_bits enum declaration The use of #defines with '##' pre-processor concatenation is a useful way to form several symbol names with a common pattern. But when there is just a single name obtained from that #define, it's just obfuscation. Better to just write the plain symbol name, as is. The following patch is a result of my wasting ten minutes looking through the kernel to figure out what 'PB_migrate_end' meant, and forgetting what I came to do, by the time I figured out that the #define PB_range macro defined it. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit cb5dd7c104c64d7ba8ff4dd3eec3d9b92c378937 Author: Paul Jackson Date: Wed May 14 08:15:16 2008 -0700 x86 boot: add header comment to dmi.h stating what it is The "dmi.h" file did not state anywhere in the file what "DMI" was. For those who know, it's obvious. For the rest of us, I added a brief opening comment. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit e9197bf0114661195bee35e7795cfc42164d9b2c Author: Paul Jackson Date: Wed May 14 08:15:10 2008 -0700 x86 boot: remove some unused extern function declarations Remove three extern declarations for routines that don't exist. Fix a typo in a comment. Signed-off-by: Paul Jackson Signed-off-by: Ingo Molnar commit e3f8ba81fdce852abe36a33eed7b243c4a0acfac Author: Paul Jackson Date: Wed May 14 08:15:04 2008 -0700 x86 boot: include missing smp.h header The patch: x86: convert cpu_to_apicid to be a per cpu variable introduced a dependency of ipi.h on smp.h in x86 builds with an allnoconfig. Including smp.h in ipi.h fixes the build error: In file included from arch/x86/kernel/traps_64.c:48: include/asm/ipi.h: In function 'send_IPI_mask_sequence': include/asm/ipi.h:114: error: 'per_cpu__x86_cpu_to_apicid' undeclared (first use in this function) Signed-off-by: Paul Jackson Cc: Mike Travis Signed-off-by: Ingo Molnar commit 3f03c54a34fa3da680b3341dd3ba965ef3394bd1 Author: Yinghai Lu Date: Fri May 9 22:40:52 2008 -0700 x86: mtrr cleanup for converting continuous to discrete layout - fix #2 disable the noisy print out. also use the one the less spare mtrr reg. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 8004dd965b13b01a96def054d420f6df7ff22d53 Author: Yinghai Lu Date: Mon May 12 17:40:39 2008 -0700 x86: amd opteron TOM2 mask val fix there is a typo in the mask value, need to remove that extra 0, to avoid 4bit clearing. Signed-off-by: Yinghal Lu Signed-off-by: Ingo Molnar commit b79cd8f1268bab57ff85b19d131f7f23deab2dee Author: Yinghai Lu Date: Sun May 11 00:30:15 2008 -0700 x86: make e820.c to have common functions remove the duplicated copy of these functions. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 833e78bfeeef628f0201349a0a05a54f48f07884 Author: Yinghai Lu Date: Mon May 5 15:57:38 2008 -0700 x86: process fam 10h like k8 with fixed mtrr setting otherwise fixed MTRR for family 10h may not be changed. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 12031a624af7816ec7660b82be648aa3703b4ebe Author: Yinghai Lu Date: Fri May 2 02:40:22 2008 -0700 x86: mtrr cleanup for converting continuous to discrete - auto detect v4 Loop through mtrr chunk_size and gran_size from 1M to 2G to find out the optimal value so user does not need to add mtrr_chunk_size and mtrr_gran_size to the kernel command line. If optimal value is not found, print out all list to help select less optimal value. Add mtrr_spare_reg_nr= so user could set 2 instead of 1, if the card need more entries. v2: find the one with more spare entries v3: fix hole_basek offset v4: tight the compare between range and range_new loop stop with 4g Signed-off-by: Yinghai Lu Cc: Andrew Morton Cc: Gabriel C Cc: Mika Fischer Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit f5098d62c1d1cede8ff23d01bbf50a421f110562 Author: Yinghai Lu Date: Tue Apr 29 20:25:58 2008 -0700 x86: mtrr cleanup for converting continuous to discrete layout v8 - fix v9: address format change requests by Ingo more case handling in range_to_var_with_hole Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8a374026c265476b1acfc3c186a66d59ebdb2cda Author: Yinghai Lu Date: Tue Apr 29 20:25:16 2008 -0700 x86: fix trimming e820 with MTRR holes. - fix v2: process hole then end_pfn fix update_memory_range with whole cover comparing Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 42651f15824d003e8357693ab72c4dbb3e280836 Author: Yinghai Lu Date: Tue Apr 29 01:59:49 2008 -0700 x86: fix trimming e820 with MTRR holes. converting MTRR layout from continous to discrete, some time could run out of MTRRs. So add gran_sizek to prevent that by dumpping small RAM piece less than gran_sizek. previous trimming only can handle highest_pfn from mtrr to end_pfn from e820. when have more than 4g RAM installed, there will be holes below 4g. so need to check ram below 4g is coverred well. need to be applied after [PATCH] x86: mtrr cleanup for converting continuous to discrete layout v7 Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 95ffa2438d0e9c48779f0106b1c0eb36165e759c Author: Yinghai Lu Date: Tue Apr 29 03:52:33 2008 -0700 x86: mtrr cleanup for converting continuous to discrete layout, v8 some BIOS like to use continus MTRR layout, and X driver can not add WB entries for graphical cards when 4g or more RAM installed. the patch will change MTRR to discrete. mtrr_chunk_size= could be used to have smaller continuous block to hold holes. default is 256m, could be set according to size of graphics card memory. mtrr_gran_size= could be used to send smallest mtrr block to avoid run out of MTRRs v2: fix -1 for UC checking v3: default to disable, and need use enable_mtrr_cleanup to enable this feature skip the var state change warning. remove next_basek in range_to_mtrr() v4: correct warning mask. v5: CONFIG_MTRR_SANITIZER v6: fix 1g, 2g, 512 aligment with extra hole v7: gran_sizek to prevent running out of MTRRs. v8: fix hole_basek caculation caused when removing next_basek gran_sizek using when basek is 0. need to apply [PATCH] x86: fix trimming e820 with MTRR holes. right after this one. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0dbfafa5fcd4dd189e2adc7b6ed9e0405e846d79 Author: Alexander van Heukelum Date: Wed Apr 23 15:09:05 2008 +0200 x86: move i386 memory setup code to e820_32.c The x86_64 code has centralized the memory setup code in e820_64.c. This patch copies that approach to i386: - early_param("mem", ...) parsing is moved from setup_32.c to e820_32.c. - setup_memory_map() and finish_e820_parsing() are factored out from setup_arch(), and declarations are added to e820_32.h. - print_memory_map() is made static and removed from e820_32.h. - user_defined_memmap is marked as __initdata. Signed-off-by: Alexander van Heukelum Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0da72a4aeb4482c64c1142a2e36b556d13374937 Author: Thomas Gleixner Date: Wed Apr 30 20:11:51 2008 +0200 x86: fix sparse warning in mtrr/generic.c arch/x86/kernel/cpu/mtrr/generic.c:216:12: warning: symbol 'lo' shadows an earlier one Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 1ac97018169c5a13feaa90d9671f2d6ba2d9e86e Author: Ingo Molnar Date: Mon May 19 14:10:14 2008 +0200 x86: untangle pci dependencies make PCI-less subarches not build with PCI - instead of complicating the PCI dependencies. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c9fea78dc9775981bed2da379568c8a8fddd1fb6 Author: Ingo Molnar Date: Mon May 19 13:53:39 2008 +0200 x86: make NUMAQ depend on PCI NUMAQ depends on the existence of PCI hardware, and requiring PCI makes this subarch simpler and avoids build failures if PCI is disabled. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 48e239572271cf79412d90753a721242a765f7d9 Author: Thomas Gleixner Date: Sat May 24 17:24:34 2008 +0200 x86: fixup the fallout of the bitops changes Signed-off-by: Thomas Gleixner commit 83cd1daa1dc3400e5ca2255818641233ebb30680 Author: Jan Beulich Date: Mon May 12 15:44:39 2008 +0200 x86: eliminate dead code in x86_64 entry.S Remove the not longer used handlers for reserved vectors. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 78d64fc21d2aa425c65de49765cddecc84d595a4 Author: Joe Perches Date: Mon May 12 15:44:39 2008 +0200 x86: include/asm-x86/string_32.h - style only Looked at this file because of __memcpy warnings. Thought it could use a style/checkpatch cleanup. No change in vmlinux. [tglx: fixed the remaining issues ] Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2141261a11524acbfce86a5a213bbaea08794bbb Author: Miklos Vajna Date: Tue May 13 13:35:25 2008 +0200 x86: janitor work in video-vga.c Just moved an open brace to the previous line. Signed-off-by: Miklos Vajna Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f0766440dda7ace8a43b030f75e2dcb82449fb85 Author: Christoph Lameter Date: Fri May 9 19:09:48 2008 -0700 x86: unify current.h Simply stitch these together. There are just two definitions that are shared but the file is resonably small and putting these things together shows that further unifications requires a unification of the per cpu / pda handling between both arches. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit bfe4bb1526945e446d2912bef2e1e2cbd2c7349e Author: Miklos Vajna Date: Sat May 17 22:48:13 2008 +0200 x86: janitor work in bugs.c Just moved trailing statements to the next line, removed space before open/close parenthesis, wrapped long lines. Signed-off-by: Miklos Vajna Signed-off-by: Thomas Gleixner commit 23eb271b9186531e1eb704dda9ab37abcfd0ca4a Author: Andrew Morton Date: Wed May 14 16:10:39 2008 -0700 x86: setup_force_cpu_cap(): don't do clear_bit(non-unsigned-long) Another hack to make proper prototyping of x86 bitops viable. Cc: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 0e192b99d7d09f08b445c31ee7c7f3d0bfb27345 Author: Cyrill Gorcunov Date: Tue May 13 20:55:40 2008 +0400 x86: head_64.S cleanup - use PMD_SHIFT instead of numeric constant Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 05139d8fb445d9a3569071af1c5920fc46191b7b Author: Cyrill Gorcunov Date: Tue May 13 21:14:22 2008 +0400 x86: head_64.S cleanup - use straight move to CR4 register Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 2237ce2057b82561f7ea27ed30153571f404112d Author: Fernando Luis Vazquez Cao Date: Fri May 16 11:01:26 2008 +0900 x86: cleanup, remove duplicate declaration of unknown_nmi_panic Signed-off-by: Fernando Luis Vazquez Cao Signed-off-by: Ingo Molnar commit 883b7af932b4435eb4798cfa4fec0848639c2a87 Author: Huang Weiyi Date: Sun May 11 19:36:57 2008 +0800 x86: smpboot.c: removed duplicated include Removed duplicated include in arch/x86/kernel/smpboot.c. Signed-off-by: Huang Weiyi Cc: mingo@redhat.com Cc: hpa@zytor.com Signed-off-by: Thomas Gleixner commit 2cc74111c78dbc7b26c41b4e87cfebfc3aed49c4 Author: Huang Weiyi Date: Sun May 11 19:35:54 2008 +0800 x86: ipi.c: removed duplicated include Removed duplicated include in arch/x86/kernel/ipi.c. Signed-off-by: Huang Weiyi Cc: mingo@redhat.com Cc: hpa@zytor.com Signed-off-by: Thomas Gleixner commit e83e31f41a623262714d9c56dde7dfc51ac078f7 Author: Cyrill Gorcunov Date: Mon May 12 15:43:39 2008 +0200 x86: compressed/head_64.S cleanup - use predefined flags from processor-flags.h We should better use already defined flags from processor-flags.h instead of defining own ones [>>> object code check >>>] original md5sum: 129f24be6df396fb7d8bf998c01fc716 arch/x86/boot/compressed/head_64.o text data bss dec hex filename 705 48 45056 45809 b2f1 arch/x86/boot/compressed/head_64.o patched md5sum: 129f24be6df396fb7d8bf998c01fc716 arch/x86/boot/compressed/head_64-new.o text data bss dec hex filename 705 48 45056 45809 b2f1 arch/x86/boot/compressed/head_64-new.o [<<< object code check <<<] Signed-off-by: Cyrill Gorcunov Acked-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 369101da7e3f6f971b7303922d2978b8483241c6 Author: Cyrill Gorcunov Date: Mon May 12 15:43:38 2008 +0200 x86: head_64.S cleanup - use predefined flags from processor-flags.h We should better use already defined flags from processor-flags.h instead of defining own ones [>>> object code check >>>] original md5sum: 9cfa6dbf045a046bb5dfb85f8bcfe8c4 arch/x86/kernel/head_64.o text data bss dec hex filename 37361 4432 8192 49985 c341 arch/x86/kernel/head_64.o patched md5sum: 9cfa6dbf045a046bb5dfb85f8bcfe8c4 arch/x86/kernel/head_64.o text data bss dec hex filename 37361 4432 8192 49985 c341 arch/x86/kernel/head_64.o [<<< object code check <<<] Signed-off-by: Cyrill Gorcunov Acked-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 9831bfb201a8e00415d0f9e5b5a50d902a90b2db Author: Cyrill Gorcunov Date: Mon May 12 15:43:38 2008 +0200 x86 - hide X86_VM_MASK from userland programs v3 X86_VM_MASK is kernel specific flags so hide it from userland programs. It should be defined *before* ptrace.h inclusion because of circular link between these files Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ebdd561a19d7917ac49fff9c355aa4833c504bf1 Author: Jan Beulich Date: Mon May 12 15:43:38 2008 +0200 x86: constify data in reboot.c Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4c8ab98249fa3cead320ec0ee4cde9960b951989 Author: Jan Beulich Date: Mon May 12 15:43:38 2008 +0200 i386: move FIX_ACPI_* into non-permanent range .. as they are used at early boot time only. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4e50e62ce52f39b5f45e82f68b18254458b429bb Author: Jan Beulich Date: Mon May 12 15:43:38 2008 +0200 x86: eliminate duplicate consistency checks in init_32.c Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6a1673ae2201931ce34bf7ba9f90928c864d8334 Author: Thomas Gleixner Date: Mon May 12 15:43:38 2008 +0200 x86: make memory_add_physaddr_to_nid depend on MEMORY_HOTPLUG memory_add_physaddr_to_nid() is only used in the CONFIG_MEMORY_HOTPLUG_SPARSE || CONFIG_ACPI_HOTPLUG_MEMORY case. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit cca7c0850fa0381639bf84dd06ee900e16346373 Author: Jiri Slaby Date: Mon May 12 15:43:37 2008 +0200 x86_64: fix mm.txt documentation Commit 85eb69a16aab5a394ce043c2131319eae35e6493 introduced 512 MiB sized kernel and 1.5 GiB sized module space but omitted to change documentation properly. Fix that. [Wasn't the hole intentional protection hole?] Signed-off-by: Jiri Slaby Cc: Andi Kleen Cc: hpa@zytor.com Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 311f83494830fec17f086401a5b43984bb447cd2 Author: Adrian Bunk Date: Mon May 12 15:43:37 2008 +0200 x86: kernel/pci-dma.c cleanups This patch contains the following cleanups: - make the following needlessly global code static: - dma_alloc_pages() Signed-off-by: Adrian Bunk Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 968cbfad1a727b5689ae620f4d970abf6ce73340 Author: Thomas Gleixner Date: Mon May 12 15:43:37 2008 +0200 x86: make __pci_mmcfg_init static in mmconfig-shared.c Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit e0b32d768cad17af07af3aced67498bde98296c9 Author: Thomas Gleixner Date: Mon May 12 15:43:37 2008 +0200 x86: make command_line static in setup_64.c Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 11034d55975be6d8b955a6eb11e87fc67ec086c2 Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: init64.c include initrd.h free_initrd_mem needs a prototype, which is in linux/initrd.h Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit d1097635deed7196c2a859f285c29267779ca45a Author: Thomas Gleixner Date: Fri May 2 23:42:01 2008 +0200 x86: move mmconfig declarations to header arch/x86/kernel/mmconf-fam10h_64.c is missing the prototypes, which are decalred in arch/x86/kernel/setup_64.c. Move the prototypes and the inline stubs to the appropriate header file. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 55d4f22abc9f011c5db982f83377cdd38bb9a2a3 Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: k8topology cleanup variable declarations Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit d34c08958fa36c7a8c3f8d9c0ebe6ec1ab744a68 Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: k8topology fix shadow variable sparse mutters: arch/x86/mm/k8topology_64.c:108:7: warning: symbol 'nodeid' shadows an earlier one Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 0eafe234a2571f51ef9f7e8baddb58c828750771 Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: k8topology add missing header k8_scan_nodes is global and needs a prototype. Add the header file which contains it. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 635ee418381566f03819408e1303ef21fcf2d41c Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: create prototype for (un)map_devmem Global functions need a prototype. Add it. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 535694f361419ca195fd915dd5038c926334e1be Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: boot/printfc use NULL instead 0 Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit eef8f871d84b5df1a24902a4e4700188be1aff2c Author: Thomas Gleixner Date: Mon May 12 15:43:34 2008 +0200 x86: vsmp_64 add missing includes sparse mutters: arch/x86/kernel/vsmp_64.c:126:5: warning: symbol 'is_vsmp_box' was not declared. Should it be static? arch/x86/kernel/vsmp_64.c:145:13: warning: symbol 'vsmp_init' was not declared. Should it be static? Include the appropriate headers. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 5136dea5734cfddbc6d7ccb7ead85a3ac7ce3de2 Author: Andrew Morton Date: Wed May 14 16:10:41 2008 -0700 x86: bitops take an unsigned long * All (or most) other architectures do this. So should x86. Fix. Cc: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 46dd98a5c0b907f94742579ab605be1933a37abd Author: Andrew Morton Date: Wed May 14 16:10:39 2008 -0700 arch/x86/mm/pat.c: use boot_cpu_has() arch/x86/mm/pat.c: In function 'phys_mem_access_prot_allowed': arch/x86/mm/pat.c:526: warning: passing argument 2 of 'constant_test_bit' from incompatible pointer type arch/x86/mm/pat.c:526: warning: passing argument 2 of 'variable_test_bit' from incompatible pointer type arch/x86/mm/pat.c:527: warning: passing argument 2 of 'constant_test_bit' from incompatible pointer type arch/x86/mm/pat.c:527: warning: passing argument 2 of 'variable_test_bit' from incompatible pointer type arch/x86/mm/pat.c:528: warning: passing argument 2 of 'constant_test_bit' from incompatible pointer type arch/x86/mm/pat.c:528: warning: passing argument 2 of 'variable_test_bit' from incompatible pointer type arch/x86/mm/pat.c:529: warning: passing argument 2 of 'constant_test_bit' from incompatible pointer type arch/x86/mm/pat.c:529: warning: passing argument 2 of 'variable_test_bit' from incompatible pointer type Don't open-code test_bit() on a __u32 Cc: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit e6b0edef3453677b13e175a104a83eb36d062dd3 Author: OGAWA Hirofumi Date: Mon May 12 15:43:38 2008 +0200 x86: clean up vdso_enabled type on x86_64 This fixes type of "vdso_enabled" on X86_64 to match extern in asm/elf.h. Signed-off-by: OGAWA Hirofumi Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 49beb0d058d3a258fcb21d95158c4baff7f14341 Author: Jiri Slaby Date: Mon May 12 15:43:37 2008 +0200 x86_64: use PAGE_OFFSET in dump_pagetables Use PAGE_OFFSET macro instead of using 0xffff810000000000UL directly. Signed-off-by: Jiri Slaby Cc: Arjan van de Ven Cc: Andi Kleen Cc: hpa@zytor.com Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c2c14fb7afcc67b48724571506e095fccc65a670 Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: tsc_64.c make constant UL arch/x86/kernel/tsc_64.c:245:13: warning: constant 0x100000000 is so big it is long Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit a7d9b4de7561f3201849c7281c1dff3543f12bb9 Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: numa_64.c fix shadowed variable sparse mutters: arch/x86/mm/numa_64.c:195:27: warning: symbol 'end_pfn' shadows an earlier one Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit cce55c4cc42ee1531eff7a773fc92f2a04578b72 Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: numa_64.c make local variables static plat_node_bdata, cmdline, nodemap_addr, nodemap_size are local to numa_64.c. Make them static Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 12089e8963d9411fa2a7b02a5c12df469d753846 Author: Thomas Gleixner Date: Mon May 12 15:43:35 2008 +0200 x86: add sparse annotations to ioremap arch/x86/mm/ioremap.c:308:11: error: incompatible types in comparison expression (different address spaces) Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit a2eddfa95919a730e0e5ed17e9c303fe5ba249cd Author: Jan Beulich Date: Mon May 12 15:44:41 2008 +0200 x86: make /proc/stat account for all interrupts LAPIC interrupts, which don't go through the generic interrupt handling code, aren't accounted for in /proc/stat. Hence this patch adds a mechanism architectures can use to accordingly adjust the statistics. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 63687a528c39a67c1a213cdffa09feb0e6af9dbe Author: Jan Beulich Date: Mon May 12 15:44:41 2008 +0200 x86: move tracedata to RODATA .. allowing it to be write-protected just as other read-only data under CONFIG_DEBUG_RODATA. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5132861a7a44498ebb18357473f8b8d4cdc70e9f Author: Jeff Layton Date: Thu May 22 09:33:34 2008 -0400 disable most mode changes on non-unix/non-cifsacl mounts CIFS currently allows you to change the mode of an inode on a share that doesn't have unix extensions enabled, and isn't using cifsacl. The inode in this case *only* has its mode changed in memory on the client. This is problematic since it can change any time the inode is purged from the cache. This patch makes cifs_setattr silently ignore most mode changes when unix extensions and cifsacl support are not enabled, and when the share is not mounted with the "dynperm" option. The exceptions are: When a mode change would remove all write access to an inode we turn on the ATTR_READONLY bit on the server and remove all write bits from the inode's mode in memory. When a mode change would add a write bit to an inode that previously had them all turned off, it turns off the ATTR_READONLY bit on the server, and resets the mode back to what it would normally be (generally, the file_mode or dir_mode of the share). Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 3711ccb07b7f0a13f4f1aa16a8fdca9c930f21ca Author: Thomas Gleixner Date: Sat May 24 17:24:34 2008 +0200 x86: fixup the fallout of the bitops changes Signed-off-by: Thomas Gleixner commit ec42418f1973e1f77da1fcca3be59c0acb878a9d Author: Thomas Gleixner Date: Sat May 24 15:59:58 2008 +0200 x86: rename the i8259_32/64.c leftovers to irqinit_32/64.c The leftovers of the i8259 unification have nothing to do with i8259 at all. They contain interrupt init code and the i8259_xx name is just misleading now. Rename them to irqinit_32/64.c Signed-off-by: Thomas Gleixner commit d23b200a75f78e62744c3c25d078855eec8a689b Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: make init_ISA_irqs() static Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 680afbf989d697b9ba1382017a73c8cfa53b3f89 Author: Pavel Machek Date: Wed May 21 11:57:52 2008 +0200 x86: i8259: cleanup codingstyle Signed-off-by: Pavel Machek Cc: macro@ds2.pg.gda.pl Signed-off-by: Thomas Gleixner commit 3e8631d27088f394b6788829e238a60bf07d47ab Author: Pavel Machek Date: Wed May 21 11:52:52 2008 +0200 x86: i8259.c: remove trivial ifdefs Remove #ifdefs where the only difference is formatting of comments. Signed-off-by: Pavel Machek Cc: macro@ds2.pg.gda.pl Signed-off-by: Thomas Gleixner commit 15d613cb25efd978dd55592d011a6ffc487b3432 Author: Pavel Machek Date: Wed May 21 11:47:24 2008 +0200 x86: i8259.c: remove #ifdefs around includes Remove #ifdefs around includes; including too much should be always safe. Signed-off-by: Pavel Machek Cc: macro@ds2.pg.gda.pl Signed-off-by: Thomas Gleixner commit 21fd5132b223a10bdf17713dd0bf321cbd6471d2 Author: Pavel Machek Date: Wed May 21 11:44:02 2008 +0200 x86: automatical unification of i8259.c Make conversion of i8259 very mechanical -- i8259 was generated by diff -D, with too different parts left in i8259_32 and i8259_64.c. Only "by hand" changes were removal of #ifdef from middle of the comment (prevented compilation) and removal of one static to allow splitting into files. Of course, it will need some cleanups now, and those will follow. Signed-of-by: Pavel Machek commit fce39665abb71d01d74ac74eb13dd69a799dfc2f Author: Thomas Gleixner Date: Mon May 12 15:43:36 2008 +0200 x86: make init_ISA_irqs() static Moved to i8259 branch to avoid conflicts. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit f20b11e716936f85850654c49e06a1f955b9e5fc Author: Thomas Gleixner Date: Sat May 24 15:59:58 2008 +0200 x86: rename the i8259_32/64.c leftovers to initirq_32/64.c The leftovers of the i8259 unification have nothing to do with i8259 at all. They contain interrupt init code and the i8259_xx name is just misleading now. Rename them to initirq_32/64.c Signed-off-by: Thomas Gleixner commit 4d9a6e6128dd8ada0d2feed2a9bb6506043e4655 Author: Pavel Machek Date: Wed May 21 11:57:52 2008 +0200 x86: i8259: cleanup codingstyle Signed-off-by: Pavel Machek Cc: macro@ds2.pg.gda.pl Signed-off-by: Thomas Gleixner commit 4f6f3bac18c80ff6cf072d90796755c69cc4c748 Author: Pavel Machek Date: Wed May 21 11:52:52 2008 +0200 x86: i8259.c: remove trivial ifdefs Remove #ifdefs where the only difference is formatting of comments. Signed-off-by: Pavel Machek Cc: macro@ds2.pg.gda.pl Signed-off-by: Thomas Gleixner commit 6b4d3afbe722ee71b8da346c2c4393938440c471 Author: Pavel Machek Date: Wed May 21 11:47:24 2008 +0200 x86: i8259.c: remove #ifdefs around includes Remove #ifdefs around includes; including too much should be always safe. Signed-off-by: Pavel Machek Cc: macro@ds2.pg.gda.pl Signed-off-by: Thomas Gleixner commit 40bd21740012132afb62d78ac3e6b82372b2fbc2 Author: Pavel Machek Date: Wed May 21 11:44:02 2008 +0200 x86: automatical unification of i8259.c Make conversion of i8259 very mechanical -- i8259 was generated by commit 7b3ce4a410ccdc8ca0be361d4d4fd61c3830f52a Author: Peter Zijlstra Date: Mon May 12 21:21:12 2008 +0200 sched: clean up scheduler markers These trace_mark() things look like someone puked all over the code, lets hide the ugly bits. Signed-off-by: Peter Zijlstra Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit da514c94da0e72b8f0f48afd093d61f292f3e0ad Author: Thomas Gleixner Date: Sat May 24 15:13:06 2008 +0200 markers: pick scheduler trace marks from lttng Pick selected scheduler trace marks from the lttng patches. Signed-off-by: Thomas Gleixner commit 4d2df795f0c3eb91f97a666f47716121a2f166ed Author: Thomas Gleixner Date: Sat May 24 15:00:46 2008 +0200 sysprof: make it depend on X86 Signed-off-by: Thomas Gleixner commit 790e2a290b499b0400254e6870ec27969065d122 Author: Pekka Paalanen Date: Mon May 12 21:21:14 2008 +0200 x86 mmiotrace: page level is unsigned Fixes some sparse warnings. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit a50445d76c22a34ae149704ea5adaef171c8acb7 Author: Pekka Paalanen Date: Mon May 12 21:21:03 2008 +0200 mmiotrace: rename kmmio_probe::user_data to :private. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit dee310d0adf41019aca476052ac3085ff286d9be Author: Pekka Paalanen Date: Mon May 12 21:21:03 2008 +0200 x86 mmiotrace: use resource_size_t for phys addresses Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit 87e547fe41a8b57d6d80afc67a0031fbe477eb0d Author: Pekka Paalanen Date: Mon May 12 21:21:03 2008 +0200 x86 mmiotrace: fix page-unaligned ioremaps mmiotrace_ioremap() expects to receive the original unaligned map phys address and size. Also fix {un,}register_kmmio_probe() to deal properly with unaligned size. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit 970e6fa03885f32cc43e42cb08c73a5f54cd8bd9 Author: Pekka Paalanen Date: Mon May 12 21:21:03 2008 +0200 mmiotrace: code style cleanups From c2da03771e29159627c5c7b9509ec70bce9f91ee Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Mon, 28 Apr 2008 21:25:22 +0300 Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit 6f6f394d9ca61fcc73ecfd2f2bf58e92dc1ab269 Author: Pekka Paalanen Date: Mon May 12 21:21:03 2008 +0200 doc: update mmiotrace doc to current status Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit e0fd5c2fa188311667267c02a702ae699a9fc2bd Author: Pekka Paalanen Date: Mon May 12 21:21:02 2008 +0200 mmiotrace: do not print bogus pid for maps either Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit 2039238b79b51a50f8477f53f33750e1c3fc146a Author: Pekka Paalanen Date: Mon May 12 21:21:02 2008 +0200 mmiotrace: print overrun counts Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit d0a7e8ca5b996d36219e6fc002907291c8ee677b Author: Pekka Paalanen Date: Mon May 12 21:21:02 2008 +0200 mmiotrace: print header using the read hook. Now the header is printed only for `trace_pipe' file. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit 7423d1115f18627666d475fccc7c62394406ff8c Author: Pekka Paalanen Date: Mon May 12 21:21:02 2008 +0200 x86 mmiotrace: dynamically disable non-boot CPUs From 8979ee55cb6a429c4edd72ebec2244b849f6a79a Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Sat, 12 Apr 2008 00:18:57 +0300 Mmiotrace is not reliable with multiple CPUs and may miss events. Drop to single CPU when mmiotrace is activated. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar commit 37b3619257d3190f47f233d7ed626d4b9916462c Author: Randy Dunlap Date: Mon May 12 21:20:59 2008 +0200 x86/mmiotrace: uses/depends on PCI Don't try to build mmiotrace when CONFIG_PCI=n. next-20080416/kernel/trace/trace_mmiotrace.c: In function 'mmio_print_pcidev': next-20080416/kernel/trace/trace_mmiotrace.c:62: error: implicit declaration of function 'pci_dev_driver' Signed-off-by: Randy Dunlap Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0663bb6cd9a457fbd8ca95c627bb762d07321a39 Author: Randy Dunlap Date: Mon May 12 21:20:59 2008 +0200 mmiotrace: fix printk format Fix gcc printk format warnings: next-20080415/arch/x86/mm/mmio-mod.c: In function 'print_pte': next-20080415/arch/x86/mm/mmio-mod.c:154: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'pteval_t' next-20080415/arch/x86/mm/mmio-mod.c:154: warning: format '%lx' expects type 'long unsigned int', but argument 4 has type 'pteval_t' next-20080415/arch/x86/mm/mmio-mod.c: At top level: next-20080415/arch/x86/mm/mmio-mod.c:403: warning: 'downed_cpus' defined but not used Signed-off-by: Randy Dunlap Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c6c67c1afcce71335b18ed8769b1165c468bfb03 Author: Pekka Paalanen Date: Mon May 12 21:20:59 2008 +0200 mmiotrace: add user documentation Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 736ca61fa81874b3fee205a593251b1869d0bcf1 Author: Pekka Paalanen Date: Mon May 12 21:20:59 2008 +0200 x86 mmiotrace: Do not print bogus pid Non-zero pid indicates the MMIO access originated in user space. We do not catch that kind of accesses yet, so always print zero for now. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e4b37ee68609037ffcaa2fcfae47cd31a605bb9e Author: Pekka Paalanen Date: Mon May 12 21:20:59 2008 +0200 x86 mmiotrace: remove ISA_trace parameter. This had become a no-op. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ff3a3e9ba5e4273a8bc10570adab4a390fb90757 Author: Pekka Paalanen Date: Mon May 12 21:20:59 2008 +0200 x86 mmiotrace: move files into arch/x86/mm/. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 49023168261a7f9a2fd4a1ca1adbfea922556015 Author: Ingo Molnar Date: Mon May 12 21:20:58 2008 +0200 mmiotrace: cleanup Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 801a175bf601f9a9d5e86e92dee9adeeb6625da8 Author: Ingo Molnar Date: Mon May 12 21:20:58 2008 +0200 mmiotrace: ftrace fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 138295373ccf7625fcb0218dfea114837983bc39 Author: Pekka Paalanen Date: Mon May 12 21:20:58 2008 +0200 ftrace: mmiotrace update, #2 another weekend, another patch. This should apply on top of my previous patch from March 23rd. Summary of changes: - Print PCI device list in output header - work around recursive probe hits on SMP - refactor dis/arm_kmmio_fault_page() and add check for page levels - remove un/reference_kmmio(), the die notifier hook is registered permanently into the list - explicitly check for single stepping in die notifier callback I have tested this version on my UP Athlon64 desktop with Nouveau, and SMP Core 2 Duo laptop with the proprietary nvidia driver. Both systems are 64-bit. One previously unknown bug crept into daylight: the ftrace framework's output routines print the first entry last after buffer has wrapped around. The most important regressions compared to non-ftrace mmiotrace at this time are: - failure of trace_pipe file - illegal lines in output file - unaware of losing data due to buffer full Personally I'd like to see these three solved before submitting to mainline. Other issues may come up once we know when we lose events. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit bd8ac686c73c7e925fcfe0b02dc4e7b947127864 Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 ftrace: mmiotrace, updates here is a patch that makes mmiotrace work almost well within the tracing framework. The patch applies on top of my previous patch. I have my own output formatting in place now. Summary of changes: - fix the NULL dereference that was due to not calling tracing_reset() - add print_line() callback into struct tracer - implement print_line() for mmiotrace, producing up-to-spec text - add my output header, but that is not really called in the right place - rewrote the main structs in mmiotrace - added two new trace entry types: TRACE_MMIO_RW and TRACE_MMIO_MAP - made some functions in trace.c non-static - check current==NULL in tracing_generic_entry_update() - fix(?) comparison in trace_seq_printf() Things seem to work fine except a few issues. Markers (text lines injected into mmiotrace log) are missing, I did not feel hacking them in before we have variable length entries. My output header is printed only for 'trace' file, but not 'trace_pipe'. For some reason, despite my quick fix, iter->trace is NULL in print_trace_line() when called from 'trace_pipe' file, which means I don't get proper output formatting. I only tried by loading nouveau.ko, which just detects the card, and that is traced fine. I didn't try further. Map, two reads and unmap. Works perfectly. I am missing the information about overflows, I'd prefer to have a counter for lost events. I didn't try, but I guess currently there is no way of knowning when it overflows? So, not too far from being fully operational, it seems :-) And looking at the diffstat, there also is some 700-900 lines of user space code that just became obsolete. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f984b51e0779a6dd30feedc41404013ca54e5d05 Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 ftrace: add mmiotrace plugin On Sat, 22 Mar 2008 13:07:47 +0100 Ingo Molnar wrote: > > > i'd suggest the following: pull x86.git and sched-devel.git into a > > > single tree [the two will combine without rejects]. Then try to add a > > > kernel/tracing/trace_mmiotrace.c ftrace plugin. The trace_sysprof.c > > > plugin might be a good example. > > > > I did this and now I have mmiotrace enabled/disabled via the tracing > > framework (what do we call this, since ftrace is one of the tracers?). > > cool! could you send the patches for that? (even if they are not fully > functional yet) Patch attached in the end. Nice to see how much code disappeared. I tried to mark all the features I had to break with XXX-comments. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d61fc44853f46fb002228b18aa5f30db21fcd4ac Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 x86: mmiotrace, preview 2 Kconfig.debug, Makefile and testmmiotrace.c style fixes. Use real mutex instead of mutex. Fix failure path in register probe func. kmmio: RCU read-locked over single stepping. Generate mapping id's. Make mmio-mod.c built-in and rewrite its locking. Add debugfs file to enable/disable mmiotracing. kmmio: use irqsave spinlocks. Lots of cleanups in mmio-mod.c Marker file moved from /proc into debugfs. Call mmiotrace entrypoints directly from ioremap.c. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0fd0e3da4557c479b820b9a4a7afa25b4637ddf2 Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 x86: mmiotrace full patch, preview 1 kmmio.c handles the list of mmio probes with callbacks, list of traced pages, and attaching into the page fault handler and die notifier. It arms, traps and disarms the given pages, this is the core of mmiotrace. mmio-mod.c is a user interface, hooking into ioremap functions and registering the mmio probes. It also decodes the required information from trapped mmio accesses via the pre and post callbacks in each probe. Currently, hooking into ioremap functions works by redefining the symbols of the target (binary) kernel module, so that it calls the traced versions of the functions. The most notable changes done since the last discussion are: - kmmio.c is a built-in, not part of the module - direct call from fault.c to kmmio.c, removing all dynamic hooks - prepare for unregistering probes at any time - make kmmio re-initializable and accessible to more than one user - rewrite kmmio locking to remove all spinlocks from page fault path Can I abuse call_rcu() like I do in kmmio.c:unregister_kmmio_probe() or is there a better way? The function called via call_rcu() itself calls call_rcu() again, will this work or break? There I need a second grace period for RCU after the first grace period for page faults. Mmiotrace itself (mmio-mod.c) is still a module, I am going to attack that next. At some point I will start looking into how to make mmiotrace a tracer component of ftrace (thanks for the hint, Ingo). Ftrace should make the user space part of mmiotracing as simple as 'cat /debug/trace/mmio > dump.txt'. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f513638030ca384b0bace4df64f0b82f6ae1e4c6 Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 x86 mmiotrace: Use percpu instead of arrays. Signed-off-by: Pekka Paalanen Cc: Eric Dumazet Cc: pq@iki.fi Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 10c43d2eb50c9a5ad60388b9d3c41c31150049e6 Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 x86: explicit call to mmiotrace in do_page_fault() The custom page fault handler list is replaced with a single function pointer. All related functions and variables are renamed for mmiotrace. Signed-off-by: Pekka Paalanen Cc: Christoph Hellwig Cc: Arjan van de Ven Cc: pq@iki.fi Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 63ffa3e456c1a9884a3ebac997d91e3fdae18d78 Author: Pekka Paalanen Date: Mon May 12 21:20:57 2008 +0200 x86 mmiotrace: comment about user space ABI Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit fe1ffafa80f6673101c6560c2bacfe3df10372ee Author: Pekka Paalanen Date: Mon May 12 21:20:56 2008 +0200 x86 mmiotrace: fix relay-buffer-full flag for SMP Relay has per-cpu buffers, but mmiotrace was using only a single flag for detecting buffer full/not-full transitions. The new code makes this per-cpu and actually counts missed events. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 75bb88350e0501b3cf5ac096a1008757844414a9 Author: Pekka Paalanen Date: Mon May 12 21:20:56 2008 +0200 x86 mmiotrace: use lookup_address() Use lookup_address() from pageattr.c instead of doing the same manually. Also had to EXPORT_SYMBOL_GPL(lookup_address) to make this work for modules. This also fixes "undefined symbol 'init_mm'" compile error for x86_32. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8b7d89d02ef3c6a7c73d6596f28cea7632850af4 Author: Pekka Paalanen Date: Mon May 12 21:20:56 2008 +0200 x86: mmiotrace - trace memory mapped IO Mmiotrace is a tool for trapping memory mapped IO (MMIO) accesses within the kernel. It is used for debugging and especially for reverse engineering evil binary drivers. Mmiotrace works by wrapping the ioremap family of kernel functions and marking the returned pages as not present. Access to the IO memory triggers a page fault, which will be handled by mmiotrace's custom page fault handler. This will single-step the faulted instruction with the MMIO page marked as present. Access logs are directed to user space via relay and debug_fs. This page fault approach is necessary, because binary drivers have readl/writel etc. calls inlined and therefore extremely difficult to trap with with e.g. kprobes. This patch depends on the custom page fault handlers patch. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit cf3271a73b612a03da00681ecd9bfefab37c74c9 Author: Soeren Sandmann Date: Mon May 12 05:28:50 2008 +0200 ftrace/sysprof: don't trace the user stack if we are a kernel thread. Check that current->mm is non-NULL before attempting to trace the user stack. Also take depth of the kernel stack into account when comparing against sample_max_depth. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8a9e94c1fbfdac45a3b6811b880777c4116aa309 Author: Ingo Molnar Date: Mon May 12 21:20:54 2008 +0200 sysprof: update copyrights Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit cd2134b1dda92fd450e6a1e12b1c7960dd6a2178 Author: Soeren Sandmann Pedersen Date: Mon May 12 21:20:54 2008 +0200 sysprof: kernel trace add kernel backtracing to the sysprof tracer. change the format of the data, so that type=0 means beginning of stack trace, 1 means kernel address, 2 means user address, and 3 means end of trace. EIP addresses are no longer distinguished from return addresses, mostly because sysprof userspace doesn't make use of it. It may be worthwhile adding this back in though, just in case it becomes interesting. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5fc4511c756860149b81aead6eca5bdf5c438ea7 Author: Thomas Gleixner Date: Fri May 23 23:58:21 2008 +0200 ftrace: make it more available in the Kconfig Signed-off-by: Thomas Gleixner commit 9caee613d3b860ae81b79370eeae9ac967c07536 Author: Thomas Gleixner Date: Fri May 23 23:55:54 2008 +0200 ftrace: fix __trace_special() Signed-off-by: Thomas Gleixner commit ada6b835067dc022f11cdae1c313a3710d3d977c Author: Thomas Gleixner Date: Fri May 23 23:50:41 2008 +0200 ftrace: remove notrace Remove the notrace annotations. The build logic takes care of that. Signed-off-by: Thomas Gleixner commit d618b3e6e50970a6248ac857653fdd49bcd3c045 Author: Ingo Molnar Date: Mon May 12 21:20:49 2008 +0200 ftrace: sysprof updates make the sample period configurable. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 9f6b4e3f4a24f2590f1c96f117fc45fbea9b0fa4 Author: Ingo Molnar Date: Mon May 12 21:20:48 2008 +0200 ftrace: sysprof fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ef4ab15ff34fd9c65e92bee70f58e7179da881c5 Author: Ingo Molnar Date: Mon May 12 21:20:48 2008 +0200 ftrace: make sysprof dependent on x86 for now that's the only tested platform for now. If there's interest we can make it generic easily. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 842af315e8b0adad58fc642eaa5e6f53525e0534 Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: sysprof plugin improvement add sample maximum depth. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit a6dd24f8d00cbccb560b19a723e6fb9bdfb20799 Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: sysprof-plugin, add self-tests Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 56a08bdcff20f0022bd9160c1093e56f763499aa Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: extend sysprof plugin some more Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0075fa80305f3231a2d5df97b00d7f55a48ea27e Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: extend sysprof plugin add per CPU hrtimers. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f06c38103ea9dbca27c3f4d77f444ddefb5477cd Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: add sysprof plugin very first baby version. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 677aa9f77e8de3791b481a0cec6c8b84d1eec626 Author: Steven Rostedt Date: Sat May 17 00:01:36 2008 -0400 ftrace: add have dynamic ftrace config for archs Now that ftrace is being ported to other architectures, it has become apparent that DYNAMIC_FTRACE is dependent on whether or not that architecture implements dynamic ftrace. FTRACE itself may be ported to an architecture without porting dynamic ftrace. This patch adds HAVE_DYNAMIC_FTRACE to allow architectures to port ftrace without having to also port the dynamic aspect as well. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 7fa09f24b477ad41b821713eba757b3aa7a2864a Author: Steven Rostedt Date: Wed May 14 21:30:32 2008 -0400 ftrace: use the new kbuild CFLAGS_REMOVE for x86/kernel directory This patch removes the Makefile turd and uses the nice CFLAGS_REMOVE macro in the x86/kernel directory. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 654e4787689faffdd2137fe91f59fd3ef3363ad2 Author: Steven Rostedt Date: Wed May 14 21:30:31 2008 -0400 ftrace: use the new kbuild CFLAGS_REMOVE for lib directory This patch removes the Makefile turd and uses the nice CFLAGS_REMOVE macro in the lib directory. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6ec562328fda585be2d7f472cfac99d3b44d362a Author: Steven Rostedt Date: Wed May 14 21:30:30 2008 -0400 ftrace: use the new kbuild CFLAGS_REMOVE for kernel directory This patch removes the Makefile turd and uses the nice CFLAGS_REMOVE macro in the kernel directory. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 656ee82cc855027b2e994ad218519b09fa652cc1 Author: Steven Rostedt Date: Wed May 14 21:30:29 2008 -0400 kbuild: create new CFLAGS_REMOVE_(basename).o option We currently have a way to add special CFLAGS to code, but we do not have a way to remove them if needed. With the case of ftrace, some files should simply not be profiled. Adding the -pg flag to these files is simply a waste, and adding "notrace" to each and every function is ugly. Currently we put in "Makefile turd" [1] to stop the compiler from adding -pg to certain files. This was clumsy and awkward. This patch now adds the revese of CFLAGS_(basename).o with CFLAGS_REMOVE_(basename).o. This allows developers to prevent certain CFLAGS from being used to compile files. For example, we can now do CFLAGS_REMOVE_string.o = -pg to remove the -pg option from the string.o file in the lib directory. Note: a space delimited list of options may be added to the REMOVE macro. [1] - what David Miller called the workaronud to remove -pg Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4e491d14f2506b218d678935c25a7027b79178b1 Author: Steven Rostedt Date: Wed May 14 23:49:44 2008 -0400 ftrace: support for PowerPC This patch adds full support for ftrace for PowerPC (both 64 and 32 bit). This includes dynamic tracing and function filtering. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e0eca07badc023a675a61906020b397da20f07c3 Author: Steven Rostedt Date: Wed May 14 23:49:43 2008 -0400 ftrace, POWERPC: add irqs_disabled_flags to ppc PPC doesn't have the irqs_disabled_flags needed by ftrace. This patch adds it. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 489f139614596cbc956a06f5e4bb41288e276fe3 Author: Ingo Molnar Date: Mon Feb 25 13:38:05 2008 +0100 ftrace: fix build bug Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d49dbf33f0bf8748ee3662b973eb57e60525d622 Author: Ingo Molnar Date: Fri May 16 10:41:53 2008 +0200 ftrace: fix include file dependency Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2d8b820b2e81954754277723379ae9ed5de316fa Author: Ingo Molnar Date: Sat Feb 23 16:55:50 2008 +0100 ftrace: cleanups factor out code and clean it up. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 37135677e653537ffc6e7def679443272a1c03c3 Author: Ingo Molnar Date: Wed May 14 08:10:31 2008 +0200 ftrace: fix mcount export bug David S. Miller noticed the following bug: the -pg instrumentation function callback is named differently on each platform. On x86 it is mcount, on sparc it is _mcount. So the export does not make sense in kernel/trace/ftrace.c - move it to x86. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d05f5f9906740474eb768823004ffcd775b12ca6 Author: David Miller Date: Tue May 13 22:06:59 2008 -0700 sparc64: add ftrace support. Signed-off-by: David S. Miller Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit aa5e5ceaf52a882a29d9b86531a20733f5116066 Author: David Miller Date: Tue May 13 22:06:56 2008 -0700 ftrace: remove packed attribute on ftrace_page. It causes unaligned access traps on platforms like sparc (ftrace_page may be marked packed, but once we return a dyn_ftrace sub-object from this array to another piece of code, the "packed" part of the typing information doesn't propagate). But also, it didn't serve any purpose either. Even if packed, on 64-bit or 32-bit, it didn't give us any more dyn_ftrace entries per-page. Signed-off-by: David S. Miller Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b7206153f61bb63ee2cffa63905b57ec01d20e6e Author: Steve French Date: Fri May 23 20:35:07 2008 +0000 [CIFS] Correct incorrect obscure open flag Also add defines for pipe subcommand codes Signed-off-by: Steve French commit 74f4e369fc5b52433ad824cef32d3bf1304549be Author: Ingo Molnar Date: Mon May 12 21:21:15 2008 +0200 ftrace: stacktrace fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5b82a1b08a00b2adca3d9dd9777efff40b7aaaa1 Author: Mathieu Desnoyers Date: Mon May 12 21:21:10 2008 +0200 Port ftrace to markers Porting ftrace to the marker infrastructure. Don't need to chain to the wakeup tracer from the sched tracer, because markers support multiple probes connected. Signed-off-by: Mathieu Desnoyers CC: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0aa977f592f17004f9d1d545f2e1bb9ea71896c3 Author: Mathieu Desnoyers Date: Mon May 12 21:21:10 2008 +0200 Markers - define non optimized marker To support the forthcoming "immediate values" marker optimization, we must have a way to declare markers in few code paths that does not use instruction modification based enable. This will be the case of printk(), some traps and eventually lockdep instrumentation. Changelog : - Fix reversed boolean logic of "generic". Signed-off-by: Mathieu Desnoyers Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit dc102a8fae2d0d6bf5223fc549247f2e23959ae6 Author: Mathieu Desnoyers Date: Mon May 12 21:21:09 2008 +0200 Markers - remove extra format argument Denys Vlasenko : > Not in this patch, but I noticed: > > #define __trace_mark(name, call_private, format, args...) \ > do { \ > static const char __mstrtab_##name[] \ > __attribute__((section("__markers_strings"))) \ > = #name "\0" format; \ > static struct marker __mark_##name \ > __attribute__((section("__markers"), aligned(8))) = \ > { __mstrtab_##name, &__mstrtab_##name[sizeof(#name)], \ > 0, 0, marker_probe_cb, \ > { __mark_empty_function, NULL}, NULL }; \ > __mark_check_format(format, ## args); \ > if (unlikely(__mark_##name.state)) { \ > (*__mark_##name.call) \ > (&__mark_##name, call_private, \ > format, ## args); \ > } \ > } while (0) > > In this call: > > (*__mark_##name.call) \ > (&__mark_##name, call_private, \ > format, ## args); \ > > you make gcc allocate duplicate format string. You can use > &__mstrtab_##name[sizeof(#name)] instead since it holds the same string, > or drop ", format," above and "const char *fmt" from here: > > void (*call)(const struct marker *mdata, /* Probe wrapper */ > void *call_private, const char *fmt, ...); > > since mdata->format is the same and all callees which need it can take it there. Very good point. I actually thought about dropping it, since it would remove an unnecessary argument from the stack. And actually, since I now have the marker_probe_cb sitting between the marker site and the callbacks, there is no API change required. Thanks :) Mathieu Signed-off-by: Mathieu Desnoyers CC: Denys Vlasenko Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3eefae994d9224fb7771a3ddb683868363c23510 Author: Steven Rostedt Date: Mon May 12 21:21:04 2008 +0200 ftrace: limit trace entries Currently there is no protection from the root user to use up all of memory for trace buffers. If the root user allocates too many entries, the OOM killer might start kill off all tasks. This patch adds an algorith to check the following condition: pages_requested > (freeable_memory + current_trace_buffer_pages) / 4 If the above is met then the allocation fails. The above prevents more than 1/4th of freeable memory from being used by trace buffers. To determine the freeable_memory, I made determine_dirtyable_memory in mm/page-writeback.c global. Special thanks goes to Peter Zijlstra for suggesting the above calculation. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6c6c27969a4c6024e6c8838829546c02aaddca18 Author: Pekka Paalanen Date: Mon May 12 21:21:02 2008 +0200 ftrace: add readpos to struct trace_seq; add trace_seq_to_user() Refactor code from tracing_read_pipe() and create trace_seq_to_user(). Moved trace_seq_reset() call before iter->trace->read() call so that when all leftover data is returned, trace_seq is reset automatically. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2bb6f8d6389cbfadd657e7dc069f6986abf35e4f Author: Steven Rostedt Date: Mon May 12 21:21:02 2008 +0200 ftrace: use raw_smp_processor_id for mcount functions Due to debug hooks in the kernel that can change the way smp_processor_id works, use raw_smp_processor_id in mcount called functions (namely ftrace_record_ip). Currently we annotate most debug functions from calling mcount, but we should not rely on that to prevent kernel lockups. This patch uses the raw_smp_processor_id to prevent a recusive crash that can happen if a debug hook in smp_processor_id calls mcount. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit a4feb8348b62fe76a63cdb5569f5c920f5283c06 Author: Ingo Molnar Date: Mon May 12 21:21:02 2008 +0200 ftrace: special stacktrace Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 9fe068e92f6290e89e19adc521441661a1229f00 Author: Ingo Molnar Date: Mon May 12 21:21:02 2008 +0200 ftrace: trace faster Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4823ed7eadf35e4b57ce581327e21d39585f1f32 Author: Steven Rostedt Date: Mon May 12 21:21:01 2008 +0200 ftrace: fix setting of pos in read_pipe In resetting the iterator in read_pipe, the reset of pos was postitioned in the wrong location with respect to the memset operation. The current code sets pos, incorrectly, to zero. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2f1dafe50cc4e58a239fd81bd47f87f32042a1ee Author: Pekka Paalanen Date: Mon May 12 21:21:01 2008 +0200 x86: fix SMP alternatives: use mutex instead of spinlock, text_poke is sleepable text_poke is sleepable. The original fix by Mathieu Desnoyers . Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 107bad8bef5ab2c3a3bff7648c18c9dc3abdc13b Author: Steven Rostedt Date: Mon May 12 21:21:01 2008 +0200 ftrace: add trace pipe header pluggin This patch adds a method for open_pipe and open_read to the pluggins so that they can add a header to the trace pipe call. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 53d0aa773053ab18287781e25d52c5faf9e0e09e Author: Steven Rostedt Date: Mon May 12 21:21:01 2008 +0200 ftrace: add logic to record overruns This patch sets up the infrastructure to record overruns of the tracing buffer. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 72b59d67f80983f7bb587b086fb4cb1bc95263a4 Author: Pekka Paalanen Date: Mon May 12 21:21:01 2008 +0200 x86_64: fix kernel rodata NX setting Without CONFIG_DYNAMIC_FTRACE, mark_rodata_ro() would mark a wrong number of pages as no-execute. The bug was introduced in the patch "ftrace: dont write protect kernel text". The symptom was machine reboot after a CPU hotplug. Signed-off-by: Pekka Paalanen Acked-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 25b0b44a1c732ccfc58095cdd8438955a0a19fff Author: Steven Rostedt Date: Mon May 12 21:21:00 2008 +0200 ftrace: fix comm on function trace output In cleaning up of the sched_switch code, the function trace recording of task comms was removed. This patch adds back the recording of comms for function trace. The output of ftrace now has the task comm instead of <...>. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4fcdae83cebda24b519a89d3dd976081fff1ca80 Author: Steven Rostedt Date: Mon May 12 21:21:00 2008 +0200 ftrace: comment code This is first installment of adding documentation to the ftrace. Expect many more patches of this kind in the near future. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ab46428c6969d50ecf6f6e97b7a84abba6274368 Author: Steven Rostedt Date: Mon May 12 21:21:00 2008 +0200 ftrace: modulize the number of CPU buffers Currently ftrace allocates a trace buffer for every possible CPU. Work is being done to change it to only online CPUs and add hooks to hotplug CPUS. This patch lays out the infrastructure for such a change. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c6caeeb142cd3a03c46107aac45c8effc02bbadb Author: Steven Rostedt Date: Mon May 12 21:21:00 2008 +0200 ftrace: replace simple_strtoul with strict_strtoul Andrew Morton suggested using strict_strtoul over simple_strtoul. This patch replaces them in ftrace. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit cffae437cdfbc8a5370d38cefbff1dfe34dad6ca Author: Steven Rostedt Date: Mon May 12 21:21:00 2008 +0200 ftrace: simple clean ups Andrew Morton mentioned some clean ups that should be done to ftrace. This patch does some of the simple clean ups. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit afc2abc0ae4265730a0fc48618012193a09a1d10 Author: Ingo Molnar Date: Mon May 12 21:21:00 2008 +0200 ftrace: cleanups no code changed. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 93dcc6ea096c51cc30ad0f6647ed05fead2439bf Author: Thomas Gleixner Date: Mon May 12 21:21:00 2008 +0200 ftrace: simplify hexprint simplify hex to ascii conversion. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit bb065afb8ebd07a03155502dba29ebf0f6fe67e8 Author: Steven Rostedt Date: Mon May 12 21:21:00 2008 +0200 lockdep: update lockdep_recursion on graph_lock With the introduction of ftrace, it is possible to recurse into the lockdep functions via the mcount call. To prevent possible lockups, updating the lockdep_recursion counter on grabbing the internal lockdep_lock should prevent deadlocks. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit a98a3c3fde3ae7614f19758a043691b6f59dac53 Author: Steven Rostedt Date: Mon May 12 21:20:59 2008 +0200 ftrace: trace_entries to dynamically change trace buffer size This patch adds /debug/tracing/trace_entries that allows users to see as well as modify the number of trace entries the buffers hold. The number of entries only increments in ENTRIES_PER_PAGE which is calculated by the size of an entry with the number of entries that can fit in a page. The user does not need to use an exact size, but the entries will be rounded to one of the increments. Trying to set the entries to 0 will return with -EINVAL. To avoid race conditions, the modification of the buffer size can only be done when tracing is completely disabled (current_tracer == none). A info message will be printed if a user tries to modify the buffer size when not set to none. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 05bd68c514579e007b46e4fa0461b78416a3f4c2 Author: Steven Rostedt Date: Mon May 12 21:20:59 2008 +0200 ftrace: user proper API for setting RT prios in selftest The wakeup selftest used an internal API for setting the test task priority. This patch fixes it to use the proper API for performing such a task. Thanks goes to Randy Dunlap for pointing out this build failure. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2dc8f09571a61d9cb3dc47bba6608689dfe15d16 Author: Steven Rostedt Date: Mon May 12 21:20:58 2008 +0200 ftrace: trace_pipe implement NONBLOCK This patch implements "NONBLOCK" for trace_pipe. If the trace_pipe is opened with O_NONBLOCK, then the trace_pipe read will not block when buffer is empty. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 845279972f1736c3463c9cebd1bad92a0a347176 Author: Steven Rostedt Date: Mon May 12 21:20:58 2008 +0200 ftrace: return EOF in trace_pipe on change of tracer Break out of while loop with EOF when the current_trace changes. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b5685aede3b7b65e72ddc73b951aa1f70798a614 Author: Steven Rostedt Date: Mon May 12 21:20:58 2008 +0200 ftrace: restore iterator trace in pipe read The trace iterator is reset in the read. We still need to restore the tracer that the trace_pipe was opened with. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8487c23765b6e0444ec6b5f1530766d63fe68e35 Author: Steven Rostedt Date: Mon May 12 21:20:58 2008 +0200 ftrace: allow trace_pipe to block on all reads We expect things like "cat" to block on reads to trace_pipe. That's what trace_pipe is for. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d17d969160c18b631a19c2b34d260691402650f8 Author: Ankita Garg Date: Mon May 12 21:20:58 2008 +0200 ftrace: fix conversion of task state to char in latency tracer The conversion of task states to a character in the sched_switch tracer (part of latency tracer infrastructure), seems to be incorrect. We currently do it by indexing into the state_to_char array using the state value. The state values do not map directly into the array index and are thus incorrect. The following patch addresses this issue. This is also what is being done even in the show_task() routine in kernel/sched.c The patch has been compile and run tested. Signed-off-by: Ankita Garg Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 27adb44c4f671d15932eb0702a09d27244a8a7c1 Author: Steve French Date: Fri May 23 19:43:29 2008 +0000 [CIFS] warn if both dynperm and cifsacl mount options specified Signed-off-by: Steve French commit 72829bc3d63cdc592d8f7dd86ad3b3fe8900fb74 Author: Thomas Gleixner Date: Fri May 23 21:37:28 2008 +0200 ftrace: move enums to ftrace.h and make helper function global picked from the mmiotracer patches to distangle the patch queues. Signed-off-by: Thomas Gleixner commit 86069782d62e731b4835a0cf8eb7d1d0e17cf306 Author: Pekka Paalanen Date: Mon May 12 21:20:56 2008 +0200 x86: add a list for custom page fault handlers. Provides kernel modules a way to register custom page fault handlers. On every page fault this will call a list of registered functions. The functions may handle the fault and force do_page_fault() to return immediately. This functionality is similar to the now removed page fault notifiers. Custom page fault handlers are used by debugging and reverse engineering tools. Mmiotrace is one such tool and a patch to add it into the tree will follow. The custom page fault handlers are called earlier in do_page_fault() than the page fault notifiers were. Signed-off-by: Pekka Paalanen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8f0f996e80b980fba07d11961d96a5fefb60976a Author: Steven Rostedt Date: Mon May 12 21:20:56 2008 +0200 ftrace: dont write protect kernel text Dynamic ftrace cant work when the kernel has its text write protected. This patch keeps the kernel from being write protected when dynamic ftrace is in place. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit a56be3fe2f65f9f776e727bfd382e35db75911d6 Author: Steven Rostedt Date: Mon May 12 21:20:56 2008 +0200 ftrace: fix the fault label in updating code The fault label to jump to on fault of updating the code was misplaced preventing the fault from being recorded. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 30afdcb1de0a37a2086145a82ca3febebe47d019 Author: Steven Rostedt Date: Mon May 12 21:20:56 2008 +0200 ftrace: selftest protect againt max flip There is a slight race condition in the selftest where the max update of the wakeup and irqs/preemption off tests can be doing a max update as the buffers are being tested. If this happens the system can crash with a GPF. This patch adds the max update spinlock around the checking of the buffers to prevent such a race. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d15f57f23eaba975309a153b23699cd0c0236974 Author: Steven Rostedt Date: Mon May 12 21:20:56 2008 +0200 ftrace: fix mutex unlock in trace output If the trace output changes on reading the trace files, there is a chance that the start function will return NULL. If the start function of a sequence returns NULL the stop equivalent is not called. In this case, all locks that are taken must be released even if they are released in the stop function. This patch fixes a case that a mutex was not released on return of NULL in the start sequence function. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 07a267cdd2fd7d1de9455b1e36a1635ace7276c7 Author: Steven Rostedt Date: Mon May 12 21:20:55 2008 +0200 ftrace: add UNINTERRUPTIBLE state for kftraced on disable When dynamic ftrace fails and sets itself disabled, the ftraced daemon will go back to sleep everytime it wakes up. The setting of the ftraced state to UNINTERRUPTIBLE is skipped in this process, and the daemon takes up 100% of the CPU. This patch makes sure the ftraced daemon sets itself to UNINTERRUPTIBLE in that loop. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c1d2327b36f2261ffa8ff7227321ba900c7eee7f Author: Ingo Molnar Date: Mon May 12 21:20:55 2008 +0200 ftrace: restrict tracing to HAVE_FTRACE architectures Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1d09daa55d2e9bab7e7d30f0d05e5a7bc60b2a4a Author: Steven Rostedt Date: Mon May 12 21:20:55 2008 +0200 ftrace: use Makefile to remove tracing from lockdep This patch removes the "notrace" annotation from lockdep and adds the debugging files in the kernel director to those that should not be compiled with "-pg" mcount tracing. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 9d0a420b737f72d84fabebf29634d800cbf54538 Author: Steven Rostedt Date: Mon May 12 21:20:55 2008 +0200 ftrace: remove function tracing from spinlock debug The debug functions in spin_lock debugging pollute the output of the function tracer. This patch adds the debug files in the lib director to those that should not be compiled with mcount tracing. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 92205c2343527a863d660360599a4bf8cede77b0 Author: Steven Rostedt Date: Mon May 12 21:20:55 2008 +0200 ftrace: user raw_spin_lock in tracing Lock debugging enabled cause huge performance problems for tracing. Having the lock verification happening for every function that is called because mcount calls spin_lock can cripple the system. This patch converts the spin_locks used by ftrace into raw_spin_locks. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c5f888cae49dfe3e86d9d1e0dab2b63ceb057be3 Author: Steven Rostedt Date: Mon May 12 21:20:55 2008 +0200 ftrace: irqsoff use raw_smp_processor_id This patch changes the use of __get_cpu_var to explicitly calling raw_smp_processor_id and using the per_cpu() macro. On some debug configurations, the use of __get_cpu_var may cause ftrace to trigger and this can cause problems with the irqsoff tracing. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4d9493c90f8e6e1b164aede3814010a290161abb Author: Ingo Molnar Date: Mon May 12 21:20:54 2008 +0200 ftrace: remove add-hoc code Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d05cdb25d80f06f77aa6bddb53cd1390d4d91a0b Author: Steven Rostedt Date: Mon May 12 21:20:54 2008 +0200 ftrace: fix dynamic ftrace selftest With the adding of the configuration changes in the Makefile to prevent tracing of functions in the ftrace code, all tracing of all the ftrace code has been removed. Unfortunately, one of the selftests, relied on a function to be traced. With the new change, the function was no longer traced and the test failed. This patch separates out the test function into its own file so that we can add the "-pg" flag to the compilation of that function and the adding of the mcount call to that function. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 06fa75ab566c50e01bfd7b055bde85cf9b1bc98a Author: Steven Rostedt Date: Mon May 12 21:20:54 2008 +0200 ftrace: add TRACE_STACK and TRACE_SPECIAL to selftest validation The selftest validation code checks for valid entries in the trace buffer. TRACE_STACK and TRACE_SPECIAL have been added to the code but not to the validator. This patch adds the two to prevent them from flagging a failure in the selftest. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4fe8c3048cd8280a54256bca9cac2007bd546c33 Author: Steven Rostedt Date: Mon May 12 21:20:54 2008 +0200 ftrace: printk and trace irqsoff and wakeups printk called from wakeup critical timings and irqs off can cause deadlocks since printk might do a wakeup itself. If the call to printk happens with the runqueue lock held, it can deadlock. This patch protects the printk from being called in trace irqs off with a test to see if the runqueue for the current CPU is locked. If it is locked, the printk is skipped. The wakeup always holds the runqueue lock, so the printk is simply removed. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8f96da02c14d722ad9a3713cd7273ce28c9036ad Author: Steven Rostedt Date: Mon May 12 21:20:54 2008 +0200 ftrace: remove wakeup from function trace trace_function is called by mcount and calling wake_up from that can have unpredictable results. This patch removes the wakeup from trace_function. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 694379e9ed4f2f6babe111bf001c69e2e263338b Author: Ingo Molnar Date: Mon May 12 21:20:54 2008 +0200 ftrace: make it more available in the Kconfig Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5429db2d26a59903c81a4f6c6dae7eb9daaea5fc Author: Peter Zijlstra Date: Mon May 12 21:20:53 2008 +0200 ftrace: fix wakeup callback Signed-off-by: Peter Zijlstra Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit bac524d3f3dfeffa3a9d44f2c64035b88bcaacb4 Author: Peter Zijlstra Date: Mon May 12 21:20:53 2008 +0200 ftrace: trace next state Signed-off-by: Peter Zijlstra Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 88a4216c3ec4281fc7e6725cc3a3ccd01fb1aa14 Author: Ingo Molnar Date: Mon May 12 21:20:53 2008 +0200 ftrace: sched special Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 36fc25a9f48deacd8aa08cd2d1c186a4e412604f Author: Ingo Molnar Date: Mon May 12 21:20:53 2008 +0200 ftrace: sched tree fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f29c73fe3404f8799ed57aaf48859e0b55fc071f Author: Ingo Molnar Date: Mon May 12 21:20:53 2008 +0200 ftrace: include cpu in stacktrace Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 442e544ce52d4415a024920b84fb95c5f9aa0855 Author: Ingo Molnar Date: Mon May 12 21:20:53 2008 +0200 ftrace: iter ctrl fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d9af56fbd8b37181bffaad060f74aa2e17382874 Author: Ingo Molnar Date: Mon May 12 21:20:53 2008 +0200 ftrace: fix cmdline tracing Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 36dfe9252bd4c9b55e8454363fb7e444c92c5030 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: make use of tracing_cpumask Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c7078de1aaf562a31b20984409c38cc1b40fa8a3 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: add tracing_cpumask Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4ac3ba41d372e3a9e420b36bc43589662b188a14 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: trace scheduler rbtree Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1a3c3034336320554a3342572dae98d69e054fc7 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: fix __trace_special() Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 017730c11241e26577673eb9d957cfc66172ea91 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: fix wakeups Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 24cd5d111e8c713e62cda7ca1d01232402e3d3c9 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: trace curr/next tasks Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4e65551905fb0300ae7e667cbaa41ee2e3f29a13 Author: Ingo Molnar Date: Mon May 12 21:20:52 2008 +0200 ftrace: sched tracer, trace full rbtree Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4c1f4d4f0175129934d5dbc19a39296430937a05 Author: Ingo Molnar Date: Mon May 12 21:20:51 2008 +0200 ftrace: make nostacktrace the default Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8ac0fca4ccb355ce50471d7aa3f10f5900b28b95 Author: Ingo Molnar Date: Mon May 12 21:20:51 2008 +0200 ftrace: sched tracer fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 86387f7ee5d3273ff4859e2c64ce656639b6ca65 Author: Ingo Molnar Date: Mon May 12 21:20:51 2008 +0200 ftrace: add stack tracing Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 57422797dc009fc83766bcf230d29dbe6e08e21e Author: Ingo Molnar Date: Mon May 12 21:20:51 2008 +0200 ftrace: add wakeup events to sched tracer Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e309b41dd65aa953f86765eeeecc941d8e1e8b8f Author: Ingo Molnar Date: Mon May 12 21:20:51 2008 +0200 ftrace: remove notrace now that we have a kbuild method for notrace, no need to pollute the C code with the annotations. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b53dde9d34f2df396540988ebc65c33400f57b04 Author: Ingo Molnar Date: Mon May 12 21:20:51 2008 +0200 ftrace: disable -pg for the tracer itself Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3594136ad67a54d77bcb2547e70011754a2f91d5 Author: Steven Rostedt Date: Mon May 12 21:20:50 2008 +0200 ftrace: do not profile lib/string.o Most archs define the string and memory compare functions in assembly. Some do not. But these functions may be used in some archs at early boot up. Since most archs define this code in assembly and they are not usually traced, there's no need to trace them when they are not defined in assembly. This patch removes the -pg from the CFLAGS for lib/string.o. This prevents the string functions use in either vdso or early bootup from crashing the system. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit caf8cdebfb6c1cff50ea8077f1a07c2333d6d1fd Author: Steven Rostedt Date: Mon May 12 21:20:50 2008 +0200 ftrace: remove address of function names PowerPC is very fragile when it comes to use of function names and function addresses. ftrace needs to either use all function addresses or function names (i.e. my_func as suppose to &my_func). This patch chooses to use the names and not the addresses, and makes ftrace consistent. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 9ff9cdb2d3b0971f89e899b3420aadd91bddc215 Author: Ingo Molnar Date: Mon May 12 21:20:50 2008 +0200 ftrace: cleanups clean up recent code. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6fb44b717c10ecf37beaaebd312f3afa93fed714 Author: Steven Rostedt Date: Mon May 12 21:20:49 2008 +0200 ftrace: add trace_function api for other tracers to use A new check was added in the ftrace function that wont trace if the CPU trace buffer is disabled. Unfortunately, other tracers used ftrace() to write to the buffer after they disabled it. The new disable check makes these calls into a nop. This patch changes the __ftrace that is called without the check into a new api for the other tracers to use, called "trace_function". The other tracers use this interface instead when the trace CPU buffer is already disabled. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2a2cc8f7c4d0dfd75720867f7dc58d24f075edfc Author: Soeren Sandmann Pedersen Date: Mon May 12 21:20:49 2008 +0200 ftrace: allow the event pipe to be polled Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit aeaee8a2c9cb4489f166ca0e39c568e8254faaa6 Author: Ingo Molnar Date: Mon May 12 21:20:49 2008 +0200 ftrace: build fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2577046740fe6d77864128c6187c11125c2449ea Author: Ingo Molnar Date: Mon May 12 21:20:49 2008 +0200 ftrace: build fix no need to backmerge, only affects ftrace-enabled kernels. (which is not the default) Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5e3ca0ec76fce92daa4eed0d02de9c79b1fe3920 Author: Ingo Molnar Date: Mon May 12 21:20:49 2008 +0200 ftrace: introduce the "hex" output method Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2e0f57618529a2739a5e1570e6c445c9c966b595 Author: Ingo Molnar Date: Mon May 12 21:20:49 2008 +0200 ftrace: build fix Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0fd9e0dac9026df09986a4b201518ae015814aef Author: Ingo Molnar Date: Mon May 12 21:20:48 2008 +0200 ftrace: use cpu clock again Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 26994ead1fc8cced63f17e9848edc1771036664e Author: Steven Rostedt Date: Mon May 12 21:20:48 2008 +0200 ftrace: enabled tracing by default This patch is the correct way to have tracing enabled by default. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4eebcc81a33fbc45e28542b50197ed7b3c486d90 Author: Steven Rostedt Date: Mon May 12 21:20:48 2008 +0200 ftrace: disable tracing on failure Since ftrace touches practically every function. If we detect any anomaly, we want to fully disable ftrace. This patch adds code to try shutdown ftrace as much as possible without doing any more harm is something is detected not quite correct. This only kills ftrace, this patch does have checks for other parts of the tracer (irqsoff, wakeup, etc.). Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 37ad508419f0fdfda7b378756eb1f35cfd26d96d Author: Steven Rostedt Date: Mon May 12 21:20:48 2008 +0200 ftrace - fix dynamic ftrace memory leak The ftrace dynamic function update allocates a record to store the instruction pointers that are being modified. If the modified instruction pointer fails to update, then the record is marked as failed and nothing more is done. Worse, if the modification fails, but the record ip function is still called, it will allocate a new record and try again. In just a matter of time, will this cause a serious memory leak and crash the system. This patch plugs this memory leak. When a record fails, it is included back into the pool of records to be used. Now a record may fail over and over again, but the number of allocated records will not increase. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 088b1e427dbba2af93cb6a7d39258c10ff58dd27 Author: Steven Rostedt Date: Mon May 12 21:20:48 2008 +0200 ftrace: pipe fixes Some fixes for better output with the trace pipe. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit dcb6308f2b56720599f6b9d5a01c33e67e69bde4 Author: Ingo Molnar Date: Mon May 12 21:20:48 2008 +0200 ftrace, locking fix should be an irq-safe lock ... Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f0a920d5752e1788c0cba2add103076bcc0f7a49 Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: add trace_special() for ad-hoc tracing. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit cb0f12aae8d085140d37ada351aa5a8e76c3f9b0 Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: bin-output Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f9896bf30928922a3913a3810a4ab7908da6cfe7 Author: Ingo Molnar Date: Mon May 12 21:20:47 2008 +0200 ftrace: add raw output Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8c523a9d82dbc4f3f7d972df8c0f1eacd83d0d55 Author: Ingo Molnar Date: Mon May 12 21:20:46 2008 +0200 ftrace: clean-up-pipe-iteration Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit cdd31cd2d7a0dcbec2cce3974f7129dd4fc8c879 Author: Ingo Molnar Date: Mon May 12 21:20:46 2008 +0200 ftrace: remove-idx-sync remove idx syncing - it's expensive on SMP. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 53c37c17aafcf50f7c6fddaf01dda8f9d7e31ddf Author: Ingo Molnar Date: Mon May 12 21:20:46 2008 +0200 ftrace: fast, scalable, synchronized timestamps implement globally synchronized, fast and scalable time source for tracing. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 750ed1a40783432d0dcb0e6c2e813a12615d7664 Author: Ingo Molnar Date: Mon May 12 21:20:46 2008 +0200 ftrace: timestamp syncing, prepare rename and uninline now() to ftrace_now(). Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4bf39a9411a4ce8712954e03a9bd1592ee345919 Author: Ingo Molnar Date: Mon May 12 21:20:46 2008 +0200 ftrace: cleanups no code changed. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d4c5a2f5870939d837293de87b41dda0012a4572 Author: Ingo Molnar Date: Mon May 12 21:20:46 2008 +0200 ftrace: fix locking we can hold all cpu trace buffer locks at once - put each into a separate lock class. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b3806b4316306dc9c542eff6c23d7d42918f3504 Author: Steven Rostedt Date: Mon May 12 21:20:46 2008 +0200 ftrace: user run time file reading This patch creates a file called trace_pipe in the tracing debug directory. This file is a consumer of the trace buffers. This means that reads of this file consumes the entries from the trace buffers so that they will not be read a second time, as contrast to the static buffers latency_trace and trace. Reading from the trace_pipe will remove the entries from trace and latency_trace too. The advantage that trace_pipe has is that it can record live traces. It will block when there is nothing in the buffer, and read the entries as they are entered. An EOF happens when tracing is disabled (tracing_enabled = 0). Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 214023c3d13a71525e463b5e54e360b926b4dc90 Author: Steven Rostedt Date: Mon May 12 21:20:46 2008 +0200 ftrace: add a buffer for output Later patches will need to print the same things as the seq output does. But those outputs will not use the seq utility. This patch adds a buffer to the iterator, that can be used by either the seq utility or other output. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 93a588f459da134be6ab17c4104e28441beb0d22 Author: Steven Rostedt Date: Mon May 12 21:20:45 2008 +0200 ftrace: change buffers to producer consumer This patch changes the way the CPU trace buffers are handled. Instead of always starting from the trace page head, the logic is changed to a producer consumer logic. This allows for the buffers to be drained while they are alive. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1d4db00a5e30c7b8f8dc2a1b19e886fd942be143 Author: Steven Rostedt Date: Mon May 12 21:20:45 2008 +0200 ftrace: reset selftests The tests may leave stuff in the buffers. This resets the buffers after each test is run. If a test fails, it does not reset the buffer to avoid touching a buffer that is corrupted. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 08bafa0efcf29fe18ec39c2147077b597368b018 Author: Steven Rostedt Date: Mon May 12 21:20:45 2008 +0200 ftrace: disable all tracers on corrupted buffer If the trace buffer is detected to be corrupted, then we disable all tracers. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4e3c3333f3bd7eedfd21b1155b3c7cd24fc7f754 Author: Ingo Molnar Date: Mon May 12 21:20:45 2008 +0200 ftrace: fix time offset fix time offset calculations and ordering, plus make code more consistent. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 77a2b37d227483fe52aead242652aee406c25bf0 Author: Steven Rostedt Date: Mon May 12 21:20:45 2008 +0200 ftrace: startup tester on dynamic tracing. This patch adds a startup self test on dynamic code modification and filters. The test filters on a specific function, makes sure that no other function is traced, exectutes the function, then makes sure that the function is traced. This patch also fixes a slight bug with the ftrace selftest, where tracer_enabled was not being set. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 7bd2f24c2f769e3f8f1d4fc8b9fddf689825f6a7 Author: Ingo Molnar Date: Mon May 12 21:20:45 2008 +0200 ftrace: add README make it easier for newbies to find their way around. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c7aafc549766b87819285d3480648fc652a47bc4 Author: Ingo Molnar Date: Mon May 12 21:20:45 2008 +0200 ftrace: cleanups factor out code and clean it up. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 60a11774b38fef1ab90b18c5353bd1c7c4d311c8 Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: add self-tests Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e1c08bdd9fa73e44096e5a82c0d5928b04ab02c8 Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: force recording Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 57f50be14d57b0dbf88dd019e7bb0ff3a3dc7b81 Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: fix max latency Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 89b2f97819dd074297bbe3e19eaa4afcc98845ad Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: fix updates to max trace This patch fixes some bugs to the updating of the max trace that was caused by implementing the new buffering. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 18cef379d30f5ded20cc31d7f2d342639d39919d Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: don't use raw_local_irq_save/restore Using raw_local_irq_save/restore confuses lockdep. It's fine to use the normal ones. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0764d23cf066c52de42b653144605b481d3fbdbc Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: lockdep notrace annotations Add notrace annotations to lockdep to keep ftrace from causing recursive problems with lock tracing and debugging. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 361943ad0ba3f16e66859e30a408915e008ba91e Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: irqs off smp_processor_id() fix The irqsoff function tracer did a __get_cpu_var to determine if it should trace the function or not. The problem is that __get_cpu_var can preempt between getting the CPU and reading the cpu variable. This means that the cpu variable that is being read is not from the cpu being run on. At worst, this can give a false positive, where we trace the function when we should not. It will never give a false negative since we only want to trace when interrupts are disabled and we never preempt when they are. This fix adds a check after reading the irq flags to only trace if the interrupts are actually disabled. It also changes the reading of the cpu variable to use a raw_smp_processor_id since we now don't care if we preempt. We still catch that fact. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5568b139f4d196273958ae2947a736fdf1ffeece Author: Steven Rostedt Date: Mon May 12 21:20:44 2008 +0200 ftrace: debug smp_processor_id, use notrace preempt disable The debug smp_processor_id caused a recursive fault in debugging the irqsoff tracer. The tracer used a smp_processor_id in the ftrace callback, and this function called preempt_disable which also is traced. This caused a recursive fault (stack overload). Since using smp_processor_id without debugging on does not cause faults with the tracer (even when the tracer is wrong), the debug version should not cause a system reboot. This changes the debug_smp_processor_id to use the notrace versions of preempt_disable and enable. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f43fdad8627fec2d21df92799b254dceb66c9c3c Author: Ingo Molnar Date: Mon May 12 21:20:43 2008 +0200 ftrace: fix kexec disable the tracer while kexec pulls the rug from under the old kernel. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4c11d7aed389375253b59e2b1865eec96663c65d Author: Steven Rostedt Date: Mon May 12 21:20:43 2008 +0200 ftrace: convert single large buffer into single pages. Allocating large buffers for the tracer may fail easily. This patch converts the buffer from a large ordered allocation to single pages. It uses the struct page LRU field to link the pages together. Later patches may also implement dynamic increasing and decreasing of the trace buffers. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5072c59fd45e9976d02ee6f18c7336ef97623cbc Author: Steven Rostedt Date: Mon May 12 21:20:43 2008 +0200 ftrace: add filter select functions to trace This patch adds two files to the debugfs system: /debugfs/tracing/available_filter_functions and /debugfs/tracing/set_ftrace_filter The available_filter_functions lists all functions that has been recorded by the ftraced that has called the ftrace_record_ip function. This is to allow users to see what functions have been converted to nops and can be enabled for tracing. To enable functions, simply echo the names (whitespace delimited) into set_ftrace_filter. Simple wildcards are also allowed. echo 'scheduler' > /debugfs/tracing/set_ftrace_filter Will have only the scheduler be activated when tracing is enabled. echo 'sched_*' > /debugfs/tracing/set_ftrace_filter Will have only the functions starting with 'sched_' be activated. echo '*lock' > /debugfs/tracing/set_ftrace_filter Will have only functions ending with 'lock' be activated. echo '*lock*' > /debugfs/tracing/set_ftrace_filter Will have only functions with 'lock' in its name be activated. Note: 'sched*lock' will not work. The only wildcards that are allowed is an asterisk and the beginning and or end of the string passed in. Multiple names can be passed in with whitespace delimited: echo 'scheduler *lock *acpi*' > /debugfs/tracing/set_ftrace_filter is also the same as: echo 'scheduler' > /debugfs/tracing/set_ftrace_filter echo '*lock' >> /debugfs/tracing/set_ftrace_filter echo '*acpi*' >> /debugfs/tracing/set_ftrace_filter Appending does just that. It appends to the list. To disable all filters simply echo an empty line in: echo > /debugfs/tracing/set_ftrace_filter Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d61f82d06672f57fca410da6f7fffd15867db622 Author: Steven Rostedt Date: Mon May 12 21:20:43 2008 +0200 ftrace: use dynamic patching for updating mcount calls This patch replaces the indirect call to the mcount function pointer with a direct call that will be patched by the dynamic ftrace routines. On boot up, the mcount function calls the ftace_stub function. When the dynamic ftrace code is initialized, the ftrace_stub is replaced with a call to the ftrace_record_ip, which records the instruction pointers of the locations that call it. Later, the ftraced daemon will call kstop_machine and patch all the locations to nops. When a ftrace is enabled, the original calls to mcount will now be set top call ftrace_caller, which will do a direct call to the registered ftrace function. This direct call is also patched when the function that should be called is updated. All patching is performed by a kstop_machine routine to prevent any type of race conditions that is associated with modifying code on the fly. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3c1720f00bb619302ba19d55986ab565e74d06db Author: Steven Rostedt Date: Mon May 12 21:20:43 2008 +0200 ftrace: move memory management out of arch code This patch moves the memory management of the ftrace records out of the arch code and into the generic code making the arch code simpler. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit dfa60aba04dae7833d75b2e2be124bb7cfb8239f Author: Steven Rostedt Date: Mon May 12 21:20:43 2008 +0200 ftrace: use nops instead of jmp This patch patches the call to mcount with nops instead of a jmp over the mcount call. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b0fc494fae96a7089f3651cb451f461c7291244c Author: Steven Rostedt Date: Mon May 12 21:20:43 2008 +0200 ftrace: add ftrace_enabled sysctl to disable mcount function This patch adds back the sysctl ftrace_enabled. This time it is defaulted to on, if DYNAMIC_FTRACE is configured. When ftrace_enabled is disabled, the ftrace function is set to the stub return. If DYNAMIC_FTRACE is also configured, on ftrace_enabled = 0, the registered ftrace functions will all be set to jmps, but no more new calls to ftrace recording (used to find the ftrace calling sites) will be called. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3d0833953e1b98b79ddf491dd49229eef9baeac1 Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: dynamic enabling/disabling of function calls This patch adds a feature to dynamically replace the ftrace code with the jmps to allow a kernel with ftrace configured to run as fast as it can without it configured. The way this works, is on bootup (if ftrace is enabled), a ftrace function is registered to record the instruction pointer of all places that call the function. Later, if there's still any code to patch, a kthread is awoken (rate limited to at most once a second) that performs a stop_machine, and replaces all the code that was called with a jmp over the call to ftrace. It only replaces what was found the previous time. Typically the system reaches equilibrium quickly after bootup and there's no code patching needed at all. e.g. call ftrace /* 5 bytes */ is replaced with jmp 3f /* jmp is 2 bytes and we jump 3 forward */ 3: When we want to enable ftrace for function tracing, the IP recording is removed, and stop_machine is called again to replace all the locations of that were recorded back to the call of ftrace. When it is disabled, we replace the code back to the jmp. Allocation is done by the kthread. If the ftrace recording function is called, and we don't have any record slots available, then we simply skip that call. Once a second a new page (if needed) is allocated for recording new ftrace function calls. A large batch is allocated at boot up to get most of the calls there. Because we do this via stop_machine, we don't have to worry about another CPU executing a ftrace call as we modify it. But we do need to worry about NMI's so all functions that might be called via nmi must be annotated with notrace_nmi. When this code is configured in, the NMI code will not call notrace. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6cd8a4bb2f97527a9ceb30bc77ea4e959c6a95e3 Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: trace preempt off critical timings Add preempt off timings. A lot of kernel core code is taken from the RT patch latency trace that was written by Ingo Molnar. This adds "preemptoff" and "preemptirqsoff" to /debugfs/tracing/available_tracers Now instead of just tracing irqs off, preemption off can be selected to be recorded. When this is selected, it shares the same files as irqs off timings. One can either trace preemption off, irqs off, or one or the other off. By echoing "preemptoff" into /debugfs/tracing/current_tracer, recording of preempt off only is performed. "irqsoff" will only record the time irqs are disabled, but "preemptirqsoff" will take the total time irqs or preemption are disabled. Runtime switching of these options is now supported by simpling echoing in the appropriate trace name into /debugfs/tracing/current_tracer. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 81d68a96a39844853b37f20cc8282d9b65b78ef3 Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: trace irq disabled critical timings This patch adds latency tracing for critical timings (how long interrupts are disabled for). "irqsoff" is added to /debugfs/tracing/available_tracers Note: tracing_max_latency also holds the max latency for irqsoff (in usecs). (default to large number so one must start latency tracing) tracing_thresh threshold (in usecs) to always print out if irqs off is detected to be longer than stated here. If irq_thresh is non-zero, then max_irq_latency is ignored. Here's an example of a trace with ftrace_enabled = 0 ======= preemption latency trace v1.1.5 on 2.6.24-rc7 Signed-off-by: Ingo Molnar -------------------------------------------------------------------- latency: 100 us, #3/3, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2) ----------------- | task: swapper-0 (uid:0 nice:0 policy:0 rt_prio:0) ----------------- => started at: _spin_lock_irqsave+0x2a/0xb7 => ended at: _spin_unlock_irqrestore+0x32/0x5f _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | caller \ / ||||| \ | / swapper-0 1d.s3 0us+: _spin_lock_irqsave+0x2a/0xb7 (e1000_update_stats+0x47/0x64c [e1000]) swapper-0 1d.s3 100us : _spin_unlock_irqrestore+0x32/0x5f (e1000_update_stats+0x641/0x64c [e1000]) swapper-0 1d.s3 100us : trace_hardirqs_on_caller+0x75/0x89 (_spin_unlock_irqrestore+0x32/0x5f) vim:ft=help ======= And this is a trace with ftrace_enabled == 1 ======= preemption latency trace v1.1.5 on 2.6.24-rc7 -------------------------------------------------------------------- latency: 102 us, #12/12, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2) ----------------- | task: swapper-0 (uid:0 nice:0 policy:0 rt_prio:0) ----------------- => started at: _spin_lock_irqsave+0x2a/0xb7 => ended at: _spin_unlock_irqrestore+0x32/0x5f _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | caller \ / ||||| \ | / swapper-0 1dNs3 0us+: _spin_lock_irqsave+0x2a/0xb7 (e1000_update_stats+0x47/0x64c [e1000]) swapper-0 1dNs3 46us : e1000_read_phy_reg+0x16/0x225 [e1000] (e1000_update_stats+0x5e2/0x64c [e1000]) swapper-0 1dNs3 46us : e1000_swfw_sync_acquire+0x10/0x99 [e1000] (e1000_read_phy_reg+0x49/0x225 [e1000]) swapper-0 1dNs3 46us : e1000_get_hw_eeprom_semaphore+0x12/0xa6 [e1000] (e1000_swfw_sync_acquire+0x36/0x99 [e1000]) swapper-0 1dNs3 47us : __const_udelay+0x9/0x47 (e1000_read_phy_reg+0x116/0x225 [e1000]) swapper-0 1dNs3 47us+: __delay+0x9/0x50 (__const_udelay+0x45/0x47) swapper-0 1dNs3 97us : preempt_schedule+0xc/0x84 (__delay+0x4e/0x50) swapper-0 1dNs3 98us : e1000_swfw_sync_release+0xc/0x55 [e1000] (e1000_read_phy_reg+0x211/0x225 [e1000]) swapper-0 1dNs3 99us+: e1000_put_hw_eeprom_semaphore+0x9/0x35 [e1000] (e1000_swfw_sync_release+0x50/0x55 [e1000]) swapper-0 1dNs3 101us : _spin_unlock_irqrestore+0xe/0x5f (e1000_update_stats+0x641/0x64c [e1000]) swapper-0 1dNs3 102us : _spin_unlock_irqrestore+0x32/0x5f (e1000_update_stats+0x641/0x64c [e1000]) swapper-0 1dNs3 102us : trace_hardirqs_on_caller+0x75/0x89 (_spin_unlock_irqrestore+0x32/0x5f) vim:ft=help ======= Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 352ad25aa4a189c667cb2af333948d34692a2d27 Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: tracer for scheduler wakeup latency This patch adds the tracer that tracks the wakeup latency of the highest priority waking task. "wakeup" is added to /debugfs/tracing/available_tracers Also added to /debugfs/tracing tracing_max_latency holds the current max latency for the wakeup wakeup_thresh if set to other than zero, a log will be recorded for every wakeup that takes longer than the number entered in here (usecs for all counters) (deletes previous trace) Examples: (with ftrace_enabled = 0) ============ preemption latency trace v1.1.5 on 2.6.24-rc8 Signed-off-by: Ingo Molnar -------------------------------------------------------------------- latency: 26 us, #2/2, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2) ----------------- | task: migration/0-3 (uid:0 nice:-5 policy:1 rt_prio:99) ----------------- _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | caller \ / ||||| \ | / quilt-8551 0d..3 0us+: wake_up_process+0x15/0x17 (sched_exec+0xc9/0x100 ) quilt-8551 0d..4 26us : sched_switch_callback+0x73/0x81 (schedule+0x483/0x6d5 ) vim:ft=help ============ (with ftrace_enabled = 1) ============ preemption latency trace v1.1.5 on 2.6.24-rc8 -------------------------------------------------------------------- latency: 36 us, #45/45, CPU#0 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2) ----------------- | task: migration/1-5 (uid:0 nice:-5 policy:1 rt_prio:99) ----------------- _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | caller \ / ||||| \ | / bash-10653 1d..3 0us : wake_up_process+0x15/0x17 (sched_exec+0xc9/0x100 ) bash-10653 1d..3 1us : try_to_wake_up+0x271/0x2e7 (sub_preempt_count+0xc/0x7a ) bash-10653 1d..2 2us : try_to_wake_up+0x296/0x2e7 (update_rq_clock+0x9/0x20 ) bash-10653 1d..2 2us : update_rq_clock+0x1e/0x20 (__update_rq_clock+0xc/0x90 ) bash-10653 1d..2 3us : __update_rq_clock+0x1b/0x90 (sched_clock+0x9/0x29 ) bash-10653 1d..2 4us : try_to_wake_up+0x2a6/0x2e7 (activate_task+0xc/0x3f ) bash-10653 1d..2 4us : activate_task+0x2d/0x3f (enqueue_task+0xe/0x66 ) bash-10653 1d..2 5us : enqueue_task+0x5b/0x66 (enqueue_task_rt+0x9/0x3c ) bash-10653 1d..2 6us : try_to_wake_up+0x2ba/0x2e7 (check_preempt_wakeup+0x12/0x99 ) [...] bash-10653 1d..5 33us : tracing_record_cmdline+0xcf/0xd4 (_spin_unlock+0x9/0x33 ) bash-10653 1d..5 34us : _spin_unlock+0x19/0x33 (sub_preempt_count+0xc/0x7a ) bash-10653 1d..4 35us : wakeup_sched_switch+0x65/0x2ff (_spin_lock_irqsave+0xc/0xa9 ) bash-10653 1d..4 35us : _spin_lock_irqsave+0x19/0xa9 (add_preempt_count+0xe/0x77 ) bash-10653 1d..4 36us : sched_switch_callback+0x73/0x81 (schedule+0x483/0x6d5 ) vim:ft=help ============ The [...] was added here to not waste your email box space. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 35e8e302e5d6e32675df2fc1dd3a53dfa6630dc1 Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: add tracing of context switches This patch adds context switch tracing, of the format of: _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | pid:prio:state \ / ||||| \ | / swapper-0 1d..3 137us+: 0:140:R --> 2912:120 sshd-2912 1d..3 216us+: 2912:120:S --> 0:140 swapper-0 1d..3 261us+: 0:140:R --> 2912:120 bash-2920 0d..3 267us+: 2920:120:S --> 0:140 sshd-2912 1d..3 330us!: 2912:120:S --> 0:140 swapper-0 1d..3 2389us+: 0:140:R --> 2847:120 yum-upda-2847 1d..3 2411us!: 2847:120:S --> 0:140 swapper-0 0d..3 11089us+: 0:140:R --> 3139:120 gdm-bina-3139 0d..3 11113us!: 3139:120:S --> 0:140 swapper-0 1d..3 102328us+: 0:140:R --> 2847:120 yum-upda-2847 1d..3 102348us!: 2847:120:S --> 0:140 "sched_switch" is added to /debugfs/tracing/available_tracers [ Eugene Teo Cc: Mathieu Desnoyers Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1b29b01887e6032dcaf818c14999c7a39593b4e7 Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: function tracer This is a simple trace that uses the ftrace infrastructure. It is designed to be fast and small, and easy to use. It is useful to record things that happen over a very short period of time, and not to analyze the system in general. Updates: available_tracers "function" is added to this file. current_tracer To enable the function tracer: echo function > /debugfs/tracing/current_tracer To disable the tracer: echo disable > /debugfs/tracing/current_tracer The output of the function_trace file is as follows "echo noverbose > /debugfs/tracing/iter_ctrl" preemption latency trace v1.1.5 on 2.6.24-rc7-tst Signed-off-by: Ingo Molnar -------------------------------------------------------------------- latency: 0 us, #419428/4361791, CPU#1 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:4) ----------------- | task: -0 (uid:0 nice:0 policy:0 rt_prio:0) ----------------- _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | caller \ / ||||| \ | / swapper-0 0d.h. 1595128us+: set_normalized_timespec+0x8/0x2d (ktime_get_ts+0x4a/0x4e ) swapper-0 0d.h. 1595131us+: _spin_lock+0x8/0x18 (hrtimer_interrupt+0x6e/0x1b0 ) Or with verbose turned on: "echo verbose > /debugfs/tracing/iter_ctrl" preemption latency trace v1.1.5 on 2.6.24-rc7-tst -------------------------------------------------------------------- latency: 0 us, #419428/4361791, CPU#1 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:4) ----------------- | task: -0 (uid:0 nice:0 policy:0 rt_prio:0) ----------------- swapper 0 0 9 00000000 00000000 [f3675f41] 1595.128ms (+0.003ms): set_normalized_timespec+0x8/0x2d (ktime_get_ts+0x4a/0x4e ) swapper 0 0 9 00000000 00000001 [f3675f45] 1595.131ms (+0.003ms): _spin_lock+0x8/0x18 (hrtimer_interrupt+0x6e/0x1b0 ) swapper 0 0 9 00000000 00000002 [f3675f48] 1595.135ms (+0.003ms): _spin_lock+0x8/0x18 (hrtimer_interrupt+0x6e/0x1b0 ) The "trace" file is not affected by the verbose mode, but is by the symonly. echo "nosymonly" > /debugfs/tracing/iter_ctrl tracer: [ 81.479967] CPU 0: bash:3154 register_ftrace_function+0x5f/0x66 <-- _spin_unlock_irqrestore+0xe/0x5a [ 81.479967] CPU 0: bash:3154 _spin_unlock_irqrestore+0x3e/0x5a <-- sub_preempt_count+0xc/0x7a [ 81.479968] CPU 0: bash:3154 sub_preempt_count+0x30/0x7a <-- in_lock_functions+0x9/0x24 [ 81.479968] CPU 0: bash:3154 vfs_write+0x11d/0x155 <-- dnotify_parent+0x12/0x78 [ 81.479968] CPU 0: bash:3154 dnotify_parent+0x2d/0x78 <-- _spin_lock+0xe/0x70 [ 81.479969] CPU 0: bash:3154 _spin_lock+0x1b/0x70 <-- add_preempt_count+0xe/0x77 [ 81.479969] CPU 0: bash:3154 add_preempt_count+0x3e/0x77 <-- in_lock_functions+0x9/0x24 echo "symonly" > /debugfs/tracing/iter_ctrl tracer: [ 81.479913] CPU 0: bash:3154 register_ftrace_function+0x5f/0x66 <-- _spin_unlock_irqrestore+0xe/0x5a [ 81.479913] CPU 0: bash:3154 _spin_unlock_irqrestore+0x3e/0x5a <-- sub_preempt_count+0xc/0x7a [ 81.479913] CPU 0: bash:3154 sub_preempt_count+0x30/0x7a <-- in_lock_functions+0x9/0x24 [ 81.479914] CPU 0: bash:3154 vfs_write+0x11d/0x155 <-- dnotify_parent+0x12/0x78 [ 81.479914] CPU 0: bash:3154 dnotify_parent+0x2d/0x78 <-- _spin_lock+0xe/0x70 [ 81.479914] CPU 0: bash:3154 _spin_lock+0x1b/0x70 <-- add_preempt_count+0xe/0x77 [ 81.479914] CPU 0: bash:3154 add_preempt_count+0x3e/0x77 <-- in_lock_functions+0x9/0x24 Signed-off-by: Steven Rostedt Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit bc0c38d139ec7fcd5c030aea16b008f3732e42ac Author: Steven Rostedt Date: Mon May 12 21:20:42 2008 +0200 ftrace: latency tracer infrastructure This patch adds the latency tracer infrastructure. This patch does not add anything that will select and turn it on, but will be used by later patches. If it were to be compiled, it would add the following files to the debugfs: The root tracing directory: /debugfs/tracing/ This patch also adds the following files: available_tracers list of available tracers. Currently no tracers are available. Looking into this file only shows "none" which is used to unregister all tracers. current_tracer The trace that is currently active. Empty on start up. To switch to a tracer simply echo one of the tracers that are listed in available_tracers: example: (used with later patches) echo function > /debugfs/tracing/current_tracer To disable the tracer: echo disable > /debugfs/tracing/current_tracer tracing_enabled echoing "1" into this file starts the ftrace function tracing (if sysctl kernel.ftrace_enabled=1) echoing "0" turns it off. latency_trace This file is readonly and holds the result of the trace. trace This file outputs a easier to read version of the trace. iter_ctrl Controls the way the output of traces look. So far there's two controls: echoing in "symonly" will only show the kallsyms variables without the addresses (if kallsyms was configured) echoing in "verbose" will change the output to show a lot more data, but not very easy to understand by humans. echoing in "nosymonly" turns off symonly. echoing in "noverbose" turns off verbose. Signed-off-by: Steven Rostedt Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 16444a8a40d4c7b4f6de34af0cae1f76a4f6c901 Author: Arnaldo Carvalho de Melo Date: Mon May 12 21:20:42 2008 +0200 ftrace: add basic support for gcc profiler instrumentation If CONFIG_FTRACE is selected and /proc/sys/kernel/ftrace_enabled is set to a non-zero value the ftrace routine will be called everytime we enter a kernel function that is not marked with the "notrace" attribute. The ftrace routine will then call a registered function if a function happens to be registered. [ This code has been highly hacked by Steven Rostedt and Ingo Molnar, so don't blame Arnaldo for all of this ;-) ] Update: It is now possible to register more than one ftrace function. If only one ftrace function is registered, that will be the function that ftrace calls directly. If more than one function is registered, then ftrace will call a function that will loop through the functions to call. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6e766410c4babd37bc7cd5e25009c179781742c8 Author: Arnaldo Carvalho de Melo Date: Mon May 12 21:20:41 2008 +0200 ftrace: annotate core code that should not be traced Mark with "notrace" functions in core code that should not be traced. The "notrace" attribute will prevent gcc from adding a call to ftrace on the annotated funtions. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 23adec554a7648f99c8acc0caf49c66320cd2b84 Author: Steven Rostedt Date: Mon May 12 21:20:41 2008 +0200 x86: add notrace annotations to vsyscall. Add the notrace annotations to the vsyscall functions - there we are not in kernel context yet, so the tracer function cannot (and must not) be called. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ffdc1a09ae7e2cbd714a446ee38a27f625b5f1c8 Author: Ingo Molnar Date: Mon May 12 21:20:41 2008 +0200 tracing: add notrace to linkage.h notrace signals that a function should not be traced. Most of the time this is used by tracers to annotate code that cannot be traced - it's in a volatile state (such as in user vdso context or NMI context) or it's in the tracer internals. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 502825282e6f79c975a644afc124432ec1744de4 Author: Steven Rostedt Date: Mon May 12 21:20:41 2008 +0200 ftrace: add preempt_enable/disable notrace macros The tracer may need to call preempt_enable and disable functions for time keeping and such. The trace gets ugly when we see these functions show up for all traces. To make the output cleaner this patch adds preempt_enable_notrace and preempt_disable_notrace to be used by tracer (and debugging) functions. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 7c731e0a495e25e79dc1e9e68772a67a55721a65 Author: Steven Rostedt Date: Mon May 12 21:20:41 2008 +0200 ftrace: make the task state char-string visible to all The tracer wants to be able to convert the state number into a user visible character. This patch pulls that conversion string out the scheduler into the header. This way if it were to ever change, other parts of the kernel will know. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit bd3bff9e20f454b242d979ec2f9a4dca0d5fa06f Author: Ingo Molnar Date: Mon May 12 21:20:41 2008 +0200 sched: add latency tracer callbacks to the scheduler add 3 lightweight callbacks to the tracer backend. zero impact if tracing is turned off. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4ca691a892e8ab4f79583de1394f17a7dcfa2b57 Author: Jeff Layton Date: Thu May 22 09:33:34 2008 -0400 silently ignore ownership changes unless unix extensions are enabled or we're faking uid changes CIFS currently allows you to change the ownership of a file, but unless unix extensions are enabled this change is not passed off to the server. Have CIFS silently ignore ownership changes that can't be persistently stored on the server unless the "setuids" option is explicitly specified. We could return an error here (-EOPNOTSUPP or something), but this is how most disk-based windows filesystems on behave on Linux (e.g. VFAT, NTFS, etc). With cifsacl support and proper Windows to Unix idmapping support, we may be able to do this more properly in the future. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 4e94a105ed0df78e25b20ff8ed6761f5937662b1 Author: Steve French Date: Fri May 23 18:22:46 2008 +0000 [CIFS] remove trailing whitespace Signed-off-by: Steve French commit b0fd30d3e7e768aad5e398caaea6ae5a5c814eab Author: Jeff Layton Date: Thu May 22 09:33:34 2008 -0400 when creating new inodes, use file_mode/dir_mode exclusively on mount without unix extensions When CIFS creates a new inode on a mount without unix extensions, it temporarily assigns the mode that was passed to it in the create/mkdir call. Eventually, when the inode is revalidated, it changes to have the file_mode or dir_mode for the mount. This is confusing to users who expect that the mode shouldn't change this way. It's also problematic since only the mode is treated this way, not the uid or gid. Suppose you have a CIFS mount that's mounted with: uid=0,gid=0,file_mode=0666,dir_mode=0777 ...if an unprivileged user comes along and does this on the mount: mkdir -m 0700 foo touch foo/bar ...there is a period of time where the touch will fail, since the dir will initially be owned by root and have mode 0700. If the user waits long enough, then "foo" will be revalidated and will get the correct dir_mode permissions. This patch changes cifs_mkdir and cifs_create to not overwrite the mode found by the initial cifs_get_inode_info call after the inode is created on the server. Legacy behavior can be reenabled with the new "dynperm" mount option. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 4468eb3fd102cad559e51594a01cbc65b994d264 Author: Jeff Layton Date: Thu May 22 09:31:40 2008 -0400 on non-posix shares, clear write bits in mode when ATTR_READONLY is set When mounting a share with posix extensions disabled, cifs_get_inode_info turns off all the write bits in the mode for regular files if ATTR_READONLY is set. Directories and other inode types, however, can also have ATTR_READONLY set, but the mode gives no indication of this. This patch makes this apply to other inode types besides regular files. It also cleans up how modes are set in cifs_get_inode_info for both the "normal" and "dynperm" cases. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit aaa9bbe039febf1d3a0f3a374deea0680d9f5758 Author: Steve French Date: Fri May 23 17:38:32 2008 +0000 [CIFS] remove unused variables CC: Jeff Layton Signed-off-by: Steve French commit 62b59c64f98ab13da3f8c5e8abd2322386076804 Author: Artem Bityutskiy Date: Fri May 23 19:49:43 2008 +0300 UBIFS: do not set nice level in bg thread Signed-off-by: Artem Bityutskiy commit 44ba4aa4f7dc0c28b1e5ebab12db09f775525589 Author: Artem Bityutskiy Date: Fri May 23 19:03:28 2008 +0300 UBIFS: use __clear_bit and __set_bit in LPT Signed-off-by: Artem Bityutskiy commit 3e9e4fa76289d2ba001e429b34c058a4ccefaef5 Author: Artem Bityutskiy Date: Fri May 23 18:56:03 2008 +0300 UBIFS: remove unnecessary kzalloc Similarly to TNC, remove kzalloc in LPT. Signed-off-by: Artem Bityutskiy commit 6baef4003abd0945fd44d55cba5c1be0109f4c6e Author: Artem Bityutskiy Date: Fri May 23 18:48:52 2008 +0300 UBIFS: use __clear_bit and __set_bit clear_bit/set_bit imply memory barriers which are not needed because we are protected by tnc_mutex. Signed-off-by: Artem Bityutskiy commit 7c98039ce004d216f93c9f2eccda11caa9425b6b Author: Artem Bityutskiy Date: Fri May 23 18:19:33 2008 +0300 UBIFS: use memory barriers in dbg_tnc_check Signed-off-by: Artem Bityutskiy commit 89bcd6622d86847b4eab5d01536a7658be4c65a0 Author: Artem Bityutskiy Date: Fri May 23 18:14:36 2008 +0300 UBIFS: comment why we use barriers Signed-off-by: Artem Bityutskiy commit dabf536023049d4645da8fb006b030d7d8b3012b Author: Artem Bityutskiy Date: Fri May 23 17:36:53 2008 +0300 UBIFS: use unlikely in come core TNC functions Signed-off-by: Artem Bityutskiy commit ee8da167471de6e546771c3ef756f8f11de9ebc3 Author: Artem Bityutskiy Date: Fri May 23 17:33:00 2008 +0300 UBIFS: do not use kzalloc unnecesarily Signed-off-by: Artem Bityutskiy commit 33b114f34d2e8caf053c6d811d8b933b5f0601ec Author: Jeremy Fitzhardinge Date: Wed May 21 11:21:13 2008 +0100 x86: compile error fix for smpboot.c Without this patch, my link fails with: arch/x86/kernel/built-in.o(.cpuinit.text+0x3c6e): In function `get_local_pda': : undefined reference to `_cpu_pda' arch/x86/kernel/built-in.o(.cpuinit.text+0x3cd1): In function `get_local_pda': : undefined reference to `after_bootmem' arch/x86/kernel/built-in.o(.cpuinit.text+0x3cec): In function `get_local_pda': : undefined reference to `_cpu_pda' make[2]: *** [.tmp_vmlinux1] Error 1 Caused by commit 766da892634694f795b18b9538407816896fc470 x86: remove static boot_cpu_pda array v2 Signed-off-by: Thomas Gleixner commit b9d26cefcb934f603998718291126bfbe509189b Author: Mike Travis Date: Mon May 12 21:21:13 2008 +0200 x86: leave initial __cpu_pda array in place until cpus are booted Ingo Molnar wrote: ... > they crashed after about 3 randconfig iterations with: > > early res: 4 [8000-afff] PGTABLE > early res: 5 [b000-b87f] MEMNODEMAP > PANIC: early exception 0e rip 10:ffffffff8077a150 error 2 cr2 37 > Pid: 0, comm: swapper Not tainted 2.6.25-sched-devel.git-x86-latest.git #14 > > Call Trace: > [] early_idt_handler+0x56/0x6a > [] ? numa_set_node+0x30/0x60 > [] ? numa_set_node+0x9/0x60 > [] numa_init_array+0x93/0xf0 > [] acpi_scan_nodes+0x3b9/0x3f0 > [] numa_initmem_init+0x136/0x150 > [] setup_arch+0x48f/0x700 > [] ? clockevents_register_notifier+0x3a/0x50 > [] start_kernel+0xd7/0x440 > [] x86_64_start_kernel+0x222/0x280 ... Here's the fixup... This one should follow the previous patches. Thanks, Mike Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 78d49c6d890aee9cf8aea371011c9d7b0121b822 Author: Mike Travis Date: Mon May 12 21:21:13 2008 +0200 x86: remove static boot_cpu_pda array v2 * Remove the boot_cpu_pda array and pointer table from the data section. Allocate the pointer table and array during init. do_boot_cpu() will reallocate the pda in node local memory and if the cpu is being brought up before the bootmem array is released (after_bootmem = 0), then it will free the initial pda. This will happen for all cpus present at system startup. This removes 512k + 32k bytes from the data section. For inclusion into sched-devel/latest tree. Based on: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + sched-devel/latest .../mingo/linux-2.6-sched-devel.git Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit a9ad585c8a18f7ba754b85f5786976609b9d7d29 Author: Mike Travis Date: Mon May 12 21:21:12 2008 +0200 x86: remove the static 256k node_to_cpumask_map * Consolidate node_to_cpumask operations and remove the 256k byte node_to_cpumask_map. This is done by allocating the node_to_cpumask_map array after the number of possible nodes (nr_node_ids) is known. * Debug printouts when CONFIG_DEBUG_PER_CPU_MAPS is active have been increased. It now shows faults when calling node_to_cpumask() and node_to_cpumask_ptr(). For inclusion into sched-devel/latest tree. Based on: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + sched-devel/latest .../mingo/linux-2.6-sched-devel.git Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 543e21916497be5a4005fd5820264ce1de9bd56d Author: Mike Travis Date: Mon May 12 21:21:12 2008 +0200 x86: restore pda nodenumber field * Restore the nodenumber field in the x86_64 pda. This field is slightly different than the x86_cpu_to_node_map mainly because it's a static indication of which node the cpu is on while the cpu to node map is a dyanamic mapping that may get reset if the cpu goes offline. This also simplifies the numa_node_id() macro. For inclusion into sched-devel/latest tree. Based on: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + sched-devel/latest .../mingo/linux-2.6-sched-devel.git Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 29657a44f8660acd8751d7e9f5aac06ec8633481 Author: Mike Travis Date: Mon May 12 21:21:12 2008 +0200 x86: cleanup early per cpu variables/accesses v4 * Introduce a new PER_CPU macro called "EARLY_PER_CPU". This is used by some per_cpu variables that are initialized and accessed before there are per_cpu areas allocated. ["Early" in respect to per_cpu variables is "earlier than the per_cpu areas have been setup".] This patchset adds these new macros: DEFINE_EARLY_PER_CPU(_type, _name, _initvalue) EXPORT_EARLY_PER_CPU_SYMBOL(_name) DECLARE_EARLY_PER_CPU(_type, _name) early_per_cpu_ptr(_name) early_per_cpu_map(_name, _idx) early_per_cpu(_name, _cpu) The DEFINE macro defines the per_cpu variable as well as the early map and pointer. It also initializes the per_cpu variable and map elements to "_initvalue". The early_* macros provide access to the initial map (usually setup during system init) and the early pointer. This pointer is initialized to point to the early map but is then NULL'ed when the actual per_cpu areas are setup. After that the per_cpu variable is the correct access to the variable. The early_per_cpu() macro is not very efficient but does show how to access the variable if you have a function that can be called both "early" and "late". It tests the early ptr to be NULL, and if not then it's still valid. Otherwise, the per_cpu variable is used instead: #define early_per_cpu(_name, _cpu) \ (early_per_cpu_ptr(_name) ? \ early_per_cpu_ptr(_name)[_cpu] : \ per_cpu(_name, _cpu)) A better method is to actually check the pointer manually. In the case below, numa_set_node can be called both "early" and "late": void __cpuinit numa_set_node(int cpu, int node) { int *cpu_to_node_map = early_per_cpu_ptr(x86_cpu_to_node_map); if (cpu_to_node_map) cpu_to_node_map[cpu] = node; else per_cpu(x86_cpu_to_node_map, cpu) = node; } * Add a flag "arch_provides_topology_pointers" that indicates pointers to topology cpumask_t maps are available. Otherwise, use the function returning the cpumask_t value. This is useful if cpumask_t set size is very large to avoid copying data on to/off of the stack. * The coverage of CONFIG_DEBUG_PER_CPU_MAPS has been increased while the non-debug case has been optimized a bit. * Remove an unreferenced compiler warning in drivers/base/topology.c * Clean up #ifdef in setup.c For inclusion into sched-devel/latest tree. Based on: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + sched-devel/latest .../mingo/linux-2.6-sched-devel.git Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit dfdf1d75efee39e9396f8384c6f3bf555349ed60 Author: Mike Travis Date: Mon May 12 21:21:12 2008 +0200 x86: modify Kconfig to allow up to 4096 cpus * Increase the limit of NR_CPUS to 4096 and introduce a boolean called "MAXSMP" which when set (e.g. "allyesconfig"), will set NR_CPUS = 4096 and NODES_SHIFT = 9 (512). * Changed max setting for NODES_SHIFT from 15 to 9 to accurately reflect the real limit. Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ff0e010ef613b0e7136f2f40ec4b51273676b085 Author: Mike Travis Date: Mon May 12 21:21:12 2008 +0200 x86: fix remove cpu_pda table patch Mike Travis wrote: > Ingo Molnar wrote: >> * Mike Travis wrote: >> >>> [Ingo - please replace "PATCH 07/11" with this one.] >>> >>> * Remove 544k bytes from the kernel by removing the boot_cpu_pda >>> array from the data section and allocating it during startup. >>> >>> Fixed panic in setup_per_cpu_areas when HOTPLUG_CPU not set. >>> >>> For inclusion into sched-devel/latest tree. >> sched-devel.git randconfig testing found another crash with your queue: >> >> [ 0.111060] Brought up 1 CPUs >> [ 0.111986] Total of 1 processors activated (4022.73 BogoMIPS). >> [ 0.112987] Testing NMI watchdog ... <1>BUG: unable to handle kernel NULL pointer dereference at 0000000000000040 >> [ 0.114982] IP: [] check_nmi_watchdog+0xb0/0x210 >> [ 0.114982] PGD 0 >> [ 0.114982] Oops: 0000 [1] SMP >> [ 0.114982] CPU 0 >> [............] >> >> http://redhat.com/~mingo/misc/config-Mon_Apr_28_23_25_25_CEST_2008.bad >> http://redhat.com/~mingo/misc/log-Mon_Apr_28_23_25_25_CEST_2008.bad >> >> Ingo > > Hi Ingo, > > I need a bit more information on your hardware configuration. Building a > kernel with the above config file started up fine on both the Intel and AMD > boxes. > > Based on the above output it looks like it might be a UP machine? ... Ok, I think I found it. In check_nmi_watchdog(): for (cpu = 0; cpu < NR_CPUS; cpu++) prev_nmi_count[cpu] = cpu_pda(cpu)->__nmi_count; As I mentioned it works fine on both of my systems so could you try it out? Thanks! Mike -- * Change function check_nmi_watchdog() to use nr_cpu_ids instead of NR_CPUS. Based on: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + sched-devel/latest .../mingo/linux-2.6-sched-devel.git Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 867c5e09aeeac03796d7e1595a1f50dcb0f66563 Author: Alan Cox Date: Fri May 23 11:57:41 2008 +0100 ieee1394: raw1394: Push the BKL down into the driver ioctls Actually in this case wrap the function for now. Signed-off-by: Alan Cox Added raw1394_compat_ioctl hunk. Signed-off-by: Stefan Richter commit 6ee70088d975130142debdf1f6fe07958d3d2f26 Author: Stefan Richter Date: Mon May 19 22:07:28 2008 +0200 ieee1394: video1394: reorder module init, prepare BKL removal This prepares video1394 for removal of the BKL (big kernel lock): It allows video1394_open() to be called while video1394_init_module() is still in progress. Signed-off-by: Stefan Richter commit e711ed16be2fa4f846928186458e65ed252b6497 Author: Steven Whitehouse Date: Fri May 23 14:46:04 2008 +0100 [GFS2] No lock_nolock This patch merges the lock_nolock module into GFS2 itself. As well as removing some of the overhead of the module, it also means that its now impossible to build GFS2 without a lock module (which would be a pointless thing to do anyway). We also plan to merge lock_dlm into GFS2 in the future, but that is a more tricky task, and will therefore be a separate patch. Signed-off-by: Steven Whitehouse Cc: David Teigland commit 8ebe46300e29c6b091fdfd85946fdddd223b0849 Author: Andrew Morton Date: Fri May 23 15:53:18 2008 +0300 UBIFS: fix compilation error Signed-off-by: Andrew Morton Signed-off-by: Artem Bityutskiy commit e48045c8b539b26d5f92f491f2e145335fe30717 Author: Artem Bityutskiy Date: Thu May 22 20:48:47 2008 +0300 UBIFS: be consistent when comparing pointers with NULL Use one style everywhere. Signed-off-by: Artem Bityutskiy commit dc2ca5e76ce7577f65bdf7847ed713708ae36807 Author: Artem Bityutskiy Date: Thu May 22 20:43:03 2008 +0300 UBIFS: cleanup, fix, and improve tnc Signed-off-by: Artem Bityutskiy commit d09964d6d561e60140f22287eff19ae815784f2d Author: Artem Bityutskiy Date: Thu May 22 19:33:48 2008 +0300 UBIFS: use is_hash_key Signed-off-by: Artem Bityutskiy commit be2443098d9ef69c2865af5a4d5752bbbcee1d50 Author: Artem Bityutskiy Date: Thu May 22 18:32:41 2008 +0300 UBIFS: do not validate what is in LNC We validate entries when we add them to LNC, no need to do this twice. Signed-off-by: Artem Bityutskiy commit 794a8abd050db8741aca20f1670bace8a40e7f90 Author: Artem Bityutskiy Date: Thu May 22 17:04:44 2008 +0300 UBIFS: add xentries to LNC This patch fixes the bug reported by Zoltan Sogor: BUG: unable to handle kernel NULL pointer dereference at 00000032 IP: [] :ubifs:matches_name+0x67/0xb2 *pde = 00000000 Oops: 0000 [#1] SMP Modules linked in: deflate zlib_deflate lzo lzo_decompress lzo_compress ubifs ubi nandsim nand nand_ids nand_ecc mtd pcnet32 mii uhci_hcd intel_agp evdev [last unloaded: mtd] Pid: 2220, comm: regtest Tainted: G W (2.6.26-rc3 #1) EIP: 0060:[] EFLAGS: 00010286 CPU: 0 EIP is at matches_name+0x67/0xb2 [ubifs] EAX: 00000000 EBX: e18ceda0 ECX: 00000003 EDX: f733fe04 ESI: 00000000 EDI: f1e627a0 EBP: f733fd24 ESP: f733fd10 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process regtest (pid: 2220, ti=f733e000 task=f737a0a0 task.ti=f733e000) Stack: f733fe04 da7b5720 00000001 f733fd6c da7b5720 f733fd54 f8cf5f85 da7b5720 f733fd58 f8cf5669 f733fd70 f733fdb8 f733fdb8 483405db 00000001 da7b5720 f733fdb8 f733fd80 f8cf6256 f733fd70 f733fe04 f733fe04 da7b589c f1e626f0 Call Trace: [] ? resolve_collision+0x25/0x185 [ubifs] [] ? lookup_level0_dirty+0x80/0x1a4 [ubifs] [] ? ubifs_tnc_remove_nm+0x72/0xc0 [ubifs] [] ? ubifs_jrn_delete_xattr+0x23d/0x33a [ubifs] [] ? ubifs_removexattr+0x1ef/0x26f [ubifs] [] ? vfs_removexattr+0x68/0xc1 [] ? removexattr+0x3e/0x48 [] ? do_lookup+0x4f/0x146 [] ? dput+0x2f/0xdf [] ? __link_path_walk+0xa67/0xb81 [] ? mntput_no_expire+0x18/0xeb [] ? mnt_want_write+0x5a/0x61 [] ? _spin_unlock+0x1d/0x20 [] ? mnt_want_write+0x5a/0x61 [] ? sys_removexattr+0x3c/0x56 [] ? sys_write+0x3b/0x60 [] ? sysenter_past_esp+0x6a/0xb1 ======================= Code: c0 89 c6 75 5a 8b 45 f0 89 da e8 5d f9 ff ff 85 c0 89 c6 74 09 89 f8 e8 5a e3 ff ff eb 41 89 d8 e8 36 e7 46 c7 8b 47 08 8b 55 ec <0f> b7 78 32 8b 5a 04 8b 52 08 89 f9 39 fb 0f 4e cb 83 c0 38 e8 EIP: [] matches_name+0x67/0xb2 [ubifs] SS:ESP 0068:f733fd10 ---[ end trace 4eaa2a86a8e2da22 ]--- Signed-off-by: Artem Bityutskiy commit 80d267f9aee6f1b5df602b5a19fb7b4923f17db2 Author: Michael Ellerman Date: Fri May 23 14:22:21 2008 +1000 [POWERPC] Remove unnecessary cast in arch_deref_entry_point() func_descr_t->entry is already an unsigned long. Mea culpa. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 72cac213fda6a2dd402e91692b70e175795eab7d Author: Michael Ellerman Date: Fri May 23 14:21:30 2008 +1000 [POWERPC] Add debugging trigger to Axon MSI code This adds some debugging code to the Axon MSI driver. It creates a file per MSIC in /sys/kernel/debug/powerpc, which allows the user to trigger a fake MSI interrupt by writing to the file. This can be used to test some of the MSI generation path. In particular, that the MSIC recognises a write to the MSI address, generates an interrupt and writes the MSI packet into the ring buffer. All the code is inside #ifdef DEBUG so it causes no harm unless it's enabled. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 475ca391b490a683d66bf19999a8a7a24913f139 Author: Kumar Gala Date: Thu May 22 06:59:23 2008 +1000 [POWERPC] mpic: Deal with bogus NIRQ in Feature Reporting Register Some chips (like the SoCs from Freescale) report the wrong value in NIRQ and this causes issues if its doesn't match or exceed the value of irq_count. Add a flag that board code can set to just use irq_count instead of FRR[NIRQ]. Eventually we'll add a device tree property with the number of sources. Signed-off-by: Kumar Gala Signed-off-by: Paul Mackerras commit 2ca7633dc73405ee775a2e9b7961b47a38bc882d Author: Roland McGrath Date: Sun May 11 10:40:47 2008 +1000 [POWERPC] Tweak VDSO linker script to avoid upsetting old binutils This works around bugs in older binutils' objcopy. The placement of these sections does not really matter, but it confused the buggy old BFD libraries. Signed-off-by: Roland McGrath Signed-off-by: Paul Mackerras commit 21451155d8858773ee764e9218de2ca0f4d6fc38 Author: Anton Vorontsov Date: Wed Apr 30 00:05:24 2008 +1000 [POWERPC] of/gpio: Use dynamic base allocation Since the "gpiolib: dynamic gpio number allocation" patch was recently merged into Linus' tree (commit 8d0aab2f16c4fa170f32e7a74a52cd0122bbafef), we can use dynamic GPIO base allocation now. This, in turn, removes number of gpios per chip constraint. Signed-off-by: Anton Vorontsov Signed-off-by: Paul Mackerras commit c3ed64295f0fed9131b42122234b1ce4a4a266cf Author: Mike Travis Date: Fri May 16 10:44:39 2008 -0700 x86: change maximum NR_CPUS to 4096 and MAX_NUMNODES to 512 * Change the range of NR_CPUS from 2-255 to 2-4096 and change the range of MAX_NUMNODES (NODES_SHIFT) from 1-32768 to 1-512. * Alter comment about how much each increment of NR_CPUS consumes. (This was found by configuring for 256 cpus and then 512 cpus and dividing the difference by 256.) Signed-off-by: Mike Travis Cc: Andrew Morton Cc: Dave Jones Signed-off-by: Thomas Gleixner commit 873b274a41c0cfe58b2eb0a7722424eb367b905b Author: Dave Jones Date: Thu May 22 13:02:23 2008 -0400 x86: Add Centaur and Transmeta CPUs to PAT whitelist Unconditionally enable PAT support on Centaur and Transmeta CPUs. All known models that advertise PAT have no known errata. Signed-off-by: Dave Jones Signed-off-by: H. Peter Anvin commit c03571a3e22b821e5be7bda7b166c4554770f489 Author: Stephen Hemminger Date: Wed Apr 16 16:37:32 2008 -0700 via-velocity: use memmove Use memmove to handle overlapping copy of data. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit c73d2589b784098b2bb6e986c1a7b04e9555fbd3 Author: Stephen Hemminger Date: Wed Apr 16 16:37:31 2008 -0700 via-velocity: use netdev_alloc_skb Use netdev_alloc_skb for rx buffer allocation. This sets skb->dev and can be overriden for NUMA machines. Change code to return new buffer rather than call by reference. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit 47f98c7d4bfc08e5efffd4fe22296044ab4db21e Author: Stephen Hemminger Date: Wed Apr 16 16:37:39 2008 -0700 dl2k: use netdev_alloc_skb Use netdev_alloc_skb. This sets skb->dev and allows arch specific allocation. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit 8eb6013189e03aa21aa53fd72c092713fdb30e44 Author: Stephen Hemminger Date: Wed Apr 16 16:37:38 2008 -0700 hamachi: use netdev_alloc_skb Use netdev_alloc_skb. This sets skb->dev and allows arch specific allocation. Remove dead code and dead comments. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit d27e7c3f6c82297611d1e1ee9476a2f31b3e89df Author: Stephen Hemminger Date: Wed Apr 16 16:37:37 2008 -0700 ixp2000: use netdev_alloc_skb Use netdev_alloc_skb. This sets skb->dev and allows arch specific allocation. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit 3f7a3535a6805870f265f39c92c24b136cb967f4 Author: Maciej W. Rozycki Date: Mon May 5 13:34:31 2008 +0100 sb1250: use netdev_alloc_skb Use netdev_alloc_skb. This sets skb->dev and allows arch specific allocation. Also simplify and cleanup the alignment code. Signed-off-by: Maciej W. Rozycki Signed-off-by: Jeff Garzik commit b102df14d75753bae216f43579eebf3f9d10cd27 Author: Stephen Hemminger Date: Wed Apr 16 16:37:29 2008 -0700 atl1: use netdev_alloc_skb Use netdev_alloc_skb for rx buffer allocation. This sets skb->dev and can be overriden for NUMA machines. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit 855e1111f3806905b410b745e696fec4f5dac724 Author: Stephen Hemminger Date: Wed Apr 16 16:37:28 2008 -0700 tg3: remove unneeded semicolons Remove extraneous semicolons after switch and conditional statements. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit b478458aeebfc55fe409abec43794ac72a623c79 Author: Jan Beulich Date: Mon May 12 15:44:39 2008 +0200 x86: avoid re-loading LDT in unrelated address spaces Performance optimization. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit a6c5f3254853ba6cd3201f92d15d1650306d81c3 Author: Dmitry Baryshkov Date: Thu May 22 16:20:18 2008 +0100 [ARM] 5047/2: Support resetting by asserting GPIO pin This adds support for resetting via assertion of GPIO pin. This e.g. is used on Sharp Zaurus SL-6000. Signed-off-by: Dmitry Baryshkov Acked-by: Eric Miao Signed-off-by: Russell King commit 32e94d8a4abc80302e1432b176bce9cb13c05e5e Author: Philipp Zabel Date: Thu May 22 10:14:21 2008 +0100 [ARM] 5042/1: magician: request GPIOs for pda_power Signed-off-by: Philipp Zabel Signed-off-by: Russell King commit 3843fc2575e3389f4f0ad0420a720240a5746a5d Author: Jeremy Fitzhardinge Date: Fri May 9 12:05:57 2008 +0100 xen: remove support for non-PAE 32-bit Non-PAE operation has been deprecated in Xen for a while, and is rarely tested or used. xen-unstable has now officially dropped non-PAE support. Since Xen/pvops' non-PAE support has also been broken for a while, we may as well completely drop it altogether. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f8aaa1ce4c25aea7d629f66ca3f49323e5eec323 Author: Pierre Ossman Date: Fri Apr 18 20:41:49 2008 +0200 sdhci: don't check block count for progress The specification is insufficiently strict when it comes to how the hardware should update the block count register, making it useless for checking transfer progress. Signed-off-by: Pierre Ossman commit 0748aca6f0af917591dcfd70dccac770a25d4f71 Author: Thomas Gleixner Date: Tue May 13 10:34:20 2008 +0200 x86: remove useless static current_tsc_khz variable current_tsc_khz is just written by the init code and never used again. Remove it. Signed-off-by: Thomas Gleixner commit bedd78ca786c1d18c2a2785c7e40593dc9c9870f Author: Russell King Date: Sun Apr 20 12:31:29 2008 +0100 [RTC] remove old ARM rtc library code Now that all drivers using it are gone, remove the old ARM RTC library. Acked-by: Alessandro Zummo Signed-off-by: Russell King commit 797276ec9e4d2ee210e11068a2ce815394fe8c58 Author: Russell King Date: Sun Apr 20 12:30:41 2008 +0100 [RTC] rtc-sa1100: remove dependence on asm/rtc.h Move the two functions rtc-sa1100 wants from the old ARM RTC library into the rtc-sa1100 driver. Acked-by: Alessandro Zummo Signed-off-by: Russell King commit 7da285b626860eb6d35e08ae33eba90f0e83ad58 Author: Russell King Date: Sun Apr 20 12:26:48 2008 +0100 [RTC] remove unused asm/rtc.h includes from ARM RTC drivers On ARM, asm/rtc.h only contains definitions for the predecessor to the RTC class support. RTC class drivers should not be including this include. Build tested on at91sam9rl and s3c2410 configurations. Acked-by: Alessandro Zummo Signed-off-by: Russell King commit a190901c6b5f1f4a31681e8c69d811a4f9426e2b Author: Russell King Date: Sun Apr 20 12:08:36 2008 +0100 [RTC] rtc-pl030: add driver, remove old non-rtc lib driver Convert Integrator PL030 RTC driver to use the RTC class interfaces. Acked-by: Alessandro Zummo Signed-off-by: Russell King commit 2dba8518b7761aee3ba757b298efa15dd34eff18 Author: Russell King Date: Sun Apr 20 12:08:04 2008 +0100 [RTC] rtc-pl031: use proper resources, use proper apis, clean up includes Clean up PL031 RTC includes, make driver use proper resource checking, and use amba bus specific accessors. Acked-by: Alessandro Zummo Signed-off-by: Russell King commit f70c5253b41444fd2779e1f76bfe25811d9b8c23 Author: Russell King Date: Sun Apr 20 12:22:36 2008 +0100 [RTC] remove references to asm/mach/time.h asm/mach/time.h is the ARM header file for setting up kernel ticker timekeeping (be that the old jiffy interrupt or the new clocksource.) RTC drivers have no business using this header file, and in fact do not require it. Build tested on at91sam9rl, omap and s3c2410 configurations. Acked-by: Alessandro Zummo Acked-by: Andrew Victor Signed-off-by: Russell King commit c3e240d637fd3467d2eb795ec9cccc2f260c5953 Author: Philipp Zabel Date: Thu May 22 14:20:01 2008 +0100 [ARM] 5045/1: magician: use the pwm_bl driver for the LCD backlight magician has a GPIO that modifies the brightness level additionally to the PWM duty value. This patch makes use of the pwm_bl notify callback to present userspace with a single brightness scale. This gets rid of the pxa_set_cken calls and direct PWM register access. Signed-off-by: Philipp Zabel Signed-off-by: Russell King commit 34b2350f375d82480782c0708915b7e334bb3fa0 Author: Philipp Zabel Date: Thu May 22 14:18:40 2008 +0100 [ARM] 5044/1: pwm_bl: add init/notify/exit callbacks This allows platform code to manipulate GPIOs and brightness level as needed. Signed-off-by: Philipp Zabel Signed-off-by: Russell King commit 609154bceedf1c5f90ef8ae8a4d4844219c45b9f Author: Kyungmin Park Date: Thu May 22 10:32:18 2008 +0900 UBI: avoid unnecessary division operations UBI already checks that @min io size is the power of 2 at io_init. It is save to use bit operations then. Signed-off-by: Kyungmin Park Signed-off-by: Artem Bityutskiy commit 92fbc1c146d1d358c1ecc4e38361089ff929a02c Author: Randy Dunlap Date: Fri May 16 10:35:24 2008 -0700 3c515: fix using pnp_get_resource when CONFIG_ISAPNP=n 3c515.c uses pnp_irq(), which calls pnp_get_resource(), which is not defined when CONFIG_PNP=n, so in that case, get the IRQ from a hardware register. 3c515.c:(.text+0x3adc0): undefined reference to `pnp_get_resource' Signed-off-by: Randy Dunlap Signed-off-by: Jeff Garzik commit 1b0771ab3ea102ce77e9ca83abc500e542402e54 Author: Maciej W. Rozycki Date: Sat May 17 06:46:19 2008 +0100 PHYLIB: Kconfig: Complete the list of Broadcom PHYs supported Add Broadcom PHYs supported missing from the description. Signed-off-by: Maciej W. Rozycki Signed-off-by: Jeff Garzik commit cd9af3dac6d1ad001b2d5d912dbd49e184d23b9d Author: Nate Case Date: Sat May 17 06:40:39 2008 +0100 PHYLIB: Add 1000Base-X support for Broadcom bcm5482 Configure the BCM5482S secondary SerDes for 1000Base-X mode when the appropriate dev_flags are passed in to phy_connect(). This is needed when the PHY is used for fiber and backplane connections. Signed-off-by: Nate Case Signed-off-by: Maciej W. Rozycki Signed-off-by: Jeff Garzik commit 3915c1e8634a321d9680e5cd80a53053b642dc0c Author: Jay Vosburgh Date: Sat May 17 21:10:14 2008 -0700 bonding: Add "follow" option to fail_over_mac Add a "follow" selection for fail_over_mac. This option causes the MAC address to move from slave to slave as the active slave changes. This is in addition to the existing fail_over_mac option that causes the bond's MAC address to change during failover. This new option is useful for devices that cannot tolerate multiple ports using the same MAC address simultaneously, either because it confuses them or incurs a performance penalty (as is the case with some LPAR-aware multiport devices). Because the MAC of the bond itself does not change, the "follow" option is slightly more reliable during failover and doesn't change the MAC of the bond during operation. This patch requires a previous ARP monitor change to properly handle RTNL during failovers. Signed-off-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit b2220cad583c9b63e085476df448fa2aff5ea906 Author: Jay Vosburgh Date: Sat May 17 21:10:13 2008 -0700 bonding: refactor ARP active-backup monitor Refactor ARP monitor for active-backup mode. The motivation for this is to take care of locking issues in a clear manner (particularly to correctly handle RTNL vs. the bonding locks). Currently, the a-b ARP monitor does not hold RTNL at all, but future changes will require RTNL during ARP monitor failovers. Rather than using conditional locking, this patch instead breaks up the ARP monitor into three discrete steps: inspection, commit changes, and probe. The inspection phase marks slaves that require link state changes. The commit phase is only called if inspection detects that changes are needed, and is called with RTNL. Lastly, the probe phase issues the ARP probes that the inspection phase uses to determine link state. Signed-off-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit 7893b2491a2d5f716540ac5643d78d37a7f6628b Author: Moni Shoua Date: Sat May 17 21:10:12 2008 -0700 bonding: Send more than one gratuitous ARP when slave takes over With IPoIB, reception of gratuitous ARP by neighboring hosts is essential for a successful change of slaves in case of failure. Otherwise, they won't learn about the HW address change and need to wait a long time until the neighboring system gives up and sends an ARP request to learn the new HW address. This patch decreases the chance for a lost of a gratuitous ARP packet by sending it more than once. The number retries is configurable and can be set with a module param. Signed-off-by: Moni Shoua Acked-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit 8047637c70e4451e2ac1c17ed9a91a2f753daae7 Author: Pavel Emelyanov Date: Sat May 17 21:10:11 2008 -0700 bonding: Remove unneeded list_empty checks. Some places iterate over the checked list right after the check itself, so even if the list is empty, the list_for_each_xxx iterator will make everything right by himself. Signed-off-by: Pavel Emelyanov Acked-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit 0883beca7f39ab0c6447af35080e5caaa07418e3 Author: Pavel Emelyanov Date: Sat May 17 21:10:10 2008 -0700 bonding: Relax unneeded _safe lists iterations. Many places either do not modify the list under the list_for_each_xxx, or break out of the loop as soon as the first element is removed. Thus, this _safe iteration just occupies some unneeded .text space and requires an additional variable. Signed-off-by: Pavel Emelyanov Acked-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit 0dd646fe0549251e79d6fb03e6773bcc6ccea61f Author: Pavel Emelyanov Date: Sat May 17 21:10:09 2008 -0700 bonding: Remove redundant argument from bond_create. While we're fixing the bond_create, I hope it's OK to polish it a bit after the fixes. The third argument is NULL at the first caller and is ignored by the second one, so remove it. Signed-off-by: Pavel Emelyanov Acked-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit 4b8a9239ee708958ed72722a0e5e0cf34243ad26 Author: Jay Vosburgh Date: Sat May 17 21:10:08 2008 -0700 bonding: remove test for IP in ARP monitor Remove bond_has_ip and all references to it. With this change, the ARP monitor will always send ARP probes if the master is up and has at least one slave. If the bond has an IP address, it is used in the ARP probe; if not, the probes are sent with all zeros in the sender's IP address (which is consistent with an RFC 2131 4.4.1 duplicate address probe). This is useful for cases when bonding itself is hidden underneath a layer of virtual devices, e.g., with Xen. Change suggested by Tsutomu Fujii , who included a one-line patch that only affected active-backup mode. Signed-off-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit 5ce0da8f0386b62345312ec8fed31303732f4220 Author: Jay Vosburgh Date: Sat May 17 21:10:07 2008 -0700 bonding: Use msecs_to_jiffies, eliminate panic Convert bonding to use msecs_to_jiffies instead of doing the math. For the ARP monitor, there was an underflow problem that could result in an infinite loop. The miimon already had that worked around, but this is cleaner. Originally by Nicolas de Pesloüan Jay Vosburgh corrected a math error in the original; Nicolas' original commit message is: When setting arp_interval parameter to a very low value, delta_in_ticks for next arp might become 0, causing an infinite loop. See http://bugzilla.kernel.org/show_bug.cgi?id=10680 Same problem for miimon parameter already fixed, but fix might be enhanced, by using msecs_to_jiffies() function. Signed-off-by: Nicolas de Pesloüan Signed-off-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit d63ddcec20f59e78212aeaf5144e9652c0097211 Author: Al Viro Date: Wed May 21 01:34:30 2008 +0100 misc drivers/net endianness noise Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit b47385bd4f67481a7dbfcf1b4b82e9a67ecb846c Author: Divy Le Ray Date: Wed May 21 18:56:26 2008 -0700 cxgb3 - Add LRO support Add LRO support. Signed-off-by: Divy Le Ray Signed-off-by: Jeff Garzik commit 7385ecf339c504933a98581c2056d83b69b2a82b Author: Divy Le Ray Date: Wed May 21 18:56:21 2008 -0700 cxgb3 - Add page support to jumbo frame Rx queue Add page support to Jumbo frame Rx queues. Signed-off-by: Divy Le Ray Signed-off-by: Jeff Garzik commit b1fb1f280d0969f47d4ef19334120f5c34e36080 Author: Divy Le Ray Date: Wed May 21 18:56:16 2008 -0700 cxgb3 - Fix dma mapping error path Take potential dma mapping errors in account. Signed-off-by: Divy Le Ray Signed-off-by: Jeff Garzik commit 0abbc78a0137fee60ef092f0b20a3d3d7e7e0cc2 Author: Pavel Machek Date: Tue May 20 16:27:17 2008 +0200 x86, aperture_64: use symbolic constants Factor-out common aperture_valid code. Signed-off-by: Pavel Machek Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d0c854c2ceedfe1b9f6e5db4082bc71512ad0215 Author: Stephen Smalley Date: Wed May 21 14:16:12 2008 -0400 SELinux: enable processes with mac_admin to get the raw inode contexts Enable processes with CAP_MAC_ADMIN + mac_admin permission in policy to get undefined contexts on inodes. This extends the support for deferred mapping of security contexts in order to permit restorecon and similar programs to see the raw file contexts unknown to the system policy in order to check them. Signed-off-by: Stephen Smalley Signed-off-by: James Morris commit 3adebb96906d4d5d5b09cf16d75e87318f6a118c Author: Carsten Otte Date: Wed May 21 13:37:44 2008 +0200 KVM: s390: Fix race condition in kvm_s390_handle_wait The call to add_timer was issued before local_int.lock was taken and before timer_due was set to 0. If the timer expires before the lock is being taken, the timer function will set timer_due to 1 and exit before the vcpu falls asleep. Depending on other external events, the vcpu might sleep forever. This fix pulls setting timer_due to the beginning of the function before add_timer, which ensures correct behavior. Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 11f5ba9ffd728a64598c9da3c9ee20bd7505d62c Author: Carsten Otte Date: Wed May 21 13:37:40 2008 +0200 KVM: s390: Send program check on access error If the guest accesses non-existing memory, the sie64a function returns -EFAULT. We must check the return value and send a program check to the guest if the sie instruction faulted, otherwise the guest will loop at the faulting code. Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 6324afe82b1fc7114e71deaafea16dc21baadc40 Author: Carsten Otte Date: Wed May 21 13:37:37 2008 +0200 KVM: s390: fix interrupt delivery The current code delivers pending interrupts before it checks for need_resched. On a busy host, this can lead to a longer interrupt latency if the interrupt is injected while the process is scheduled away. This patch moves delivering the interrupt _after_ schedule(), which makes more sense. Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 48dff9f4becbb3b691784c78d32da115db13cf71 Author: Christian Borntraeger Date: Wed May 21 13:37:34 2008 +0200 KVM: s390: handle machine checks when guest is running The low-level interrupt handler on s390 checks for _TIF_WORK_INT and exits the guest context, if work is pending. TIF_WORK_INT is defined as_TIF_SIGPENDING | _TIF_NEED_RESCHED | _TIF_MCCK_PENDING. Currently the sie loop checks for signals and reschedule, but it does not check for machine checks. That means that we exit the guest context if a machine check is pending, but we do not handle the machine check. Signed-off-by: Christian Borntraeger CC: Heiko Carstens Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 51d1479c59182f42a596d4da688d6150593ef284 Author: Christian Borntraeger Date: Wed May 21 13:37:29 2008 +0200 KVM: s390: fix locking order problem in enable_sie There are potential locking problem in enable_sie. We take the task_lock and the mmap_sem. As exit_mm uses the same locks vice versa, this triggers a lockdep warning. The second problem is that dup_mm and mmput might sleep, so we must not hold the task_lock at that moment. The solution is to dup the mm unconditional and use the task_lock before and afterwards to check if we can use the new mm. dup_mm and mmput are called outside the task_lock, but we run update_mm while holding the task_lock, protection us against ptrace. Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 4489278915f8c7bddb2bf427e2f47718a1d53f55 Author: Christian Borntraeger Date: Wed May 21 13:37:16 2008 +0200 KVM: s390: use yield instead of schedule to implement diag 0x44 diag 0x44 is the common way on s390 to yield the cpu to the hypervisor. It is called by the guest in cpu_relax and in the spinlock code to yield to other guest cpus. This semantic is similar to yield. Lets replace the call to schedule with yield to make sure that current is really yielding. Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 2ba4cc319ab26c56205d4f23724c4748a553c845 Author: Ingo Molnar Date: Tue May 13 15:37:05 2008 +0200 rcu: fix nf_conntrack_helper.c build bug Signed-off-by: Ingo Molnar commit 4f91caab552fabc4184150955bf056f729e7fc03 Author: Barry Naujok Date: Thu May 22 17:21:40 2008 +1000 [XFS] Remove d_add call for an ENOENT lookup return code SGI-PV: 981521 SGI-Modid: xfs-linux-melb:xfs-kern:31214a Signed-off-by: Barry Naujok Signed-off-by: David Chinner commit 28f8f00929dfb4da90ca1f87914c8a4d0063ffd8 Author: Adrian Bunk Date: Tue May 20 01:08:23 2008 +0300 MAINTAINERS: update ACPI homepage This patch updates the location of the ACPI homepage in MAINTAINERS. Signed-off-by: Adrian Bunk Signed-off-by: Len Brown commit 9e72ebd686a7f39facdfff639386055f1ad7dc88 Author: Johannes Berg Date: Wed May 21 17:33:42 2008 +0200 mac80211: remove channel use statistics The useless channel use statistics are quite a lot of code, currently use integer divisions in the packet fast path, are rather inaccurate since they do not account for retries and finally nobody even cares. Hence, remove them completely. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 53c068566dde708cb28a4dfc06ae3d7fd7434397 Author: Michael Buesch Date: Tue May 20 00:24:36 2008 +0200 b43: Add firmware markers support This adds support for firmware markers. With firmware markers it's easily possible to check whether the firmware runs some codepath or not. The driver will throw a message when the firmware executes a MARKER(x). Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit afa83e239af58a93eddd10a7a43ac5618884db15 Author: Michael Buesch Date: Mon May 19 23:51:37 2008 +0200 b43: Add panic reason code that doesn't trigger restart Add a firmware panic reason code that doesn't trigger a restart. This is useful for firmware debugging and avoiding endless restart loops. We can use FWPANIC_DIE to halt the firmware at a well defined point. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit 6821783271aaf541504ff8a138184fcc83fa282b Author: Michael Buesch Date: Sat May 17 23:43:57 2008 +0200 b43: Allow running without PCM firmware This patch adds code to allow running the device without PCM firmware loaded. Without PCM firmware we don't have hardware accelerated crypto on devices with a core rev <= 10. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit e48b0eeb0ab508021b654a45f332b30cac2163b9 Author: Michael Buesch Date: Sat May 17 22:44:35 2008 +0200 b43: Add hooks for firmware debugging This patch adds some hooks for firmware debugging. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit e2530083609148a7835b54c431f6b8956407c1f6 Author: Johannes Berg Date: Sat May 17 00:57:14 2008 +0200 mac80211: use multi-queue master netdevice This patch updates mac80211 and drivers to be multi-queue aware and use that instead of the internal queue mapping. Also does a number of cleanups in various pieces of the code that fall out and reduces internal mac80211 state size. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit eefce91a384a64c7bbf913eb08c4adfb911c3639 Author: Johannes Berg Date: Sat May 17 00:57:13 2008 +0200 mac80211: dont allow fragmentation and requeuing on A-MPDU queues There really is no reason for a driver to reject a frame on an A-MPDU queue when it can stop that queue for any period of time and is given frames one by one. Hence, disallow it with a big warning and reduce mac80211-internal state. Also add a warning when we try to fragment a frame destined for an A-MPDU queue and drop it, the actual bug needs to be fixed elsewhere but I'm not exactly sure how to yet. Signed-off-by: Johannes Berg Cc: Ron Rindjunsky Signed-off-by: John W. Linville commit e93048825face354ecb0cb3ac00190c764a44f45 Author: Larry.Finger@lwfinger.net Date: Thu May 15 14:07:36 2008 -0500 b43: Fix typo in firmware file name for 802.11 cores with rev 13 When the patch for the BCM4311 rev 2 was prepared, I misread the specs and coded the wrong file name for the initvals firmware. Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit a8c4ea7a10f3c45eee27efb3954c3e03c297f0a7 Author: Atsushi Nemoto Date: Fri May 16 17:27:05 2008 +0900 zd1211rw: Use DMA-aware buffer for usb transfer The zd1211rw driver uses unaligned stack buffer for USB control message. But it might cause stack corruption on non-coherent platform, such as MIPS. Use DMA-aware buffers for USB transfer. Signed-off-by: Atsushi Nemoto Signed-off-by: John W. Linville commit e039fa4a4195ac4ee895e6f3d1334beed63256fe Author: Johannes Berg Date: Thu May 15 12:55:29 2008 +0200 mac80211: move TX info into skb->cb This patch converts mac80211 and all drivers to have transmit information and status in skb->cb rather than allocating extra memory for it and copying all the data around. To make it fit, a union is used where only data that is necessary for all steps is kept outside of the union. A number of fixes were done by Ivo, as well as the rt2x00 part of this patch. Signed-off-by: Ivo van Doorn Signed-off-by: Johannes Berg Acked-by: David S. Miller Signed-off-by: John W. Linville commit e24549485f859be6518929bb1c9c0257d79f033d Author: Johannes Berg Date: Thu May 15 12:55:28 2008 +0200 mac80211: reorder some transmit handlers The next patch will require that transmit handlers that are after fragmentation are aware of the fact that the control info is also fragmented. To make that easier, this patch moves a number of transmit handlers before fragmentation. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 2e92e6f2c50b4baf85cca968f0e6f1b5c0df7d39 Author: Johannes Berg Date: Thu May 15 12:55:27 2008 +0200 mac80211: use rate index in TX control This patch modifies struct ieee80211_tx_control to give band info and the rate index (instead of rate pointers) to drivers. This mostly serves to reduce the TX control structure size to make it fit into skb->cb so that the fragmentation code can put it there and we can think about passing it to drivers that way in the future. The rt2x00 driver update was done by Ivo, thanks. Signed-off-by: Ivo van Doorn Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 36d6825b91bc492b65b6333c369cd96a2fc8c903 Author: Johannes Berg Date: Thu May 15 12:55:26 2008 +0200 mac80211: let drivers wake but not start queues Having drivers start queues is just confusing, their ->start() callback can block and do whatever is necessary, so let mac80211 start queues and have drivers wake queues when necessary (to get packets flowing again right away.) Signed-off-by: Johannes Berg Acked-by: David S. Miller Signed-off-by: John W. Linville commit c4680470a34a4f39af3d0a5c40f70befd8701908 Author: Johannes Berg Date: Thu May 15 12:55:25 2008 +0200 mac80211: fix bugs in queue handling functions Commit 55c308c1315bc7267dbb88011c208fd743cdce31 ("mac80211: QoS related cleanups") introduced another bug, the queue handling functions that operate on all queues now only operated on the first queues, not the A-MPDU queues as expected. This patch fixes this. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 189a2b5942d62bd18e1e01772c4c784253f5dd16 Author: Ester Kummer Date: Thu May 15 13:54:18 2008 +0800 iwlwifi: trigger event log from debugfs This patch adds a trigger for event log printing to debugfs. It removes the triger from sysfs. Signed-off-by: Ester Kummer Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 6ba879562289bcad537a2374754ef750307c7d32 Author: Tomas Winkler Date: Thu May 15 13:54:17 2008 +0800 iwlwifi: refactor pci prob flow This patch refactores pci prob flow. It moves mac80211 registration to the end, otherwise there is a race between error path in pci_probe and mac_start. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 445c2dff409ef9de5d2f964d20917ab238fd266f Author: Tomas Winkler Date: Thu May 15 13:54:16 2008 +0800 iwlwifi: add debugfs to disable/enable run time calibration This patch adds functionality to debugfs to enable or disable chain noise or sensitivity calibrations. Signed-off-by: Tomas Winkler Signed-off-by: Emmanuel Grumbach Signed-off-by: John W. Linville commit da6833cb05cd76f4367fa7e4a783bf358c096faf Author: Tomas Winkler Date: Thu May 15 13:54:15 2008 +0800 iwlwifi: remove 4965 remainings in iwl-eeprom.c file The patch cleans up 4965 remaings from iwl-eeprom.c file. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 9636e583d2c641f8cb32d0681f5052b2885edd79 Author: Ron Rindjunsky Date: Thu May 15 13:54:14 2008 +0800 iwlwifi: iwl5000 WiFi/WiMax coexistence This patch adds WiFi/WiMax coexistence to iwl5000. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 99da1b48fc77484aa8da85a45d9c3c1e00243659 Author: Ron Rindjunsky Date: Thu May 15 13:54:13 2008 +0800 iwlwifi: add ucode init flow handling for iwl5000 This patch adds all the handlers and functions needed for ucode initialization flow. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit dbb983b70a4696666112591572ed49c48c58da26 Author: Ron Rindjunsky Date: Thu May 15 13:54:12 2008 +0800 iwlwifi: add ucode loaders for iwl5000 This patch adds ucode initialization handler and functions to load ucode for iwl5000 NIC. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit b600e4e1c5cd8928fef83bb983ab76c9a6f655bc Author: Ron Rindjunsky Date: Thu May 15 13:54:11 2008 +0800 iwlwifi: add rx_handlers stub for iwl5000 This patch adds rx_handler_setup stub to iwl5000. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 3647074973e70d0872b96ada27bbbb71fd1f628c Author: Ron Rindjunsky Date: Thu May 15 13:54:10 2008 +0800 iwlwifi: rename and move Tx queue activation/deactivation This patch moves iwl4965_txq_ctx_activate and iwl4965_txq_ctx_deactivate to iwl-dev.h and removes 4965 prefix from their names. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit ccc038abe4cb00cf56aeae5b1df47fcc4ed4136c Author: Emmanuel Grumbach Date: Thu May 15 13:54:09 2008 +0800 iwlwifi: clean up and bug fix for security This patch cleans up code in security. 1) uses the new pointer to ieee80211_key_conf passed with the tx_control. 2) resolves bug reported by Mirco Tischler (sends ADD_STA in ASYNC mode) 3) resolves bug reported by Volker Braun regarding dynamic WEP 4) drops a WEP packet which has been garbaged by firmware. This can happen upon rekeying. Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit a98410139a2ef6553ae5d73bf12bb9a68d0b38b9 Author: Emmanuel Grumbach Date: Thu May 15 13:54:08 2008 +0800 iwlwifi: don't switch to SGI if not supported by AP This patch fixes SGI support. RS didn't look at the capabilities of the AP before switching to SGI, this should lead to a stall in the traffic with an AP that doesn't support SGI. Signed-off-by: Emmanuel Grumbach Signed-off-by: Guy Cohen Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit fd4abac54a7a7f1c0acad5ddc1fbf4af22f92569 Author: Tomas Winkler Date: Thu May 15 13:54:07 2008 +0800 iwlwifi: move TX code into iwl-tx.c This patch moves the sending part of the TX code into iwl-tx.c including sending host commands. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 54dbb525e7b8580b86af352cf60b27cc889c2ae4 Author: Tomas Winkler Date: Thu May 15 13:54:06 2008 +0800 iwlwifi: refactor ieee80211_get_qos_ctrl This patch refactors ieee80211_get_qos_ctrl function and its usage in iwlwifi drivers. Function is moved as inline into iwl-helpers.h. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 83d527d9e8f9aff92cbd33f208f77c055dabb499 Author: Tomas Winkler Date: Thu May 15 13:54:05 2008 +0800 iwlwifi: remove 4956 form iwl4965_tx_cmd This patch renames iwl4965_tx_cmd to iwl_tx_cmd and cleans collateral code. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 4f40e4d9fb8fe028db9ba2a7b4d3ac7328f73bbc Author: Tomas Winkler Date: Thu May 15 13:54:04 2008 +0800 iwlwifi: move more station managment into iwl-sta.c This patch moves station management functions into iwl-sta.c (iwlcore). Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 57bd1bea485bf6f37ff365dec2203ba6467b41a1 Author: Tomas Winkler Date: Thu May 15 13:54:03 2008 +0800 iwlwifi: move iwl_bcast_addr to iwlcore This patch renames iwl4965_broadcast_addr to iwl_bcast_addr and moves it to iwlcore. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 1826dcc094466a39c82d4370ccfba694be0bc05b Author: Tomas Winkler Date: Thu May 15 13:54:02 2008 +0800 iwlwifi: remove 4965 from iwl4965_rate_info This patch removes 4965 from iwl4965_rate_info structure and associated variables. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit fcab423d716f923d6a7601ba33adf356bef83414 Author: Tomas Winkler Date: Thu May 15 13:54:01 2008 +0800 iwlwifi: remove 4965 prefix from iwl4965_frame This patch removes 4965 from iwl4965_frame struct and handling functions. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit babcebfabbc3f52ba048495537baa9dffff080d4 Author: Tomas Winkler Date: Thu May 15 13:54:00 2008 +0800 iwlwifi: remove 4965 from iwl4965_tx_queue_update_write_ptr This patch renames iwl4965_tx_queue_update_write_ptr to iwl_txq_update_write_ptr. This is a preparation for moving to iwl-tx.c. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit c1adf9fb31e31ee753d613bd5bc6aef9b762b747 Author: Gregory Greenman Date: Thu May 15 13:53:59 2008 +0800 iwlwifi: get_hw_cmd_size This patch introduces a new handler get_hw_cmd_size in hcmd_utils, which should adjust the size of the command sent to the microcode according to the current nic. It also changes the RXON flow to make usage of this new handler. The patch also adds iwl_rxon_cmd structure which is supperset for 5000 HW and 4965. Signed-off-by: Gregory Greenman Signed-off-by: Zhu Yi Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 8567c63e3385688b95658fe31b3ac8f4436b1b0f Author: Tomas Winkler Date: Thu May 15 13:53:58 2008 +0800 iwlwifi: rename iwl4965_tx_info to iwl_tx_info This patch renames iwl4965_tx_info to iwl_tx_info. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 443cfd457f780e40ceab7e00fbb6a56882848834 Author: Tomas Winkler Date: Thu May 15 13:53:57 2008 +0800 iwlwifi: rename iwl4965_queue to iwl_queue This patch renames iwl4965_queue to iwl_queue. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 39130df32adf8272373c03c8c2499cd2a1b4c5cf Author: Ron Rindjunsky Date: Thu May 15 13:53:56 2008 +0800 iwlwifi: filling Tx MCS set This patch fills the needed data about HW capabilities in matters of possible HT Tx MCS. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit edcdf8b21ac920e06b4180246123fe43b022e020 Author: Ron Rindjunsky Date: Thu May 15 13:53:55 2008 +0800 mac80211: separate Tx and Rx MCS when configuring HT This patch follows the 11n spec in separation between Tx and Rx MCS capabilities. Up until now, when configuring the HT possible set of Tx MCS only Rx MCS were considered, assuming they are the same as the Tx MCS. This patch fixed this by looking at low level driver Tx capabilities. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 0b794d63c5db8d010d1584c694eba97f0391fca6 Author: Ron Rindjunsky Date: Thu May 15 13:53:54 2008 +0800 iwlwifi: remove iwl4965_nic_start function This patch moves the contant of iwl4965_nic_start to the only place it is being used. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 02883017607dfc60ff188980368adbe942823492 Author: Ron Rindjunsky Date: Thu May 15 13:53:53 2008 +0800 iwlwifi: changing irrelevant comment This patch changes an old eeprom comment in probe flow. Signed-off-by: Ron Rindjunsky Signed-off-by: John W. Linville commit 3c83809917dce9bbd880f6b08edc2d0ccac14a25 Author: Harvey Harrison Date: Wed May 14 16:26:20 2008 -0700 mac80211: tkip.c use struct tkip_ctx in phase 2 key mixing Signed-off-by: Harvey Harrison Cc: "John W. Linville" Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit 82a57447fa66bf138cd55206f33eea21ee257335 Author: Harvey Harrison Date: Wed May 14 16:26:19 2008 -0700 mac80211: tkip.c use struct tkip_ctx in phase 1 key mixing Signed-off-by: Harvey Harrison Cc: "John W. Linville" Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit b0f76b335f8b1c324b4b2be06369d391b26a7cc9 Author: Harvey Harrison Date: Wed May 14 16:26:19 2008 -0700 mac80211: add a struct to hold tkip context Signed-off-by: Harvey Harrison Cc: "John W. Linville" Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit a7b6f0c5558ad03281b8064d6a4ab2e124dea991 Author: Harvey Harrison Date: Wed May 14 16:26:18 2008 -0700 mac80211: add const, remove unused function, make one function static Signed-off-by: Harvey Harrison Cc: "John W. Linville" Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit 1b19ca396621dcba573b20d4625526f5a460c886 Author: Harvey Harrison Date: Wed May 14 16:26:17 2008 -0700 mac80211: introduce struct michael_mic_ctx and static helpers Replace the existing macro with a static function, significantly shrinks the size of the produced object file. Signed-off-by: Harvey Harrison Cc: "John W. Linville" Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit 1bd3dff549537d3d9b92d0b284f4cc2be264a56d Author: Harvey Harrison Date: Wed May 14 16:26:16 2008 -0700 mac80211: michael.c use kernel-provided infrastructure Replace private implementation of bit rotation and unaligned access helpers with kernel-provided implementation. Fold xswap helper in its one usage in the michael_block macro. Signed-off-by: Harvey Harrison Cc: "John W. Linville" Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit 57962f0b9d76487a660619f97c0aa811924274a0 Author: Holger Schurig Date: Wed May 14 16:30:28 2008 +0200 libertas: reduce command retry time [PATCH, take 2] libertas: reduce command retry time In the normal case, an unsuccessful command would be retried for 10*5 seconds, or 10*10 seconds in the worst case. This patch reduces this to 3*3 seconds, or 3*10 seconds in the worst case. I also reduced the time it takes to start a new command downloaded. Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit bd9b448f4c0a514559bdae4ca18ca3e8cd999c6d Author: Pavel Emelyanov Date: Wed May 7 19:57:11 2008 +0400 mac80211: Consolidate hash kfree-ing in mesh.c. There are already two places, that kfree the mesh_table and its buckets. Signed-off-by: Pavel Emelyanov Signed-off-by: John W. Linville commit a3538b19a6d226f9d3d9b18865468370009dec55 Author: Pavel Emelyanov Date: Wed May 7 19:55:59 2008 +0400 mac80211: Merge error paths in mesh_table_grow(). This is the first (of two) clean ups after the fixes above. The err variable is not even required after this cleaning. Signed-off-by: Pavel Emelyanov Signed-off-by: John W. Linville commit 3282aea9ea5644a5b0161ad0fbd70fbf1099a470 Author: Pavel Emelyanov Date: Wed May 7 19:54:04 2008 +0400 mac80211: Do not report false error from mesh_path_add. In case the hash grow failed, it is not fair to return error - the new node _was_ _actually_ added in this case. Besides, after my previous patch, this grow is more likely to fail on large hashes. Signed-off-by: Pavel Emelyanov Signed-off-by: John W. Linville commit 8566dc3fca470454461b161677a5ae3bb3a8c1b8 Author: Pavel Emelyanov Date: Wed May 7 19:51:51 2008 +0400 mac80211: Fix sleeping allocation under lock in mesh_path_node_copy. The mesh_path_node_copy() can be called like this: mesh_path_add `- write_lock(&pathtbl_resize_lock); /* ! */ `- mesh_table_grow `- ->copy_node `- mesh_path_node_copy thus, the GFP_KERNEL is not suitable here. The acceptable fix, I suppose, is make this allocation GPF_ATOMIC - the mpath_node being allocated is 4 pointers, i.e. this allocation is small enough to survive even under a moderate memory pressure. Signed-off-by: Pavel Emelyanov Signed-off-by: John W. Linville commit 00242c40a167113688dd7ed46ec94e8a4c47f603 Author: Pavel Emelyanov Date: Wed May 7 19:48:14 2008 +0400 mac80211: Report allocation failure from mesh_path_node_copy. Now - return the -ENOMEM in case kmalloc fails. Signed-off-by: Pavel Emelyanov Signed-off-by: John W. Linville commit 4caf86c6928cfaca270327bc944f901c2e2a8f50 Author: Pavel Emelyanov Date: Wed May 7 19:47:01 2008 +0400 mac80211: Prepare mesh_table_grow to failing copy_node callback. The mesh_path_node_copy() performs kmalloc() and thus - may fail (well, it does not now, but I'm fixing this right now). Its caller - the mesh_table_grow() - isn't prepared for such a trick yet. This preparation is just flush the new hash and make copy_node() return an int value. Signed-off-by: Pavel Emelyanov Signed-off-by: John W. Linville commit 5194ee82b4aafc35b32c96db11bdacea9bf548be Author: Pavel Emelyanov Date: Wed May 7 19:44:20 2008 +0400 mac80211: Fix one more call to synchronize_rcu in atomic context. (This set applies OK without the previous one of 4 patches, but with some fuzz in the 7th one) The mesh_path_node_free() does so under hashwlock. But, this one is called 1. from mesh_path_add() after an old hash is hidden and synchronize_rcu() is calld 2. mesh_pathtbl_unregister(), when the module is being unloaded and no devices exist to mess with this hash. So, it seems to me, that simply removing the call is OK. Signed-off-by: Pavel Emelyanov Signed-off-by: John W. Linville commit 402d7752ed253369b7ab037e2d778e52d59c19ed Author: Pavel Emelyanov Date: Tue May 6 18:53:43 2008 +0400 mac80211: Brush up error paths in mesh_path_add. There are already tree paths, that do incremental rollbacks, so merge them together, rename labels and format the code to look a bit nicer. (I do not mind dropping/delaying this patch however). Signed-off-by: Pavel Emelyanov Signed-off-by: John W. Linville commit b679aeb304e3070626750c15e043a40da0e942fc Author: Javier Cardona Date: Tue May 20 15:18:49 2008 -0700 libertas: sysfs interface for accessing default mesh channel This will create the following entry: /sys/class/net/mshX -- boot_options | |-- ... | `-- channel ... ... which I overlooked on my previous patch. Signed-off-by: Javier Cardona Signed-off-by: David Woodhouse Signed-off-by: John W. Linville commit edf5dabfa86163d589041cccf607b41a7033e9b0 Author: David Woodhouse Date: Tue May 20 16:43:31 2008 +0100 libertas: Add reset_card() callback to hardware driver Signed-off-by: David Woodhouse Signed-off-by: John W. Linville commit 15dbaac03e862ee746310832c8d8d694dc0427ee Author: Javier Cardona Date: Sat May 17 21:01:24 2008 -0700 libertas: sysfs interface for accessing non-volatile configuration This will create the following sysfs directories: /sys/class/net/mshX ... |-- boot_options | |-- bootflag | `-- boottime ... |-- mesh_ie | |-- capability | |-- mesh_id | |-- metric_id | `-- protocol_id Signed-off-by: Javier Cardona Signed-off-by: David Woodhouse Signed-off-by: John W. Linville commit edaea5ce05ca804cc55438c586ca2f947d49f56f Author: Javier Cardona Date: Sat May 17 00:55:10 2008 -0700 libertas: Extend MESH_CONFIG command to access non-volatile configuration This patch is based on a patch from Shailendra Govardhan and Brian Cavagnolo. It extends the MESH_CONFIG command to configure non-volatile parameters on libertas devices that support them (e.g. OLPC Active Antenna). This patch only implements the driver/firmware interface. See http://dev.laptop.org/ticket/6823 for minimal testing results and known issues. Signed-off-by: Javier Cardona Signed-off-by: David Woodhouse Signed-off-by: John W. Linville commit 75bf45a7b4ab81cfa5c5eab68b57bbfee8b8ede2 Author: David Woodhouse Date: Tue May 20 13:32:45 2008 +0100 libertas: fix multicast filtering on eth and msh interfaces We weren't properly handling multicast on the mesh interface. Fix that, which involves setting up the hardware to use the union of dev->mc_list for both eth%d and msh%d devices. This means we can't do it directly from ->set_multicast_list() because we'd need to lock the other device to read its list, and we can't do that because it might deadlock. So punt the actual work to keventd. Also, invoke the same when taking an interface down; for some reason the core calls ->set_multicast_list while IFF_UP is still set in dev->flags when we're taking it down, so its addresses don't get removed then. We also convert MAC_MULTICAST_ADR to a direct command while we're at it, removing one more entry from the big switch statement in the deprecated lbs_prepare_and_send_command() function. Signed-off-by: David Woodhouse Signed-off-by: John W. Linville commit e37fc6e11c79899451e394319cff18cc53d6448d Author: David Woodhouse Date: Tue May 20 11:47:16 2008 +0100 libertas: Increase priority of 'unknown command' warnings Using the deprecated lbs_prepare_and_send_command() function for a command which it doesn't understand is an error; complain loudly about it even when we're not debugging. The mesh stats bug, where we converted MESH_ACCESS to a direct command but accidentally missed one user which was still trying to do it through lbs_prepare_and_send_command(), would have been caught a lot quicker if we'd done this sooner. Such bugs aren't entirely unlikely in future too, as we convert more code to stop using this function. Signed-off-by: David Woodhouse Signed-off-by: John W. Linville commit f9d1cf53cf9e934f15ce0371b5fd568407032ea2 Author: Ivo van Doorn Date: Sat May 10 13:45:50 2008 +0200 rt2x00: Release rt2x00 2.1.6 Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit aade5102c5390280e7ae8a43e09b8995792f66d8 Author: Ivo van Doorn Date: Sat May 10 13:45:58 2008 +0200 rt2x00: Remove extra + Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit b8be63ffa5dc44324e7f507997870fa3e4b17619 Author: Ivo van Doorn Date: Sat May 10 13:46:03 2008 +0200 rt2x00: Merge RX and TX entry private data With the pending removal of the tx_control structure we can merge the RX and TX entry private data structure in advance. This will temporarily increase the required memory for the queue, but that overhead will only be limited. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit dec13b6bda600c7e7da993e634562873112af50b Author: Ivo van Doorn Date: Sat May 10 13:46:08 2008 +0200 rt2x00: Remove redundant flags/dev_flags initializations the rxdesc structure is properly memsetted before passed to the driver. This means we don't have to reinitialize the flags and dev_flags fields in the drivers again. This will prevent problems when the rxdone handler is adding flags in a earlier status and will make the code look nicer when we are adding more read attributes in the rxdone handler in the driver. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 7050ec821c52826b63835dde54ee3d71c7db4262 Author: Ivo van Doorn Date: Sat May 10 13:46:13 2008 +0200 rt2x00: Split rt2x00lib_write_tx_desc() Split rt2x00lib_write_tx_desc() up into a TX descriptor initializor and TX descriptor writer. This split is required to properly allow mac80211 to move its tx_control structure into the skb->cb array. The rt2x00queue_create_tx_descriptor() function will read all tx control information and convert it into a rt2x00 TX descriptor information structure. After that function is complete, we have all information we needed from the tx control structure and are free to start writing into the skb->cb array for our own purposes. rt2x00queue_write_tx_descriptor() will be in charge of really sending the TX descriptor to the hardware and kicking the TX queue. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 4de36fe5abe077a4c65bf0b6a309865aa043e055 Author: Gertjan van Wingerde Date: Sat May 10 13:44:14 2008 +0200 rt2x00: Only initialize the minimum needed fields of PCI TX descriptors. In preparation of replacing the statically allocated data DMA buffers with DMA-mapped skb's we need to change the TXD handling of the PCI drivers, by moving the programming of the buffer address fields to the actual TXD writing at TX time, instead of at start-up time. Signed-off-by: Gertjan van Wingerde Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 70a96109439cba0af0780ee1dc25ec7ed15f0bae Author: Ivo van Doorn Date: Sat May 10 13:43:38 2008 +0200 rt2x00: Preserve descriptor information after memmove() Due to usage of memmove() in rt2x00usb the descriptor can become corrupted because it is being overwritten by the data part. Overall having the descriptor in front of the frame is a bad idea, we can however use the skb->cb array for this task, since that contains more then enough room to hold the entire descriptor and preserve the information long enough. After this we can also cleanup the alignment code a bit to make it work a bit more flexible to allow for all kinds of odd header lengths. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 61448f88078e813bbaaa58eb775d650c85e7d407 Author: Gertjan van Wingerde Date: Sat May 10 13:43:33 2008 +0200 rt2x00: Fix queue related oops in case of deselected mac80211 multi-queue feature. With the integration of the mac80211 multiqueue patches it has become possible that the mac80211 layer modifies the number of TX queues that is stored inside the ieee80211_hw structure, especially when multi-queue is not selected. The rt2x00 drivers are not well suited to handle that situation, as they allocate the queue structures before mac80211 has modified the number of queues it is going to use, and also expect the number of allocated queues to match the hardware implementation. Hence, ensure that rt2x00 maintains by itself the number of queues that the hardware supports, and, at the same time, making is not dependent on the preservation of contents inside a mac80211 structure. Signed-off-by: Gertjan van Wingerde Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 61486e0f68d1f8966c09b734566a187d42d65c54 Author: Ivo van Doorn Date: Sat May 10 13:42:31 2008 +0200 rt2x00: Remove ieee80211_tx_control argument from write_tx_desc() Move the last remaining information details read from ieee80211_tx_control in the drivers to the txentry_desc structure. After this we can remove ieee80211_tx_control from the argument list for the callback function, which makes it easier when the control information is moved into skb->cb Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit fb55f4d1fa252ba1e479284b79da1049d658c371 Author: Ivo van Doorn Date: Sat May 10 13:42:06 2008 +0200 rt2x00: Fix TX status reporting The tx_status enumeration was broken since the introduction of rt61pci. That driver uses different values to report the status of the tx action. This would lead to frames that were reported as success but actually failed to be send out, or frames that were neither successfull or failure which were reported as failure. Fix this by change the TX status reporting and more explicitely check for failure or success. Note that a third possibility is added "unknown". Not all hardware (USB) can report the actual TX status, for rt61pci some frames will receive this status because the TXdone handler is never called for those frames. This unknown will now be handled as neither success or failure, so we no longer increment the failure counter while this conclusion could not be determined from the real status of the frame. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 5a6e59991b82580c3ca00115603b85762ec76104 Author: Ivo van Doorn Date: Sat May 10 13:41:32 2008 +0200 rt2x00: trim skb_frame_desc to 32 bytes Remove frame_type from skb_frame_desc and pass it as argument to rt2x00debug_dump_frame(). Change data_len and desc_len to unsigned short to save another 4 bytes in skb_frame_desc. Note that this was the only location where the data_len and desc_len was not yet treated as unsigned short. This trim is required to help mac80211 with adding the TX control and TX status informtation into the skb->cb structure. When that happens, drivers will have approximately 40 bytes left to use freely. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 03194379a77b02df3404ec4848a50c6784e9a8a5 Author: Allan Stephens Date: Wed May 21 14:55:04 2008 -0700 tipc: Fix initialization sequence problems when entering network mode This patch ensures that TIPC's topology service and configuration service are shut down before switching into "network mode". This ensures that TIPC does not mistakenly try to send unnecessary "publication withdraw" messages to other nodes before it is fully initialized for sending off-node messages. Note that the node's current network address is now updated only after the two services are shut down; this ensures that any existing connections to the topology server are terminated correctly using the old address. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 6d4a6672c8263f98544d2b91690dc7074b144090 Author: Allan Stephens Date: Wed May 21 14:54:12 2008 -0700 tipc: Update "previous node" indicators when node address changes This patch ensures that the "previous node" field in any existing TIPC port message header templates is updated properly when a TIPC network address is assigned to the node. (Previously, only the "originating node" field was updated.) Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 811102ca23dfdde5ee8b782b3a4bbff44c499cb2 Author: Allan Stephens Date: Wed May 21 14:53:34 2008 -0700 tipc: Optimize null pointer check during neighbor discovery This patch optimizes TIPC neighbor discovery code to avoid testing for a null node pointer when the pointer is already known to be non-null. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 2ecb0924d7791372a70ef8f1174e37b329b955c3 Author: Allan Stephens Date: Wed May 21 14:53:00 2008 -0700 tipc: Prevent node object duplication due to simultaneous discovery This patch ensures that the simultaneous discovery of the same neighboring node by multiple interfaces does not cause TIPC to add the node into its internal data structures more than once. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 59f0c4523fdea865fab7d69d878269992a9d08dd Author: Allan Stephens Date: Wed May 21 14:52:30 2008 -0700 tipc: Fix skb_under_panic when configuring TIPC without privileges This patch prevents a TIPC configuration command requiring network administrator privileges from triggering an skbuff underrun if it is issued by a process lacking those privileges. The revised error handling code avoids the use of a potentially uninitialized global variable by transforming the unauthorized command into a new command, then following the standard command processing path to generate the required error message. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit dc58c78c047fb01f4c13e7de91abc5eb931920b3 Author: Pavel Emelyanov Date: Wed May 21 14:17:54 2008 -0700 ip6mr: Use on-device stats instead of private ones. Similar to ipmr. [ Fix build failures -DaveM ] Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit cf3677ae19c2f62979b39143f5d2f6b3dfb3b3e4 Author: Pavel Emelyanov Date: Wed May 21 14:17:33 2008 -0700 ipmr: Use on-device stats instead of private ones. These devices use the private area of appropriate size for statistics. Turning them to use on-device ones make them "privless" and thus - really small wrt kmalloc cache, they are allocated from. Besides, code looks nicer, because of absence of multi-braced type casts and dereferences. [ Fix build failures -DaveM ] Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit 3dca02af38c11a970160387ab36ae6043feb03cd Author: Pavel Emelyanov Date: Wed May 21 14:17:05 2008 -0700 ip6tnl: Use on-device stats instead of private ones. This tunnel uses its own private structure and requires separate patch to switch from private stats to on-device ones. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit f56dd017c32e759bbdc88ee59d3f76235d720788 Author: Pavel Emelyanov Date: Wed May 21 14:16:36 2008 -0700 tunnels: Remove stat member from ip_tunnel struct. All users already use on-device statistics, so this field can be safely removed. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit 2f4c02d40c0d59f4efc59801ad1498cb0f8550ea Author: Pavel Emelyanov Date: Wed May 21 14:16:14 2008 -0700 ipmr: Ipip tunnel uses on-device stats. The ipmr uses ipip tunnels for its purposes and updates the tunnels' stats, but the ipip driver is already switched to use on-device ones. Actually, this is a part of the patch #4 from this set. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit 4eecc107a85a5882e253bd97310d4e96300a2068 Author: Pavel Emelyanov Date: Wed May 21 14:15:46 2008 -0700 sit: Use on-device stats instead of private ones. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit 50f59cea075875d84018a5fc62cf2f5e6173a919 Author: Pavel Emelyanov Date: Wed May 21 14:15:16 2008 -0700 ipip: Use on-device stats instead of private ones. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit addd68eb6fe6f10017974947c90cc85ab2848cf2 Author: Pavel Emelyanov Date: Wed May 21 14:14:22 2008 -0700 ipgre: Use on-device stats instead of private ones. Just switch from tunnel->stat to tunnel->dev->stats. The ip_tunnel->stat member itself will be removed after I fix its other users (very soon). Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit a339f1c881fdb8092ef9b118610307e10e885fc8 Author: Pavel Emelyanov Date: Wed May 21 14:13:47 2008 -0700 bridge: Use on-device stats instead of private ones. Even though bridges require 6 fields from struct net_device_stats, the on-device stats are always there, so we may just use them. The br_dev_get_stats is no longer required after this. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit 96e74088f1da4d9a53735a4a57a4f984f86b75c6 Author: Pavel Emelyanov Date: Wed May 21 14:12:46 2008 -0700 net: The dev->get_stats pointer is not NULL nowadays. And so does the pointer is returns, but sysfs and netlinks still check for both cases. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit b0479ad6f65db1e8c6ea4dfef6eae89e301329f2 Author: Artem Bityutskiy Date: Wed May 21 19:58:31 2008 +0300 UBIFS: rename bg thread Signed-off-by: Artem Bityutskiy commit 317b0076b8b1a27b51a8eb47a64d495fdb956ac5 Author: Steven Whitehouse Date: Wed May 21 17:21:42 2008 +0100 [GFS2] Fix ordering bug in lock_dlm This looks like a lot of change, but in fact its not. Mostly its things moving from one file to another. The change is just that instead of queuing lock completions and callbacks from the DLM we now pass them directly to GFS2. This gives us a net loss of two list heads per glock (a fair saving in memory) plus a reduction in the latency of delivering the messages to GFS2, plus we now have one thread fewer as well. There was a bug where callbacks and completions could be delivered in the wrong order due to this unnecessary queuing which is fixed by this patch. Signed-off-by: Steven Whitehouse Cc: Bob Peterson commit c514da5152642094ea2df241b777a827c636459b Author: Artem Bityutskiy Date: Wed May 21 19:16:21 2008 +0300 UBIFS: rename JRN to JNL as well Signed-off-by: Artem Bityutskiy commit 87ff0d305f4ac4eaee413d0dbbf9a20dcbfc4cf4 Author: Steven Whitehouse Date: Wed May 21 17:03:22 2008 +0100 [GFS2] Clean up the glock core This patch implements a number of cleanups to the core of the GFS2 glock code. As a result a lot of code is removed. It looks like a really big change, but actually a large part of this patch is either removing or moving existing code. There are some new bits too though, such as the new run_queue() function which is considerably streamlined. Highlights of this patch include: o Fixes a cluster coherency bug during SH -> EX lock conversions o Removes the "glmutex" code in favour of a single bit lock o Removes the ->go_xmote_bh() for inodes since it was duplicating ->go_lock() o We now only use the ->lm_lock() function for both locks and unlocks (i.e. unlock is a lock with target mode LM_ST_UNLOCKED) o The fast path is considerably shortly, giving performance gains especially with lock_nolock o The glock_workqueue is now used for all the callbacks from the DLM which allows us to simplify the lock_dlm module (see following patch) o The way is now open to make further changes such as eliminating the two threads (gfs2_glockd and gfs2_scand) in favour of a more efficient scheme. This patch has undergone extensive testing with various test suites so it should be pretty stable by now. Signed-off-by: Steven Whitehouse Cc: Bob Peterson commit 6536d2891ba2c4e837ba8478dc13bb173ed24a23 Author: Dave Kleikamp Date: Wed May 21 10:45:16 2008 -0500 JFS: skip bad iput() call in error path If jfs_iget() fails, we can't call iput() on the returned error. Thanks to Eric Sesterhenn's fuzzer testing for reporting the problem. Signed-off-by: Dave Kleikamp commit ef30c4538fe2710efd6a8332e07b9934939cd994 Author: Artem Bityutskiy Date: Wed May 21 17:31:01 2008 +0300 UBIFS: remove redundant check Signed-off-by: Artem Bityutskiy commit 8c04d4a5194d5d53e15418ccba63b30a28bab150 Author: Artem Bityutskiy Date: Wed May 21 17:09:40 2008 +0300 UBIFS: finally remove build.c Signed-off-by: Artem Bityutskiy commit 31c5d0043981b286de5799d07c5bde9edddd56b5 Author: Artem Bityutskiy Date: Wed May 21 16:47:48 2008 +0300 UBIFS: use jnl instead of jrn Christoph Hellwig asked: - any chance you could spell out journal instead of jrn? jrn always sounds like joern with the wovel eaten by a mailer.. :) Using "journal" would make some identifiers too long. Use jnl instead. Signed-off-by: Artem Bityutskiy commit 8d4b270a8e7b4cc7e1657f6697b021d5fb1b7263 Author: Adrian Hunter Date: Wed May 21 14:58:12 2008 +0300 UBIFS: get rid of build.c Signed-off-by: Adrian Hunter commit cf53341fdb70188ffa2a82e165ff655ae863e61f Author: Adrian Hunter Date: Tue May 20 10:12:36 2008 +0300 UBIFS: allow multiple blocks per page Signed-off-by: Adrian Hunter commit b3e20c48ed4403eb3bdd9a870ec668753093d3ab Author: Avi Kivity Date: Wed May 21 15:34:25 2008 +0300 KVM: x86 emulator: fix hypercall return value on AMD The hypercall instructions on Intel and AMD are different. KVM allows the guest to choose one or the other (the default is Intel), and if the guest chooses incorrectly, KVM will patch it at runtime to select the correct instruction. This allows live migration between Intel and AMD machines. This patching occurs in the x86 emulator. The current code also executes the hypercall. Unfortunately, the tail end of the x86 emulator code also executes, overwriting the return value of the hypercall with the original contents of rax (which happens to be the hypercall number). Fix not by executing the hypercall in the emulator context; instead let the guest reissue the patched instruction and execute the hypercall via the normal path. Signed-off-by: Avi Kivity commit 72fdc52b05ed4d1f897e07bd28d1b6d6ce7b8b1b Author: Kyungmin Park Date: Wed May 21 14:34:56 2008 +0300 UBI: fix buffer padding Instead of correctly pad the buffer wich we are writing to the eraseblock during update, we used weird construct: memset(buf + len, 0xFF, len - len); Fix this. Signed-off-by: Kyungmin Park Signed-off-by: Artem Bityutskiy commit b3035718d6eabdd23137c3ab51dd5a8d3ad45419 Author: Artem Bityutskiy Date: Wed May 21 14:17:00 2008 +0300 UBIFS: admit that we do not support NFS Signed-off-by: Artem Bityutskiy commit c958ff21b6cf5a6d6f842482b150a32fc45e93f1 Author: Jes Sorensen Date: Tue May 20 13:13:50 2008 +0200 KVM: ia64: fix zero extending for mmio ld1/2/4 emulation in KVM Only copy in the data actually requested by the instruction emulation and zero pad the destination register first. This avoids the problem where emulated mmio access got garbled data from ld2.acq instructions in the vga console driver. Signed-off-by: Jes Sorensen Acked-by: Xiantao Zhang Signed-off-by: Avi Kivity commit afcfd6bb8e1a050d373394c29da1844427d0db9f Author: Artem Bityutskiy Date: Tue May 20 19:51:53 2008 +0300 UBIFS: minor renaming Use 'file' everywhere, do not use 'filp'. Signed-off-by: Artem Bityutskiy commit 4f956a990561a9e871a107ce6c6131fa2b9ea5d3 Author: Barry Naujok Date: Wed May 21 18:38:40 2008 +1000 [XFS] kmem_free and kmem_realloc to use const void * SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31212a Signed-off-by: Barry Naujok Signed-off-by: Christoph Hellwig commit 0a2ea7850fc6de2dbefbdc9a7e0eb2c57d9e95c1 Author: Barry Naujok Date: Wed May 21 16:58:55 2008 +1000 [XFS] XFS: ASCII case-insensitive support Implement ASCII case-insensitive support. It's primary purpose is for supporting existing filesystems that already use this case-insensitive mode migrated from IRIX. But, if you only need ASCII-only case-insensitive support (ie. English only) and will never use another language, then this mode is perfectly adequate. ASCII-CI is implemented by generating hashes based on lower-case letters and doing lower-case compares. It implements a new xfs_nameops vector for doing the hashes and comparisons for all filename operations. To create a filesystem with this CI mode, use: # mkfs.xfs -n version=ci SGI-PV: 981516 SGI-Modid: xfs-linux-melb:xfs-kern:31209a Signed-off-by: Barry Naujok Signed-off-by: Christoph Hellwig commit f0775a14cd11addb7f635904230701d73449c978 Author: Barry Naujok Date: Wed May 21 16:58:22 2008 +1000 [XFS] Return case-insensitive match for dentry cache This implements the code to store the actual filename found during a lookup in the dentry cache and to avoid multiple entries in the dcache pointing to the same inode. To avoid polluting the dcache, we implement a new directory inode operations for lookup. xfs_vn_ci_lookup() stores the correct case name in the dcache. The "actual name" is only allocated and returned for a case- insensitive match and not an actual match. Another unusual interaction with the dcache is not storing negative dentries like other filesystems doing a d_add(dentry, NULL) when an ENOENT is returned. During the VFS lookup, if a dentry returned has no inode, dput is called and ENOENT is returned. By not doing a d_add, this actually removes it completely from the dcache to be reused. create/rename have to be modified to support unhashed dentries being passed in. SGI-PV: 981521 SGI-Modid: xfs-linux-melb:xfs-kern:31208a Signed-off-by: Barry Naujok Signed-off-by: Christoph Hellwig commit 467ac40e70edf4bf088c3ffe72d44b6e6fceb5d0 Author: Barry Naujok Date: Wed May 21 16:50:46 2008 +1000 dcache: Add case-insensitive support d_ci_add() routine This add a dcache entry to the dcache for lookup, but changing the name that is associated with the entry rather than the one passed in to the lookup routine. First, it sees if the case-exact match already exists in the dcache and uses it if one exists. Otherwise, it allocates a new node with the new name and splices it into the dcache. Original code from ntfs_lookup in fs/ntfs/namei.c by Anton Altaparmakov. Signed-off-by: Barry Naujok Signed-off-by: Anton Altaparmakov Acked-by: Christoph Hellwig commit 48f1544f304670af81ba128e49c07649ab80b88f Author: Barry Naujok Date: Wed May 21 16:42:05 2008 +1000 [XFS] Add op_flags field and helpers to xfs_da_args The end of the xfs_da_args structure has 4 unsigned char fields for true/false information on directory and attr operations using the xfs_da_args structure. The following converts these 4 into a op_flags field that uses the first 4 bits for these fields and allows expansion for future operation information (eg. case-insensitive lookup request). SGI-PV: 981520 SGI-Modid: xfs-linux-melb:xfs-kern:31206a Signed-off-by: Barry Naujok Signed-off-by: Christoph Hellwig commit 6389a58cc3f6521248df526a852621fc08d94362 Author: Barry Naujok Date: Wed May 21 16:41:01 2008 +1000 [XFS] Name operation vector for hash and compare Adds two pieces of functionality for the basis of case-insensitive support in XFS: 1. A comparison result enumerated type: xfs_dacmp. It represents an exact match, case-insensitive match or no match at all. This patch only implements different and exact results. 2. xfs_nameops vector for specifying how to perform the hash generation of filenames and comparision methods. In this patch the hash vector points to the existing xfs_da_hashname function and the comparison method does a length compare, and if the same, does a memcmp and return the xfs_dacmp result. All filename functions that use the hash (create, lookup remove, rename, etc) now use the xfs_nameops.hashname function and all directory lookup functions also use the xfs_nameops.compname function. The lookup functions also handle case-insensitive results even though the default comparison function cannot return that. And important aspect of the lookup functions is that an exact match always has precedence over a case-insensitive. So while a case-insensitive match is found, we have to keep looking just in case there is an exact match. In the meantime, the info for the first case-insensitive match is retained if no exact match is found. SGI-PV: 981519 SGI-Modid: xfs-linux-melb:xfs-kern:31205a Signed-off-by: Barry Naujok Signed-off-by: Christoph Hellwig commit 02edc75cd2d44ba2dbf466d5658fd0aacb15e60e Author: Adrian Hunter Date: Tue May 20 15:08:44 2008 +0300 UBIFS: fix dangling branch handling Signed-off-by: Adrian Hunter commit 811919b02d6b767ee628265161363ddafef5ac40 Author: Adrian Hunter Date: Tue May 20 10:16:35 2008 +0300 UBIFS: add comment Signed-off-by: Adrian Hunter commit 98ff3c158859925ad035069e112b13baf57c2333 Author: Adrian Hunter Date: Mon May 19 11:26:17 2008 +0300 UBIFS: ensure readahead is disabled Signed-off-by: Adrian Hunter commit de2933d4b94677d58e08827eaf4918c9a459e3a6 Author: Adrian Hunter Date: Mon May 19 11:24:48 2008 +0300 UBIFS: comment why 'commit_on_unmount()' is in kill_sb Signed-off-by: Adrian Hunter commit d171019eaa8f277eab3bfdc304fd200b02645fe5 Author: Adrian Hunter Date: Mon May 19 10:13:42 2008 +0300 UBIFS: make reservation before allocating sequence numbers Signed-off-by: Adrian Hunter commit 223dfa62f2f2e01622254766304bcb671f831671 Author: Adrian Hunter Date: Fri May 16 10:57:31 2008 +0300 UBIFS: fix misplaced code Signed-off-by: Adrian Hunter commit 9d09e3ffaf3361325fda71e989a81ce1d8534136 Author: Adrian Hunter Date: Thu May 15 17:16:58 2008 +0300 UBIFS: avoid 'dbg_check_key_order()' during replay Signed-off-by: Adrian Hunter commit d1659fcc59b21ec442564fedb67a5ad371f82380 Author: Adrian Bunk Date: Tue May 20 12:17:39 2008 -0400 Input: remove CVS keywords This patch removes CVS keywords that weren't updated for a long time from comments. Signed-off-by: Adrian Bunk Signed-off-by: Dmitry Torokhov commit b7969fc05ad1f48333bf725f627eb88155811f41 Author: Artem Bityutskiy Date: Tue May 20 11:15:57 2008 +0300 UBIFS: fix telldir and seekdir Signed-off-by: Artem Bityutskiy commit 99934ba4d90ac71e230c981c161f12d6202f122e Author: Artem Bityutskiy Date: Mon May 19 18:46:05 2008 +0300 UBIFS: do not forget about mnt_want_write Call mnt_want_write from ioctl to make sure the FS is not R/O. Pointed-to-by: Christoph Hellwig Signed-off-by: Artem Bityutskiy commit 46b776d5fe86ca41b22907aefaae20b979aff06a Author: Artem Bityutskiy Date: Mon May 19 11:37:43 2008 +0300 UBIFS: change few bits in readdir Signed-off-by: Artem Bityutskiy commit 79bd7e2313f458a36fba1aaf3e1af138145f0208 Author: Artem Bityutskiy Date: Fri May 16 19:42:36 2008 +0300 UBIFS: fix memory corruption Padding size was zeroed wrongly because we changed the inode format but forgot to change zeroing function. Signed-off-by: Artem Bityutskiy commit ceec1c62037a853aa516d5f45c55bcbb46877d95 Author: Artem Bityutskiy Date: Thu May 15 18:16:59 2008 +0300 UBIFS: fix bogus assertions Signed-off-by: Artem Bityutskiy commit 030b2d43a15f8ca0d1a091dda11157e27b872392 Author: Artem Bityutskiy Date: Thu May 15 17:55:39 2008 +0300 UBIFS: do not fail in case of bad seeks Signed-off-by: Artem Bityutskiy commit a695f550df5ccfcd99cfcf6252c483c858f0ca80 Author: Artem Bityutskiy Date: Thu May 15 17:04:16 2008 +0300 UBIFS: fix hash calculation The result of the hash calculation may be equivalent to 1 << UBIFS_S_KEY_HASH_BITS, which becomes 0 later when we apply UBIFS_S_KEY_HASH_MASK. But 0 is reserved hash value. Signed-off-by: Artem Bityutskiy commit 33c48ded1354b36a5c0a1dbaf159c9919445a74f Author: Artem Bityutskiy Date: Thu May 15 16:59:03 2008 +0300 UBIFS: maximum inode size is defined by current key format Signed-off-by: Artem Bityutskiy commit 236faf1782984c4888248cb3b8295dfe00eeded0 Author: Artem Bityutskiy Date: Thu May 15 16:45:07 2008 +0300 UBIFS: introduce macros for key constants Signed-off-by: Artem Bityutskiy commit 78e75339aa77d5fdf9762fa997916f1e76631d5a Author: Artem Bityutskiy Date: Tue May 13 16:52:16 2008 +0300 UBIFS: limit inode data to block size Signed-off-by: Artem Bityutskiy commit 2877b79681fc46e91bb6d5cfa6d3329406d103ff Author: Artem Bityutskiy Date: Tue May 13 16:54:03 2008 +0300 UBIFS: fix returned error code Fix: fs/ubifs/build.c: In function ‘ubifs_init’: fs/ubifs/build.c:1322: warning: ‘err’ is used uninitialized in this function Signed-off-by: Artem Bityutskiy commit ee20987703018a041f4421b55562a16b20797d81 Author: Artem Bityutskiy Date: Tue May 13 10:27:22 2008 +0300 UBIFS: fix ia64 compilation warning For some reasongs %llu gives warning when the argument is le64_to_cpu(): fs/ubifs/replay.c: In function `replay_log_leb': fs/ubifs/replay.c:807: warning: long long unsigned int format, __le64 arg (arg 6) Pointed out to by Andrew Morton. Signed-off-by: Artem Bityutskiy commit 975dc9fcff7618c5d32729d4c7e1618cd14c08f6 Author: Artem Bityutskiy Date: Fri May 9 19:03:29 2008 +0300 UBIFS: add a comment Signed-off-by: Artem Bityutskiy commit f46700919eea1ff89c142d7209b4f5d241e5b3d1 Author: Adrian Hunter Date: Fri May 9 15:36:23 2008 +0300 UBIFS: fix collision resolution Signed-off-by: Adrian Hunter commit d0e8a74f06263e94b1ff37a8c40b73a87673ccee Author: Adrian Hunter Date: Tue May 6 16:19:22 2008 +0300 UBIFS: add warning for mmapped file Signed-off-by: Adrian Hunter commit 2fe8aa6ab2f2e0e61ac42b9cf0bf62aea82775c1 Author: Adrian Hunter Date: Tue May 6 14:37:45 2008 +0300 UBIFS: page is dirtied only if trunc smaller Signed-off-by: Adrian Hunter commit bb3c636d829cf34a38ac337d5a6306514b682bd8 Author: Adrian Hunter Date: Tue May 6 12:13:11 2008 +0300 UBIFS: don't forget to release page Signed-off-by: Adrian Hunter commit 6671772a31c016c5409f5c444480252138499f07 Author: Andrew Morton Date: Thu May 8 22:55:30 2008 -0700 UBIFS: fix printk warnings fs/ubifs/xattr.c: In function 'ubifs_setxattr': fs/ubifs/xattr.c:298: warning: format '%d' expects type 'int', but argument 8 has type 'size_t' fs/ubifs/xattr.c: In function 'ubifs_getxattr': fs/ubifs/xattr.c:366: warning: format '%d' expects type 'int', but argument 8 has type 'size_t' fs/ubifs/xattr.c:404: warning: format '%d' expects type 'int', but argument 4 has type 'size_t' Signed-off-by: Andrew Morton Signed-off-by: Artem Bityutskiy commit 998b9d45676e3bff274bde4554cab3fdacb5833f Author: Artem Bityutskiy Date: Thu May 8 15:43:53 2008 +0300 UBIFS: make UBIFS compile on system with non-4KiB pages IOW, make the page size check run-time, rather than compile-time. Although it is better just to fix UBIFS and make it work with any page size - still in the TODO list. Signed-off-by: Artem Bityutskiy commit 96275a73d05989d4daa7f3c2b0dfd1a51c0b77fa Author: Zoltan Sogor Date: Thu May 8 10:33:13 2008 +0200 UBIFS: fix "CONFIG_UBIFS_FS_DEBUG_CHKS" is not defined warning Signed-off-by: Zoltan Sogor Signed-off-by: Artem Bityutskiy commit 93f2763e1b2dedc02d0085ad5bac1acc083aecd0 Author: Artem Bityutskiy Date: Wed May 7 20:31:14 2008 +0300 UBIFS: minor amendments Signed-off-by: Artem Bityutskiy commit 44833d77f5f5530f868084e696ef066c6609659c Author: Artem Bityutskiy Date: Wed May 7 13:52:42 2008 +0300 UBIFS: default is already n in Kconfig Do not use "default n" as it is redundant. Suggested by Christoph Hellwig. Signed-off-by: Artem Bityutskiy commit 256b4ff643e20f2f91c16ae9a0ffdbf9d4fb0ca8 Author: Artem Bityutskiy Date: Wed May 7 13:50:25 2008 +0300 UBIFS: get rid of Kconfig.debug Suggested by Christoph Hellwig. Signed-off-by: Artem Bityutskiy commit ffe19d03ebafda545a63d84b520be6141dfbeff1 Author: Artem Bityutskiy Date: Wed May 7 11:59:20 2008 +0300 UBIFS: no need to initialize r->key Since we use kzalloc and it is zeroed anyway. Signed-off-by: Artem Bityutskiy commit e59e13d0a770a31becb2b47070e8a74bef8d966a Author: Artem Bityutskiy Date: Wed May 7 11:30:03 2008 +0300 UBIFS: remove unneeded key comparison Marcin Slusarz wrote: return value of keys_cmp is never used in this function. Signed-off-by: Artem Bityutskiy commit be94b0b1e60d2a3cf8c2128b05ff4e065595e818 Author: Artem Bityutskiy Date: Tue May 6 11:46:30 2008 +0300 UBIFS: remove memleak and mempressure checks Signed-off-by: Artem Bityutskiy commit f4315f350747a19c5be58406190323f1ecd40181 Author: Adrian Hunter Date: Tue May 6 11:12:57 2008 +0300 UBIFS: add module params to documentation Signed-off-by: Adrian Hunter commit 80cacee1f03530f977507032df158cec87f7216c Author: Artem Bityutskiy Date: Tue May 6 12:24:33 2008 +0300 UBIFS: do not assume inode size may not be changed meanwhile Signed-off-by: Artem Bityutskiy commit 109038e427ecbd8ed2f53b9e8c7f28defe43733d Author: Artem Bityutskiy Date: Tue May 6 12:00:32 2008 +0300 UBIFS: fix checkpatch.pl errors Signed-off-by: Artem Bityutskiy commit 601bf9d7b2e50e3ab72ac3ce6bf697bdb4f31cb5 Author: Artem Bityutskiy Date: Mon May 5 21:02:44 2008 +0300 UBIFS: remove some amount of assertion Remove a dozen of assertions which look more or less useless. Signed-off-by: Artem Bityutskiy commit 81cdd63f758b6b268fcb5fe67117f77abb8b2c65 Author: Artem Bityutskiy Date: Mon May 5 20:47:10 2008 +0300 UBIFS: remove VFS interface checking assertions Signed-off-by: Artem Bityutskiy commit 67a0ec6720b3f92ac40320cd058bef8a43df1e2a Author: Adrian Hunter Date: Mon May 5 14:42:18 2008 +0300 UBIFS: remove module param pretty print Signed-off-by: Adrian Hunter commit 5b7dcc6ae38c269e64a3746409c2dbd7249bf68e Author: Adrian Hunter Date: Mon May 5 10:59:11 2008 +0300 UBIFS: fix module params Signed-off-by: Adrian Hunter commit 873bb793dc6d77ab32a0183f079a3bdca30f47f3 Author: Adrian Hunter Date: Mon May 5 14:12:12 2008 +0300 UBIFS: fix white space Signed-off-by: Adrian Hunter commit 613afa7fbe9d74276d9005563c82fea49234e1ec Author: Adrian Hunter Date: Mon May 5 14:01:38 2008 +0300 UBIFS: change check level to bool Signed-off-by: Adrian Hunter commit b2d2ba7a3d258828350578392d6c40949e267a62 Author: Adrian Hunter Date: Mon May 5 12:54:58 2008 +0300 UBIFS: reinstate recovery messages Signed-off-by: Adrian Hunter commit 622d3b83f93728095bb2bef1ab0e3c8ef9e3bb1e Author: Adrian Hunter Date: Mon May 5 12:10:24 2008 +0300 UBIFS: add missing check flag checks Signed-off-by: Adrian Hunter commit 77c33c19799bc887a4c501e16448dce90d983176 Author: Adrian Hunter Date: Mon May 5 14:10:40 2008 +0300 UBIFS: remove 'key' message macros Signed-off-by: Adrian Hunter commit 7aa99795b73f0ff2652cd598e91705bca0b81c0b Author: Artem Bityutskiy Date: Mon May 5 14:54:49 2008 +0300 UBIFS: fix mmap budgeting We cannot do budgeting while having a page locked. So do the similar thing in 'ubifs_vm_page_mkwrite()' as 'ubifs_write_begin()' does. Signed-off-by: Artem Bityutskiy commit e375c5a72c5ab4dae3cd3e3ff2f6754173a3e79a Author: Artem Bityutskiy Date: Mon May 5 13:14:22 2008 +0300 UBIFS: optimize budgeting a bit Avoid re-calculating stuff in case of empty budgeting requests. Signed-off-by: Artem Bityutskiy commit 080db4c6b2d4be85f47f498c34ea94f510946e13 Author: Artem Bityutskiy Date: Mon May 5 12:58:51 2008 +0300 UBIFS: fix inode budgeting ubifs_budget_inode_op() should not override req->dirtied_ino_d. Signed-off-by: Artem Bityutskiy commit be7d27d5f97963c2c33e1670bcb214e69f7546f4 Author: Hamish Moffatt Date: Fri May 2 15:22:11 2008 +1000 UBIFS: making ubifs compile with gcc-3.4 ubifs fails to compile with my gcc 3.4.4 (for arm), bombing with: fs/built-in.o: In function `ubifs_create_dflt_lpt': lpt_commit.c:(.text+0x88690): undefined reference to `__you_cannot_kmalloc_that_much' make[1]: *** [.tmp_vmlinux1] Error 1 It compiles with 4.1.2 ok though. Some web searches suggest that this is due to a compiler bug. Patches have been applied in other parts of the tree to work around this so perhaps you'll consider this patch for ubifs also. I found that rearranging the kmalloc order makes it compile. I don't believe there is any effect on the behaviour. Signed-off-by: Hamish Moffatt Signed-off-by: Artem Bityutskiy commit c8c494bcb095de64b749d71a5456719da6413c8b Author: Artem Bityutskiy Date: Mon May 5 12:10:56 2008 +0300 UBIFS: fix error path in ubifs_write_end Signed-off-by: Artem Bityutskiy commit 7705286ca7947f536b4a9d8d77a48e47af06f05b Author: Adrian Hunter Date: Sun May 4 18:43:20 2008 +0300 UBIFS: change debug control from config to module param Signed-off-by: Adrian Hunter commit 037222146887294858456780781255c33b3efd70 Author: Adrian Hunter Date: Fri May 2 14:15:05 2008 +0300 UBIFS: update cmtime for mmapped writes Signed-off-by: Adrian Hunter commit d366abd74ae5f557876fd4d3b0a4379dfaacbc15 Author: Adrian Hunter Date: Fri May 2 12:33:58 2008 +0300 UBIFS: budget for mmapped writes Signed-off-by: Adrian Hunter commit 17e3a78c47b2405b5c802bd4fa5f97ebbbc36e5a Author: Adrian Hunter Date: Thu May 1 20:54:17 2008 +0300 UBIFS: tweak min_idx_lebs calculation Signed-off-by: Adrian Hunter commit e6a9b6b79e91dc505f57c7206a227f623238dffa Author: Zoltan Sogor Date: Wed Apr 30 11:03:29 2008 +0200 UBIFS: fix error path in ubifs_write_begin() If __grab_cache_page() fails do not release the not grabbed page Free budgeted space on error path Signed-off-by: Zoltan Sogor commit e80b5544ccdeddc0e6613439d2c1c8f0998f1c29 Author: Artem Bityutskiy Date: Thu Apr 24 17:58:20 2008 +0300 UBIFS: add ubifs.txt to Documentation directory Signed-off-by: Artem Bityutskiy commit 289fa3a43f44480c38d99b107b0f0c633c5a63ef Author: Artem Bityutskiy Date: Wed Apr 23 20:02:37 2008 +0300 UBIFS: remove unnecessary locking No need to hold c->bud_lock when readin c->bud_bytes, because we are holding c->log_mutex which is enough to guarantee noone would change c->bud_bytes. Signed-off-by: Artem Bityutskiy commit 954f9bf4461c10bb2eb192780a381c94d84ae64b Author: Artem Bityutskiy Date: Tue Apr 22 13:09:20 2008 +0300 UBIFS: fix device node files We cannot leave ui->data uninitialized. Thanks to Bruce Leonard for pointing this out! Signed-off-by: Artem Bityutskiy commit 07d0e411c3bb14862cd0e6ad85192107ccea7f80 Author: Adrian Hunter Date: Mon Apr 21 14:03:45 2008 +0300 UBIFS: fix journal size for small partitions Signed-off-by: Adrian Hunter commit 952a35117b649706c31b5a4d0fc8d84ae8a16eec Author: Artem Bityutskiy Date: Sun Apr 20 15:51:28 2008 +0300 UBIFS: minor debugging print amendment Signed-off-by: Artem Bityutskiy commit ad92b61ff03519bb940e8d9fab888f7928e6712b Author: Artem Bityutskiy Date: Thu Apr 17 13:59:24 2008 +0300 UBIFS: fix warning CC [M] fs/ubifs/tnc.o fs/ubifs/tnc.c: In function ‘matches_name’: fs/ubifs/tnc.c:819: warning: comparison of distinct pointer types lacks a cast fs/ubifs/tnc.c: In function ‘fallible_matches_name’: fs/ubifs/tnc.c:1078: warning: comparison of distinct pointer types lacks a cast Signed-off-by: Artem Bityutskiy commit def0e9621f3bc81f2c09e6c5b899524d23c7b1fb Author: Adrian Hunter Date: Thu Apr 17 11:27:25 2008 +0300 UBIFS: fix comparisons Signed-off-by: Adrian Hunter commit a6c39b08532a1383b4a961b96bc4b14a0dcb7f86 Author: Adrian Hunter Date: Thu Apr 17 10:40:14 2008 +0300 UBIFS: rest of dangling branch patch Signed-off-by: Adrian Hunter commit fa340de8298556f3c16ef0fe7f3fe5020b97a0e0 Author: Artem Bityutskiy Date: Wed Apr 16 18:10:12 2008 +0300 UBIFS: fix compilation error Signed-off-by: Artem Bityutskiy commit 754b181188694d159e873399df9f45c0112845f2 Author: Artem Bityutskiy Date: Wed Apr 16 18:07:52 2008 +0300 UBIFS: remove unneeded check The keys are the same (checked previously), so we should only check one of them. Signed-off-by: Artem Bityutskiy commit 2abe361f16f02b4e52148232c2f8685b9a24c6b5 Author: Artem Bityutskiy Date: Wed Apr 16 18:05:40 2008 +0300 UBIFS: remove excessive unlikely() Signed-off-by: Artem Bityutskiy commit 49ed57ee21fc29709f773f8e1c7f1e33de44ddf4 Author: Artem Bityutskiy Date: Wed Apr 16 17:57:21 2008 +0300 UBIFS: amend comments Signed-off-by: Artem Bityutskiy commit 02f815d9e960d00b691091b76f5b716ad70d6822 Author: Artem Bityutskiy Date: Wed Apr 16 17:53:35 2008 +0300 UBIFS: print error codes Signed-off-by: Artem Bityutskiy commit d5a7e63a9a29a530c1f729c45410a1ce4e76246d Author: Adrian Hunter Date: Tue Apr 15 18:06:36 2008 +0300 UBIFS: improve dangling branch detection Signed-off-by: Adrian Hunter commit 3a2be02b330b136f90b19d4225f61e2ff53db087 Author: Artem Bityutskiy Date: Wed Apr 16 17:01:06 2008 +0300 UBIFS: bugfix in TNC memcmp() does not return -1/0/1, it returns negative/0/positive! so this 'return memcmp() + 1 was wrong. Thanks to Zoltan for reporting the bug and ro Adrian to pointing out the mistake. Signed-off-by: Artem Bityutskiy commit 9812c9305ae67a478c27a4141cc3cdfb2c2fa7c6 Author: Artem Bityutskiy Date: Wed Apr 16 14:55:12 2008 +0300 UBIFS: tweak TNC debugging messages Signed-off-by: Artem Bityutskiy commit 1d1804f091f36b5e1b49d216ebc87b74241d6c6b Author: Artem Bityutskiy Date: Wed Apr 16 11:44:12 2008 +0300 UBIFS: ubifs-v0.6 Signed-off-by: Artem Bityutskiy commit e34f59d87966bf8447ab7b05c8f5a4fde537b526 Author: Artem Bityutskiy Date: Tue Apr 15 19:39:59 2008 +0300 UBIFS: keep colliding keys sorted Signed-off-by: Artem Bityutskiy commit f6dd3074b60a4b5c4d0e63db8df8462f6c0a6535 Author: Artem Bityutskiy Date: Tue Apr 15 16:04:19 2008 +0300 UBIFS: print error code before switching to RO mode Sometimes it switches and we have no idea what happened. Force the caller to always pass error code which will be printed. Signed-off-by: Artem Bityutskiy commit 71800efc5a53f572e20e4adc20c6ead0aa7d4b7a Author: Artem Bityutskiy Date: Mon Apr 14 21:37:57 2008 +0300 UBIFS: minor change in readdir Signed-off-by: Artem Bityutskiy commit 896192a54ba22d2e4a4345dbd1fc69cb88206ba5 Author: Adrian Hunter Date: Mon Apr 14 16:05:35 2008 +0300 UBIFS: minor TNC clarification Signed-off-by: Adrian Hunter commit 8d80de68011a04738c4bac29eb6322d1c8fe9cc7 Author: Adrian Hunter Date: Mon Apr 14 15:22:17 2008 +0300 UBIFS: fix minor inconsistency with free space Signed-off-by: Adrian Hunter commit bc062f1f2f6c6930e3933dbd11f638c1850f9c5c Author: Adrian Hunter Date: Mon Apr 14 14:47:15 2008 +0300 UBIFS: force empty FS to report zero used Signed-off-by: Adrian Hunter commit fba1c6cc8112d9ffa0c23209184dea522704c48a Author: Adrian Hunter Date: Mon Apr 14 13:53:50 2008 +0300 UBIFS: fix free space Signed-off-by: Adrian Hunter commit e63e04d0eb69975090ac6b73737b2a64baffc11f Author: Adrian Hunter Date: Mon Apr 14 12:15:28 2008 +0300 UBIFS: fix bug on error path Signed-off-by: Adrian Hunter commit 897419fb2776345aa9bd8452ab1579e470c3f68a Author: Adrian Hunter Date: Mon Apr 14 11:17:23 2008 +0300 UBIFS: add a TNC comment Signed-off-by: Adrian Hunter commit 68d8c9edbbd0d99c3caa63eb276f60e2efe5acc4 Author: Adrian Hunter Date: Mon Apr 14 11:03:08 2008 +0300 UBIFS: tidy LPT defines Signed-off-by: Adrian Hunter commit 9ee0bb3af62f8fa9f18158cf76ee89a6a71f2ced Author: Adrian Hunter Date: Fri Apr 11 17:15:18 2008 +0300 UBIFS: be more conservative about worst-case compression Signed-off-by: Adrian Hunter commit fba634e2f5b710cdf606c3ab391675da8606b967 Author: Adrian Hunter Date: Mon Apr 14 10:49:10 2008 +0300 UBIFS: tree height can exceed 64 Signed-off-by: Adrian Hunter commit 3bd892ed28777ff895cfb5ea260c494d4b3d16bf Author: Artem Bityutskiy Date: Sun Apr 13 19:44:44 2008 +0300 UBIFS: more clarifications for TNC o Improve commentaries for resolve_collision series of functions o Tell that 'resolve_collision()' series returns the previous entry if @nm was not found, not the next. Well, currently it does not really matter, but will matter later. o Remove unneeded 'n -= 1' in ubifs_tnc_add_nm() Signed-off-by: Artem Bityutskiy commit 042926d58792940e847308a06a5324992f364782 Author: Artem Bityutskiy Date: Sun Apr 13 16:37:13 2008 +0300 UBIFS: random nicifications in tnc Signed-off-by: Artem Bityutskiy commit 8e66385d674d3fe4f9b2368ebe5baa3b168f4c35 Author: Artem Bityutskiy Date: Sun Apr 13 16:09:31 2008 +0300 UBIFS: zap -ENOENT return code from resolve_collision series It is just redundant. This commit even fixes an issue in ubifs_tnc_next_ent() - it propagated -ENOENT from 'resolve_collision()'up straight away and did not try to return the next direntry/xentry for this inode. Signed-off-by: Artem Bityutskiy commit cb0460d3df7a73beeb489544e87f2527b61a1d82 Author: Artem Bityutskiy Date: Sat Apr 12 19:15:02 2008 +0300 UBIFS: one more TODO for ahunter :-) hehe Signed-off-by: Artem Bityutskiy commit 3b931c2d72e13962278b751e1478f6e4a1b4830e Author: Artem Bityutskiy Date: Sat Apr 12 18:59:09 2008 +0300 UBIFS: improve znode_lookup comment Signed-off-by: Artem Bityutskiy commit 50714d3dbb25df40b8b4b91b4fb201409079e2d6 Author: Artem Bityutskiy Date: Sat Apr 12 14:06:07 2008 +0300 UBIFS: fix freaking TNC bug 2 days were spent hunting it. And surprize surprize - we fixed an exactly the same issue recently for 'lookup_level0()', and we could fix 'lookup_znode()' as well! Signed-off-by: Artem Bityutskiy commit 6e9ba97419a739fdf6580eed25971340f0bdbd55 Author: Artem Bityutskiy Date: Sat Apr 12 15:10:33 2008 +0300 UBIFS: move MIN_COMPR_LEN to ubifs-media.h Might be useful for mkfs.ubifs Signed-off-by: Artem Bityutskiy commit 9be3dab4aca3b597deb77c16012f9547fdd8675e Author: Artem Bityutskiy Date: Fri Apr 11 22:48:28 2008 +0300 UBIFS: add TODOs for ahunter :-) Signed-off-by: Artem Bityutskiy commit 9277d9a15181cb8b172ee19a87bd786d2bf8d7a9 Author: Artem Bityutskiy Date: Fri Apr 11 22:46:01 2008 +0300 UBIFS: turn znode flags into enum and document them Signed-off-by: Artem Bityutskiy commit 1fc1793a73230886834e6a740e44517f86d089fa Author: Artem Bityutskiy Date: Fri Apr 11 22:35:13 2008 +0300 UBIFS: improve debugging prints some more Signed-off-by: Artem Bityutskiy commit b2f3c85842b290455ea2833f454c24479ec9bbbb Author: Artem Bityutskiy Date: Fri Apr 11 14:38:29 2008 +0300 UBIFS: move dbg_check_idx_size to debug.c Signed-off-by: Artem Bityutskiy commit b72237495d759573affe71a5fc2c3c69f613b02d Author: Artem Bityutskiy Date: Fri Apr 11 14:29:23 2008 +0300 UBIFS: add force in-the-gap facility Signed-off-by: Artem Bityutskiy commit 181303a05d44709965fb8e9a3e833f416612c737 Author: Artem Bityutskiy Date: Fri Apr 11 13:44:21 2008 +0300 UBIFS: do not trust znode->iip in dbg_check_znode Signed-off-by: Artem Bityutskiy commit 5e8d8bb1cf34f4749ec7b145b1cd5ea738760e2e Author: Artem Bityutskiy Date: Fri Apr 11 11:38:20 2008 +0300 UBIFS: lessen size of tnc.c Move part of functionality to tnc_misc.c and debug.c Signed-off-by: Artem Bityutskiy commit 4f5483dc93f121df2d2752f047650a677dd83316 Author: Artem Bityutskiy Date: Fri Apr 11 10:58:30 2008 +0300 UBIFS: nicify commentaries Signed-off-by: Artem Bityutskiy commit d62725e37b030bdeff555346ce3621e33be8a3de Author: Artem Bityutskiy Date: Thu Apr 10 19:04:47 2008 +0300 UBIFS: tweak TNC debugging messages Signed-off-by: Artem Bityutskiy commit 1881c03d174042cf2a96d39163cee48fbda7d5d9 Author: Artem Bityutskiy Date: Thu Apr 10 17:56:46 2008 +0300 UBIFS: fix dbg_check_znode() fake alarm Signed-off-by: Artem Bityutskiy commit d522282339422107fa54d29a1734edf6c0b29d9b Author: Artem Bityutskiy Date: Thu Apr 10 16:51:20 2008 +0300 UBIFS: ubifs-v0.5 Signed-off-by: Artem Bityutskiy commit ad26d8d938d6aee8c92639b590e50cb7cc29680b Author: Adrian Hunter Date: Thu Apr 10 13:20:45 2008 +0300 UBIFS: revise directory size calculation Signed-off-by: Adrian Hunter commit 92d32639f5f167d58d5916ef976fe44f5a5e2309 Author: Adrian Hunter Date: Thu Apr 10 09:56:49 2008 +0300 UBIFS: add time_gran to dump_node Signed-off-by: Adrian Hunter commit c5d46f027699002242ad7a0b2985f6d5f4ca2791 Author: Adrian Hunter Date: Wed Apr 9 15:21:00 2008 +0300 UBIFS: allow for dates beyond 2038 Signed-off-by: Adrian Hunter commit 533c9287f4300b094b0ffb5ca2b4624f0a6f4c5b Author: Adrian Hunter Date: Wed Apr 9 14:25:13 2008 +0300 UBIFS: put time granularity on super block node Signed-off-by: Adrian Hunter commit 7c1188957ab9c7d3c69d93b27269781d149f78c2 Author: Adrian Hunter Date: Wed Apr 9 14:07:52 2008 +0300 UBIFS: use time granularity consistently Signed-off-by: Adrian Hunter commit 1c067d4fa28061ba7c19da66bc4e2a7a298e0c60 Author: Adrian Hunter Date: Fri Apr 4 15:39:02 2008 +0300 UBIFS: tweak lprops check Signed-off-by: Adrian Hunter commit 235fd67e7ca42f57ab853441229c09025629ec6c Author: Artem Bityutskiy Date: Thu Apr 10 16:36:40 2008 +0300 UBIFS: introduce constants for matches_name() This is a preparation for futher changes. This patch also adds unlikely() all over the place. Not sure it was a good idea, though. Signed-off-by: Artem Bityutskiy commit 751d3444bc9e0e2447590c3e9223b9b52ad456be Author: Artem Bityutskiy Date: Thu Apr 10 15:20:47 2008 +0300 UBIFS: do not forget to free LNC on error path Signed-off-by: Artem Bityutskiy commit ad97e5d712b4dc42a0593e49eadf88b639c5d5ee Author: Artem Bityutskiy Date: Thu Apr 10 15:15:28 2008 +0300 UBIFS: clean-up and amend matches_name() Signed-off-by: Artem Bityutskiy commit b15e979f58a748ab0cf6728b81ab7ee6ad170428 Author: Artem Bityutskiy Date: Thu Apr 10 14:45:37 2008 +0300 UBIFS: unify variable names in tnc Prefer using 'n' for zbranch index, prefer using 'zbr' for zbranch. Signed-off-by: Artem Bityutskiy commit c49da3179584072d352c256f8c5909efde4438eb Author: Artem Bityutskiy Date: Thu Apr 10 16:05:09 2008 +0300 UBIFS: remove bogus error Signed-off-by: Artem Bityutskiy commit 225a832135b56a6aa9b47d9c53eba625165a0f88 Author: Artem Bityutskiy Date: Thu Apr 10 13:50:27 2008 +0300 UBIFS: amend ubifs_tnc_next_ent Make the interface a bit less confusing. Assume th lowest key should be found only when nm->name is NULL. Signed-off-by: Artem Bityutskiy commit b79e86fd7d7a8e051223f9f830f3c0298ed74e30 Author: Artem Bityutskiy Date: Thu Apr 10 13:16:43 2008 +0300 UBIFS: fix and amend debugging stuff Signed-off-by: Artem Bityutskiy commit cdb7db7ffa1ad8617ae82b04d125a86c3911a34f Author: Artem Bityutskiy Date: Tue Apr 8 13:12:53 2008 +0300 UBIFS: add a TODO Signed-off-by: Artem Bityutskiy commit 3555f2ee76498b789adea3ff4fb47e285cb4ecda Author: Artem Bityutskiy Date: Tue Apr 8 12:22:37 2008 +0300 UBIFS: get rid of loop in keys_cmp Signed-off-by: Artem Bityutskiy commit e04bd0a1bd7f4480d9ffec45a153f83d7c6ed4d4 Author: Artem Bityutskiy Date: Tue Apr 8 12:17:19 2008 +0300 UBIFS: optimize TNC Pre-allocate a buffer for path instead once of allocating it every time. Signed-off-by: Artem Bityutskiy commit ff6d9d33e8ec289cc5b4029f405a6687f7da10d4 Author: Artem Bityutskiy Date: Mon Apr 7 19:15:40 2008 +0300 UBIFS: fix TNC bug Signed-off-by: Artem Bityutskiy commit 0453881fbe5ad332e915afc4b6212c8ce3938ec7 Author: Artem Bityutskiy Date: Mon Apr 7 13:22:45 2008 +0300 UBIFS: few minor cleanups ... just radom things I noticed while debugging a TNC problem. Signed-off-by: Artem Bityutskiy commit 36a408b101c3a220f356d2e3510bb60ac3c02ec9 Author: Artem Bityutskiy Date: Mon Apr 7 13:16:17 2008 +0300 UBIFS: add TNC dump function Signed-off-by: Artem Bityutskiy commit b4f1711132afbd94cb31f511171dfa8e3e9106dd Author: Artem Bityutskiy Date: Sat Apr 5 23:25:03 2008 +0300 UBIFS: fix minor bug Use UBIFS_KEY_HASH_R5, c->key_hash_type is not initialized by that time. Signed-off-by: Artem Bityutskiy commit 971198c40241b7b4f8c944c11901a423c7179855 Author: Artem Bityutskiy Date: Fri Apr 4 20:25:10 2008 +0300 UBIFS: ubifs-v0.4 Signed-off-by: Artem Bityutskiy commit eb5a7261f3c83b42c37dd8a58475e7ab60c585f5 Author: Artem Bityutskiy Date: Fri Apr 4 20:17:04 2008 +0300 UBIFS: remove xattr_msize This breaks media format. Signed-off-by: Artem Bityutskiy commit 0505e81fa107b2921510d9078597bfe5abca51b8 Author: Artem Bityutskiy Date: Fri Apr 4 12:22:15 2008 +0300 UBIFS: tweak div64.h inclusion Signed-off-by: Artem Bityutskiy commit b24ed524076dfcfc7d76575f3482a65ca3e855b4 Author: Artem Bityutskiy Date: Fri Apr 4 11:09:32 2008 +0300 UBIFS: tweak debugging Make sure we print error code in debugging messages. Remove some unneeded prints. Introduce a new dumping function. Signed-off-by: Artem Bityutskiy commit 91d478d0c9e46ea8802758ab40585efd9eab4cac Author: Pekka Enberg Date: Tue Apr 1 12:26:26 2008 +0300 UBIFS: use clear_nlink() in ubifs_rmdir() Use clear_nlink() instead of two consecutive drop_nlink() calls in ubifs_rmdir(). Signed-off-by: Pekka Enberg Signed-off-by: Artem Bityutskiy commit 40b0caae11c4c4a48d1327ef45e72b77ef3b8bf0 Author: Artem Bityutskiy Date: Thu Apr 3 15:59:14 2008 +0300 UBIFS: do not use long long with do_div Requested by Andrew Morton: "do_div() operates on u64, not signed long long. This will warn on several architectures". Signed-off-by: Artem Bityutskiy commit ae7f50394cfb9dac389603f2f89bb49b62e26801 Author: Artem Bityutskiy Date: Thu Apr 3 15:12:35 2008 +0300 UBIFS: remove padding field from indexing node Signed-off-by: Artem Bityutskiy commit d9c22c4e62fe22a93d573f939f6db327cb89fa66 Author: Artem Bityutskiy Date: Thu Apr 3 13:54:59 2008 +0300 UBIFS: store nanoseconds in inode time stamps This patch implements what was requested by Nick Piggin in LKML. We store nanosecond-grained time-stamps in UBIFS now. This breaks on-flash format though. Signed-off-by: Artem Bityutskiy commit e7b54aa53a6381b11f4c531dcf4070bfb8c9bd03 Author: Artem Bityutskiy Date: Thu Apr 3 15:14:09 2008 +0300 UBIFS: ubifs-v0.3 The on-flash format is going to change in the next commit, so we change the implementation version to 0.3 Signed-off-by: Artem Bityutskiy commit 339904bef5f72a7dcf81c02b11810b0fc3402d0f Author: Artem Bityutskiy Date: Wed Apr 2 17:17:51 2008 +0300 UBIFS: zero out unused fileds This patch makes sure the padding fields are zeroed out before nodes have been written. Also, use GFP_NOFS instead of GFP_KERNEL to avoid possible deadlocks. The fixed places are actually harmless, but it is just safer to use GFP_NOFS. Signed-off-by: Artem Bityutskiy commit 61fa9c6339c39b6b1add557fa1224252a6286bf7 Author: Adrian Hunter Date: Tue Apr 1 14:10:02 2008 +0300 UBIFS: fix bud race Signed-off-by: Adrian Hunter commit 739a86b230dd4d84bf052b4cb5b373e1a782ac0f Author: Adrian Hunter Date: Mon Mar 31 13:00:07 2008 +0300 UBIFS: fix minor leak on error path Signed-off-by: Adrian Hunter commit 4f80a34a8c59f194fa1b026bee655b17d6f0be61 Author: Adrian Hunter Date: Mon Mar 31 12:12:50 2008 +0300 UBIFS: fix bad lprops bug Signed-off-by: Adrian Hunter commit d872a76fc9a6288f9a0bd6ceca06dc624e85d53b Author: Adrian Hunter Date: Fri Mar 28 13:22:02 2008 +0200 UBIFS: fix lsave_cnt validation Signed-off-by: Adrian Hunter commit 06f868cbde06a2d91d3426c2a70069c9acf5cbcf Author: Adrian Hunter Date: Fri Mar 28 13:10:57 2008 +0200 UBIFS: add missing debug message Signed-off-by: Adrian Hunter commit 7f24400d88d1dbca1294de85ff3cfd04ad5b69cc Author: Artem Bityutskiy Date: Fri Mar 28 12:05:50 2008 +0200 UBIFS: report f_bavail correctly Signed-off-by: Artem Bityutskiy commit f79cae265cff9245f06271bb3ca0ed4e81d8156f Author: Artem Bityutskiy Date: Thu Mar 27 19:06:08 2008 +0200 UBIFS: fix statfs reporting Signed-off-by: Artem Bityutskiy commit 01abc2b8ce61e5e84580c5eb0e52a473373b5d97 Author: Artem Bityutskiy Date: Tue Mar 25 17:43:38 2008 +0200 UBIFS: remove compatibility stuff Signed-off-by: Artem Bityutskiy commit 9a22c02aecec78c7c69c7d4a15aa587ae2bb1031 Author: Adrian Hunter Date: Wed Mar 26 16:42:58 2008 +0200 UBIFS: don't wbuf_add_ino on error path, it overruns the buffer Signed-off-by: Adrian Hunter commit 693443925a02bd152a431b120e9acb1180e31b23 Author: Adrian Hunter Date: Wed Mar 26 13:44:07 2008 +0200 UBIFS: fix leb write wrapper Signed-off-by: Adrian Hunter commit 66992675208ea89b715c8ca04c88002ace2162b5 Author: Artem Bityutskiy Date: Tue Mar 25 17:42:34 2008 +0200 UBIFS: split lpt.c Signed-off-by: Artem Bityutskiy commit 2ba2ee45f7f3f3baaf3f2a2b12655659e88f5f58 Author: Artem Bityutskiy Date: Tue Mar 25 15:47:25 2008 +0200 UBIFS: intorduce leb write and unmap wrappers Signed-off-by: Artem Bityutskiy commit 6ed78e0406071dcc31a0041fa2671f2baf05edb9 Author: Artem Bityutskiy Date: Tue Mar 25 13:43:58 2008 +0200 UBIFS: move dbg_dump_pnode to debug.c Signed-off-by: Artem Bityutskiy commit 2f80663e1fff4b901df66a4947faa1f71ad0de90 Author: Artem Bityutskiy Date: Tue Mar 25 13:22:52 2008 +0200 UBIFS: minor cleanup in lpt.c Signed-off-by: Artem Bityutskiy commit 444c2d757858a5abf0242bf73221ca22e362a854 Author: Artem Bityutskiy Date: Tue Mar 25 12:58:30 2008 +0200 UBIFS: fix kernel-doc warnings Signed-off-by: Artem Bityutskiy commit 10ad16927a8703ac04807fd0ae88a3e41aed8c31 Author: Artem Bityutskiy Date: Tue Mar 25 11:47:17 2008 +0200 UBIFS: fix my name Signed-off-by: Artem Bityutskiy commit 0a91d4d3ec6ac9c2ff79e3e1f4dab69f578f0327 Author: Artem Bityutskiy Date: Tue Mar 25 11:40:46 2008 +0200 UBIFS: remove check_volume_empty() UBI can do the same. Signed-off-by: Artem Bityutskiy commit e50cf131f50f066684a4420785f9b3cf7e69ad4d Author: Artem Bityutskiy Date: Tue Mar 25 11:38:28 2008 +0200 UBIFS: turn recovery messages into mount messages Signed-off-by: Artem Bityutskiy commit f4864591b76f550498a7db8807f24a5d14897f29 Author: Artem Bityutskiy Date: Tue Mar 25 11:28:25 2008 +0200 UBIFS: remove xattr debugging messages Signed-off-by: Artem Bityutskiy commit 856592308429a1bc2646538931f83a3fb6067d53 Author: Adrian Hunter Date: Thu Mar 20 12:05:01 2008 +0200 UBIFS: fix lprops mismatch Signed-off-by: Adrian Hunter commit 4925a1101e4b48880b03a4a300b6da3bb0abb5b9 Author: Artem Bityutskiy Date: Wed Mar 19 16:51:48 2008 +0200 UBIFS: fix compolation error CC [M] fs/ubifs/lprops.o fs/ubifs/lprops.c:890: error: expected identifier or ‘(’ before numeric constant if only lprops check is enabled. Signed-off-by: Artem Bityutskiy commit 4981f88db684adb52cd309b762843cbc525bcc7b Author: Artem Bityutskiy Date: Wed Mar 19 16:32:35 2008 +0200 UBIFS: dump stack when switching to RO mode ... if debugging is enabled. Signed-off-by: Artem Bityutskiy commit d9b1975d6414a745344b7a8b3705faf423a86d19 Author: Adrian Hunter Date: Wed Mar 19 13:45:30 2008 +0200 UBIFS: calc lpt_hght correctly Signed-off-by: Adrian Hunter commit b1439de49db3c276da3dcc2b26b40f73e28c3c5a Author: Adrian Hunter Date: Wed Mar 19 11:51:12 2008 +0200 UBIFS: add some ro_media checks Signed-off-by: Adrian Hunter commit 011c84a776495e47e982d21b831d02279a04328c Author: Artem Bityutskiy Date: Wed Mar 19 16:26:31 2008 +0200 UBIFS: fix checkpatch.pl warnings Signed-off-by: Artem Bityutskiy commit 8ae3684b5b46a46e07daae46b9eac046554b7e60 Author: Artem Bityutskiy Date: Wed Mar 19 15:41:40 2008 +0200 UBIFS: minor renames Make leak checking function names more readable Signed-off-by: Artem Bityutskiy commit 3e520c21ce371c3a496ec4f4b2c22a81320fa7cc Author: Adrian Hunter Date: Tue Mar 18 17:42:54 2008 +0200 UBIFS: add some comments Signed-off-by: Adrian Hunter commit b4abb4fe59a57bcf0ca70e1fa6bdecefe7e29a4f Author: Adrian Hunter Date: Tue Mar 18 15:07:02 2008 +0200 UBIFS: fix some spelling Signed-off-by: Adrian Hunter commit c5c58e9dc355d3de0848c8a84f436fffd3c1682a Author: Adrian Hunter Date: Tue Mar 18 14:16:19 2008 +0200 UBIFS: sparse fixes Signed-off-by: Adrian Hunter commit a4c4497866a0afef22c43b0f22fbfa67186b1b38 Author: Adrian Hunter Date: Tue Mar 18 12:23:21 2008 +0200 UBIFS: do ubifs.h TODOs Signed-off-by: Adrian Hunter commit 2df8de3c75690ed16cc2f7a2c213a9122add8149 Author: Adrian Hunter Date: Tue Mar 18 12:13:19 2008 +0200 UBIFS: remove budget TODOs Signed-off-by: Adrian Hunter commit fc9d546510ab06ed0f8711b24e2ea00cdff53c1a Author: Adrian Hunter Date: Tue Mar 18 11:41:54 2008 +0200 UBIFS: do journal TODOs Signed-off-by: Adrian Hunter commit 80456ea852e0cc3db9efb4af6e963cb0d6ed4019 Author: Adrian Hunter Date: Mon Mar 17 17:20:10 2008 +0200 UBIFS: use kfree via debug function in debug.c Signed-off-by: Adrian Hunter commit 184a3cd62d6d858e7c49b3d1997254d87f683144 Author: Adrian Hunter Date: Mon Mar 17 16:59:30 2008 +0200 UBIFS: fix minor TNC bug Signed-off-by: Adrian Hunter commit b0020ac236b96f9088ca0eee4fd6866ee9a5836b Author: Adrian Hunter Date: Mon Mar 17 15:05:13 2008 +0200 UBIFS: do build TODOs Signed-off-by: Adrian Hunter commit 89693f6ae2937fad7cd9c1de4c012709007afd61 Author: Adrian Hunter Date: Mon Mar 17 12:51:15 2008 +0200 UBIFS: do/remove super TODOs Signed-off-by: Adrian Hunter commit 82893a9a9fd389f53feeab8d2e0be31722152f75 Author: Adrian Hunter Date: Mon Mar 17 11:19:44 2008 +0200 UBIFS: remove gc TODOs Signed-off-by: Adrian Hunter commit 687f6332ebc58ed0dc19a9bb64c8383a4028a846 Author: Adrian Hunter Date: Mon Mar 17 11:10:20 2008 +0200 UBIFS: do io.c TODOs Signed-off-by: Adrian Hunter commit aaae4e7f7cb66aa3492997a7caeb2baa92110667 Author: Adrian Hunter Date: Mon Mar 17 10:57:43 2008 +0200 UBIFS: do ioctl TODO Signed-off-by: Adrian Hunter commit 3c90f33cce82a169117dc436fdab79107ffa3622 Author: Adrian Hunter Date: Mon Mar 17 10:41:26 2008 +0200 UBIFS: do sb.c TODO Signed-off-by: Adrian Hunter commit 39182235937c379f22b3b7a3df0b52ec0f7a256c Author: Adrian Hunter Date: Mon Mar 17 10:33:48 2008 +0200 UBIFS: do replay TODO Signed-off-by: Adrian Hunter commit 7d33c50c4cd912d1a5daed9ae15ea4ec3948efd3 Author: Adrian Hunter Date: Mon Mar 17 10:16:21 2008 +0200 UBIFS: do dir.c TODOs Signed-off-by: Adrian Hunter commit a38020dd6a33f484d59e5a082e28a08e6db5bc97 Author: Artem Bityutskiy Date: Mon Mar 17 13:32:03 2008 +0200 UBIFS: make sure inode is directory before checking size Signed-off-by: Artem Bityutskiy commit 75ebc28144af658336bce4909b21e7d7ff25ebf4 Author: Adrian Hunter Date: Fri Mar 14 17:07:01 2008 +0200 UBIFS: fix new ubifs_tnc_next_ent call Signed-off-by: Adrian Hunter commit f3a2ead5918a638990fa67c9f4cebc4c794fabd4 Author: Adrian Hunter Date: Fri Mar 14 16:08:16 2008 +0200 UBIFS: remove TODOs in file.c Signed-off-by: Adrian Hunter commit ae963f4d909496ed5262fb5b0195f2133f3a0846 Author: Adrian Hunter Date: Fri Mar 14 14:54:08 2008 +0200 UBIFS: remove msize Signed-off-by: Adrian Hunter commit 5f27c14f61b14435c5ab1e0e5ac4366a88cacd68 Author: Adrian Hunter Date: Fri Mar 14 14:46:28 2008 +0200 UBIFS: last tnc TODOs Signed-off-by: Adrian Hunter commit 48cdea2dcb3f16ba703bc13be9500a0edee7d88c Author: Adrian Hunter Date: Fri Mar 14 11:40:19 2008 +0200 UBIFS: tnc TODOs Signed-off-by: Adrian Hunter commit c79cfa96b4f90eb351f0a65630af8160a8258f6a Author: Adrian Hunter Date: Fri Mar 14 10:32:30 2008 +0200 UBIFS: do some more tnc TODOs Signed-off-by: Adrian Hunter commit d5488bed0a054d3c61cbde1cb214e024532e5f31 Author: Artem Bityutskiy Date: Fri Mar 14 18:08:55 2008 +0200 UBIFS: add directory i_size check function Signed-off-by: Artem Bityutskiy commit 4b66f476d0a94980590fd9d0f97b7cf66e62bcce Author: Artem Bityutskiy Date: Fri Mar 14 15:37:48 2008 +0200 UBIFS: remove fast_umount sb flag This is really system-dependent information and should not be stored on the media. Signed-off-by: Artem Bityutskiy commit eac4a08648742df2df8cdacbe2d74ff43a9433a4 Author: Artem Bityutskiy Date: Fri Mar 14 14:40:53 2008 +0200 UBIFS: make reported block size 4K again Signed-off-by: Artem Bityutskiy commit 2196a35cbb3898ef6688bd107e26d14f604163f4 Author: Artem Bityutskiy Date: Fri Mar 14 12:31:21 2008 +0200 UBIFS: fix the code for 2.6.21 Signed-off-by: Artem Bityutskiy commit 0fa5824aeba219cddcc0edaab44273c0e59fb789 Author: Adrian Hunter Date: Thu Mar 13 17:35:49 2008 +0200 UBIFS: do some TODOs in tnc Signed-off-by: Adrian Hunter commit b4e39c01c267699808d0310d849c6ed6a2d3192e Author: Adrian Hunter Date: Thu Mar 13 17:04:34 2008 +0200 UBIFS: do some TODO's, remove others Signed-off-by: Adrian Hunter commit ad2af8df9a8cce092ec83d257d05ceac7c37a57b Author: Artem Bityutskiy Date: Fri Mar 14 11:08:58 2008 +0200 UBIFS: report 512 as block size Signed-off-by: Artem Bityutskiy commit ad83a0e17bc70cf1d09a646733addff8bfb03cd3 Author: Artem Bityutskiy Date: Fri Mar 14 10:46:09 2008 +0200 UBIFS: directory inodes do not have any attached data ... and do not pretend as if they were. Signed-off-by: Artem Bityutskiy commit a99a2275cf457b979d53d66e3ccb868ee58afb73 Author: Artem Bityutskiy Date: Fri Mar 14 10:45:29 2008 +0200 UBIFS: fix screwed budgeting Signed-off-by: Artem Bityutskiy commit 59f2e6795b78ad29f8ae3c3918d0ec2fa4e4ad04 Author: Artem Bityutskiy Date: Fri Mar 14 10:26:52 2008 +0200 UBIFS: rework stat() reports Signed-off-by: Artem Bityutskiy commit 397d18258c222b108afc147948199e8e742d1d0b Author: Artem Bityutskiy Date: Thu Mar 13 19:45:04 2008 +0200 UBIFS: fix directory size calculation Signed-off-by: Artem Bityutskiy commit 6446e12f3aeb1c8416eb451e43ebd384290fece7 Author: Adrian Hunter Date: Thu Mar 13 15:39:10 2008 +0200 UBIFS: msize is not used Signed-off-by: Adrian Hunter commit 311e5fee0ad8ed299badb8b4608859f290c4a60e Author: Adrian Hunter Date: Thu Mar 13 10:12:01 2008 +0200 UBIFS: let it compile Signed-off-by: Adrian Hunter commit 891ee20331a98e1af0d516c71fa7b1600895b1ef Author: Adrian Hunter Date: Fri Mar 7 14:51:19 2008 +0200 UBIFS: remove incorrect msize validation Signed-off-by: Adrian Hunter commit d07f69d67237cbe15266f3a07372ee647ece824c Author: Artem Bityutskiy Date: Thu Mar 13 09:30:10 2008 +0200 UBIFS: fix incorrect error returning Signed-off-by: Artem Bityutskiy commit 7382246feda0b1b7897ada85cd83430c3b2ef197 Author: Artem Bityutskiy Date: Thu Mar 13 09:22:07 2008 +0200 UBIFS: be more verbose when printing errors Signed-off-by: Artem Bityutskiy commit 5155ffd3963bee7ab3c32fe11f469daf6750353c Author: Artem Bityutskiy Date: Thu Mar 13 09:21:12 2008 +0200 UBIFS: amend Kconfig Signed-off-by: Artem Bityutskiy commit fb366a0e55f1a8b28264119457eb4e433e09dc31 Author: Artem Bityutskiy Date: Tue Mar 11 17:06:13 2008 +0200 UBIFS: fix compatibility stuff Signed-off-by: Artem Bityutskiy commit b89b955391647e9e5eeb41f0b81b4112cbf6a844 Author: Artem Bityutskiy Date: Wed Mar 12 11:22:48 2008 +0200 UBIFS: add crypto dependency to Kconfig Signed-off-by: Artem Bityutskiy commit 5c4ed714ac7fae2268e2dd856e99ae9ddb2ba2a4 Author: Artem Bityutskiy Date: Tue Mar 11 12:37:27 2008 +0200 UBIFS: implement TODO in io.c Signed-off-by: Artem Bityutskiy commit f027ec73079d2440ab8def6b31dbe8174ecb0fe6 Author: Artem Bityutskiy Date: Tue Mar 11 12:01:20 2008 +0200 UBIFS: make min_io_size at least 8 Make it 8 even for nor - it just makes implementation easier. Now UBIFS works fine on NOR and hast to be OK on ECC NOR which hase min. I/O unit size 4. Signed-off-by: Artem Bityutskiy commit 9159778de557bd7a2211d4d8fcb76764f33e7388 Author: Artem Bityutskiy Date: Tue Mar 11 11:37:52 2008 +0200 UBIFS: remove extra argument Implement a todo in io.c. Signed-off-by: Artem Bityutskiy commit 6e7fab3d4d4e74601fe4713941709bf81a6bc36c Author: Artem Bityutskiy Date: Mon Mar 10 14:59:35 2008 +0200 UBIFS: remove a TODO VFS is already doing this Signed-off-by: Artem Bityutskiy commit 366d271c73eecd802b56cbffdf94334ee2af0847 Author: Zoltan Sogor Date: Mon Mar 10 10:10:00 2008 +0100 UBIFS: fix a bug in check_namespace() Signed-off-by: Zoltan Sogor Signed-off-by: Artem Bityutskiy commit 5c95b801728e37d8e17eed1306cd0099ce9632bd Author: Adrian Hunter Date: Fri Mar 7 14:09:53 2008 +0200 UBIFS: fix WARNING: modpost: Found 1 section mismatch(es) Signed-off-by: Adrian Hunter commit 1c1c1cd6027acf890db755c3f1287ae501481e82 Author: Adrian Hunter Date: Fri Mar 7 13:56:56 2008 +0200 UBIFS: fix missing orphan bug Signed-off-by: Adrian Hunter commit c0fc63a3a8579f94b52c1efb051bb18158e1ba32 Author: Artem Bityutskiy Date: Fri Mar 7 10:57:18 2008 +0200 UBIFS: do not support ACLs Signed-off-by: Artem Bityutskiy commit 8f58250b0ae6a6598d2edeccb6aff3dee3ddf618 Author: Artem Bityutskiy Date: Thu Mar 6 14:14:13 2008 +0200 UBIFS: ubifs-v0.2 This commit just tagges vesrion 0.2 of UBIFS. We'll try not to break on-flash format anymore. This is incompatible with previous versions in terms of on-media format. This version includes extended attributes, but they are completely untested so far. ACLs are not implemented. Signed-off-by: Artem Bityutskiy commit 014a906adbfbe9deeadd6f290dcffef12f60f1f5 Author: Artem Bityutskiy Date: Thu Mar 6 13:52:55 2008 +0200 UBIFS: implement xattr handlers Although ACL support is still missing. Signed-off-by: Artem Bityutskiy commit d6383829c06c0b69f3b74a54f44e2b87b2e21689 Author: Artem Bityutskiy Date: Thu Mar 6 13:52:18 2008 +0200 UBIFS: support xattrs in TNC Signed-off-by: Artem Bityutskiy commit 4a00d568e69d79207b00746123459bfa68528f1a Author: Artem Bityutskiy Date: Thu Mar 6 13:50:15 2008 +0200 UBIFS: support xattrs in journal Add extended attributes support in the journal. Signed-off-by: Artem Bityutskiy commit 9b163403e11ab1a241214084c349e8ff5a11daa5 Author: Artem Bityutskiy Date: Wed Mar 5 19:03:11 2008 +0200 UBIFS: enlarge compression threshold Do not compress data if its length is less then 128 bytes. Signed-off-by: Artem Bityutskiy commit 1bcf63c317a2b03c76eeadb7303468ca7a48ec39 Author: Artem Bityutskiy Date: Wed Mar 5 18:58:04 2008 +0200 UBIFS: remove bad code We already do this in ubifs_mknod(), and journal.c is not the right place for this kind of things anyway. Signed-off-by: Artem Bityutskiy commit e78f4dd2674917476ef9f7674c974c10255e2895 Author: Artem Bityutskiy Date: Wed Mar 5 16:53:31 2008 +0200 UBIFS: introduce xentry Xentry is equivalent to direntry but has different key type. Signed-off-by: Artem Bityutskiy commit f318ec61ab123cd77517634ff267cd999ec05b74 Author: Artem Bityutskiy Date: Wed Mar 5 16:52:36 2008 +0200 UBIFS: add dummy xattr calls This is the first patch which adds xattr configuration option and dummy calls. Signed-off-by: Artem Bityutskiy commit 90237e293badd5b8e55770f60f787cddcd8e5383 Author: Artem Bityutskiy Date: Wed Mar 5 16:19:39 2008 +0200 UBIFS: break on-media format Cnage the inode node - add xattr-related fields and media size fields because we are planning to store them on flash. Enlarge inode node a bit as well. Signed-off-by: Artem Bityutskiy commit 5e1a19717bcca8f6fad00b528561ae6909bb59c2 Author: Artem Bityutskiy Date: Wed Mar 5 14:24:30 2008 +0200 UBIFS: tiny clean up Signed-off-by: Artem Bityutskiy commit 293501e6738acec8b4c0c402b62c2740a7242491 Author: Artem Bityutskiy Date: Wed Mar 5 14:22:28 2008 +0200 UBIFS: cleanup direntry validation Do direntry validation only once, do not repeat it in dir.c Signed-off-by: Artem Bityutskiy commit 41a01d46483351dabddde598b0029a0012a7c9b0 Author: Artem Bityutskiy Date: Wed Mar 5 10:44:07 2008 +0200 UBIFS: add a TODO Signed-off-by: Artem Bityutskiy commit f2d895cef454136bca5914b51d861f5e188db028 Author: Artem Bityutskiy Date: Tue Mar 4 20:42:40 2008 +0200 UBIFS: add helper function for inode rmoval Just a small clean-up. Signed-off-by: Artem Bityutskiy commit 24c8d9f30037135a2a1cce043fb043be0857de24 Author: Artem Bityutskiy Date: Tue Mar 4 18:53:11 2008 +0200 UBIFS: use __func__ instead of __FUNCTION__ ... according to lkml trend __FUNCTION__ is gcc-specific. Signed-off-by: Artem Bityutskiy commit 21cf8709b62eae3bdf521b29fa51613d67f5078b Author: Artem Bityutskiy Date: Tue Mar 4 18:50:47 2008 +0200 UBIFS: use ino_t instead of unsigned long Signed-off-by: Artem Bityutskiy commit 0cc966afa50feeecf6e95f710aa0beabe769fbf3 Author: Artem Bityutskiy Date: Tue Mar 4 17:16:12 2008 +0200 UBIFS: fix dirty_ino_cnt Signed-off-by: Artem Bityutskiy commit 69a1032187055a6254e1b7c6205ea0fb5016de13 Author: Artem Bityutskiy Date: Tue Mar 4 15:19:43 2008 +0200 UBIFS: remove excessive code Signed-off-by: Artem Bityutskiy commit a470b4cf85175bcf8cafff0a200317f463fe1479 Author: Zoltan Sogor Date: Mon Mar 3 15:15:50 2008 +0100 UBIFS: remove ubifs.h from include/linux/Kbuild Signed-off-by: Zoltan Sogor Signed-off-by: Artem Bityutskiy commit 06a5660f4e3ca506df371286cb1e63942f18a9ca Author: Artem Bityutskiy Date: Mon Mar 3 18:17:01 2008 +0200 UBIFS: fix new struct inode object initialization Do not forget to set up xattr-related fields to 0. Signed-off-by: Artem Bityutskiy commit b64db9627d26a8cdbf6386d04ecf1e8edb730caa Author: Artem Bityutskiy Date: Mon Mar 3 16:49:32 2008 +0200 UBIFS: fix compilation warning CC [M] fs/ubifs/debug.o fs/ubifs/debug.c: In function ‘ubifs_read_inode’: fs/ubifs/debug.c:1162: warning: format ‘%ld’ expects type ‘long int’, but argument 5 has type ‘long long int’ Signed-off-by: Artem Bityutskiy commit 31be8cb77d50ce2f594b8a744f67b00d85a99913 Author: Artem Bityutskiy Date: Sun Feb 24 15:35:47 2008 +0200 UBIFS: improve operations in dir.c When doing this operations, we re-write the parent inode. So if it is dirty, we should maki it clean, but we did not. Now we do. Also introduce some changes which are required for xattrs which are on their way. Signed-off-by: Artem Bityutskiy commit 3b2edd77d3adc7842270add4d51e5fbf2673387a Author: Artem Bityutskiy Date: Sat Feb 23 17:19:32 2008 +0200 UBIFS: remove redundant check Signed-off-by: Artem Bityutskiy commit e7e397882cef01ae1e139c994800b3e3fc4fce64 Author: Artem Bityutskiy Date: Fri Feb 22 19:21:09 2008 +0200 UBIFS: tweak debugging messages Signed-off-by: Artem Bityutskiy commit 4ea10b37db7631e0aee79199ae8985779ef7a4bb Author: Artem Bityutskiy Date: Fri Feb 22 18:18:10 2008 +0200 UBIFS: make some pointers const Signed-off-by: Artem Bityutskiy commit 815a8f609ea70116e4c4b5eff8c0573076b4947f Author: Artem Bityutskiy Date: Fri Feb 22 17:45:04 2008 +0200 UBIFS: introduce xattr-related fields to inode Signed-off-by: Artem Bityutskiy commit 76ba19656a419fac38056b1b4ad4cd883481b246 Author: Artem Bityutskiy Date: Fri Feb 22 16:53:16 2008 +0200 UBIFS: implement a bunch of TODOs Move wbuf synchronization to journal level which simplifies code a lot and implements many TODOs at once. Signed-off-by: Artem Bityutskiy commit 3e60d66a892da31be6bc0f9863b035a95568dfc4 Author: Artem Bityutskiy Date: Fri Feb 22 14:52:08 2008 +0200 UBIFS: tweak journal interface When working with xattr we do not have dents, and actually ubifs_jrn_update does not need dentry, it just needs qstr. So change the interface. Also, mark some arguments as const. Signed-off-by: Artem Bityutskiy commit e5b0204fd782300be94d65a44c48e7038022ade2 Author: Artem Bityutskiy Date: Fri Feb 22 14:24:30 2008 +0200 UBIFS: make ubifs_set_i_bytes non-inline Make the func non-inline as it is too big. And remove TODO. Signed-off-by: Artem Bityutskiy commit c61c6ec45a9514b261432a229092a913641cf005 Author: Artem Bityutskiy Date: Fri Feb 22 14:02:03 2008 +0200 UBIFS: make new_ubifs_inode global needed for xattrs Signed-off-by: Artem Bityutskiy commit 395c21756e531278af67da5bb00d7d95fbce326a Author: Artem Bityutskiy Date: Fri Feb 22 13:57:02 2008 +0200 UBIFS: rename and make macro global ... needed for xattrs. Signed-off-by: Artem Bityutskiy commit cb48b94a99deb964a0ab5515fcb38ead223ca285 Author: Artem Bityutskiy Date: Fri Feb 22 13:48:53 2008 +0200 UBIFS: add a couple of TODOs Signed-off-by: Artem Bityutskiy commit 5ed649b961a72f4a2dab8c7a9fb38e89015565ea Author: Artem Bityutskiy Date: Thu Feb 21 21:11:57 2008 +0200 UBIFS: fix debugging macro Signed-off-by: Artem Bityutskiy commit e1dd031f9125bdea73871d9df32daf83bf82b9e7 Author: Artem Bityutskiy Date: Thu Feb 21 16:40:57 2008 +0200 UBIFS: clean up key.h some more Some re-namings to be more consistent. Signed-off-by: Artem Bityutskiy commit 23554536c9c3331136ae473f9d3fb2fa74c4e6d7 Author: Artem Bityutskiy Date: Thu Feb 21 16:29:38 2008 +0200 UBIFS: minor key func cleanup Rename key function to a more consistent name and add better comment. Signed-off-by: Artem Bityutskiy commit 695801df0505ee7e7342c9fbe6a9d9a2b486141b Author: Artem Bityutskiy Date: Thu Feb 21 16:21:25 2008 +0200 UBIFS: unify replay entries names Use r instead or replay evrywhere. Signed-off-by: Artem Bityutskiy commit d47a43f3223d979470f36864ed50c3578b510973 Author: Artem Bityutskiy Date: Thu Feb 21 16:16:49 2008 +0200 UBIFS: cleanup qstr names Just a convention - use 'nm' for qstr names. Signed-off-by: Artem Bityutskiy commit b9280bf9a0a399ec2eaf1c86ba5524d34aa44e20 Author: Artem Bityutskiy Date: Thu Feb 21 14:31:35 2008 +0200 UBIFS: clean up ino_t usage Use ino_t for inode numbers. Also name numbers 'inum', not 'ino', which is used to name 'struct ubifs_ino_node'. Just a convention. Signed-off-by: Artem Bityutskiy commit 473db724b5784b12ac2750de9eac7b5cee2d0ad4 Author: Artem Bityutskiy Date: Thu Feb 21 12:54:15 2008 +0200 UBIFS: minor amendments in budgeting Signed-off-by: Artem Bityutskiy commit bc4122d9b96d2d5c9ef81b91c169016152f20485 Author: Artem Bityutskiy Date: Wed Feb 20 12:29:30 2008 +0200 UBIFS: Kconfig nicifications 1. Remove annoying repeating of UBIFS word 2. Make configuration options consistent Signed-off-by: Artem Bityutskiy commit a09fb9e4f970e24b13afc9f5367d2529fe04a852 Author: Artem Bityutskiy Date: Tue Feb 19 13:39:06 2008 +0200 UBIFS: amend copyright headers Signed-off-by: Artem Bityutskiy commit 0f9d7c7c442f8499b3f93a9c462cd9d1aad01023 Author: Artem Bityutskiy Date: Tue Feb 19 12:05:20 2008 +0200 UBIFS: switch to new VFS interface ->prepare_write and ->commit_write interfaces are deprecated since Kernel v2.6.24. Swithch UBIFS to the new interface as well. Try to preserve backward compatibility so far. Signed-off-by: Artem Bityutskiy commit ffafa0d3882859ea8858451ac5012b68291fadde Author: Artem Bityutskiy Date: Tue Feb 19 12:20:46 2008 +0200 UBIFS: fix default comprssor This was broken by one of my previous commits. Signed-off-by: Artem Bityutskiy commit 362d955b841f7fbbd2e2a73cccc66f4ca851d5dc Author: Artem Bityutskiy Date: Mon Feb 18 11:14:24 2008 +0200 UBIFS: stop using iget() iget() and ->read_inode() were dropped since 2.6.24. Adapt UBIFS, but make it in backward-compatible manner. Signed-off-by: Artem Bityutskiy commit 0a9334704d3a26c7f13f9a1d2d037f73f3bee9c5 Author: Artem Bityutskiy Date: Sun Feb 17 19:48:00 2008 +0200 UBIFS: optimize fastpath budgeting The prepare_write/commit_write path marks the inode dirty only if writing beyond inode - in this case the inode length is changed. So budget for inode change only in that case, do not budget otherwise. Signed-off-by: Artem Bityutskiy commit 1f047d74bb68086825931abe09eece20ffa85836 Author: Artem Bityutskiy Date: Sun Feb 17 21:04:48 2008 +0200 UBIFS: add assertion When an inode is marked as dirty, the budgeting mutex has to be locked, which means the operation has been budgeted. Signed-off-by: Artem Bityutskiy commit a29b08f3a4cd05a6627582b5b3b324e5cfaa0689 Author: Artem Bityutskiy Date: Sun Feb 17 20:52:49 2008 +0200 UBIFS: fix budgeting When budgeting for making inode dirty, do budget for its data if it is dirty already. Signed-off-by: Artem Bityutskiy commit 176d2946c5437361d6c9789263e05ad11ec6f434 Author: Artem Bityutskiy Date: Sun Feb 17 19:51:26 2008 +0200 UBIFS: do not retry in write_page() Since it does not seem to make any sense. ENOSPC case retries are handled on the below level. Signed-off-by: Artem Bityutskiy commit a53458432d9e1fb86146493461b1d0755d1c77c1 Author: Artem Bityutskiy Date: Sun Feb 17 19:48:00 2008 +0200 UBIFS: fix budgeting holes Make do_readpage() set the PG_Checked flag to indicate the page is either a hole or is beyond the inode. Budget correspondingly. Signed-off-by: Artem Bityutskiy commit fa0614bb8f2420a12a00bfa44642e7327af5e32a Author: Artem Bityutskiy Date: Sun Feb 17 17:19:49 2008 +0200 UBIFS: clean-up compat stuff a bit Signed-off-by: Artem Bityutskiy commit 47ec1343051272eadc86fdb2f2712950946b4725 Author: Artem Bityutskiy Date: Sun Feb 17 14:13:23 2008 +0200 UBIFS: use DIV_ROUND_UP Signed-off-by: Artem Bityutskiy commit 8464731ad5a34783b6c61bd8553b9b194b28513e Author: Artem Bityutskiy Date: Sun Feb 17 13:05:57 2008 +0200 UBIFS: rename protecting macros Signed-off-by: Artem Bityutskiy commit 46105c8a08a90c0dfa8c0c830f5b2d007944e273 Author: Artem Bityutskiy Date: Sat Feb 16 18:55:20 2008 +0200 UBIFS: remove sysfs hack That was added for debugging purposes and now causing troubles with new kernels - delete this instead of fixing. Signed-off-by: Artem Bityutskiy commit e037981cd5ff86eadf4eb35f8967d523fe4a26bb Author: Artem Bityutskiy Date: Sat Feb 16 15:22:27 2008 +0200 UBIFS: print a message when fail to open UBI volume Signed-off-by: Artem Bityutskiy commit 50a8d912d83419cd6e9c0eeafef1706d39779ec1 Author: Artem Bityutskiy Date: Sat Feb 16 14:22:31 2008 +0200 UBIFS: set default fanout to 8 According to investigation carried out by Gabor Loki, the optimal indexing tree fanout is 8 for Nokia N800 device. Make it default. Signed-off-by: Artem Bityutskiy commit ad08a9407e1671ea7c8e7fc69f3e3900e4e606cb Author: Artem Bityutskiy Date: Sat Feb 16 14:10:49 2008 +0200 UBIFS: remove leftovers Get rid of leftovers from the times when we had compressor type, hash type and key scheme mount options. Signed-off-by: Artem Bityutskiy commit 95c3f30d6454874e28caf1974ea6809b2bb59d96 Author: Artem Bityutskiy Date: Sat Feb 16 14:06:16 2008 +0200 UBIFS: remove fanout mount option We have mkfs.ubifs now. Signed-off-by: Artem Bityutskiy commit 9cd6aa441883719c61321de44dd28ebca1defe9e Author: Artem Bityutskiy Date: Sat Feb 16 14:00:28 2008 +0200 UBIFS: rename header files Since ubifs.h does not describe kernel<->user-space interface, it should not sit in include/linux, move it to fs/ubifs and rename to a more meaningful name ubifs-media.h. Also rename ubifs-priv.h to ubifs.h Signed-off-by: Artem Bityutskiy commit 310b409104a3236f2d196008dcc5c84df4e668d9 Author: Zoltan Sogor Date: Fri Feb 15 17:41:35 2008 +0100 UBIFS: store big_lpt in sup->flags Signed-off-by: Zoltan Sogor Signed-off-by: Artem Bityutskiy commit f03bc3ecb7c4e20fa054d6db2ceda0769c792f47 Author: Zoltan Sogor Date: Fri Feb 15 14:28:00 2008 +0100 UBIFS: store fast/norm unmount in superblock Signed-off-by: Zoltan Sogor Signed-off-by: Artem Bityutskiy commit 3f6af46c0ff7bc08fd4cb542f140872d4e21efb5 Author: Zoltan Sogor Date: Fri Feb 15 10:09:06 2008 +0100 UBIFS: add default reserved pool size (5%, max 5 MiB) Signed-off-by: Zoltan Sogor Signed-off-by: Artem Bityutskiy commit eb4f2e1c796b6f43d0d88356adb56d6cf8a2e6ad Author: Zoltan Sogor Date: Wed Feb 13 13:15:49 2008 +0100 UBIFS: update dbg_dump_node() to support reserved pool Signed-off-by: Zoltan Sogor Signed-off-by: Artem Bityutskiy commit 3c5d0e9c00f6ae2d00575b7755bb8f0ebdcc9a8f Author: Zoltan Sogor Date: Wed Feb 13 12:00:09 2008 +0100 UBIFS: add reserved pool support Signed-off-by: Zoltan Sogor Signed-off-by: Artem Bityutskiy commit 8a38e5b6da26c2d052e27ea929cf8cc1953be207 Author: Adrian Hunter Date: Thu Jan 31 11:25:12 2008 +0200 UBIFS: add a check for creat_sqnum Signed-off-by: Adrian Hunter commit d1c90a8f92302ec7512b4f01565677336e59b9cf Author: Adrian Hunter Date: Wed Jan 30 16:28:47 2008 +0200 UBIFS: reduce index node size Signed-off-by: Adrian Hunter commit f32603e8b20cd500a409a662dafbbe80daea3b96 Author: Adrian Hunter Date: Wed Jan 30 12:07:37 2008 +0200 UBIFS: add comment Signed-off-by: Adrian Hunter commit bb6139738edf346992364cfd9e569da39e9c1d6e Author: Adrian Hunter Date: Wed Jan 30 11:57:19 2008 +0200 UBIFS: record inode creation sequence number Signed-off-by: Adrian Hunter commit fbd3c121dfb008fb726f604997def9ad636f1c72 Author: Adrian Hunter Date: Wed Jan 30 10:48:50 2008 +0200 UBIFS: switch to little-endian Signed-off-by: Adrian Hunter commit ca37ab94b6bf953de1a78cc9151bb147d73199de Author: Adrian Hunter Date: Wed Jan 30 10:21:47 2008 +0200 UBIFS: add on-flash format version Signed-off-by: Adrian Hunter commit 68adccb4ec02480f9ec75aaddc25525a5260acf1 Author: Adrian Hunter Date: Tue Jan 29 15:11:23 2008 +0200 UBIFS: use qstr for name / length pairs Signed-off-by: Adrian Hunter commit e85d1aa351fb12c097a548b613857a3b4297a595 Author: Adrian Hunter Date: Tue Jan 29 14:24:45 2008 +0200 UBIFS: correct directory size calculation Signed-off-by: Adrian Hunter commit e90a50be76d1ab57b088206f80346b437538abfa Author: Adrian Hunter Date: Tue Jan 29 14:15:59 2008 +0200 UBIFS: tidy scan slightly Signed-off-by: Adrian Hunter commit 93c6ca0190915c1bd12357bc99f57aa9948285e6 Author: Zoltan Sogor Date: Mon Jan 28 20:35:53 2008 +0100 UBIFS: remove compression and key hash mount options Signed-off-by: Zoltan Sogor Signed-off-by: Artem Bityutskiy commit 8256bb7321e36468fd84bfbce316e6f83af437fd Author: Artem Bityutskiy Date: Fri Jan 25 19:24:13 2008 +0200 UBIFS: call bdi_init Signed-off-by: Artem Bityutskiy commit eb08beca448bf7d90e3c984d19c1e9771af9cb53 Author: Artem Bityutskiy Date: Fri Jan 25 17:16:29 2008 +0200 UBIFS: initial commit This is the initial commit of UBIFS. It is aready stable but needs more testing. Signed-off-by: Artem Bityutskiy commit e6f8264cc4f1c79b4d7d6664a25b87548426bd76 Author: Adrian Hunter Date: Thu Jan 31 17:25:00 2008 +0200 do_mounts: allow UBI root device name Similarly to MTD devices, allow UBI devices. Signed-off-by: Adrian Hunter commit d5b395f788cb530dbb551ab0a4e9b46bbc69ee35 Author: Artem Bityutskiy Date: Wed May 7 21:01:30 2008 +0300 VFS: export sync_sb_inodes This patch exports the 'sync_sb_inodes()' which is needed for UBIFS because it have to force write-back from time to time. Namely, the UBIFS budgeting subsystem forces write-back when its pessimistic callculations show that there is not free space on the media. Signed-off-by: Artem Bityutskiy commit 959ff65f46e2f8028168f397c4de45ab8f01b6c1 Author: Hans Reiser Date: Wed May 7 15:48:57 2008 +0300 VFS: move inode_lock into sync_sb_inodes This patch makes 'sync_sb_inodes()' lock 'inode_lock', rather than expect that the caller will do this. This change was previously done by Hans Reiser and sat in the -mm tree. Signed-off-by: Artem Bityutskiy commit ad1ef0681a6592c99a2bbff77db7c3677f196e81 Author: Artem Bityutskiy Date: Tue May 20 09:54:02 2008 +0300 UBI: add a comment It is not clear why we schedule PEB for scrubbing in case of -EBADMSG. Elaborate. Requested-by: Kyungmin Park Signed-off-by: Artem Bityutskiy commit 966bdab96ae02dcf1612adcdfeedb9897407de3e Author: Artem Bityutskiy Date: Wed May 14 16:10:33 2008 +0300 UBI: print error code Print error code if checking failed which is very useful to identify problems. Signed-off-by: Artem Bityutskiy commit 654f978be7afa89af394c55f8c9dcb7ec6dc059d Author: Avi Kivity Date: Tue May 20 16:21:58 2008 +0300 KVM: MMU: Fix printk() format string Signed-off-by: Avi Kivity commit 717defb4117f154baf619c80de990fc7d6d4cb0d Author: Avi Kivity Date: Tue May 20 16:21:13 2008 +0300 KVM: MMU: Fix is_empty_shadow_page() check The check is only looking at one of two possible empty ptes. Signed-off-by: Avi Kivity commit 84d6bd0e272e6eace1e7e4c501f32bddfb665bb2 Author: Andy Whitcroft Date: Tue May 20 11:01:19 2008 +0100 x86: cope with no remap space being allocated for a numa node When allocating the pgdat's for numa nodes on x86_32 we attempt to place them in the numa remap space for that node. However should the node not have any remap space allocated (such as due to having non-ram pages in the remap location in the node) then we will incorrectly place the pgdat at zero. Check we have remap available, falling back to node 0 memory where we do not. Signed-off-by: Andy Whitcroft Acked-by: Mel Gorman Signed-off-by: Ingo Molnar commit b9ada4281c48076bdb252813be24ddb57e17cade Author: Andy Whitcroft Date: Tue May 20 11:01:08 2008 +0100 x86: reinstate numa remap for SPARSEMEM on x86 NUMA systems Recent kernels have been panic'ing trying to allocate memory early in boot, in __alloc_pages: BUG: unable to handle kernel paging request at 00001568 IP: [] __alloc_pages+0x33/0x2cc *pdpt = 00000000013a5001 *pde = 0000000000000000 Oops: 0000 [#1] SMP Modules linked in: Pid: 1, comm: swapper Not tainted (2.6.25 #78) EIP: 0060:[] EFLAGS: 00010246 CPU: 0 EIP is at __alloc_pages+0x33/0x2cc EAX: 00001564 EBX: 000412d0 ECX: 00001564 EDX: 000005c3 ESI: f78012a0 EDI: 00000001 EBP: 00001564 ESP: f7871e50 DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 Process swapper (pid: 1, ti=f7870000 task=f786f670 task.ti=f7870000) Stack: 00000000 f786f670 00000010 00000000 0000b700 000412d0 f78012a0 00000001 00000000 c105b64d 00000000 000412d0 f78012a0 f7803120 00000000 c105c1c5 00000010 f7803144 000412d0 00000001 f7803130 f7803120 f78012a0 00000001 Call Trace: [] kmem_getpages+0x94/0x129 [] cache_grow+0x8f/0x123 [] ____cache_alloc_node+0xb9/0xe4 [] kmem_cache_alloc_node+0x92/0xd2 [] build_sched_domains+0x536/0x70d [] do_flush_tlb_all+0x0/0x3f [] do_flush_tlb_all+0x0/0x3f [] interleave_nodes+0x23/0x5a [] alternate_node_alloc+0x43/0x5b [] arch_init_sched_domains+0x46/0x51 [] kernel_init+0x0/0x82 [] sched_init_smp+0x10/0xbb [] kernel_init+0x43/0x82 [] kernel_thread_helper+0x7/0x10 Debugging this showed that the NODE_DATA() for nodes other than node 0 were all NULL. Tracing this back showed that the NODE_DATA() pointers were being initialised to each nodes remap space. However under SPARSEMEM remap is disabled which leads to the pgdat's being placed incorrectly at kernel virtual address 0. Leading to the panic when attempting to allocate memory from these nodes. Numa remap was disabled in the commit below. This occured while fixing problems triggered when attempting to boot x86_32 NUMA SPARSEMEM kernels on non-numa hardware. x86: make NUMA work on 32-bit commit 1b000a5dbeb2f34bc03d45ebdf3f6d24a60c3aed The real problem is believed to be related to other alignment issues in the regions blocked out from the bootmem allocator for small memory systems, and has been fixed separately. Therefore re-enable remap for SPARSMEM, which fixes pgdat allocation issues. Testing confirms that SPARSMEM NUMA kernels will boot correctly with this part of the change reverted. Signed-off-by: Andy Whitcroft Acked-by: Mel Gorman Signed-off-by: Ingo Molnar commit 948f984df52511bb0efa5c026813b0c34de43aa0 Author: Avi Kivity Date: Tue May 20 14:39:25 2008 +0300 core, x86: make LIST_POISON less deadly The list macros use LIST_POISON1 and LIST_POISON2 as undereferencable pointers in order to trap erronous use of freed list_heads. Unfortunately userspace can arrange for those pointers to actually be dereferencable, potentially turning an oops to an expolit. To avoid this allow architectures (currently x86_64 only) to override the default values for these pointers with truly-undereferencable values. This is easy on x86_64 as the virtual address space is large and contains permanently unmapped ranges. Other 64-bit architectures will likely find similar unmapped ranges. Signed-off-by: Avi Kivity Signed-off-by: Ingo Molnar commit f97ff6fb842914005d09865830ff62c3a40fbc24 Author: Eric Sandeen Date: Tue May 20 15:11:17 2008 +1000 [XFS] de-duplicate calls to xfs_attr_trace_enter Every call to xfs_attr_trace_enter() shares the exact same 16 args in the middle... just send in the context pointer and let the next level down split it into the ktrace. Compile tested only. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:31200a Signed-off-by: Eric Sandeen Signed-off-by: Niv Sardi Signed-off-by: Josef 'Jeff' Sipek Signed-off-by: Lachlan McIlroy commit bc7ff76c528428d213cf72a0c44d527ac56cc013 Author: Christoph Hellwig Date: Tue May 20 15:11:11 2008 +1000 [XFS] add missing call to xfs_filestream_unmount on xfs_mountfs failure SGI-PV: 981951 SGI-Modid: xfs-linux-melb:xfs-kern:31199a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 2bb6d31822096cd8997aebd954efac032e2ed9a7 Author: Christoph Hellwig Date: Tue May 20 15:11:05 2008 +1000 [XFS] rename error2 goto label in xfs_fs_fill_super SGI-PV: 981951 SGI-Modid: xfs-linux-melb:xfs-kern:31198a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 58fc78f22015292c8d8ba1685437fed65b0dbce8 Author: Christoph Hellwig Date: Tue May 20 15:10:58 2008 +1000 [XFS] kill calls to xfs_binval in the mount error path xfs_binval aka xfs_flush_buftarg is the first thing done in xfs_free_buftarg, so there is no need to have duplicated calls just before xfs_free_buftarg in the mount failure path. SGI-PV: 981951 SGI-Modid: xfs-linux-melb:xfs-kern:31197a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 858529ce8e73cd557ccb898b64fa7576108d00de Author: Christoph Hellwig Date: Tue May 20 15:10:52 2008 +1000 [XFS] kill xfs_mount_init xfs_mount_init is inlined into xfs_fs_fill_super and allocation switched to kzalloc. Plug a leak of the mount structure for most early mount failures. Move xfs_icsb_init_counters to as late as possible in the mount path and make sure to undo it so that no stale hotplug cpu notifiers are left around on mount failures. SGI-PV: 981951 SGI-Modid: xfs-linux-melb:xfs-kern:31196a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit fd9474214ccbee6e4232c4ff31f537b1f448a698 Author: Christoph Hellwig Date: Tue May 20 15:10:44 2008 +1000 [XFS] allow xfs_args_allocate to fail Switch xfs_args_allocate to kzalloc and handle failures. SGI-PV: 981951 SGI-Modid: xfs-linux-melb:xfs-kern:31195a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 2a61380a124d53023db17cfcb069ced099fca272 Author: Christoph Hellwig Date: Tue May 20 15:10:36 2008 +1000 [XFS] add xfs_setup_devices helper Split setting the block and sector size out of xfs_fs_fill_super into a small helper to make xfs_fs_fill_super more readable. SGI-PV: 981951 SGI-Modid: xfs-linux-melb:xfs-kern:31194a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 1aa67b63080f7d65be7db7ed73bf960271813283 Author: Christoph Hellwig Date: Tue May 20 11:31:13 2008 +1000 [XFS] sort out opening and closing of the block devices Currently closing the rt/log block device is done in the wrong spot, and far too early. So revampt it: - xfs_blkdev_put moved out of xfs_free_buftarg into the caller so that it is done after tearing down the buftarg completely. - call to xfs_unmountfs_close moved from xfs_mountfs into caller so that it's done after tearing down the filesystem completely. - xfs_unmountfs_close is renamed to xfs_close_devices and made static in xfs_super.c - opening of the block devices is split into a helper xfs_open_devices that is symetric in use to xfs_close_devices - xfs_unmountfs can now lose struct cred - error handling around device opening sanitized in xfs_fs_fill_super SGI-PV: 981951 SGI-Modid: xfs-linux-melb:xfs-kern:31193a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 262aad010357c2ad5d171f5f9d6c6c3353fe0034 Author: Christoph Hellwig Date: Tue May 20 11:31:05 2008 +1000 [XFS] don't call xfs_freesb from xfs_mountfs failure case Freeing of the superblock is already handled in the caller, and that is more symmetric with the mount path, too. SGI-PV: 981951 SGI-Modid: xfs-linux-melb:xfs-kern:31192a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 0ac0b711d037cf5be439859c0a1cdd4fddfdbf00 Author: Christoph Hellwig Date: Tue May 20 11:30:59 2008 +1000 [XFS] merge xfs_mount into xfs_fs_fill_super xfs_mount is already pretty linux-specific so merge it into xfs_fs_fill_super to allow for a more structured mount code in the next patches. xfs_start_flags and xfs_finish_flags also move to xfs_super.c. SGI-PV: 981951 SGI-Modid: xfs-linux-melb:xfs-kern:31189a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 2b3388b09ab21ec297d6894136a9f601c39a0d8e Author: Christoph Hellwig Date: Tue May 20 11:30:52 2008 +1000 [XFS] merge xfs_unmount into xfs_fs_put_super / xfs_fs_fill_super xfs_unmount is small and already pretty Linux specific, so merge it into the callers. The real unmount path is simplified a little by doing a WARN_ON on the xfs_unmount_flush retval directly instead of propagating the error back to the caller, and the mout failure case in simplified significantly by removing the forced shutdown case and all the dmapi events that shouldn't be sent because the dmapi mount event hasn't been sent by that time either. SGI-PV: 981951 SGI-Modid: xfs-linux-melb:xfs-kern:31188a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 55a62529a4d13f27071e64ba4fc6c3ebad997afd Author: Christoph Hellwig Date: Tue May 20 11:30:46 2008 +1000 [XFS] kill xfs_igrow_start and xfs_igrow_finish xfs_igrow_start just expands to xfs_zero_eof with two asserts that are useless in the context of the only caller and some rather confusing comments. xfs_igrow_finish is just a few lines of code decorated again with useless asserts and confusing comments. Just kill those two and merge them into xfs_setattr. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31186a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 396e65f2085103f4e5f29afe2739d51c3e2d00c5 Author: Christoph Hellwig Date: Tue May 20 11:30:39 2008 +1000 [XFS] merge xfs_mntupdate into xfs_fs_remount xfs_mntupdate already is completely Linux specific due to the VFS flags passed in, so it might aswell be merged into xfs_fs_remount. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31185a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit bb2ef73613bd6bd0257167bfde2aaa65db1c8dcf Author: Christoph Hellwig Date: Tue May 20 11:30:33 2008 +1000 [XFS] kill xfs_uuid_unmount Quite useless wrapper that doesn't help making the code more readable. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31184a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 6a35933746d9463d75c68c916eefd6b58ae94d00 Author: David Chinner Date: Tue May 20 11:30:27 2008 +1000 [XFS] Update valid fields in xfs_mount_log_sb() Recent changes to update the version number during mount (attr2 stuff) failed to change the assert that checked for calid flags being changed on mount. Clearly this path hasn't been exercised by the test code.... SGI-PV: 981950 SGI-Modid: xfs-linux-melb:xfs-kern:31183a Signed-off-by: David Chinner Signed-off-by: Eric Sandeen Signed-off-by: Lachlan McIlroy commit 5528eb34e79fa1abe65405a227d7e8c0230a5d69 Author: David Chinner Date: Tue May 20 11:30:15 2008 +1000 [XFS] Fix inode list allocation size in writeback. We only need to allocate space for the number of inodes in the cluster when writing back inodes, not every byte in the inode cluster. This reduces the amount of memory needing to be allocated to 256 bytes instead of 64k. SGI-PV: 981949 SGI-Modid: xfs-linux-melb:xfs-kern:31182a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit ca9b1a1413bac6ea5e5c8cb81044a39bdb3b4bc8 Author: Stephen Smalley Date: Mon May 19 08:32:49 2008 -0400 Security: split proc ptrace checking into read vs. attach Enable security modules to distinguish reading of process state via proc from full ptrace access by renaming ptrace_may_attach to ptrace_may_access and adding a mode argument indicating whether only read access or full attach access is requested. This allows security modules to permit access to reading process state without granting full ptrace access. The base DAC/capability checking remains unchanged. Read access to /proc/pid/mem continues to apply a full ptrace attach check since check_mem_permission() already requires the current task to already be ptracing the target. The other ptrace checks within proc for elements like environ, maps, and fds are changed to pass the read mode instead of attach. In the SELinux case, we model such reading of process state as a reading of a proc file labeled with the target process' label. This enables SELinux policy to permit such reading of process state without permitting control or manipulation of the target process, as there are a number of cases where programs probe for such information via proc but do not need to be able to control the target (e.g. procps, lsof, PolicyKit, ConsoleKit). At present we have to choose between allowing full ptrace in policy (more permissive than required/desired) or breaking functionality (or in some cases just silencing the denials via dontaudit rules but this can hide genuine attacks). This version of the patch incorporates comments from Casey Schaufler (change/replace existing ptrace_may_attach interface, pass access mode), and Chris Wright (provide greater consistency in the checking). Note that like their predecessors __ptrace_may_attach and ptrace_may_attach, the __ptrace_may_access and ptrace_may_access interfaces use different return value conventions from each other (0 or -errno vs. 1 or 0). I retained this difference to avoid any changes to the caller logic but made the difference clearer by changing the latter interface to return a bool rather than an int and by adding a comment about it to ptrace.h for any future callers. Signed-off-by: Stephen Smalley Acked-by: Chris Wright Signed-off-by: James Morris commit 0bb08241ce68aaa70b7b804b4d6319d8bad3ae24 Author: Nick Andrew Date: Tue May 20 01:43:47 2008 +0200 Tighten up the use of loose 'Lose' is when you don't win or you've lost something, and 'loose' is when something isn't tight. I just want to tighten up the spelling a bit regarding some loose comments. Signed-off-by: Nick Andrew Signed-off-by: Jesper Juhl commit f5888917969f57f2356cd24351d7beb1ba623310 Author: James Morris Date: Tue May 20 09:42:33 2008 +1000 SELinux: remove inherit field from inode_security_struct Remove inherit field from inode_security_struct, per Stephen Smalley: "Let's just drop inherit altogether - dead field." Signed-off-by: James Morris commit 7e6df0e639188968679471f1a2cc751f1da37014 Author: Uwe Kleine-König Date: Tue May 20 01:24:15 2008 +0200 Fix typo "kernal" -> "kernel" in fs/proc/nommu.c Signed-off-by: Uwe Kleine-König Signed-off-by: Jesper Juhl commit d308e938de0443851933e592172eddfacf4de308 Author: Uwe Kleine-König Date: Tue May 20 01:21:22 2008 +0200 fix typo "thier" -> "their" in drivers/base/sys.c Signed-off-by: Uwe Kleine-König Signed-off-by: Jesper Juhl commit 465e9575fef94afb574b77f4bc7cf58f60104dbb Author: Jesper Juhl Date: Tue May 20 01:19:14 2008 +0200 Update Trivial tree details in Chinese translation of SubmittingPatches. Signed-off-by: Jesper Juhl commit 9409d492a0f51498f6c471f7bda56ae1d74de2ea Author: Jesper Juhl Date: Tue May 20 01:18:32 2008 +0200 Update Trivial tree details in Japanese translation of SubmittingPatches. Signed-off-by: Jesper Juhl commit 83eef286fabf1f1890ef003c310554a5cb2a46d4 Author: Venkatesh Pallipadi Date: Mon May 19 19:09:27 2008 -0400 cpuidle acpi driver: fix oops on AC<->DC cpuidle and acpi driver interaction bug with the way cpuidle_register_driver() is called. Due to this bug, there will be oops on AC<->DC on some systems, where they support C-states in one DC and not in AC. The current code does ON BOOT: Look at CST and other C-state info to see whether more than C1 is supported. If it is, then acpi processor_idle does a cpuidle_register_driver() call, which internally enables the device. ON CST change notification (AC<->DC) and on suspend-resume: acpi driver temporarily disables device, updates the device with any new C-states, and reenables the device. The problem is is on boot, there are no C2, C3 states supported and we skip the register. Later on AC<->DC, we may get a CST notification and we try to reevaluate CST and enabled the device, without actually registering it. This causes breakage as we try to create /sys fs sub directory, without the parent directory which is created at register time. Thanks to Sanjeev for reporting the problem here. http://bugzilla.kernel.org/show_bug.cgi?id=10394 Signed-off-by: Venkatesh Pallipadi Signed-off-by: Len Brown commit 48adcf148c83faa41999fb0b3524299c4e160fd9 Author: Adrian Bunk Date: Tue May 20 01:03:16 2008 +0300 [CPUFREQ] cpufreq: remove CVS keywords This patch removes CVS keywords that weren't updated for a long time from comments. Signed-off-by: Adrian Bunk Signed-off-by: Dave Jones commit 7a6aedfac98c6d54ecf97ca1ffb1e6a1f3d26aea Author: Mike Travis Date: Tue Mar 25 15:06:53 2008 -0700 [CPUFREQ] change cpu freq arrays to per_cpu variables Change cpufreq_policy and cpufreq_governor pointer tables from arrays to per_cpu variables in the cpufreq subsystem. Also some minor complaints from checkpatch.pl fixed. Based on: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git Signed-off-by: Mike Travis Signed-off-by: Dave Jones commit 34ac2573e88c4f80fc5e219d8012ea383a788803 Author: Pavel Emelyanov Date: Mon May 19 13:53:30 2008 -0700 ipv6: Register some net/ipv6/ core sysctls at read-only root. There are some sysctls left to be switched to read-only, but they are all in ipv6, so complete with them. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit 7d291ebb834278e30c211b26fb7076adcb636ad9 Author: Pavel Emelyanov Date: Mon May 19 13:53:02 2008 -0700 inet: Register fragmentation some ctls at read-only root. Parts of fragments-related sysctls are read-only, but this is done by cloning all the tables and dropping write-bits from mode. Do the same but with read-only root. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit 0002c630c4ee7a3c6b1d87e34bfd6ce9694b49be Author: Pavel Emelyanov Date: Mon May 19 13:52:28 2008 -0700 ipv6: In fragmentation code, handle error returned from register_pernet_subsys. The error code is ignored now, but ipv6 is a module and one can be loaded under memory pressure, so the error may occur (in theory). Besides, I'm going to handle error returned from registering a read-only part of the table, so ignoring this one, while handing the other one would look strange. (However, this possibility of error is rather small, so I'm not sure whether this is a candidate for current net tree). Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit 0a64b4b811025ce0386ad84d81504e4ff7985856 Author: Pavel Emelyanov Date: Mon May 19 13:51:29 2008 -0700 inet: Rename fragmentation sysctl-related functions/variables. The fragments sysctls also contains some, that are to be visible, but read-only in net namespaces. The naming in net/core/sysctl_net_core.c is - tables, that are to be registered in namespaces have a "ns" word in their names. So rename ones in ipv4/ip_fragment.c and ipv6/reassembly.c to fit this. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit d5a4502e9efa534212484fd691339f6469cf95ff Author: Pavel Emelyanov Date: Mon May 19 13:49:52 2008 -0700 netns: Register net/core/ sysctls at read-only root. Most of the net/core/xxx sysctls are read-only now, but this goal is achieved with excessive memory consumption in each namespace - the whole table is cloned and most of the entries in it are ~= 0222. Split it into two parts and register (the largest) one at the read-only root. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit d62c612ef8a66be534a3ada598cfa28d40cd0b3c Author: Pavel Emelyanov Date: Mon May 19 13:45:33 2008 -0700 netns: Introduce sysctl root for read-only net sysctls. This one stores all ctl-heads in one list and restricts the permissions not give write access to non-init net namespaces. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit 5b06c85c3b96fa8db632f1ee94f99a2bd0215f3a Author: Allan Stephens Date: Mon May 19 13:30:13 2008 -0700 tipc: Cosmetic cleanup of topology service code This patch contains a set of cosmetic changes to TIPC's network topology service subsystem, including: - updates to comments (including copyright dates) - re-ordering structure fields to group them more logically - removal of optional debugging code that is no longer required - minor changes to whitespace to conform to Linux coding conventions Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 28353e7fad1d224687220a448950dc552645a50a Author: Allan Stephens Date: Mon May 19 13:29:47 2008 -0700 tipc: Consolidate subscriber & subscriber port references This patch modifies TIPC's network topology service so that it only requires a single reference table entry per subscriber connection, rather than two. This is achieved by letting the reference to the server port communicating with the subscriber act as the reference to the subscriber object itself. (Since the subscriber cannot exist without its port, and vice versa, this dual role for the reference is perfectly natural.) This consolidation reduces the size of the reference table by 50% in the default configuration. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit fc5ad582709ce9c7b9ab7b70c1e5b5e2cfc384db Author: Allan Stephens Date: Mon May 19 13:29:06 2008 -0700 tipc: Fix bug in topology server byte swapping routine This patch fixes TIPC's topology server so that it does byte swapping correctly when endianness conversion is required. (Note: This bug only impacted an application if it issues a subscription request to a topology server on another node, rather than the server on it's own node; since the topology server is normally not accessible by off-node applications, most TIPC applications were not impacted by the bug.) Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 8e9501f5188d90eed737240453c32cad01849c96 Author: Allan Stephens Date: Mon May 19 13:28:32 2008 -0700 tipc: Add support for customized subscription endianness This patch enables TIPC's topology server code to do customized endianness conversions on a per-subscription basis. (This capability is needed to support the upcoming consolidation of subscriber and subscription object references.) Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit e15f880409c807bb589e9492263564e80f0de6e9 Author: Allan Stephens Date: Mon May 19 13:27:31 2008 -0700 tipc: Add support for customized subscription overlap handling This patch enables TIPC's topology server code to do customized overlap detection handling on a per-subscription basis. (This capability is needed to support the upcoming introduction of multi-cluster TIPC networks.) Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 164f563d9c67eb94d47a8418ab37c8930e4bc475 Author: Stefan Richter Date: Sun May 11 00:37:14 2008 +0200 ieee1394: sbp2: spin disks down on suspend and shutdown This instructs sd_mod to send START STOP UNIT on suspend and resume, and on driver unbinding or unloading (including when the system is shut down). We don't do this though if multiple initiators may log in to the target. Signed-off-by: Stefan Richter commit daf48a34e0a8ca045ed4ec7a8defbc0042ef7cb8 Author: Stefan Richter Date: Sun May 11 00:36:47 2008 +0200 firewire: fw-sbp2: spin disks down on suspend and shutdown This instructs sd_mod to send START STOP UNIT on suspend and resume, and on driver unbinding or unloading (including when the system is shut down). We don't do this though if multiple initiators may log in to the target. Signed-off-by: Stefan Richter Tested-by: Tino Keitel commit bce2b0e1daba6280f98104b1a1cbc5d6e3b2b83f Author: Stefan Richter Date: Sun May 11 00:35:55 2008 +0200 ieee1394: sbp2: fix spindown for PL-3507 and TSB42AA9 firmwares Reported by Tino Keitel: PL-3507 with firmware from Prolific does not spin down the disk on START STOP UNIT with power condition = 0 and start = 0. It does however work with power condition = 2 or 3. Also found while investigating this: DViCO Momobay CX-1 and FX-3A (TI TSB42AA9/A based) become unresponsive after START STOP UNIT with power condition = 0 and start = 0. They stay responsive if power condition is set when stopping the motor. Signed-off-by: Stefan Richter commit 4098e68ed5694c97ae18da52091dd302d3cfaea3 Author: Stefan Richter Date: Sun May 11 00:35:04 2008 +0200 firewire: fw-sbp2: fix spindown for PL-3507 and TSB42AA9 firmwares Reported by Tino Keitel: PL-3507 with firmware from Prolific does not spin down the disk on START STOP UNIT with power condition = 0 and start = 0. It does however work with power condition = 2 or 3. Also found while investigating this: DViCO Momobay CX-1 and FX-3A (TI TSB42AA9/A based) become unresponsive after START STOP UNIT with power condition = 0 and start = 0. They stay responsive if power condition is set when stopping the motor. Signed-off-by: Stefan Richter Tested-by: Tino Keitel commit 94aaf67d6d990d447c16d66042428871276ace5e Author: Stefan Richter Date: Sun May 11 00:34:07 2008 +0200 scsi: sd: optionally set power condition in START STOP UNIT Adds a new scsi_device flag, start_stop_pwr_cond: If enabled, the sd driver will not send plain START STOP UNIT commands but ones with the power condition field set to 3 (standby) or 1 (active) respectively. Some FireWire disk firmwares do not stop the motor if power condition is zero. Or worse, they become unresponsive after a START STOP UNIT with power condition = 0 and start = 0. http://lkml.org/lkml/2008/4/29/704 This patch only adds the necessary code to sd_mod but doesn't activate it. Follow-up patches to the FireWire drivers will add detection of affected devices and enable the code for them. I did not add power condition values to scsi_error.c::scsi_eh_try_stu() for now. The three firmwares which suffer from above mentioned problems do not need START STOP UNIT in the error handler, and they are not adversely affected by START STOP UNIT with power condition = 0 and start = 1 (like scsi_eh_try_stu() sends it if scsi_device.allow_restart is enabled). Signed-off-by: Stefan Richter Tested-by: Tino Keitel commit 284d115ec9b70d7c38752d10ad393a198db07a4b Author: Russell King Date: Sun Apr 20 17:32:16 2008 +0100 [ARM] pxa: separate PXA25x and PXA27x UDC register definitions The PXA25x and PXA27x USB device controller register definitions are different. Currently, they live side by side in pxa-regs.h, but only one set is available depending on the setting of PXA25x or PXA27x. This means that if we build to support both PXA25x and PXA27x, the PXA27x definitions are unavailable, even to PXA27x specific code. Remove these definitions from pxa-regs.h, and place them in separate files. Include these files where appropriate. Note: according to the dependencies in drivers/usb/gadget/Kconfig, we do not support the UDC on PXA27x nor PXA3xx CPUs, so remove the platform devices from pxa27x.c and pxa3xx.c. Signed-off-by: Russell King commit 02a8e76979f9b439642e67955edb865c112926f6 Author: Russell King Date: Sun Apr 20 17:15:32 2008 +0100 [ARM] pxa: corgibl_limit_intensity build errors If CONFIG_BACKLIGHT_CORGI is not selected, then corgibl_limit_intensity() is not present. However, both corgi_pm.c and sharp_pm.c reference this symbol, resulting in a link error. Wrap the references with the relevant ifdefs, and avoid the resulting NULL pointer dereference by making the code in sharpsl_pm.c also conditional on the config symbol. Signed-off-by: Russell King commit 430b13f4ef8b2b96d6d11bdec5fbd60f3e1efb81 Author: Russell King Date: Sun May 18 13:11:02 2008 +0100 [ARM] pxa: make LogicPD 270 use the generic PWM backlight driver Acked-by: Lennert Buytenhek Signed-off-by: Russell King commit da190753a24ae0789d57b204a3c806c472acf1ad Author: Russell King Date: Sun Apr 13 21:47:01 2008 +0100 [ARM] pxa: make mainstone use the generic PWM backlight driver Signed-off-by: Russell King commit f563265ddb943589a2a3bf920be352acde476522 Author: eric miao Date: Sun Apr 13 21:46:34 2008 +0100 [ARM] pxa: make zylonite use the generic PWM backlight driver Patch mostly by Eric Miao, minor edits by rmk. Signed-off-by: eric miao Signed-off-by: Russell King commit b137c7086e4130685df73e967b6774f1d02f8686 Author: eric miao Date: Mon Apr 14 09:35:08 2008 +0100 [ARM] pxa: add generic PWM backlight driver Patch mostly from Eric Miao, with minor edits by rmk to convert Eric's driver to a generic PWM-based backlight driver. Signed-off-by: eric miao Signed-off-by: Russell King commit 75540c1ac3c7bd72ac8e092058f9714875239995 Author: eric miao Date: Sun Apr 13 21:44:04 2008 +0100 [ARM] pxa: Add PXA support for PWM API Patch mainly from Eric Miao, with minor edits by rmk. Note: PWM0 and PWM2 share the same register I/O space and clock gating on pxa{27x, 3xx}, thus PWM2 is treated in the driver as a child PWM of PWM0. And this is also true for PWM1/3. Signed-off-by: eric miao Signed-off-by: Russell King commit 1a189b97190d3f0f8cf0379a799d3555b2d648bb Author: Russell King Date: Sun Apr 13 21:41:55 2008 +0100 [ARM] pxa: Add bare bones PWM API Signed-off-by: Russell King commit 711bbdd659b685b45d3f28b29a00f17be6484f38 Author: Ingo Molnar Date: Sat May 17 08:26:25 2008 +0200 rculist.h: fix include in net/netfilter/nf_conntrack_netlink.c this file has rculist dependency but did not explicitly include it, which broke the build. Signed-off-by: Ingo Molnar commit 247ab1a80595100bd7ea61d174f8b7b7e5f8d4bb Author: Huang Weiyi Date: Wed May 14 16:23:00 2008 -0700 rcu: remove duplicated include in kernel/rcupreempt.c Removed duplicated include file in kernel/rcupreempt.c. Signed-off-by: Huang Weiyi Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit e19a98967f49cb63352b3db4818983ea2cec24ba Author: Huang Weiyi Date: Wed May 14 16:23:00 2008 -0700 rcu: remove duplicated include in kernel/rcupreempt_trace.c Removed duplicated include file in kernel/rcupreempt_trace.c Signed-off-by: Huang Weiyi Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 78b0e0e9b27b62c4b22f05a147f7a80fa58b1ae3 Author: Paul E. McKenney Date: Mon May 12 21:21:06 2008 +0200 RCU, rculist.h: fix list iterators RCU list iterators: should prefetch ever be optimised out with no side-effects, the current version will lose the barrier completely. Pointed-out-by: Linus Torvalds Signed-off-by: Paul E. McKenney Signed-off-by: Ingo Molnar commit d7c0651390b6a03ad53f99faec0ba88109d7191d Author: Paul E. McKenney Date: Mon May 12 21:21:06 2008 +0200 rcu: fix rcu_try_flip_waitack_needed() to prevent grace-period stall The comment was correct -- need to make the code match the comment. Without this patch, if a CPU goes dynticks idle (and stays there forever) in just the right phase of preemptible-RCU grace-period processing, grace periods stall. The offending sequence of events (courtesy of Promela/spin, at least after I got the liveness criterion coded correctly...) is as follows: o CPU 0 is in dynticks-idle mode. Its dynticks_progress_counter is (say) 10. o CPU 0 takes an interrupt, so rcu_irq_enter() increments CPU 0's dynticks_progress_counter to 11. o CPU 1 is doing RCU grace-period processing in rcu_try_flip_idle(), sees rcu_pending(), so invokes dyntick_save_progress_counter(), which in turn takes a snapshot of CPU 0's dynticks_progress_counter into CPU 0's rcu_dyntick_snapshot -- now set to 11. CPU 1 then updates the RCU grace-period state to rcu_try_flip_waitack(). o CPU 0 returns from its interrupt, so rcu_irq_exit() increments CPU 0's dynticks_progress_counter to 12. o CPU 1 later invokes rcu_try_flip_waitack(), which notices that CPU 0 has not yet responded, and hence in turn invokes rcu_try_flip_waitack_needed(). This function examines the state of CPU 0's dynticks_progress_counter and rcu_dyntick_snapshot variables, which it copies to curr (== 12) and snap (== 11), respectively. Because curr!=snap, the first condition fails. Because curr-snap is only 1 and snap is odd, the second condition fails. rcu_try_flip_waitack_needed() therefore incorrectly concludes that it must wait for CPU 0 to explicitly acknowledge the counter flip. o CPU 0 remains forever in dynticks-idle mode, never taking any more hardware interrupts or any NMIs, and never running any more tasks. (Of course, -something- will usually eventually happen, which might be why we haven't seen this one in the wild. Still should be fixed!) Therefore the grace period never ends. Fix is to make the code match the comment, as shown below. With this fix, the above scenario would be satisfied with curr being even, and allow the grace period to proceed. Signed-off-by: Paul E. McKenney Cc: Peter Zijlstra Cc: Josh Triplett Cc: Dipankar Sarma Cc: Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 10aa9d2cf9878757b003023d33ff90a37aa3044b Author: Franck Bui-Huu Date: Mon May 12 21:21:06 2008 +0200 rculist.h: use the rcu API Make almost all list mutation primitives use rcu_assign_pointer(). The main point of this being readability improvement. Signed-off-by: Franck Bui-Huu Cc: "Paul E. McKenney" Cc: Josh Triplett Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 82524746c27fa418c250a56dd7606b9d3fc79826 Author: Franck Bui-Huu Date: Mon May 12 21:21:05 2008 +0200 rcu: split list.h and move rcu-protected lists into rculist.h Move rcu-protected lists from list.h into a new header file rculist.h. This is done because list are a very used primitive structure all over the kernel and it's currently impossible to include other header files in this list.h without creating some circular dependencies. For example, list.h implements rcu-protected list and uses rcu_dereference() without including rcupdate.h. It actually compiles because users of rcu_dereference() are macros. Others RCU functions could be used too but aren't probably because of this. Therefore this patch creates rculist.h which includes rcupdates without to many changes/troubles. Signed-off-by: Franck Bui-Huu Acked-by: Paul E. McKenney Acked-by: Josh Triplett Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 32300751b4079cb5688453baa94711579d4285d5 Author: Paul E. McKenney Date: Mon May 12 21:21:05 2008 +0200 sched: 1Q08 RCU doc update, add call_rcu_sched() Long-delayed update to the RCU documentation, including adding the new call_rcu_sched() and rcu_barrier_sched() APIs. Signed-off-by: Paul E. McKenney Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2326974df29988181b6b69ed6fbf42b17adf916f Author: Paul E. McKenney Date: Mon May 12 21:21:05 2008 +0200 rcu: add call_rcu_sched() and friends to rcutorture Add entry to rcu_torture_ops allowing the correct barrier function to be used upon exit from rcutorture. Also add torture options for the new call_rcu_sched() API. Signed-off-by: Paul E. McKenney Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 70f12f848d3e981479b4f6f751e73c14f7c13e5b Author: Paul E. McKenney Date: Mon May 12 21:21:05 2008 +0200 rcu: add rcu_barrier_sched() and rcu_barrier_bh() Add rcu_barrier_sched() and rcu_barrier_bh(). With these in place, rcutorture no longer gives the occasional oops when repeatedly starting and stopping torturing rcu_bh. Also adds the API needed to flush out pre-existing call_rcu_sched() callbacks. Signed-off-by: Paul E. McKenney Signed-off-by: Mathieu Desnoyers Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8db559b83009bed92e1b5dd13a651ff273d9ff62 Author: Paul E. McKenney Date: Mon May 12 21:21:05 2008 +0200 rcu: add memory barriers and comments to rcu_check_callbacks() Add comments to the logic that infers quiescent states when interrupting from either user mode or the idle loop. Also add a memory barrier: it appears that James Huang was in fact onto something, as the scheduler is much less synchronization happy than it once was, so we can no longer rely on its memory barriers in all cases. Signed-off-by: Paul E. McKenney Reported-by: James Huang Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 4446a36ff8c74ac3b32feb009b651048e129c6af Author: Paul E. McKenney Date: Mon May 12 21:21:05 2008 +0200 rcu: add call_rcu_sched() Fourth cut of patch to provide the call_rcu_sched(). This is again to synchronize_sched() as call_rcu() is to synchronize_rcu(). Should be fine for experimental and -rt use, but not ready for inclusion. With some luck, I will be able to tell Andrew to come out of hiding on the next round. Passes multi-day rcutorture sessions with concurrent CPU hotplugging. Fixes since the first version include a bug that could result in indefinite blocking (spotted by Gautham Shenoy), better resiliency against CPU-hotplug operations, and other minor fixes. Fixes since the second version include reworking grace-period detection to avoid deadlocks that could happen when running concurrently with CPU hotplug, adding Mathieu's fix to avoid the softlockup messages, as well as Mathieu's fix to allow use earlier in boot. Fixes since the third version include a wrong-CPU bug spotted by Andrew, getting rid of the obsolete synchronize_kernel API that somehow snuck back in, merging spin_unlock() and local_irq_restore() in a few places, commenting the code that checks for quiescent states based on interrupting from user-mode execution or the idle loop, removing some inline attributes, and some code-style changes. Known/suspected shortcomings: o I still do not entirely trust the sleep/wakeup logic. Next step will be to use a private snapshot of the CPU online mask in rcu_sched_grace_period() -- if the CPU wasn't there at the start of the grace period, we don't need to hear from it. And the bit about accounting for changes in online CPUs inside of rcu_sched_grace_period() is ugly anyway. o It might be good for rcu_sched_grace_period() to invoke resched_cpu() when a given CPU wasn't responding quickly, but resched_cpu() is declared static... This patch also fixes a long-standing bug in the earlier preemptable-RCU implementation of synchronize_rcu() that could result in loss of concurrent external changes to a task's CPU affinity mask. I still cannot remember who reported this... Signed-off-by: Paul E. McKenney Signed-off-by: Mathieu Desnoyers Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8b09dee67f484e9b42114b1a1f068e080fd7aa56 Author: Steven Rostedt Date: Mon May 12 21:21:05 2008 +0200 rcupreempt: remove duplicate prototypes rcu_batches_completed and rcu_patches_completed_bh are both declared in rcuclassic.h and rcupreempt.h. This patch removes the extra prototypes for them from rcupdate.h. rcu_batches_completed_bh is defined as a static inline in the rcupreempt.h header file. Trying to export this as EXPORT_SYMBOL_GPL causes linking problems with the powerpc linker. There's no need to export a static inlined function. Modules must be compiled with the same type of RCU implementation as the kernel they are for. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar commit 97aea49c9a802207f4b48140461718c095772412 Author: Lachlan McIlroy Date: Mon May 19 16:34:49 2008 +1000 [XFS] xfs_dm_rdwr() needs to pass a vfsmount to dentry_open() We need a vfsmount pointer in xfs_dm_rdwr() but we are not provided with one and there's no way to get to it. So add a m_vfsmount field to the xfs_mount structure and set it up at mount time. We can then access it through the xfs inode. SGI-PV: 981875 SGI-Modid: xfs-linux-melb:xfs-kern:31176a Signed-off-by: Lachlan McIlroy Signed-off-by: David Chinner commit a7ddc9b2ce2a21fd7c764880e382eadf1ec7897b Author: Christoph Hellwig Date: Mon May 19 16:34:42 2008 +1000 [XFS] Fix memory corruption with small buffer reads When we have multiple buffers in a single page for a blocksize == pagesize filesystem we might overwrite the page contents if two callers hit it shortly after each other. To prevent that we need to keep the page locked until I/O is completed and the page marked uptodate. Thanks to Eric Sandeen for triaging this bug and finding a reproducible testcase and Dave Chinner for additional advice. This should fix kernel.org bz #10421. Tested-by: Eric Sandeen SGI-PV: 981813 SGI-Modid: xfs-linux-melb:xfs-kern:31173a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit e3e429d132f35853973986645ec3f317ee5e529b Author: Christoph Hellwig Date: Mon May 19 16:34:34 2008 +1000 [XFS] Kill attr_capable checks as already done in xattr_permission. No need for addition permission checks in the xattr handler, fs/xattr.c:xattr_permission() already does them, and in fact slightly more strict then what was in the attr_capable handlers. SGI-PV: 981809 SGI-Modid: xfs-linux-melb:xfs-kern:31164a Signed-off-by: Christoph Hellwig Signed-off-by: Tim Shimmin Signed-off-by: Lachlan McIlroy commit 5a875300cea98641be26186567d0849ae9a4e458 Author: Matthew Wilcox Date: Mon May 19 16:34:27 2008 +1000 [XFS] Convert l_flushsema to a sv_t The l_flushsema doesn't exactly have completion semantics, nor mutex semantics. It's used as a list of tasks which are waiting to be notified that a flush has completed. It was also being used in a way that was potentially racy, depending on the semaphore implementation. By using a sv_t instead of a semaphore we avoid the need for a separate counter, since we know we just need to wake everything on the queue. Original waitqueue implementation from Matthew Wilcox. Cleanup and conversion to sv_t by Christoph Hellwig. SGI-PV: 981507 SGI-Modid: xfs-linux-melb:xfs-kern:31059a Signed-off-by: Matthew Wilcox Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 9641d1a6027175b6e3b43580f62ab0a3e4a95e91 Author: Michael Nishimoto Date: Mon May 19 16:34:20 2008 +1000 [XFS] Ensure that 2 GiB xfs logs work properly. We found this while experimenting with 2GiB xfs logs. The previous code never assumed that xfs logs would ever get so large. SGI-PV: 981502 SGI-Modid: xfs-linux-melb:xfs-kern:31058a Signed-off-by: Michael Nishimoto Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 4fec9a9ec9fff141f72c20abccea8c62bea0a55f Author: Denys Vlasenko Date: Mon May 19 16:34:11 2008 +1000 [XFS] Remove unused wbc parameter from xfs_start_page_writeback() SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31057a Signed-off-by: Denys Vlasenko Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 63f6a276b44348fde4be3d6e2956303730f0462c Author: Denys Vlasenko Date: Mon May 19 16:34:04 2008 +1000 [XFS] Remove unused Falgs parameter from xfs_qm_dqpurge() SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31056a Signed-off-by: Denys Vlasenko Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 85e221e6b1d0c4ccf9b17362eab440523bb3ae25 Author: Denys Vlasenko Date: Mon May 19 16:31:57 2008 +1000 [XFS] Remove unused arg from kmem_free() kmem_free() function takes (ptr, size) arguments but doesn't actually use second one. This patch removes size argument from all callsites. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31050a Signed-off-by: Denys Vlasenko Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 8d294a25e06677aba135846a68e3304ba2eeb12f Author: David Chinner Date: Mon May 19 16:29:46 2008 +1000 [XFS] Fix fsync() b0rkage. xfs_fsync() fails to wait for data I/O completion before checking if the inode is dirty or clean to decide whether to log the inode or not. This misses inode size updates when the data flushed by the fsync() is extending the file. Hence, like fdatasync(), we need to wait for I/o completion first, then check the inode for cleanliness. Doing so makes the behaviour of xfs_fsync() identical for fsync and fdatasync and we *always* use synchronous semantics if the inode is dirty. Therefore also kill the differences and remove the unused flags from the xfs_fsync function and callers. SGI-PV: 981296 SGI-Modid: xfs-linux-melb:xfs-kern:31033a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 97027e0fea140ec4ead1c69b52413b267911f77e Author: David Chinner Date: Mon May 19 16:29:34 2008 +1000 [XFS] Don't allow memory reclaim to wait on the filesystem in inode writeback If we allow memory reclaim to wait on the pages under writeback in inode cluster writeback we could deadlock because we are currently holding the ILOCK on the initial writeback inode which is needed in data I/O completion to change the file size or do unwritten extent conversion before the pages are taken out of writeback state. SGI-PV: 981091 SGI-Modid: xfs-linux-melb:xfs-kern:31015a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit b42ab1bf9b2f4e70ed246f075c4bc4f52687e48e Author: J. Bruce Fields Date: Mon May 5 17:17:44 2008 -0400 nfsd: add dprintk of compound return We already print each operation of the compound when debugging is turned on; printing the result could also help with remote debugging. Signed-off-by: J. Bruce Fields commit f001cca35a4dce95b82db6a3e130d4f90bdb0a27 Author: Kevin Coffman Date: Wed Apr 30 12:46:08 2008 -0400 gss_krb5: Use random value to initialize confounder Initialize the value used for the confounder to a random value rather than starting from zero. Allow for confounders of length 8 or 16 (which will be needed for AES). Signed-off-by: Kevin Coffman Signed-off-by: J. Bruce Fields commit 767b4b6b4f2a6a282deb18c2c80f070e32b70f52 Author: Kevin Coffman Date: Wed Apr 30 12:46:03 2008 -0400 rpcauth: update and document available space in xdr_buf when doing privacy Make the client and server code consistent regarding the extra buffer space made available for the auth code when wrapping data. Add some comments/documentation about the available buffer space in the xdr_buf head and tail when gss_wrap is called. Add a compile-time check to make sure we are not exceeding the available buffer space. Add a central function to shift head data. Signed-off-by: Kevin Coffman Signed-off-by: J. Bruce Fields commit 784f076ec95613d0b126b4fd8d2bbc486d8be966 Author: Kevin Coffman Date: Wed Apr 30 12:45:58 2008 -0400 gss_krb5: move gss_krb5_crypto into the krb5 module The gss_krb5_crypto.o object belongs in the rpcsec_gss_krb5 module. Also, there is no need to export symbols from gss_krb5_crypto.c Signed-off-by: Kevin Coffman Signed-off-by: J. Bruce Fields commit 0a470e3e54ba71d4bac8f7ca4c9b3b01c9434cb5 Author: Kevin Coffman Date: Wed Apr 30 12:45:53 2008 -0400 gss_krb5: create a define for token header size and clean up ptr location cleanup: Document token header size with a #define instead of open-coding it. Don't needlessly increment "ptr" past the beginning of the header which makes the values passed to functions more understandable and eliminates the need for extra "krb5_hdr" pointer. Clean up some intersecting white-space issues flagged by checkpatch.pl. This leaves the checksum length hard-coded at 8 for DES. A later patch cleans that up. Signed-off-by: Kevin Coffman Signed-off-by: J. Bruce Fields commit b55e0ba19cd2d83317a7f1dbb626080951442ab3 Author: J. Bruce Fields Date: Mon Apr 28 18:22:50 2008 -0400 nfsd: remove unnecessary atomic ops These bit operations don't need to be atomic. They're all done under a single big mutex anyway. Signed-off-by: J. Bruce Fields commit d94fefd3297c51a5442724785cae8fa5d94589ae Author: Richard Kennedy Date: Sun May 18 12:32:57 2008 +0100 SELinux: reorder inode_security_struct to increase objs/slab on 64bit reorder inode_security_struct to remove padding on 64 bit builds size reduced from 72 to 64 bytes increasing objects per slab to 64. Signed-off-by: Richard Kennedy Signed-off-by: James Morris commit 073a0be2834d92d40a929d56340710fdef41e169 Author: Jonathan Corbet Date: Fri May 16 13:54:46 2008 -0600 raw: BKL pushdown Put explicit lock_kernel() calls into raw_open(), even though the existing locking looks adequate. Signed-off-by: Jonathan Corbet commit a017f76d9e2adfbd0a0d2477311a7ee7f96212a6 Author: Jonathan Corbet Date: Fri May 16 13:53:00 2008 -0600 tlckl: BKL pushdown Put explicit lock_kernel calls into tlclk_open() Signed-off-by: Jonathan Corbet commit 1350481dba3e22ba5fbedeff1bbd0fe09e380210 Author: Jonathan Corbet Date: Fri May 16 13:50:20 2008 -0600 xilinx icap: BKL pushdown Add explicit lock_kernel() calls to hwicap_open() even though the existing locking looks adequate. Signed-off-by: Jonathan Corbet commit 1779aa5b1b70444bc829254e7eef83813806d001 Author: Jonathan Corbet Date: Fri May 16 13:47:50 2008 -0600 vcs: BKL pushdown Add explicit BKL to vcs_open(). Signed-off-by: Jonathan Corbet commit df5fe9cad87511162ea27840e627f02e9817503c Author: Jonathan Corbet Date: Fri May 16 13:46:14 2008 -0600 spidev: BKL pushdown Add the BKL to spidev_open(), even though the existing locking looks adequate. Signed-off-by: Jonathan Corbet commit 53129d7d3323be15181c4f1a1e4ca6e44e7faff7 Author: Jonathan Corbet Date: Fri May 16 13:40:30 2008 -0600 Add "no BKL needed" comments to several drivers This documents the fact that somebody looked at the relevant open() functions and concluded that, due to their trivial nature, no locking was needed. Signed-off-by: Jonathan Corbet commit e47aff8b5e42e97028e6812527434ae33d9cc721 Author: Jonathan Corbet Date: Fri May 16 09:10:50 2008 -0600 tty: cdev lock_kernel() pushdown Parts of the serial code actually BUG() if we don't do this. commit ecede00f3dbaa7537e0d64eaa4cff1ed4687bf9f Author: Jonathan Corbet Date: Thu May 15 16:44:14 2008 -0600 snsc: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit b98f2c76793033aa66d6936c7cd189dca6ace113 Author: Jonathan Corbet Date: Thu May 15 16:39:03 2008 -0600 sound: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit ca9d8b2f3e8da383e59b8f54b86d5e95bc27d1fb Author: Jonathan Corbet Date: Thu May 15 16:30:36 2008 -0600 fbmem: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 41ea84cd66302d1224ee2d429f60cfc21ab657b7 Author: Jonathan Corbet Date: Thu May 15 16:26:57 2008 -0600 dvb: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 85f1702fd128a918d25a08fb010f3e2749bacab3 Author: Jonathan Corbet Date: Thu May 15 16:24:25 2008 -0600 usbcore: cdev lock_kernel() pushdown usb_open() is protected by a down_read(&minor_rwsem), but I'm not sure I trust it to protect everything including subsidiary open() functions. Signed-off-by: Jonathan Corbet commit cad4c68489a67f87ccf16590faff7a62eb6f2a8b Author: Jonathan Corbet Date: Thu May 15 16:16:28 2008 -0600 isdn: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 9afa1851c0f398da71859e4c4a8007b48a19f9f6 Author: Jonathan Corbet Date: Thu May 15 16:09:48 2008 -0600 gdth: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 1745c7824577beca859e9b4cc5625e62675919f2 Author: Jonathan Corbet Date: Thu May 15 16:08:15 2008 -0600 st: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit ff65cf3599c206ac685e620d911be34fc6e275e0 Author: Jonathan Corbet Date: Thu May 15 16:01:47 2008 -0600 aacraid: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 8a52947db9500bc69e375d700a8a03e218367575 Author: Jonathan Corbet Date: Thu May 15 12:23:19 2008 -0600 osst: cdev lock_kernel() pushdown. Signed-off-by: Jonathan Corbet commit b45257c072a18c3b2a38a676cafc0ab55d3d44bd Author: Jonathan Corbet Date: Thu May 15 12:22:06 2008 -0600 sg: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 3d843ab571d75de722ef9c0c390abc1b8466fd00 Author: Jonathan Corbet Date: Thu May 15 12:01:56 2008 -0600 ide-tape: cdev lock_kernel() pushdown ->release() already has explicit lock_kernel() calls... Signed-off-by: Jonathan Corbet commit f60ba5261bf90f546a8be16afc11fd60636d53de Author: Jonathan Corbet Date: Thu May 15 11:58:31 2008 -0600 phonedev: cdev lock_kernel() pushdown phone_open() looks OK, but I don't trust the subsidiary drivers (and ixj in particular). Signed-off-by: Jonathan Corbet commit 270b85108ff3920f67f873eae108217f4e51b853 Author: Jonathan Corbet Date: Thu May 15 11:34:16 2008 -0600 drm: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit dd15c143b8a9edc9d31788064bc16c3dadf09835 Author: Jonathan Corbet Date: Thu May 15 11:29:38 2008 -0600 lp: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit dc388be1356783d10c2883c6d0e9bcdcaa3eeaae Author: Jonathan Corbet Date: Thu May 15 11:24:23 2008 -0600 mbcs: cdev lock_kernel() pushdown This driver would appear to have no internal locking at all. Signed-off-by: Jonathan Corbet commit 8b80f31184b21021903a710f86bf991489616513 Author: Jonathan Corbet Date: Thu May 15 11:16:21 2008 -0600 viotape: cdev lock_kernel pushdown () Signed-off-by: Jonathan Corbet commit 7e8a447ffa06477d4facdec6e75c4c1b86c6520e Author: Jonathan Corbet Date: Thu May 15 11:07:52 2008 -0600 misc: cdev lock_kernel() pushdown misc_open() looks fine, but who knows what all of the misc drivers are doing in their open() functions? Signed-off-by: Jonathan Corbet commit 4d21f8d557f82fa56d850a2b1f516676d16a3d66 Author: Jonathan Corbet Date: Thu May 15 11:04:19 2008 -0600 mem: cdev lock_kernel() pushdown It's really hard to tell if this is necessary - lots of weird magic happens by way of map_devmem() Signed-off-by: Jonathan Corbet commit dc6ff165efa1f86db221c1b3f0cef137a5e550ef Author: Jonathan Corbet Date: Thu May 15 10:46:49 2008 -0600 ipmi: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit d30f1f9e1f5391a649a4e2ad442c0b76f4e44c32 Author: Jonathan Corbet Date: Thu May 15 10:44:22 2008 -0600 cm40x0: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit db94882bad96fb670d60c87b8b318eafcd5c2d7d Author: Jonathan Corbet Date: Thu May 15 10:39:37 2008 -0600 UIO: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit b094bc32c393e74dd9fe7f779f1e22c13091d2d3 Author: Jonathan Corbet Date: Thu May 15 10:37:16 2008 -0600 Input: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 14aaac175632875281ad88add37f5c8e07fd395c Author: Jonathan Corbet Date: Thu May 15 10:25:44 2008 -0600 HID: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit aabbc0e478bf1e82e7f4a9ec61abb8a1a259175b Author: Jonathan Corbet Date: Thu May 15 10:22:01 2008 -0600 firewire: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit ae2d10a96fd4b3cf93402a3d595dce5481a97756 Author: Jonathan Corbet Date: Thu May 15 10:15:38 2008 -0600 UBI: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit e26df06aff2b001fec745b784ea06ded89bdb7b8 Author: Jonathan Corbet Date: Thu May 15 10:10:37 2008 -0600 mtdchar: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit aa9eebbb1a3c45f90f7aa5d7f4a71748ade589f2 Author: Jonathan Corbet Date: Thu May 15 10:07:56 2008 -0600 paride: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 8197147c9f19883d6ecd79d55eea74c1b8cc6f1c Author: Jonathan Corbet Date: Thu May 15 10:03:09 2008 -0600 AoE: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 059315564b2df7a746bb62c3bd5e69feaa6d950a Author: Jonathan Corbet Date: Thu May 15 10:01:17 2008 -0600 drivers/s390: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit e8d0e4a5f73f466fa45342ddb928918bfb149389 Author: Jonathan Corbet Date: Thu May 15 09:38:18 2008 -0600 rtc: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 8fff9d8cda2b288231fd100333fed26b9bb2042f Author: Jonathan Corbet Date: Thu May 15 09:32:43 2008 -0600 ieee1394: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 0bec0bba7a507bdaf07312fcabdc00b5576abb32 Author: Jonathan Corbet Date: Thu May 15 09:25:03 2008 -0600 pcmcia: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 0911810755fc9f15659cc3cb43912633b90027a0 Author: Jonathan Corbet Date: Thu May 15 09:21:33 2008 -0600 cosa: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 3db633ee352bfe20d4a2b0c3c8a46ce31a6c7149 Author: Jonathan Corbet Date: Thu May 15 09:21:02 2008 -0600 i2c: cdev lock_kernel() pushdown Signed-off-by: Jonathan Corbet commit 5119e92efc733d730b34f9605a5ae61fdc4bf649 Author: Jonathan Corbet Date: Thu May 15 09:12:01 2008 -0600 x86: cdev lock_kernel() pushdown Push the cdev lock_kernel() call down into the x86 msr and cpuid drivers. Signed-off-by: Jonathan Corbet commit 1fa984b583a809423ddb1d88fa46484071f85f80 Author: Jonathan Corbet Date: Thu May 15 09:11:26 2008 -0600 sh: cdev lock_kernel() pushdown Push the cdev lock_kernel() call down into the sh gio driver. Signed-off-by: Jonathan Corbet commit 7558da942e51933b5e6aa5e851d4da1df0cd6752 Author: Jonathan Corbet Date: Thu May 15 09:10:50 2008 -0600 mips: cdev lock_kernel() pushdown Push the cdev lock_kernel() call into MIPS-specific drivers. Signed-off-by: Jonathan Corbet commit 0c401df37ef9f45f35390a5574e24cbf3f916acf Author: Jonathan Corbet Date: Thu May 15 09:10:18 2008 -0600 cris: cdev lock_kernel() pushdown Push the cdev lock_kernel() call into cris drivers. Signed-off-by: Jonathan Corbet commit 75bd2ef1457998791cfc89cd59927574488fc22a Author: Jonathan Corbet Date: Thu May 15 09:09:23 2008 -0600 bsg: cdev lock_kernel() pushdown Push the cdev lock_kernel call into bsg_open(). Signed-off-by: Jonathan Corbet commit 600aace8b2398cab0b22ab9f46ce11ed7d6574d2 Author: Sheng Yang Date: Thu May 15 18:23:25 2008 +0800 KVM: VMX: Enable NMI with in-kernel irqchip Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 9455f6eb00f3d63273c757710adcc6c60affe9c0 Author: Sheng Yang Date: Thu May 15 09:52:48 2008 +0800 KVM: IOAPIC/LAPIC: Enable NMI support Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit e719a3e13514fed2d2e52e44b9250097d7d6868f Author: Avi Kivity Date: Sun May 18 13:50:23 2008 +0300 KVM: Update MAINTAINERS for new mailing lists The KVM mailing lists are now hosted on vger.kernel.org. Also update the website URL. Signed-off-by: Avi Kivity commit dedd4915af40cff6614707c50dcae43d17beadec Author: Ingo Molnar Date: Sat May 17 08:28:33 2008 +0200 bitops: fix build in struct thread_info we can move flags from u32 to natural size - assembly code uses offsetof. Signed-off-by: Ingo Molnar commit 236ae64063faf7d3398b4f9a889421b0d27a69d2 Author: Michael Chan Date: Fri May 16 22:20:59 2008 -0700 bnx2: Update version to 1.7.6. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 10343cca2bad3f9fdad214385bed0a9aadf4ffd4 Author: Benjamin Li Date: Fri May 16 22:20:27 2008 -0700 bnx2: Pre-initialize struct cpu_reg. Instead of assigning values for the struct cpu_reg's at runtime, we already know these values at compile time. Therefore, we can use designated initializers, to initialize these structures and not have to incur this assignment cost at run-time. Signed-off-by: Benjamin Li Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 601d3d18b2c1e4c197aa3cd902fb77bd99c41f10 Author: Benjamin Li Date: Fri May 16 22:19:35 2008 -0700 bnx2: Rename RX_COPY_THRESH to BNX2_RX_COPY_THRESH. To make the bnx2 code more consistent, all instances of RX_COPY_THRESH have been changed to BNX2_RX_COPY_THRESH. Signed-off-by: Benjamin Li Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit d89cb6af41559a601e9cfe081d34de07945b0d8b Author: Benjamin Li Date: Fri May 16 22:18:57 2008 -0700 bnx2: Remove the rx_offset field from the bnx2 structure. The rx_offset field is set to a constant value and initialized only once. By replacing all references to the rx_offset field, we can eliminate rx_offset from the bnx2 structure. This will save 4 bytes for every bnx2 instance. [Added parentheses to the definition of BNX2_RX_OFFSET, as noted by Ben Hutchings.] Signed-off-by: Benjamin Li Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 6ff2da49c8a68320c2564006c94a492db58de5cd Author: Wendy Xiong Date: Fri May 16 22:18:21 2008 -0700 bnx2: Add EEH PCI recovery. Add PCI recovery functions to the driver. The initial pci state is also saved so the the MSI state can be restored during PCI recovery. Signed-off-by: Wendy Xiong Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 9a120bc570627342c17befaa6af9b0a556dfda48 Author: Michael Chan Date: Fri May 16 22:17:45 2008 -0700 bnx2: Allow phy reset to be skipped during chip reset. Andy Gospodarek found that netconsole would panic when resetting bnx2 devices. >From Andy: "The issue is the bnx2_set_link in bnx2_init_nic will print a link-status message before we are fully initialized and ready to start polling. Polling is currently disabled in this state, but since the __LINK_STATE_RX_SCHED is overloaded to not only try and disable polling but also to make the system aware there is something waiting to be polled, we really have to fix this in drivers. The problematic call is the one to netif_rx_complete as it tries to remove an entry from the poll_list when there isn't one." While this netconsole problem should be fixed separately, we really should not reset the PHY when changing ring sizes, MTU, or other similar settings. The PHY reset causes several seconds of unnecessary link disruptions. Signed-off-by: Michael Chan Acked-by: Andy Gospodarek Signed-off-by: David S. Miller commit afd57ee1bf236ffecf4d07309ef2a05de7981205 Author: Stefan Richter Date: Fri May 2 20:14:52 2008 +0200 ieee1394: reduce log noise about config ROM CRC errors This avoids redundant messages about a special and usually harmless firmware flaw. Signed-off-by: Stefan Richter commit d5e5a553062b154caa15b3d164cfeffee0a89928 Author: Al Viro Date: Thu May 15 04:49:12 2008 -0400 [PATCH] return to old errno choice in mkdir() et.al. In case when both EEXIST and EROFS would apply we used to return the former in mkdir(2) and friends. Lest anyone suspects us of being consistent, in the same situation knfsd gave clients nfs_erofs... ro-bind series had switched the syscall side of things to returning -EROFS and immediately broke an application - namely, mkdir -p. Patch restores the original behaviour... Signed-off-by: Al Viro commit 9dfec41c5caad207f4a9542687fac2940925cff1 Author: WANG Cong Date: Thu May 8 21:52:33 2008 +0800 [Patch] fs/binfmt_elf.c: fix wrong return values create_elf_tables() returns 0 on success. But when strnlen_user() "fails", it returns 0 directly. So this is wrong. Signed-off-by: WANG Cong Cc: Alexander Viro Signed-off-by: Al Viro commit 70b99a0c2b36c29865b712d25b97aeb931e3fecb Author: Al Viro Date: Sat May 10 16:38:25 2008 -0400 [PATCH] get rid of leak in compat_execve() Even though copy_compat_strings() doesn't cache the pages, copy_strings_kernel() and stuff indirectly called by e.g. ->load_binary() is doing that, so we need to drop the cache contents in the end. [found by WANG Cong ] Signed-off-by: Al Viro commit 7b8616a934cb1a343b4684b3056cff7bd1dc7498 Author: WANG Cong Date: Tue May 6 12:45:35 2008 +0800 [Patch] fs/binfmt_elf.c: fix a wrong free In kmalloc failing path, we shouldn't free pointers in 'info', because the struct 'info' is uninitilized when kmalloc is called. And when kmalloc returns NULL, it's needless to kfree it. Signed-off-by: WANG Cong Cc: Alexander Viro Reviewed-by: Pekka Enberg -- Signed-off-by: Al Viro commit 5f12804f188a8f2fe6d7fdb5c1b9a4340cfa0458 Author: Al Viro Date: Sat May 10 10:08:32 2008 -0400 [PATCH] avoid multiplication overflows and signedness issues for max_fds Limit sysctl_nr_open - we don't want ->max_fds to exceed MAX_INT and we don't want size calculation for ->fd[] to overflow. Signed-off-by: Al Viro commit dab45878eaf00d512c29ad33887810b6f69ee539 Author: Al Viro Date: Thu May 8 21:19:42 2008 -0400 [PATCH] dup_fd() part 4 - race fix Parent _can_ be a clone task, contrary to the comment. Moreover, more files could be opened while we allocate a copy, in which case we end up copying only part into new descriptor table. Since what we get _is_ affected by all changes in the old range, we can get rather weird effects - e.g. dup2(0, 1024); close(0); in parallel with fork() resulting in child that sees the effect of close(), but not that of dup2() done just before that close(). What we need is to recalculate the open_count after having reacquired ->file_lock and if external fdtable we'd just allocated is too small for it, free the sucker and redo allocation. Signed-off-by: Al Viro commit 6eebc2616f871573e6cdd0cc7ecf9a22b37794ed Author: Al Viro Date: Thu May 8 21:11:17 2008 -0400 [PATCH] dup_fd() - part 3 merge alloc_files() into dup_fd(), leave setting newf->fdt until the end Signed-off-by: Al Viro commit 6b554f97d25647a57e8d7098be9729d1f5d176f9 Author: Al Viro Date: Thu May 8 21:02:45 2008 -0400 [PATCH] dup_fd() part 2 use alloc_fdtable() instead of expand_files(), get rid of pointless grabbing newf->file_lock, kill magic in copy_fdtable() that used to be there only to skip copying when called from dup_fd(). Signed-off-by: Al Viro commit 523b79e2d1bf202346e6dc07c22ec7aba368b368 Author: Al Viro Date: Thu May 8 19:42:56 2008 -0400 [PATCH] dup_fd() fixes, part 1 Move the sucker to fs/file.c in preparation to the rest Signed-off-by: Al Viro commit 3ad8efadec1a88aaba0bbe26e5dc1941dd7c5556 Author: Al Viro Date: Thu May 8 18:19:16 2008 -0400 [PATCH] take init_files to fs/file.c Signed-off-by: Al Viro commit 07f2a680303fdd5f1e25b385db35e8302836e7aa Author: Jay Fenlason Date: Fri May 16 11:15:23 2008 -0400 firewire: prevent userspace from accessing shut down devices If userspace ignores the POLLERR bit from poll(), and only attempts to read() the device when POLLIN is set, it can still make ioctl() calls on a device that has been removed from the system. The node_id and generation returned by GET_INFO will be outdated, but INITIATE_BUS_RESET would still cause a bus reset, and GET_CYCLE_TIMER will return data. And if you guess the correct generation to use, you can send requests to a different device on the bus, and get responses back. This patch prevents open, ioctl, compat_ioctl, and mmap against shutdown devices. Signed-off-by: Jay Fenlason Signed-off-by: Stefan Richter commit a33466e31213cd7c46696160d3db78680b58f6a3 Author: Dmitry Baryshkov Date: Wed May 7 16:30:15 2008 -0400 Input: gpio-keys debouncing support Signed-off-by: Dmitry Baryshkov Signed-off-by: Dmitry Torokhov commit 885c316d776b64728b4ed30e3af60d23c9e46825 Author: Magnus Damm Date: Wed May 7 11:15:02 2008 -0400 Input: add support for SuperH MigoR touchscreen This is V2 of the MigoR touch screen driver. The chip we interface to is unfortunately a custom designed microcontroller speaking some undocumented protocol over i2c. The board specific code is expected to register this device as an i2c chip using struct i2c_board_info [] and i2c_register_board_info(). [dtor@mail.ru: don't enable touchscreen if there are no users] Signed-off-by: Magnus Damm Signed-off-by: Dmitry Torokhov commit 253b00f1e6619055d524188f254ccb951bffce5d Author: Joe Perches Date: Wed May 7 11:15:23 2008 -0400 Input: remove unused defines Remove unused to_dev, to_handler, to_handle from include/linux/input.h Move to_handle_h from include/linux/input.h to drivers/char/keyboard.c Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Dmitry Torokhov commit ccd3474569a101914444dc37cc108eec22578999 Author: Dmitry Torokhov Date: Tue May 6 12:11:39 2008 -0400 Input: libps2 - remove delayed command execution Delayed command execution is not used by anyone so let's remove it. Reported-by: Adrian Bunk Signed-off-by: Dmitry Torokhov commit 3e582db0783872a645f5236ef142be6579b300ad Author: Dmitry Torokhov Date: Tue May 6 12:11:29 2008 -0400 Input: gameport - remove rescan/reconnect facilities They have never been used and are unlikely to be used in the future so remove them altogether. Reported-by: Adrian Bunk Signed-off-by: Dmitry Torokhov commit 2ff98147847de3d27d7aa174d58467d21fe372aa Author: Andres Salomon Date: Tue May 6 12:10:39 2008 -0400 Input: hil_ptr - check return value of input_register_device() [dtor@mail.ru: also signal correct return value to callers] Signed-off-by: Andres Salomon Signed-off-by: Dmitry Torokhov commit e9542dff390668f85dc8dca0ca019b27e4396f97 Author: Sven Anders Date: Mon May 5 23:57:10 2008 -0400 Input: appletouch - simplify touchpad type detection This patch simplifies type detection and removes unnecessary code. Signed-off-by: Sven Anders [jberg: don't typedef, checkpatch clean, remove useless comments, ...] Signed-off-by: Johannes Berg Signed-off-by: Dmitry Torokhov commit 7dce869f120cd7500e83850a6036dfeffcf77c57 Author: Johannes Berg Date: Mon May 5 23:56:55 2008 -0400 Input: appletouch - miscellaneous code cleanups This patch does some code cleanups in appletouch: * useless comment removal * make almost checkpatch clean * make sparse clean Signed-off-by: Sven Anders [jberg: most of the changes including removing much of the original patch] Signed-off-by: Johannes Berg Signed-off-by: Dmitry Torokhov commit 5b7c407baa9501e49ebd3b6eac30cd4bcb60ca9d Author: Rodney Lorrimar Date: Mon May 5 11:59:24 2008 -0400 Input: adbhid - capslock and power button fix If the adbhid module parameter restore_capslock_events is used, pressing the power button may confuse the capslock state. This is because the power button release scancode (0xff) is sometimes the same as the capslock press/release scancode. This fix adds yet another flag to track the state of the power button so that it works independently of capslock. Signed-off-by: Rodney Lorrimar Signed-off-by: Dmitry Torokhov commit 2e75f044c717b85f65d74c8c90624428ba31078c Author: Rodney Lorrimar Date: Mon May 5 11:59:00 2008 -0400 Input: adbhid - fix capslock key state after suspend If the adbhid module parameter restore_capslock_events is used, sometimes capslock will get stuck down after resuming. My fix is to remember the capslock state before suspend and then ignore the first 'caps lock key down' message after resume if the capslock LED was on before suspending. Signed-off-by: Rodney Lorrimar Signed-off-by: Dmitry Torokhov commit d2fc60d6925574eeeadd037aa0f1378e07189a1a Author: Dmitry Torokhov Date: Mon May 5 11:53:45 2008 -0400 HWMON: hdaps - set up phys and bus type of input device Signed-off-by: Dmitry Torokhov commit 923104747d5c4d58762aa865f71d48d3beb73ae6 Author: Harvey Harrison Date: Mon May 5 11:50:59 2008 -0400 Input: use clamp_val() macro in ff-memless.c Replace two opencoded nested min/max macros with clamp_val(). Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Dmitry Torokhov commit c6a3ead2ab5d82b549237c52a785b9f736e13463 Author: Harvey Harrison Date: Mon May 5 11:50:40 2008 -0400 Input: wacom - make one-bit signed bitfields unsigned Otherwise it can only take the values 0/-1 which doesn't seem to have been intended. drivers/input/tablet/wacom.h:108:12: error: dubious one-bit signed bitfield Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Dmitry Torokhov commit e34b9d2f46590e3be64466b4095118283745d050 Author: Ping Cheng Date: Mon May 5 11:36:41 2008 -0400 Input: wacom - cleanup handling of tablet IDs Signed-off-by: Ping Cheng Signed-off-by: Dmitry Torokhov commit ea3e6c59266b783b103c0f42a8de5dbe565a43d4 Author: Harvey Harrison Date: Mon May 5 11:36:18 2008 -0400 Input: replace remaining __FUNCTION__ occurrences __FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Dmitry Torokhov commit 8c3c901b664ecb185c017f146d35549872b82058 Author: Theodore Ts'o Date: Fri May 16 14:22:25 2008 -0400 jbd2: Add commit time into the commit block Carlo Wood has demonstrated that it's possible to recover deleted files from the journal. Something that will make this easier is if we can put the time of the commit into commit block. Signed-off-by: "Theodore Ts'o" commit b3e93ff9c1df098fe327b388e2b31b421fa9d55f Author: Alexey Dobriyan Date: Fri May 16 14:22:25 2008 -0400 ext4: switch to seq_files Signed-off-by: Alexey Dobriyan Cc: Mingming Cao Signed-off-by: "Theodore Ts'o" Signed-off-by: Andrew Morton commit d6524d0efc04cf091dd30b9def6af693cdeb5066 Author: Julia Lawall Date: Fri May 16 14:22:25 2008 -0400 ext4: Use BUG_ON() instead of BUG() if (...) BUG(); should be replaced with BUG_ON(...) when the test has no side-effects to allow a definition of BUG_ON that drops the code completely. The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @ disable unlikely @ expression E,f; @@ ( if (<... f(...) ...>) { BUG(); } | - if (unlikely(E)) { BUG(); } + BUG_ON(E); ) @@ expression E,f; @@ ( if (<... f(...) ...>) { BUG(); } | - if (E) { BUG(); } + BUG_ON(E); ) // Signed-off-by: Julia Lawall Signed-off-by: Andrew Morton Signed-off-by: "Theodore Ts'o" commit b4e6ceea2cecfd1610f4ee7d3431bca950ca2cb0 Author: Aneesh Kumar K.V Date: Fri May 16 14:22:25 2008 -0400 ext4: start seraching for the right extent from the goal group. With mballoc we search for the best extent using different criteria. We should always use the goal group when we are starting with a new criteria. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" commit 3633e617d2eb49c9cbd045115a26719400969588 Author: Shen Feng Date: Fri May 16 15:09:25 2008 -0400 ext4: fix error ext number comments Change second/third to fourth. Signed-off-by: Shen Feng Signed-off-by: Mingming Cao commit 3b4c942fb621bc1ac3d8df5bcbc4074864e68b64 Author: Aneesh Kumar K.V Date: Fri May 16 15:09:25 2008 -0400 ext4: Use inode preallocation with -o noextents When mouting ext4 with -o noextents, request for file data blocks from inode prealloc space. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao commit 1291135a687a5e9713a7dbd33eafb88417692e4a Author: Aneesh Kumar K.V Date: Fri May 16 15:09:25 2008 -0400 ext4: Fix use of uninitialized data with debug enabled. Fix use of uninitialized data with debug enabled. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Mingming Cao commit 493d35863dbb692c38c1415fd83d88dfb902ae37 Author: Jeremy Kerr Date: Wed May 14 16:22:58 2008 -0700 mutex-debug: check mutex magic before owner Currently, the mutex debug code checks the lock->owner before lock->magic, so a corrupt mutex will most likely result in failing the owner check, rather than the magic check. This change to debug_mutex_unlock does the magic check first, so we have a better idea of what breaks. Signed-off-by: Jeremy Kerr Acked-by: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 09e67ca2c523544e6b38aa570a5f62a0cf20b87b Author: Stephen Rothwell Date: Fri May 16 11:57:45 2008 +1000 [POWERPC] Move of_device_get_modalias to drivers/of Commit 140b932f8cb6cced10b96860651a198b1b89cbb9 ("Create modalias file in sysfs for of_platform bus") needs this to avoid breaking the sparc builds. Just move the code and add whitespace around some binary operators. Signed-off-by: Stephen Rothwell Acked-by: David S. Miller Signed-off-by: Paul Mackerras commit 7bc228b1ef71f395aeb89bdf81bf95556b08b374 Author: Robert P. J. Day Date: Thu May 15 05:16:44 2008 +1000 [POWERPC] Get most of ioctl.h content from Now that allows overriding of the most commonly changed macros, take advantage of that. Signed-off-by: Robert P. J. Day Signed-off-by: Paul Mackerras commit 0b2cca804ee40495bc92449c3e22f3c3a3f2977a Author: Scott Wood Date: Tue Apr 29 01:38:13 2008 +1000 [POWERPC] Add 6xx-style HID0_SLEEP support. This adds a function to put a 6xx/7xx/7xxx/83xx family CPU into sleep mode, and return after an interrupt has occurred. It expects to be called with interrupts disabled, and returns with interrupts disabled. Interrupts are enabled while the processor is asleep, but the interrupt that wakes the processor is not handled; it is still pending when this function returns. Signed-off-by: Scott Wood Signed-off-by: Guennadi Liakhovetski Signed-off-by: Paul Mackerras commit a560643e21e1ac10f7398b45111aecdd7f47a4a5 Author: Paul Mackerras Date: Wed May 14 14:30:48 2008 +1000 [POWERPC] Defer processing of interrupts when the CPU wakes from sleep mode This provides a way to defer processing of an interrupt that wakes the processor out of sleep mode. On 32-bit platforms that use an interrupt to wake the processor, we have to have interrupts enabled in hardware at the point where we go to sleep, otherwise the processor will never wake up. However, because interrupts are logically disabled at this point, we don't want to process the interrupt straight away. This is handled by setting the _TLF_SLEEPING flag. When we get an interrupt and _TLF_SLEEPING is set, we firstly clear the MSR_EE (external interrupt enable) bit in the saved MSR value, and secondly we then return to the address in the link register, like we do for _TLF_NAPPING, but without actually handling the interrupt. Note that this is handled somewhat differently on powerbooks, so this new code will only be used on non-Apple machines. Signed-off-by: Paul Mackerras commit 418c6952ba9fd379059ed325ea5a3efe904fb7fd Author: Avi Kivity Date: Thu May 15 13:51:35 2008 +0300 KVM: MMU: Fix false flooding when a pte points to page table The KVM MMU tries to detect when a speculative pte update is not actually used by demand fault, by checking the accessed bit of the shadow pte. If the shadow pte has not been accessed, we deem that page table flooded and remove the shadow page table, allowing further pte updates to proceed without emulation. However, if the pte itself points at a page table and only used for write operations, the accessed bit will never be set since all access will happen through the emulator. This is exactly what happens with kscand on old (2.4.x) HIGHMEM kernels. The kernel points a kmap_atomic() pte at a page table, and then proceeds with read-modify-write operations to look at the dirty and accessed bits. We get a false flood trigger on the kmap ptes, which results in the mmu spending all its time setting up and tearing down shadows. Fix by setting the shadow accessed bit on emulated accesses. Signed-off-by: Avi Kivity commit 10cc447f55824c1118f8c77c86dc17e03df3758f Author: Eric Paris Date: Wed May 14 11:27:45 2008 -0400 SELinux: keep the code clean formating and syntax Formatting and syntax changes whitespace, tabs to spaces, trailing space put open { on same line as struct def remove unneeded {} after if statements change printk("Lu") to printk("llu") convert asm/uaccess.h to linux/uaacess.h includes remove unnecessary asm/bug.h includes convert all users of simple_strtol to strict_strtol Signed-off-by: Eric Paris Signed-off-by: James Morris commit 0bf1adea75e09dccbd3b92c700b72230bf25456d Author: Stephen Smalley Date: Wed May 14 10:33:55 2008 -0400 SELinux: fix sleeping allocation in security_context_to_sid Fix a sleeping function called from invalid context bug by moving allocation to the callers prior to taking the policy rdlock. Signed-off-by: Stephen Smalley Signed-off-by: James Morris commit ef85ad541f9a6ccd3f89ec73f92b2d6f45a9d3e8 Author: Holger Schurig Date: Wed May 14 16:27:18 2008 +0200 libertas: remove lbs_get_data_rate() lbs_get_data_rate() gets called, but no-one uses it's result. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit 6dcdc19e4ba4e6a9ccd733fdb745ad062cf3ea0a Author: Harvey Harrison Date: Tue May 13 18:13:35 2008 -0700 b43: use the bitrev helpers rather than rolling a private one The 4-bit reversal flip_4bit is replaced with the bitrev helper bitrev8 and a 4-bit shift. The B43_WARN is moved to the location where a register is read from for checking there. The other caller explicitly passes an array index which is guaranteed to be within range and so a B43_WARN is not added there. Signed-off-by: Harvey Harrison Reviewed-by: Michael Buesch Signed-off-by: John W. Linville commit d6894b5be1d674a31a94ed8f057c9f7d98c53999 Author: Bob Copeland Date: Mon May 12 21:16:44 2008 -0400 ath5k: Fix loop variable initializations In ath5k_tasklet_rx, both status structures 'rxs' and 'rs' are initialized at the top of the tasklet, but not within the loop. If the loop is executed multiple times in the tasklet then the variables may see changes from previous packets. For TKIP, this results in 'Invalid Michael MIC' errors if two packets are processed in the tasklet: rxs.flag gets set to RX_DECRYPTED by mac80211 when it decrypts the first encrypted packet. The subsequent packet will have RX_DECRYPTED set upon entry to mac80211, so mac80211 will not try to decrypt it. We currently initialize all but two fields in the structures, so fix the other two. Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit b0a6717994a4e00ee19372e1bdaab53572ae025c Author: Ivo van Doorn Date: Tue May 13 15:03:02 2008 +0200 mac80211: Set IEEE80211_TXPD_REQ_TX_STATUS for all TX frames All interfaces should set the IEEE80211_TXPD_REQ_TX_STATUS flag for all TX frames which will force the master interface to set the IEEE80211_TX_CTL_REQ_TX_STATUS flag. This in turn will allow drivers to check for that flag before reporting the TX status to mac80211. This is very usefull when frames (like beacons, RTS and CTS-to-self) should not be reported back to mac80211. Later we could add more extensive checks to exclude more frames from being reported, or let mac80211 decide if it wants the frame for status reporting or not. v2: Monitor interfaces should also set IEEE80211_TXPD_REQ_TX_STATUS Signed-off-by: Ivo van Doorn Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 7a1d65235da829e6dc8938b82c991e40e278fc50 Author: Huang Weiyi Date: Sat May 10 11:12:31 2008 +0200 b43: nphy.c remove duplicated include Remove duplicated include in drivers/net/wireless/b43/nphy.c Signed-off-by: Huang Weiyi Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit 2940bb69fd84047e78fdb1868a8b894df5584255 Author: Eric W. Biederman Date: Thu May 8 14:30:18 2008 -0700 wireless: Add missing locking to cfg80211_dev_rename device_rename only performs useful and race free validity checking at the optional sysfs level so depending on it for all of the validity checking in cfg80211_dev_rename is racy. Instead implement all of the needed validity checking and locking in cfg80211_dev_rename. Signed-off-by: Eric W. Biederman Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 601ae7f25aea58f208a7f640f6174aac0652403a Author: Bruno Randolf Date: Thu May 8 19:22:43 2008 +0200 mac80211: make rx radiotap header more flexible use hw flags and rx flags to determine which fields are present in the header and use all available information from the driver. make sure radiotap header starts at a naturally aligned address (mod 8) for all radiotap fields. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 566bfe5a8bcde13188a356f77666f8115813cf31 Author: Bruno Randolf Date: Thu May 8 19:15:40 2008 +0200 mac80211: use hardware flags for signal/noise units trying to clean up the signal/noise code. the previous code in mac80211 had confusing names for the related variables, did not have much definition of what units of signal and noise were provided and used implicit mechanisms from the wireless extensions. this patch introduces hardware capability flags to let the hardware specify clearly if it can provide signal and noise level values and which units it can provide. this also anticipates possible new units like RCPI in the future. for signal: IEEE80211_HW_SIGNAL_UNSPEC - unspecified, unknown, hw specific IEEE80211_HW_SIGNAL_DB - dB difference to unspecified reference point IEEE80211_HW_SIGNAL_DBM - dBm, difference to 1mW for noise we currently only have dBm: IEEE80211_HW_NOISE_DBM - dBm, difference to 1mW if IEEE80211_HW_SIGNAL_UNSPEC or IEEE80211_HW_SIGNAL_DB is used the driver has to provide the maximum value (max_signal) it reports in order for applications to make sense of the signal values. i tried my best to find out for each driver what it can provide and update it but i'm not sure (?) for some of them and used the more conservative guess in doubt. this can be fixed easily after this patch has been merged by changing the hardware flags of the driver. DRIVER SIGNAL MAX NOISE QUAL ----------------------------------------------------------------- adm8211 unspec(?) 100 n/a missing at76_usb unspec(?) (?) unused missing ath5k dBm dBm percent rssi b43legacy dBm dBm percent jssi(?) b43 dBm dBm percent jssi(?) iwl-3945 dBm dBm percent snr+more iwl-4965 dBm dBm percent snr+more p54 unspec 127 n/a missing rt2x00 dBm n/a percent rssi+tx/rx frame success rt2400 dBm n/a rt2500pci dBm n/a rt2500usb dBm n/a rt61pci dBm n/a rt73usb dBm n/a rtl8180 unspec(?) 65 n/a (?) rtl8187 unspec(?) 65 (?) noise(?) zd1211 dB(?) 100 n/a percent drivers/net/wireless/ath5k/base.c: Changes-licensed-under: 3-Clause-BSD Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit fac371d9f09f461dfe9fbbceb2a38e2e12164dda Author: Johannes Berg Date: Wed May 7 23:18:09 2008 +0200 mac80211: fix queue constant confusion In commit 31ccc476b77234f6afb3 (mac80211: QoS related cleanups) I accidentally changed these to use IEEE80211_MAX_AMPDU_QUEUES twice which obviously is wrong, it should be IEEE80211_MAX_QUEUES once. Currently harmless as they're both the same value anyway. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 84e6dc9acf6825f508feae9db6b7d695e64894e0 Author: Bruno Randolf Date: Wed May 7 11:46:02 2008 +0200 zd1211rw: initial IBSS support this adds initial IBSS support for the zydas zd1211rw: convince driver that it can do IBSS mode. add mac80211 beacon_update callback. IBSS merge and TSF updates don't work yet, but it makes the driver usable in ad-hoc networks. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 736bc924fe7183dd27182a9148e78f250c1637ee Author: Paulius Zaleckas Date: Tue May 6 23:50:30 2008 +0300 atmel: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Kill atmel_get_stats function, because by default it is used identical internal_stats function from net/core/dev.c No need to memset stats to 0, because they are allocated by kzalloc. P.S. Someone should cleanup init_atmel_card function from unneeded initializations to 0/NULL. Out of scope for this patch. Signed-off-by: Paulius Zaleckas Signed-off-by: John W. Linville commit 06a5223d68a7c48bf72a05aad533ea0e8a3453be Author: Paulius Zaleckas Date: Tue May 6 14:44:08 2008 +0300 arlan: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Signed-off-by: Paulius Zaleckas Signed-off-by: John W. Linville commit 15dbf1b7b7b6ba6e5159dde60e111f617b2c54ea Author: Bill Moss Date: Tue May 6 11:05:15 2008 +0800 iwl3945: do not delay hardware scan if it is a direct scan iwl3945 <---> mac80211 <----> wpa_supplicant <---> NetworkManager When a hardware scan is completed and another scan is requested in less than two seconds, iwlwifi will not do the second scan and will pass the error code -EAGAIN back to mac80211 where it quickly dies. The error code is not passed along to the calling program wpa_supplicant. After a timeout, wpa_supplicant will just give up but it will not know why the scan failed. This is a weakness in the design. I ran into this issue when I was trying to figure out why it takes more an a minute for NetworkManager to connect after Networking has been disabled and then re-enabled. I found a good deal of unnecessary work being done because mac80211 requests authentication when the interface is not configured, the ANY mode. I created an experimental passive (NOTANY) mode for mac80211 to eliminate this case. Then NetworkManager became so fast that I ran into the iwlwifi 2 second delay next scan issue which we are discussing. The patch resolves the problem by bypassing the delay if the scan request is a direct scan. It should do less harm to the hardware. Signed-off-by: Bill Moss Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 3a1081e84b0008de8171a95f2c0fff8489af4300 Author: Ester Kummer Date: Tue May 6 11:05:14 2008 +0800 iwlwifi: adding parameter of fw_restart This patch adds a module parameter of fw_restart which determine if the uCode will be restarted or not in case of error. Signed-off-by: Ester Kummer Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit bc6f59bc9b2f494ca1b018622f1fbd25933bc920 Author: Tomas Winkler Date: Tue May 6 11:05:13 2008 +0800 iwlwifi: add device sysfs version entry This patch adds sysfs version file that displays ucode version and type. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit f3d67999348776638644fd0035ee465261cc8c68 Author: Ester Kummer Date: Tue May 6 11:05:12 2008 +0800 iwlwifi: update levels of debug prints This patch updates the levels of debug prints, leaving only one level in each debug print. It was anoying and caused unnecessary prints on hot path. Signed-off-by: Ester Kummer Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 8cf769c6dcb7b83d380f20d2873ac20ec7a734b1 Author: Ester Kummer Date: Tue May 6 11:05:11 2008 +0800 iwlwifi: move debug_level to sysfs/bus/pci/devices This patch ports the debug_level from sysfs/bus/pci/drivers/iwl4965 to /sys/class/net/wlanX/device/debug_level Signed-off-by: Ester Kummer Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 5d9276daa4c489e9c37c0f0cda915ece632f3cf1 Author: Paulius Zaleckas Date: Mon May 5 22:38:34 2008 +0300 airo: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Changed airo_read_stats function parameter to net_device. Signed-off-by: Paulius Zaleckas Signed-off-by: John W. Linville commit 1b73af8284c3fcbb65eefb9141237b7e45cedd21 Author: Ron Rindjunsky Date: Mon May 5 10:22:51 2008 +0800 iwlwifi: fix spinlock used before initialized The patch fixes spinlock priv->lock (apm_ops.init) is used before it has been initialized. Signed-off-by: Ron Rindjunsky Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 164669032ecbf7c9a3bc78adad4e13ee486e975c Author: Ron Rindjunsky Date: Mon May 5 10:22:50 2008 +0800 iwlwifi: remove 4965 prefix from iwl4965_kw and iwl4965_tx_queue This patch removes the 4965 prefix to form iwl_kw and iwl_tx_queue structs, as they are used mostly in iwlcore now. Signed-off-by: Ron Rindjunsky Signed-off-by: John W. Linville commit d67f5489d8d9be09bc8e1615ec6c57c3120a731d Author: Ron Rindjunsky Date: Mon May 5 10:22:49 2008 +0800 iwlwifi: handle shared memory Rx index access This patch splits ucode's and driver's shared memory Rx index access to match 4965 and 5000 offsets. Signed-off-by: Ron Rindjunsky Signed-off-by: John W. Linville commit 5ec0397679f1c1606199cfd6f3e24351891c60c3 Author: Abhijeet Kolekar Date: Mon May 5 10:22:48 2008 +0800 iwlwifi : Set monitor mode for 3945 The patch leverages mac80211 configure_filter to enable iwl3945 monitor mode. Signed-off-by: Abhijeet Kolekar Signed-off-by: John W. Linville commit 4419e39b6041b213e49bb13fd40fb267de0eb568 Author: Abhijeet Kolekar Date: Mon May 5 10:22:47 2008 +0800 iwlwifi : Set monitor mode for 4965 The patch leverages mac80211 configure_filter to enable iwl4965 monitor mode. Signed-off-by: Abhijeet Kolekar Signed-off-by: John W. Linville commit f3ccc08c8cdeb784087348e67f41a779c787fa0e Author: Emmanuel Grumbach Date: Mon May 5 10:22:45 2008 +0800 iwlwifi: move iwl4965_init_alive_start to iwl-4965.c This patch moves iwl_4965_init_alive_start to iwl-4965.c. Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 27aaba0ca099461badb496bf7cde5ab5cdc89b98 Author: Tomas Winkler Date: Mon May 5 10:22:44 2008 +0800 iwlwifi: compile iwl-sta into iwlcore This patch moves iwl-sta into iwl-core. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 1053d35f4ed6876ad9d3a14cdae363db0a7e9b0a Author: Ron Rindjunsky Date: Mon May 5 10:22:43 2008 +0800 iwlwifi: move NIC init and Tx queues init to iwlcore This patch does the following: 1 - change hw_nic_init from a handler to a function 2 - move hw_nic_init function to iwlcore 3 - open a new file - iwl-tx.c 4 - move all Tx queues initialization (part of NIC init) to iwl-tx.c 5 - move iwl_rx_init, previously as part of the NIC init, to iwl-rx.c 6 - iwl4965_tfd_frame rename to iwl_tfd_frame Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 5a676bbeaf9e534b75286f2294ec57a4c544f1d2 Author: Ron Rindjunsky Date: Mon May 5 10:22:42 2008 +0800 iwlwifi: create disable SCD Tx FIFOs handler This patch moves disabeling Tx FIFOs in NIC SCD to seperate handlers in 4965 and 5000 cards. Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 47c5196e4a340667d8d92053380ecca24ed45a9b Author: Tomas Winkler Date: Mon May 5 10:22:41 2008 +0800 iwlwifi: move iwl4965_set_rxon_ht into iwlcore This patch moves iwl4965_set_rxon_ht to iwlcore under name iwl_set_rxon_ht. It also moves collateral changes iwl_is_channel_extension and iwl_is_fat_tx_allowed. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit bf403db8a2f5580a5eb355a109d29b9287ca51e1 Author: Ester Kummer Date: Mon May 5 10:22:40 2008 +0800 iwlwifi: move per driverdebug_level to per device This patch ports the debug_level to iwl_priv and changes the format of the debug prints. Signed-off-by: Ester Kummer Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 2469bf2e9938eef3c6ab0951985b050ff1f8c94f Author: Tomas Winkler Date: Mon May 5 10:22:35 2008 +0800 iwlwifi-5000: add build_addsta_hcmd handler for 5000 HW This patch adds iwl5000_build_addsta_hcmd handler. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 133636deffc86809f59a0c8b768408d13237a9a2 Author: Tomas Winkler Date: Mon May 5 10:22:34 2008 +0800 iwlwifi: generalize iwl4965_send_add_station function This patch moves iwl4965_send_add_station to iwlcore under new name iwl_send_add_sta. Function uses build command handler in order to support multiple HWs. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit db11d6343aa14ab61258bfad9178042d4be49333 Author: Tomas Winkler Date: Mon May 5 10:22:33 2008 +0800 iwlwifi: remove 4965 from rx_packet This patch removes 4965 mark from rx_packet. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 8dd266ef4eb51d034fa1c5f9307a9ff07547d8e6 Author: Tomas Winkler Date: Mon May 5 10:22:32 2008 +0800 iwlwifi: debugfs EEPROM dump This patch adds EEPROM dump in debugfs. Signed-off-by: Tomas Winkler Signed-off-by: Abhijeet Kolekar Signed-off-by: John W. Linville commit 6def9761f72501e638e79eebcd70afea12a3a93d Author: Tomas Winkler Date: Mon May 5 10:22:31 2008 +0800 iwlwifi: remove 4965 from station_entry This patch removes 4965 mark form the station entry structure. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 6b9b34389c2fdb8618fe2c686b6872d26562fd07 Author: Tomas Winkler Date: Mon May 5 10:22:30 2008 +0800 iwlwifi: don't override association channel with control channel This patch fixes override of association channel with HT control channel. The scenario is currently happening because disassociation flow doesn't clean previous association information (such as is_ht and control channel). Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 5a835353fb3c68a3da3badcc485614cdfc6e6109 Author: Ron Rindjunsky Date: Mon May 5 10:22:29 2008 +0800 iwlwifi-5000: rename iwl5000_init_nic to iwl5000_init_config Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit a55360e458551b0add4ec147ef786d71e163bf50 Author: Tomas Winkler Date: Mon May 5 10:22:28 2008 +0800 iwlwifi: move RX code to iwl-rx.c This patch moves partialy rx code into iwl-rx.c as part of iwlcore. The second part of the code can be merged only with moving of tx code as well. Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 0d0b2c1c49814ee54f1b4efd2c715a7465219ede Author: Ron Rindjunsky Date: Sun May 4 14:48:18 2008 +0300 iwlwifi: map A-MPDU HW queue to mac80211 A-MPDU SW queue This patch maps A-MPDU HW queue to mac80211 SW queue scheme (as introduced in patch "mac80211: QoS related cleanups"), when trying to perform ieee80211_wake_queue. Signed-off-by: Ron Rindjunsky Signed-off-by: John W. Linville commit 07346f81e87d6e4cca7ae9adfa711d0c61c87b56 Author: Johannes Berg Date: Sat May 3 01:02:02 2008 +0200 mac80211: proper STA info locking As discussed earlier, we can unify locking in struct sta_info and use just a single spinlock protecting all members of the structure that need protection. Many don't, but one of the especially bad ones is the 'flags' member that can currently be clobbered when RX and TX is being processed on different CPUs at the same time. Because having four spinlocks for different, mostly exclusive parts of a single structure is overkill, this patch also kills the ampdu and mesh plink spinlocks and uses just a single one for everything. Because none of the spinlocks are nested, this is safe. It remains to be seen whether or not we should make the sta flags use atomic bit operations instead, for now though this is a safe thing and using atomic operations instead will be very simple using the new static inline functions this patch introduces for accessing sta->flags. Since spin_lock_bh() is used with this lock, there shouldn't be any contention even if aggregation is enabled at around the same time as both requires frame transmission/reception which is in a bh context. Signed-off-by: Johannes Berg Cc: Tomas Winkler Cc: Ron Rindjunsky Cc: Luis Carlos Cobo Signed-off-by: John W. Linville commit 3434fbd39862d471c92b66c28cd449deea8e9f90 Author: Johannes Berg Date: Sat May 3 00:59:37 2008 +0200 mac80211: require four hardware queues for QoS/HT This patch makes mac80211 only announce QoS/HT support when the underlying hardware has four (or more) queues. Signed-off-by: Johannes Berg Cc: Ron Rindjunksi Signed-off-by: John W. Linville commit ca21614d4c7a176d3723ac211873020b3722dbda Author: Harvey Harrison Date: Fri May 2 13:47:49 2008 -0700 b43legacy: replace limit_value macro with clamp_val kernel-provided clamp_val is identical, delete the private limit_value helper. Signed-off-by: Harvey Harrison Cc: Michael Buesch Cc: "John W. Linville" Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit cdbf0846e2dd5f122f3910d0e2a305fab337744b Author: Harvey Harrison Date: Fri May 2 13:47:48 2008 -0700 b43: replace limit_value macro with clamp_val kernel-provided clamp_val is identical, delete the private limit_value helper. Signed-off-by: Harvey Harrison Cc: Michael Buesch Cc: "John W. Linville" Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit 8c046c8c64ba81dd87468ddaf2db4a5d926b988b Author: Harvey Harrison Date: Fri May 2 13:47:45 2008 -0700 mac80211: tkip.c use kernel-provided infrastructure Use kernel-provided bit rotation and unaligned access infrastructure rather than opencoding it. Some minor spacing adjustments as well. Signed-off-by: Harvey Harrison Cc: "John W. Linville" Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit ae7245cbf27ee6b6423bc363cbe01c93e57befda Author: Harvey Harrison Date: Thu May 1 22:19:33 2008 -0700 wireless: use get/put_unaligned_* helpers Signed-off-by: Harvey Harrison Signed-off-by: John W. Linville commit 5a433b3ad497120d80f1045d37bd1a9ce897388f Author: Harvey Harrison Date: Mon Apr 21 10:41:10 2008 -0700 mac80211: remove unnecessary byteshifts in frame control testing Byteswap the constants rather than the frame_control member. Signed-off-by: Harvey Harrison Signed-off-by: John W. Linville commit 88787d2842b6e6ff9bdc218445209c5e3c84d6fa Author: Andrew Morton Date: Tue May 13 21:05:50 2008 -0700 wireless: fix "iwlwifi: unify init driver flow" drivers/net/wireless/iwlwifi/iwl-core.c: In function 'iwlcore_init_geos': drivers/net/wireless/iwlwifi/iwl-core.c:323: error: implicit declaration of function 'iwlcore_init_ht_hw_capab' This (or something like it) should be folded into the base patch to avoid breaking bisection, please. Cc: Ron Rindjunsky Cc: Tomas Winkler Cc: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit c1f47ba4a598c47636c894c4feb81fe4c0b6ecd5 Author: Xiantao Zhang Date: Wed May 14 19:44:57 2008 +0800 KVM: ia64: Set KVM_IOAPIC_NUM_PINS to 48 Guest's firmware needs an iosapic with 48 pins for ia64 guests. Needed to get networking going. Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 541b2755c2ef7dd2242ac606c115daa11e43ef69 Author: Michael Ellerman Date: Thu May 8 14:27:23 2008 +1000 [POWERPC] Fix sparse warnings in arch/powerpc/platforms/pseries Don't return void in pseries/iommu.c Make mce_data_buf static in pseries/ras.c Make things static in pseries/rtasd.c Make things static in pseries/setup.c vtermno may as well be static in platforms/pseries/lpar.c Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 3ff1999b2c84e1486e80fbd3ca12b1663dc3408b Author: Michael Ellerman Date: Thu May 8 14:27:21 2008 +1000 [POWERPC] pseries/firmware.c should include pseries/pseries.h The declaration for fw_feature_init() is in pseries.h and implemented in firmware.c, so the latter should include the former. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 1c21a2937b1f342a8f5d580203c3396557d53b6e Author: Michael Ellerman Date: Thu May 8 14:27:19 2008 +1000 [POWERPC] Fix sparse warnings in arch/powerpc/kernel Make a few things static in lparcfg.c Make init and exit routines static in rtas_flash.c Make things static in rtas_pci.c Make some functions static in rtas.c Make fops static in rtas-proc.c Remove unneeded extern for do_gtod in smp.c Make clocksource_init() static in time.c Make last_tick_len and ticklen_to_xs static in time.c Move the declaration of the pvr per-cpu into smp.h Make kexec_smp_down() and kexec_stack static in machine_kexec_64.c Don't return void in arch_teardown_msi_irqs() in msi.c Move declaration of GregorianDay()into asm/time.h Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 1c8950ff87de950a3b6ccfb26650fc0a56278836 Author: Michael Ellerman Date: Thu May 8 14:27:17 2008 +1000 [POWERPC] Make cpus_in_xmon static and remove extern mess from hvc_console.c This is a little messier than I'd like because xmon.h only exists on powerpc and we can't have a static inline and an extern declaration visible at the same time. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 9f1067c2d98ac1c43f0c82892f5647774a6ac759 Author: Michael Ellerman Date: Thu May 8 14:27:16 2008 +1000 [POWERPC] Fix sparse warnings in xmon.c warning: Using plain integer as NULL pointer warning: Using plain integer as NULL pointer warning: symbol 'excprint' was not declared. Should it be static? warning: symbol 'prregs' was not declared. Should it be static? warning: symbol 'cacheflush' was not declared. Should it be static? warning: symbol 'read_spr' was not declared. Should it be static? warning: symbol 'write_spr' was not declared. Should it be static? warning: symbol 'super_regs' was not declared. Should it be static? warning: symbol 'mread' was not declared. Should it be static? warning: symbol 'mwrite' was not declared. Should it be static? warning: symbol 'byterev' was not declared. Should it be static? warning: symbol 'memex' was not declared. Should it be static? warning: symbol 'bsesc' was not declared. Should it be static? warning: symbol 'dump' was not declared. Should it be static? warning: symbol 'prdump' was not declared. Should it be static? warning: symbol 'generic_inst_dump' was not declared. Should it be static? warning: symbol 'ppc_inst_dump' was not declared. Should it be static? warning: symbol 'memops' was not declared. Should it be static? warning: symbol 'memdiffs' was not declared. Should it be static? warning: symbol 'memlocate' was not declared. Should it be static? warning: symbol 'memzcan' was not declared. Should it be static? warning: symbol 'proccall' was not declared. Should it be static? warning: symbol 'scannl' was not declared. Should it be static? warning: symbol 'hexdigit' was not declared. Should it be static? warning: symbol 'flush_input' was not declared. Should it be static? warning: symbol 'inchar' was not declared. Should it be static? warning: symbol 'take_input' was not declared. Should it be static? warning: symbol 'xmon_init' was not declared. Should it be static? Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit af3b74df1b2fa4dbfb0534818167f6393f5ae7c7 Author: Michael Ellerman Date: Thu May 8 14:27:15 2008 +1000 [POWERPC] Move xmon_irq() declaration into xmon.h The typdef for irqreturn_t was moved into its own header a while back, so there's no reason we can't move xmon_irq() into xmon.h now. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 7d9e793463d854073f5c0dedea991a5b63336d6a Author: Michael Ellerman Date: Thu May 8 14:27:13 2008 +1000 [POWERPC] Add a declaration for xmon() Usually we call xmon() via debugger(), so this could be static. Sometimes when debugging it's nice to be able to call xmon() directly though, so add a declaration. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 8fa29d22dcb2aec97f1a508cd3741c6e0b4a9434 Author: Michael Ellerman Date: Thu May 8 14:27:11 2008 +1000 [POWERPC] sysdev/mpic_msi.c should include sysdev/mpic.h Some of the routines defined in mpic_msi.c are declared mpic.h, so the former should include the latter. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit c884116ac375c5dd137109b58acaa9cf50164796 Author: Michael Ellerman Date: Thu May 8 14:27:09 2008 +1000 [POWERPC] Remove duplicate variable definitions in mm/tlb_64.c Somewhere along the way (e28f7faf05159f1cfd564596f5e6178edba6bd49, "Four level pagetables for ppc64") we ended up with duplicate definitions for pte_freelist_cur and pte_freelist_force_free. Somehow this compiles, but it would be better to just have one definition for each. The two definitions we end up with can be static too! Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 572fb578de59efaaa8d197b0183db43b1128a06e Author: Michael Ellerman Date: Thu May 8 14:27:08 2008 +1000 [POWERPC] Move declaration of tce variables into mmu-hash64.h ... instead of having extern declarations in a .c file. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 09de9ff872bca25ba717a7075c9ee49b1bdb56d2 Author: Michael Ellerman Date: Thu May 8 14:27:07 2008 +1000 [POWERPC] Fix sparse warnings in arch/powerpc/mm Make two vmemmap helpers static in init_64.c Make stab variables static in stab.c Make psize defs static in hash_utils_64.c Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 5f25f06529ecb4b20efc7ba00de599f5b9f4b63c Author: Michael Ellerman Date: Thu May 8 14:27:07 2008 +1000 [POWERPC] Move declaration of init_bootmem_done into system.h ... instead of having an extern declaration in a .c file. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras commit 683307da07afd3a7ee55269ee8cb70c8053b0923 Author: Remi Machet Date: Thu May 1 10:40:44 2008 +1000 [POWERPC] Create of_buses for MV64x60 devices For each mv64360 entry in the OpenFirmware database, add the registration of an of_bus to take care of devices connected to the MV64x60 asynchronous devices controller. This change makes it possible for those devices to be detected by drivers that support the of_platform without having a custom call for each of them in the board file. Signed-off-by: Remi Machet Signed-off-by: Paul Mackerras commit 663276b7c6340e755ed62bed67a2b96f4fc3d513 Author: Kumar Gala Date: Wed Apr 30 20:44:53 2008 +1000 [POWERPC] Set lower flag bits in regs->trap to indicate debug level exception We use the low bits of regs->trap as flag bits. We already indicate critical and machine check level exceptions via this mechanism. Extend it to indicate debug level exceptions. Signed-off-by: Kumar Gala Signed-off-by: Paul Mackerras commit 7a10174eeafe737f3ccfcece5bdff749c3b044e0 Author: Roland McGrath Date: Mon Apr 28 17:30:37 2008 +1000 [POWERPC] Define and use TLF_RESTORE_SIGMASK Replace TIF_RESTORE_SIGMASK with TLF_RESTORE_SIGMASK and define our own set_restore_sigmask() function. This saves the costly SMP-safe set_bit operation, which we do not need for the sigmask flag since TIF_SIGPENDING always has to be set too. Signed-off-by: Roland McGrath Signed-off-by: Paul Mackerras commit 140b932f8cb6cced10b96860651a198b1b89cbb9 Author: Olaf Hering Date: Thu Apr 24 23:16:00 2008 +1000 [POWERPC] Create modalias file in sysfs for of_platform bus Create /sys/bus/of_platform/devices/*/modalias file to allow autoloading of modules. Modalias files are already present for many other bus types. This adds also a newline to the devspec files. Also create a devspec file for mac-io devices. They were created as a side effect. Use correct buffer size for mac-io modalias buffer. Tested on iBook1 and Efika. Signed-off-by: Olaf Hering Signed-off-by: Paul Mackerras commit 9d5f525b86453da921360727112161254accc8c1 Author: Roel Kluin <12o3l@tiscali.nl> Date: Thu Apr 24 09:03:02 2008 +1000 [POWERPC] mpic_u3msi: Failed allocation unnoticed bitmap_find_free_region(), called by mpic_msi_alloc_hwirqs() may return signed, but hwirq is unsigned. A failed allocation remains unnoticed. Signed-off-by: Roel Kluin <12o3l@tiscali.nl> Signed-off-by: Paul Mackerras commit ee1a08f963c5abb5ec2d8c5defffecee7c3f84c8 Author: Roel Kluin <12o3l@tiscali.nl> Date: Thu Apr 24 08:32:26 2008 +1000 [POWERPC] mpic_pasemi_msi: Failed allocation unnoticed bitmap_find_free_region(), called by mpic_msi_alloc_hwirqs() may return signed, but hwirq is unsigned. A failed allocation remains unnoticed. Signed-off-by: Roel Kluin <12o3l@tiscali.nl> Signed-off-by: Paul Mackerras commit deb1a5f1134e7da0e3dacd37b5d32b7fe0600a7f Author: Nate Case Date: Tue May 13 14:45:29 2008 -0500 [MTD] [NOR] Support for M50FLW080A and M50FLW080B Add support for M50FLW080A and M50FLW080B revisions of LPC flash devices. Signed-off-by: Aaron Lindner Signed-off-by: Nate Case Signed-off-by: David Woodhouse commit 32be3351abdc2a073d98d40029ae3e126287e736 Author: Stephen Smalley Date: Wed May 7 13:03:20 2008 -0400 selinux: support deferred mapping of contexts Introduce SELinux support for deferred mapping of security contexts in the SID table upon policy reload, and use this support for inode security contexts when the context is not yet valid under the current policy. Only processes with CAP_MAC_ADMIN + mac_admin permission in policy can set undefined security contexts on inodes. Inodes with such undefined contexts are treated as having the unlabeled context until the context becomes valid upon a policy reload that defines the context. Context invalidation upon policy reload also uses this support to save the context information in the SID table and later recover it upon a subsequent policy reload that defines the context again. This support is to enable package managers and similar programs to set down file contexts unknown to the system policy at the time the file is created in order to better support placing loadable policy modules in packages and to support build systems that need to create images of different distro releases with different policies w/o requiring all of the contexts to be defined or legal in the build host policy. With this patch applied, the following sequence is possible, although in practice it is recommended that this permission only be allowed to specific program domains such as the package manager. # rmdir baz # rm bar # touch bar # chcon -t foo_exec_t bar # foo_exec_t is not yet defined chcon: failed to change context of `bar' to `system_u:object_r:foo_exec_t': Invalid argument # mkdir -Z system_u:object_r:foo_exec_t baz mkdir: failed to set default file creation context to `system_u:object_r:foo_exec_t': Invalid argument # cat setundefined.te policy_module(setundefined, 1.0) require { type unconfined_t; type unlabeled_t; } files_type(unlabeled_t) allow unconfined_t self:capability2 mac_admin; # make -f /usr/share/selinux/devel/Makefile setundefined.pp # semodule -i setundefined.pp # chcon -t foo_exec_t bar # foo_exec_t is not yet defined # mkdir -Z system_u:object_r:foo_exec_t baz # ls -Zd bar baz -rw-r--r-- root root system_u:object_r:unlabeled_t bar drwxr-xr-x root root system_u:object_r:unlabeled_t baz # cat foo.te policy_module(foo, 1.0) type foo_exec_t; files_type(foo_exec_t) # make -f /usr/share/selinux/devel/Makefile foo.pp # semodule -i foo.pp # defines foo_exec_t # ls -Zd bar baz -rw-r--r-- root root user_u:object_r:foo_exec_t bar drwxr-xr-x root root system_u:object_r:foo_exec_t baz # semodule -r foo # ls -Zd bar baz -rw-r--r-- root root system_u:object_r:unlabeled_t bar drwxr-xr-x root root system_u:object_r:unlabeled_t baz # semodule -i foo.pp # ls -Zd bar baz -rw-r--r-- root root user_u:object_r:foo_exec_t bar drwxr-xr-x root root system_u:object_r:foo_exec_t baz # semodule -r setundefined foo # chcon -t foo_exec_t bar # no longer defined and not allowed chcon: failed to change context of `bar' to `system_u:object_r:foo_exec_t': Invalid argument # rmdir baz # mkdir -Z system_u:object_r:foo_exec_t baz mkdir: failed to set default file creation context to `system_u:object_r:foo_exec_t': Invalid argument Signed-off-by: Stephen Smalley Signed-off-by: James Morris commit 111184b65eb587fcbda7508f062bd8c788b09d23 Author: Marcelo Tosatti Date: Thu May 8 19:47:01 2008 -0300 KVM: Fix kvm_vcpu_block() task state race There's still a race in kvm_vcpu_block(), if a wake_up_interruptible() call happens before the task state is set to TASK_INTERRUPTIBLE: CPU0 CPU1 kvm_vcpu_block add_wait_queue kvm_cpu_has_interrupt = 0 set interrupt if (waitqueue_active()) wake_up_interruptible() kvm_cpu_has_pending_timer kvm_arch_vcpu_runnable signal_pending set_current_state(TASK_INTERRUPTIBLE) schedule() Can be fixed by using prepare_to_wait() which sets the task state before testing for the wait condition. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 206e06db85eeea26016a05e73e92dad0ea7cbb52 Author: Marcelo Tosatti Date: Wed May 14 02:29:06 2008 -0300 KVM: LAPIC: ignore pending timers if LVTT is disabled Only use the APIC pending timers count to break out of HLT emulation if the timer vector is enabled. Certain configurations of Windows simply mask out the vector without disabling the timer. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit cfa9e14b544aa588467ff3340e4e5c7d5d97ed50 Author: Zhao Yakui Date: Wed May 14 11:32:59 2008 +0800 ACPI: Disable Fixed_RTC event when installing RTC handler The Fixed_RTC event should be disabled when installing RTC handler. Only when RTC alarm is set will it be enabled again. If it is not disabled, maybe some machines will be powered on automatically after the system is shutdown even when the RTC alarm is not set. http://bugzilla.kernel.org/show_bug.cgi?id=10010 Signed-off-by: Zhao Yakui Signed-off-by: Zhang Rui Signed-off-by: Len Brown commit 451f2f3f04b6a07629ea7336b779c06a4fd08e9b Author: Alistair John Strachan Date: Mon May 12 19:13:09 2008 +0100 ACPI 2.6.26-rc2: Add missing newline to DSDT/SSDT warning message As of recently (probably 2.6.26-rc1) I've been getting the following mangling in the kernel log: [4294014.568167] ACPI: DSDT override uses original SSDTs unless "acpi_no_auto_ssdt"<6>CPU0: Intel(R) Pentium(R) Dual CPU E2160 @ 1.80GHz stepping 0d This is due to a missing newline character in the first message. The following patch against 2.6.26-rc2 fixes it. Please apply. Signed-off-by: Alistair John Strachan Signed-off-by: Len Brown commit df946eda7bf9d5f547281b8f99259c8c3c000e6c Author: Harvey Harrison Date: Wed Apr 30 15:03:40 2008 -0700 ACPI: fix integer as NULL pointer warnings drivers/acpi/dispatcher/dsmethod.c:568:50: warning: Using plain integer as NULL pointer drivers/acpi/executer/exmutex.c:329:30: warning: Using plain integer as NULL pointer drivers/acpi/executer/exmutex.c:466:31: warning: Using plain integer as NULL pointer Signed-off-by: Harvey Harrison Signed-off-by: Len Brown commit 54ef0ec22a39071a4e7fbedd201cecac9ac6e8a7 Author: Becky Bruce Date: Fri May 2 14:40:38 2008 -0500 [POWERPC] Delete unused fec_8xx net driver This driver has been superseded by fs_enet and is no longer in use. Signed-off-by: Becky Bruce Signed-off-by: Kumar Gala commit ef5b87c71e5b411ef916c0316d5f304ee4ea9787 Author: Avi Kivity Date: Tue May 13 16:29:20 2008 +0300 KVM: Remove decache_vcpus_on_cpu() and related callbacks Obsoleted by the vmx-specific per-cpu list. Signed-off-by: Avi Kivity commit 5817dcff85553593cd2db8a44ebfd7e066493789 Author: Avi Kivity Date: Tue May 13 16:22:47 2008 +0300 KVM: VMX: Add list of potentially locally cached vcpus VMX hardware can cache the contents of a vcpu's vmcs. This cache needs to be flushed when migrating a vcpu to another cpu, or (which is the case that interests us here) when disabling hardware virtualization on a cpu. The current implementation of decaching iterates over the list of all vcpus, picks the ones that are potentially cached on the cpu that is being offlined, and flushes the cache. The problem is that it uses mutex_trylock() to gain exclusive access to the vcpu, which fires off a (benign) warning about using the mutex in an interrupt context. To avoid this, and to make things generally nicer, add a new per-cpu list of potentially cached vcus. This makes the decaching code much simpler. The list is vmx-specific since other hardware doesn't have this issue. Signed-off-by: Avi Kivity commit b2e03ca7485cac033a0667d9e45e28d32fdee9a5 Author: Alexey Dobriyan Date: Tue May 13 08:22:10 2008 -0500 JFS: switch to seq_files Signed-off-by: Alexey Dobriyan Signed-off-by: Dave Kleikamp commit 540cd688d1db3ac72baebd9b13558236eb3d29a0 Author: Avi Kivity Date: Tue May 13 13:23:38 2008 +0300 KVM: Handle virtualization instruction #UD faults during reboot KVM turns off hardware virtualization extensions during reboot, in order to disassociate the memory used by the virtualization extensions from the processor, and in order to have the system in a consistent state. Unfortunately virtual machines may still be running while this goes on, and once virtualization extensions are turned off, any virtulization instruction will #UD on execution. Fix by adding an exception handler to virtualization instructions; if we get an exception during reboot, we simply spin waiting for the reset to complete. If it's a true exception, BUG() so we can have our stack trace. Signed-off-by: Avi Kivity commit 92517d776c47206209cb556101dac0862d217c07 Author: Andrew Morton Date: Mon May 12 22:06:56 2008 -0700 KVM: ia64: don't delete files which we need.. Cc: "Zhang, Xiantao" Signed-off-by: Andrew Morton Signed-off-by: Avi Kivity commit 7d2e3cb7000b883a8e489485ac249be572fe17b1 Author: Jeff Garzik Date: Tue May 13 01:41:58 2008 -0400 [netdrvr] Trim trailing whitespace for several drivers Signed-off-by: Jeff Garzik commit 3f8cb098859bbea29d7b3765a3102e4a6bf81b85 Author: Jeff Garzik Date: Tue May 13 01:41:28 2008 -0400 drivers/net/lib8390: fix warning, trim trailing whitespace fix drivers/net/lib8390.c: In function ‘ei_tx_err’: drivers/net/lib8390.c:556: warning: unused variable ‘ei_local’ drivers/net/lib8390.c: In function ‘ei_rx_overrun’: drivers/net/lib8390.c:819: warning: unused variable ‘ei_local’ and also trim whitespace. Signed-off-by: Jeff Garzik commit 94f9d298ce215dada7ceaeb03e62f61d754d5705 Author: Paulius Zaleckas Date: Tue Apr 29 12:44:20 2008 +0300 3c359: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Kill xl_get_stats function, because by default it is used identical internal_stats function from net/core/dev.c Signed-off-by: Paulius Zaleckas Signed-off-by: Jeff Garzik commit 4711c841e4547a41f596bcf6c97473bc6a15126d Author: Paulius Zaleckas Date: Tue Apr 29 12:09:38 2008 +0300 3c527: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Signed-off-by: Paulius Zaleckas Signed-off-by: Jeff Garzik commit aa50911ade012470f3c6fe8f7f7868bfd328a4c2 Author: Paulius Zaleckas Date: Tue Apr 29 11:58:42 2008 +0300 3c523: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Signed-off-by: Paulius Zaleckas Signed-off-by: Jeff Garzik commit 966e37bca6a84299e0c3ed13e741db9c6e0b0f92 Author: Paulius Zaleckas Date: Wed Apr 30 02:03:55 2008 +0300 acenic: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. No need to memset it to 0, because it is allocated by kzalloc. Signed-off-by: Paulius Zaleckas Signed-off-by: Jeff Garzik commit de0561c43550f78cd837a24179f1859817f24578 Author: Paulius Zaleckas Date: Wed Apr 30 01:49:15 2008 +0300 6pack: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Kill sp_get_stats function, because by default it is used identical internal_stats function from net/core/dev.c Signed-off-by: Paulius Zaleckas Signed-off-by: Jeff Garzik commit cd65284f6ec482622d2b30cd9996712d830ba228 Author: Paulius Zaleckas Date: Wed Apr 30 01:20:20 2008 +0300 3c589_cs: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Signed-off-by: Paulius Zaleckas Signed-off-by: Jeff Garzik commit 2e8d31d574e26ded7688fb1f5c6a2349c9d427d1 Author: Paulius Zaleckas Date: Wed Apr 30 01:08:26 2008 +0300 3c574_cs: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Signed-off-by: Paulius Zaleckas Signed-off-by: Jeff Garzik commit e1eac92e4cea32b5254d0b835de16d11e589502c Author: Paulius Zaleckas Date: Mon May 5 16:24:21 2008 +0300 8139too: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Signed-off-by: Paulius Zaleckas Signed-off-by: Jeff Garzik commit 237225f70f159b607382b5ffcd86f36fc8915cfd Author: Paulius Zaleckas Date: Mon May 5 16:05:17 2008 +0300 8139cp: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Signed-off-by: Paulius Zaleckas Signed-off-by: Jeff Garzik commit ad0e8a4c15d82d55a731056eeef1288bf7e1c4dc Author: Paulius Zaleckas Date: Wed May 7 02:20:45 2008 +0300 8390.h: remove net_device_stats Remove no longer used net_device_stats. Should be applied to mainline only after applying previous two patches. Signed-off-by: Paulius Zaleckas Signed-off-by: Jeff Garzik commit 244d74ff209b635c10aac2a8fa5249a2a2c8d9d9 Author: Paulius Zaleckas Date: Wed May 7 02:20:40 2008 +0300 lib8390: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Signed-off-by: Paulius Zaleckas Signed-off-by: Jeff Garzik commit 8e2691658f4cd2e24beacb6dcba3c33b2ff10593 Author: Paulius Zaleckas Date: Wed May 7 02:20:36 2008 +0300 axnet_cs: use netstats in net_device structure Use net_device_stats from net_device structure instead of local. Signed-off-by: Paulius Zaleckas Signed-off-by: Jeff Garzik commit 7ef43ebaa538e0cc9063cbf84593a05091bcace2 Author: Allan Stephens Date: Mon May 12 15:42:28 2008 -0700 tipc: Fix race condition when creating socket or native port This patch eliminates the (very remote) chance of a crash resulting from a partially initialized socket or native port unexpectedly receiving a message. Now, during the creation of a socket or native port, the underlying generic port's lock is not released until all initialization required to handle incoming messages has been done. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 4e3e6dcb43c3669a8817cb3d0f920f91661afd98 Author: Allan Stephens Date: Mon May 12 15:41:53 2008 -0700 tipc: Enhancements to name table initialization This patch enhances the initialization of TIPC's name table by removing a pointless spinlock operation, and by using kcalloc() to detect requests for an oversized name table. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 88f85a55c0645c2b7e03bf34d2a90eddf6de34fa Author: Marcin Slusarz Date: Mon May 12 16:42:43 2008 -0500 JFS: 0 is not valid errno value so return NULL from jfs_lookup Signed-off-by: Marcin Slusarz Signed-off-by: Dave Kleikamp Cc: jfs-discussion@lists.sourceforge.net Cc: Alexander Viro commit 0327318445d55808991a63137cfb698a90ab6adf Author: Yinghai Lu Date: Fri Apr 18 17:49:15 2008 -0700 x86_64: simplify the memtest parameter setting use CONFIG_MEMTEST only. if it is set, will have memtest=0 (disabled) need to have memtest=4 in command line to test more patterns. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b65e04b53ffcb4002737a5346c9ff8865c37be58 Author: Yinghai Lu Date: Sat Apr 19 01:30:16 2008 -0700 x86: don't call pxm_to_node again also make bus_numa work even if ACPI_NUMA is not defined. don't call pxm_to_node again, and use node directly. Signed-off-by: Yinghai Lu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 928c40db6eff51f54cfc8aea51b4e3edcb4d65a5 Author: Yinghai Lu Date: Wed Feb 20 12:41:52 2008 -0800 x86: make dev_to_node return online node a numa system (with multi HT chains) may return node without ram. Aka it is not online. Try to get an online node, otherwise return -1. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 205f93288093df69f9ab5f6981aef27b91088b28 Author: Dave Jones Date: Mon May 5 17:52:52 2008 -0400 x86: add new cache descriptor The latest rev of Intel doc AP-485 details a new cache descriptor that we don't yet support. A 6MB 24-way assoc L2 cache. Signed-off-by: Dave Jones Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5cb04df8d3f03e37a19f2502591a84156be71772 Author: Ingo Molnar Date: Sun May 4 19:49:04 2008 +0200 x86: defconfig updates refresh 32-bit defconfig too, and update the 64-bit configs as well, the defconfig should be much more useful by default, so most of the updates are the enabling of various options. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b5d958ea66ac11b1190c24f042f517adf9229a98 Author: Auke Kok Date: Wed Apr 9 13:17:39 2008 -0700 e1000e: set CONFIG_E1000E=y in x86 defconfigs This adds to the already default CONFIG_E1000=y in these files. Signed-off-by: Auke Kok Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 622e3f28e50fe30cc199c735440cd7c75e0033b0 Author: Cyrill Gorcunov Date: Sun May 4 19:57:19 2008 +0400 x86: 64-bit defconfig remake The current x86_64_defconfig contains a number of nonexistent symbols. Lets fix it. Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f59a9310b97879159ef4d25227bc270278f1ee71 Author: Hiroshi Shimamoto Date: Fri May 2 16:44:52 2008 -0700 x86: nmi and irq counters are unsigned in nmi_64.c __nmi_count, apic_timer_irqs and irq0_irqs are unsigned. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit f784946ded3e734524d1f48a6a8286b8a152c3b9 Author: Hiroshi Shimamoto Date: Fri May 2 16:45:08 2008 -0700 x86: use per_cpu data in nmi_32 use per_cpu for per CPU data. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 3bb6fbf9969a8bbe4892968659239273d092e78a Author: Pavel Machek Date: Tue Apr 15 12:43:57 2008 +0200 x86 gart: factor out common code Cleanup gart handling on amd64 a bit: move common code into enable_gart_translation , and use symbolic register names where appropriate. Signed-off-by: Pavel Machek Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 330fce23dab6e6a3d1979e55f27aba4c0c301331 Author: Yinghai Lu Date: Sat Apr 19 01:31:45 2008 -0700 x86: reserve dma32 early for gart fix we can use free_bootmem() directly. Signed-off-by: Yinghai Lu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 55c0d721df80dcc505dc888e85d4ca51ea150ce9 Author: Yinghai Lu Date: Sat Apr 19 01:31:11 2008 -0700 x86: clean up aperture_64.c 1. use symbolic register names where appropriate. 2. num to bus or slot changing 3. handle for new opteron for bus other than 0 Signed-off-by: Yinghai Lu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 7677b2ef6c0c4fddc84f6473f3863f40eb71821b Author: Yinghai Lu Date: Mon Apr 14 20:40:37 2008 -0700 x86_64: allocate gart aperture from 512M because we try to reserve dma32 early, so we have chance to get aperture from 64M. with some sequence aperture allocated from RAM, could become E820_RESERVED. and then if doing a kexec with a big kernel that uncompressed size is above 64M we could have a range conflict with still using gart. So allocate gart aperture from 512M instead. Also change the fallback_aper_order to 5, because we don't have chance to get 2G or 4G aperture. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8c9fd91a0dc503f085169d44f4360be025f75224 Author: Yinghai Lu Date: Sun Apr 13 18:42:31 2008 -0700 x86: checking aperture size order some systems are using 32M for gart and agp when memory is less than 4G. Kernel will reject and try to allcate another 64M that is not needed, and we will waste 64M of perfectly good RAM. this patch adds a workaround by checking aper_base/order between NB and agp bridge. If they are the same, and memory size is less than 4G, it will allow it. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1edc1ab3f68168ec6815e6d630f38948a6da005a Author: Yinghai Lu Date: Sun Apr 13 01:11:41 2008 -0700 x86: agp_gart size checking for buggy device while looking at Rafael J. Wysocki's system boot log, I found a funny printout: Node 0: aperture @ de000000 size 32 MB Aperture too small (32 MB) AGP bridge at 00:04:00 Aperture from AGP @ de000000 size 4096 MB (APSIZE 0) Aperture too small (0 MB) Your BIOS doesn't leave a aperture memory hole Please enable the IOMMU option in the BIOS setup This costs you 64 MB of RAM Mapping aperture over 65536 KB of RAM @ 4000000 ... agpgart: Detected AGP bridge 20 agpgart: Aperture pointing to RAM agpgart: Aperture from AGP @ de000000 size 4096 MB agpgart: Aperture too small (0 MB) agpgart: No usable aperture found. agpgart: Consider rebooting with iommu=memaper=2 to get a good aperture. it means BIOS allocated the correct gart on the NB and AGP bridge, but because a bug in the silicon (the agp bridge reports the wrong order, it wants 4G instead) the kernel will reject that allocation. Also, because the size is only 32MB, and we try to get another 64M for gart, late fix_northbridge can not revert that change because it still reads the wrong size from agp bridge. So try to double check the order value from the agp bridge, before calling aperture_valid(). [ mingo@elte.hu: 32-bit fix. ] Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit aa134f1b09df6beaa4d031a50d5fda1f3cebce6c Author: Pavel Machek Date: Tue Apr 8 10:49:03 2008 +0200 x86: iommu: use symbolic constants, not hardcoded numbers Move symbolic constants into gart.h, and use them instead of hardcoded constant. Signed-off-by: Pavel Machek Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f8096f92b87d81c55ed63964d27baa9ce5ffe508 Author: Jan Beulich Date: Tue Apr 22 16:27:29 2008 +0100 x86: separate cmpxchg8b checking from PAE checking .. allowing the former to be use in non-PAE kernels, too. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit aaaf92ba88d5a2664185ba20fd34308c8581d59f Author: Thomas Gleixner Date: Mon May 5 16:35:21 2008 +0200 x86: janitor CPA statistics patch 1) Remove __meminit from update_pages_count. It is used inside split_pages() 2) Make the code depend on PROC_FS. Doing statistics for nothing is useless and not adding useless code is nice to the Linux tiny folks. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit ac9f6b0ed6fbd47d1ad2c1d8435df29a15222f27 Author: Andi Kleen Date: Fri May 2 11:46:49 2008 +0200 x86: CPA add statistics about state of direct mapping v4 Add information about the mapping state of the direct mapping to /proc/meminfo. I chose /proc/meminfo because that is where all the other memory statistics are too and it is a generally useful metric even outside debugging situations. A lot of split kernel pages means the kernel will run slower. This way we can see how many large pages are really used for it and how many are split. Useful for general insight into the kernel. v2: Add hotplug locking to 64bit to plug a very obscure theoretical race. 32bit doesn't need it because it doesn't support hotadd for lowmem. Fix some typos v3: Rename dpages_cnt Add CONFIG ifdef for count update as requested by tglx Expand description v4: Fix stupid bugs added in v3 Move update_page_count to pageattr.c Signed-off-by: Andi Kleen Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 77b52b4c5c66175553ee59eb43f74366f1e54bde Author: Venki Pallipadi Date: Mon May 5 19:09:10 2008 -0700 x86: add "debugpat" boot option enable debug messages by a boot option "debugpat". Signed-off-by: Venkatesh Pallipadi Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 988f7b5789ccf5cfed14c72e28573a49f0cb4809 Author: venkatesh.pallipadi@intel.com Date: Tue Mar 18 17:00:22 2008 -0700 x86: PAT export resource_wc in pci sysfs For the ranges with IORESOURCE_PREFETCH, export a new resource_wc interface in pci /sysfs along with resource (which is uncached). Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Acked-by: Jesse Barnes Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 403d8efc94cd02ae36e7db13c4edf1d06d7b7fac Author: Thomas Gleixner Date: Mon May 5 18:13:50 2008 +0200 x86: irq_32 move 4kstacks code to one place Move the 4KSTACKS related code to one place. This allows to un#ifdef do_IRQ() and share the executed on stack for the stack overflow printk and the softirq call. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit de9b10af1287bf25b9c0433de53a2e95ef611aa7 Author: Thomas Gleixner Date: Mon May 5 15:58:15 2008 +0200 x86: janitor stack overflow warning patch Add KERN_WARNING to the printk as this could not be done in the original patch, which allegedly only moves code around. Un#ifdef do_IRQ. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 04b361abfdc522239e3a071f3afdebf5787d9f03 Author: Andi Kleen Date: Mon May 5 12:36:38 2008 +0200 i386: Execute stack overflow warning on interrupt stack v2 Previously the reporting printk would run on the process stack, which risks overflow an already low stack. Instead execute it on the interrupt stack. This makes it more likely for the printk to make it actually out. It adds one not taken test/branch more to the interrupt path when stack overflow checking is enabled. We could avoid that by duplicating more code, but that seemed not worth it. Based on an observation by Eric Sandeen. v2: Fix warnings in some configs Signed-off-by: Andi Kleen Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit ce17833183bf0a08ce3d174a2088eff0a06f2080 Author: Alan Mayer Date: Wed Apr 16 15:17:20 2008 -0500 x86: change FIRST_SYSTEM_VECTOR to a variable, fix Fixes the build error introduced by my FIRST_SYSTEM_VECTOR patch Signed-off-by: Alan Mayer Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 305b92a2323eeaa4b481f409d54f778dd7e21a46 Author: Alan Mayer Date: Tue Apr 15 15:36:56 2008 -0500 x86: change FIRST_SYSTEM_VECTOR to a variable The SGI UV system needs several more system vectors than a vanilla x86_64 system. Rather than burden the other archs with extra system vectors that they don't use, change FIRST_SYSTEM_VECTOR to a variable, so that it can be dynamic. Signed-off-by: Alan Mayer Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1a331957efd214fc3a84f70956dfaec65e70c031 Author: Thomas Gleixner Date: Sat May 3 00:30:50 2008 +0200 x86: move eisa_set_level_irq declaration to header Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 88a83350bc1955fa9d8fca059e19bc360fcef2ba Author: Thomas Gleixner Date: Fri May 2 23:19:26 2008 +0200 x86: declare setup_apic_routing Global functions need a prototype. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 22067d4501bfb47c8ca34144f68fad734178914d Author: Thomas Gleixner Date: Fri May 2 22:14:44 2008 +0200 x86: unify irq.h Not much difference in those files. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 22dc12d1f694b9af88e616ab758ff90c69d0fc83 Author: Thomas Gleixner Date: Fri May 2 22:10:39 2008 +0200 x86: unify hwirq.h Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 97e7b6f54c0d66586a658e985630cd63040311fb Author: Thomas Gleixner Date: Fri May 2 22:02:25 2008 +0200 x86: unify apic interrupt function declarations Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 0bc471d93051a19545257909bc2ed2ad3b389b54 Author: Thomas Gleixner Date: Fri May 2 21:55:12 2008 +0200 x86: move BUILD_IRQ macro magic to i8259_64.c i8259_64.c is the only place which uses those macros. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 9b7dc567d03d74a1fbae84e88949b6a60d922d82 Author: Thomas Gleixner Date: Fri May 2 20:10:09 2008 +0200 x86: unify interrupt vector defines The interrupt vector defines are copied 4 times around with minimal differences. Move them all into asm-x86/irq_vectors.h Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 2e0884362d1fe36ef2d673d763d6ce35e2044e66 Author: Thomas Gleixner Date: Fri May 2 19:00:30 2008 +0200 x86: move common declarations to hw_irq.h Move the common declarations from hw_irq_32/64 into hw_irq.h Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 6859a8402945cf1d74af75a2e1aa4e327a506ab4 Author: Alan Mayer Date: Wed Mar 26 16:11:31 2008 -0500 x86: resize NR_IRQS for large machines On machines with very large numbers of cpus, tables that are dimensioned by NR_IRQS get very large, especially the irq_desc table. They are also very sparsely used. When the cpu count is > MAX_IO_APICS, use MAX_IO_APICS to set NR_IRQS, otherwise use NR_CPUS. Signed-off-by: Alan Mayer Reviewed-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 41b3eae669fb1ef6ae4acaa937b4e4617a1aa078 Author: Jan Beulich Date: Tue Apr 22 16:29:26 2008 +0100 x86: minor polishing to top-level arch Makefile Use build target when creating compatibility link, and use $(boot) where possible. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar commit 8a6c160a2a13d82c75a50af7282b906cce948df5 Author: Ingo Molnar Date: Wed Apr 30 22:13:44 2008 +0200 x86: redo thread_info.h change redo Roland's "signals: x86 TS_RESTORE_SIGMASK" ontop of the unified thread_info.h file. Signed-off-by: Ingo Molnar commit b84200b3a0fafa167185201319940d8df62a8c7b Author: Christoph Lameter Date: Mon Apr 28 18:52:40 2008 -0700 x86: thread_info: merge thread_info allocation Make them similar so that both use THREAD_ORDER and THREAD_FLAGS and have a THREAD_SIZE definition that is setup in asm/page_xx.h Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 00c1bb133cf351fa3904b00a48a9cf535d018de6 Author: Christoph Lameter Date: Mon Apr 28 18:52:39 2008 -0700 x86: thread_info: merge tif masks The TIF masks are basically the same. x86_32 also has _TIF_SYSCALL_EMU which is zero for the 64 bit case. The tif masks become the same. x86_64 has an additional _TIF_DONOTIFY_MASK. Does not hurt for the 32 bit case since it is only used in x86_64 arch code. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e57549b017552f7a493b366f5ccd4781801083e4 Author: Christoph Lameter Date: Mon Apr 28 18:52:38 2008 -0700 x86: thread_info: merge TIF_ flags. Both TIF lists are essentially the same. x86_32 also has TIF_SYSCALL_EMU which must be undefined for the 64 bit case. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 24e2de6e28a453cd114b06215df2f9931cd0c342 Author: Christoph Lameter Date: Mon Apr 28 18:52:37 2008 -0700 x86: thread_info: PREEMPT_ACTIVE Same for both 32 and 64 bit so simply put it in to the common area. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3351cc03c0762353225a79507e38db4c1e656d52 Author: Christoph Lameter Date: Mon Apr 28 18:52:36 2008 -0700 x86: threadinfo: merge INIT_THREAD_INFO Both definitions are the same. So move to common x86 area. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 006c484bb3d9547e82a33a09668c9b54b912c8fb Author: Christoph Lameter Date: Mon Apr 28 18:52:35 2008 -0700 x86: common thread_info definitions Merge the thread_info definition into one structure definition for both arches. The __u32 is equal to unsigned long for 32 bit. sysenter_return is used both for the IA32 emulation for 64 and x86_32. Avoid complicated #ifdef by simply always including it. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f2ea3b1d4d7ab66d86da57899993282f3deb1f74 Author: Christoph Lameter Date: Mon Apr 28 18:52:34 2008 -0700 x86: threadinfo: merge thread sync state definitions Merge both. x86_64 has an additional TS_COMPAT that is harmless for 32 bit. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 12a638e13c68bbe187782518dab375f4fa800fc4 Author: Christoph Lameter Date: Mon Apr 28 18:52:33 2008 -0700 x86: threadinfo: common include files Move shared includes to a common area in thread_info.h Adds asm/types.h for x86_64 and linux/compiler.h for x86_32. Not needed but we can avoid some ifdeffing and it simplifies later joining. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2052e8d40ad58b1d364f900e70edfda62caa0874 Author: Christoph Lameter Date: Mon May 12 15:43:41 2008 +0200 x86: merge thread_info.h Simple merge of both thread_info_32.h and thread_info_64.h into thread_info.h. Comments for #ifndef __ASM_THREAD_INFO_H and #ifdef __KERNEL__ are the same. Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar commit 1c7d06d419dbe82c76fbb4d3e1fa61b2da2dc00b Author: Ingo Molnar Date: Wed Apr 30 22:12:05 2008 +0200 revert: thread_info.h change temporarily revert parts of "signals: x86 TS_RESTORE_SIGMASK". Signed-off-by: Ingo Molnar commit 8edc5cc5ec880c96de8e6686fb0d7a5231e91c05 Author: Venki Pallipadi Date: Mon May 12 15:43:34 2008 +0200 x86: remove 6 bank limitation in 64 bit MCE reporting code Eliminate the 6 bank restriction in 64 bit mce reporting code. This restriction is artificial (due to static creation of sysfs files) and 32 bit code does not have any such restriction. This change helps in reporting the details of machine checks on a machine check exception with errors in bank 6 and above on CPUs that support those banks. Without the patch, machine check errors in those banks are not reported. We still have 128 (MCE_EXTENDED_BANK) bank restriction instead of max 256 supported in hardware. That is not changed in the patch below as it will have some user level mcelog utility dependency, with bank 128 being used for thermal reporting currently. The patch below does not create sysfs control (bankNctl) for banks higher than 6 as well. That needs some pre-cleanup in /sysfs mce layout, removal of per cpu /sysfs entries for bankctl as they are really global system level control today. That change will follow. This basic change is critical to report the detailed errors on banks higher than 6. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Ingo Molnar commit 7c4728f4a865067d96fb84f1d9c65e0ccd1f355d Author: Thomas Gleixner Date: Sat May 10 21:42:14 2008 +0200 x86: print info about available HPET quirk We have a lot of HPET quirks available which might force enable HPET even when the BIOS does not enable it. Some of those quirks depend on the command line option "hpet=force". Andrew pointed out that hoping that the user will find out about this boot option is not really helpful. Emit a kernel info which informs the user about the "hpet=force" boot option when we enter a quirk which depends on this option and the user did not provide it. Signed-off-by: Thomas Gleixner commit e8aa4667baf74dfd85fbaab86861465acb811085 Author: Andreas Herrmann Date: Fri May 9 11:49:11 2008 +0200 x86: enable hpet=force for AMD SB400 Add quirk to allow forced usage of HPET on ATI SB400. I stumbled over machines where HPET is enabled but not reported by BIOS. This patch configures the HPET base address and makes it known to the OS. Signed-off-by: Andreas Herrmann Signed-off-by: Thomas Gleixner commit 6fd592daae2182adc47f405e20d07f34f52d07dd Author: Carlos R. Mafra Date: Mon May 5 20:11:22 2008 -0300 x86: clean up computation of HPET .mult variables While reading through the HPET code I realized that the computation of .mult variables could be done with less lines of code, resulting in a 1.6% text size saving for hpet.o So I propose the following patch, which applies against today's Linus -git tree. >From 0c6507e400e9ca5f7f14331e18f8c12baf75a9d3 Mon Sep 17 00:00:00 2001 From: Carlos R. Mafra Date: Mon, 5 May 2008 19:38:53 -0300 The computation of clocksource_hpet.mult tmp = (u64)hpet_period << HPET_SHIFT; do_div(tmp, FSEC_PER_NSEC); clocksource_hpet.mult = (u32)tmp; can be streamlined if we note that it is equal to clocksource_hpet.mult = div_sc(hpet_period, FSEC_PER_NSEC, HPET_SHIFT); Furthermore, the computation of hpet_clockevent.mult uint64_t hpet_freq; hpet_freq = 1000000000000000ULL; do_div(hpet_freq, hpet_period); hpet_clockevent.mult = div_sc((unsigned long) hpet_freq, NSEC_PER_SEC, hpet_clockevent.shift); can also be streamlined with the observation that hpet_period and hpet_freq are inverse to each other (in proper units). So instead of computing hpet_freq and using (schematically) div_sc(hpet_freq, 10^9, shift) we use the trick of calling with the arguments in reverse order, div_sc(10^6, hpet_period, shift). The different power of ten is due to frequency being in Hertz (1/sec) and the period being in units of femtosecond. Explicitly, mult = (hpet_freq * 2^shift)/10^9 (before) mult = (10^6 * 2^shift)/hpet_period (after) because hpet_freq = 10^15/hpet_period. The comments in the code are also updated to reflect the changes. As a result, text data bss dec hex filename 2957 425 92 3474 d92 arch/x86/kernel/hpet.o 3006 425 92 3523 dc3 arch/x86/kernel/hpet.o.old a 1.6% reduction in text size. Signed-off-by: Carlos R. Mafra Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 150c9173031d43746d70582a17931350f3da8932 Author: Russell King Date: Mon May 12 17:37:21 2008 +0100 dyntick: remove deferences from SH SH does not have a configuration option for NO_IDLE_HZ their Kconfig files, yet their defconfig files lists them. Remove those references. Signed-off-by: Russell King commit ee9c578527a93c66becb526c4a122c5358a959c5 Author: Russell King Date: Sun Apr 20 13:59:33 2008 +0100 dyntick: Remove last reminants of dyntick support Remove the last reminants of dyntick support from the generic kernel. Signed-off-by: Russell King commit 205bee6ad804d7034773b5978c74dde495df2301 Author: Russell King Date: Sun Apr 20 13:57:26 2008 +0100 [ARM] dyntick: Remove obsolete and unused ARM dyntick support dyntick is superseded by the clocksource/clockevent infrastructure, using the NO_HZ configuration option. No one implements dyntick on ARM anymore, so it's pointless keeping it around. Remove dyntick support. Signed-off-by: Russell King commit d832218c28f2e12037017da8a691940c75aaab51 Author: Avi Kivity Date: Mon May 12 19:25:43 2008 +0300 KVM: VMX: Trivial vmcs_write64() code simplification Signed-off-by: Avi Kivity commit 20c2c1fd6c842caf70dcb1d94b9d58861949fd3d Author: Neil Horman Date: Fri May 9 15:14:50 2008 -0700 sctp: add sctp/remaddr table to complete RFC remote address table OID Add support for RFC3873 remote address table OID. +--(5) sctpAssocRemAddrTable | | | |--(-) sctpAssocId (shared index) | | | +--(1) sctpAssocRemAddrType (index) . | . +--(2) sctpAssocRemAddr (index) . | +--(3) sctpAssocRemAddrActive | +--(4) sctpAssocRemAddrHBActive | +--(5) sctpAssocRemAddrRTO | +--(6) sctpAssocRemAddrMaxPathRtx | +--(7) sctpAssocRemAddrRtx | +--(8) sctpAssocRemAddrStartTime This patch places all the requsite data in /proc/net/sctp/remaddr. Signed-off-by: Neil Horman Signed-off-by: Vlad Yasevich Signed-off-by: David S. Miller commit 88a0a948e752bb9b617a8c55417a9fd9b0257199 Author: Vlad Yasevich Date: Fri May 9 15:14:11 2008 -0700 sctp: Support the new specification of sctp_connectx() The specification of sctp_connectx() has been changed to return an association id. We've added a new socket option that will return the association id as the return value from the setsockopt() call. The library that implements sctp_connectx() interface will implement both socket options. Signed-off-by: Vlad Yasevich Signed-off-by: David S. Miller commit d364d9276b54af16fcb4db83f1315b620daec102 Author: Wei Yongjun Date: Fri May 9 15:13:26 2008 -0700 sctp: Bring SCTP_DELAYED_ACK socket option into API compliance Brings delayed_ack socket option set/get into line with the latest ietf socket extensions API draft, while maintaining backwards compatibility. Signed-off-by: Wei Yongjun Signed-off-by: Vlad Yasevich Signed-off-by: David S. Miller commit 783144b6567f9ba84a53d902d684186b4ed6985a Author: Stefan Richter Date: Sun May 4 16:54:14 2008 +0200 ieee1394: sbp2: use correct size of command descriptor block Boaz Harrosh wrote: > cmd->cmd_len is now guarantied to be set properly at all cases. > And some commands you want to support will not be set correctly > by COMMAND_SIZE(). Signed-off-by: Stefan Richter commit 5c5e12898af0978a780991950be12d0d73c02f04 Author: Johannes Berg Date: Sat May 3 00:44:09 2008 +0200 mac80211: fix wme code In commit e100bb64bf7cdeae7f742a65ee1985649a7fd1b4 (mac80211: QoS related cleanups) I accidentally changed a variable from int to u16 causing a warning that a comparison for < 0 was always false. John thought this was a missing deletion of code and removed the warning by deleting the never executed branch of code in commit 3df5ee60f1ee559b1417397461891f8b483e8089 (wireless: fix warning introduced by "mac80211: QoS related cleanups") but the problem really was my mistake of using a u16 variable for the queue variable when that variable can also contain an error code. This patch restores the original code and variable type. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 3df5ee60f1ee559b1417397461891f8b483e8089 Author: John W. Linville Date: Thu May 1 17:07:32 2008 -0400 wireless: fix warning introduced by "mac80211: QoS related cleanups" net/mac80211/wme.c: In function ‘wme_qdiscop_enqueue’: net/mac80211/wme.c:219: warning: comparison is always false due to limited range of data type drivers/net/wireless/p54/p54common.c: In function ‘p54_conf_tx’: drivers/net/wireless/p54/p54common.c:947: warning: comparison is always false due to limited range of data type Signed-off-by: John W. Linville commit 3a4d3af700b3d78904775d9a9efe0858b5e1e955 Author: Ivo van Doorn Date: Mon Apr 21 19:01:40 2008 +0200 rt2x00: Clarify supported chipsets in Kconfig As reported by Filipus Klutiero , the rt2x00 Kconfig entries should be updated with specific chipset notifications. This cleans up Kconfig by explicitly mentioning the supported chipsets for each drivers, and uses the same chipset family names as mentioned on the Ralink website. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 652e3f208619dfe75867349d6164afe735eaf159 Author: Holger Schurig Date: Wed Apr 30 10:51:15 2008 +0200 libertas: allow removal of card at any time This fixes several problems I had: * when removing the card while the card was scanning or associtating, it could happen that destroy_workqueue() stuck and didn't return. * make sure the command function doesn't run while we remove the list of pending commands * for still unknown reason, I had calls to lbs_stop_card() with priv==NULL Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit a63e5cb22fcc8590abc7d5050118a6d3589ed95f Author: Holger Schurig Date: Wed Apr 30 10:50:39 2008 +0200 libertas: make some functions void They don't return anything meaningfull and no-one cares about their results. Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit 5f505d90250c136e1cf63e3ae85e7d3ff3077c1d Author: Holger Schurig Date: Wed Apr 30 10:50:07 2008 +0200 libertas: debug output tweaks for lbs_thread * make debug output match the variable name * always report that lbs_remove_rtap() has has been exited Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit e100bb64bf7cdeae7f742a65ee1985649a7fd1b4 Author: Johannes Berg Date: Wed Apr 30 18:51:21 2008 +0200 mac80211: QoS related cleanups This * makes the queue number passed to drivers a u16 (as it will be with skb_get_queue_mapping) * removes the useless queue number defines * splits hw->queues into hw->queues/ampdu_queues * removes the debugfs files for per-queue counters * removes some dead QoS code * removes the beacon queue configuration for IBSS so that the drivers now never get a queue number bigger than (hw->queues + hw->ampdu_queues - 1) for tx and only in the range 0..hw->queues-1 for conf_tx. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 36fc6757fe711def63ea3686bf6ed475d714e114 Author: Johannes Berg Date: Tue Apr 29 17:19:00 2008 +0200 mac80211: remove queue info from ieee80211_tx_status The queue info in struct ieee80211_tx_status is never used. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 57ffc589a92424f9def74fe0d49b2f7763ff07fd Author: Johannes Berg Date: Tue Apr 29 17:18:59 2008 +0200 mac80211: clean up get_tx_stats callback The callback takes a ieee80211_tx_queue_stats with a contained array of ieee80211_tx_queue_stats_data, remove the former, rename the latter to ieee80211_tx_queue_stats and make tx_stats() take the array directly. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 3e0d4cb12f6fd97193a455b49125398b2231c87c Author: Tomas Winkler Date: Thu Apr 24 11:55:38 2008 -0700 iwlwifi: rename iwl-4965.h to iwl-dev.h This patch renames iwl-4965.h to iwl-dev.h Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 5a36ba0e412a0e12a8bf2648a075226c1dd7870d Author: Tomas Winkler Date: Thu Apr 24 11:55:37 2008 -0700 iwlwifi: rename iwl-4965-commands to iwl-commands.h This patch renames iwl-4965-commands to iwl-commands.h Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit e86fe9f64d7cc3da9f445f3d0a2c5fd265fcd445 Author: Tomas Winkler Date: Thu Apr 24 11:55:36 2008 -0700 iwlwifi-5000: add nic config handler for 5000 HW This patch adds nic config handler for 5000 HW Family Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit f1f6941500602504fa9cd97294bfb3df7f22384f Author: Tomas Winkler Date: Thu Apr 24 11:55:35 2008 -0700 iwlwifi-5000: add eeprom check version handler This patch adds implementation for eeprom check version handler for 5000 HW Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 7839fc03862704677902be2d63c0482fee3deae3 Author: Emmanuel Grumbach Date: Thu Apr 24 11:55:34 2008 -0700 iwlwifi-5000: update the byte count in SCD This patch udpates the byte count of the frame in the registers of the scheduler. This patch also moves two defines in iwl-4965.h to a more appropriate area in the file. Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit d4100dd985dcc13cc7bd1712ce10dea51b7c8261 Author: Ron Rindjunsky Date: Thu Apr 24 11:55:33 2008 -0700 iwlwifi-5000: add iwl 5000 shared memory handlers This patch fills the needed handlers for shared memory for iwl 5000 family Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit fcf623df17197adf10e22ddeba90c56504edce0f Author: Tomas Winkler Date: Thu Apr 24 11:55:32 2008 -0700 iwlwifi-5000: Add HW REV of 5000 HW family This patch adds values fo CSR_HW_REV for 5000 HW family Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 1179f18df9fa3449ae6011042df50d9b9b012814 Author: Tomas Winkler Date: Thu Apr 24 11:55:31 2008 -0700 iwlwifi-5000: adjust antennas names in 5000 HW family This patch use new defines for antennas Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 33fd503346ad86bd7470a0f8c4c3080393d14233 Author: Emmanuel Grumbach Date: Thu Apr 24 11:55:30 2008 -0700 iwlwifi-5000: add run time calibrations for 5000 This patch adds support for run time calibrations for the 5000 family HW. Those calibrations are sensitivity calibration, and chain noise calibration. Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit c031bf806fef4854b02266a4105f55ed31f2d1a8 Author: Emmanuel Grumbach Date: Thu Apr 24 11:55:29 2008 -0700 iwlwifi-5000: update the CT-Kill value for 5000 series This patch upadtes the CT-Kill value for 5000 series. Signed-off-by: Assaf Krauss Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit fdd3e8a4ff96d03121b21946bfa684f3b5d783c6 Author: Tomas Winkler Date: Thu Apr 24 11:55:28 2008 -0700 iwlwifi-5000: adding iwl5000 HW parameters This patch adds iwl 5000 HW parameters Signed-off-by: Tomas Winkler Signed-off-by: Ron Rindjunsky Signed-off-by: John W. Linville commit 25ae3986d7ed4303fabc883a87b74956bd59c22c Author: Tomas Winkler Date: Thu Apr 24 11:55:27 2008 -0700 iwlwifi-5000: EEPROM settings for 5000 This patch adds eeprom handlers and values for 5000 HW family Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 88acbd3b32692ae786019ce642c6150b355f4b1e Author: Tomas Winkler Date: Thu Apr 24 11:55:26 2008 -0700 iwlwifi-5000: use iwl4965_set_pwr_src in 5000 This patch makes use of iwl4965_set_pwr_src in 5000 HW family Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 30d59260d54686681e36d3055ff58c58ca3617da Author: Tomas Winkler Date: Thu Apr 24 11:55:25 2008 -0700 iwlwifi-5000: add apm_init handler for 5000 HW family This patch adds apm_init handler for 5000 HW family Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit da8dec29d7928dcc4ddf6b41d7c4c9cef522c9df Author: Tomas Winkler Date: Thu Apr 24 11:55:24 2008 -0700 iwlwifi-5000: add ops infrastructure for 5000 This patch adds handler framework for 5000 family HW Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 5a6a256e195380c062100dffad15f984656772c2 Author: Tomas Winkler Date: Thu Apr 24 11:55:23 2008 -0700 iwlwifi-5000: adding initial recognition for the 5000 family This patch adds initial support for recognizing the iwl 5000 family of NICs ID Signed-off-by: Tomas Winkler Signed-off-by: Ron Rindjunsky Signed-off-by: John W. Linville commit 694cc56dbb818fe689f721fb53452eb5ad3f8e9a Author: Tomas Winkler Date: Thu Apr 24 11:55:22 2008 -0700 iwlwifi: wrapping nic configuration in iwl core handler This patch wraps nic hw configuration in a iwl core handler Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit e4d18d817f0ffc830bce57906b2a7dd9e713c388 Author: Tomas Winkler Date: Thu Apr 24 11:55:21 2008 -0700 iwlwifi: remove unnecessary apmg settings This patch remove settings of APMG_PS_CTRL_VAL_RESET_REQ from 4965 this should be used only for 3945 Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit d4789efe5627858c212753bbac4316198f819486 Author: Emmanuel Grumbach Date: Thu Apr 24 11:55:20 2008 -0700 iwlwifi: move hw_rx_handler_setup to iwl-4965.c This patch moves hw_rx_handler_setup to iwl-4965.c Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit a395b92024d9b8f9403c06f9ea8d425f1883d7d8 Author: Tomas Winkler Date: Thu Apr 24 11:55:19 2008 -0700 iwlwifi: remove 49 prefix from general CSR values This patch change CSR49_ to CSR_ for values used in other HW Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit b0692f2ff308f2645a43b415393d934eb939cc6c Author: Emmanuel Grumbach Date: Thu Apr 24 11:55:18 2008 -0700 iwlwifi: move verify_ucode functions to iwl-core This patch moves verify_ucode functions to iwl-core. Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 5b28d3c156472cfb713fafecdf398739d22a0738 Author: Ivo van Doorn Date: Mon Apr 21 19:02:35 2008 +0200 rt2x00: Release rt2x00 2.1.5 Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 9a46d44eda55ad87a727fe351b0ab27c23d4555c Author: Ivo van Doorn Date: Mon Apr 21 19:02:17 2008 +0200 rt2x00: Fix kernel-doc Add missing kernel-doc variables for structures/functions. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit bd394a74a0e81efb15feaa8d7d10a0eaa8f4bf07 Author: Ivo van Doorn Date: Mon Apr 21 19:01:58 2008 +0200 rt2x00: Add helper macros Add some helper macro's to help determining the the timeout for USB register access. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit e58c6aca99357d7f85f18e0b661d8c5a87f926a9 Author: Ivo van Doorn Date: Mon Apr 21 19:00:47 2008 +0200 rt2x00: Use rt2x00 queue numbering Use the rt2x00 queue enumeration as much as possible, removing the usage of the mac80211 queue numbering wherever it is possible. This makes it easier for mac80211 to change it queue identification scheme without having to deal with big changes in the rt2x00 code. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 62e70cf8568151a41e8525ddf0e56c0380a71cfd Author: Ivo van Doorn Date: Mon Apr 21 18:59:54 2008 +0200 rt2x00: Remove DRIVER_SUPPORT_MIXED_INTERFACES A lot more is needed to support mixed interfaces then just this flag, such things need new redesigns in rt2x00lib to actually make it happen. So far there doesn't exist a Ralink chipset that can handle it, so we might as well remove the flag for now and see what should be done whenever a device appears that can handle it. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 2d9ccf842905063f774c28f329ac5ab3a84d3571 Author: Ivo van Doorn Date: Mon Apr 21 18:59:48 2008 +0200 rt2x00: Support hardware RTS and CTS-to-self frames If the driver has set the set_rts_threshold() callback function to mac80211 it is capable of generating RTS and CTS-to-self frames inside the hardware and rt2x00lib doesn't have to create them in software. Only rt2800pci and rt2800usb support this feature. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit e40ac414c0130358f9eb068f4993a37f013621be Author: Michael Buesch Date: Fri Apr 25 21:10:54 2008 +0200 b43: Don't disable IRQs in mac_suspend This patch removes the IRQ-disable from mac_suspend. The main advantage of this is to get rid of the IRQ-sync call in mac_suspend. We need to remove the MAC suspend bit from the IRQ service mask, as otherwise the IRQ handler would race with us. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit f93d65feb3dc48fe5e285fa5a35dacea3601835f Author: Tomas Winkler Date: Wed Apr 23 17:15:08 2008 -0700 iwlwifi: 3945 remove unused SCD definitions This patch remove SCD definitions form iwl-3945-hw.h The values from iwl-prph.h are used Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 4b52c39dc6fa4ffa598c778e72850f9a8ccca584 Author: Emmanuel Grumbach Date: Wed Apr 23 17:15:07 2008 -0700 iwlwifi: move Flow Handlers define to iwl-fh.h This patch moves Flow Handlers define to a new file iwl-fh.h Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 11bf925aa31f72b9a88b2dca47f3c2e06c42dbac Author: Ron Rindjunsky Date: Wed Apr 23 17:15:06 2008 -0700 iwlwifi: iwl-sta redundant includes clean up This patch cleans unnecessary includes in iwl-sta.[hc] Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit c7de35cd1c8b135398899f42475fa8e9d672d46e Author: Ron Rindjunsky Date: Wed Apr 23 17:15:05 2008 -0700 iwlwifi: unify init driver flow This patch does the following: 1 - moving init_drv from handler to regular function call 2 - move the init driver flow from iwl4965 to iwlcore, thus unify it to all iwl family as a single flow 3 - move some general purpose functions from iwl4965 to iwlcore Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 038669e49c30867956a7fa0d06c6e0e72bb38fa8 Author: Emmanuel Grumbach Date: Wed Apr 23 17:15:04 2008 -0700 iwlwifi: clean up register names and defines This patch cleans up and renames some of the SCD registers. It move SCD definitions into iwl-prhp.h file Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 07bc28ed87424af13f622b7c4e2a1bff06112d94 Author: Guy Cohen Date: Wed Apr 23 17:15:03 2008 -0700 iwlwifi: more RS improvements Main changes: 1. no need to re-calculate expected_tpt when only toggling antenna 2. changing the code to be more strict on input and status of variables 3. enhanced debug prints 4. move to search table only if improving tpt (don't move if SR is improved but tpt is not) Signed-off-by: Guy Cohen Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit f935a6daa07ac78a35d1513fc61c88774b628a4c Author: Guy Cohen Date: Wed Apr 23 17:15:02 2008 -0700 iwlwifi: rate sacaling fixes 1. Fixing support for tx in antenna C 2. Enable stay_in_column expiration after 2 seconds Signed-off-by: Guy Cohen Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 69fdb3090846de1cdc4fcb4f7e74533f5acbfa98 Author: Guy Cohen Date: Wed Apr 23 17:15:01 2008 -0700 iwlwifi: rs fix wrong parenthesizing in rs_get_lower_rate function Signed-off-by: Guy Cohen Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 3195cdb7424b4207f6903f1f3ddadcab49fa22f2 Author: Tomas Winkler Date: Wed Apr 23 17:15:00 2008 -0700 iwlwifi: reorganize TX RX constatns This patch moves TX/RX constants in 4969 headers Signed-off-by: Tomas Winkler Signed-off-by: Emmanuel Grumbach Signed-off-by: John W. Linville commit aade00cee60d8a2b1682b6804664049d7a369ac2 Author: Guy Cohen Date: Wed Apr 23 17:14:59 2008 -0700 iwlwifi: rate scale restructure toggle_antenna functions This patch add support for toggeling of A/B/C and AB/BC/AC antennas Signed-off-by: Guy Cohen Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit eecd6e5705fdea75c354559339a2b1f22ec400a0 Author: Guy Cohen Date: Wed Apr 23 17:14:58 2008 -0700 iwlwifi: rate scale module cleanups This patch does following changes 1. rs_get_expected_tpt_table: changed get to set 2. changed IWL_DEBUG_HT to IWL_DEBUG_RATE as appropriate 3. changed rs_get_supported_rates to be returning value function Signed-off-by: Guy Cohen Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 39e885049d9d5e6a65bb2543f82e136c02c253b5 Author: Guy Cohen Date: Wed Apr 23 17:14:57 2008 -0700 iwlwifi: TLC modifications 1. Merge TLC fixes from AP support code 2. Remove struct iwl4965_rate 3. Misc code restructuring Signed-off-by: Guy Cohen Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 399f490067992715044cbf2be1923e2f613b2e18 Author: Ron Rindjunsky Date: Wed Apr 23 17:14:56 2008 -0700 iwlwifi: handle shared memory This patch generalize the use of shared memory, as size of this memory is now allocated and freed by handlers, and also changes the location of those actions for better resource management Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 8614f360bdc7db8d35609a9c771601f1d45539e5 Author: Tomas Winkler Date: Wed Apr 23 17:14:55 2008 -0700 iwlwifi: check eeprom version in pci probe time This patch move eeprom version checking into pci probe stage Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit b661c8190e91c0baeebf813fec7ff8e99e155a54 Author: Tomas Winkler Date: Wed Apr 23 17:14:54 2008 -0700 iwlwifi: add iwl_hw_detect function to iwl core This patch add iwl_hw_detect function to iwl core Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 91238714affef7603446207ad03a594d95d2eb9d Author: Tomas Winkler Date: Wed Apr 23 17:14:53 2008 -0700 iwlwifi: add apm init handler This patch add apm init handler to iwlcore handler Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit fde0db310fd4979e0d8e6ba009975d23cc7e65ac Author: Guy Cohen Date: Mon Apr 21 15:42:01 2008 -0700 iwlwifi: HT antenna/chains overhaul 1. This patch restructures rate scale algorithm to support SISO, MIMO2, MIMO3 2. It adds support for detailed valid TX and RX antennas settings 3. It removes few unesfull antenna definitions Signed-off-by: Guy Cohen Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit d1141dfb3ab5545491e3aa15b7f0d7330a186281 Author: Emmanuel Grumbach Date: Mon Apr 21 15:42:00 2008 -0700 iwlwifi: HT IE in probe request clean up This patch cleans up the scan flow. This patch cleans up the insertion of the HT IE in the probe request. Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit cc2a8ea82ef869532cb7764b9eac30338773fe88 Author: Ron Rindjunsky Date: Mon Apr 21 15:41:59 2008 -0700 iwlwifi: support 64 bit DMA masks This patch adds consistent DMA masks for 64 bit Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit b73cdf27e0f412bcd01802287bb9710e6b74fca5 Author: Emmanuel Grumbach Date: Mon Apr 21 15:41:58 2008 -0700 iwlwifi: CT-Kill configuration fix This patch fixes the configuration of CT-Kill. Signed-off-by: Assaf Krauss Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit fe7c4040c3d8b7de521e9a48ae583580f8e31127 Author: Guy Cohen Date: Mon Apr 21 15:41:56 2008 -0700 iwlwifi: remove support for Narrow Channel (10Mhz) Setting Narrow Channel bit in the scan command caused the device not to send probe request on all the channels Signed-off-by: Guy Cohen Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 9e5b806ce3f3943964d3f95415a21223c1983933 Author: Emmanuel Grumbach Date: Mon Apr 21 15:41:55 2008 -0700 iwlwifi: remove uneeded callback This patch removes callbacks that can be replaced by the generic one. Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 82c78925eef1edc7bf96816074eae1ee59047d9a Author: Tomas Winkler Date: Mon Apr 21 15:41:54 2008 -0700 iwlwifi: remove includes to net/ieee80211.h this patch removes remaining includes to net/ieee80211.h Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 099b40b743df80372236ba1df9796f59ba297b1d Author: Ron Rindjunsky Date: Mon Apr 21 15:41:53 2008 -0700 iwlwifi: expanding HW parameters control This patch adds several parameters to priv.hw_params, for better control over HW capabilities variants Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 073d3f5f1b3b6512eb82a3d40c84dedb14dc6f73 Author: Tomas Winkler Date: Mon Apr 21 15:41:52 2008 -0700 iwlwifi: changing EEPROM layout handling This patch 1. changes the current EEPROM handling through a single HW struct layout representation, to more general approach, treating the EEPROM image as a flat bytes array, handling this image through ops functions and offsets. 2. Eeprom is dynamically allocated accroding HW type Signed-off-by: Tomas Winkler Signed-off-by: Ron Rindjunsky Signed-off-by: John W. Linville commit 5da4b55f78fb2ed40926b775d4f7c791594ecbd7 Author: Mohamed Abbas Date: Mon Apr 21 15:41:51 2008 -0700 iwlwifi: Add power level support Add power level support Signed-off-by: Mohamed Abbas Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 7eafd25d9559bd0f652449c222d38d63412e3d4a Author: Adrian Bunk Date: Mon Apr 21 11:48:34 2008 +0300 remove ieee80211_wx_{get,set}_auth() After the bcm43xx removal ieee80211_wx_{get,set}_auth() were no longer used. Signed-off-by: Adrian Bunk Signed-off-by: John W. Linville commit c12cf2109702c052688391f4171f239effb241bf Author: Adrian Bunk Date: Mon Apr 21 11:48:28 2008 +0300 remove ieee80211_tx_frame() After the softmac removal ieee80211_tx_frame() was no longer used. Signed-off-by: Adrian Bunk Signed-off-by: John W. Linville commit 712590de5e5c977ff96efa3a16fcc03b0e976c3c Author: Adrian Bunk Date: Mon Apr 21 11:47:51 2008 +0300 make sta_rx_agg_session_timer_expired() static sta_rx_agg_session_timer_expired() can now become static. Signed-off-by: Adrian Bunk Signed-off-by: John W. Linville commit f4440e8a47e216adfe32d96a35bef6d13d498b58 Author: Michael Buesch Date: Sun Apr 20 16:23:26 2008 +0200 b43: Remove some dead code This patch removes some dead code from the driver. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit f5eda47f45e90dfa38e25d569b9ac84ba94f8301 Author: Michael Buesch Date: Sun Apr 20 16:03:32 2008 +0200 b43: Rewrite LO calibration algorithm This patch distributes the Local Oscillator calibration bursts over time, so that calibration only happens when it's actually needed. Currently we periodically perform a recalibration of the whole table. The table is huge and this takes lots of time. Additionally only small bits of the table are actually needed at a given time. So instead of maintaining a huge table with all possible calibration values, we create dynamic calibration settings that a) We only calibrate when they are actually needed. b) Are cached for some time until they expire. So a recalibration might happen if we need a calibration setting that's not cached, or if the active calibration setting expires. Currently the expire timeout is set to 30 seconds. We may raise that in future. This patch reduces overall memory consumption by nuking the huge static calibration tables. This patch has been tested on several 4306, 4311 and 4318 flavours. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit 2afc49015db927fea7bc6ca33c0a60bf5d7c2c5f Author: Larry.Finger@lwfinger.net Date: Sat Apr 19 16:24:09 2008 +0200 ssb: Allow reading of 440-byte SPROM that is not rev 4 The current code checks for the special signature that signifies a revision 4 SPROM. Now that a rev. 8 SPROM with a 440-byte length has been found that may not have any special code, this check could be relaxed. With this patch, if the CRC is incorrect for a 256-byte SPROM, the code will immediately check for a 440-byte SPROM. If there is still a CRC error, the size is set to 440 bytes, which allows dumping of most of any 512-byte SPROM if one is encountered. Signed-off-by: Larry Finger Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit 3acea5b616c6d85008700a9d51cb02a81b2d0c67 Author: Ester Kummer Date: Thu Apr 17 16:05:14 2008 -0700 mac80211: correct skb allocation This patch corrects the allocation of skb in ADDBA req/resp and DELBA it removes redundant space u.addba_* are already counted in sizeof(*mgmt) Signed-off-by: Ester Kummer Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 079a253383c711d388adce527b57bd09297ee83c Author: Tomas Winkler Date: Thu Apr 17 16:03:39 2008 -0700 iwlwifi: export int iwl4965_set_pwr_src This handler is universal for most of the HW Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit a693f187facbf25925bbcf201db88c5384468646 Author: Tomas Winkler Date: Thu Apr 17 16:03:38 2008 -0700 iwlwifi: define ANA_PLL values in iwl-csr.h This patch defines ANA_PLL values in iwl-csr.h Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit fe07aa7acd9ec221d4440a38ffc9a58776cb34bc Author: Ron Rindjunsky Date: Thu Apr 17 16:03:37 2008 -0700 iwlwifi: arranging aggregation actions This patch makes some renaming of the ampdu_action functions inside iwlwifi, and adds checks for correct station id in Rx flows Signed-off-by: Ron Rindjunsky Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 3ec47732a0be038f15a0b8d852a4e4ff9c5b0196 Author: Emmanuel Grumbach Date: Thu Apr 17 16:03:36 2008 -0700 iwlwifi: HW crypto acceleration fixes This patch fixes several issues in security: 1) the uCode doesn't know about TKIP-MMIC failure, if uCode set RX_RES_STATUS_BAD_ICV_MIC, it means ICV failure: drop the packet silently. 2) do not allocate room in the key table of the uCode is the set_key call is a replacement of an old key 3) check the keyidx of the key in the uCode before removing it upon disable_key call Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit c6adbd2158fee972adcc6232de5e2ef375f1f782 Author: Ivo van Doorn Date: Thu Apr 17 21:11:18 2008 +0200 mac80211: Add IEEE80211_KEY_FLAG_PAIRWISE This adds a new flag to the ieee80211_key_conf structure. This flag will inform the driver the key is pairwise rather then a shared key. This is important for drivers who support both types of keys, and need to be informed which type of key this is. Alternative would be drivers checking the address argument of set_key(), but it will be safer when mac80211 is more explicit. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 988c0f723d0b1abb399e6e71d8bf3f8bf1949a70 Author: Johannes Berg Date: Thu Apr 17 19:21:22 2008 +0200 mac80211: a few code cleanups This has some code cleanups (some inspired by checkpatch), I got bored at probably a third of the output though so if somebody else wants to... Signed-off-by: Johannes Berg commit 1c014420583564ac09e3b67006f2e7050861e66b Author: Ivo van Doorn Date: Thu Apr 17 19:41:02 2008 +0200 mac80211: Replace ieee80211_tx_control->key_idx with ieee80211_key_conf The hw_key_idx inside the ieee80211_key_conf structure does not provide all the information drivers might need to perform hardware encryption. This is in particular true for rt2x00 who needs to know the key algorithm and whether it is a shared or pairwise key. By passing the ieee80211_key_conf pointer it assures us that drivers can make full use of all information that it should know about a particular key. Additionally this patch updates all drivers to grab the hw_key_idx from the ieee80211_key_conf structure. v2: Removed bogus u16 cast v3: Add warning about ieee80211_tx_control pointers v4: Update warning about ieee80211_tx_control pointers Signed-off-by: Ivo van Doorn Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 6f4083aadd57e3da12fa4e67fcadaec23138a315 Author: Tomas Winkler Date: Wed Apr 16 16:34:49 2008 -0700 iwlwifi: cleanup set_pwr_src This patch cleans up semantic of set_pwr_src set_pwr_src is now part of apm handlers group in iwlcore Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 947b13a7ccd31d8adbf41f466d6a1c770461596a Author: Tomas Winkler Date: Wed Apr 16 16:34:48 2008 -0700 iwlwifi: move find station to iwl-sta.c This patch move iwl_find_station into iwl-sta.c file Signed-off-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f0832f137c21d130998a0f97f97ac01a2d97210b Author: Emmanuel Grumbach Date: Wed Apr 16 16:34:47 2008 -0700 iwlwifi: HW dependent run time calibration This patch does several things: 1) rename CONFIG_IWL4965_SENSITIVITY to IWL4965_RUN_TIME_CALIB which is better semantic 2) move all the run time calibration to a new file: iwl-calib.c 3) simplify the sensitivity calibration flow and make it HW dependent 4) make the chain noise calibration flow HW dependent Signed-off-by: Emmanuel Grumbach Signed-off-by: Tomas Winkler Signed-off-by: John W. Linville commit 9071a6c25634d037adb7129dc84814a7f5c7c34a Author: Xiantao Zhang Date: Wed May 7 17:34:52 2008 +0800 KVM: ia64: fix GVMM module including position-dependent objects The GVMM module is position independent since it is relocated to the guest address space. Commit ea696f9cf ("ia64 kvm fixes for O=... builds") broke this by linking GVMM with non-PIC objects. Fix by creating two files: memset.S and memcpy.S which just include the files under arch/ia64/lib/{memset.S, memcpy.S} respectively. Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit dcf762907d9dd08b5feab6d975061e70f527449a Author: Xiantao Zhang Date: Wed May 7 17:37:32 2008 +0800 KVM: ia64: Define new kvm_fpreg struture to replace ia64_fpreg The kernel's ia64_fpreg structure conflicts with userspace headers, so define a new structure to replace it. Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 8ae6dc90ac84d9734e343210c8ec709f50cd9d89 Author: Marcelo Tosatti Date: Tue May 6 13:32:54 2008 -0300 KVM: PIT: take inject_pending into account when emulating hlt Otherwise hlt emulation fails if PIT is not injecting IRQ's. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 91949d64548ead31df51c9fb6f7201ca8ffc9b51 Author: Alexander Belyakov Date: Sun May 4 14:32:58 2008 +0400 [MTD] [NOR] Remove cfi_cmdset_0001.c erase suspend fixup typo Fix typo in erase suspend while write fixup code leading to compile time error if CMDSET0001_DISABLE_ERASE_SUSPEND_ON_WRITE was defined. drivers/mtd/chips/cfi_cmdset_0001.c: In function 'fixup_intel_strataflash': drivers/mtd/chips/cfi_cmdset_0001.c:212: error: 'struct cfi_pri_amdstd' has no member named 'SuspendCmdSupport' Signed-off-by: Alexander Belyakov Signed-off-by: David Woodhouse commit eee4646877b748afbfd34d8dbe6ea9b454a65745 Author: Heiko Carstens Date: Tue May 6 17:38:30 2008 +0300 s390: KVM guest: fix compile error Fix kvm compile error: Commit c45a6816c19dee67b8f725e6646d428901a6dc24 (virtio: explicit advertisement of driver features) and commit e976a2b997fc4ad70ccc53acfe62811c4aaec851 (s390: KVM guest: virtio device support, and kvm hypercalls) don't like each other: CC drivers/s390/kvm/kvm_virtio.o drivers/s390/kvm/kvm_virtio.c:224: error: unknown field 'feature' specified in initializer drivers/s390/kvm/kvm_virtio.c:224: warning: initialization from incompatible pointer type make[3]: *** [drivers/s390/kvm/kvm_virtio.o] Error 1 Cc: Adrian Bunk Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky Acked-by: Christian Borntraeger Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 854d17ee91e87903dc42e8b4506ffd9d023ed47a Author: Chris Lalancette Date: Mon May 5 13:05:16 2008 -0400 KVM: SVM: Fake MSR_K7 performance counters Attached is a patch that fixes a guest crash when booting older Linux kernels. The problem stems from the fact that we are currently emulating MSR_K7_EVNTSEL[0-3], but not emulating MSR_K7_PERFCTR[0-3]. Because of this, setup_k7_watchdog() in the Linux kernel receives a GPF when it attempts to write into MSR_K7_PERFCTR, which causes an OOPs. The patch fixes it by just "fake" emulating the appropriate MSRs, throwing away the data in the process. This causes the NMI watchdog to not actually work, but it's not such a big deal in a virtualized environment. When we get a write to one of these counters, we printk_ratelimit() a warning. I decided to print it out for all writes, even if the data is 0; it doesn't seem to make sense to me to special case when data == 0. Tested by myself on a RHEL-4 guest, and Joerg Roedel on a Windows XP 64-bit guest. Signed-off-by: Chris Lalancette Signed-off-by: Avi Kivity commit e95c7f35de8e02522a1b02804f5f904820f7319a Author: Adrian Bunk Date: Mon May 5 21:29:57 2008 +0300 avr32: export copy_page This patch fixes the following build error: <-- snip --> ... MODPOST 61 modules ERROR: "copy_page" [fs/fuse/fuse.ko] undefined! ... make[2]: *** [__modpost] Error 1 <-- snip --> Also add an empty line since *_page aren't "String functions". Signed-off-by: Adrian Bunk Signed-off-by: Haavard Skinnemoen commit 630741928b4a7eeff27e134d7ba7bc2fc2c764c5 Author: Avi Kivity Date: Mon May 5 14:58:26 2008 +0300 KVM: x86 emulator: fix writes to registers with modrm encodings A register destination encoded with a mod=3 encoding left dst.ptr NULL. Normally we don't trap writes to registers, but in the case of smsw, we do. Fix by pointing dst.ptr at the destination register. Signed-off-by: Avi Kivity commit a7ca0268b5dfffcaa8a1fe40c6eccdeac50fa3ea Author: Allan Stephens Date: Mon May 5 01:24:36 2008 -0700 tipc: Update version number to TIPC 1.6.4 This patch updates TIPC's version number to 1.6.4. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 48c971394626173eaf1c33441ea1d900c88b21a3 Author: Allan Stephens Date: Mon May 5 01:24:06 2008 -0700 tipc: Exclude debug-only print buffer code when not debugging This patch modifies TIPC to only exclude debug-related print buffer routines when debugging capabilities are not required. It also fixes up some related #defines that exceed 80 characters. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 6063da9d74d4da812ae0d8f233b7e320e15765e3 Author: Allan Stephens Date: Mon May 5 01:23:34 2008 -0700 tipc: Cosmetic cleanup of system & debug output declarations This patch contains changes to make TIPC's system & debug message declarations more readable. Declarations have been regrouped and recommented to make it easier to understand what output is generated in both standard and debugging modes. In addition, oversize lines have been fixed to respect the 80 character upper bound used in the kernel. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 7d3aa71239f588215b5a7c359f05155b192d8081 Author: Allan Stephens Date: Mon May 5 01:22:59 2008 -0700 [TIPC]: Cosmetic cleanup of print buffer code This patch contains changes to make TIPC's print buffer code conform more closely to Linux kernel coding guidelines. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit c89039850bdf8047472b4ee6132048dacef2cf5a Author: Allan Stephens Date: Mon May 5 01:22:30 2008 -0700 tipc: Elimination of print buffer chaining This patch revamps TIPC's print buffer subsystem to eliminate support for arbitrary chains of print buffers, which were rarely needed and difficult to use safely. In its place, print buffers can now be configured to echo their output to the system console. This provides an equivalent for the only chaining currently utilized by TIPC, in a faster and more compact manner. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 40dbfae440abe6860167f12e0296bd7a1a599839 Author: Allan Stephens Date: Mon May 5 01:21:54 2008 -0700 tipc: Fix null pointer dereference in debug code This patch eliminates an obsolete use of the DBG_OUTPUT print buffer which could lead to a null pointer crash in tipc_printf() if TIPC's debugging capabilities are configured. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 93758c3da19e99f5377cc1413c27320882b18f4b Author: Allan Stephens Date: Mon May 5 01:21:12 2008 -0700 tipc: Fix recursive spinlock invocation in print buffer code This patch fixes two routines that allow the global print buffer spinlock to be taken recursively. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit fb98ec71c7f81b6db9b793aeb9d53823b6960d8b Author: Allan Stephens Date: Mon May 5 01:20:42 2008 -0700 tipc: Provide feedback when log buffer resizing fails This patch provides feedback to the user when TIPC is unable to set its log buffer to the requested size. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 025adbe8e58290798001b472aec3eb618d8fc930 Author: Allan Stephens Date: Mon May 5 01:20:04 2008 -0700 tipc: Simplify log buffer resizing This patch simplifies & standardizes the way TIPC's print buffer log is resized. Code to terminate use of the log buffer is eliminated by simply setting the log buffer size to 0 bytes. Signed-off-by: Allan Stephens Signed-off-by: David S. Miller commit 38df5142b94ffa8f09681ca3ad6f141e3a9b0b8c Author: Aurelien Jarno Date: Fri May 2 17:02:23 2008 +0200 KVM: PIT: support mode 3 The in-kernel PIT emulation ignores pending timers if operating under mode 3, which for example Hurd uses. This mode should output a square wave, high for (N+1)/2 counts and low for (N-1)/2 counts. As we only care about the resulting interrupts, the period is N, and mode 3 is the same as mode 2 with regard to interrupts. Signed-off-by: Aurelien Jarno Signed-off-by: Avi Kivity commit a57baac8bef28ac19f4a8abe9c047e9c3e6d3b87 Author: Glauber Costa Date: Wed Apr 30 12:39:05 2008 -0300 x86: KVM geust: make setup_secondary_clock definition dependent on local apic Since the pv_apic_ops are only present if CONFIG_X86_LOCAL_APIC is compiled in, kvmclock failed to build without this option. This patch fixes this. Signed-off-by: Glauber Costa Signed-off-by: Avi Kivity commit e055d5bff318845f99c0fbf93245767fab8dce88 Author: Adrian Bunk Date: Tue Apr 22 01:43:27 2008 +0100 [ARM] 5015/1: arm: remove ARCH_CO285 Trying to compile a kerel for ARCH_CO285 fails with the following error: <-- snip --> ... CC arch/arm/mach-footbridge/dc21285.o /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c: In function 'dc21285_base_address': /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c:54: error: 'PCICFG0_BASE' undeclared (first use in this function) /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c:54: error: (Each undeclared identifier is reported only once /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c:54: error: for each function it appears in.) /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c:57: error: 'PCICFG1_BASE' undeclared (first use in this function) /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c: In function 'dc21285_scan_bus': /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/arm/mach-footbridge/dc21285.c:286: error: implicit declaration of function 'pci_scan_bus' ... make[2]: *** [arch/arm/mach-footbridge/dc21285.o] Error 1 <-- snip --> This does not seem to be a recent breakage. The ARCH_CO285 support is old - kernel 2.2.0 contains first traces of it, an it seems to have been pretty complete in later 2.2 kernels. Since it seems to be completely dead code now this patch therefore removes it. Signed-off-by: Adrian Bunk Signed-off-by: Russell King commit 9cebc1e22d4413d0b3922b137e5603947bacb73f Author: Avi Kivity Date: Fri May 2 13:23:10 2008 +0300 KVM: MMU: Allow more than PAGES_PER_HPAGE write protections per large page nonpae guests can call rmap_write_protect twice per page (for page tables) or four times per page (for page directories), triggering a bogus warning. Remove the warning. Signed-off-by: Avi Kivity commit 33b20d12e4b2f247e255f3428aa28dd932e56973 Author: Anthony Liguori Date: Wed Apr 30 15:37:07 2008 -0500 KVM: Handle vma regions with no backing page This patch allows VMAs that contain no backing page to be used for guest memory. This is useful for assigning mmio regions to a guest. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit ef53d8c0e67c9950ddb0cbaec8f5fe27eb92e47e Author: Anthony Liguori Date: Wed Apr 30 15:16:05 2008 -0500 KVM: VMX: Don't leak EPT identity page table In vmx.c:alloc_identity_pagetable() we grab a reference to the EPT identity page table via gfn_to_page(). We never release this reference though. This patch releases the reference to this page on VM destruction. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit 686ee3dc16696c7afc8633dd031c82f2eef1b9ff Author: Andrea Arcangeli Date: Thu May 1 18:43:33 2008 +0200 KVM: avoid fx_init() schedule in atomic This make sure not to schedule in atomic during fx_init. I also changed the name of fpu_init to fx_finit to avoid duplicating the name with fpu_init that is already used in the kernel, this makes grep simpler if nothing else. Signed-off-by: Andrea Arcangeli Signed-off-by: Avi Kivity commit b4140609492c89520c5183eee3f6f5254340f5df Author: Joerg Roedel Date: Wed Apr 30 17:56:04 2008 +0200 KVM: SVM: add tracing support for TDP page faults To distinguish between real page faults and nested page faults they should be traced as different events. This is implemented by this patch. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit d189fcfa05a495b6b62b0d8d6343e6dd6aec7ee4 Author: Joerg Roedel Date: Wed Apr 30 17:56:03 2008 +0200 KVM: SVM: add missing kvmtrace markers This patch adds the missing kvmtrace markers to the svm module of kvm. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 2d968edd741b1773f7696fcf291f26d95a2c59b3 Author: Joerg Roedel Date: Wed Apr 30 17:56:02 2008 +0200 KVM: add missing kvmtrace bits This patch adds some kvmtrace bits to the generic x86 code where it is instrumented from SVM. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 54687dac64b151d183bbf8d44c81b5b552ce057d Author: Joerg Roedel Date: Wed Apr 30 17:56:01 2008 +0200 KVM: SVM: implement dedicated INTR exit handler With an exit handler for INTR intercepts its possible to account them using kvmtrace. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 146b30979ce006b9a8dc88763434dc9b92189c5b Author: Joerg Roedel Date: Wed Apr 30 17:56:00 2008 +0200 KVM: SVM: implement dedicated NMI exit handler With an exit handler for NMI intercepts its possible to account them using kvmtrace. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit a34f96cbf88029e94f35e33b4bb4b066ca748b10 Author: Joerg Roedel Date: Wed Apr 30 17:55:59 2008 +0200 KVM: VMX: move APIC_ACCESS trace entry to generic code This patch moves the trace entry for APIC accesses from the VMX code to the generic lapic code. This way APIC accesses from SVM will also be traced. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 83575bd887fa5176c5355217e44bbd8fa1c65321 Author: Jan Kiszka Date: Wed Apr 30 17:59:04 2008 +0200 KVM: Handle double and triple faults for every exception Clear pending exceptions when setting new register values. This avoids spurious exceptions after restoring a vcpu state or after reset-on-triple-fault. Signed-off-by: Jan Kiszka Signed-off-by: Avi Kivity commit aa10d0767a7a5ae3feec57b5a7c01668e2a8cccf Author: Marcelo Tosatti Date: Wed Apr 30 13:23:54 2008 -0300 KVM: PIT: support mode 4 The in-kernel PIT emulation ignores pending timers if operating under mode 4, which for example DragonFlyBSD uses (and Plan9 too, apparently). Mode 4 seems to be similar to one-shot mode, other than the fact that it starts counting after the next CLK pulse once programmed, while mode 1 starts counting immediately, so add a FIXME to enhance precision. Fixes sourceforge bug 1952988. Signed-off-by: Marcelo Tosatti Acked-by: Sheng Yang Signed-off-by: Avi Kivity commit 39091b101411f20f712743fe6f61ac5ca11b3f01 Author: Russell King Date: Sat Apr 19 16:01:38 2008 +0100 [ARM] rpc: ecard: remove deprecated ecard_address() and relatives ecard_address() is obsolete, and has been marked deprecated since at least 2.6.12-rc2. All in-tree users have been updated to use the new approach, so it's time to remove this. Signed-off-by: Russell King commit fd2e1794a061165cd487c91c4734f451c95415f6 Author: Russell King Date: Sat Apr 19 15:56:08 2008 +0100 [ARM] rpc: deprecate __ioaddr() and __ioaddrc() helpers Now everything is converted to use MMIO accessors, these helpers are no longer required. Signed-off-by: Russell King commit a9c5a6355947db11935d7749a09b96c85aeb5a6f Author: Russell King Date: Sat Apr 19 15:42:57 2008 +0100 [ARM] rpc: acornscsi: update to new style ecard driver Update acornscsi as per all the other ecard drivers to use MMIO accessors rather than the obsolete 'pc io' style inb/outb accessors. Use ecard_request_resources()/ecard_release_resources() for easier resource handling, rather than requesting 5 separate regions individually. Signed-off-by: Russell King commit e5a7d2f30204ded6822bab9ce49b68c7d27f127d Author: Russell King Date: Sat Apr 19 15:37:44 2008 +0100 [ARM] rpc: acornscsi: stop using private __stringify() The kernel has its own, so let's use that instead. Signed-off-by: Russell King commit 626564f695ac62d2e7ee490370bbbc7b5da72969 Author: Russell King Date: Sat Apr 19 14:26:18 2008 +0100 [ARM] rpc: acornscsi: convert hardware accessors to take 'AS_Host *' Signed-off-by: Russell King commit 8fdb3936a9ea1b925c5d8e961026d547835b4cfc Author: Russell King Date: Sat Apr 19 15:13:45 2008 +0100 [ARM] rpc: acornscsi: fixup abort/reset methods, fix build errors Revive the AcornSCSI driver, update it for the replacement command abort and host reset methods, and fix the build errors in acornscsi-io.S. Signed-off-by: Russell King commit c1d6fd45bee4baae1053913f93912b1a88d2706f Author: Russell King Date: Sat Apr 19 15:20:23 2008 +0100 [ARM] rpc: acornscsi: remove unused 'ADDR' macro Signed-off-by: Russell King commit d2e0ff4a7ab28c937a2b4363e3e624a1920536fc Author: Russell King Date: Sat Apr 19 15:12:23 2008 +0100 [ARM] rpc: etherh: fix unused variable warning Fix: drivers/net/arm/etherh.c:650: warning: unused variable `i' Signed-off-by: Russell King commit d46f04f09255a0040a7eb57f91733ab9bfb3ac23 Author: Avi Kivity Date: Wed Apr 30 16:13:36 2008 +0300 KVM: x86 emulator: disable writeback on lmsw The recent changes allowing memory operands with lmsw and smsw left lmsw with writeback enabled. Since lmsw has no oridinary destination operand, the dst pointer was not initialized, resulting in an oops. Close the hole by disabling writeback for lmsw. Signed-off-by: Avi Kivity commit e20915f61e1d704cdb645ea12591b17f323474c0 Author: Christian Ehrhardt Date: Tue Apr 29 18:18:23 2008 +0200 KVM: ppc: deliver INTERRUPT_FP_UNAVAIL to the guest This patch adds the delivery of INTERRUPT_FP_UNAVAIL exceptions to the guest. It's needed if a guest uses ppc binaries using the Floating point instructions. Signed-off-by: Christian Ehrhardt Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 5f8d713e893206eba5b4a78e4dffb9f0664cb78d Author: David Chinner Date: Wed Apr 30 18:15:34 2008 +1000 [XFS] Include linux/random.h in all builds, not just debug builds. SGI-PV: 979416 SGI-Modid: xfs-linux-melb:xfs-kern:31008a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 84d29d4363f7fb0e26c014b35592c89306acfd0d Author: Tim Shimmin Date: Wed Apr 30 18:15:28 2008 +1000 [XFS] Fix up noattr2 so that it will properly update the versionnum and features2 fields. Previously, mounting with noattr2 failed to achieve anything because although it cleared the attr2 mount flag, it would set it again as soon as it processed the superblock fields. The fix now has an explicit noattr2 flag and uses it later to fix up the versionnum and features2 fields. SGI-PV: 980021 SGI-Modid: xfs-linux-melb:xfs-kern:31003a Signed-off-by: Tim Shimmin Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 89d675d0f987534139d330eb2689ec53fab9404e Author: Zhang Rui Date: Tue Apr 29 02:36:07 2008 -0400 create sysfs link from acpi device to sysdev for cpu Sys I/F under acpi device node and sysdev device node are both needed for cpu hot-removal. User space need this link so that they know they are poking the sys I/F for the same cpu. http://bugzilla.kernel.org/show_bug.cgi?id=9772 Signed-off-by: Zhang Rui Signed-off-by: Len Brown commit 3d5ed99657e93cd0453a187c478e663e6b6a3a8b Author: Zhang Rui Date: Tue Apr 29 02:35:56 2008 -0400 force offline the processor during hot-removal The ACPI device node for the cpu has already been unregistered when acpi_processor_handle_eject is called. Thus we should offline the cpu and continue, rather than a failure here. http://bugzilla.kernel.org/show_bug.cgi?id=9772 Signed-off-by: Zhang Rui Signed-off-by: Len Brown commit 087803d18fb8259cb844c075a35fb27c2d80792e Author: Zhang Rui Date: Tue Apr 29 02:35:48 2008 -0400 fix a deadlock issue when poking "eject" file "/sys/devices/LNXSYSTM:00/.../eject" is used to evaluate _EJx method and eject a device in user space. But system hangs when poking the "eject" file because that the device hot-removal code invoke the driver .remove method which will try to remove the "eject" file as a result. Queues the hot-removal function for deferred execution in this patch. http://bugzilla.kernel.org/show_bug.cgi?id=9772 Signed-off-by: Zhang Rui Signed-off-by: Len Brown commit 6309a0720469beb77e0ab75f403a98a0aba4140c Author: David Chinner Date: Tue Apr 29 12:53:32 2008 +1000 [XFS] Don't initialise new inode generation numbers to zero When we allocation new inode chunks, we initialise the generation numbers to zero. This works fine until we delete a chunk and then reallocate it, resulting in the same inode numbers but with a reset generation count. This can result in inode/generation pairs of different inodes occurring relatively close together. Given that the inode/gen pair makes up the "unique" portion of an NFS filehandle on XFS, this can result in file handles cached on clients being seen on the wire from the server but refer to a different file. This causes .... issues for NFS clients. Hence we need a unique generation number initialisation for each inode to prevent reuse of a small portion of the generation number space. Use a random number to initialise the generation number so we don't need to keep any new state on disk whilst making the new number difficult to guess from previous allocations. SGI-PV: 979416 SGI-Modid: xfs-linux-melb:xfs-kern:31001a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 9c65aed49bd2d15df22af91b1b8983a55dbc2e0d Author: David Chinner Date: Tue Apr 29 12:53:21 2008 +1000 [XFS] Fix check for block zero access in xfs_write_iomap_allocate() The check for block zero access should be done on non-realtime inodes. Fix the logic error in xfs_write_iomap_allocate(), and simplify the logic on all checks for block zero access in xfs_iomap.c SGI-PV: 980888 SGI-Modid: xfs-linux-melb:xfs-kern:30998a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 2403656f6d41b9911911da7c6820f0de141d5c67 Author: David Chinner Date: Tue Apr 29 12:53:15 2008 +1000 [XFS] Don't double count reserved block changes on UP. On uniprocessor machines, the incore superblock is used for all in memory accounting of free blocks. in this situation, changes to the reserved block count are accounted twice; once directly and once via xfs_mod_incore_sb(). Seeing as the modification on SMP is done via xfs_mod_incore_sb(), make this the only update mechanism that UP uses as well. SGI-PV: 980654 SGI-Modid: xfs-linux-melb:xfs-kern:30997a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit d8914b1aa67d8c5179a68cf7c603fbf074c89b63 Author: Alexey Dobriyan Date: Tue Apr 29 12:53:08 2008 +1000 [XFS] remove xfs_log_ticket_zone on rmmod Fix bug introduced in commit eb01c9cd87c7a9998c2edf209721ea069e3e3652 aka "[XFS] Remove the xlog_ticket allocator" SGI-PV: 980887 SGI-Modid: xfs-linux-melb:xfs-kern:30995a Signed-off-by: Alexey Dobriyan Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit cbdfc5141565c529d0d014eb7333b511f14133ab Author: Eric Sandeen Date: Tue Apr 29 12:53:00 2008 +1000 [XFS] fix non-smp xfs build xfs_reserve_blocks() calls xfs_icsb_sync_counters_locked(), which is not defined if !CONFIG_SMP/!HAVE_PERCPU_SB SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30991a Signed-off-by: Eric Sandeen Signed-off-by: Lachlan McIlroy commit 417e31946fcce20f01f268c25652a33a1964b25b Author: Hollis Blanchard Date: Fri Apr 25 17:55:49 2008 -0500 KVM: ppc: Handle guest idle by emulating MSR[WE] writes This reduces host CPU usage when the guest is idle. However, the guest must set MSR[WE] in its idle loop, which Linux did not do until 2.6.26. Signed-off-by: Hollis Blanchard Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit e9f5f5b55aa560968b7ffbad6757fb6b4779a229 Author: Izik Eidus Date: Mon Apr 28 18:23:52 2008 +0300 KVM: x86: task switch: fix wrong bit setting for the busy flag The busy bit is bit 1 of the type field, not bit 8. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 49f60060c5e6b8c2974afe5b666bd3853bd0bdb0 Author: Harvey Harrison Date: Sun Apr 27 12:14:13 2008 -0700 KVM: add statics were possible, function definition in lapic.h Noticed by sparse: arch/x86/kvm/vmx.c:1583:6: warning: symbol 'vmx_disable_intercept_for_msr' was not declared. Should it be static? arch/x86/kvm/x86.c:3406:5: warning: symbol 'kvm_task_switch_16' was not declared. Should it be static? arch/x86/kvm/x86.c:3429:5: warning: symbol 'kvm_task_switch_32' was not declared. Should it be static? arch/x86/kvm/mmu.c:1968:6: warning: symbol 'kvm_mmu_remove_one_alloc_mmu_page' was not declared. Should it be static? arch/x86/kvm/mmu.c:2014:6: warning: symbol 'mmu_destroy_caches' was not declared. Should it be static? arch/x86/kvm/lapic.c:862:5: warning: symbol 'kvm_lapic_get_base' was not declared. Should it be static? arch/x86/kvm/i8254.c:94:5: warning: symbol 'pit_get_gate' was not declared. Should it be static? arch/x86/kvm/i8254.c:196:5: warning: symbol '__pit_timer_fn' was not declared. Should it be static? arch/x86/kvm/i8254.c:561:6: warning: symbol '__inject_pit_timer_intr' was not declared. Should it be static? Signed-off-by: Harvey Harrison Signed-off-by: Avi Kivity commit 8b4ddc81367887f669f106d935324e12c8f41580 Author: Sheng Yang Date: Mon Apr 28 12:24:45 2008 +0800 KVM: VMX: Enable EPT feature for KVM Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit e8fbea220a75d4e9b58d51f84ac3bdbb9cbc020a Author: Sheng Yang Date: Fri Apr 25 21:44:52 2008 +0800 KVM: VMX: Prepare an identity page table for EPT in real mode Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit a7a208549d572f7d45039af4ffc3c2c1a9b7f375 Author: Sheng Yang Date: Fri Apr 25 21:44:50 2008 +0800 KVM: Export necessary function for EPT Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 7eee0828035e1fb1eda75eb57e8c9ffb85a62a2f Author: Sheng Yang Date: Fri Apr 25 21:44:42 2008 +0800 KVM: MMU: Remove #ifdef CONFIG_X86_64 to support 4 level EPT Currently EPT level is 4 for both pae and x86_64. The patch remove the #ifdef for alloc root_hpa and free root_hpa to support EPT. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit a515d696ccfc8d54e460314894dd7d45aa9b4cf5 Author: Sheng Yang Date: Fri Apr 25 21:13:50 2008 +0800 KVM: MMU: Add EPT support Enable kvm_set_spte() to generate EPT entries. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit a6a35a8ee0be5dd4281e2876263679f0ec101b57 Author: Sheng Yang Date: Fri Apr 25 10:20:22 2008 +0800 KVM: Add kvm_x86_ops get_tdp_level() The function get_tdp_level() provided the number of tdp level for EPT and NPT rather than the NPT specific macro. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 5fad90c5ba557f4a2a5f165419a4529eafbc66b7 Author: Sheng Yang Date: Fri Apr 25 10:17:08 2008 +0800 KVM: MMU: Move some definitions to a header file Move some definitions to mmu.h in order to allow building common table entries between EPT and non-EPT. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 33b7481a781c71e5dc51454e79f8df43ae26f92d Author: Sheng Yang Date: Fri Apr 25 10:13:16 2008 +0800 KVM: VMX: EPT Feature Detection Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 8d6e265250137db168e1a052b30cf5c7e8a59528 Author: Avi Kivity Date: Thu Apr 24 19:44:17 2008 +0300 KVM: Partial revert of "KVM: PIT: make last_injected_time per-guest" (873c05f) The fix caused IPIs to be fired from interrupt context, which can cause hard hangs if they catch another IPI in progress. Signed-off-by: Avi Kivity commit 58db4c9141035200d6816181e60870319f79a2fa Author: Al Viro Date: Sat Apr 19 20:33:56 2008 +0100 KVM: kill file->f_count abuse in kvm Use kvm own refcounting instead of playing with ->filp->f_count. That will allow to get rid of a lot of crap in anon_inode_getfd() and kill a race in kvm_dev_ioctl_create_vm() (file might have been closed immediately by another thread, so ->filp might point to already freed struct file when we get around to setting it). Signed-off-by: Al Viro Signed-off-by: Avi Kivity commit 873c05fa7e6fea27090b1bf0f67a073eadb04782 Author: Marcelo Tosatti Date: Tue Apr 22 11:19:46 2008 -0300 KVM: PIT: make last_injected_time per-guest Otherwise multiple guests use the same variable and boom. Also use kvm_vcpu_kick() to make sure that if a timer triggers on a different CPU the event won't be missed. Signed-off-by: Marcelo Tosatti Tested-and-Acked-by: Alex Davis Signed-off-by: Avi Kivity commit 967b942637b249fb7709704786a966d2092ea722 Author: Christian Borntraeger Date: Mon Apr 21 13:48:24 2008 +0200 KVM: remove long -> void *user -> long cast kvm_dev_ioctl casts the arg value to void __user *, just to recast it again to long. This seems unnecessary. According to objdump the binary code on x86 is unchanged by this patch. Signed-off-by: Christian Borntraeger Signed-off-by: Avi Kivity commit 91417f4b495ad90bc3fb69105d3a55a334e1ced7 Author: Stephen Rothwell Date: Mon Apr 21 16:52:39 2008 +1000 KVM: Fix ppc build Signed-off-by: Stephen Rothwell Reviewed-by: Hollis Blanchard Signed-off-by: Avi Kivity commit d00792122d1d2aa524ad4db600aab6de6f8516c2 Author: Donald Douwsma Date: Tue Apr 22 17:34:56 2008 +1000 [XFS] Fix broken HAVE_SPLICE removal commit. Commit e687330b5ed1ea899fdaf0dea50aba196b6e019a was meant to remove the unused HAVE_SPLICE macro, instead an unrelated change was checked enabling QUOTADEBUG when building DEBUG XFS. Restore the intended changes. SGI-PV: 971046 SGI-Modid: xfs-linux-melb:xfs-kern:30924a Signed-off-by: Donald Douwsma Signed-off-by: Barry Naujok Signed-off-by: Lachlan McIlroy commit baba99461a6cc5b7a5c5347b521a4a4c45edbdfc Author: Christoph Hellwig Date: Tue Apr 22 17:34:50 2008 +1000 [XFS] kill XFS_ICSB_SB_LOCKED With the last two patches XFS_ICSB_SB_LOCKED is never checked and only superflously passed to xfs_icsb_count, so kill it. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30920a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 7cea6a12733b65f444791e0e6f17f0a91deec934 Author: Christoph Hellwig Date: Tue Apr 22 17:34:44 2008 +1000 [XFS] split xfs_icsb_balance_counter Add an xfs_icsb_balance_counter_locked for the case where mp->m_sb_lock is already locked. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30918a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit a373394d963ab52f1a9b21f5ce56d13751aaf61b Author: Christoph Hellwig Date: Tue Apr 22 17:34:37 2008 +1000 [XFS] Add a new xfs_icsb_sync_counters_locked for the case where m_sb_lock is already taken and add a flags argument to xfs_icsb_sync_counters so that xfs_icsb_sync_counters_flags is not needed. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30917a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 9402f2900761ed45873117abdc4096c3e085a1bf Author: Barry Naujok Date: Tue Apr 22 17:34:31 2008 +1000 [XFS] Cleanup xfs_attr a bit with xfs_name and remove cred SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30913a Signed-off-by: Barry Naujok Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 8ac17f6487873fba1ecef7d94d2f80eaff73f441 Author: Christoph Hellwig Date: Tue Apr 22 17:34:24 2008 +1000 [XFS] kill usesless IHOLD calls in xfs_remove and xfs_rmdir The VFS always has an inode reference when we call these functions. So we only need to grab a signle reference to each inode that's joined to a transaction - all the other bumping and dropping is as useless as the comments describing the IRIX semantics. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30912a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 3074ab06656501681758d3ac32a21eb8965279a4 Author: Christoph Hellwig Date: Tue Apr 22 17:34:18 2008 +1000 [XFS] kill parent == child checks in xfs_remove and xfs_rmdir VFS guaranteed these can't happen. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30911a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit ebc105734553550d6b175be82bad055d4309a581 Author: Christoph Hellwig Date: Tue Apr 22 17:34:12 2008 +1000 [XFS] kill usesless IHOLD calls in xfs_rename Similar to to the previous patch for remove and rmdir only grab a reference to inodes when we join them to transaction to balance the decrement on transaction completion. Everything else it taken care of by the VFS. Note that the old case had leaks of inode count when src == target or src or target == one of the parent inodes, but these cases are fortunately already rejected by the VFS. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30904a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 21ab06b7faede6ab6700a57c47d81733190bc7d9 Author: Christoph Hellwig Date: Tue Apr 22 17:34:06 2008 +1000 [XFS] remove manual lookup from xfs_rename and simplify locking ->rename already gets the target inode passed if it exits. Pass it down to xfs_rename so that we can avoid looking it up again. Also simplify locking as the first lock section in xfs_rename can go away now: the isdir is an invariant over the lifetime of the inode, and new_parent and the nlink check are namespace topology protected by i_mutex in the VFS. The projid check needs to move into the second lock section anyway to not be racy. Also kill the now unused xfs_dir_lookup_int and remove the now-unused first_locked argumet to xfs_lock_inodes. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30903a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 045ec68d1569c4e8bc36c15b0f0e04cf009599b5 Author: Christoph Hellwig Date: Tue Apr 22 17:34:00 2008 +1000 [XFS] shrink mrlock_t The writer field is not needed for non_DEBU builds so remove it. While we're at i also clean up the interface for is locked asserts to go through and xfs_iget.c helper with an interface like the xfs_ilock routines to isolated the XFS codebase from mrlock internals. That way we can kill mrlock_t entirely once rw_semaphores grow an islocked facility. Also remove unused flags to the ilock family of functions. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30902a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit feec3061f79f1d8291db9d9537fb4b8349d38022 Author: Christoph Hellwig Date: Tue Apr 22 17:33:52 2008 +1000 [XFS] simplify xfs_lookup Opencode xfs-kill-xfs_dir_lookup_int here, which gets rid of a lock roundtrip, and lots of stack space. Also kill the di_mode == 0 check that has been done in xfs_iget for a few years now. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30901a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 8690b0bb3e066319574aad5a4203787b7d990ed3 Author: Christoph Hellwig Date: Tue Apr 22 17:33:46 2008 +1000 [XFS] xfs_rename: pass resblks to xfs_dir_removename Similar to rmdir and remove - avoids a potential transaction reservation overrun. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30900a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 582d7b35dcaad942fe60e0e80415a95329c967c6 Author: Christoph Hellwig Date: Tue Apr 22 17:33:40 2008 +1000 [XFS] kill di_mode checks after xfs_iget Unless XFS_IGET_CREATE is passed xfs_iget will return ENOENT if it encounters an inode with di_mode == 0. Remove the duplicated checks in the callers. (the log recovery case is not touched for now) SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30898a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 02dd99781db1c0d70aeb6421472afbe9227be47f Author: Christoph Hellwig Date: Tue Apr 22 17:33:33 2008 +1000 [XFS] kill xfs_getattr It's currently used by the ACL code to read di_mode/di_uid, but these are simple 32bit scalar values we can just read directly without locking. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30897a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 2bc441c497a2e216c7d1f611e4b9db55918cd792 Author: Christoph Hellwig Date: Tue Apr 22 17:33:25 2008 +1000 [XFS] Remove VN_IS* macros and related cruft. We can just check i_mode / di_mode directly. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30896a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 2e328614a2dd874db71911c101aee69c0d754112 Author: Stephen Rothwell Date: Tue Apr 22 15:26:13 2008 +1000 [XFS] Fix build failure after enabling CONFIG_XFS_DEBUG Signed-off-by: Stephen Rothwell Signed-off-by: Lachlan McIlroy commit 7b81ee365f7ad60b9f558b87e97106946d16628d Author: Christoph Hellwig Date: Mon Apr 21 18:11:13 2008 +1000 [XFS] remove dmapi cruft in xfs_file.c The dmapi cruft in xfs_file.c is totally out of date in mainline vs CVS, and at this point just removing this code which can't be used on mainline at all seems to be the best option to keep it maintainable. Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 7a3e7d6bc732356fe47339e3bb9113097ae65111 Author: Christoph Hellwig Date: Mon Apr 21 17:25:35 2008 +1000 [XFS] remove sendfile leftovers Remove the last sendfile leftovers in mainline. This code is already gone in CVS. Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit d8fdb32932789284bb17bc1cb69e0f2da6452040 Author: Christoph Hellwig Date: Mon Apr 21 17:22:27 2008 +1000 [XFS] allow enabling CONFIG_XFS_DEBUG Back when I first submitted XFS for mainline inclusion we made the decision that the debug code is far to extensive to be accidentally enabled by users in mainline. But then again it's often quite useful to track problems down and hacking the makefile all the time is rather annoying. Given all the debug options with even more overhead like lockdep or DEBUG_PAGE_ALLOC users (or rather developers) should know by now what they're doing. Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 6cf59734fc9bc89954d0157524eea156c2f9a5ab Author: Marcelo Tosatti Date: Wed Apr 16 17:19:06 2008 -0300 KVM: MMU: kvm_pv_mmu_op should not take mmap_sem kvm_pv_mmu_op should not take mmap_sem. All gfn_to_page() callers down in the MMU processing will take it if necessary, so as it is it can deadlock. Apparently a leftover from the days before slots_lock. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 1625158d0f89974dc6a235f6ee78c42bb09187ac Author: Hollis Blanchard Date: Thu Apr 17 10:43:36 2008 -0500 KVM: ppc: Kconfig fixes Don't allow building as a module (asm-offsets dependencies). Also, automatically select KVM_BOOKE_HOST until we better separate the guest and host layers. Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 021a317b6004618a15e71e6ba3c3f535c23cc300 Author: Mariusz Kozlowski Date: Fri Aug 10 14:00:51 2007 -0700 drivers/mmc/core/mmc_ops.c: kmalloc + memset conversion to kzalloc drivers/mmc/core/mmc_ops.c | 7957 -> 7924 (-33 bytes) drivers/mmc/core/mmc_ops.o | 101732 -> 101744 (+12 bytes) Signed-off-by: Mariusz Kozlowski Signed-off-by: Andrew Morton Signed-off-by: Pierre Ossman commit fe1bf3942482d6ff4af93e7e59ce927870950b9b Author: Anderson Briglia Date: Sat Jan 6 22:57:35 2007 +0100 mmc: Lock sysfs interface Implement MMC password force erase, remove password, change password, unlock card and assign password operations. It uses the sysfs mechanism to send commands to the MMC subsystem. Signed-off-by: Carlos Eduardo Aguiar Signed-off-by: Anderson Lizardo Signed-off-by: Anderson Briglia Signed-off-by: Pierre Ossman commit 0280d134893564f850961dc6121e9b4c9aa72c8a Author: Anderson Briglia Date: Fri May 18 13:32:40 2007 +0200 mmc: Implement card lock/unlock operation, using the MMC_LOCK_UNLOCK command. Signed-off-by: Carlos Eduardo Aguiar Signed-off-by: Anderson Lizardo Signed-off-by: Anderson Briglia Signed-off-by: Pierre Ossman commit 32eb2e7d6a7d19c62b88899a7107ff8d68e804b4 Author: Anderson Briglia Date: Fri May 18 13:22:13 2007 +0200 mmc: Implement key retention operations. Signed-off-by: Carlos Eduardo Aguiar Signed-off-by: Anderson Lizardo Signed-off-by: Anderson Briglia Signed-off-by: Pierre Ossman commit 0672a29396ff3c28e5d143e62e9cc423fc683a4d Author: Anderson Briglia Date: Fri May 18 13:15:46 2007 +0200 mmc: Lockable card state When a card is locked, only commands from the "basic" and "lock card" classes are accepted. To be able to use the other commands, the card must be unlocked first. This patch prevents the device drivers from probing the locked cards. Device probing must be triggered sometime later to make the card available to the block driver. Signed-off-by: Carlos Eduardo Aguiar Signed-off-by: Anderson Lizardo Signed-off-by: Anderson Briglia Signed-off-by: David Brownell Signed-off-by: Pierre Ossman commit 0b8ccb17221be6ef343bffb8923e9137dc35d9d8 Author: Joerg Roedel Date: Wed Apr 16 17:01:05 2008 +0200 KVM: SVM: remove selective CR0 comment There is not selective cr0 intercept bug. The code in the comment sets the CR0.PG bit. But KVM sets the CR4.PG bit for SVM always to implement the paged real mode. So the 'mov %eax,%cr0' instruction does not change the CR0.PG bit. Selective CR0 intercepts only occur when a bit is actually changed. So its the right behavior that there is no intercept on this instruction. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit bbc09c76aa98a58a7ac2849ecc0cd90625429f75 Author: Joerg Roedel Date: Wed Apr 16 16:51:19 2008 +0200 KVM: SVM: remove now obsolete FIXME comment With the usage of the V_TPR field this comment is now obsolete. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 229da4986d43a4262f7e19699cbb7fa43d61ad61 Author: Joerg Roedel Date: Wed Apr 16 16:51:18 2008 +0200 KVM: SVM: disable CR8 intercept when tpr is not masking interrupts This patch disables the intercept of CR8 writes if the TPR is not masking interrupts. This reduces the total number CR8 intercepts to below 1 percent of what we have without this patch using Windows 64 bit guests. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 4e2fe1fb4375d6bba7100ec0beef35b7ec11200a Author: Joerg Roedel Date: Wed Apr 16 16:51:17 2008 +0200 KVM: SVM: sync V_TPR with LAPIC.TPR if CR8 write intercept is disabled If the CR8 write intercept is disabled the V_TPR field of the VMCB needs to be synced with the TPR field in the local apic. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 6cfd8150b7695d7cf94a2b251ba8e817193fc6d9 Author: Joerg Roedel Date: Wed Apr 16 16:51:16 2008 +0200 KVM: export kvm_lapic_set_tpr() to modules This patch exports the kvm_lapic_set_tpr() function from the lapic code to modules. It is required in the kvm-amd module to optimize CR8 intercepts. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit d55b907c0ab6da62d07a4392e4183c795a99e747 Author: Joerg Roedel Date: Wed Apr 16 16:51:15 2008 +0200 KVM: SVM: sync TPR value to V_TPR field in the VMCB This patch adds syncing of the lapic.tpr field to the V_TPR field of the VMCB. With this change we can safely remove the CR8 read intercept. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 98e54bf854274ca6485a85f4efd4f91b422711f1 Author: Hollis Blanchard Date: Wed Apr 16 23:28:09 2008 -0500 KVM: ppc: PowerPC 440 KVM implementation This functionality is definitely experimental, but is capable of running unmodified PowerPC 440 Linux kernels as guests on a PowerPC 440 host. (Only tested with 440EP "Bamboo" guests so far, but with appropriate userspace support other SoC/board combinations should work.) See Documentation/powerpc/kvm_440.txt for technical details. Signed-off-by: Hollis Blanchard Acked-by: Paul Mackerras Signed-off-by: Avi Kivity commit 14bcf17f5538da4cf7c400b3880ec8e8c2ae9f76 Author: Hollis Blanchard Date: Wed Apr 16 23:28:08 2008 -0500 KVM: Add MAINTAINERS entry for PowerPC KVM Signed-off-by: Hollis Blanchard Acked-by: Paul Mackerras Signed-off-by: Avi Kivity commit 402e8267e0667d11d88c7eba99a615cb64543b28 Author: Hollis Blanchard Date: Wed Apr 16 23:28:07 2008 -0500 KVM: ppc: Add DCR access information to struct kvm_run Device Control Registers are essentially another address space found on PowerPC 4xx processors, analogous to PIO on x86. DCRs are always 32 bits, and can be identified by a 32-bit number. We forward most DCR accesses to userspace for emulation (with the exception of CPR0 registers, which can be read directly for simplicity in timebase frequency determination). Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit dbc0b98a9feb95a65275d9937d815a3bd4300103 Author: Hollis Blanchard Date: Wed Apr 16 23:28:06 2008 -0500 ppc: Export tlb_44x_hwater for KVM PowerPC 440 KVM needs to know how many TLB entries are used for the host kernel linear mapping (it does not modify these mappings when switching between guest and host execution). Signed-off-by: Hollis Blanchard Acked-by: Josh Boyer Acked-by: Paul Mackerras Signed-off-by: Avi Kivity commit 16711143409268e0e8dd343fa1fca8fa5ebafdd0 Author: Hollis Blanchard Date: Tue Apr 15 16:05:42 2008 -0500 KVM: Rename debugfs_dir to kvm_debugfs_dir It's a globally exported symbol now. Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 1ba320d3283c60e74f872ea569f639bc399e7ef9 Author: Christian Borntraeger Date: Wed Apr 16 16:06:34 2008 +0200 KVM: ia64: provide get/set_mp_state stubs to fix compile error Since commit ded6fb24fb694bcc5f308a02ec504d45fbc8aaa6 Author: Marcelo Tosatti Date: Fri Apr 11 13:24:45 2008 -0300 KVM: add ioctls to save/store mpstate kvm does not compile on ia64. This patch provides ioctl stubs for ia64 to make kvm.git compile again. Signed-off-by: Avi Kivity commit 90590cfddf74787673b21a190e43eb3d0419d785 Author: Christian Borntraeger Date: Wed Apr 16 16:06:37 2008 +0200 KVM: s390: Change virtio interrupt definitions to follow architecture This patch changes the interrupt defintions for virtio on s390. We now use the extint number 0x2603, which is used as a host interrupt already by z/VM for pfault and dasd_diag. We will use subcode 0x0D to distinguish virtio from dasd and pfault. Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit e62f6f4d552b5d74f9cfa61893b2e1c9ad0f4abf Author: Christian Borntraeger Date: Wed Apr 16 16:06:34 2008 +0200 KVM: s390: provide get/set_mp_state stubs to fix compile error Since commit ded6fb24fb694bcc5f308a02ec504d45fbc8aaa6 Author: Marcelo Tosatti Date: Fri Apr 11 13:24:45 2008 -0300 KVM: add ioctls to save/store mpstate kvm does not compile on s390. This patch provides ioctl stubs for s390 to make kvm.git compile again. Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit e12051a4fc46d0e2a1252bde6f3ca3f66b06f0d4 Author: Donald Douwsma Date: Thu Apr 17 16:50:28 2008 +1000 [XFS] Remove unused HAVE_SPLICE macro. HAVE_SPLICE was part of the infrastructure for building 2.4 and 2.6 kernels out of the same tree. Now we don't build 2.4 kernels this SGI-PV: 971046 SGI-Modid: xfs-linux-melb:xfs-kern:30878a Signed-off-by: Donald Douwsma Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit c0a5bb1e136fd4392733e7e660f183c0341273aa Author: Eric Sandeen Date: Thu Apr 17 16:50:22 2008 +1000 [XFS] Remove CONFIG_XFS_SECURITY. There is no point to the CONFIG_XFS_SECURITY option; it disables the ability to set security attributes at runtime, but it does not actually slim down or remove any code for runtime. Just remove it and always allow security attributes to be set. SGI-PV: 980310 SGI-Modid: xfs-linux-melb:xfs-kern:30877a Signed-off-by: Eric Sandeen Signed-off-by: Tim Shimmin Signed-off-by: Lachlan McIlroy commit a3b8ea42fb10895996040946ec072582da4ed5c0 Author: Tim Shimmin Date: Thu Apr 17 16:50:16 2008 +1000 [XFS] xfs_bmap_compute_maxlevels should be based on di_forkoff instead of m_attr_offset Fix up xfs_bmap_compute_maxlevels() to account for the case when we go from using attr2 to using attr1. In that case attr1 will no longer necessarily be at m_attr_offset>>3, but could be at a different value for di_forkoff. Therefore, we return the worst case scenario using MINDBTPTRS and MINABTPTRS, as this function is used for determining the maximum log space. SGI-PV: 979606 SGI-Modid: xfs-linux-melb:xfs-kern:30862a Signed-off-by: Tim Shimmin Signed-off-by: Eric Sandeen Signed-off-by: Lachlan McIlroy commit 8c64c14cac237b187d4cce2211aaa3b9dc35aa5d Author: Eric Sandeen Date: Thu Apr 17 16:50:09 2008 +1000 [XFS] Always use di_forkoff when checking for attr space. In the case where we mount a filesystem which was previously using the attr2 format as attr1, returning the default mp->m_attroffset instead of the per-inode di_forkoff for inline attribute fit calculations, may result in corruption, if for example, the data fork is already taking more space than the default fork offset and we try to add an extended attribute. Fix tested by xfstests/186. SGI-PV: 979606 SGI-Modid: xfs-linux-melb:xfs-kern:30861a Signed-off-by: Eric Sandeen Signed-off-by: Tim Shimmin Signed-off-by: Lachlan McIlroy commit 4508e853b3a1910a59dd29a4e0bd5240795fac52 Author: David Chinner Date: Thu Apr 17 16:50:04 2008 +1000 [XFS] Ensure the inode is joined in xfs_itruncate_finish On success, we still need to join the inode to the current transaction in xfs_itruncate_finish(). Fixes regression from error handling changes. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30845a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 8069f1d4a10fb8ce58a5eb9857c59671323e98be Author: David Chinner Date: Thu Apr 17 16:49:55 2008 +1000 [XFS] Remove periodic logging of in-core superblock counters. xfssyncd triggers the logging of superblock counters every 30s if the filesystem is made with lazy-count=1. This will prevent disks from idling and spinning down as there will be a log write every 30s. With the way counter recovery works for lazy-count=1, this code is unnecessary and provides no real benefit, so just remove it. SGI-PV: 980145 SGI-Modid: xfs-linux-melb:xfs-kern:30840a Signed-off-by: David Chinner Signed-off-by: Barry Naujok Signed-off-by: Lachlan McIlroy commit 6b356f4343e888260e24737c5e7413828c97afd8 Author: David Chinner Date: Thu Apr 17 16:49:49 2008 +1000 [XFS] 980084 fix logic error in xfs_alloc_ag_vextent_near() Fix a logic error in xfs_alloc_ag_vextent_near(). This is a regression introduced by the error handling changes. SGI-PV: 890084 SGI-Modid: xfs-linux-melb:xfs-kern:30838a Signed-off-by: David Chinner Signed-off-by: Barry Naujok Signed-off-by: Lachlan McIlroy commit ef1ac7f0b3c592d1b08085b637f44f12fb90a56b Author: Barry Naujok Date: Thu Apr 17 16:49:43 2008 +1000 [XFS] Split xfs_dir2_leafn_lookup_int into its two pieces of functionality SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30834a Signed-off-by: Barry Naujok Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 70645759288973974bc4ca3d931f027a108c79b5 Author: David Chinner Date: Thu Apr 17 16:49:35 2008 +1000 [XFS] Don't error out on good I/Os. xfsbdstrat() made all I/Os error out, good or bad. Fix it. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30836a Signed-off-by: David Chinner Signed-off-by: Donald Douwsma Signed-off-by: Lachlan McIlroy commit 8d3a833dc9d42f0967e57717f89c518375d6a417 Author: Avi Kivity Date: Mon Apr 14 23:46:37 2008 +0300 KVM: x86 emulator: fix lea to really get the effective address We never hit this, since there is currently no reason to emulate lea. Signed-off-by: Avi Kivity commit 8f2999b2379cd0da5ca81f1fac27931561818266 Author: Avi Kivity Date: Mon Apr 14 23:35:41 2008 +0300 KVM: SVM: Fix force_new_asid() compile warning Signed-off-by: Avi Kivity commit e072eb859fcbfdbc75ed8cf611441da7d89332a3 Author: Avi Kivity Date: Mon Apr 14 14:40:50 2008 +0300 KVM: x86 emulator: fix smsw and lmsw with a memory operand lmsw and smsw were implemented only with a register operand. Extend them to support a memory operand as well. Fixes Windows running some display compatibility test on AMD hosts. Signed-off-by: Avi Kivity commit fdc5d1d0cf97477984675c4a4738633eb6ec5c3b Author: Avi Kivity Date: Mon Apr 14 23:27:07 2008 +0300 KVM: x86 emulator: initialize src.val and dst.val for register operands This lets us treat the case where mod == 3 in the same manner as other cases. Signed-off-by: Avi Kivity commit fc6ac4faee88b6c8c12fb8c970246d0eaacd1aa2 Author: Avi Kivity Date: Mon Apr 14 13:10:21 2008 +0300 KVM: SVM: force a new asid when initializing the vmcb Shutdown interception clears the vmcb, leaving the asid at zero (which is illegal. so force a new asid on vmcb initialization. Signed-off-by: Avi Kivity commit 2e9283fb0ad0a3fe1580f2d95505022cce9c93a7 Author: Marcelo Tosatti Date: Fri Apr 11 15:01:22 2008 -0300 KVM: fix kvm_vcpu_kick vs __vcpu_run race There is a window open between testing of pending IRQ's and assignment of guest_mode in __vcpu_run. Injection of IRQ's can race with __vcpu_run as follows: CPU0 CPU1 kvm_x86_ops->run() vcpu->guest_mode = 0 SET_IRQ_LINE ioctl .. kvm_x86_ops->inject_pending_irq kvm_cpu_has_interrupt() apic_test_and_set_irr() kvm_vcpu_kick if (vcpu->guest_mode) send_ipi() vcpu->guest_mode = 1 So move guest_mode=1 assignment before ->inject_pending_irq, and make sure that it won't reorder after it. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 415379a31b5f4c17fdc754e1cf5b148f723335c0 Author: Avi Kivity Date: Sun Apr 13 18:55:48 2008 +0300 Revert "KVM: fix kvm_vcpu_kick vs __vcpu_run race" This reverts commit b40ad0133935717e714c8dc448916b0e6f4cf464. It causes virtual interrupts to be delivered with physical irqs disabled, which annoys smp_call_function_single(). Signed-off-by: Avi Kivity commit ded6fb24fb694bcc5f308a02ec504d45fbc8aaa6 Author: Marcelo Tosatti Date: Fri Apr 11 13:24:45 2008 -0300 KVM: add ioctls to save/store mpstate So userspace can save/restore the mpstate during migration. [avi: export the #define constants describing the value] Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit d88ba767d79cbb9106df73ba32b2ac429ac9fb0c Author: Avi Kivity Date: Sun Apr 13 17:54:35 2008 +0300 KVM: Rename VCPU_MP_STATE_* to KVM_MP_STATE_* We wish to export it to userspace, so move it into the kvm namespace. Signed-off-by: Avi Kivity commit b40ad0133935717e714c8dc448916b0e6f4cf464 Author: Marcelo Tosatti Date: Fri Apr 11 15:01:22 2008 -0300 KVM: fix kvm_vcpu_kick vs __vcpu_run race There is a window open between testing of pending IRQ's and assignment of guest_mode in __vcpu_run. Injection of IRQ's can race with __vcpu_run as follows: CPU0 CPU1 kvm_x86_ops->run() vcpu->guest_mode = 0 SET_IRQ_LINE ioctl .. kvm_x86_ops->inject_pending_irq kvm_cpu_has_interrupt() apic_test_and_set_irr() kvm_vcpu_kick if (vcpu->guest_mode) send_ipi() vcpu->guest_mode = 1 So move guest_mode=1 assignment before ->inject_pending_irq, and make sure that it won't reorder after it. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit a0d22c57fbf0c67d73ab7ca3416841030e0bc22f Author: Marcelo Tosatti Date: Fri Apr 11 14:53:26 2008 -0300 KVM: hlt emulation should take in-kernel APIC/PIT timers into account Timers that fire between guest hlt and vcpu_block's add_wait_queue() are ignored, possibly resulting in hangs. Also make sure that atomic_inc and waitqueue_active tests happen in the specified order, otherwise the following race is open: CPU0 CPU1 if (waitqueue_active(wq)) add_wait_queue() if (!atomic_read(pit_timer->pending)) schedule() atomic_inc(pit_timer->pending) Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 1c5f974ab7e82d0f3a28cd8fc72088a6e0a4b5fb Author: Joerg Roedel Date: Wed Apr 9 16:04:32 2008 +0200 KVM: SVM: do not intercept task switch with NPT When KVM uses NPT there is no reason to intercept task switches. This patch removes the intercept for it in that case. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit aed84ca087d7b24d8dd7cf3130d53f22321dcc37 Author: Josef Sipek Date: Fri Apr 11 17:11:02 2008 +1000 [XFS] Update XFS documentation for noikeep/ikeep. Mention how DMAPI affects default for noikeep. Slightly modified since Josef's patch was based on an old xfs.txt prior to Dave's (dgc) checkin which missed going to oss. Signed-off-by: Josef Sipek Signed-off-by: Tim Shimmin commit 795cdcdc0a657c483e369e20c3e5f9bdf2467191 Author: David Chinner Date: Fri Apr 11 17:05:49 2008 +1000 [XFS] Update XFS Documentation for ikeep and ihashsize Update xfs docs for: * In memory inode hashes has been removed. * noikeep is now the default. SGI-PV: 969561 SGI-Modid: 2.6.x-xfs-melb:linux:29481b Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Tim Shimmin commit f57c84f0c5e76716a664b76b71efee19528b78ce Author: Feng(Eric) Liu Date: Thu Apr 10 08:47:53 2008 -0400 KVM: Add kvm trace userspace interface This interface allows user a space application to read the trace of kvm related events through relayfs. Signed-off-by: Feng (Eric) Liu Signed-off-by: Avi Kivity commit 2c4b836109b7e85faa919d6a62ea893e5ed3a69c Author: Avi Kivity Date: Fri Apr 11 02:51:52 2008 +0300 KVM: ia64: Stub out kvmtrace Signed-off-by: Avi Kivity commit adfbebefb5069a670b88996c389019db2e328286 Author: Avi Kivity Date: Fri Apr 11 02:50:40 2008 +0300 KVM: s390: Stub out kvmtrace Signed-off-by: Avi Kivity commit 02e1613b70e894c6c860a20f2168fca546e5a1e3 Author: Feng (Eric) Liu Date: Thu Apr 10 15:31:10 2008 -0400 KVM: Add trace markers Trace markers allow userspace to trace execution of a virtual machine in order to monitor its performance. Signed-off-by: Feng (Eric) Liu Signed-off-by: Avi Kivity commit 35fd5958749448cfa0118d0573c3cfe0ba9e6094 Author: Joerg Roedel Date: Wed Apr 9 14:15:30 2008 +0200 KVM: SVM: add intercept for machine check exception To properly forward a MCE occured while the guest is running to the host, we have to intercept this exception and call the host handler by hand. This is implemented by this patch. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 2b720783d4905596ddc64b2e9dcb139d5dce4f79 Author: Joerg Roedel Date: Wed Apr 9 14:15:29 2008 +0200 KVM: SVM: align shadow CR4.MCE with host This patch aligns the host version of the CR4.MCE bit with the CR4 active in the guest. This is necessary to get MCE exceptions when the guest is running. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit a56ba992710f4e4f5d8432bbb784afcab3210c14 Author: Joerg Roedel Date: Wed Apr 9 14:15:28 2008 +0200 KVM: SVM: indent svm_set_cr4 with tabs instead of spaces The svm_set_cr4 function is indented with spaces. This patch replaces them with tabs. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 0c444a223f9d7847e607d57665bfbd0a057070a8 Author: David Chinner Date: Thu Apr 10 12:24:38 2008 +1000 [XFS] Catch log unmount failures. Unmounting the log can fail. unlikely, but it can. Catch all the error conditions an make sure it's propagated upwards. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30833a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit f218cac9d7df57b93352e6730a255186bf0a6303 Author: David Chinner Date: Thu Apr 10 12:24:30 2008 +1000 [XFS] Sanitise xfs_log_force error checking. xfs_log_force() is declared to return an error, but we almost never check it. We don't need to check it in most cases; if there's a log I/O error then we'll be shutting down the filesystem anyway and that means we'll catch the error somewhere else. However, on certain calls we should be returning an error - sync transactions, fsync, sync writes, etc. so this isn't a pure black and white distinction. Hence make xfs_log_force() a void function that issues a warning to the syslog on error, and call _xfs_log_force() in all the places where we actually care about the error status returned. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30832a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 41ca6fa27f06e8de4408217871a9b2120401d98b Author: David Chinner Date: Thu Apr 10 12:24:24 2008 +1000 [XFS] Check for errors when changing buffer pointers. xfs_buf_associate_memory() can fail, but the return is never checked. Propagate the error through XFS_BUF_SET_PTR() so that failures are detected. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30831a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 037dffc79ec9369b6482b59c454c768e75487fe2 Author: David Chinner Date: Thu Apr 10 12:24:17 2008 +1000 [XFS] Don't allow silent errors in xfs_inactive(). xfs_inactive() fails to report errors when committing the inactive transaction. Hence we can get silent failures either finishing off the truncation or committing the transaction. Even if we get errors, we need to continue, so simply warn loudly to the system if we get errors here. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30830a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit bf543453aa2eac9b7fcacdd2e260b48bfcaf8a2c Author: David Chinner Date: Thu Apr 10 12:24:10 2008 +1000 [XFS] Catch errors from xfs_imap(). Catch errors from xfs_imap() in log recovery when we might be trying to map an invalid inode number due to a corrupted log. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30829a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit cdbe9067bc70f2fbe1e643ee6b9ee57294c29ac9 Author: David Chinner Date: Thu Apr 10 12:24:04 2008 +1000 [XFS] xaiki@sgi.com xfs_bulkstat_one_dinode() never returns an error. Mark it void. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30828a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 21e292ec7f9e6787067819f832bbde1bc2679263 Author: David Chinner Date: Thu Apr 10 12:23:58 2008 +1000 [XFS] xfs_iflush_fork() never returns an error. xfs_iflush_fork() never returns an error. Mark it void and clean up the code calling it that checks for errors. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30827a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit c5d28c866f9b4825c184a941999ba2d5e6b8bba2 Author: David Chinner Date: Thu Apr 10 12:23:52 2008 +1000 [XFS] Catch unwritten extent conversion errors. On unwritten I/O completion, we fail to propagate an error when converting the extent to a written extent. This means that the I/O silently fails. propagate the error onto the ioend so that the inode is marked with an error appropriately. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30826a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 7842f22d02cf609ea1eb4f7ae4701e000129b10f Author: David Chinner Date: Thu Apr 10 12:23:46 2008 +1000 [XFS] xfs_bdwrite() does not return errors. xfs_bdwrite() cannot return an error; it only queues buffers to the delayed write list and as such never encounters anything that can fail. Mark it void. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30825a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 9a5933a7421aca2fea2d31fac9673d38b390f151 Author: David Chinner Date: Thu Apr 10 12:22:24 2008 +1000 [XFS] Ensure xfs_bawrite() errors are checked. xfs_bawrite() can return immediate error status on async writes. Unlike xfsbdstrat() we don't ever check the error on the buffer after the call, so we currently do not catch errors at all here. Ensure we catch and propagate or warn to the syslog about up-front async write errors. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30824a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit fdebc17ef561e0b5118feaa7d89fd0c498d0278e Author: David Chinner Date: Thu Apr 10 12:22:17 2008 +1000 [XFS] Ensure errors from xfs_bdstrat() are correctly checked. xfsbdstrat() is declared to return an error. That is never checked because the error is propagated by the xfs_buf_t that is passed through the function. Mark xfsbdstrat() as returning void and comment the prototype on the methods needed for error checking. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30823a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 6c0cfb49c45d584ac89c2acd0a42fd96fba7e307 Author: Barry Naujok Date: Thu Apr 10 12:22:07 2008 +1000 [XFS] remove bhv_vname_t and xfs_rename code SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30804a Signed-off-by: Barry Naujok Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit ac742bd8df1b2f0dbd1862e646ddde474f42d3bc Author: David Chinner Date: Thu Apr 10 12:21:59 2008 +1000 [XFS] Catch errors returned from xfs_bmap_last_offset(). xfs_bmap_last_offset() can fail and return an error. xfs_iomap_write_allocate() fails to detect and propagate the error. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30802a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 039072adbdc5c2cb9e29bfbd27d43edc5146e2b4 Author: David Chinner Date: Thu Apr 10 12:21:53 2008 +1000 [XFS] Check for xfs_free_extent() failing. xfs_free_extent() can fail, but log recovery never bothers to check if it successfully free the extent it was supposed to. This could lead to silent corruption during log recovery. Abort log recovery if we fail to free an extent. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30801a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit f8700a6c0a068490eda469fe4340c106fc3db1f2 Author: David Chinner Date: Thu Apr 10 12:21:46 2008 +1000 [XFS] Warn if errors come from block_truncate_page(). block_truncate_page() can return errors that we currently ignore and silently discard. We should not ever get errors reported here - an error indicates a bug somewhere else. Hence catch the error and issue a stack dump to the syslog because we cannot propagate the error any further up the call chain. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30800a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit cd5a1f3da6036b7376dc7653da0874ba6bdba872 Author: David Chinner Date: Thu Apr 10 12:21:40 2008 +1000 [XFS] xfs_bmap_adjacent() never returns an error. Mark it void. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30798a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 82ee65179169621e3875939a11cc758f72cd414b Author: David Chinner Date: Thu Apr 10 12:21:32 2008 +1000 [XFS] Make xfs_alloc_compute_aligned() void. xfs_alloc_compute_aligned() returns a value based on a comparison of the computed extent length and the minimum length allowed. This is only used by some callers - the other four return parameters are used more often. Hence move the comparison to the code that actually needs to do it and make xfs_alloc_compute_aligned() a void function. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30797a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 3e6860868a21374a2fe8e3cac896f84b0b679423 Author: David Chinner Date: Thu Apr 10 12:21:25 2008 +1000 [XFS] Clean up xfs_alloc_search_busy() return values. xfs_alloc_search_busy() returns an index into the busy array if the extent was found in the array. This is never checked, and the xfs_alloc_search_busy() does a log force to prevent reuse of the extent before the free transaction hits the disk. Hence the return value is useless. Declare the function void and remove the slot number from the tracing as well. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30796a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 96ed8156967b75eaa9998de25ce8fade3518d200 Author: David Chinner Date: Thu Apr 10 12:21:18 2008 +1000 [XFS] Propagate errors from xfs_trans_commit(). xfs_trans_commit() can return errors when there are problems in the transaction subsystem. They are indicative that the entire transaction may be incomplete, and hence the error should be propagated as there is a good possibility that there is something fatally wrong in the filesystem. Catch and propagate or warn about commit errors in the places where they are currently ignored. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30795a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit b72d08b99d36168c4df1884ca052585343cb2867 Author: David Chinner Date: Thu Apr 10 12:21:11 2008 +1000 [XFS] Propagate xfs_trans_reserve() errors. xfs_trans_reserve() reports errors that should not be ignored. For example, a shutdown filesystem will report errors through xfs_trans_reserve() to prevent further changes from being attempted on a damaged filesystem. Catch and propagate all error conditions from xfs_trans_reserve(). SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30794a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit a87458d47ee866843fc04aacf20d1251e01943e9 Author: David Chinner Date: Thu Apr 10 12:21:04 2008 +1000 [XFS] Catch errors from xfs_acl_vremove(). Removing an ACL can return an error. Propagate it. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30793a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 89826e0872ac077548395668da3e4c67526566a2 Author: David Chinner Date: Thu Apr 10 12:20:58 2008 +1000 [XFS] Catch errors from xfs_acl_setmode(). Propagate the error status from xfs_acl_setmode() so that callers know if the ACl was set correctly or not. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30792a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 8908d8f5cd7f5092f3082fdbf8eec9924b097f86 Author: David Chinner Date: Thu Apr 10 12:20:51 2008 +1000 [XFS] Propagate quota file truncation errors. Truncating the quota files can silently fail. Ensure that truncation errors are propagated to the callers. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30791a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 94217c0bc920ba3938121c3afcad8213541dd39b Author: David Chinner Date: Thu Apr 10 12:20:45 2008 +1000 [XFS] Catch errors when turning off quotas. When turning off quota, we need to write various transactions to the log to ensure that they are cleanly removed in the case of a crash. We need to check that the transactions hit the disk correctly. If we fail to write the final quota off transaction, we are corrupt in memory and so the only option is to shut the filesystem down at this point. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30790a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 530459ed5a1ca42a8a8fc4f05e066c502b771669 Author: David Chinner Date: Thu Apr 10 12:20:38 2008 +1000 [XFS] Catch errors resetting quota flags. Warn to the syslog if we fail to reset the quota flags in the superblock when a quota check fails. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30789a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 6ee5d5fb8904076066e27e153ef9fdfe45bc5404 Author: David Chinner Date: Thu Apr 10 12:20:31 2008 +1000 [XFS] Clean up quotamount error handling. xfs_qm_mount_quotas() returns an error status that is ignored. If we fail to mount quotas, we continue with quota's turned off, which is all handled inside xfs_qm_mount_quotas(). Mark it as void to indicate that errors need not be returned to the callers. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30788a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 9db4aa4d941d72dac8b67cd3a5550d70b57d59b4 Author: David Chinner Date: Thu Apr 10 12:20:24 2008 +1000 [XFS] Check for dquot flush errors xfs_qm_dqflush() can fail, but the return is not checked anywhere. Hence we never know if we've failed to flush a dquot to disk. Propagate the error and warn to the syslog if a flush ever fails. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30787a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 119b6b8182e4cadba91a72d3b216cf3e18acc46d Author: David Chinner Date: Thu Apr 10 12:20:17 2008 +1000 [XFS] Propagate xfs_qm_dqflush_all() errors. xfs_qm_dqflush_all() can return flush errors. Ensure they are propagated into the quotacheck code to determine if the quotacheck succeeded or not. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30786a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit dae1502477a6e24ac59717083a18fcdf4164dfc8 Author: David Chinner Date: Thu Apr 10 12:20:10 2008 +1000 [XFS] xfs_qm_reset_dqcounts() does not return errors. Declare it void. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30785a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 8ae2768dfa78fdf300f54572829a3519a4029e82 Author: David Chinner Date: Thu Apr 10 12:20:03 2008 +1000 [XFS] Report errors from xfs_reserve_blocks(). xfs_reserve_blocks() can fail in interesting ways. In neither case is it a fatal error, but the result can lead to sub-optimal behaviour. Warn to the syslog if the call fails but otherwise continue. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30784a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 08bee6af68dd3a22861513e7736be83b98400b5b Author: David Chinner Date: Thu Apr 10 12:19:56 2008 +1000 [XFS] xfs_icsb_counter_disabled() never returns an error. Mark it void. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30782a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit dfa14aa44bc1895d9bdbd5ccc06c9342546e4051 Author: David Chinner Date: Thu Apr 10 12:19:47 2008 +1000 [XFS] Remove useless whitespace in function prototypes Makes it simpler to annotate function prototypes with __must_check via sed scripts. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30781a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 9e440b5292fb9d65836105747594dc69dfaad06e Author: David Chinner Date: Thu Apr 10 12:19:40 2008 +1000 [XFS] xfs_quiesce_fs() never returns an error. Mark it void. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30780a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 1dba7e203d4de510d1082fc65d245fec541556c2 Author: Eric Sandeen Date: Thu Apr 10 12:19:34 2008 +1000 [XFS] Ensure "both" features2 slots are consistent Since older kernels may look in the sb_bad_features2 slot for flags, rather than zeroing it out on fixup, we should make it equal to the sb_features2 value. Also, if the ATTR2 flag was not found prior to features2 fixup, it was not set in the mount flags, so re-check after the fixup so that the current session will use the feature. Also fix up the comments to reflect these changes. SGI-PV: 980085 SGI-Modid: xfs-linux-melb:xfs-kern:30778a Signed-off-by: Eric Sandeen Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 50dbfa5d8b9300993f3da3d17bdac15922032f3a Author: Christoph Hellwig Date: Thu Apr 10 12:19:27 2008 +1000 [XFS] Don't validate symlink target component length This target component validation is not POSIX conformant and it is not done by any other Linux filesystem so remove it from XFS. SGI-PV: 980080 SGI-Modid: xfs-linux-melb:xfs-kern:30776a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit cb473a842a2e8d226bd37502c18d3a73be1e3868 Author: Harvey Harrison Date: Thu Apr 10 12:19:21 2008 +1000 [XFS] replace remaining __FUNCTION__ occurrences __FUNCTION__ is gcc-specific, use __func__ SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30775a Signed-off-by: Harvey Harrison Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 2f6997ae21d6279b357802cc0223bd6902a99ac3 Author: Harvey Harrison Date: Thu Apr 10 12:19:10 2008 +1000 [XFS] Replace __inline with inline Remove the remaining uses of __inline in the XFS code base. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30774a Signed-off-by: Harvey Harrison Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit db2423e28010e0def1c99fbe2928fee34b252c35 Author: David Chinner Date: Thu Apr 10 12:19:02 2008 +1000 [XFS] Fix lock inversion in forced shutdown. Recent changes to xlog_state_release_iclog() placed the grant_lock inside the icloglock. forced unmount of the log does this the opposite way around, but does not depend on the order for correct working. Fix the inversion by changing the order locks are gained in xfs_log_force_umount(). SGI-PV: 979661 SGI-Modid: xfs-linux-melb:xfs-kern:30773a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 0699ef5e35a81ce30733fbd5419f4b19957bb2fe Author: David Chinner Date: Thu Apr 10 12:18:54 2008 +1000 [XFS] Reorganise xlog_t for better cacheline isolation of contention To reduce contention on the log in large CPU count, separate out different parts of the xlog_t structure onto different cachelines. Move each lock onto a different cacheline along with all the members that are accessed/modified while that lock is held. Also, move the debugging code into debug code. SGI-PV: 978729 SGI-Modid: xfs-linux-melb:xfs-kern:30772a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit ebf384baf60434eb3e7b5653ca267e0c76f65145 Author: David Chinner Date: Thu Apr 10 12:18:46 2008 +1000 [XFS] Remove the xlog_ticket allocator The ticket allocator is just a simple slab implementation internal to the log. It requires the icloglock to be held when manipulating it and this contributes to contention on that lock. Just kill the entire allocator and use a memory zone instead. While there, allow us to gracefully fail allocation with ENOMEM. SGI-PV: 978729 SGI-Modid: xfs-linux-melb:xfs-kern:30771a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 86308015dfc99c4eecc6d9de96cc189b75067478 Author: David Chinner Date: Thu Apr 10 12:18:39 2008 +1000 [XFS] Per iclog callback chain lock Rather than use the icloglock for protecting the iclog completion callback chain, use a new per-iclog lock so that walking the callback chain doesn't require holding a global lock. This reduces contention on the icloglock during transaction commit and log I/O completion by reducing the number of times we need to hold the global icloglock during these operations. SGI-PV: 978729 SGI-Modid: xfs-linux-melb:xfs-kern:30770a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit b1afe0f37aeaa8af6240bf2bf444de1809fe06cc Author: Izik Eidus Date: Fri Apr 4 10:11:47 2008 +0300 KVM: fix errors in the task switching support Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit a6690e259ce2d808d0fc74ce4bebd0ae25d63588 Author: Avi Kivity Date: Sun Apr 6 14:25:46 2008 +0300 KVM: Register ioctl range Signed-off-by: Avi Kivity commit 451e2877b1b96e4dd63bb466263c3b77b75693a6 Author: Anthony Liguori Date: Wed Apr 2 14:46:56 2008 -0500 KVM: MMU: Don't assume struct page for x86 This patch introduces a gfn_to_pfn() function and corresponding functions like kvm_release_pfn_dirty(). Using these new functions, we can modify the x86 MMU to no longer assume that it can always get a struct page for any given gfn. We don't want to eliminate gfn_to_page() entirely because a number of places assume they can do gfn_to_page() and then kmap() the results. When we support IO memory, gfn_to_page() will fail for IO pages although gfn_to_pfn() will succeed. This does not implement support for avoiding reference counting for reserved RAM or for IO memory. However, it should make those things pretty straight forward. Since we're only introducing new common symbols, I don't think it will break the non-x86 architectures but I haven't tested those. I've tested Intel, AMD, NPT, and hugetlbfs with Windows and Linux guests. [avi: fix overflow when shifting left pfns by adding casts] Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit 6d0016f027020ede2cf72bf3b4604c8d64b46ff5 Author: Xiantao Zhang Date: Tue Apr 1 15:08:29 2008 +0800 KVM: ia64: Add a guide about how to create kvm guests on ia64 Guide for creating virtual machine on kvm/ia64. Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 592f9f05061afe2143839fc55e2fa316b44bba24 Author: Xiantao Zhang Date: Fri Mar 28 14:58:47 2008 +0800 KVM: ia64: Enable kvm build for ia64 Update the related Makefile and KConfig for kvm build Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 210667533cd54e256466702ce11ffc9d6474e4e8 Author: Xiantao Zhang Date: Tue Apr 1 14:59:30 2008 +0800 KVM: ia64: Add kvm sal/pal virtulization support Some sal/pal calls would be traped to kvm for virtulization from guest firmware. Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 72615bdc20434accd9e1a4e8a76e489709267937 Author: Xiantao Zhang Date: Tue Apr 1 14:58:42 2008 +0800 KVM: ia64: Add guest interruption injection support process.c mainly handle interruption injection, and some faults handling. Signed-off-by: Anthony Xu Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit dee120d7a5b8f924b4ac94d0da15f6c89a254f21 Author: Xiantao Zhang Date: Tue Apr 1 14:57:53 2008 +0800 KVM: ia64: Generate offset values for assembly code use asm-offsets.c will generate offset values used for assembly code for some fileds of special structures. Signed-off-by: Anthony Xu Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 95f578198d51b2f3399928ce31057f0827213170 Author: Xiantao Zhang Date: Tue Apr 1 14:57:09 2008 +0800 KVM: ia64: Add optimization for some virtulization faults optvfault.S Add optimization for some performance-critical virtualization faults. Signed-off-by: Anthony Xu Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit d08786e6e514c2f042ce50a91f86b8c84ed9b97c Author: Xiantao Zhang Date: Tue Apr 1 16:14:28 2008 +0800 KVM: ia64: Add processor virtulization support vcpu.c provides processor virtualization logic for kvm. Signed-off-by: Anthony Xu Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 0fa607f334de0e13633dd730ae2337ed6504bb42 Author: Xiantao Zhang Date: Tue Apr 1 14:54:42 2008 +0800 KVM: ia64: Add trampoline for guest/host mode switch trampoline code targets for guest/host world switch. Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit b712a2254d6d529c27dcdeb6b405ae04d87dc91c Author: Xiantao Zhang Date: Tue Apr 1 14:53:32 2008 +0800 KVM: ia64: Add mmio decoder for kvm/ia64 mmio.c includes mmio decoder, and related mmio logics. Signed-off-by: Anthony Xu Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit ef126baa266b2ad3001dd02f690bc06c42d465cf Author: Xiantao Zhang Date: Tue Apr 1 14:52:19 2008 +0800 KVM: ia64: Add interruption vector table for vmm vmm_ivt.S includes an ivt for vmm use. Signed-off-by: Anthony Xu Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 7394cac69d8ceb3031612899eb95560771ee602a Author: Xiantao Zhang Date: Tue Apr 1 14:50:59 2008 +0800 KVM: ia64: Add TLB virtulization support vtlb.c includes tlb/VHPT virtulization. Signed-off-by: Anthony Xu Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 61897077f93957752edfa7eb22ec612087244326 Author: Xiantao Zhang Date: Tue Apr 1 14:49:24 2008 +0800 KVM: ia64: VMM module interfaces vmm.c adds the interfaces with kvm/module, and initialize global data area. Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 3a7a7fb662405979192c16a5984ddf8872cefde6 Author: Xiantao Zhang Date: Tue Apr 1 16:00:24 2008 +0800 KVM: ia64: Add header files for kvm/ia64 kvm_minstate.h : Marcos about Min save routines. lapic.h: apic structure definition. vcpu.h : routions related to vcpu virtualization. vti.h : Some macros or routines for VT support on Itanium. Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 45a17d2a1a1dbdb5411c6a350f90f14c50d30ade Author: Xiantao Zhang Date: Tue Apr 1 15:29:29 2008 +0800 KVM: ia64: Add kvm arch-specific core code for kvm/ia64 kvm_ia64.c is created to handle kvm ia64-specific core logic. Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit fdcf624ab5b00dcf5a0430cdfd87c58a77c09cda Author: Xiantao Zhang Date: Tue Apr 1 14:45:06 2008 +0800 KVM: ia64: Add header files for kvm/ia64 Three header files are added: asm-ia64/kvm.h asm-ia64/kvm_host.h asm-ia64/kvm_para.h Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 9ddc4c66ad60a835d444b0fe4636fd1dd67708a9 Author: Xiantao Zhang Date: Tue Apr 1 14:42:00 2008 +0800 KVM: ia64: Prepare some structure and routines for kvm use Register structures are defined per SDM. Add three small routines for kernel: ia64_ttag, ia64_loadrs, ia64_flushrs Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 6cf0e51910528e862b497c9e5884f993f50df9b0 Author: Xiantao Zhang Date: Tue Apr 1 14:38:21 2008 +0800 ia64: Implement smp_call_function_mask for ia64 This interface provides more flexible functionality for smp infrastructure. Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit 866298b75903d9313fa4f08ccdff34bcb846d6ea Author: Xiantao Zhang Date: Tue Apr 1 14:34:50 2008 +0800 ia64: Add API for allocating Dynamic TR resource Dynamic TR resource should be managed in the uniform way. Add two interfaces for kernel: ia64_itr_entry: Allocate a (pair of) TR for caller. ia64_ptr_entry: Purge a (pair of ) TR by caller. Signed-off-by: Xiantao Zhang Signed-off-by: Anthony Xu Signed-off-by: Avi Kivity commit 3743888cafbada95d9907a1b5fb001993b1ee03e Author: Marcelo Tosatti Date: Fri Apr 4 17:21:22 2008 -0300 KVM: MMU: account for start offset on largepage aligned-sized memslots Account for the case where memslot size is largepage aligned, but does not start on largepage aligned offset. Otherwise it allocates one lpage_info struct less than what the memslot spans, possibly resulting in memory corruption. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit fafac27bad9f4d8fd9f0b50e41c5591eb0805cd7 Author: Heiko Carstens Date: Fri Apr 4 16:03:34 2008 +0200 KVM: s390: Improve pgste accesses There is no need to use interlocked updates when the rcp lock is held. Therefore the simple bitops variants can be used. This should improve performance. Signed-off-by: Heiko Carstens Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit d17db823b65d6d215193f4ad2ba517dcaa2a4c54 Author: Heiko Carstens Date: Fri Apr 4 15:12:40 2008 +0200 KVM: s390: rename stfl to kvm_stfl Temporarily rename this function to avoid merge conflicts and/or dependencies. This function will be removed as soon as git-s390 and kvm.git are finally upstream. Signed-off-by: Heiko Carstens Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit bcb0dd888c478e229aa6c60d7ab81e81bde47aef Author: Heiko Carstens Date: Fri Apr 4 15:12:35 2008 +0200 KVM: s390: Fix incorrect return value kvm_arch_vcpu_ioctl_run currently incorrectly always returns 0. Signed-off-by: Heiko Carstens Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit a02bb9e2793e906022885eb49d5a58a212e8953a Author: Heiko Carstens Date: Fri Apr 4 15:12:32 2008 +0200 KVM: s390: Some codingstyle issues. Just a few codingstyle issues that have already been commented on but that somehow got forgotten. Signed-off-by: Heiko Carstens Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit c415209f8a62eb3987b16c16b7f800d44ec6acda Author: Marcelo Tosatti Date: Fri Apr 4 14:56:44 2008 -0300 KVM: MMU: prepopulate guest pages after write-protecting Zdenek reported a bug where a looping "dmsetup status" eventually hangs on SMP guests. The problem is that kvm_mmu_get_page() prepopulates the shadow MMU before write protecting the guest page tables. By doing so, it leaves a window open where the guest can mark a pte as present while the host has shadow cached such pte as "notrap". Accesses to such address will fault in the guest without the host having a chance to fix the situation. Fix by moving the write protection before the pte prefetch. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 7e36e2f5355ab87f8946041d044b34cda01e2077 Author: Rod Whitby Date: Tue Apr 1 10:53:23 2008 +0100 [ARM] 4874/2: ixp4xx: Add support for the Freecom FSG-3 board The Freecom-FSG3 is a small network-attached-storage device with the following feature set: * Intel IXP422 * 4MB Flash (ixp4xx flash driver) * 64MB RAM * 4 USB 2.0 host ports (ehci and ohci drivers) * 1 WAN (eth1) and 3 LAN (eth0) ethernet ports * Supported by the open source ixp4xx ethernet driver * Via VT6421 disk controller (libata and sata-via drivers) * Internal hard disk (PATA supported, SATA not yet supported) * External SATA port (not yet supported) * ISL1208 RTC chip * Winbond 83782 temp sensor and fan controller * MiniPCI slot The ixp4xx_defconfig is also updated to support this device (the leds-fsg driver is to be submitted separately via the leds tree after this initial support is merged, as it depends on header gpio defines). Signed-off-by: Rod Whitby Signed-off-by: Russell King commit cdc022c58ef17e874520a9d4a85040ea1fb12a66 Author: Avi Kivity Date: Thu Apr 3 18:17:58 2008 +0300 KVM: Drop slots_lock while in guest mode As we can be in guest mode for indefinite periods, we need to drop slots_lock so that it can be taken for write by other operations (like the reading the dirty log). Signed-off-by: Avi Kivity commit 1963a30bd9d8588f967316298ff1df13f41200e7 Author: Avi Kivity Date: Thu Apr 3 12:02:21 2008 +0300 KVM: MMU: Only mark_page_accessed() if the page was accessed by the guest If the accessed bit is not set, the guest has never accessed this page (at least through this spte), so there's no need to mark the page accessed. This provides more accurate data for the eviction algortithm. Noted by Andrea Arcangeli. Signed-off-by: Avi Kivity commit 07b863c8a78d4d22327856d3141fe6e757b59bce Author: Izik Eidus Date: Sun Mar 30 16:01:25 2008 +0300 KVM: add vm refcounting the main purpose of adding this functions is the abilaty to release the spinlock that protect the kvm list while still be able to do operations on a specific kvm in a safe way. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit b00e4d5e0189f1b66988f96706e8935facde6574 Author: Joerg Roedel Date: Tue Apr 1 16:44:56 2008 +0200 KVM: function declaration parameter name cleanup The kvm_host.h file for x86 declares the functions kvm_set_cr[0348]. In the header file their second parameter is named cr0 in all cases. This patch renames the parameters so that they match the function name. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 78e00160c30ce75c07b8ec93ae8d99a062ffb347 Author: Avi Kivity Date: Mon Mar 31 14:48:35 2008 +0300 KVM: MMU: Add printk() when setting a pte replaces an existing page Signed-off-by: Avi Kivity commit 2ac530fcd40ad730d4cc7961768e412eaf9b7caa Author: Izik Eidus Date: Sun Mar 30 15:17:21 2008 +0300 KVM: MMU: allow the vm to shrink the kvm mmu shadow caches Allow the Linux memory manager to reclaim memory in the kvm shadow cache. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit c3071eae069e407d067a98c22ab2d1973b68785b Author: Marcelo Tosatti Date: Sat Mar 29 20:17:59 2008 -0300 KVM: MMU: unify slots_lock usage Unify slots_lock acquision around vcpu_run(). This is simpler and less error-prone. Also fix some callsites that were not grabbing the lock properly. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 6d159c4892cd673e85ee77ada2767320cd9f8142 Author: Sheng Yang Date: Fri Mar 28 13:18:56 2008 +0800 KVM: VMX: Enable MSR Bitmap feature MSR Bitmap controls whether the accessing of an MSR causes VM Exit. Eliminating exits on automatically saved and restored MSRs yields a small performance gain. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 0f541a84d0e93fc927a55196a1a0a1ef539c71a7 Author: Marcelo Tosatti Date: Thu Mar 27 19:05:03 2008 -0300 KVM: MMU: fix large page breakage commit 15aaa819e20cb183f26392ed8ea16020630ef142 broke large page handling. With large pages it is valid to enter mmu_set_spte() with a gfn different than what current shadow pte contains, when overwritting a PTE page pointer. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 2d3898859c4eafc8e67f805f38acae8f31bd24a4 Author: Christian Borntraeger Date: Tue Mar 25 18:47:46 2008 +0100 s390: KVM guest: virtio device support, and kvm hypercalls This patch implements kvm guest kernel support for paravirtualized devices and contains two parts: o a basic virtio stub using virtio_ring and external interrupts and hypercalls o full hypercall implementation in kvm_para.h Currently we dont have PCI on s390. Making virtio_pci usable for s390 seems more complicated that providing an own stub. This virtio stub is similar to the lguest one, the memory for the descriptors and the device detection is made via additional mapped memory on top of the guest storage. We use an external interrupt with extint code 1237 for host->guest notification. The hypercall definition uses the diag instruction for issuing a hypercall. The parameters are written in R2-R7, the hypercall number is written in R1. This is similar to the system call ABI (svc) which can use R1 for the number and R2-R6 for the parameters. Signed-off-by: Christian Borntraeger Acked-by: Martin Schwidefsky Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 25213c3e02d4799c4d8e4b924ab995fd35b32927 Author: Christian Borntraeger Date: Tue Mar 25 18:47:44 2008 +0100 s390: KVM guest: detect when running on kvm From: Christian Borntraeger From: Carsten Otte This patch adds functionality to detect if the kernel runs under the KVM hypervisor. A macro MACHINE_IS_KVM is exported for device drivers. This allows drivers to skip device detection if the systems runs non-virtualized. We also define a preferred console to avoid having the ttyS0, which is a line mode only console. Signed-off-by: Christian Borntraeger Acked-by: Martin Schwidefsky Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 7ba4d65483ca39853ae3784fe1d5022ce15ad4ea Author: Christian Borntraeger Date: Tue Mar 25 18:47:41 2008 +0100 KVM: s390: update maintainers This patch adds an entry for kvm on s390 to the MAINTAINERS file :-). We intend to push all patches regarding this via Avi's kvm.git. Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 6b62dd26beedd71db27cd1f307263e73c1cfa751 Author: Carsten Otte Date: Tue Mar 25 18:47:38 2008 +0100 KVM: s390: API documentation This patch adds Documentation/s390/kvm.txt, which describes specifics of kvm's user interface that are unique to s390 architecture. Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit e1eb84250c9693300366367a411b2a8037411bfe Author: Carsten Otte Date: Tue Mar 25 18:47:36 2008 +0100 KVM: s390: add kvm to kconfig on s390 From: Carsten Otte From: Christian Borntraeger This patch adds the virtualization submenu and the kvm option to the kernel config. It also defines HAVE_KVM for 64bit kernels. Acked-by: Martin Schwidefsky Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 9e83465580d5f09e9d3d98f65aa049d755d96af0 Author: Carsten Otte Date: Tue Mar 25 18:47:34 2008 +0100 KVM: s390: intercepts for diagnose instructions From: Carsten Otte From: Christian Borntraeger This patch introduces interpretation of some diagnose instruction intercepts. Diagnose is our classic architected way of doing a hypercall. This patch features the following diagnose codes: - vm storage size, that tells the guest about its memory layout - time slice end, which is used by the guest to indicate that it waits for a lock and thus cannot use up its time slice in a useful way - ipl functions, which a guest can use to reset and reboot itself In order to implement ipl functions, we also introduce an exit reason that causes userspace to perform various resets on the virtual machine. All resets are described in the principles of operation book, except KVM_S390_RESET_IPL which causes a reboot of the machine. Acked-by: Martin Schwidefsky Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit f97da5843e02f1892395e34550c020965f366ef6 Author: Carsten Otte Date: Tue Mar 25 18:47:31 2008 +0100 KVM: s390: interprocessor communication via sigp From: Carsten Otte From: Christian Borntraeger This patch introduces in-kernel handling of _some_ sigp interprocessor signals (similar to ipi). kvm_s390_handle_sigp() decodes the sigp instruction and calls individual handlers depending on the operation requested: - sigp sense tries to retrieve information such as existence or running state of the remote cpu - sigp emergency sends an external interrupt to the remove cpu - sigp stop stops a remove cpu - sigp stop store status stops a remote cpu, and stores its entire internal state to the cpus lowcore - sigp set arch sets the architecture mode of the remote cpu. setting to ESAME (s390x 64bit) is accepted, setting to ESA/S390 (s390, 31 or 24 bit) is denied, all others are passed to userland - sigp set prefix sets the prefix register of a remote cpu For implementation of this, the stop intercept indication starts to get reused on purpose: a set of action bits defines what to do once a cpu gets stopped: ACTION_STOP_ON_STOP really stops the cpu when a stop intercept is recognized ACTION_STORE_ON_STOP stores the cpu status to lowcore when a stop intercept is recognized Acked-by: Martin Schwidefsky Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 2901e41f93f9c2ac53f5e2ed251017dd3da9dccb Author: Carsten Otte Date: Tue Mar 25 18:47:29 2008 +0100 KVM: s390: intercepts for privileged instructions From: Carsten Otte From: Christian Borntraeger This patch introduces in-kernel handling of some intercepts for privileged instructions: handle_set_prefix() sets the prefix register of the local cpu handle_store_prefix() stores the content of the prefix register to memory handle_store_cpu_address() stores the cpu number of the current cpu to memory handle_skey() just decrements the instruction address and retries handle_stsch() delivers condition code 3 "operation not supported" handle_chsc() same here handle_stfl() stores the facility list which contains the capabilities of the cpu handle_stidp() stores cpu type/model/revision and such handle_stsi() stores information about the system topology Acked-by: Martin Schwidefsky Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 79906268c3ea304f72b8a9c384f19f9eac2a5c8f Author: Carsten Otte Date: Tue Mar 25 18:47:26 2008 +0100 KVM: s390: interrupt subsystem, cpu timer, waitpsw This patch contains the s390 interrupt subsystem (similar to in kernel apic) including timer interrupts (similar to in-kernel-pit) and enabled wait (similar to in kernel hlt). In order to achieve that, this patch also introduces intercept handling for instruction intercepts, and it implements load control instructions. This patch introduces an ioctl KVM_S390_INTERRUPT which is valid for both the vm file descriptors and the vcpu file descriptors. In case this ioctl is issued against a vm file descriptor, the interrupt is considered floating. Floating interrupts may be delivered to any virtual cpu in the configuration. The following interrupts are supported: SIGP STOP - interprocessor signal that stops a remote cpu SIGP SET PREFIX - interprocessor signal that sets the prefix register of a (stopped) remote cpu INT EMERGENCY - interprocessor interrupt, usually used to signal need_reshed and for smp_call_function() in the guest. PROGRAM INT - exception during program execution such as page fault, illegal instruction and friends RESTART - interprocessor signal that starts a stopped cpu INT VIRTIO - floating interrupt for virtio signalisation INT SERVICE - floating interrupt for signalisations from the system service processor struct kvm_s390_interrupt, which is submitted as ioctl parameter when injecting an interrupt, also carrys parameter data for interrupts along with the interrupt type. Interrupts on s390 usually have a state that represents the current operation, or identifies which device has caused the interruption on s390. kvm_s390_handle_wait() does handle waitpsw in two flavors: in case of a disabled wait (that is, disabled for interrupts), we exit to userspace. In case of an enabled wait we set up a timer that equals the cpu clock comparator value and sleep on a wait queue. Acked-by: Martin Schwidefsky Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 13d449639825912c0cf0aa3fb1bf4ead8f6d76b5 Author: Carsten Otte Date: Tue Mar 25 18:47:23 2008 +0100 KVM: s390: sie intercept handling From: Carsten Otte From: Christian Borntraeger This path introduces handling of sie intercepts in three flavors: Intercepts are either handled completely in-kernel by kvm_handle_sie_intercept(), or passed to userspace with corresponding data in struct kvm_run in case kvm_handle_sie_intercept() returns -ENOTSUPP. In case of partial execution in kernel with the need of userspace support, kvm_handle_sie_intercept() may choose to set up struct kvm_run and return -EREMOTE. The trivial intercept reasons are handled in this patch: handle_noop() just does nothing for intercepts that don't require our support at all handle_stop() is called when a cpu enters stopped state, and it drops out to userland after updating our vcpu state handle_validity() faults in the cpu lowcore if needed, or passes the request to userland Acked-by: Martin Schwidefsky Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 5ef1efd73460024446cc50469e08372de69966c8 Author: Carsten Otte Date: Tue Mar 25 18:47:20 2008 +0100 KVM: s390: arch backend for the kvm kernel module From: Carsten Otte From: Christian Borntraeger From: Heiko Carstens This patch contains the port of Qumranet's kvm kernel module to IBM zSeries (aka s390x, mainframe) architecture. It uses the mainframe's virtualization instruction SIE to run virtual machines with up to 64 virtual CPUs each. This port is only usable on 64bit host kernels, and can only run 64bit guest kernels. However, running 31bit applications in guest userspace is possible. The following source files are introduced by this patch arch/s390/kvm/kvm-s390.c similar to arch/x86/kvm/x86.c, this implements all arch callbacks for kvm. __vcpu_run calls back into sie64a to enter the guest machine context arch/s390/kvm/sie64a.S assembler function sie64a, which enters guest context via SIE, and switches world before and after that include/asm-s390/kvm_host.h contains all vital data structures needed to run virtual machines on the mainframe include/asm-s390/kvm.h defines kvm_regs and friends for user access to guest register content arch/s390/kvm/gaccess.h functions similar to uaccess to access guest memory arch/s390/kvm/kvm-s390.h header file for kvm-s390 internals, extended by later patches Acked-by: Martin Schwidefsky Signed-off-by: Christian Borntraeger Signed-off-by: Heiko Carstens Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 2c362ff1cadd1ae90c8dbc5e87c1e8a8f745d8d6 Author: Christian Borntraeger Date: Tue Mar 25 18:47:18 2008 +0100 s390: KVM preparation: split sysinfo defintions for kvm use drivers/s390/sysinfo.c uses the store system information intruction to query the system about information of the machine, the LPAR and additional hypervisors. KVM has to implement the host part for this instruction. To avoid code duplication, this patch splits the common definitions from sysinfo.c into a separate header file include/asm-s390/sysinfo.h for KVM use. Acked-by: Martin Schwidefsky Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 6d15529a96b8f66b4e816508f86cb2fe02b0b126 Author: Christian Borntraeger Date: Tue Mar 25 18:47:15 2008 +0100 s390: KVM preparation: address of the 64bit extint parm in lowcore The address 0x11b8 is used by z/VM for pfault and diag 250 I/O to provide a 64 bit extint parameter. virtio uses the same address, so its time to update the lowcore structure. Acked-by: Martin Schwidefsky Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 72a1eb2b4ec09f7290eec6323495723b90a510a3 Author: Heiko Carstens Date: Tue Mar 25 18:47:12 2008 +0100 s390: KVM preparation: host memory management changes for s390 kvm From: Heiko Carstens From: Christian Borntraeger This patch changes the s390 memory management defintions to use the pgste field for dirty and reference bit tracking of host and guest code. Usually on s390, dirty and referenced are tracked in storage keys, which belong to the physical page. This changes with virtualization: The guest and host dirty/reference bits are defined to be the logical OR of the values for the mapping and the physical page. This patch implements the necessary changes in pgtable.h for s390. There is a common code change in mm/rmap.c, the call to page_test_and_clear_young must be moved. This is a no-op for all architecture but s390. page_referenced checks the referenced bits for the physiscal page and for all mappings: o The physical page is checked with page_test_and_clear_young. o The mappings are checked with ptep_test_and_clear_young and friends. Without pgstes (the current implementation on Linux s390) the physical page check is implemented but the mapping callbacks are no-ops because dirty and referenced are not tracked in the s390 page tables. The pgstes introduces guest and host dirty and reference bits for s390 in the host mapping. These mapping must be checked before page_test_and_clear_young resets the reference bit. Signed-off-by: Heiko Carstens Signed-off-by: Christian Borntraeger Acked-by: Martin Schwidefsky Acked-by: Andrew Morton Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 42fdc18edf553162617f9b8691b51bd92e7902f7 Author: Martin Schwidefsky Date: Tue Mar 25 18:47:10 2008 +0100 s390: KVM preparation: provide hook to enable pgstes in user pagetable From: Martin Schwidefsky From: Carsten Otte The SIE instruction on s390 uses the 2nd half of the page table page to virtualize the storage keys of a guest. This patch offers the s390_enable_sie function, which reorganizes the page tables of a single-threaded process to reserve space in the page table: s390_enable_sie makes sure that the process is single threaded and then uses dup_mm to create a new mm with reorganized page tables. The old mm is freed and the process has now a page status extended field after every page table. Code that wants to exploit pgstes should SELECT CONFIG_PGSTE. This patch has a small common code hit, namely making dup_mm non-static. Edit (Carsten): I've modified Martin's patch, following Jeremy Fitzhardinge's review feedback. Now we do have the prototype for dup_mm in include/linux/sched.h. Following Martin's suggestion, s390_enable_sie() does now call task_lock() to prevent race against ptrace modification of mm_users. Signed-off-by: Martin Schwidefsky Signed-off-by: Carsten Otte Acked-by: Andrew Morton Signed-off-by: Avi Kivity commit a856ae26ea192996b2c6eea22ccd9c53c27d2647 Author: Carsten Otte Date: Wed Mar 26 13:20:16 2008 +0100 s390: fixup for kvm Temporary commit, should appear in mainline shortly. Signed-off-by: Avi Kivity commit 4b8bfa4cc9d47d1607471314f4bb0db10de7c0ec Author: Randy Dunlap Date: Tue Mar 25 16:08:46 2008 -0700 x86: KVM guest: don't allow KVM_CLOCK on Voyager or Visual WS Prevent failed randconfig builds with KVM_CLOCK being enabled on Voyager or VISWS. build-rand9.out: Using /local/linsrc/next-20080325 as source for kernel build-rand9.out: from /local/linsrc/next-20080325/include/linux/irqflags.h:46, build-rand9.out: from include2/asm/system.h:11, build-rand9.out: from include2/asm/processor.h:21, build-rand9.out: from include2/asm/atomic_32.h:5, build-rand9.out: from include2/asm/atomic.h:2, build-rand9.out: from /local/linsrc/next-20080325/include/linux/crypto.h:20, build-rand9.out: from /local/linsrc/next-20080325/arch/x86/kernel/asm-offsets_32.c:7, build-rand9.out: from /local/linsrc/next-20080325/arch/x86/kernel/asm-offsets.c:2: build-rand9.out:include2/asm/paravirt.h:856: error: 'struct pv_apic_ops' has no member named 'startup_ipi_hook' build-rand9.out:include2/asm/paravirt.h:856: error: 'struct pv_apic_ops' has no member named 'startup_ipi_hook' build-rand9.out:include2/asm/paravirt.h:856: error: memory input 4 is not directly addressable build-rand9.out:make[2]: *** [arch/x86/kernel/asm-offsets.s] Error 1 Signed-off-by: Randy Dunlap Signed-off-by: Avi Kivity commit 329e0dcd2f78ba3eeccd9b55fc4df439d96b86c2 Author: Lachlan McIlroy Date: Thu Mar 27 18:01:14 2008 +1100 [XFS] Prevent xfs_bmap_check_leaf_extents() from referencing unmapped memory. While investigating the extent corruption bug I ran into this bug in debug only code. xfs_bmap_check_leaf_extents() loops through the leaf blocks of the extent btree checking that every extent is entirely before the next extent. It also compares the last extent in the previous block to the first extent in the current block when the previous block has been released and potentially unmapped. So take a copy of the last extent instead of a pointer. Also move the last extent check out of the loop because we only need to do it once. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30718a Signed-off-by: Lachlan McIlroy Signed-off-by: Christoph Hellwig commit 8407a618c4f51ee8d32615a76fbc4f4c735253fd Author: Christoph Hellwig Date: Thu Mar 27 18:01:08 2008 +1100 [XFS] remove most calls to VN_RELE Most VN_RELE calls either directly contain a XFS_ITOV or have the corresponding xfs_inode already in scope. Use the IRELE helper instead of VN_RELE to clarify the code. With a little more work we can kill VN_RELE altogether and define IRELE in terms of iput directly. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30710a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 0889402b05623fa1d1d3bf929dd0b0527d40870c Author: Christoph Hellwig Date: Thu Mar 27 18:01:00 2008 +1100 [XFS] split xfs_ioc_xattr The three subcases of xfs_ioc_xattr don't share any semantics and almost no code, so split it into three separate helpers. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30709a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 6181b36ac2ee883289bcfbfd0a4419fc5258c208 Author: Christoph Hellwig Date: Thu Mar 27 18:00:54 2008 +1100 [XFS] cleanup root inode handling in xfs_fs_fill_super - rename rootvp to root for clarify - remove useless vn_to_inode call - check is_bad_inode before calling d_alloc_root - use iput instead of VN_RELE in the error case SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30708a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit c9532b3b9f7e0101fa849211746e41d827009e88 Author: David Chinner Date: Thu Mar 27 18:00:45 2008 +1100 [XFS] Ensure a btree insert returns a valid cursor. When writing into preallocated regions there is a case where XFS can oops or hang doing the unwritten extent conversion on I/O completion. It turns out that the problem is related to the btree cursor being invalid. When we do an insert into the tree, we may need to split blocks in the tree. When we only split at the leaf level (i.e. level 0), everything works just fine. However, if we have a multi-level split in the btreee, the cursor passed to the insert function is no longer valid once the insert is complete. The leaf level split is handled correctly because all the operations at level 0 are done using the original cursor, hence it is updated correctly. However, when we need to update the next level up the tree, we don't use that cursor - we use a cloned cursor that points to the index in the next level up where we need to do the insert. Hence if we need to split a second level, the changes to the tree are reflected in the cloned cursor and not the original cursor. This clone-and-move-up-a-level-on-split behaviour recurses all the way to the top of the tree. The complexity here is that these cloned cursors do not point to the original index that was inserted - they point to the newly allocated block (the right block) and the original cursor pointer to that level may still point to the left block. Hence, without deep examination of the cloned cursor and buffers, we cannot update the original cursor with the new path from the cloned cursor. In these cases the original cursor could be pointing to the wrong block(s) and hence a subsequent modification to the tree using that cursor will lead to corruption of the tree. The crash case occurs when the tree changes height - we insert a new level in the tree, and the cursor does not have a buffer in it's path for that level. Hence any attempt to walk back up the cursor to the root block will result in a null pointer dereference. To make matters even more complex, the BMAP BT is rooted in an inode, so we can have a change of height in the btree *without a root split*. That is, if the root block in the inode is full when we split a leaf node, we cannot fit the pointer to the new block in the root, so we allocate a new block, migrate all the ptrs out of the inode into the new block and point the inode root block at the newly allocated block. This changes the height of the tree without a root split having occurred and hence invalidates the path in the original cursor. The patch below prevents xfs_bmbt_insert() from returning with an invalid cursor by detecting the cases that invalidate the original cursor and refresh it by do a lookup into the btree for the original index we were inserting at. Note that the INOBT, AGFBNO and AGFCNT btree implementations also have this bug, but the cursor is currently always destroyed or revalidated after an insert for those trees. Hence this patch only address the problem in the BMBT code. SGI-PV: 979339 SGI-Modid: xfs-linux-melb:xfs-kern:30701a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 57b4d888458bd259eb0d334158511b6cb05496e0 Author: David Chinner Date: Thu Mar 27 18:00:38 2008 +1100 [XFS] Account for inode cluster alignment in all allocations At ENOSPC, we can get a filesystem shutdown due to a cancelling a dirty transaction in xfs_mkdir or xfs_create. This is due to the initial allocation attempt not taking into account inode alignment and hence we can prepare the AGF freelist for allocation when it's not actually possible to do an allocation. This results in inode allocation returning ENOSPC with a dirty transaction, and hence we shut down the filesystem. Because the first allocation is an exact allocation attempt, we must tell the allocator that the alignment does not affect the allocation attempt. i.e. we will accept any extent alignment as long as the extent starts at the block we want. Unfortunately, this means that if the longest free extent is less than the length + alignment necessary for fallback allocation attempts but is long enough to attempt a non-aligned allocation, we will modify the free list. If we then have the exact allocation fail, all other allocation attempts will also fail due to the alignment constraint being taken into account. Hence the initial attempt needs to set the "alignment slop" field so that alignment, while not required, must be taken into account when determining if there is enough space left in the AG to do the allocation. That means if the exact allocation fails, we will not dirty the freelist if there is not enough space available fo a subsequent allocation to succeed. Hence we get an ENOSPC error back to userspace without shutting down the filesystem. SGI-PV: 978886 SGI-Modid: xfs-linux-melb:xfs-kern:30699a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit e99d595d4ccd74e2dc442423469d9d175c3656cd Author: Josef 'Jeff' Sipek Date: Thu Mar 27 17:58:27 2008 +1100 [XFS] Replace custom AIL linked-list code with struct list_head Replace the xfs_ail_entry_t with a struct list_head and clean the surrounding code up. Also fixes a livelock in xfs_trans_first_push_ail() by terminating the loop at the head of the list correctly. SGI-PV: 978682 SGI-Modid: xfs-linux-melb:xfs-kern:30636a Signed-off-by: Josef 'Jeff' Sipek Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit c0af88e9014019f6392b06c11e836ca58acc7ede Author: Avi Kivity Date: Wed Mar 26 11:39:12 2008 +0200 Revert "KVM: use get_task_mm() instead of atomic_inc the mm_count" This reverts commit 202761268a29d4cd3a3fec35e6d6f2f239374635. The change caused a cycle that wouldn't let virtual machines to be deallocated (due to the mm holding a ref to the file table, which holds a ref to kvm). Signed-off-by: Avi Kivity commit 680615e31ee986b6a5d64783c536ed9fae67c010 Author: Izik Eidus Date: Mon Mar 24 23:14:53 2008 +0200 KVM: x86: hardware task switching support This emulates the x86 hardware task switch mechanism in software, as it is unsupported by either vmx or svm. It allows operating systems which use it, like freedos, to run as kvm guests. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit dc55ffed23380ec0aaf53ebd04e99298c8a46514 Author: Izik Eidus Date: Mon Mar 24 19:38:34 2008 +0200 KVM: x86: add functions to get the cpl of vcpu Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 8995c473bdd29e900cdec9aca1a0d60c5dd61507 Author: Avi Kivity Date: Tue Mar 25 11:26:13 2008 +0200 KVM: Free apic access page on vm destruction Noticed by Marcelo Tosatti. Signed-off-by: Avi Kivity commit 8dac14eb4014eb861eee7619e8df351163ca2bf3 Author: Avi Kivity Date: Mon Mar 24 18:15:14 2008 +0200 KVM: VMX: Add module option to disable flexpriority Useful for debugging. Signed-off-by: Avi Kivity commit de9babf30ad7c73626308beae6062bc60e48d714 Author: Avi Kivity Date: Sun Mar 23 18:36:30 2008 +0200 KVM: no longer EXPERIMENTAL Long overdue. Signed-off-by: Avi Kivity commit 202761268a29d4cd3a3fec35e6d6f2f239374635 Author: Izik Eidus Date: Thu Mar 20 15:19:40 2008 +0200 KVM: use get_task_mm() instead of atomic_inc the mm_count Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 019e2e8bb7e89b2479f867050f4961d1c4461403 Author: Avi Kivity Date: Sun Mar 23 15:06:23 2008 +0200 KVM: MMU: Introduce and use spte_to_page() Encapsulate the command mask'n'shift in a function. Signed-off-by: Avi Kivity commit 075a32dab40bbd330f997fb5b1c9b540d22d073d Author: Izik Eidus Date: Thu Mar 20 18:17:24 2008 +0200 KVM: MMU: fix dirty bit setting when removing write permissions When mmu_set_spte() checks if a page related to spte should be release as dirty or clean, it check if the shadow pte was writeble, but in case rmap_write_protect() is called called it is possible for shadow ptes that were writeble to become readonly and therefor mmu_set_spte will release the pages as clean. This patch fix this issue by marking the page as dirty inside rmap_write_protect(). Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 361be34b5222fef558c4d0f5d956c1ea3d299f76 Author: Avi Kivity Date: Fri Mar 21 12:38:23 2008 +0200 KVM: Move some x86 specific constants and structures to include/asm-x86 Signed-off-by: Avi Kivity commit 914bd662fe1374f4a7f92b1665d75274aef8a95e Author: Marcelo Tosatti Date: Tue Mar 18 17:42:34 2008 -0300 KVM: VMX: convert init_rmode_tss() to slots_lock init_rmode_tss was forgotten during the conversion from mmap_sem to slots_lock. INFO: task qemu-system-x86:3748 blocked for more than 120 seconds. Call Trace: [] __down_read+0x86/0x9e [] do_page_fault+0x346/0x78e [] trace_hardirqs_on_thunk+0x35/0x3a [] error_exit+0x0/0xa9 [] copy_user_generic_string+0x17/0x40 [] :kvm:kvm_write_guest_page+0x3e/0x5f [] :kvm_intel:init_rmode_tss+0xa7/0xf9 [] :kvm_intel:vmx_vcpu_reset+0x10/0x38a [] :kvm:kvm_arch_vcpu_setup+0x20/0x53 [] :kvm:kvm_vm_ioctl+0xad/0x1cf [] __lock_acquire+0x4f7/0xc28 [] vfs_ioctl+0x21/0x6b [] do_vfs_ioctl+0x252/0x26b [] sys_ioctl+0x3c/0x5e [] system_call_after_swapgs+0x7b/0x80 Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit e0a570bb7acff2109a5b3c2d59ba3b177962d430 Author: Andrew Morton Date: Tue Mar 18 18:42:35 2008 -0700 KVM: warning fix arch/x86/kvm/mmu.c: In function 'kvm_pv_mmu_op': arch/x86/kvm/mmu.c:2119: warning: comparison of distinct pointer types lacks a cast Cc: Avi Kivity Signed-off-by: Andrew Morton Signed-off-by: Avi Kivity commit f1080a0045631777a0a9c80533f833c76c5be4c8 Author: Glauber Costa Date: Tue Mar 18 07:30:06 2008 -0300 x86: KVM guest: disable clock before rebooting (!CONFIG_KEXEC fixes) Signed-off-by: Glauber Costa Signed-off-by: Avi Kivity commit 898518e2557629399ec33b1784fca1ebec2b8a63 Author: Glauber Costa Date: Tue Mar 18 07:30:04 2008 -0300 x86: allow machine_crash_shutdown to be replaced (fixes for !CONFIG_KEXEC) Signed-off-by: Glauber Costa Signed-off-by: Avi Kivity commit 4c95a0abcc113cdffe4e8981e343f9da1d27a641 Author: Avi Kivity Date: Tue Mar 18 11:05:52 2008 +0200 KVM: MMU: Set the accessed bit on non-speculative shadow ptes If we populate a shadow pte due to a fault (and not speculatively due to a pte write) then we can set the accessed bit on it, as we know it will be set immediately on the next guest instruction. This saves a read-modify-write operation. Signed-off-by: Avi Kivity commit 2585fb6f8f8ead2be4c1e5416b7aa95f2cc7c64c Author: Christian Borntraeger Date: Wed Mar 12 18:10:45 2008 +0100 KVM: kvm.h: __user requires compiler.h include/linux/kvm.h defines struct kvm_dirty_log to [...] union { void __user *dirty_bitmap; /* one bit per page */ __u64 padding; }; __user requires compiler.h to compile. Currently, this works on x86 only coincidentally due to other include files. This patch makes kvm.h compile in all cases. Signed-off-by: Christian Borntraeger Signed-off-by: Avi Kivity commit 8b55bc5a2b44c643e3927b71587fb724acc2361c Author: Glauber Costa Date: Mon Mar 17 16:08:40 2008 -0300 x86: KVM guest: disable clock before rebooting. This patch writes 0 (actually, what really matters is that the LSB is cleared) to the system time msr before shutting down the machine for kexec. Without it, we can have a random memory location being written when the guest comes back It overrides the functions shutdown, used in the path of kernel_kexec() (sys.c) and crash_shutdown, used in the path of crash_kexec() (kexec.c) Signed-off-by: Glauber Costa Signed-off-by: Avi Kivity commit 0c7f95e535a02caba52f944f067fbc05a0608cc1 Author: Glauber Costa Date: Mon Mar 17 16:08:39 2008 -0300 x86: make native_machine_shutdown non-static it will allow external users to call it. It is mainly useful for routines that will override its machine_ops field for its own special purposes, but want to call the normal shutdown routine after they're done Signed-off-by: Glauber Costa Signed-off-by: Avi Kivity commit 602ac559a208ba44d5879a8e6381a379b376a8b7 Author: Glauber Costa Date: Mon Mar 17 16:08:38 2008 -0300 x86: allow machine_crash_shutdown to be replaced This patch a llows machine_crash_shutdown to be replaced, just like any of the other functions in machine_ops Signed-off-by: Glauber Costa Signed-off-by: Avi Kivity commit 20d1b4e59c58f69f908c231e642329b265a9bc2b Author: Glauber Costa Date: Mon Mar 17 17:10:15 2008 -0300 KVM: use slots_lock to protect writes to the wall clock As Marcelo pointed out, we need slots_lock to protect against slots changing under our nose during wall clock writing. This patch address this issue. Signed-off-by: Glauber Costa CC: Marcelo Tosatti Signed-off-by: Avi Kivity commit ac1cd26007b7904043b8d4fc802b82aac076030a Author: Marcelo Tosatti Date: Mon Mar 17 10:08:18 2008 -0300 KVM: MMU: handle page removal with shadow mapping Do not assume that a shadow mapping will always point to the same host frame number. Fixes crash with madvise(MADV_DONTNEED). Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 5d784772e95e49a6ed14b9f26b3d238ebea2be18 Author: Marcelo Tosatti Date: Fri Feb 22 12:21:38 2008 -0500 x86: KVM guest: hypercall batching Batch pte updates and tlb flushes in lazy MMU mode. [avi: - adjust to mmu_op - helper for getting para_state without debug warnings] Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 3492d80e1d063f1b48f92922546ec12fde138267 Author: Marcelo Tosatti Date: Fri Feb 22 12:21:37 2008 -0500 x86: KVM guest: hypercall based pte updates and TLB flushes Hypercall based pte updates are faster than faults, and also allow use of the lazy MMU mode to batch operations. Don't report the feature if two dimensional paging is enabled. [avi: - guest/host split - fix 32-bit truncation issues - adjust to mmu_op] Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit e611c5b90e362f9f6d8cb15d1c4dce30120871d6 Author: Marcelo Tosatti Date: Fri Feb 22 12:21:37 2008 -0500 KVM: MMU: hypercall based pte updates and TLB flushes Hypercall based pte updates are faster than faults, and also allow use of the lazy MMU mode to batch operations. Don't report the feature if two dimensional paging is enabled. [avi: - one mmu_op hypercall instead of one per op - allow 64-bit gpa on hypercall - don't pass host errors (-ENOMEM) to guest] Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 653bd220aa68fe27ed9bcbffb76578e143844030 Author: Avi Kivity Date: Sun Mar 2 14:06:05 2008 +0200 KVM: Provide unlocked version of emulator_write_phys() Signed-off-by: Avi Kivity commit e93efb1af9725728d260ee3700ba0318e25fd127 Author: Marcelo Tosatti Date: Fri Feb 22 12:21:36 2008 -0500 x86: KVM guest: add basic paravirt support Add basic KVM paravirt support. Avoid vm-exits on IO delays. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 3ab572bde6d4788efa5d07e24a589a3e049b5298 Author: Marcelo Tosatti Date: Fri Feb 22 12:21:36 2008 -0500 KVM: add basic paravirt support Add basic KVM paravirt support. Avoid vm-exits on IO delays. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit d7f190bada15ae6c775f4ee47d1eb3f2952f62ae Author: Avi Kivity Date: Sun Mar 16 18:48:26 2008 +0200 KVM: VMX: Restore tss even on x86_64 The vmx hardware state restore restores the tss selector and base address, but not its length. Usually, this does not matter since most of the tss contents is within the default length of 0x67. However, if a process is using ioperm() to grant itself I/O port permissions, an additional bitmap within the tss, but outside the default length is consulted. The effect is that the process will receive a SIGSEGV instead of transparently accessing the port. Fix by restoring the tss length. Note that i386 had this working already. Closes bugzilla 10246. Signed-off-by: Avi Kivity commit f363b5782ebf999bed721bc151bbfc0d392a7565 Author: Sheng Yang Date: Thu Mar 13 10:22:26 2008 +0800 KVM: Add reset support for in kernel PIT Separate the reset part and prepare for reset support. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 9251e14dc5e7542c8756e7be4ee4fb07b52e1257 Author: Avi Kivity Date: Sun Mar 16 17:00:09 2008 +0200 KVM: Fix inconsistency in setting MSR_KVM_SYSTEM_TIME - save the full value of the msr, even if the enable bit is clear - clear previous value of time_page Signed-off-by: Avi Kivity commit 78fb13c06a4b05af6b742c20feed2c0da2999e6e Author: Randy Dunlap Date: Fri Mar 14 15:20:58 2008 -0700 x86: KVM guest: kvmclock needs to include apic.h kvmclock needs to #include apic.h to prevent a build error: next-20080314/arch/x86/kernel/kvmclock.c:142: error: implicit declaration of function 'setup_secondary_APIC_clock' elan1.out:make[2]: *** [arch/x86/kernel/kvmclock.o] Error 1 Signed-off-by: Randy Dunlap Cc: Avi Kivity Cc: Ingo Molnar Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Avi Kivity commit a16664b59065b8ae877b213e68a6f962ac359ca4 Author: Sheng Yang Date: Tue Mar 4 00:50:59 2008 +0800 KVM: Add save/restore supporting of in kernel PIT Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 756d0c242c4454743ff1cacd800e3f0ac6b95db1 Author: Sheng Yang Date: Mon Jan 28 05:10:22 2008 +0800 KVM: In kernel PIT model The patch moved PIT from userspace to kernel, and increase the timer accuracy greatly. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 4c8341d3c2d757e0a2cd4e0ee85e79efecbe925c Author: Glauber Costa Date: Thu Mar 6 11:45:44 2008 -0300 x86: KVM guest: adjust clock to have an enable/disable bit Use LSB of the address passed through the msr to enable/disable the clock. Setting it to 1 enables it, setting it to 0 disables it. Signed-off-by: Glauber Costa Signed-off-by: Avi Kivity commit c49645ea2fd79676d9191392d144791d1fd1919c Author: Glauber Costa Date: Thu Mar 6 11:45:44 2008 -0300 KVM: clock: disable kvm clock unless addr's LSB is set. Use LSB of the address passed through the msr to enable/disable the clock. Setting it to 1 enables it, setting it to 0 disables it. As the guest data structures are aligned anyway, this won't be a problem, as this bit is free. Signed-off-by: Glauber Costa Signed-off-by: Avi Kivity commit 3e7a02f55b49c872175078c84cd20aa82b7020d9 Author: Glauber Costa Date: Thu Mar 6 11:45:43 2008 -0300 x86: KVM guest: use per cpu variables instead of a vector replace hv_clock vector in kvmclock with a percpu variable that is cacheline aligned. Signed-off-by: Glauber Costa Signed-off-by: Avi Kivity commit 62b41c176d2e33a8fb06a96cf7cccad069d9f280 Author: Glauber Costa Date: Wed Mar 5 15:41:32 2008 -0300 x86: KVM guest: cleanup clock leftovers clean this leftover in kvmclock.c Signed-off-by: Glauber Costa Signed-off-by: Avi Kivity commit 774920305764a9b07891c1b16ec4cf6d4e3ab749 Author: Glauber Costa Date: Wed Mar 5 15:41:29 2008 -0300 KVM: kvmclock: release time_page if msr is rewritten If the calling cpu rewrites the system clock msr for any reason, release the page we allocated in the last time. Signed-off-by: Glauber Costa Signed-off-by: Avi Kivity commit 61c9fcd198238730db891af69027e733a7588ab6 Author: David Chinner Date: Thu Mar 6 13:49:43 2008 +1100 [XFS] fix inode leak in xfs_iget_core() If the radix_tree_preload() fails, we need to destroy the inode we just read in before trying again. This could leak xfs_vnode structures when there is memory pressure. Noticed by Christoph Hellwig. SGI-PV: 977823 SGI-Modid: xfs-linux-melb:xfs-kern:30606a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy Signed-off-by: Christoph Hellwig commit 24c281e89ecf546dd69e65b74ccb90c5e3850228 Author: Christoph Hellwig Date: Thu Mar 6 13:49:36 2008 +1100 [XFS] Remove superflous xfs_readsb call in xfs_mountfs. When xfs_mountfs is called by xfs_mount xfs_readsb was called 35 lines above unconditionally, so there is no need to try to read the superblock if it's not present. If any other port doesn't have the superblock read at this point it should just call it directly from it's xfs_mount equivalent. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30603a Signed-off-by: Christoph Hellwig Signed-off-by: Donald Douwsma Signed-off-by: Lachlan McIlroy commit fd5150834e292efb5367314f7dc9f8ba01d4b19e Author: Niv Sardi Date: Thu Mar 6 13:49:26 2008 +1100 [XFS] kill t_sema member of struct xfs_trans It's completely unused so we might aswell kill it. Note that there is another t_sema in struct xlog_ticket, which is used and actually an sv_t despite the name. That one is left untouched by this patch. SGI-PV: 971186 SGI-Modid: xfs-linux-melb:xfs-kern:30591a Signed-off-by: Niv Sardi Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit ce500c06bd5d242a3b0878839669296f33bf5e29 Author: Christoph Hellwig Date: Thu Mar 6 13:46:49 2008 +1100 [XFS] cleanup vnode use in xfs_bmap.c SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30553a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit e1c03a89f15d98a90fd691dafba8d0a628734a77 Author: Christoph Hellwig Date: Thu Mar 6 13:46:43 2008 +1100 [XFS] cleanup vnode use in xfs_iops.c SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30552a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit e57c749cb9242aa508feed64f524dd6d44eab90f Author: Christoph Hellwig Date: Thu Mar 6 13:46:37 2008 +1100 [XFS] cleanup vnode use in xfs_lrw.c SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30551a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit ce535a9f2bf4539260aeef394e88804e916ac6a9 Author: Christoph Hellwig Date: Thu Mar 6 13:46:25 2008 +1100 [XFS] cleanup vnode use in xfs_lookup SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30550a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit b0481a0217985fdcfdd9e3f2254db59c4b90372c Author: Christoph Hellwig Date: Thu Mar 6 13:46:19 2008 +1100 [XFS] cleanup vnode use in xfs_symlink and xfs_rename SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30548a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 628dc8c106b0c6202ae4627c189f7c12e194a7a2 Author: Christoph Hellwig Date: Thu Mar 6 13:46:12 2008 +1100 [XFS] cleanup vnode use in xfs_link SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30547a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit f0cc891093489cf2c29e89b2677ddc6af7ab58a4 Author: Christoph Hellwig Date: Thu Mar 6 13:46:05 2008 +1100 [XFS] cleanup vnode use in xfs_create/mknod/mkdir SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30546a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 5b3334aca915e7b8bba977273ee89cdff0d6eeed Author: Christoph Hellwig Date: Thu Mar 6 13:45:58 2008 +1100 [XFS] cleanup vnode use in dmapi calls SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30545a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit f5fc8e8dd68da02295c54c99a4b4d08870e50b7a Author: David Chinner Date: Thu Mar 6 13:45:50 2008 +1100 [XFS] Fix superblock features2 field alignment problem Due to the xfs_dsb_t structure not being 64 bit aligned, the last field of the on-disk superblock can vary in location This causes problems when the filesystem gets moved to a different platform, or there is a 32 bit userspace and 64 bit kernel. This patch detects the defect at mount time, logs a warning such as: XFS: correcting sb_features alignment problem in dmesg and corrects the problem so that everything is OK. it also blacklists the bad field in the superblock so it does not get used for something else later on. SGI-PV: 977636 SGI-Modid: xfs-linux-melb:xfs-kern:30539a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Eric Sandeen Signed-off-by: Lachlan McIlroy commit ef11434e04b7553372cc99322c5aedb59f8fe5be Author: David Chinner Date: Thu Mar 6 13:45:43 2008 +1100 [XFS] Use power-of-2 sized buffers to reduce overhead Now that the ktrace_enter() code is using atomics, the non-power-of-2 buffer sizes - which require modulus operations to get the index - are showing up as using substantial CPU in the profiles. Force the buffer sizes to be rounded up to the nearest power of two and use masking rather than modulus operations to convert the index counter to the buffer index. This reduces ktrace_enter overhead to 8% of a CPU time, and again almost halves the trace intensive test runtime. SGI-PV: 977546 SGI-Modid: xfs-linux-melb:xfs-kern:30538a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 2d2f30e3ef953141d756e07c1d8cc0d7cc652557 Author: David Chinner Date: Thu Mar 6 13:45:35 2008 +1100 [XFS] Use atomic counters for ktrace buffer indexes ktrace_enter() is consuming vast amounts of CPU time due to the use of a single global lock for protecting buffer index increments. Change it to use per-buffer atomic counters - this reduces ktrace_enter() overhead during a trace intensive test on a 4p machine from 58% of all CPU time to 12% and halves test runtime. SGI-PV: 977546 SGI-Modid: xfs-linux-melb:xfs-kern:30537a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 170c815e88c41859c9d79c9454c92dd9dd455bbe Author: David Chinner Date: Thu Mar 6 13:45:29 2008 +1100 [XFS] Update c/mtime correctly on truncates XFS changes the c/mtime of an inode when truncating it to the same size. The c/mtime is only supposed to change if the size is changed. Not to be confused with ftruncate, where the c/mtime is supposed to be changed even if the size is not changed. The Linux VFS encodes this semantic difference in the flags it sends down to ->setattr, which XFS currently ignores. We need to make XFS pay attention to the VFS flags and hence Do The Right Thing. SGI-PV: 977547 SGI-Modid: xfs-linux-melb:xfs-kern:30536a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit c657925dc0057ed2ec0db845a1a4f56651adfe39 Author: Eric Sandeen Date: Thu Mar 6 13:45:22 2008 +1100 [XFS] The forward declarations for the xfs_ioctl() helpers and the associated comment about gcc behavior really aren't needed; all of these functions are marked STATIC which includes noinline, and the stack usage won't be a problem. This effectively just removes the forward declarations and moves xfs_ioctl() back to the end of the file. SGI-PV: 971186 SGI-Modid: xfs-linux-melb:xfs-kern:30534a Signed-off-by: Eric Sandeen Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit c8911a1e34a4c3d858a4a6c176175c168da91256 Author: Christoph Hellwig Date: Thu Mar 6 13:45:16 2008 +1100 [XFS] don't encode parent in nfs filehandles unless nessecary As Dave pointed out after the export ops changes we now always encode the parent into the filehandle for regular files, but it's not actually needed when the filesystem is export with no_subtree_check. This one-liner fixes xfs_fs_encode_fh to skip encoding the parent unless nessecary. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30535a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 08d618d64e9f77e89b50ae55c19e29ac9af8d6d9 Author: David Chinner Date: Thu Mar 6 13:45:10 2008 +1100 [XFS] 977545 977545 977545 977545 977545 977545 xfsaild causing too many wakeups Idle state is not being detected properly by the xfsaild push code. The current idle state is detected by an empty list which may never happen with mostly idle filesystem or one using lazy superblock counters. A single dirty item in the list that exists beyond the push target can result repeated looping attempting to push up to the target because it fails to check if the push target has been acheived or not. Fix by considering a dirty list with everything past the target as an idle state and set the timeout appropriately. SGI-PV: 977545 SGI-Modid: xfs-linux-melb:xfs-kern:30532a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 95a8d08938c941ec5b955b019cbe0205029b1088 Author: Christoph Hellwig Date: Thu Mar 6 13:44:57 2008 +1100 [XFS] kill xfs_rwlock/xfs_rwunlock We can just use xfs_ilock/xfs_iunlock instead and get rid of the ugly bhv_vrwlock_t. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30533a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit ce1824a8ee563c36474b3346e3f5898229f5a5df Author: Christoph Hellwig Date: Thu Mar 6 13:44:50 2008 +1100 [XFS] kill xfs_get_dir_entry Instead of of xfs_get_dir_entry use a macro to get the xfs_inode from the dentry in the callers and grab the reference manually. Only grab the reference once as it's fine to keep it over the dmapi calls. (And even that reference is actually superflous in Linux but I'll leave that for another patch) SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30531a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 265eef775f891d5a4114fc888e4e99a6f9957819 Author: Christoph Hellwig Date: Thu Mar 6 13:44:41 2008 +1100 [XFS] vnode cleanup in xfs_fs_subr.c Cleanup the unneeded intermediate vnode step in the flushing helpers and go directly from the xfs_inode to the struct address_space. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30530a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 2eecc359daed82612ff72b0dbe51407fa2018d9b Author: Christoph Hellwig Date: Thu Mar 6 13:44:35 2008 +1100 [XFS] cleanup xfs_vn_mknod - use proper goto based unwinding instead of the current mess of multiple conditionals - rename ip to inode because that's the normal convention for Linux inodes while ip is the convention for xfs_inodes - remove unlikely checks for the default_acl - branches marked unlikely might lead to extreme branch bredictor slowdons if taken and for some workloads a default acl is quite common - properly indent the switch statements - remove xfs_has_fs_struct as nfsd has a fs_struct in any semi-recent kernel SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30529a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 50ed1cf6950b5787d7cad811055b7fe2bf47de01 Author: Eric Sandeen Date: Thu Mar 6 13:44:28 2008 +1100 [XFS] remove shouting-indirection macros from xfs_sb.h Remove macro-to-small-function indirection from xfs_sb.h, and remove some which are completely unused. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30528a Signed-off-by: Eric Sandeen Signed-off-by: Donald Douwsma Signed-off-by: Lachlan McIlroy commit 04f7551c9dc0e8c7cf98f3b31e3121fa427d96ff Author: David Chinner Date: Thu Mar 6 13:44:14 2008 +1100 [XFS] Use atomics for iclog reference counting Now that we update the log tail LSN less frequently on transaction completion, we pass the contention straight to the global log state lock (l_iclog_lock) during transaction completion. We currently have to take this lock to decrement the iclog reference count. there is a reference count on each iclog, so we need to take þhe global lock for all refcount changes. When large numbers of processes are all doing small trnasctions, the iclog reference counts will be quite high, and the state change that absolutely requires the l_iclog_lock is the except rather than the norm. Change the reference counting on the iclogs to use atomic_inc/dec so that we can use atomic_dec_and_lock during transaction completion and avoid the need for grabbing the l_iclog_lock for every reference count decrement except the one that matters - the last. SGI-PV: 975671 SGI-Modid: xfs-linux-melb:xfs-kern:30505a Signed-off-by: David Chinner Signed-off-by: Tim Shimmin Signed-off-by: Lachlan McIlroy commit f81d5fa628d0891b128fe9ddb6593e25b3f78ff3 Author: David Chinner Date: Thu Mar 6 13:44:06 2008 +1100 [XFS] Prevent AIL lock contention during transaction completion When hundreds of processors attempt to commit transactions at the same time, they can contend on the AIL lock when updating the tail LSN held in the in-core log structure. At the moment, the tail LSN is only needed when actually writing out an iclog, so it really does not need to be updated on every single transaction completion - only those that result in switching iclogs and flushing them to disk. The result is that we reduce the number of times we need to grab the AIL lock and the log grant lock by up to two orders of magnitude on large processor count machines. The problem has previously been hidden by AIL lock contention walking the AIL list which was recently solved and uncovered this issue. SGI-PV: 975671 SGI-Modid: xfs-linux-melb:xfs-kern:30504a Signed-off-by: David Chinner Signed-off-by: Tim Shimmin Signed-off-by: Lachlan McIlroy commit 73fd8efbc7f407291a5136ba2c945b48b816244c Author: David Chinner Date: Thu Mar 6 13:43:59 2008 +1100 [XFS] Use xfs_inode_clean() in more places Remove open coded checks for the whether the inode is clean and replace them with an inlined function. SGI-PV: 977461 SGI-Modid: xfs-linux-melb:xfs-kern:30503a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 0b63ab688acec9b55b59efbc67987f245074c2a6 Author: David Chinner Date: Thu Mar 6 13:43:49 2008 +1100 [XFS] Remove the xfs_icluster structure Remove the xfs_icluster structure and replace with a radix tree lookup. We don't need to keep a list of inodes in each cluster around anymore as we can look them up quickly when we need to. The only time we need to do this now is during inode writeback. Factor the inode cluster writeback code out of xfs_iflush and convert it to use radix_tree_gang_lookup() instead of walking a list of inodes built when we first read in the inodes. This remove 3 pointers from each xfs_inode structure and the xfs_icluster structure per inode cluster. Hence we reduce the cache footprint of the xfs_inodes by between 5-10% depending on cluster sparseness. To be truly efficient we need a radix_tree_gang_lookup_range() call to stop searching once we are past the end of the cluster instead of trying to find a full cluster's worth of inodes. Before (ia64): $ cat /sys/slab/xfs_inode/object_size 536 After: $ cat /sys/slab/xfs_inode/object_size 512 SGI-PV: 977460 SGI-Modid: xfs-linux-melb:xfs-kern:30502a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 1d53d23f1fd43baee04418a20dc4fa13e620a582 Author: David Chinner Date: Thu Mar 6 13:43:42 2008 +1100 [XFS] Don't block pdflush when writing back inodes When pdflush is writing back inodes, it can get stuck on inode cluster buffers that are currently under I/O. This occurs when we write data to multiple inodes in the same inode cluster at the same time. Effectively, delayed allocation marks the inode dirty during the data writeback. Hence if the inode cluster was flushed during the writeback of the first inode, the writeback of the second inode will block waiting for the inode cluster write to complete before writing it again for the newly dirtied inode. Basically, we want to avoid this from happening so we don't block pdflush and slow down all of writeback. Hence we introduce a non-blocking async inode flush flag that pdflush uses. If this flag is set, we use non-blocking operations (e.g. try locks) whereever we can to avoid blocking or extra I/O being issued. SGI-PV: 970925 SGI-Modid: xfs-linux-melb:xfs-kern:30501a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit c228466268bc28bac1bb59306c0c3b5515e308f9 Author: David Chinner Date: Thu Mar 6 13:43:34 2008 +1100 [XFS] Factor xfs_itobp() and xfs_inotobp(). The only difference between the functions is one passes an inode for the lookup, the other passes an inode number. However, they don't do the same validity checking or set all the same state on the buffer that is returned yet they should. Factor the functions into a common implementation. SGI-PV: 970925 SGI-Modid: xfs-linux-melb:xfs-kern:30500a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit ccc6812e4da9c0a9d45f9c21a45dc9a24a598845 Author: Lachlan McIlroy Date: Thu Mar 6 13:43:27 2008 +1100 [XFS] Fix regression due to refcache removal SGI-PV: 971186 SGI-Modid: xfs-linux-melb:xfs-kern:30490a Signed-off-by: Lachlan McIlroy Signed-off-by: Donald Douwsma commit 53c1cb8d6852aa34a09b14241944a7806ab8f341 Author: Donald Douwsma Date: Thu Mar 6 13:43:20 2008 +1100 [XFS] Remove the xfs_refcache, it was only needed while we were still building for 2.4 kernels. SGI-PV: 971186 SGI-Modid: xfs-linux-melb:xfs-kern:30472a Signed-off-by: Donald Douwsma Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit a818f7ddf92088d9edf5fdc1f846c7c0147c6337 Author: Lachlan McIlroy Date: Thu Mar 6 13:43:11 2008 +1100 [XFS] make inode reclaim synchronise with xfs_iflush_done() On a forced shutdown, xfs_finish_reclaim() will skip flushing the inode. If the inode flush lock is not already held and there is an outstanding xfs_iflush_done() then we might free the inode prematurely. By acquiring and releasing the flush lock we will synchronise with xfs_iflush_done(). SGI-PV: 909874 SGI-Modid: xfs-linux-melb:xfs-kern:30468a Signed-off-by: Lachlan McIlroy Signed-off-by: David Chinner commit e999831223874108192b9b72fff329af3934c821 Author: Niv Sardi Date: Thu Mar 6 13:43:03 2008 +1100 [XFS] actually check error returned by xfs_flush_pages, clean up and bailout if fails. SGI-PV: 973041 SGI-Modid: xfs-linux-melb:xfs-kern:30462a Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 8b8c9f4a52550a50401fa76f63d8577af143aae2 Author: Avi Kivity Date: Wed Mar 5 09:33:44 2008 +0200 KVM: Remove pointless desc_ptr #ifdef The desc_struct changes left an unnecessary #ifdef; remove it. Signed-off-by: Avi Kivity commit 75b85122cce48e9a762ab8cd04cfc37080cae601 Author: Avi Kivity Date: Wed Mar 5 09:19:21 2008 +0200 KVM: Merge generic x86 name usage from upstream Signed-off-by: Avi Kivity commit 5e23049e86dd298b72e206b420513dbc3a240cd9 Author: Avi Kivity Date: Tue Mar 4 13:26:55 2008 +0200 Revert "KVM: is_long_mode() should check for EFER.LMA" This reverts commit 3a001629eea909b2aa97f001a9db4700f15d986b. It kills Windows Vista SMP install. Signed-off-by: Avi Kivity commit d451a2c03f78c306049da9fecd95316f368641cf Author: Avi Kivity Date: Tue Mar 4 10:44:51 2008 +0200 KVM: VMX: Don't adjust tsc offset forward Most Intel hosts have a stable tsc, and playing with the offset only reduces accuracy. By limiting tsc offset adjustment only to forward updates, we effectively disable tsc offset adjustment on these hosts. Signed-off-by: Avi Kivity commit f2c0457351b0ffbe9d97a095474eab2bac2b496b Author: Harvey Harrison Date: Mon Mar 3 12:59:56 2008 -0800 KVM: replace remaining __FUNCTION__ occurances __FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison Signed-off-by: Avi Kivity commit 3a001629eea909b2aa97f001a9db4700f15d986b Author: Amit Shah Date: Thu Feb 28 16:06:15 2008 +0530 KVM: is_long_mode() should check for EFER.LMA is_long_mode currently checks the LongModeEnable bit in EFER instead of the LongModeActive bit. This is wrong, but we survived this till now since it wasn't triggered. This breaks guests that go from long mode to compatibility mode. This is noticed on a solaris guest and fixes bug #1842160 Signed-off-by: Amit Shah Signed-off-by: Avi Kivity commit 4a7f582a07e14763ee4714b681e98b3b134d1d46 Author: Avi Kivity Date: Wed Feb 27 16:06:57 2008 +0200 KVM: VMX: Avoid rearranging switched guest msrs while they are loaded KVM tries to run as much as possible with the guest msrs loaded instead of host msrs, since switching msrs is very expensive. It also tries to minimize the number of msrs switched according to the guest mode; for example, MSR_LSTAR is needed only by long mode guests. This optimization is done by setup_msrs(). However, we must not change which msrs are switched while we are running with guest msr state: - switch to guest msr state - call setup_msrs(), removing some msrs from the list - switch to host msr state, leaving a few guest msrs loaded An easy way to trigger this is to kexec an x86_64 linux guest. Early during setup, the guest will switch EFER to not include SCE. KVM will stop saving MSR_LSTAR, and on the next msr switch it will leave the guest LSTAR loaded. The next host syscall will end up in a random location in the kernel. Fix by reloading the host msrs before changing the msr list. Signed-off-by: Avi Kivity commit fe5d62ebfc077da1e9a9748bcc2dd696c1026584 Author: Avi Kivity Date: Wed Feb 27 07:55:38 2008 +0200 KVM: MMU: Fix fallout from last patch Some x86_64-only calls to kvm_mmu_get_page() escaped being changed. Signed-off-by: Avi Kivity commit d8d1cb05c5fa5ca2cd99acae0884e263e6f3a9be Author: Avi Kivity Date: Tue Feb 26 22:12:10 2008 +0200 KVM: MMU: Fix race when instantiating a shadow pte For improved concurrency, the guest walk is performed concurrently with other vcpus. This means that we need to revalidate the guest ptes once we have write-protected the guest page tables, at which point they can no longer be modified. The current code attempts to avoid this check if the shadow page table is not new, on the assumption that if it has existed before, the guest could not have modified the pte without the shadow lock. However the assumption is incorrect, as the racing vcpu could have modified the pte, then instantiated the shadow page, before our vcpu regains control: vcpu0 vcpu1 fault walk pte modify pte fault in same pagetable instantiate shadow page lookup shadow page conclude it is old instantiate spte based on stale guest pte We could do something clever with generation counters, but a test run by Marcelo suggests this is unnecessary and we can just do the revalidation unconditionally. The pte will be in the processor cache and the check can be quite fast. Signed-off-by: Avi Kivity commit 434de00974230e41cbf1882f2d325452300d241e Author: Joerg Roedel Date: Tue Feb 26 16:49:16 2008 +0100 KVM: detect if VCPU triple faults In the current inject_page_fault path KVM only checks if there is another PF pending and injects a DF then. But it has to check for a pending DF too to detect a shutdown condition in the VCPU. If this is not detected the VCPU goes to a PF -> DF -> PF loop when it should triple fault. This patch detects this condition and handles it with an KVM_SHUTDOWN exit to userspace. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit fbba6a550c73fbc7578ecefd3ebd39db91f54c3a Author: Marcelo Tosatti Date: Mon Feb 25 10:36:05 2008 -0300 KVM: release bad page on MSR_KVM_SYSTEM_TIME Subject says it all. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 7bcbbed481df1e6fb3bffd6e90f640a1a2e13e75 Author: Xiantao Zhang Date: Mon Feb 25 18:52:20 2008 +0800 KVM: Use kzalloc to avoid allocating kvm_regs from kernel stack Since the size of kvm_regs is too big to allocate from kernel stack on ia64, use kzalloc to allocate it. Signed-off-by: Xiantao Zhang Signed-off-by: Avi Kivity commit d602a5d8d74980a3c0b097c35c04036a04286018 Author: Avi Kivity Date: Mon Feb 25 10:28:31 2008 +0200 KVM: Route irq 0 to vcpu 0 exclusively Some Linux versions allow the timer interrupt to be processed by more than one cpu, leading to hangs due to tsc instability. Work around the issue by only disaptching the interrupt to vcpu 0. Problem analyzed (and patch tested) by Sheng Yang. Signed-off-by: Avi Kivity commit 81e4400b4df4e597a81c19c1161aa03c73613710 Author: Avi Kivity Date: Sun Feb 24 14:37:50 2008 +0200 KVM: Avoid infinite-frequency local apic timer If the local apic initial count is zero, don't start a an hrtimer with infinite frequency, locking up the host. Signed-off-by: Avi Kivity commit 86774a47f71bd84f124dd8d6062a2d6c91e1bc65 Author: Avi Kivity Date: Sun Feb 24 11:20:43 2008 +0200 KVM: Prefix control register accessors with kvm_ to avoid namespace pollution Names like 'set_cr3()' look dangerously close to affecting the host. Signed-off-by: Avi Kivity commit c5ed4516ef4ebf10de8bcb006676b67daea1b683 Author: Marcelo Tosatti Date: Sat Feb 23 11:44:30 2008 -0300 KVM: MMU: large page support Create large pages mappings if the guest PTE's are marked as such and the underlying memory is hugetlbfs backed. If the largepage contains write-protected pages, a large pte is not used. Gives a consistent 2% improvement for data copies on ram mounted filesystem, without NPT/EPT. Anthony measures a 4% improvement on 4-way kernbench, with NPT. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit a92ecfcb8c31e173982c0119ff792dc707633479 Author: Glauber Costa Date: Thu Feb 21 18:04:14 2008 -0300 KVM: call write_guest_time as soon as we register the paravirt clock In situations, like, cpu hotplugging, a cpu can arrive later on the game and register its paravirt clock while everything else is already running, which will lead to breakage, since the time readings will return bogus values. To prevent this, we write system time as soon as the guest registers its clock. Signed-off-by: Glauber Costa Signed-off-by: Avi Kivity commit d6dfa24b3ac47784a214a8facc153b389b8c8bc1 Author: Marcelo Tosatti Date: Wed Feb 20 14:47:24 2008 -0500 KVM: MMU: ignore zapped root pagetables Mark zapped root pagetables as invalid and ignore such pages during lookup. This is a problem with the cr3-target feature, where a zapped root table fools the faulting code into creating a read-only mapping. The result is a lockup if the instruction can't be emulated. Signed-off-by: Marcelo Tosatti Cc: Anthony Liguori Signed-off-by: Avi Kivity commit 131c7cbe6154ce34f5db796ce3d1494f6c648300 Author: Alexander Graf Date: Thu Feb 21 12:11:01 2008 +0100 KVM: Implement dummy values for MSR_PERF_STATUS Darwin relies on this and ceases to work without. Signed-off-by: Alexander Graf Signed-off-by: Avi Kivity commit 5e99f27fa140b7b1b586eb95be6d9abc44c98d33 Author: Harvey Harrison Date: Tue Feb 19 10:25:50 2008 -0800 KVM: sparse fixes for kvm/x86.c In two case statements, use the ever popular 'i' instead of index: arch/x86/kvm/x86.c:1063:7: warning: symbol 'index' shadows an earlier one arch/x86/kvm/x86.c:1000:9: originally declared here arch/x86/kvm/x86.c:1079:7: warning: symbol 'index' shadows an earlier one arch/x86/kvm/x86.c:1000:9: originally declared here Make it static. arch/x86/kvm/x86.c:1945:24: warning: symbol 'emulate_ops' was not declared. Should it be static? Drop the return statements. arch/x86/kvm/x86.c:2878:2: warning: returning void-valued expression arch/x86/kvm/x86.c:2944:2: warning: returning void-valued expression Signed-off-by: Harvey Harrison Signed-off-by: Avi Kivity commit 89a5a065c12d910a5b9de0f515e96e05a12e03eb Author: Harvey Harrison Date: Tue Feb 19 10:32:02 2008 -0800 KVM: SVM: make iopm_base static Fixes sparse warning as well. arch/x86/kvm/svm.c:69:15: warning: symbol 'iopm_base' was not declared. Should it be static? Signed-off-by: Harvey Harrison Signed-off-by: Avi Kivity commit 96b54a441cf09ea03b673f0f1fdc56781006fc9c Author: Harvey Harrison Date: Tue Feb 19 10:43:11 2008 -0800 KVM: x86 emulator: fix sparse warnings in x86_emulate.c Nesting __emulate_2op_nobyte inside__emulate_2op produces many shadowed variable warnings on the internal variable _tmp used by both macros. Change the outer macro to use __tmp. Avoids a sparse warning like the following at every call site of __emulate_2op arch/x86/kvm/x86_emulate.c:1091:3: warning: symbol '_tmp' shadows an earlier one arch/x86/kvm/x86_emulate.c:1091:3: originally declared here [18 more warnings suppressed] Signed-off-by: Harvey Harrison Signed-off-by: Avi Kivity commit a7feb918e1a5ba13dbfb8584a10cdf5d1174a0f7 Author: Amit Shah Date: Thu Feb 21 01:00:30 2008 +0530 KVM: Add stat counter for hypercalls Signed-off-by: Amit Shah Signed-off-by: Avi Kivity commit 03c96d38f62c5baa05bb0f890410f88bf96806af Author: Avi Kivity Date: Wed Feb 20 17:57:21 2008 +0200 KVM: Use x86's segment descriptor struct instead of private definition The x86 desc_struct unification allows us to remove segment_descriptor.h. Signed-off-by: Avi Kivity commit d6f633e2fc1931de330962c2c0f1bcf8036c5f8a Author: Avi Kivity Date: Wed Feb 20 14:55:05 2008 +0200 KVM: VMX: Handle machines without EFER Signed-off-by: Avi Kivity commit 24994a75d87235a12087d0669f95145b3a77785d Author: Avi Kivity Date: Wed Feb 20 12:04:47 2008 +0200 KVM: Increase the number of user memory slots per vm Signed-off-by: Avi Kivity commit 5d625525ce1281b7f08af94cd5f977fee3be2a13 Author: Avi Kivity Date: Wed Feb 20 11:59:20 2008 +0200 KVM: Add API for determining the number of supported memory slots Signed-off-by: Avi Kivity commit 318438f6662e92b83d9509eb47b74ffb7ffcfb59 Author: Avi Kivity Date: Wed Feb 20 11:56:51 2008 +0200 KVM: Increase vcpu count to 16 With NPT support, scalability is much improved. Signed-off-by: Avi Kivity commit 44fd69bae2e588f2cf9df73ab2ccbd1db4446e50 Author: Avi Kivity Date: Wed Feb 20 11:53:16 2008 +0200 KVM: Add API to retrieve the number of supported vcpus per vm Signed-off-by: Avi Kivity commit 47e13e4e4bcc4f0e5da2931af79239ddbd72aacc Author: Harvey Harrison Date: Tue Feb 19 07:40:41 2008 -0800 KVM: x86 emulator: make register_address_increment and JMP_REL static inlines Change jmp_rel() to a function as well. Signed-off-by: Harvey Harrison Signed-off-by: Avi Kivity commit 83b3caa5a9142d132eeaa59d6580ea31a90d54e1 Author: Harvey Harrison Date: Tue Feb 19 07:40:38 2008 -0800 KVM: x86 emulator: make register_address, address_mask static inlines Signed-off-by: Harvey Harrison Signed-off-by: Avi Kivity commit 3c1002ca9b60140fcace61c21af8d417061dd8d3 Author: Harvey Harrison Date: Mon Feb 18 11:12:48 2008 -0800 KVM: x86 emulator: add ad_mask static inline Replaces open-coded mask calculation in macros. Signed-off-by: Harvey Harrison Signed-off-by: Avi Kivity commit 6c87c4157ed6fe54f4b25463668f696e73f3695a Author: Avi Kivity Date: Mon Feb 18 18:25:14 2008 +0200 KVM: Add missing semicolon Signed-off-by: Avi Kivity commit 497e3206d70707731acf89ae57a30916433f7abd Author: Glauber de Oliveira Costa Date: Fri Feb 15 17:52:48 2008 -0200 KVM: paravirtualized clocksource: guest part This is the guest part of kvm clock implementation It does not do tsc-only timing, as tsc can have deltas between cpus, and it did not seem worthy to me to keep adjusting them. We do use it, however, for fine-grained adjustment. Other than that, time comes from the host. Signed-off-by: Glauber de Oliveira Costa Signed-off-by: Avi Kivity commit 58ec320754007ae73dd2a2a050cc98aed9492b68 Author: Glauber de Oliveira Costa Date: Fri Feb 15 17:52:47 2008 -0200 KVM: paravirtualized clocksource: host part This is the host part of kvm clocksource implementation. As it does not include clockevents, it is a fairly simple implementation. We only have to register a per-vcpu area, and start writing to it periodically. The area is binary compatible with xen, as we use the same shadow_info structure. Signed-off-by: Glauber de Oliveira Costa Signed-off-by: Avi Kivity commit 08bb7f949a94cd53d4fb1db4eb84d30a0710fb72 Author: Marcelo Tosatti Date: Thu Feb 14 21:25:39 2008 -0200 KVM: make MMU_DEBUG compile again the cr3 variable is now inside the vcpu->arch structure. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit a39c8d8589081a80367b42041e9e42daccc9a17b Author: Marcelo Tosatti Date: Thu Feb 14 21:21:43 2008 -0200 KVM: move alloc_apic_access_page() outside of non-preemptable region alloc_apic_access_page() can sleep, while vmx_vcpu_setup is called inside a non preemptable region. Move it after put_cpu(). Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 7ab1174b8c8bd0b1f6ef7cdd692261cef4b6173f Author: Joerg Roedel Date: Wed Feb 13 18:58:47 2008 +0100 KVM: SVM: enable LBR virtualization This patch implements the Last Branch Record Virtualization (LBRV) feature of the AMD Barcelona and Phenom processors into the kvm-amd module. It will only be enabled if the guest enables last branch recording in the DEBUG_CTL MSR. So there is no increased world switch overhead when the guest doesn't use these MSRs. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit fe3b460580c595d21045dc935ebc0ba11fe52c9b Author: Joerg Roedel Date: Wed Feb 13 18:58:46 2008 +0100 KVM: SVM: allocate the MSR permission map per VCPU This patch changes the kvm-amd module to allocate the SVM MSR permission map per VCPU instead of a global map for all VCPUs. With this we have more flexibility allowing specific guests to access virtualized MSRs. This is required for LBR virtualization. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit 2fe78025ef70748afc52106b764062e236984220 Author: Joerg Roedel Date: Wed Feb 13 18:58:45 2008 +0100 KVM: SVM: let init_vmcb() take struct vcpu_svm as parameter Change the parameter of the init_vmcb() function in the kvm-amd module from struct vmcb to struct vcpu_svm. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit c2d0c60a00245874d3d615129f35284ba6b7adbe Author: Joerg Roedel Date: Wed Feb 13 16:30:28 2008 +0100 KVM: SVM: fix Windows XP 64 bit installation crash While installing Windows XP 64 bit wants to access the DEBUGCTL and the last branch record (LBR) MSRs. Don't allowing this in KVM causes the installation to crash. This patch allow the access to these MSRs and fixes the issue. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit 1caff9ba52970a3492bfe8a1b9e26291d34259c5 Author: Ananth N Mavinakayanahalli Date: Mon Feb 11 16:21:45 2008 +0530 Move backtrace tests to tests/ Move backtrace selftests to tests/ Signed-off-by: Ananth N Mavinakayanahalli Signed-off-by: Sam Ravnborg commit f8773002e2c0e5bd232d5f56abeca9fe1d906984 Author: Ananth N Mavinakayanahalli Date: Mon Feb 11 16:21:02 2008 +0530 Move kprobes smoke tests to tests/ Move kprobe smoke tests to tests/ Signed-off-by: Ananth N Mavinakayanahalli Signed-off-by: Sam Ravnborg commit 7eb75ba359d2f9f611778d3bcf4ca13a62dfb635 Author: Ananth N Mavinakayanahalli Date: Mon Feb 11 16:20:04 2008 +0530 Move lkdtm to tests/ Move the lkdtm infrastructure to tests/ Signed-off-by: Ananth N Mavinakayanahalli Acked-by: Ankita Garg Signed-off-by: Sam Ravnborg commit 75afa5bedd116184d7b5b6bca8d23e8cd58b3380 Author: Ananth N Mavinakayanahalli Date: Mon Feb 11 16:19:13 2008 +0530 Move rtmutex-tests to tests/ Move the rtmutex-tester infrastructure to tests/ Signed-off-by: Ananth N Mavinakayanahalli Signed-off-by: Sam Ravnborg commit db00d6090740863199393461c8332812986ce4ad Author: Ananth N Mavinakayanahalli Date: Mon Feb 11 16:18:32 2008 +0530 Move rcutorture to tests/ Move the rcutorture infrastructure to tests/ Signed-off-by: Ananth N Mavinakayanahalli Acked-by: Josh Triplett Acked-by: Paul E. McKenney Signed-off-by: Sam Ravnborg commit 32c308c1e302b870c2d2da349b9f00303091d5f4 Author: Ananth N Mavinakayanahalli Date: Mon Feb 11 16:16:42 2008 +0530 Move locking selftests to tests/ Move the locking-selftest infrastructure to tests/ Signed-off-by: Ananth N Mavinakayanahalli Signed-off-by: Sam Ravnborg commit d9a8a7e45430a895d255fa81b6c242172930c76e Author: Ananth N Mavinakayanahalli Date: Mon Feb 11 16:15:46 2008 +0530 Create tests/ directory Create a toplevel tests/ directory to house in-kernel subsystem specific tests. Thanks to Sam Ravnborg for the Makefile corrections. Signed-off-by: Ananth N Mavinakayanahalli Signed-off-by: Sam Ravnborg commit 9ef1f35a7665b2190ae42542d2d8b6624ec227df Author: Izik Eidus Date: Sun Feb 10 18:04:15 2008 +0200 KVM: remove the usage of the mmap_sem for the protection of the memory slots. This patch replaces the mmap_sem lock for the memory slots with a new kvm private lock, it is needed beacuse untill now there were cases where kvm accesses user memory while holding the mmap semaphore. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit e7861364d06434a0ce1a363cc6c1da2023be4375 Author: Ryan Harper Date: Mon Feb 11 10:26:38 2008 -0600 KVM: VMX: fix typo in VMX header define Looking at Intel Volume 3b, page 148, table 20-11 and noticed that the field name is 'Deliver' not 'Deliever'. Attached patch changes the define name and its user in vmx.c Signed-off-by: Ryan Harper Signed-off-by: Avi Kivity commit 7bf579b95ef1c7b6490ae5be183f0035665ce6f4 Author: Joerg Roedel Date: Mon Feb 11 20:28:27 2008 +0100 KVM: emulate access to MSR_IA32_MCG_CTL Injecting an GP when accessing this MSR lets Windows crash when running some stress test tools in KVM. So this patch emulates access to this MSR. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit d3581426e289fb84c661c92c72bb84a907c175d6 Author: Avi Kivity Date: Mon Feb 11 18:37:23 2008 +0200 KVM: Make the supported cpuid list a host property rather than a vm property One of the use cases for the supported cpuid list is to create a "greatest common denominator" of cpu capabilities in a server farm. As such, it is useful to be able to get the list without creating a virtual machine first. Since the code does not depend on the vm in any way, all that is needed is to move it to the device ioctl handler. The capability identifier is also changed so that binaries made against -rc1 will fail gracefully. Signed-off-by: Avi Kivity commit 660229476e0b735048c99139f8ee53fdd1da25a9 Author: Paul Knowles Date: Wed Feb 6 11:02:35 2008 +0000 KVM: Fix kvm_arch_vcpu_ioctl_set_sregs so that set_cr0 works properly Whilst working on getting a VM to initialize in to IA32e mode I found this issue. set_cr0 relies on comparing the old cr0 to the new one to work correctly. Move the assignment below so the compare can work. Signed-off-by: Paul Knowles Signed-off-by: Avi Kivity commit 63f53075ea87ff02541dc67bb7cccbfd5f68d6e9 Author: Avi Kivity Date: Sun Feb 10 19:46:29 2008 +0200 KVM: x86 emulator: fix group 5 decoding Commit 9686f6d5bed04b489947cecc2554a49f0769d365 failed to add the ModRM marker to a few group 5 instructions, causing Windows install failures. Signed-off-by: Avi Kivity commit 4b4c4e5de3e6ae4209d15abbd559847a785e035a Author: Avi Kivity Date: Sun Feb 10 19:44:10 2008 +0200 KVM: x86 emulator: Fix 'jmp abs' The group decoding changes (9686f6d5bed04b489947cecc2554a49f0769d365) changed the jump target to be a source operand instead of a target operand. Adjust the code accordingly. Signed-off-by: Avi Kivity commit 6ae2f81215514a62ae12e5ea4520e1041a54c597 Author: Joerg Roedel Date: Thu Feb 7 13:47:45 2008 +0100 KVM: SVM: add support for Nested Paging This patch contains the SVM architecture dependent changes for KVM to enable support for the Nested Paging feature of AMD Barcelona and Phenom processors. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 84fed657c49862eb39b8cb9f66b0a70feaf7ec6e Author: Joerg Roedel Date: Thu Feb 7 13:47:44 2008 +0100 KVM: MMU: add TDP support to the KVM MMU This patch contains the changes to the KVM MMU necessary for support of the Nested Paging feature in AMD Barcelona and Phenom Processors. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit e3cf42a83679c80800166ad01b30ff9595c61cd4 Author: Joerg Roedel Date: Thu Feb 7 13:47:43 2008 +0100 KVM: export the load_pdptrs() function to modules The load_pdptrs() function is required in the SVM module for NPT support. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 926d75dd44c47fad657d7db7a0ae898db30b0627 Author: Joerg Roedel Date: Thu Feb 7 13:47:42 2008 +0100 KVM: MMU: make the __nonpaging_map function generic The mapping function for the nonpaging case in the softmmu does basically the same as required for Nested Paging. Make this function generic so it can be used for both. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 150f377485bc2cbc06b53b586f21f61f9dc055ad Author: Joerg Roedel Date: Thu Feb 7 13:47:41 2008 +0100 KVM: export information about NPT to generic x86 code The generic x86 code has to know if the specific implementation uses Nested Paging. In the generic code Nested Paging is called Two Dimensional Paging (TDP) to avoid confusion with (future) TDP implementations of other vendors. This patch exports the availability of TDP to the generic x86 code. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 927f4f904044c202b88a284db87833585cb9ab10 Author: Joerg Roedel Date: Thu Feb 7 13:47:40 2008 +0100 KVM: SVM: add module parameter to disable Nested Paging To disable the use of the Nested Paging feature even if it is available in hardware this patch adds a module parameter. Nested Paging can be disabled by passing npt=0 to the kvm_amd module. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 23b602a35f91c7720555aed3a46e9646d8ce6aed Author: Joerg Roedel Date: Thu Feb 7 13:47:39 2008 +0100 KVM: SVM: add detection of Nested Paging feature Let SVM detect if the Nested Paging feature is available on the hardware. Disable it to keep this patch series bisectable. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit e9b3b167d8554283fac3c099546342180609113b Author: Joerg Roedel Date: Thu Feb 7 13:47:38 2008 +0100 KVM: SVM: move feature detection to hardware setup code By moving the SVM feature detection from the each_cpu code to the hardware setup code it runs only once. As an additional advance the feature check is now available earlier in the module setup process. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 8de389b7c62ec345dc6e88b6d6d5610cda3bbdf6 Author: Balbir Singh Date: Sun Feb 10 12:46:28 2008 +0530 KVM: fix Kconfig on i386 The KVM configuration is no longer visible in the latest git tree. It looks like it is selected by HAVE_SETUP_PER_CPU_AREA. I've moved HAVE_KVM to under CONFIG_X86. Hopefully, this is the right fix. Signed-off-by: Balbir Singh Signed-off-by: Avi Kivity commit b475283d7688169261a91d95bd636a6ab584f2b8 Author: Joerg Roedel Date: Thu Jan 31 14:57:40 2008 +0100 KVM: allow access to EFER in 32bit KVM This patch makes the EFER register accessible on a 32bit KVM host. This is necessary to boot 32 bit PAE guests under SVM. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 778ff2130dd6ab9ee9e3706b5826f2c8d41615df Author: Joerg Roedel Date: Thu Jan 31 14:57:39 2008 +0100 KVM: VMX: unifdef the EFER specific code To allow access to the EFER register in 32bit KVM the EFER specific code has to be exported to the x86 generic code. This patch does this in a backwards compatible manner. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 0b8ab0022998c6607da96ef907ecb3dad614b178 Author: Joerg Roedel Date: Thu Jan 31 14:57:38 2008 +0100 KVM: align valid EFER bits with the features of the host system This patch aligns the bits the guest can set in the EFER register with the features in the host processor. Currently it lets EFER.NX disabled if the processor does not support it and enables EFER.LME and EFER.LMA only for KVM on 64 bit hosts. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit cdab4954a00da8c427dc03eb7f5e630eecd22c68 Author: Joerg Roedel Date: Thu Jan 31 14:57:37 2008 +0100 KVM: make EFER_RESERVED_BITS configurable for architecture code This patch give the SVM and VMX implementations the ability to add some bits the guest can set in its EFER register. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 6ac0eb9e4614ddaf459d054434a4752167d904d5 Author: Andrea Arcangeli Date: Wed Jan 30 19:57:35 2008 +0100 KVM: Disable pagefaults during copy_from_user_inatomic() With CONFIG_PREEMPT=n, this is needed in order to disable the fault-in code from sleeping. Signed-off-by: Andrea Arcangeli Signed-off-by: Avi Kivity commit 1d59f5a241eee56ca761a3e8f87b8603c49a3dc8 Author: Joerg Roedel Date: Tue Jan 29 13:01:27 2008 +0100 KVM: SVM: set NM intercept when enabling CR0.TS in the guest Explicitly enable the NM intercept in svm_set_cr0 if we enable TS in the guest copy of CR0 for lazy FPU switching. This fixes guest SMP with Linux under SVM. Without that patch Linux deadlocks or panics right after trying to boot the other CPUs. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit 4db952288bb60c94940bb6484952616fa840b009 Author: Hollis Blanchard Date: Mon Jan 28 17:42:34 2008 -0600 KVM: Use CONFIG_PREEMPT_NOTIFIERS around struct preempt_notifier This allows kvm_host.h to be #included even when struct preempt_notifier is undefined. This is needed to build ppc asm-offsets.h. Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit b2110b6affc2571b0974292567196f3eba8a304f Author: Sheng Yang Date: Tue Jan 29 08:17:57 2008 +0800 KVM: VMX: Fix invalid opcode of VPID Add the missing "memory" in VPID clobber list, otherwise it would cause invalid opcode on host. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit b90a99cf8e03e96a4e3347d9e9ee3750e53d07fd Author: Sheng Yang Date: Thu Jan 17 15:14:33 2008 +0800 KVM: VMX: Enable Virtual Processor Identification (VPID) To allow TLB entries to be retained across VM entry and VM exit, the VMM can now identify distinct address spaces through a new virtual-processor ID (VPID) field of the VMCS. [avi: drop vpid_sync_all()] [avi: add "cc" to asm constraints] Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 933400f42599aeec7765e128cf383e7f0e86b457 Author: Avi Kivity Date: Thu Jan 24 15:13:08 2008 +0200 KVM: Limit vcpu mmap size to one page on non-x86 The second page is only needed on archs that support pio. Noted by Carsten Otte. Signed-off-by: Avi Kivity commit ad3fefd6f9da9e12834b693d24ad95963b243dc9 Author: Avi Kivity Date: Thu Jan 24 11:44:11 2008 +0200 KVM: MMU: Decouple mmio from shadow page tables Currently an mmio guest pte is encoded in the shadow pagetable as a not-present trapping pte, with the SHADOW_IO_MARK bit set. However nothing is ever done with this information, so maintaining it is a useless complication. This patch moves the check for mmio to before shadow ptes are instantiated, so the shadow code is never invoked for ptes that reference mmio. The code is simpler, and with future work, can be made to handle mmio concurrently. Signed-off-by: Avi Kivity commit cdad27870dc2b8de7503346c66d4ef7c0b0d5690 Author: Avi Kivity Date: Wed Jan 23 22:26:09 2008 +0200 KVM: x86 emulator: group decoding for group 1 instructions Opcodes 0x80-0x83 Signed-off-by: Avi Kivity commit 26b95ed248648c686ff6537822f8e46662de6de6 Author: Avi Kivity Date: Wed Jan 23 18:14:23 2008 +0200 KVM: Only x86 has pio Signed-off-by: Avi Kivity commit 3abf467ddceca15ea9188068e711d284619e07e5 Author: Jan Engelhardt Date: Tue Jan 22 20:46:14 2008 +0100 KVM: constify function pointer tables Signed-off-by: Jan Engelhardt Signed-off-by: Avi Kivity commit 3d12af8d03b98644df72c9ac59416d37ea000303 Author: Avi Kivity Date: Fri Jan 18 13:36:50 2008 +0200 KVM: x86 emulator: add group 7 decoding This adds group decoding for opcode 0x0f 0x01 (group 7). Signed-off-by: Avi Kivity commit 9686f6d5bed04b489947cecc2554a49f0769d365 Author: Avi Kivity Date: Fri Jan 18 13:12:26 2008 +0200 KVM: x86 emulator: Group decoding for groups 4 and 5 Add group decoding support for opcode 0xfe (group 4) and 0xff (group 5). Signed-off-by: Avi Kivity commit e17c176005534ed6cf1cf88b0c5a2dc2d318b228 Author: Avi Kivity Date: Fri Jan 18 12:58:04 2008 +0200 KVM: x86 emulator: Group decoding for group 3 This adds group decoding support for opcodes 0xf6, 0xf7 (group 3). Signed-off-by: Avi Kivity commit cecd640eb846f2af6be560892bdc26b775cb71ef Author: Avi Kivity Date: Fri Jan 18 12:46:50 2008 +0200 KVM: x86 emulator: group decoding for group 1A This adds group decode support for opcode 0x8f. Signed-off-by: Avi Kivity commit e5ecefe4f9a58509099279939c1b389896bbc55a Author: Avi Kivity Date: Fri Jan 18 12:38:59 2008 +0200 KVM: x86 emulator: add support for group decoding Certain x86 instructions use bits 3:5 of the byte following the opcode as an opcode extension, with the decode sometimes depending on bits 6:7 as well. Add support for this in the main decoding table rather than an ad-hock adaptation per opcode. Signed-off-by: Avi Kivity commit 29ae41a859a12aa71baacd35a9648511f335848e Author: Feng(Eric) Liu Date: Tue Jan 22 18:01:08 2008 -0500 KVM: MMU: Fix gpa truncation when reading a pte Since the type of gpa is u64, so extend pte_size to u64. Otherwise, gpa may be truncated to u32. Signed-off-by: Feng (Eric) Liu Signed-off-by: Avi Kivity commit 67704e250e558f937c25fa44b6dd0e4fb9f12341 Author: Joerg Roedel Date: Mon Jan 21 13:09:33 2008 +0100 KVM: SVM: Fix lazy FPU switching If the guest writes to cr0 and leaves the TS flag at 0 while vcpu->fpu_active is also 0, the TS flag in the guest's cr0 gets lost. This leads to corrupt FPU state an causes Windows Vista 64bit to crash very soon after boot. This patch fixes this bug. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit 5b644f6246905396f05ebe0f570c50bd81fce850 Author: Avi Kivity Date: Wed Jan 16 12:49:30 2008 +0200 KVM: Move apic timer migration away from critical section Migrating the apic timer in the critical section is not very nice, and is absolutely horrible with the real-time port. Move migration to the regular vcpu execution path, triggered by a new bitflag. Cc: Thomas Gleixner Signed-off-by: Avi Kivity commit cf953c92a6a89b2256d92cb969df34e00f5d78df Author: Glauber de Oliveira Costa Date: Tue Jan 15 13:10:15 2008 -0200 KVM: Put kvm_para.h include outside __KERNEL__ kvm_para.h potentially contains definitions that are to be used by userspace, so it should not be included inside the __KERNEL__ block. To protect its own data structures, kvm_para.h already includes its own __KERNEL__ block. Signed-off-by: Glauber de Oliveira Costa Acked-by: Amit Shah Signed-off-by: Avi Kivity commit e523e00f4e2fe71b123bb102a8847f86b5b4bd8b Author: Avi Kivity Date: Tue Jan 15 18:27:32 2008 +0200 KVM: Fix unbounded preemption latency When preparing to enter the guest, if an interrupt comes in while preemption is disabled but interrupts are still enabled, we miss a preemption point. Fix by explicitly checking whether we need to reschedule. Signed-off-by: Thomas Gleixner Signed-off-by: Avi Kivity commit 9e007c2364364e4243870a61c7e8ed9f8527fa5b Author: Avi Kivity Date: Sun Jan 13 13:23:56 2008 +0200 KVM: Initialize the mmu caches only after verifying cpu support Otherwise we re-initialize the mmu caches, which will fail since the caches are already registered, which will cause us to deinitialize said caches. Signed-off-by: Avi Kivity commit b790d90bb55c3733ec9de6bf60c84ec15e10362e Author: Izik Eidus Date: Sat Jan 12 23:49:09 2008 +0200 KVM: MMU: Fix dirty page setting for pages removed from rmap Right now rmap_remove won't set the page as dirty if the shadow pte pointed to this page had write access and then it became readonly. This patches fixes that, by setting the page as dirty for spte changes from write to readonly access. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit ae544b92020577f556c5f7dd18e6a652f6f03a53 Author: Christian Ehrhardt Date: Tue Jan 8 08:04:50 2008 +0100 KVM: Portability: Move kvm_fpu to asm-x86/kvm.h This patch moves kvm_fpu asm-x86/kvm.h to allow every architecture to define an own representation used for KVM_GET_FPU/KVM_SET_FPU. Signed-off-by: Christian Ehrhardt Acked-by: Carsten Otte Acked-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 4ce97c46387e0ea72dfe0b52fd63345f2805a785 Author: Dong, Eddie Date: Mon Jan 7 13:20:25 2008 +0200 KVM: MMU: Simplify hash table indexing Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 94ed639ccce45f3233d30c84a2b136736e0e216b Author: Dong, Eddie Date: Mon Jan 7 11:14:20 2008 +0200 KVM: MMU: Update shadow ptes on partial guest pte writes A guest partial guest pte write will leave shadow_trap_nonpresent_pte in spte, which generates a vmexit at the next guest access through that pte. This patch improves this by reading the full guest pte in advance and thus being able to update the spte and eliminate the vmexit. This helps pae guests which use two 32-bit writes to set a single 64-bit pte. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 5ed49953ef3749de1198bc07cdf11339d8f74432 Author: Sheng Yang Date: Wed Jan 2 14:49:22 2008 +0800 KVM: x86 emulator: Only allow VMCALL/VMMCALL trapped by #UD When executing a test program called "crashme", we found the KVM guest cannot survive more than ten seconds, then encounterd kernel panic. The basic concept of "crashme" is generating random assembly code and trying to execute it. After some fixes on emulator insn validity judgment, we found it's hard to get the current emulator handle the invalid instructions correctly, for the #UD trap for hypercall patching caused troubles. The problem is, if the opcode itself was OK, but combination of opcode and modrm_reg was invalid, and one operand of the opcode was memory (SrcMem or DstMem), the emulator will fetch the memory operand first rather than checking the validity, and may encounter an error there. For example, ".byte 0xfe, 0x34, 0xcd" has this problem. In the patch, we simply check that if the invalid opcode wasn't vmcall/vmmcall, then return from emulate_instruction() and inject a #UD to guest. With the patch, the guest had been running for more than 12 hours. Signed-off-by: Feng (Eric) Liu Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 749e8e0460335f6699984cd7ba041320a9ba3c56 Author: Avi Kivity Date: Thu Jan 3 18:30:30 2008 +0200 KVM: Mark vapic page as dirty for save/restore/migrate Signed-off-by: Avi Kivity commit e7706133a12f0172b1a5ce4467277abd598155b6 Author: Dong, Eddie Date: Wed Jan 2 14:29:08 2008 +0800 KVM: MMU: Merge shadow level check in FNAME(fetch) Remove the redundant level check when fetching shadow pte for present & non-present spte. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 91051a4955255317cab0d09d8849ec12db85f924 Author: Avi Kivity Date: Tue Jan 1 14:19:48 2008 +0200 KVM: Fix unbalanced mmap_sem operations in cmpxchg8b emulation Signed-off-by: Avi Kivity commit dcfbe05b0a370341c2ef72ee314eacfb924b6de6 Author: Avi Kivity Date: Tue Jan 1 14:19:00 2008 +0200 KVM: MMU: Fix recursive locking of mmap_sem() Can cause nasty deadlocks. Signed-off-by: Avi Kivity commit a089279c866ddf3a69c4fa13fb9935b143853f97 Author: Avi Kivity Date: Mon Dec 31 17:10:22 2007 +0200 KVM: MMU: Broaden scope of mmap_sem to include actual mapping Signed-off-by: Avi Kivity commit 91f0ad972111addf2d694b1f2237e5eae72ca454 Author: Avi Kivity Date: Mon Dec 31 15:27:49 2007 +0200 KVM: MMU: Move kvm_free_some_pages() into critical section If some other cpu steals mmu pages between our check and an attempt to allocate, we can run out of mmu pages. Fix by moving the check into the same critical section as the allocation. Signed-off-by: Avi Kivity commit 03f6646f123b7afa1dc8595a6dc96f01d71c765b Author: Marcelo Tosatti Date: Thu Dec 20 19:18:26 2007 -0500 KVM: MMU: Switch to mmu spinlock Convert the synchronization of the shadow handling to a separate mmu_lock spinlock. Also guard fetch() by mmap_sem in read-mode to protect against alias and memslot changes. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 6e44a9063005c435bf62da3bf3c131ed4e54bced Author: Avi Kivity Date: Sun Dec 30 12:29:05 2007 +0200 KVM: MMU: Avoid calling gfn_to_page() in mmu_set_spte() Since gfn_to_page() is a sleeping function, and we want to make the core mmu spinlocked, we need to pass the page from the walker context (which can sleep) to the shadow context (which cannot). [marcelo: avoid recursive locking of mmap_sem] Signed-off-by: Avi Kivity commit a23041c096c4c024351bc1f758807d66471b283f Author: Marcelo Tosatti Date: Thu Dec 20 19:18:23 2007 -0500 KVM: Add kvm_read_guest_atomic() In preparation for a mmu spinlock, add kvm_read_guest_atomic() and use it in fetch() and prefetch_page(). Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 9bad222c14f721daa7e0bc2863cf62caaecf14e6 Author: Marcelo Tosatti Date: Thu Dec 20 19:18:22 2007 -0500 KVM: MMU: Concurrent guest walkers Do not hold kvm->lock mutex across the entire pagefault code, only acquire it in places where it is necessary, such as mmu hash list, active list, rmap and parent pte handling. Allow concurrent guest walkers by switching walk_addr() to use mmap_sem in read-mode. And get rid of the lockless __gfn_to_page. [avi: move kvm_mmu_pte_write() locking inside the function] [avi: add locking for real mode] Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 1477b89f565e78edbcd5d195fb72ab4682f63b2a Author: Avi Kivity Date: Wed Dec 26 13:57:04 2007 +0200 KVM: Disable vapic support on Intel machines with FlexPriority FlexPriority accelerates the tpr without any patching. Signed-off-by: Avi Kivity commit 1d536bc26aec043a102f0fd02899985fd5f77653 Author: Avi Kivity Date: Thu Oct 25 16:52:32 2007 +0200 KVM: Accelerated apic support This adds a mechanism for exposing the virtual apic tpr to the guest, and a protocol for letting the guest update the tpr without causing a vmexit if conditions allow (e.g. there is no interrupt pending with a higher priority than the new tpr). Signed-off-by: Avi Kivity commit b7a5f24a96a5501f59caa165428a928ee2652af6 Author: Avi Kivity Date: Mon Oct 22 16:50:39 2007 +0200 KVM: local APIC TPR access reporting facility Add a facility to report on accesses to the local apic tpr even if the local apic is emulated in the kernel. This is basically a hack that allows userspace to patch Windows which tends to bang on the tpr a lot. Signed-off-by: Avi Kivity commit 7885a4fbebcbae1f8594445a46aefb9d97353594 Author: Izik Eidus Date: Thu Dec 20 10:41:39 2007 +0200 KVM: Ensure pages are copied on write Fix userspace memory handling bug related to cow the previous way we called get_user_pages, was without the force flag and therefore it didnt break COW shared pages. This caused host memory corruption when host userspace fork()ed. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 567f9bfa0a7461945dcd6a50d0b3efb44714400d Author: Avi Kivity Date: Wed Dec 19 12:02:40 2007 +0200 KVM: Print data for unimplemented wrmsr This can help diagnosing what the guest is trying to do. In many cases we can get away with partial emulation of msrs. Signed-off-by: Avi Kivity commit ed918da99a1377481cf8d40b75b2cbb35b802f3e Author: Avi Kivity Date: Tue Dec 18 19:47:18 2007 +0200 KVM: MMU: Add cache miss statistic Signed-off-by: Avi Kivity commit 0350cb07b74834bce356d0a819be2b239b94d080 Author: Eddie Dong Date: Tue Dec 18 06:08:27 2007 +0800 KVM: MMU: Coalesce remote tlb flushes Host side TLB flush can be merged together if multiple spte need to be write-protected. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 4d95c0f3eea3b89221f3b35a7e01119973ae7190 Author: Zhang Xiantao Date: Mon Dec 17 20:27:27 2007 +0800 KVM: Expose ioapic to ia64 save/restore APIs IA64 also needs to see ioapic structure in irqchip. Signed-off-by: xiantao.zhang@intel.com Signed-off-by: Avi Kivity commit 2042dde72d5f8663237efb5e8a2797ba9e1c42e4 Author: Zhang Xiantao Date: Mon Dec 17 14:21:40 2007 +0800 KVM: Move kvm_vcpu_kick() to x86.c Moving kvm_vcpu_kick() to x86.c. Since it should be common for all archs, put its declarations in Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 50d50e54371d313a8bb1827a05ccca41ab6761aa Author: Zhang Xiantao Date: Mon Dec 17 14:16:14 2007 +0800 KVM: Move ioapic code to common directory. Move ioapic code to common, since IA64 also needs it. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit d924af23f843578480c35d6e2dd7cf61f63187b2 Author: Zhang Xiantao Date: Mon Dec 17 13:59:56 2007 +0800 KVM: Move irqchip declarations into new ioapic.h and lapic.h This allows reuse of ioapic in ia64. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit c366747d21ea71d89f32b530037285f7bbfabaa3 Author: Avi Kivity Date: Sun Dec 16 11:13:16 2007 +0200 KVM: Move drivers/kvm/* to virt/kvm/ Signed-off-by: Avi Kivity commit 85c6290a3c5345016358e4e604fba470a62fc392 Author: Avi Kivity Date: Sun Dec 16 11:02:48 2007 +0200 KVM: Move arch dependent files to new directory arch/x86/kvm/ This paves the way for multiple architecture support. Note that while ioapic.c could potentially be shared with ia64, it is also moved. Signed-off-by: Avi Kivity commit a3848478c4b265d6b9789a891cefc8dce4ed9c69 Author: Ryan Harper Date: Thu Dec 13 10:21:10 2007 -0600 KVM: VMX: Add printk_ratelimit in vmx_intr_assist Add printk_ratelimit check in front of printk. This prevents spamming of the message during 32-bit ubuntu 6.06server install. Previously, it would hang during the partition formatting stage. Signed-off-by: Ryan Harper Signed-off-by: Avi Kivity commit 58bb8349b808e2ac08bf9aa0580330bcb461e696 Author: Zhang Xiantao Date: Fri Dec 14 10:23:23 2007 +0800 KVM: Portability: Move kvm_vm_stat to x86.h This patch moves kvm_vm_stat to x86.h, and every arch can define its own kvm_vm_stat in $arch.h Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit f51835e0d03b8cd97eaad80dece87e32f7896ed6 Author: Zhang Xiantao Date: Fri Dec 14 10:20:16 2007 +0800 KVM: Portability: Move round_robin_prev_vcpu and tss_addr to kvm_arch This patches moves two fields round_robin_prev_vcpu and tss to kvm_arch. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 024c0d7cd4348dcb412e4b49a4dc3bcdbb46bb5d Author: Zhang Xiantao Date: Fri Dec 14 10:17:34 2007 +0800 KVM: Portability: move vpic and vioapic to kvm_arch This patches moves two fields vpid and vioapic to kvm_arch Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 6a021262861ac4957bc6f558a7221e5127cd4cf7 Author: Zhang Xiantao Date: Fri Dec 14 10:01:48 2007 +0800 KVM: Portability: Move mmu-related fields to kvm_arch This patches moves mmu-related fields to kvm_arch. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 06087dc10debe5a74eaf7a6a37464c504973dd45 Author: Zhang Xiantao Date: Fri Dec 14 09:54:20 2007 +0800 KVM: Portability: Move memslot aliases to new struct kvm_arch This patches create kvm_arch to hold arch-specific kvm fileds and moves fields naliases and aliases to kvm_arch. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit c63eee73881d2db2ee7d2255dc2a0350d528e594 Author: Zhang Xiantao Date: Fri Dec 14 09:49:26 2007 +0800 KVM: Portability: Move kvm_vcpu_stat to x86.h This patches moves kvm_vcpu_stat to x86.h, so every arch can define its own kvm_vcpu_stat structure. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 6ed5f1928c66462ba81da72defb3d705feb73a86 Author: Zhang Xiantao Date: Fri Dec 14 09:45:31 2007 +0800 KVM: Portability: Expand the KVM_VCPU_COMM in kvm_vcpu structure. This patches removes KVM_COMM macro, original it is hold kvm_vcpu common fields. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit f6f92b4c782102cb0162613902b1513f9e7adf3f Author: Zhang Xiantao Date: Fri Dec 14 09:41:22 2007 +0800 KVM: Portability: Move kvm_vcpu definition back to kvm.h This patches moves kvm_vcpu definition to kvm.h, and finally kvm.h includes x86.h. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit b560069d516402f8cfc6c7f003454956953bcfb5 Author: Zhang Xiantao Date: Fri Dec 14 09:35:10 2007 +0800 KVM: Portability: Split mmu-related static inline functions to mmu.h Since these functions need to know the details of kvm or kvm_vcpu structure, it can't be put in x86.h. Create mmu.h to hold them. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit f7888ffeef8ee06ef16c665733cd5f324056f014 Author: Zhang Xiantao Date: Thu Dec 13 23:50:52 2007 +0800 KVM: Portability: Introduce kvm_vcpu_arch Move all the architecture-specific fields in kvm_vcpu into a new struct kvm_vcpu_arch. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit a0ef3bd9b3bfb21400b8109db5423c6610145dfe Author: Zhang Xiantao Date: Tue Dec 11 20:36:00 2007 +0800 KVM: Portability: Move kvm{pic,ioapic} accesors to x86 specific code Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 0d2480f47ae5c357049eb7a49b48fe9ee5b05953 Author: Marcelo Tosatti Date: Wed Dec 12 10:46:12 2007 -0500 KVM: MMU: emulated cmpxchg8b should be atomic on i386 Emulate cmpxchg8b atomically on i386. This is required to avoid a guest pte walker from seeing a splitted write. [avi: make it compile] Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit cd8f3145348de3087607195cd221780f5da4f030 Author: Joerg Roedel Date: Tue Dec 11 15:36:57 2007 +0100 KVM: SVM: support writing 0 to K8 performance counter control registers This lets SVM ignore writes of the value 0 to the performance counter control registers. Thus enabling them will still fail in the guest, but a write of 0 which keeps them disabled is accepted. This is required to boot Windows Vista 64bit. [avi: avoid fall-thru in switch statement] Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit a30c90b493eec3e118d95e8057776b1c34bd9da8 Author: Joerg Roedel Date: Wed Dec 12 12:37:24 2007 +0100 KVM: LAPIC: minor debugging compile fix This patch fixes a compile error of the LAPIC code with APIC debugging enabled. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit 58a96eecc801a6570264d5c66d26531d82470c33 Author: Marcelo Tosatti Date: Tue Dec 11 19:12:27 2007 -0500 KVM: MMU: Fix SMP shadow instantiation race There is a race where VCPU0 is shadowing a pagetable entry while VCPU1 is updating it, which results in a stale shadow copy. Fix that by comparing the contents of the cached guest pte with the current guest pte after write-protecting the guest pagetable. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 957ff6b0d9822fd24b294b0e2a66b6a48135b269 Author: Joerg Roedel Date: Thu Dec 6 21:02:25 2007 +0100 KVM: SVM: Exit to userspace if write to cr8 and not using in-kernel apic With this patch KVM on SVM will exit to userspace if the guest writes to CR8 and the in-kernel APIC is disabled. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit 0210661321f78f69f98c593625f18a9ea686fdc1 Author: Avi Kivity Date: Sun Dec 9 18:43:00 2007 +0200 KVM: MMU: Use mmu_set_spte() for real-mode shadows In addition to removing some duplicated code, this also handles the unlikely case of real-mode code updating a guest page table. This can happen when one vcpu (in real mode) touches a second vcpu's (in protected mode) page tables, or if a vcpu switches to real mode, touches page tables, and switches back. Signed-off-by: Avi Kivity commit be3aea0724666dcfd0b9b4c7a571a7f1fb2e0357 Author: Avi Kivity Date: Sun Dec 9 18:39:41 2007 +0200 KVM: MMU: Adjust mmu_set_spte() debug code for gpte removal Signed-off-by: Avi Kivity commit 8c88b9de814d698c0b4ae37fea84bd32b70f786b Author: Avi Kivity Date: Sun Dec 9 17:40:31 2007 +0200 KVM: MMU: Move set_pte() into guest paging mode independent code As set_pte() no longer references either a gpte or the guest walker, we can move it out of paging mode dependent code (which compiles twice and is generally nasty). Signed-off-by: Avi Kivity commit dc9f6110cf35805ed4e8c0a95c1be267c907e884 Author: Avi Kivity Date: Sun Dec 9 17:33:46 2007 +0200 KVM: MMU: Remove walker argument to set_pte() Unused. Signed-off-by: Avi Kivity commit 33e0e3a2d4920eb2dce19c1e1a796ff6e0762457 Author: Avi Kivity Date: Sun Dec 9 17:32:30 2007 +0200 KVM: MMU: Pass pte dirty flag to set_pte() instead of calculating it on-site This allows us to remove its dependency on pt_element_t. Signed-off-by: Avi Kivity commit ea8dea713f57429db7ff2fc647f1dd3c479a1498 Author: Avi Kivity Date: Sun Dec 9 17:27:52 2007 +0200 KVM: MMU: No need to pick up nx bit from guest pte We already set it according to cumulative access permissions. Signed-off-by: Avi Kivity commit aab175e49c49324310d7223be9a78ab2c199e74f Author: Avi Kivity Date: Sun Dec 9 17:00:02 2007 +0200 KVM: MMU: Fix inherited permissions for emulated guest pte updates When we emulate a guest pte write, we fail to apply the correct inherited permissions from the parent ptes. Now that we store inherited permissions in the shadow page, we can use that to update the pte permissions correctly. Signed-off-by: Avi Kivity commit 36f96df050f80f2632cfb6b4732d839a7977113a Author: Avi Kivity Date: Sun Dec 9 16:52:56 2007 +0200 KVM: MMU: Move pte access calculation into a helper function Signed-off-by: Avi Kivity commit 2472c041e66c73c9ad754f6b8d19c7fba374cb27 Author: Avi Kivity Date: Sun Dec 9 16:37:36 2007 +0200 KVM: MMU: Set nx bit correctly on shadow ptes While the page table walker correctly generates a guest page fault if a guest tries to execute a non-executable page, the shadow code does not mark it non-executable. This means that if a guest accesses an nx page first with a read access, then subsequent code fetch accesses will succeed. Fix by setting the nx bit on shadow ptes. Signed-off-by: Avi Kivity commit c05635b462e90c381420667cffd025bcc87a081f Author: Avi Kivity Date: Sun Dec 9 16:15:46 2007 +0200 KVM: MMU: Simplify calculation of pte access The nx bit is awkwardly placed in the 63rd bit position; furthermore it has a reversed meaning compared to the other bits, which means we can't use a bitwise and to calculate compounded access masks. So, we simplify things by creating a new 3-bit exec/write/user access word, and doing all calculations in that. Signed-off-by: Avi Kivity commit eab1de2b85dcbc23f9fe7332623dffbbf6ddb419 Author: Marcelo Tosatti Date: Fri Dec 7 07:56:58 2007 -0500 KVM: MMU: Use cmpxchg for pte updates on walk_addr() In preparation for multi-threaded guest pte walking, use cmpxchg() when updating guest pte's. This guarantees that the assignment of the dirty bit can't be lost if two CPU's are faulting the same address simultaneously. [avi: fix kunmap_atomic() parameters] Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit e3366a8a9cf43bc6a6f1d5b473cb6e58e80b7d5e Author: Avi Kivity Date: Thu Dec 6 21:11:31 2007 +0200 KVM: VMX: Fix cr8 exit optimization Signed-off-by: Avi Kivity commit 620208ae8864882e4e5dd7f1b5996820caa575a6 Author: Avi Kivity Date: Thu Dec 6 19:50:00 2007 +0200 KVM: SVM: Trap access to the cr8 register Later we may be able to use the virtual tpr feature, but for now, just trap it. Signed-off-by: Avi Kivity commit c1185a68804451d912719e9b03716a909aeef6bc Author: Avi Kivity Date: Thu Dec 6 18:14:14 2007 +0200 KVM: x86 emulator: Fix stack instructions on 64-bit mode Stack instructions are always 64-bit on 64-bit mode; many of the emulated stack instructions did not take that into account. Fix by adding a 'Stack' bitflag and setting the operand size appropriately during the decode stage (except for 'push r/m', which is in a group with a few other instructions, so it gets its own treatment). This fixes random crashes on Vista x64. Signed-off-by: Avi Kivity commit 495fdd4724fca0ccb0915816aefe693dd02fd034 Author: Joerg Roedel Date: Thu Dec 6 15:46:52 2007 +0100 KVM: SVM: Emulate read/write access to cr8 This patch adds code to emulate the access to the cr8 register to the x86 instruction emulator in kvm. This is needed on svm, where there is no hardware decode for control register access. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit 1a306332c4e88c8eaa6bb26a23965864e6e78bbb Author: Avi Kivity Date: Thu Dec 6 16:32:45 2007 +0200 KVM: VMX: Avoid exit when setting cr8 if the local apic is in the kernel With apic in userspace, we must exit to userspace after a cr8 write in order to update the tpr. But if the apic is in the kernel, the exit is unnecessary. Noticed by Joerg Roedel. Signed-off-by: Avi Kivity commit 1b15a0f3cc6c9ca6bfb6fe468156ed3603092878 Author: Avi Kivity Date: Thu Dec 6 16:15:02 2007 +0200 KVM: x86 emulator: fix eflags preparation for emulation We prepare eflags for the emulated instruction, then clobber it with an 'andl'. Fix by popping eflags as the last thing in the sequence. Patch taken from Xen (16143:959b4b92b6bf) Signed-off-by: Avi Kivity commit a95acbf60ba74e82ffa450a3c1de314ed10ea52d Author: Avi Kivity Date: Sun Nov 25 15:22:50 2007 +0200 KVM: Use generalized exception queue for injecting #UD Signed-off-by: Avi Kivity commit 7826d5f9510b29eac2fda1f16a410d85cda28c57 Author: Avi Kivity Date: Sun Nov 25 14:12:03 2007 +0200 KVM: Replace #GP injection by the generalized exception queue Signed-off-by: Avi Kivity commit 508945960872689acee683c2baec87b00d6af788 Author: Avi Kivity Date: Sun Nov 25 14:04:58 2007 +0200 KVM: Replace page fault injection by the generalized exception queue Signed-off-by: Avi Kivity commit 9baf60dafabd46151b1be0ca9b787300a14870cd Author: Avi Kivity Date: Sun Nov 25 13:41:11 2007 +0200 KVM: Generalize exception injection mechanism Instead of each subarch doing its own thing, add an API for queuing an injection, and manage failed exception injection centerally (i.e., if an inject failed due to a shadow page fault, we need to requeue it). Signed-off-by: Avi Kivity commit 0132b078ce22386d7a42714e2dde2c712a5c4207 Author: Marcelo Tosatti Date: Tue Dec 4 13:42:16 2007 -0500 KVM: MMU: Remove unused prev_shadow_ent variable from fetch() Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 312aaca14f07c92fc3d04825968b2cd7122d0508 Author: npiggin@suse.de Date: Wed Dec 5 18:15:52 2007 +1100 KVM: Convert KVM from ->nopage() to ->fault() Signed-off-by: Nick Piggin Cc: kvm-devel@lists.sourceforge.net Cc: avi@qumranet.com Cc: linux-kernel@vger.kernel.org Signed-off-by: Avi Kivity commit c4b2fe88ab89aa9a3d6d6248751806073c61ee22 Author: Hollis Blanchard Date: Mon Dec 3 16:15:26 2007 -0600 KVM: Portability: Create kvm_arch_vcpu_runnable() function This abstracts the detail of x86 hlt and INIT modes into a function. Signed-off-by: Hollis Blanchard Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit d32f10db9060b2f5ba643008d70ea3e2604557f0 Author: Hollis Blanchard Date: Mon Dec 3 15:30:25 2007 -0600 KVM: Portability: Stop including x86-specific headers in kvm_main.c Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 5059097a8f86bc0a4e63451e9a4bd390bd5840b3 Author: Hollis Blanchard Date: Mon Dec 3 15:30:24 2007 -0600 KVM: Portability: Move IO device definitions to its own header file Signed-off-by: Hollis Blanchard Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit c2aa443f394d90ab3b7b1e4236a1bf0dd070d41e Author: Hollis Blanchard Date: Mon Dec 3 15:30:23 2007 -0600 KVM: Portability: Move address types to their own header file Signed-off-by: Hollis Blanchard Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 6d1d70bb6121e10a84c394fd29af320e8625f0d6 Author: Zhang Xiantao Date: Sun Dec 2 22:53:07 2007 +0800 KVM: Extend ioapic code to support iosapic iosapic supports an additional mmio EOI register compared to ioapic. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 11f4471ed4f5438439e041cbf66c7ed07d62cfa2 Author: Zhang Xiantao Date: Sun Dec 2 22:49:09 2007 +0800 KVM: Replace dest_Lowest_Prio and dest_Fixed with self-defined macros Change dest_Loest_Prio -> IOAPIC_LOWEST_PRIORITY dest_Fixed -> IOAPIC_FIXED the original names are x86 specific, while the ioapic code will be reused for ia64. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit b627248e01ab212ecfdab822248b24db6e93e5ae Author: Zhang Xiantao Date: Sun Dec 2 22:35:57 2007 +0800 KVM: Replace kvm_lapic with kvm_vcpu in ioapic/lapic interface This patch replaces lapic structure with kvm_vcpu in ioapic.c, making ioapic independent of the local apic, as required by ia64. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit a5d72858e076d865223900ddce084ab04a2907f9 Author: Carlo Marcelo Arenas Belon Date: Sat Dec 1 06:17:11 2007 -0600 KVM: SVM: Remove KVM specific defines for MSR_EFER This patch removes the KVM specific defines for MSR_EFER that were being used in the svm support file and migrates all references to use instead the ones from the kernel headers that are used everywhere else and that have the same values. Signed-off-by: Carlo Marcelo Arenas Belon Signed-off-by: Avi Kivity commit 30f68f12b371e4105897fe2f2acbaaab667e8293 Author: Avi Kivity Date: Sun Dec 2 10:50:06 2007 +0200 KVM: Export include/linux/kvm.h only if $ARCH actually supports KVM Currently, make headers_check barfs due to , which includes, not existing. Rather than add a zillion s, export kvm.h only if the arch actually supports it. Signed-off-by: Avi Kivity commit 248b1cea3a9ed4e997409dbc0d0397cc601eeb28 Author: Zhang Xiantao Date: Thu Nov 29 15:35:39 2007 +0800 KVM: Correct kvm_init() error paths not freeing bad_pge. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 872b5d79d10518f90814ea8de95e5b4a2ef678cd Author: Zhang Xiantao Date: Wed Nov 21 04:36:41 2007 +0800 KVM: Portability: Move KVM_INTERRUPT vcpu ioctl to x86.c Other archs doesn't need it. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 8f13a26579abdae8fc09bfaaeb778d5c66383648 Author: Avi Kivity Date: Tue Nov 27 19:30:56 2007 +0200 KVM: x86 emulator: unify four switch statements into two Unify the special instruction switch with the regular instruction switch, and the two byte special instruction switch with the regular two byte instruction switch. That makes it much easier to find an instruction or the place an instruction needs to be added in. Signed-off-by: Avi Kivity commit 52fb6a8bbfd208976296ec1c42ecf3c707df6693 Author: Avi Kivity Date: Tue Nov 27 19:14:21 2007 +0200 KVM: x86 emulator: unify two switches The rep prefix cleanup left two switch () statements next to each other. Unify them. Signed-off-by: Avi Kivity commit 9c4da7ae8602d4a3c6558efcb1a5f5d0c1aedae3 Author: Avi Kivity Date: Tue Nov 27 19:05:37 2007 +0200 KVM: x86 emulator: Move rep processing before instruction execution Currently rep processing is handled somewhere in the middle of instruction processing. Move it to a sensible place. Signed-off-by: Avi Kivity commit 334df02ff6c75a9a740838fbacebc9c590587617 Author: Avi Kivity Date: Mon Nov 26 18:30:07 2007 +0200 KVM: Fix cpuid2 killing 32-bit guests on non-NX machines KVM_SET_CPUID fails to remove NX when the host doesn't support it, as previous versions do. On the other hand, KVM_SET_CPUID2 removes the feature even though, since we tell userspace about it, it shouldn't be necessary. Swap the two cases. Signed-off-by: Avi Kivity commit 04546994156d8cee5417bd6a9b180476a405c20d Author: Jerone Young Date: Mon Nov 26 08:33:53 2007 -0600 KVM: Add ifdef in irqchip struct for x86 only structures This patch fixes a small issue where sturctures: kvm_pic_state kvm_ioapic_state are defined inside x86 specific code and may or may not be defined in anyway for other architectures. The problem caused is one cannot compile userspace apps (ex. libkvm) for other archs since a size cannot be determined for these structures. Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit ce63e51b866391404de2b7361146355b731ee5fb Author: Guillaume Thouvenin Date: Mon Nov 26 13:49:09 2007 +0100 KVM: x86 emulator: cmps instruction Add emulation for the cmps instruction. This lets OpenBSD boot on kvm. Signed-off-by: Guillaume Thouvenin Signed-off-by: Avi Kivity commit b961c7a777e68aa16e26b415b93fdb3ad74743a7 Author: Sheng Yang Date: Fri Nov 16 16:29:15 2007 +0800 KVM: x86 emulator: Rename 'cr2' to 'memop' Previous patches have removed the dependency on cr2; we can now stop passing it to the emulator and rename uses to 'memop'. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit a90bcadc507d1507a6ad29ef87a22f311e542fb2 Author: Avi Kivity Date: Mon Nov 26 16:10:43 2007 +0200 KVM: x86 emulator: rename REP_REPE_PREFIX Signed-off-by: Avi Kivity commit fb90cbc3977a94bbd2b4e496de7afd3ce6d977d7 Author: Izik Eidus Date: Mon Nov 26 14:08:14 2007 +0200 KVM: MMU: mark pages that were inserted to the shadow pages table as accessed Mark guest pages as accessed when removed from the shadow page tables for better lru processing. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit d0cf28925a13945072ec05574d7b94f9fb95984e Author: Avi Kivity Date: Sun Nov 25 17:45:31 2007 +0200 KVM: Remove misleading check for mmio during event injection mmio was already handled in kvm_arch_vcpu_ioctl_run(), so no need to check again. Signed-off-by: Avi Kivity commit f77171a55097f13656aea7ea7dfbc84c2afff918 Author: Avi Kivity Date: Thu Nov 22 14:16:12 2007 +0200 KVM: x86 emulator: address size and operand size overrides are sticky Current implementation is to toggle, which is incorrect. Patch ported from corresponding Xen code. Signed-off-by: Avi Kivity commit c8ba048f1a82c79276ef9146140bd5ed0dd6cd85 Author: Guillaume Thouvenin Date: Thu Nov 22 11:32:09 2007 +0100 KVM: x86 emulator: Make a distinction between repeat prefixes F3 and F2 cmps and scas instructions accept repeat prefixes F3 and F2. So in order to emulate those prefixed instructions we need to be able to know if prefixes are REP/REPE/REPZ or REPNE/REPNZ. Currently kvm doesn't make this distinction. This patch introduces this distinction. Signed-off-by: Guillaume Thouvenin Signed-off-by: Avi Kivity commit 97cf6a86e25f3cdf1f61a55e659d2e3df1c5ff8e Author: Zhang Xiantao Date: Thu Nov 22 11:20:33 2007 +0800 KVM: Portability: Move unalias_gfn to arch dependent file Non-x86 archs don't need this mechanism. Move it to arch, and keep its interface in common. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit f442770e25f19e17a39f715dbd4328d77b68b2f7 Author: Sheng Yang Date: Wed Nov 21 14:33:25 2007 +0800 KVM: VMX: Remove the secondary execute control dependency on irqchip The state of SECONDARY_VM_EXEC_CONTROL shouldn't depend on in-kernel IRQ chip, this patch fix this. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit a140b2cc4877b204c2e1548e6b66a9903813ac14 Author: Dan Kenigsberg Date: Wed Nov 21 17:10:04 2007 +0200 KVM: Enhance guest cpuid management The current cpuid management suffers from several problems, which inhibit passing through the host feature set to the guest: - No way to tell which features the host supports While some features can be supported with no changes to kvm, others need explicit support. That means kvm needs to vet the feature set before it is passed to the guest. - No support for indexed or stateful cpuid entries Some cpuid entries depend on ecx as well as on eax, or on internal state in the processor (running cpuid multiple times with the same input returns different output). The current cpuid machinery only supports keying on eax. - No support for save/restore/migrate The internal state above needs to be exposed to userspace so it can be saved or migrated. This patch adds extended cpuid support by means of three new ioctls: - KVM_GET_SUPPORTED_CPUID: get all cpuid entries the host (and kvm) supports - KVM_SET_CPUID2: sets the vcpu's cpuid table - KVM_GET_CPUID2: gets the vcpu's cpuid table, including hidden state Signed-off-by: Dan Kenigsberg Signed-off-by: Avi Kivity commit 1a4c6de93b1c39030475a61d02e4df7f74f51e37 Author: Avi Kivity Date: Wed Nov 21 16:41:05 2007 +0200 KVM: Disallow fork() and similar games when using a VM We don't want the meaning of guest userspace changing under our feet. Signed-off-by: Avi Kivity commit 718e1c897684f1362ce7c8a9b209e7e2c78e4c4c Author: Avi Kivity Date: Wed Nov 21 15:32:41 2007 +0200 KVM: MMU: Rename 'release_page' Rename the awkwardly named variable. Signed-off-by: Avi Kivity commit fb3dc55a5bdadd47a293c46620bef3032ff48426 Author: Avi Kivity Date: Wed Nov 21 15:28:32 2007 +0200 KVM: MMU: Rename variables of type 'struct kvm_mmu_page *' These are traditionally named 'page', but even more traditionally, that name is reserved for variables that point to a 'struct page'. Rename them to 'sp' (for "shadow page"). Signed-off-by: Avi Kivity commit f02512044420fe8e91f3cb0e2e56f189e74066a9 Author: Avi Kivity Date: Wed Nov 21 15:01:44 2007 +0200 KVM: Remove gpa_to_hpa() Converting last uses along the way. Signed-off-by: Avi Kivity commit 8aac4447a875e1f11d3543c039f09f825a4fa359 Author: Avi Kivity Date: Wed Nov 21 14:57:44 2007 +0200 KVM: MMU: Remove gva_to_hpa() No longer used. Signed-off-by: Avi Kivity commit f1ce9a1d9c1ea0f68c6b894c992d633207b664ea Author: Avi Kivity Date: Wed Nov 21 14:54:16 2007 +0200 KVM: MMU: Simplify nonpaging_map() Instead of passing an hpa, pass a regular struct page. Signed-off-by: Avi Kivity commit b57925a773d4fc2a88184f4b31eb7aae4d9b7e2c Author: Avi Kivity Date: Wed Nov 21 14:44:45 2007 +0200 KVM: MMU: Introduce gfn_to_gpa() Converting a frame number to an address is tricky since the data type changes size. Introduce a function to do it. This fixes an actual bug when accessing guest ptes. Signed-off-by: Avi Kivity commit 5c3cbf2d407a80644241e6af9fcca51b3ed0aa5c Author: Avi Kivity Date: Wed Nov 21 14:20:22 2007 +0200 KVM: MMU: Adjust page_header_update_slot() to accept a gfn instead of a gpa Signed-off-by: Avi Kivity commit ba8720265892f853b802198c47682bce89719f8c Author: Avi Kivity Date: Wed Nov 21 14:16:30 2007 +0200 KVM: MMU: Merge set_pte() and set_pte_common() Since set_pte() is now the only caller of set_pte_common(), merge the two functions. Signed-off-by: Avi Kivity commit 12879fd11c07ae060c5ec918eaf8cc5c5e0bf5c8 Author: Avi Kivity Date: Wed Nov 21 14:11:49 2007 +0200 KVM: MMU: Remove set_pde() It is now identical to set_pte(). Signed-off-by: Avi Kivity commit 98d462d22b18d9433ee40bb0e7b9bfc2a4839d55 Author: Avi Kivity Date: Wed Nov 21 14:08:40 2007 +0200 KVM: MMU: Remove extra gaddr parameter from set_pte_common() Similar information is available in the gfn parameter, so use that. Signed-off-by: Avi Kivity commit 194d7f3ad1e26815bfc1b934a73a4b74f9d5d018 Author: Avi Kivity Date: Wed Nov 21 13:54:47 2007 +0200 KVM: MMU: Move pse36 handling to the guest walker Signed-off-by: Avi Kivity commit 904b2b78058edc3abee7f0ea543ed107a580d6e7 Author: Avi Kivity Date: Wed Nov 21 12:35:07 2007 +0200 KVM: MMU: Introduce and use gpte_to_gfn() Instead of repretitively open-coding this. Signed-off-by: Avi Kivity commit b6b934f10416dc5e2ee59442b564264492885b25 Author: Izik Eidus Date: Tue Nov 20 12:02:12 2007 +0200 KVM: MMU: Code cleanup Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 481af46d479b09a0a56606af7efc6a0a9368a43d Author: Avi Kivity Date: Wed Nov 21 02:57:59 2007 +0200 KVM: Don't bother the mmu if cr3 load doesn't change cr3 If the guest requests just a tlb flush, don't take the vm lock and drop the mmu context pointlessly. Signed-off-by: Avi Kivity commit 9dd1731684fdfe4b07374b28c383e97c21ccd97a Author: Avi Kivity Date: Wed Nov 21 02:06:21 2007 +0200 KVM: MMU: Avoid unnecessary remote tlb flushes when guest updates a pte If all we're doing is increasing permissions on a pte (typical for demand paging), then there's not need to flush remote tlbs. Worst case they'll get a spurious page fault. Signed-off-by: Avi Kivity commit 1c6d0c2de6c8f5b57971d554215a5991bb948884 Author: Avi Kivity Date: Tue Nov 20 23:01:14 2007 +0200 KVM: Add statistic for remote tlb flushes Signed-off-by: Avi Kivity commit 772086964f8aa002f57f61044a336aac667386d3 Author: Avi Kivity Date: Tue Nov 20 21:39:54 2007 +0200 KVM: MMU: Implement guest page fault bypass for nonpae I spent an hour worrying why I see so many guest page faults on FC6 i386. Turns out bypass wasn't implemented for nonpae. Implement it so it doesn't happen again. Signed-off-by: Avi Kivity commit 91eb2376ace13756a5eb9068093bdaed1320e949 Author: Avi Kivity Date: Tue Nov 20 15:30:24 2007 +0200 KVM: Split vcpu creation to avoid vcpu_load() before preemption setup Split kvm_arch_vcpu_create() into kvm_arch_vcpu_create() and kvm_arch_vcpu_setup(), enabling preemption notification between the two. This mean that we can now do vcpu_load() within kvm_arch_vcpu_setup(). Signed-off-by: Avi Kivity commit 821afccb303e4a5761b9b07a1e599dd99feecfe1 Author: Zhang Xiantao Date: Tue Nov 20 16:25:04 2007 +0800 KVM: Portability: Split kvm_set_memory_region() to have an arch callout Moving !user_alloc case to kvm_arch to avoid unnecessary code logic in non-x86 platform. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit e2d8cbc6b4589ae4c06cad9dcc29a5da58a0d761 Author: Zhang Xiantao Date: Tue Nov 20 13:11:38 2007 +0800 KVM: Recalculate mmu pages needed for every memory region change Instead of incrementally changing the mmu cache size for every memory slot operation, recalculate it from scratch. This is simpler and safer. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 8c62725b40aceb3d8004954d221215f8e1a4656f Author: Avi Kivity Date: Tue Nov 20 13:15:52 2007 +0200 KVM: x86 emulator: prefetch up to 15 bytes of the instruction executed Instead of fetching one byte at a time, prefetch 15 bytes (or until the next page boundary) to avoid guest page table walks. Signed-off-by: Avi Kivity commit 31c5dcecace6d0eed31d13e9d6e525a1d1b0d741 Author: Avi Kivity Date: Tue Nov 20 12:49:31 2007 +0200 KVM: x86 emulator: retire ->write_std() Theoretically used to acccess memory known to be ordinary RAM, it was never implemented. It is questionable whether it is possible to implement it correctly. Signed-off-by: Avi Kivity commit c4cfa3cad0a5b24d6c09daf2b9837d60191af177 Author: Izik Eidus Date: Tue Nov 20 11:49:33 2007 +0200 KVM: MMU: Selectively set PageDirty when releasing guest memory Improve dirty bit setting for pages that kvm release, until now every page that we released we marked dirty, from now only pages that have potential to get dirty we mark dirty. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit c68426d13b5ee3607b40c9eb4db55bd46448c315 Author: Izik Eidus Date: Tue Nov 20 11:30:04 2007 +0200 KVM: MMU: Fix potential memory leak with smp real-mode When we map a page, we check whether some other vcpu mapped it for us and if so, bail out. But we should decrease the refcount on the page as we do so. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 9500583c5938b83134114f925f933813e8d0ee1a Author: Avi Kivity Date: Tue Nov 20 11:45:14 2007 +0200 KVM: Export include/asm-x86/kvm.h Signed-off-by: Avi Kivity commit 29f516db0b9baf019b1c93a154244fbedd81d2ac Author: Jerone Young Date: Mon Nov 19 17:06:37 2007 -0600 KVM: Portability: Move cpuid structures to This patch moves structures: kvm_cpuid_entry kvm_cpuid from include/linux/kvm.h to include/asm-x86/kvm.h Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit 8d8c2c60388c3e98e4386e086357f4e1b51bca1e Author: Jerone Young Date: Mon Nov 19 17:06:36 2007 -0600 KVM: Portability: Move kvm_sregs and msr structures to Move structures: kvm_sregs kvm_msr_entry kvm_msrs kvm_msr_list from include/linux/kvm.h to include/asm-x86/kvm.h Signed-off-by: Avi Kivity commit e7841ac816a436cc71107ed3d91496b45c86a00f Author: Jerone Young Date: Mon Nov 19 17:06:35 2007 -0600 KVM: Portability: Move kvm_segment & kvm_dtable structure to This patch moves structures: kvm_segment kvm_dtable from include/linux/kvm.h to include/asm-x86/kvm.h Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit 6b9fef5a4eb55e4da3cd39f720de76294bcd029c Author: Jerone Young Date: Mon Nov 19 17:06:34 2007 -0600 KVM: Portability: Move structure lapic_state to This patch moves structure lapic_state from include/linux/kvm.h to include/asm-x86/kvm.h Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit 93f93de2ff85e2fd20b2223415827499e5d5a05a Author: Jerone Young Date: Mon Nov 19 17:06:33 2007 -0600 KVM: Portability: Move kvm_regs to This patch moves structure kvm_regs to include/asm-x86/kvm.h. Each architecture will need to create there own version of this structure. Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit 9470242e09e9bc4cab3b516dc2d46632b62446ae Author: Jerone Young Date: Mon Nov 19 17:06:32 2007 -0600 KVM: Portability: Move x86 pic strutctures This patch moves structures: kvm_pic_state kvm_ioapic_state to inclue/asm-x86/kvm.h. Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit 12e8f8d9a762f055ef4a8a58ebf4a2d68b1c9db6 Author: Jerone Young Date: Mon Nov 19 17:06:31 2007 -0600 KVM: Portability: Move kvm_memory_alias to asm/kvm.h This patch moves sturct kvm_memory_alias from include/linux/kvm.h to include/asm-x86/kvm.h. Also have include/linux/kvm.h include include/asm/kvm.h. Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit d06cde663eaef859bafeb4cb63cf78bc0cd2fe87 Author: Hollis Blanchard Date: Mon Nov 19 14:04:44 2007 -0600 KVM: Move misplaced comment Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit c477869e9394cde6806adf277f1bcfbf99a853b9 Author: Hollis Blanchard Date: Mon Nov 19 14:04:43 2007 -0600 KVM: Correct consistent typo: "destory" -> "destroy" Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit ff24fe8b7bb10d101bc0f919ac7363ff1151cf22 Author: Hollis Blanchard Date: Mon Nov 19 14:04:45 2007 -0600 KVM: Remove unused "rmap_overflow" variable Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 1dd5587d4d986704098e1b3e5fcb3b6c4fa214b9 Author: Avi Kivity Date: Mon Nov 19 18:44:15 2007 +0200 KVM: MMU: Remove unused variable Signed-off-by: Avi Kivity commit c246677e2d16f91d82b2eaab1a0da04853c68d9e Author: Avi Kivity Date: Mon Nov 19 18:28:09 2007 +0200 KVM: Add missing #include Needed for empty_zero_page. Signed-off-by: Avi Kivity commit 3075271017054557698bd40c72759cf2fdfbdc5d Author: Izik Eidus Date: Mon Nov 19 11:16:57 2007 +0200 KVM: Simplify kvm_clear_guest_page() Use kvm_write_guest_page() with empty_zero_page, instead of doing kmap and memset. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit adc877cd04966fe7fa71b6e8204594c231db4877 Author: Izik Eidus Date: Mon Nov 19 11:28:19 2007 +0200 KVM: MMU: Change guest pte access to kvm_{read,write}_guest() Things are simpler and more regular this way. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 28d8a8f15da3f54aec537ccb08330d9afac915f4 Author: Jan Kiszka Date: Mon Nov 19 10:21:45 2007 +0100 KVM: VMX: Force seg.base == (seg.sel << 4) in real mode Ensure that segment.base == segment.selector << 4 when entering the real mode on Intel so that the CPU will not bark at us. This fixes some old protected mode demo from http://www.x86.org/articles/pmbasics/tspec_a1_doc.htm. Signed-off-by: Jan Kiszka Signed-off-by: Avi Kivity commit afe6fba05620eacbebd533ef88903d27db5d4731 Author: Zhang Xiantao Date: Mon Nov 19 15:24:28 2007 +0800 KVM: Portability: Move some function declarations to x86.h Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 1765bb911a30b3ca2b186797b467ef1d921eb7a7 Author: Zhang Xiantao Date: Mon Nov 19 15:08:31 2007 +0800 KVM: Move some static inline functions out from kvm.h into x86.h Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 611a09879f95ba17968dc7072db40ae29b58831a Author: Zhang Xiantao Date: Mon Nov 19 14:56:05 2007 +0800 KVM: Portability: Move vcpu regs enumeration definition to x86.h Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 3a1fa229b664bc5c157e19bc7ae0dab9fc2ddb98 Author: Zhang Xiantao Date: Mon Nov 19 14:40:47 2007 +0800 KVM: Portability: Move struct kvm_x86_ops definition to x86.h Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 36c726e56c7bc40667ac5dcd21e517222da2b90d Author: Zhang Xiantao Date: Mon Nov 19 14:33:37 2007 +0800 KVM: Portability: Move some macro definitions from kvm.h to x86.h Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 843c367908fe8e9d6b9d1c1625e710537ce028f7 Author: Zhang Xiantao Date: Sun Nov 18 20:43:21 2007 +0800 KVM: Portability: MMU initialization and teardown split Move out kvm_mmu init and exit functionality from kvm_main.c Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit b2dafaa9527ae6845c8bb2d85eee79dd759d5c42 Author: Zhang Xiantao Date: Sun Nov 18 20:29:43 2007 +0800 KVM: Portability: Move kvm_vcpu_ioctl_get_dirty_log to arch-specific file Meanwhile keep the interface in common, and leave as more logic in common as possible. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 2171fec7f9df6cbd0f7793cf89d9ee3848ad6cd9 Author: Amit Shah Date: Thu Nov 15 18:38:46 2007 +0200 KVM: Make unloading of FPU state when putting vcpu arch-independent Instead of having each architecture do it individually, we do this in the arch-independent code (just x86 as of now). [avi: add svm to the mix, which was added to mainline during the 2.6.24-rc process] Signed-off-by: Amit Shah Signed-off-by: Avi Kivity commit 9eb6db84384c50eba85eea360e921b314669b211 Author: Avi Kivity Date: Sun Nov 18 16:37:07 2007 +0200 KVM: MMU: Add some mmu statistics Signed-off-by: Avi Kivity commit 94551089d411b2ba50293210ef785ddbd8b14026 Author: Avi Kivity Date: Sun Nov 18 16:24:12 2007 +0200 KVM: Extend stats support for VM stats This is in addition to the current virtual cpu statistics. Signed-off-by: Avi Kivity commit 4f749da9e68b5ade494d68597ecf045c73cb4ec0 Author: Avi Kivity Date: Sun Nov 18 15:17:51 2007 +0200 KVM: Add instruction emulation statistics commit 26c36eca453443016f70ea85af46c6109eeea400 Author: Avi Kivity Date: Sun Nov 18 13:54:33 2007 +0200 KVM: Add fpu_reload counter Measure the number of times we switch the fpu state. Signed-off-by: Avi Kivity commit 8355eb8e0bd02de51f4d36fc4f3e4df1572584e3 Author: Avi Kivity Date: Sun Nov 18 13:50:24 2007 +0200 KVM: Replace 'light_exits' stat with 'host_state_reload' This is a little more accurate (since it counts actual reloads, not potential reloads), and reverses the sense of the statistic to measure a bad event like most of the other stats (e.g. we want to minimize all counters). Signed-off-by: Avi Kivity commit 4289f27f40412271daf71ae62be478b535a6836d Author: Zhang Xiantao Date: Sun Nov 18 18:43:45 2007 +0800 KVM: Portability: Add two hooks to handle kvm_create and destroy vm Add two arch hooks to handle kvm_create_vm and kvm destroy_vm. Now, just put io_bus init and destory in common. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit c4e513d12d14cf64612211f8d06af996cc5019a7 Author: Zhang Xiantao Date: Fri Nov 16 14:38:21 2007 +0800 KVM: Remove __init attributes for kvm_init_debug and kvm_init_msr_list Since their callers are not declared with __init. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit cee77328482e5770d6df48212ecaece4d1750060 Author: Joe Perches Date: Mon Nov 12 20:06:51 2007 -0800 KVM: Remove ptr comparisons to 0 Fix sparse warnings "Using plain integer as NULL pointer" Signed-off-by: Joe Perches Signed-off-by: Avi Kivity commit 822e8a654b3ffd19b7bdcee3cb86498ac49e73f7 Author: Zhang Xiantao Date: Fri Nov 16 13:05:55 2007 +0800 KVM: Portability: Make kvm_vcpu_ioctl_translate arch dependent Move kvm_vcpu_ioctl_translate to arch, since mmu would be put under arch. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit da5b7f9653452b29c1389ed7c291422cd37c3312 Author: Avi Kivity Date: Thu Nov 15 18:06:18 2007 +0200 KVM: VMX: Consolidate register usage in vmx_vcpu_run() We pass vcpu, vmx->fail, and vmx->launched to assembly code, but all three are fields within vmx. Consolidate by only passing in vmx and offsets for the rest. Signed-off-by: Avi Kivity commit e1392d7931e0092dd1a03a108ca77c63b6083ffb Author: Zhang Xiantao Date: Thu Nov 15 23:07:47 2007 +0800 KVM: Portability: move KVM_CHECK_EXTENSION Make KVM_CHECK_EXTENSION code into a function, all archs can define its capability independently. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 7830eebf97a949620a0eb85a6d2d75eacc7e5df8 Author: Sheng Yang Date: Thu Nov 15 14:52:28 2007 +0800 KVM: x86 emulator: modify 'lods', and 'stos' not to depend on CR2 The current 'lods' and 'stos' is depending on incoming CR2 rather than decode memory address from registers. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit fee712e28103841adb5d4e3884f39f8859ec3005 Author: Zhang Xiantao Date: Wed Nov 14 20:40:21 2007 +0800 KVM: Portability: Move x86 specific code from kvm_init() to kvm_arch() Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 97d05f12b4c2949210d671bab3168ed0055131ff Author: Zhang Xiantao Date: Wed Nov 14 20:39:31 2007 +0800 KVM: Portability: Combine kvm_init and kvm_init_x86 Will be called once arch module registers itself. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 3f9df31d3108ba0ffc587f163e66abb9ad8eb61a Author: Zhang Xiantao Date: Wed Nov 14 20:38:21 2007 +0800 KVM: Portability: Add vcpu and hardware management arch hooks Add the following hooks: void decache_vcpus_on_cpu(int cpu); int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu); void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu); void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu); void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu); void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu); struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm, unsigned int id); void kvm_arch_vcpu_destory(struct kvm_vcpu *vcpu); int kvm_arch_vcpu_reset(struct kvm_vcpu *vcpu); void kvm_arch_hardware_enable(void *garbage); void kvm_arch_hardware_disable(void *garbage); int kvm_arch_hardware_setup(void); void kvm_arch_hardware_unsetup(void); void kvm_arch_check_processor_compat(void *rtn); Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 42ebda70312ee76ad23b90bbf02ddb480e511f63 Author: Zhang Xiantao Date: Wed Nov 14 20:09:30 2007 +0800 KVM: Portability: Move kvm_x86_ops to x86.c Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 1698b42863745205c29fc17dcc685a30dcd46fa0 Author: Zhang Xiantao Date: Wed Nov 14 20:08:51 2007 +0800 KVM: Portability: Move some includes to x86.c Move some includes to x86.c from kvm_main.c, since the related functions have been moved to x86.c Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit e76e5514079fb399197599c1b00dc7d5fa9fd9bf Author: Izik Eidus Date: Sun Nov 11 22:10:22 2007 +0200 KVM: Change kvm_{read,write}_guest() to use copy_{from,to}_user() This changes kvm_write_guest_page/kvm_read_guest_page to use copy_to_user/read_from_user, as a result we get better speed and better dirty bit tracking. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 2de9dba3097ebff65cc25496c32c0653b18dcf83 Author: Izik Eidus Date: Sun Nov 11 22:05:04 2007 +0200 KVM: introduce gfn_to_hva() Convert a guest frame number to the corresponding host virtual address. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 0893321f0d8ab0e87b71b13c07e50cba1f423464 Author: Izik Eidus Date: Sun Nov 11 22:02:22 2007 +0200 KVM: add kvm_is_error_hva() Check for the "error hva", an address outside the user address space that signals a bad gfn. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit b420a3a903f258a993bc5b33bc54a49126a8dbbf Author: Avi Kivity Date: Sun Nov 11 18:37:32 2007 +0200 KVM: Simplify CPU_TASKS_FROZEN cpu notifier handling Signed-off-by: Avi Kivity commit e53135d7f031d90c9d470837937984b0cd8b7989 Author: Izik Eidus Date: Sun Nov 11 14:48:17 2007 +0200 KVM: x86 emulator: remove 8 bytes operands emulator for call near instruction it is removed beacuse it isnt supported on a real host Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit c3ea2d8855148888f26bbfd71b530eb7396f2645 Author: Eddie Dong Date: Sun Nov 11 12:28:35 2007 +0200 KVM: VMX: wbinvd exiting Add wbinvd VM Exit support to prepare for pass-through device cache emulation and also enhance real time responsiveness. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 5dd65ebd34d0dcfe5db11ef0f43c262a9fc2a625 Author: Eddie Dong Date: Sun Nov 11 12:27:20 2007 +0200 KVM: VMX: Comment VMX primary/secondary exec ctl definitions Add comments for secondary/primary Processor-Based VM-execution controls. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 65987f623c17e58096470092b800db660691c27e Author: Avi Kivity Date: Thu Nov 22 11:42:59 2007 +0200 KVM: Fix faults during injection of real-mode interrupts If vmx fails to inject a real-mode interrupt while fetching the interrupt redirection table, it fails to record this in the vectoring information field. So we detect this condition and do it ourselves. Signed-off-by: Avi Kivity commit 313589267465b2521fcb9c72491c10b161f9b6c0 Author: Avi Kivity Date: Thu Nov 22 11:30:47 2007 +0200 KVM: VMX: Read & store IDT_VECTORING_INFO_FIELD We'll want to write to it in order to fix real-mode irq injection problems, but it is a read-only field. Storing it in a variable solves that issue. Signed-off-by: Avi Kivity commit 69d7c705a0c9bef0b21e2899ba86160804a900f2 Author: Avi Kivity Date: Thu Nov 8 18:19:20 2007 +0200 KVM: VMX: Use vmx to inject real-mode interrupts Instead of injecting real-mode interrupts by writing the interrupt frame into guest memory, abuse vmx by injecting a software interrupt. We need to pretend the software interrupt instruction had a length > 0, so we have to adjust rip backward. This lets us not to mess with writing guest memory, which is complex and also sleeps. Signed-off-by: Avi Kivity commit a7acc3f15961003585476e56c97aac12931db7ba Author: Dor Laor Date: Wed Nov 7 16:20:06 2007 +0200 KVM: Add make_page_dirty() to kvm_clear_guest_page() Every write access to guest pages should be tracked. Signed-off-by: Dor Laor Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit e485187cb758cbe6c4172ac1c6cf1a02033640c2 Author: Hollis Blanchard Date: Thu Nov 1 14:16:10 2007 -0500 KVM: Portability: Move x86 vcpu ioctl handlers to x86.c Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit bd80a35a904c82d5e3eb85483c59a4fcebcc0345 Author: Hollis Blanchard Date: Wed Oct 31 17:24:25 2007 -0500 KVM: Portability: Move x86 FPU handling to x86.c Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 96e9b0f7b0edf08c5b8b0de47d48826032677535 Author: Hollis Blanchard Date: Wed Oct 31 17:24:24 2007 -0500 KVM: Portability: Move x86 instruction emulation code to x86.c Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 291efa8f29b50660763daf712408289100a7f963 Author: Hollis Blanchard Date: Wed Oct 31 17:24:23 2007 -0500 KVM: Portability: Make exported debugfs data architecture-specific Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit b44df9ec4796d569bc8edf47619bdcfccf675ebf Author: Avi Kivity Date: Thu Nov 1 06:31:28 2007 +0200 KVM: x86 emulator: Hoist modrm and abs decoding into separate functions Signed-off-by: Avi Kivity commit 99bcd32e7a046d42dab4a3bed03fc46f167cf0b6 Author: Uri Lublin Date: Tue Oct 30 10:42:09 2007 +0200 KVM: Make mark_page_dirty() work for aliased pages too. Recommended by Izik Eidus. Signed-off-by: Uri Lublin Signed-off-by: Avi Kivity commit 498a5bf184d75d7aad2af8e2f18ef57640980b15 Author: Avi Kivity Date: Wed Oct 31 11:21:06 2007 +0200 KVM: Simplify decode_register_operand() calling convention Now that rex_prefix is part of the decode cache, there is no need to pass it along. Signed-off-by: Avi Kivity commit d24c2abd708a5e354197fc40f6562328ec0171e3 Author: Avi Kivity Date: Wed Oct 31 11:15:56 2007 +0200 KVM: x86 emulator: centralize decoding of one-byte register access insns Instructions like 'inc reg' that have the register operand encoded in the opcode are currently specially decoded. Extend decode_register_operand() to handle that case, indicated by having DstReg or SrcReg without ModRM. Signed-off-by: Avi Kivity commit 90128492364c458040934c1e0a4e69d986b8ce17 Author: Avi Kivity Date: Wed Oct 31 10:27:04 2007 +0200 KVM: x86 emulator: Extract the common code of SrcReg and DstReg Share the common parts of SrcReg and DstReg decoding. Signed-off-by: Avi Kivity commit f065eb1c86c8f66252fb83e938c909301f107b02 Author: Carsten Otte Date: Tue Oct 30 18:44:25 2007 +0100 KVM: Portability: Move pio emulation functions to x86.c This patch moves implementation of the following functions from kvm_main.c to x86.c: free_pio_guest_pages, vcpu_find_pio_dev, pio_copy_data, complete_pio, kernel_pio, pio_string_write, kvm_emulate_pio, kvm_emulate_pio_string The function inject_gp, which was duplicated by yesterday's patch series, is removed from kvm_main.c now because it is not needed anymore. Signed-off-by: Carsten Otte Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit f2b682cefecc497e101372386a98705567362acc Author: Carsten Otte Date: Tue Oct 30 18:44:21 2007 +0100 KVM: Portability: Move x86 emulation and mmio device hook to x86.c This patch moves the following functions to from kvm_main.c to x86.c: emulator_read/write_std, vcpu_find_pervcpu_dev, vcpu_find_mmio_dev, emulator_read/write_emulated, emulator_write_phys, emulator_write_emulated_onepage, emulator_cmpxchg_emulated, get_setment_base, emulate_invlpg, emulate_clts, emulator_get/set_dr, kvm_report_emulation_failure, emulate_instruction The following data type is moved to x86.c: struct x86_emulate_ops emulate_ops Signed-off-by: Carsten Otte Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 49153e58bf8f07d6a9c8766f2da8c91805f83f82 Author: Carsten Otte Date: Tue Oct 30 18:44:17 2007 +0100 KVM: Portability: Move kvm_get/set_msr[_common] to x86.c This patch moves the implementation of the functions of kvm_get/set_msr, kvm_get/set_msr_common, and set_efer from kvm_main.c to x86.c. The definition of EFER_RESERVED_BITS is moved too. Signed-off-by: Carsten Otte Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit a5ade20c8056c92db199fc6515be7edb4fa7e63e Author: Anthony Liguori Date: Mon Oct 29 15:15:20 2007 -0500 KVM: Fix gfn_to_page() acquiring mmap_sem twice KVM's nopage handler calls gfn_to_page() which acquires the mmap_sem when calling out to get_user_pages(). nopage handlers are already invoked with the mmap_sem held though. Introduce a __gfn_to_page() for use by the nopage handler which requires the lock to already be held. This was noticed by tglx. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit 451287231375e512574477693ad310c981e7d922 Author: Sheng Yang Date: Mon Oct 29 09:40:42 2007 +0800 KVM: VMX: Enable memory mapped TPR shadow (FlexPriority) This patch based on CR8/TPR patch, and enable the TPR shadow (FlexPriority) for 32bit Windows. Since TPR is accessed very frequently by 32bit Windows, especially SMP guest, with FlexPriority enabled, we saw significant performance gain. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 8348f5ecbfb3c8f5688a8c5cf04f120fe5ef4f68 Author: Carsten Otte Date: Mon Oct 29 16:09:35 2007 +0100 KVM: Portability: Move control register helper functions to x86.c This patch moves the definitions of CR0_RESERVED_BITS, CR4_RESERVED_BITS, and CR8_RESERVED_BITS along with the following functions from kvm_main.c to x86.c: set_cr0(), set_cr3(), set_cr4(), set_cr8(), get_cr8(), lmsw(), load_pdptrs() The static function wrapper inject_gp is duplicated in kvm_main.c and x86.c for now, the version in kvm_main.c should disappear once the last user of it is gone too. The function load_pdptrs is no longer static, and now defined in x86.h for the time being, until the last user of it is gone from kvm_main.c. Signed-off-by: Carsten Otte Reviewed-by: Christian Borntraeger Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 210301268dc7ce8aae9898f00a6cb498c2535ceb Author: Carsten Otte Date: Mon Oct 29 16:09:10 2007 +0100 KVM: Portability: move get/set_apic_base to x86.c This patch moves the implementation of get_apic_base and set_apic_base from kvm_main.c to x86.c Signed-off-by: Carsten Otte Reviewed-by: Christian Borntraeger Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit eec9635aa34d88c986f37613408bb25b0da39d67 Author: Carsten Otte Date: Mon Oct 29 16:08:51 2007 +0100 KVM: Portability: Move memory segmentation to x86.c This patch moves the definition of segment_descriptor_64 for AMD64 and EM64T from kvm_main.c to segment_descriptor.h. It also adds a proper #ifndef...#define...#endif around that header file. The implementation of segment_base is moved from kvm_main.c to x86.c. Signed-off-by: Carsten Otte Reviewed-by: Christian Borntraeger Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 68486294e54c8c3ea3cc20818a2ffc258ae79064 Author: Carsten Otte Date: Mon Oct 29 16:08:35 2007 +0100 KVM: Portability: Split kvm_vm_ioctl v3 This patch splits kvm_vm_ioctl into archtecture independent parts, and x86 specific parts which go to kvm_arch_vcpu_ioctl in x86.c. The patch is unchanged since last submission. Common ioctls for all architectures are: KVM_CREATE_VCPU, KVM_GET_DIRTY_LOG, KVM_SET_USER_MEMORY_REGION x86 specific ioctls are: KVM_SET_MEMORY_REGION, KVM_GET/SET_NR_MMU_PAGES, KVM_SET_MEMORY_ALIAS, KVM_CREATE_IRQCHIP, KVM_CREATE_IRQ_LINE, KVM_GET/SET_IRQCHIP KVM_SET_TSS_ADDR Signed-off-by: Carsten Otte Reviewed-by: Christian Borntraeger Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 7e34e4d66cbbc04cc7a549da826e936860f9dcb2 Author: Avi Kivity Date: Sun Oct 28 18:52:05 2007 +0200 KVM: MMU: Topup the mmu memory preallocation caches before emulating an insn Emulation may cause a shadow pte to be instantiated, which requires memory resources. Make sure the caches are filled to avoid an oops. Signed-off-by: Avi Kivity commit 415ce32aab70971a6ec794605012a0bd451d03af Author: Avi Kivity Date: Sun Oct 28 18:48:59 2007 +0200 KVM: Move page fault processing to common code The code that dispatches the page fault and emulates if we failed to map is duplicated across vmx and svm. Merge it to simplify further bugfixing. Signed-off-by: Avi Kivity commit e7facf3d1ac177110e431c7021111d7c10acf5e2 Author: Avi Kivity Date: Sun Oct 28 16:34:25 2007 +0200 KVM: x86 emulator: don't depend on cr2 for mov abs emulation The 'mov abs' instruction family (opcodes 0xa0 - 0xa3) still depends on cr2 provided by the page fault handler. This is wrong for several reasons: - if an instruction accessed misaligned data that crosses a page boundary, and if the fault happened on the second page, cr2 will point at the second page, not the data itself. - if we're emulating in real mode, or due to a FlexPriority exit, there is no cr2 generated. So, this change adds decoding for this instruction form and drops reliance on cr2. Signed-off-by: Avi Kivity commit 39c06a59bf7ce412179c8d2ee681f7e6eae34c4c Author: Laurent Vivier Date: Thu Oct 25 14:18:54 2007 +0200 KVM: SVM: Let gcc to choose which registers to save (i386) This patch lets GCC to determine which registers to save when we switch to/from a VCPU in the case of AMD i386 * Original code saves following registers: ebx, ecx, edx, esi, edi, ebp * Patched code: - informs GCC that we modify following registers using the clobber description: ebx, ecx, edx, esi, edi - rbp is saved (pop/push) because GCC seems to ignore its use in the clobber description. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 75e7957bcd1ff7d86878f6104662d7aaeb1895f4 Author: Laurent Vivier Date: Thu Oct 25 14:18:53 2007 +0200 KVM: SVM: Let gcc to choose which registers to save (x86_64) This patch lets GCC to determine which registers to save when we switch to/from a VCPU in the case of AMD x86_64. * Original code saves following registers: rbx, rcx, rdx, rsi, rdi, rbp, r8, r9, r10, r11, r12, r13, r14, r15 * Patched code: - informs GCC that we modify following registers using the clobber description: rbx, rcx, rdx, rsi, rdi r8, r9, r10, r11, r12, r13, r14, r15 - rbp is saved (pop/push) because GCC seems to ignore its use in the clobber description. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 795533755652ddd1d60cd1a451337116a956539b Author: Laurent Vivier Date: Thu Oct 25 14:18:55 2007 +0200 KVM: VMX: Let gcc to choose which registers to save (i386) This patch lets GCC to determine which registers to save when we switch to/from a VCPU in the case of intel i386. * Original code saves following registers: eax, ebx, ecx, edx, edi, esi, ebp (using popa) * Patched code: - informs GCC that we modify following registers using the clobber description: ebx, edi, rsi - doesn't save eax because it is an output operand (vmx->fail) - cannot put ecx in clobber description because it is an input operand, but as we modify it and we want to keep its value (vcpu), we must save it (pop/push) - ebp is saved (pop/push) because GCC seems to ignore its use the clobber description. - edx is saved (pop/push) because it is reserved by GCC (REGPARM) and cannot be put in the clobber description. - line "mov (%%esp), %3 \n\t" has been removed because %3 is ecx and ecx is restored just after. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 41141bde788afe7eb407e4ac46dee13f0bc30cac Author: Laurent Vivier Date: Thu Oct 25 14:18:52 2007 +0200 KVM: VMX: Let gcc to choose which registers to save (x86_64) This patch lets GCC to determine which registers to save when we switch to/from a VCPU in the case of intel x86_64. * Original code saves following registers: rax, rbx, rcx, rdx, rsi, rdi, rbp, r8, r9, r10, r11, r12, r13, r14, r15 * Patched code: - informs GCC that we modify following registers using the clobber description: rbx, rdi, rsi, r8, r9, r10, r11, r12, r13, r14, r15 - doesn't save rax because it is an output operand (vmx->fail) - cannot put rcx in clobber description because it is an input operand, but as we modify it and we want to keep its value (vcpu), we must save it (pop/push) - rbp is saved (pop/push) because GCC seems to ignore its use in the clobber description. - rdx is saved (pop/push) because it is reserved by GCC (REGPARM) and cannot be put in the clobber description. - line "mov (%%rsp), %3 \n\t" has been removed because %3 is rcx and rcx is restored just after. - line ASM_VMX_VMWRITE_RSP_RDX() is moved out of the ifdef/else/endif Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 430dbe8a56da6b45d7ceb03ca71cc474a0620c4f Author: Izik Eidus Date: Thu Oct 25 00:29:55 2007 +0200 KVM: Add ioctl to tss address from userspace, Currently kvm has a wart in that it requires three extra pages for use as a tss when emulating real mode on Intel. This patch moves the allocation internally, only requiring userspace to tell us where in the physical address space we can place the tss. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 6fb1e0b2a1e1a2b5b9729b187b13c870d58bf4b6 Author: Izik Eidus Date: Wed Oct 24 23:57:46 2007 +0200 KVM: Add kernel-internal memory slots Reserve a few memory slots for kernel internal use. This is good for case you have to register memory region and you want to be sure it was not registered from userspace, and for case you want to register a memory region that won't be seen from userspace. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 733f6415f3975478ed8fa383d89c7ae86b938cde Author: Izik Eidus Date: Wed Oct 24 23:52:57 2007 +0200 KVM: Export memory slot allocation mechanism Remove kvm memory slot allocation mechanism from the ioctl and put it to exported function. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit cb1a650958d37b941f6517adaa6e600b82978f91 Author: Izik Eidus Date: Thu Oct 25 11:54:04 2007 +0200 KVM: Unmap kernel-allocated memory on slot destruction kvm_vm_ioctl_set_memory_region() is able to remove memory in addition to adding it. Therefore when using kernel swapping support for old userspaces, we need to munmap the memory if the user request to remove it Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 11fbdcc2357e502f1db984398580f3e5f7b22ce1 Author: Christian Borntraeger Date: Thu Oct 11 15:34:17 2007 +0200 KVM: Per-architecture hypercall definitions Currently kvm provides hypercalls only for x86* architectures. To provide hypercall infrastructure for other kvm architectures I split kvm_para.h into a generic header file and architecture specific definitions. Signed-off-by: Christian Borntraeger Signed-off-by: Avi Kivity commit 882b84e0e7d033fdaf553bc5cdf535dfcd99ec18 Author: Eddie Dong Date: Wed Oct 10 12:15:54 2007 +0200 KVM: Split IOAPIC reset function and export for kernel RESET Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 221aabc8a9ddc0d6b1c5f35f556410ee5b4549c3 Author: Eddie Dong Date: Wed Oct 10 12:14:25 2007 +0200 KVM: Export PIC reset for kernel device reset Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 51a29f6879429e999ca7e40b4ee35c264102bcc6 Author: Avi Kivity Date: Sun Oct 21 11:03:36 2007 +0200 KVM: Add a might_sleep() annotation to gfn_to_page() This will help trap accesses to guest memory in atomic context. Signed-off-by: Avi Kivity commit 38376823b92c1496c851464abc751a2d12ff5192 Author: Avi Kivity Date: Sun Oct 21 11:00:39 2007 +0200 KVM: Move vmx_vcpu_reset() out of vmx_vcpu_setup() Split guest reset code out of vmx_vcpu_setup(). Besides being cleaner, this moves the realmode tss setup (which can sleep) outside vmx_vcpu_setup() (which is executed with preemption enabled). [izik: remove unused variable] Signed-off-by: Avi Kivity commit 130452e6577d52fed09bbc3e0fd23d4e01dc6145 Author: Zhang Xiantao Date: Sat Oct 20 15:34:38 2007 +0800 KVM: Portability: Split kvm_vcpu into arch dependent and independent parts (part 1) First step to split kvm_vcpu. Currently, we just use an macro to define the common fields in kvm_vcpu for all archs, and all archs need to define its own kvm_vcpu struct. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit b25d84aa1de2a0259e54415faef1c5bdef15cec3 Author: Anthony Liguori Date: Thu Oct 18 09:59:34 2007 -0500 KVM: Allocate userspace memory for older userspace Allocate a userspace buffer for older userspaces. Also eliminate phys_mem buffer. The memset() in kvmctl really kills initial memory usage but swapping works even with old userspaces. A side effect is that maximum guest side is reduced for older userspace on i386. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit e6a9547518fdab65640a9f77bd285472dc26beb9 Author: Christian Borntraeger Date: Thu Oct 18 14:39:10 2007 +0200 KVM: Use virtual cpu accounting if available for guest times. ppc and s390 offer the possibility to track process times precisely by looking at cpu timer on every context switch, irq, softirq etc. We can use that infrastructure as well for guest time accounting. We need to account the used time before we change the state. This patch adds a call to account_system_vtime to kvm_guest_enter and kvm_guest exit. If CONFIG_VIRT_CPU_ACCOUNTING is not set, account_system_vtime is defined in hardirq.h as an empty function, which means this patch does not change the behaviour on other platforms. I compile tested this patch on x86 and function tested the patch on s390. Signed-off-by: Christian Borntraeger Signed-off-by: Avi Kivity commit e0534e37e90b89331e0eb03cd4f3fa7a4164dcea Author: Izik Eidus Date: Thu Oct 18 11:09:33 2007 +0200 KVM: MMU: Partial swapping of guest memory This allows guest memory to be swapped. Pages which are currently mapped via shadow page tables are pinned into memory, but all other pages can be freely swapped. The patch makes gfn_to_page() elevate the page's reference count, and introduces kvm_release_page() that pairs with it. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 91775c12b13346db968b990b5c38dca83ebbd0c1 Author: Izik Eidus Date: Wed Oct 17 19:17:48 2007 +0200 KVM: MMU: Make gfn_to_page() always safe In case the page is not present in the guest memory map, return a dummy page the guest can scribble on. This simplifies error checking in its users. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit c28b628fbe789e3cf279c53157eca599b3308a78 Author: Izik Eidus Date: Tue Oct 16 14:43:46 2007 +0200 KVM: MMU: Keep a reverse mapping of non-writable translations The current kvm mmu only reverse maps writable translation. This is used to write-protect a page in case it becomes a pagetable. But with swapping support, we need a reverse mapping of read-only pages as well: when we evict a page, we need to remove any mapping to it, whether writable or not. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 13e17d387b510ee4d2ae7220c36d46a53d04b99d Author: Izik Eidus Date: Tue Oct 16 14:42:30 2007 +0200 KVM: MMU: Add rmap_next(), a helper for walking kvm rmaps Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 6565476fe6a56189c6f7144b7be915be3579292a Author: Nitin A Kamble Date: Tue Oct 16 18:23:27 2007 -0700 KVM: x86 emulator: cmc, clc, cli, sti Instruction: cmc, clc, cli, sti opcodes: 0xf5, 0xf8, 0xfa, 0xfb respectively. [avi: fix reference to EFLG_IF which is not defined anywhere] Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit a30fcdc59c5a93457338fe4de27108543389106d Author: Avi Kivity Date: Wed Oct 17 12:18:47 2007 +0200 KVM: MMU: Simplify page table walker Simplify the walker level loop not to carry so much information from one loop to the next. In addition to being complex, this made kmap_atomic() critical sections difficult to manage. As a result of this change, kmap_atomic() sections are limited to actually touching the guest pte, which allows the other functions called from the walker to do sleepy operations. This will happen when we enable swapping. Signed-off-by: Avi Kivity commit cf386590baf3111a17f5a64e10328dbe8a60bcf7 Author: Nitin A Kamble Date: Fri Oct 12 17:40:33 2007 -0700 KVM: x86 emulator: Implement emulation of instruction: inc & dec Instructions: inc r16/r32 (opcode 0x40-0x47) dec r16/r32 (opcode 0x48-0x4f) Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit bba43153582493fef707335cf1de525d12dbeeec Author: Avi Kivity Date: Tue Oct 16 17:22:08 2007 +0200 KVM: Rename KVM_TLB_FLUSH to KVM_REQ_TLB_FLUSH We now have a new namespace, KVM_REQ_*, for bits in vcpu->requests. Signed-off-by: Avi Kivity commit daf24e56a39ce57002da560f6144065ce7c18450 Author: Avi Kivity Date: Tue Oct 16 16:23:22 2007 +0200 KVM: Move apic timer interrupt backlog processing to common code Beside the obvious goodness of making code more common, this prevents a livelock with the next patch which moves interrupt injection out of the critical section. Signed-off-by: Avi Kivity commit 1ac4f23de15bdcc8375a2ed67f54d63322746123 Author: Laurent Vivier Date: Fri Oct 12 11:01:59 2007 +0200 KVM: Add some \n in ioapic_debug() Add new-line at end of debug strings. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 32bc111f729a49d67f425568f1ac573b4577aa45 Author: Qing He Date: Mon Sep 24 17:39:41 2007 +0800 KVM: apic round robin cleanup If no apic is enabled in the bitmap of an interrupt delivery with delivery mode of lowest priority, a warning should be reported rather than select a fallback vcpu Signed-off-by: Qing He Signed-off-by: Eddie (Yaozu) Dong Signed-off-by: Avi Kivity commit b2bd95573b0efa3ddbeb41d52fe5ddc140529324 Author: Carsten Otte Date: Thu Oct 11 19:16:52 2007 +0200 KVM: Portability: split kvm_vcpu_ioctl This patch splits kvm_vcpu_ioctl into archtecture independent parts, and x86 specific parts which go to kvm_arch_vcpu_ioctl in x86.c. Common ioctls for all architectures are: KVM_RUN, KVM_GET/SET_(S-)REGS, KVM_TRANSLATE, KVM_INTERRUPT, KVM_DEBUG_GUEST, KVM_SET_SIGNAL_MASK, KVM_GET/SET_FPU Note that some PPC chips don't have an FPU, so we might need an #ifdef around KVM_GET/SET_FPU one day. x86 specific ioctls are: KVM_GET/SET_LAPIC, KVM_SET_CPUID, KVM_GET/SET_MSRS An interresting aspect is vcpu_load/vcpu_put. We now have a common vcpu_load/put which does the preemption stuff, and an architecture specific kvm_arch_vcpu_load/put. In the x86 case, this one calls the vmx/svm function defined in kvm_x86_ops. Signed-off-by: Carsten Otte Reviewed-by: Christian Borntraeger Reviewed-by: Christian Ehrhardt Signed-off-by: Avi Kivity commit 73b3b30fe93fd5923c101311a79e18404bad7e8c Author: Avi Kivity Date: Thu Oct 11 15:30:21 2007 +0200 KVM: MMU: When updating the dirty bit, inform the mmu about it Since the mmu uses different shadow pages for dirty large pages and clean large pages, this allows the mmu to drop ptes that are now invalid. Signed-off-by: Avi Kivity commit 99920ba10b1d5bb51d273e42c58f8767e5a5bde4 Author: Avi Kivity Date: Thu Oct 11 15:22:59 2007 +0200 KVM: MMU: Move dirty bit updates to a separate function Signed-off-by: Avi Kivity commit b1e01be00832901cb70690b468f3819b76ef8473 Author: Avi Kivity Date: Thu Oct 11 15:13:49 2007 +0200 KVM: MMU: Instantiate real-mode shadows as user writable shadows This is consistent with real-mode permissions. Signed-off-by: Avi Kivity commit 85399c5e0e8d2e6c5330dfb66a16aee59978fc52 Author: Avi Kivity Date: Thu Oct 11 15:12:24 2007 +0200 KVM: MMU: Disable write access on clean large pages By forcing clean huge pages to be read-only, we have separate roles for the shadow of a clean large page and the shadow of a dirty large page. This is necessary because different ptes will be instantiated for the two cases, even for read faults. Signed-off-by: Avi Kivity commit 8635624404040a9565033bf26bb70a278e85652a Author: Avi Kivity Date: Thu Oct 11 15:08:41 2007 +0200 KVM: MMU: Fix nx access bit for huge pages We must set the bit before the shift, otherwise the wrong bit gets set. Signed-off-by: Avi Kivity commit 8e31a1895e0821947d4d1e7a533400481875eed5 Author: Avi Kivity Date: Thu Oct 11 12:32:30 2007 +0200 KVM: Move guest pte dirty bit management to the guest pagetable walker This is more consistent with the accessed bit management, and makes the dirty bit available earlier for other purposes. Signed-off-by: Avi Kivity commit c58d4160facaf0730cc548d6c18cf4250b70d960 Author: Anthony Liguori Date: Wed Oct 10 20:08:41 2007 -0500 KVM: MMU: More struct kvm_vcpu -> struct kvm cleanups This time, the biggest change is gpa_to_hpa. The translation of GPA to HPA does not depend on the VCPU state unlike GVA to GPA so there's no need to pass in the kvm_vcpu. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit 55d32ac35e946d641573a5bc0ebc99e8644897e7 Author: Anthony Liguori Date: Wed Oct 10 19:25:50 2007 -0500 KVM: MMU: Clean up MMU functions to take struct kvm when appropriate Some of the MMU functions take a struct kvm_vcpu even though they affect all VCPUs. This patch cleans up some of them to instead take a struct kvm. This makes things a bit more clear. The main thing that was confusing me was whether certain functions need to be called on all VCPUs. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit d45e5fa2beb3afbab77a1d63b335bc79ea624347 Author: Carsten Otte Date: Wed Oct 10 17:16:19 2007 +0200 KVM: Move x86 msr handling to new files x86.[ch] Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit d8c9c8421106deed341737833f7b1fe09ed8eae0 Author: Izik Eidus Date: Tue Oct 9 19:20:39 2007 +0200 KVM: Support assigning userspace memory to the guest Instead of having the kernel allocate memory to the guest, let userspace allocate it and pass the address to the kernel. This is required for s390 support, but also enables features like memory sharing and using hugetlbfs backed memory. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 42db4f37fc99106f31db4ff1bebe4602aa01d436 Author: Mike Day Date: Mon Oct 8 09:02:08 2007 -0400 KVM: CodingStyle cleanup Signed-off-by: Mike D. Day Signed-off-by: Avi Kivity commit b764fc6a6988905196cada4a2cc8b8d249a88182 Author: Rusty Russell Date: Mon Oct 8 10:55:29 2007 +1000 KVM: Remove gratuitous casts from lapic.c Since vcpu->apic is of the correct type, there's not need to cast. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit ed6929cf8066cbdf0e9576237d6665fe07b9f719 Author: Rusty Russell Date: Mon Oct 8 10:50:48 2007 +1000 KVM: Hoist kvm_create_lapic() into kvm_vcpu_init() Move kvm_create_lapic() into kvm_vcpu_init(), rather than having svm and vmx do it. And make it return the error rather than a fairly random -ENOMEM. This also solves the problem that neither svm.c nor vmx.c actually handles the error path properly. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 179576337126bd75c3937fc3ba9ecdbf40206ec1 Author: Rusty Russell Date: Mon Oct 8 10:48:30 2007 +1000 KVM: Add kvm_free_lapic() to pair with kvm_create_lapic() Instead of the asymetry of kvm_free_apic, implement kvm_free_lapic(). And guess what? I found a minor bug: we don't need to hrtimer_cancel() from kvm_main.c, because we do that in kvm_free_apic(). Also: 1) kvm_vcpu_uninit should be the reverse order from kvm_vcpu_init. 2) Don't set apic->regs_page to zero before freeing apic. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit f98bb805217e9f51356fe91e3b1a3675636b7b91 Author: Izik Eidus Date: Tue Oct 2 18:52:55 2007 +0200 KVM: Allow dynamic allocation of the mmu shadow cache size The user is now able to set how many mmu pages will be allocated to the guest. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit a3aa9d5f129928fbe12dac8d18a425cf7ddeb9b6 Author: Izik Eidus Date: Mon Oct 1 22:14:18 2007 +0200 KVM: Add general accessors to read and write guest memory Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 1721129db9eb57da3526d5c35f0a3f4751092fbb Author: Izik Eidus Date: Thu Sep 27 14:11:22 2007 +0200 KVM: Remove the usage of page->private field by rmap When kvm uses user-allocated pages in the future for the guest, we won't be able to use page->private for rmap, since page->rmap is reserved for the filesystem. So we move the rmap base pointers to the memory slot. A side effect of this is that we need to store the gfn of each gpte in the shadow pages, since the memory slot is addressed by gfn, instead of hfn like struct page. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit cdd86a3587294db88cf38087ef86d8a8bd4078b4 Author: Avi Kivity Date: Sun Sep 30 11:02:53 2007 +0200 KVM: VMX: Simplify vcpu_clear() Now that smp_call_function_single() knows how to call a function on the current cpu, there's no need to check explicitly. Signed-off-by: Avi Kivity commit 8d094b4b639ef0d1f13efc4087e2cf7eed18b829 Author: Avi Kivity Date: Sun Sep 30 10:50:12 2007 +0200 KVM: VMX: Don't clear the vmcs if the vcpu is not loaded on any processor Noted by Eddie Dong. Signed-off-by: Avi Kivity commit 9baa931ce679cd86e6f4df65eafe75a624f462e6 Author: Laurent Vivier Date: Tue Sep 25 13:36:40 2007 +0200 KVM: x86 emulator: Any legacy prefix after a REX prefix nullifies its effect This patch modifies the management of REX prefix according behavior I saw in Xen 3.1. In Xen, this modification has been introduced by Jan Beulich. http://lists.xensource.com/archives/html/xen-changelog/2007-01/msg00081.html Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 356706e476c0c070ab0136d82de40d7f2d5334b0 Author: Laurent Vivier Date: Mon Sep 24 17:00:58 2007 +0200 KVM: Purify x86_decode_insn() error case management The only valid case is on protected page access, other cases are errors. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit cefc532968a7dda45f3f77a5e9c668d4fbb522e0 Author: Qing He Date: Mon Sep 24 17:22:13 2007 +0800 KVM: x86_emulator: no writeback for bt Signed-off-by: Qing He Signed-off-by: Avi Kivity commit b2a7e15b33e396b90714542ff9da6a2e69faa1ca Author: Laurent Vivier Date: Mon Sep 24 11:10:56 2007 +0200 KVM: x86 emulator: Remove no_wb, use dst.type = OP_NONE instead Remove no_wb, use dst.type = OP_NONE instead, idea stollen from xen-3.1 Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit b9b6d84d9d4e49ce3745114cfceb08169cc0d049 Author: Laurent Vivier Date: Mon Sep 24 11:10:55 2007 +0200 KVM: x86 emulator: remove _eflags and use directly ctxt->eflags. Remove _eflags and use directly ctxt->eflags. Caching eflags is not needed as it is restored to vcpu by kvm_main.c:emulate_instruction() from ctxt->eflags only if emulation doesn't fail. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit a1d2a0157d8921eef92cbdb932619dc37b8a992b Author: Laurent Vivier Date: Mon Sep 24 11:10:54 2007 +0200 KVM: x86 emulator: split some decoding into functions for readability To improve readability, move push, writeback, and grp 1a/2/3/4/5/9 emulation parts into functions. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 076e313e2e111b5fc3aa9f1f419d6344a5d4a6c6 Author: Ryan Harper Date: Tue Sep 18 14:05:16 2007 -0500 KVM: MMU: Ignore reserved bits in cr3 in non-pae mode This patch removes the fault injected when the guest attempts to set reserved bits in cr3. X86 hardware doesn't generate a fault when setting reserved bits. The result of this patch is that vmware-server, running within a kvm guest, boots and runs memtest from an iso. Signed-off-by: Ryan Harper Signed-off-by: Avi Kivity commit 8fb4094e6c7715f7c1bf7c900cdc10c9544790db Author: Avi Kivity Date: Sun Sep 23 14:10:49 2007 +0200 KVM: MMU: Make flooding detection work when guest page faults are bypassed When we allow guest page faults to reach the guests directly, we lose the fault tracking which allows us to detect demand paging. So we provide an alternate mechnism by clearing the accessed bit when we set a pte, and checking it later to see if the guest actually used it. Signed-off-by: Avi Kivity commit 42105992041fbb1420e70440564e737d9217e5c8 Author: Avi Kivity Date: Sun Sep 16 18:58:32 2007 +0200 KVM: Allow not-present guest page faults to bypass kvm There are two classes of page faults trapped by kvm: - host page faults, where the fault is needed to allow kvm to install the shadow pte or update the guest accessed and dirty bits - guest page faults, where the guest has faulted and kvm simply injects the fault back into the guest to handle The second class, guest page faults, is pure overhead. We can eliminate some of it on vmx using the following evil trick: - when we set up a shadow page table entry, if the corresponding guest pte is not present, set up the shadow pte as not present - if the guest pte _is_ present, mark the shadow pte as present but also set one of the reserved bits in the shadow pte - tell the vmx hardware not to trap faults which have the present bit clear With this, normal page-not-present faults go directly to the guest, bypassing kvm entirely. Unfortunately, this trick only works on Intel hardware, as AMD lacks a way to discriminate among page faults based on error code. It is also a little risky since it uses reserved bits which might become unreserved in the future, so a module parameter is provided to disable it. Signed-off-by: Avi Kivity commit c7af157c7c3afb5b7ed9b90fa62f896b7348c7b4 Author: Avi Kivity Date: Wed Aug 29 03:48:05 2007 +0300 KVM: VMX: Further reduce efer reloads KVM avoids reloading the efer msr when the difference between the guest and host values consist of the long mode bits (which are switched by hardware) and the NX bit (which is emulated by the KVM MMU). This patch also allows KVM to ignore SCE (syscall enable) when the guest is running in 32-bit mode. This is because the syscall instruction is not available in 32-bit mode on Intel processors, so the SCE bit is effectively meaningless. Signed-off-by: Avi Kivity commit a7a21db3747f42f0800fc9b36f593ded764eeb31 Author: Laurent Vivier Date: Tue Sep 18 11:27:37 2007 +0200 KVM: Call x86_decode_insn() only when needed Move emulate_ctxt to kvm_vcpu to keep emulate context when we exit from kvm module. Call x86_decode_insn() only when needed. Modify x86_emulate_insn() to not modify the context if it must be re-entered. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 4b04b506860b2c93974cfecc1b42966dba9d40c9 Author: Laurent Vivier Date: Tue Sep 18 11:27:27 2007 +0200 KVM: emulate_instruction() calls now x86_decode_insn() and x86_emulate_insn() emulate_instruction() calls now x86_decode_insn() and x86_emulate_insn(). x86_emulate_insn() is x86_emulate_memop() without the decoding part. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 768d86be259b4a27d6729bfae8687299b9482b85 Author: Laurent Vivier Date: Tue Sep 18 11:27:19 2007 +0200 KVM: x86 emulator: move all decoding process to function x86_decode_insn() Split the decoding process into a new function x86_decode_insn(). Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 1186b126c4b2dd19c4cafaf2fed0cf719f70e514 Author: Laurent Vivier Date: Tue Sep 18 11:52:50 2007 +0200 KVM: x86 emulator: move all x86_emulate_memop() to a structure Move all x86_emulate_memop() common variables between decode and execute to a structure decode_cache. This will help in later separating decode and emulate. struct decode_cache { u8 twobyte; u8 b; u8 lock_prefix; u8 rep_prefix; u8 op_bytes; u8 ad_bytes; struct operand src; struct operand dst; unsigned long *override_base; unsigned int d; unsigned long regs[NR_VCPU_REGS]; unsigned long eip; /* modrm */ u8 modrm; u8 modrm_mod; u8 modrm_reg; u8 modrm_rm; u8 use_modrm_ea; unsigned long modrm_ea; unsigned long modrm_val; }; Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit b9faf10e0648cd7aef88e66d514fb25f539c752f Author: Laurent Vivier Date: Tue Sep 18 11:26:38 2007 +0200 KVM: x86 emulator: remove unused functions Remove #ifdef functions never used Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit eccc7af16b268302089c302da84f2f7d99c13164 Author: Anthony Liguori Date: Mon Sep 17 14:57:50 2007 -0500 KVM: Refactor hypercall infrastructure (v3) This patch refactors the current hypercall infrastructure to better support live migration and SMP. It eliminates the hypercall page by trapping the UD exception that would occur if you used the wrong hypercall instruction for the underlying architecture and replacing it with the right one lazily. A fall-out of this patch is that the unhandled hypercalls no longer trap to userspace. There is very little reason though to use a hypercall to communicate with userspace as PIO or MMIO can be used. There is no code in tree that uses userspace hypercalls. [avi: fix #ud injection on vmx] Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit 32b9abd5cfe444dc5ebee1d5d0a560b72f7d17fe Author: Anthony Liguori Date: Mon Sep 17 14:57:49 2007 -0500 KVM: x86 emulator: Add vmmcall/vmcall to x86_emulate (v3) Add vmmcall/vmcall to x86_emulate. Future patch will implement functionality for these instructions. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit 9bfdd08f0a65e67d0842ca35516669bec523fbe0 Author: Avi Kivity Date: Sat Dec 22 22:14:10 2007 +0200 KVM: MMU: Fix cmpxchg8b emulation on i386 (again) Signed-off-by: Avi Kivity commit 433be519ccd864b860385a03a864b4024b5d2f40 Author: Izik Eidus Date: Thu Dec 20 10:41:39 2007 +0200 KVM: Ensure pages are copied on write Fix userspace memory handling bug related to cow the previous way we called get_user_pages, was without the force flag and therefore it didnt break COW shared pages. This caused host memory corruption when host userspace fork()ed. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 6fd19d01a523fd82db3867402ed1774589bcf6c1 Author: Avi Kivity Date: Wed Dec 19 12:02:40 2007 +0200 KVM: Print data for unimplemented wrmsr This can help diagnosing what the guest is trying to do. In many cases we can get away with partial emulation of msrs. Signed-off-by: Avi Kivity commit 97dd1569ab4ba6844a08a65cd3bc4e79dc533d38 Author: Avi Kivity Date: Tue Dec 18 19:47:18 2007 +0200 KVM: MMU: Add cache miss statistic Signed-off-by: Avi Kivity commit 89075253714a299236b8debfbfdcb670a3932a1b Author: Eddie Dong Date: Tue Dec 18 06:08:27 2007 +0800 KVM: MMU: Coalesce remote tlb flushes Host side TLB flush can be merged together if multiple spte need to be write-protected. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 04e6202e30ecd89c8e48802b64397ebaa55363e9 Author: xiantao.zhang@intel.com Date: Mon Dec 17 20:27:27 2007 +0800 KVM: Expose ioapic to ia64 save/restore APIs IA64 also needs to see ioapic structure in irqchip. Signed-off-by: xiantao.zhang@intel.com Signed-off-by: Avi Kivity commit e4f8524a630ca33c3000263d29acb5c619ee94f0 Author: Zhang Xiantao Date: Mon Dec 17 14:21:40 2007 +0800 KVM: Move kvm_vcpu_kick() to x86.c Moving kvm_vcpu_kick() to x86.c. Since it should be common for all archs, put its declarations in Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit e9d06906038878357658d316b897d3105cec704e Author: Zhang Xiantao Date: Mon Dec 17 14:16:14 2007 +0800 KVM: Move ioapic code to common directory. Move ioapic code to common, since IA64 also needs it. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 8d4b72100521699e0d2c4295b7ec8fb53f3131c9 Author: Zhang Xiantao Date: Mon Dec 17 13:59:56 2007 +0800 KVM: Move irqchip declarations into new ioapic.h and lapic.h This allows reuse of ioapic in ia64. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 5ca24d96dbc31d7018bc71e355f824f25b70316e Author: Avi Kivity Date: Sun Dec 16 14:09:36 2007 +0200 KVM: Fix compile error in asm/kvm_host.h "types.h" refers to the wrong file. Signed-off-by: Avi Kivity commit 276db3794711c5aff691c75495d6a5327773271f Author: Avi Kivity Date: Sun Dec 16 11:13:16 2007 +0200 KVM: Move drivers/kvm/* to virt/kvm/ Signed-off-by: Avi Kivity commit 327f5d208b042f5228ff2d57054a32f57ab37c2c Author: Avi Kivity Date: Sun Dec 16 11:02:48 2007 +0200 KVM: Move arch dependent files to new directory arch/x86/kvm/ This paves the way for multiple architecture support. Note that while ioapic.c could potentially be shared with ia64, it is also moved. Signed-off-by: Avi Kivity commit 1ca8b98d60891eea9e5083cd40db99bb3715a918 Author: Ryan Harper Date: Thu Dec 13 10:21:10 2007 -0600 KVM: VMX: Add printk_ratelimit in vmx_intr_assist Add printk_ratelimit check in front of printk. This prevents spamming of the message during 32-bit ubuntu 6.06server install. Previously, it would hang during the partition formatting stage. Signed-off-by: Ryan Harper Signed-off-by: Avi Kivity commit c272edd56fd1201238dfe9b29f027249067ed318 Author: Zhang Xiantao Date: Fri Dec 14 10:23:23 2007 +0800 KVM: Portability: Move kvm_vm_stat to x86.h This patch moves kvm_vm_stat to x86.h, and every arch can define its own kvm_vm_stat in $arch.h Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit f0950596e4e420583b3b3e6bb168793a5cb483bd Author: Zhang Xiantao Date: Fri Dec 14 10:20:16 2007 +0800 KVM: Portability: Move round_robin_prev_vcpu and tss_addr to kvm_arch This patches moves two fields round_robin_prev_vcpu and tss to kvm_arch. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit e1ff111628bb1cf49ddcaca105304e1cd83e577c Author: Zhang Xiantao Date: Fri Dec 14 10:17:34 2007 +0800 KVM: Portability: move vpic and vioapic to kvm_arch This patches moves two fields vpid and vioapic to kvm_arch Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 4bfe8599b11664e041ff1733cbe43aedf53e054d Author: Zhang Xiantao Date: Fri Dec 14 10:01:48 2007 +0800 KVM: Portability: Move mmu-related fields to kvm_arch This patches moves mmu-related fields to kvm_arch. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit f18af6836ed727e79873cf868a47cbec18e18914 Author: Zhang Xiantao Date: Fri Dec 14 09:54:20 2007 +0800 KVM: Portability: Move memslot aliases to new struct kvm_arch This patches create kvm_arch to hold arch-specific kvm fileds and moves fields naliases and aliases to kvm_arch. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 5104cf2ffdd47854a00e48fb3a089f107e7f30da Author: Zhang Xiantao Date: Fri Dec 14 09:49:26 2007 +0800 KVM: Portability: Move kvm_vcpu_stat to x86.h This patches moves kvm_vcpu_stat to x86.h, so every arch can define its own kvm_vcpu_stat structure. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 9edf53496ee757f2c090ba73d49cfd18de3b5b14 Author: Zhang Xiantao Date: Fri Dec 14 09:45:31 2007 +0800 KVM: Portability: Expand the KVM_VCPU_COMM in kvm_vcpu structure. This patches removes KVM_COMM macro, original it is hold kvm_vcpu common fields. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit acd488e9febb97780eab35d5af85fa59a72a295d Author: Zhang Xiantao Date: Fri Dec 14 09:41:22 2007 +0800 KVM: Portability: Move kvm_vcpu definition back to kvm.h This patches moves kvm_vcpu definition to kvm.h, and finally kvm.h includes x86.h. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 689ab57bf3245a685845f6906f4b47364f11af84 Author: Zhang Xiantao Date: Fri Dec 14 09:35:10 2007 +0800 KVM: Portability: Split mmu-related static inline functions to mmu.h Since these functions need to know the details of kvm or kvm_vcpu structure, it can't be put in x86.h. Create mmu.h to hold them. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 5b30a22d7c2ced107410de7b912916976e8d951d Author: Zhang Xiantao Date: Thu Dec 13 23:50:52 2007 +0800 KVM: Portability: Introduce kvm_vcpu_arch Move all the architecture-specific fields in kvm_vcpu into a new struct kvm_vcpu_arch. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit e315a28bf3e1e0f3d31231b106198009a152f499 Author: Zhang Xiantao Date: Tue Dec 11 20:36:00 2007 +0800 KVM: Portability: Move kvm{pic,ioapic} accesors to x86 specific code Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit d5855a0ec163afd591f272e13e1f2c366794306f Author: Avi Kivity Date: Thu Dec 13 14:44:12 2007 +0200 KVM: Another cmpxchg emulation compile fix Signed-off-by: Avi Kivity commit eeb8852f8e8588e77bde5dfbb20808e7ba70105f Author: Avi Kivity Date: Thu Dec 13 14:44:12 2007 +0200 KVM: Another cmpxchg emulation compile fix Signed-off-by: Avi Kivity commit a5e8e8a4f7ddb211d856eb30e93e70af9d51b735 Author: Avi Kivity Date: Thu Dec 13 14:30:28 2007 +0200 KVM: Another cmpxchg i386 compile fix Signed-off-by: Avi Kivity commit eb9270cee7061e5a985eb9eac559270292b1d7ec Author: Avi Kivity Date: Thu Dec 13 14:14:17 2007 +0200 KVM: Make cmpxchg emulation compile on i386 Signed-off-by: Avi Kivity commit 24a673eb377069509e8dad5ff7fa146e363df739 Author: Avi Kivity Date: Thu Dec 13 13:19:04 2007 +0200 KVM: Fix bad kunmap_atomic() paramerter inm cmpxchg emulation Noticed by Uri Lublin Signed-off-by: Avi Kivity commit 9a5ee611ca79bec98e9d97e93f11df8083b8af6e Author: Marcelo Tosatti Date: Wed Dec 12 10:46:12 2007 -0500 KVM: MMU: emulated cmpxchg8b should be atomic on i386 Emulate cmpxchg8b atomically on i386. This is required to avoid a guest pte walker from seeing a splitted write. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 158be9e5f1af9b04da7b7349328dc466e2220047 Author: Joerg Roedel Date: Wed Dec 12 12:37:24 2007 +0100 KVM: LAPIC: minor debugging compile fix This patch fixes a compile error of the LAPIC code with APIC debugging enabled. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit d3a1ec98fe24e8693b794397e533a3d4770f8b09 Author: Marcelo Tosatti Date: Tue Dec 11 19:12:27 2007 -0500 KVM: MMU: Fix SMP shadow instantiation race There is a race where VCPU0 is shadowing a pagetable entry while VCPU1 is updating it, which results in a stale shadow copy. Fix that by comparing the contents of the cached guest pte with the current guest pte after write-protecting the guest pagetable. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 2018f67db6923910e135b6a8aaf1c9167cfa7f5d Author: Avi Kivity Date: Tue Dec 11 19:23:11 2007 +0200 KVM: MMU: Fix kunmap_atomic() call in cmpxchg_gpte() Signed-off-by: Avi Kivity commit 51ef1ac7b23ee32bfcc61c229d634fdc1c68b38a Author: Joerg Roedel Date: Tue Dec 11 15:36:57 2007 +0100 KVM: SVM: support writing 0 to K8 performance counter control registers This lets SVM ignore writes of the value 0 to the performance counter control registers. Thus enabling them will still fail in the guest, but a write of 0 which keeps them disabled is accepted. This is required to boot Windows Vista 64bit. [avi: avoid fall-thru in switch statement] Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit ced316df1d44ed441d6268e13500fef2b7ad9bfb Author: Joerg Roedel Date: Thu Dec 6 21:02:25 2007 +0100 KVM: SVM: Exit to userspace if write to cr8 and not using in-kernel apic With this patch KVM on SVM will exit to userspace if the guest writes to CR8 and the in-kernel APIC is disabled. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit 3ef4e62ae2a1c0109e20da39e7b42570c59cb3cc Author: Avi Kivity Date: Sun Dec 9 18:43:00 2007 +0200 KVM: MMU: Use mmu_set_spte() for real-mode shadows In addition to removing some duplicated code, this also handles the unlikely case of real-mode code updating a guest page table. This can happen when one vcpu (in real mode) touches a second vcpu's (in protected mode) page tables, or if a vcpu switches to real mode, touches page tables, and switches back. Signed-off-by: Avi Kivity commit d1d1b5649e7e531fe5eac5e218c99289ce5a1a1d Author: Avi Kivity Date: Sun Dec 9 18:39:41 2007 +0200 KVM: MMU: Adjust mmu_set_spte() debug code for gpte removal Signed-off-by: Avi Kivity commit 86a3d6593e8942de664d9999402f3fc28e83c4cd Author: Avi Kivity Date: Sun Dec 9 17:40:31 2007 +0200 KVM: MMU: Move set_pte() into guest paging mode independent code As set_pte() no longer references either a gpte or the guest walker, we can move it out of paging mode dependent code (which compiles twice and is generally nasty). Signed-off-by: Avi Kivity commit 2deb9afd26d79c868f88ff9019f32e1498f1fe6c Author: Avi Kivity Date: Sun Dec 9 17:33:46 2007 +0200 KVM: MMU: Remove walker argument to set_pte() Unused. Signed-off-by: Avi Kivity commit 65d8730b56fc407c26ad725313f8c3acfc16d804 Author: Avi Kivity Date: Sun Dec 9 17:32:30 2007 +0200 KVM: MMU: Pass pte dirty flag to set_pte() instead of calculating it on-site This allows us to remove its dependency on pt_element_t. Signed-off-by: Avi Kivity commit 49b2ab6e5ca086c3e3fa4abc922b296d38e59fb5 Author: Avi Kivity Date: Sun Dec 9 17:27:52 2007 +0200 KVM: MMU: No need to pick up nx bit from guest pte We already set it according to cumulative access permissions. Signed-off-by: Avi Kivity commit ddac3bf3e282a13d74cf61863ea100803cda671d Author: Avi Kivity Date: Sun Dec 9 17:00:02 2007 +0200 KVM: MMU: Fix inherited permissions for emulated guest pte updates When we emulate a guest pte write, we fail to apply the correct inherited permissions from the parent ptes. Now that we store inherited permissions in the shadow page, we can use that to update the pte permissions correctly. Signed-off-by: Avi Kivity commit 10b29d09ceec124d145977ae1e207931825fd755 Author: Avi Kivity Date: Sun Dec 9 16:52:56 2007 +0200 KVM: MMU: Move pte access calculation into a helper function Signed-off-by: Avi Kivity commit 4e2cddf1e56ba13bb44fd035a669f2d7ce1874f7 Author: Avi Kivity Date: Sun Dec 9 16:37:36 2007 +0200 KVM: MMU: Set nx bit correctly on shadow ptes While the page table walker correctly generates a guest page fault if a guest tries to execute a non-executable page, the shadow code does not mark it non-executable. This means that if a guest accesses an nx page first with a read access, then subsequent code fetch accesses will succeed. Fix by setting the nx bit on shadow ptes. Signed-off-by: Avi Kivity commit 4347f30eaf3debcfd2b0d90573930b1b8a7de389 Author: Avi Kivity Date: Sun Dec 9 16:15:46 2007 +0200 KVM: MMU: Simplify calculation of pte access The nx bit is awkwardly placed in the 63rd bit position; furthermore it has a reversed meaning compared to the other bits, which means we can't use a bitwise and to calculate compounded access masks. So, we simplify things by creating a new 3-bit exec/write/user access word, and doing all calculations in that. Signed-off-by: Avi Kivity commit 979158adc73ea573897a1d43f9a6cd4dc13e95d6 Author: Marcelo Tosatti Date: Fri Dec 7 07:56:58 2007 -0500 KVM: MMU: Use cmpxchg for pte updates on walk_addr() In preparation for multi-threaded guest pte walking, use cmpxchg() when updating guest pte's. This guarantees that the assignment of the dirty bit can't be lost if two CPU's are faulting the same address simultaneously. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 2066ea592f45f4bd2ad2cc0d78b7694b48976105 Author: Avi Kivity Date: Thu Dec 6 21:11:31 2007 +0200 KVM: VMX: Fix cr8 exit optimization Signed-off-by: Avi Kivity commit 9581bd821d8ffe6c5cd4605e8c97e4bce352f1af Author: Avi Kivity Date: Thu Dec 6 19:50:00 2007 +0200 KVM: SVM: Trap access to the cr8 register Later we may be able to use the virtual tpr feature, but for now, just trap it. Signed-off-by: Avi Kivity commit 8893b9252a3256910c184153522cf77940f85cac Author: Avi Kivity Date: Thu Dec 6 18:14:14 2007 +0200 KVM: x86 emulator: Fix stack instructions on 64-bit mode Stack instructions are always 64-bit on 64-bit mode; many of the emulated stack instructions did not take that into account. Fix by adding a 'Stack' bitflag and setting the operand size appropriately during the decode stage (except for 'push r/m', which is in a group with a few other instructions, so it gets its own treatment). This fixes random crashes on Vista x64. Signed-off-by: Avi Kivity commit c8926698e4ee6c5d7661a73aaf92e00d8c1c8d66 Author: Joerg Roedel Date: Thu Dec 6 15:46:52 2007 +0100 KVM: SVM: Emulate read/write access to cr8 This patch adds code to emulate the access to the cr8 register to the x86 instruction emulator in kvm. This is needed on svm, where there is no hardware decode for control register access. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit 3224ccab2ad15aa096fa4195a2d0f30722eb6c8c Author: Avi Kivity Date: Thu Dec 6 16:32:45 2007 +0200 KVM: VMX: Avoid exit when setting cr8 if the local apic is in the kernel With apic in userspace, we must exit to userspace after a cr8 write in order to update the tpr. But if the apic is in the kernel, the exit is unnecessary. Noticed by Joerg Roedel. Signed-off-by: Avi Kivity commit 297a0bef8fbad4367abac85d1a976a1cc8d3c8bf Author: Avi Kivity Date: Thu Dec 6 16:15:02 2007 +0200 KVM: x86 emulator: fix eflags preparation for emulation We prepare eflags for the emulated instruction, then clobber it with an 'andl'. Fix by popping eflags as the last thing in the sequence. Patch taken from Xen (16143:959b4b92b6bf) Signed-off-by: Avi Kivity commit ac319e6300d31ccfe0b2a7767c5fcd9385028954 Author: Avi Kivity Date: Sun Nov 25 15:22:50 2007 +0200 KVM: Use generalized exception queue for injecting #UD Signed-off-by: Avi Kivity commit a78abaa8f90d60274ca818f45d4e1abe19da7bc4 Author: Avi Kivity Date: Sun Nov 25 14:12:03 2007 +0200 KVM: Replace #GP injection by the generalized exception queue Signed-off-by: Avi Kivity commit f93ec37e9625b2d60e2f58d0bcc123878b695260 Author: Avi Kivity Date: Sun Nov 25 14:04:58 2007 +0200 KVM: Replace page fault injection by the generalized exception queue Signed-off-by: Avi Kivity commit 39aaaf61fb37a66120928ad4a5b03393f5b8ffe1 Author: Avi Kivity Date: Sun Nov 25 13:41:11 2007 +0200 KVM: Generalize exception injection mechanism Instead of each subarch doing its own thing, add an API for queuing an injection, and manage failed exception injection centerally (i.e., if an inject failed due to a shadow page fault, we need to requeue it). Signed-off-by: Avi Kivity commit d8bb219b4d69baa8f65e934ef830dd742f69c001 Author: Marcelo Tosatti Date: Tue Dec 4 13:42:16 2007 -0500 KVM: MMU: Remove unused prev_shadow_ent variable from fetch() Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 83f9425dc148dbe0d373b7e07f221affff9e91cb Author: npiggin@suse.de Date: Wed Dec 5 18:15:52 2007 +1100 KVM: Convert KVM from ->nopage() to ->fault() Signed-off-by: Nick Piggin Cc: kvm-devel@lists.sourceforge.net Cc: avi@qumranet.com Cc: linux-kernel@vger.kernel.org Signed-off-by: Avi Kivity commit fc424a7c4280adc9335ed92f31772b7df3f85745 Author: Hollis Blanchard Date: Mon Dec 3 16:15:26 2007 -0600 KVM: Portability: Create kvm_arch_vcpu_runnable() function This abstracts the detail of x86 hlt and INIT modes into a function. Signed-off-by: Hollis Blanchard Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 359306765f53cdc7736e0303c31658239f6df825 Author: Hollis Blanchard Date: Mon Dec 3 15:30:25 2007 -0600 KVM: Portability: Stop including x86-specific headers in kvm_main.c Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 3f3c54ebf4d6f3423571be332f7965a7efb327cc Author: Hollis Blanchard Date: Mon Dec 3 15:30:24 2007 -0600 KVM: Portability: Move IO device definitions to its own header file Signed-off-by: Hollis Blanchard Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 871bc1ede128496f82409b34d94a9e8e977c3cf7 Author: Hollis Blanchard Date: Mon Dec 3 15:30:23 2007 -0600 KVM: Portability: Move address types to their own header file Signed-off-by: Hollis Blanchard Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit efdeac066fbc73cbb4cc2d8c8975192454ea2a50 Author: Zhang Xiantao Date: Sun Dec 2 22:53:07 2007 +0800 KVM: Extend ioapic code to support iosapic iosapic supports an additional mmio EOI register compared to ioapic. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit f2601fd2874b94d14dfcb21a3e1b84d7f3262b17 Author: Zhang Xiantao Date: Sun Dec 2 22:49:09 2007 +0800 KVM: Replace dest_Lowest_Prio and dest_Fixed with self-defined macros Change dest_Loest_Prio -> IOAPIC_LOWEST_PRIORITY dest_Fixed -> IOAPIC_FIXED the original names are x86 specific, while the ioapic code will be reused for ia64. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 9a771bb114c3e37b232ed0e798c5c7a59e4f0c4b Author: Zhang Xiantao Date: Sun Dec 2 22:35:57 2007 +0800 KVM: Replace kvm_lapic with kvm_vcpu in ioapic/lapic interface This patch replaces lapic structure with kvm_vcpu in ioapic.c, making ioapic independent of the local apic, as required by ia64. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit e8d3621f9f0c209bdb888811a94168e25ea731cd Author: Carlo Marcelo Arenas Belon Date: Sat Dec 1 06:17:11 2007 -0600 KVM: SVM: Remove KVM specific defines for MSR_EFER This patch removes the KVM specific defines for MSR_EFER that were being used in the svm support file and migrates all references to use instead the ones from the kernel headers that are used everywhere else and that have the same values. Signed-off-by: Carlo Marcelo Arenas Belon Signed-off-by: Avi Kivity commit a393444c97f6d7355a6d7d6d7aeb80f1e72472b1 Author: Avi Kivity Date: Sun Dec 2 10:50:06 2007 +0200 KVM: Export include/linux/kvm.h only if $ARCH actually supports KVM Currently, make headers_check barfs due to , which includes, not existing. Rather than add a zillion s, export kvm.h only if the arch actually supports it. Signed-off-by: Avi Kivity commit d535dd00b9fc5b7aadc4229dac9e68fd36381c34 Author: Zhang Xiantao Date: Thu Nov 29 15:35:39 2007 +0800 KVM: Correct kvm_init() error paths not freeing bad_pge. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 16d0ba47ac043733d756e299d7c17b4e1ea72203 Author: Zhang Xiantao Date: Wed Nov 21 04:36:41 2007 +0800 KVM: Portability: Move KVM_INTERRUPT vcpu ioctl to x86.c Other archs doesn't need it. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 71be592a14aa8d127315b2c47bf83cc0d810a341 Author: Avi Kivity Date: Wed Nov 28 18:14:43 2007 +0200 KVM: Don't bypass the mmu if in pae and pdptrs changed Relading cr3 with unchanged values usually means just a tlb flush, but if in pae mode and the pdptrs have changed, we have to reload them. This fixes a Solaris x86 regression. Signed-off-by: Avi Kivity commit ff378422888a8b3ff296e30297fcabf1c831ff83 Author: Avi Kivity Date: Tue Nov 27 19:30:56 2007 +0200 KVM: x86 emulator: unify four switch statements into two Unify the special instruction switch with the regular instruction switch, and the two byte special instruction switch with the regular two byte instruction switch. That makes it much easier to find an instruction or the place an instruction needs to be added in. Signed-off-by: Avi Kivity commit 924894fc582925140ed0648b3ca54af6df69d02e Author: Avi Kivity Date: Tue Nov 27 19:14:21 2007 +0200 KVM: x86 emulator: unify two switches The rep prefix cleanup left two switch () statements next to each other. Unify them. Signed-off-by: Avi Kivity commit 55915c4ddc358f4199f7c14650da1ec998832db8 Author: Avi Kivity Date: Tue Nov 27 19:05:37 2007 +0200 KVM: x86 emulator: Move rep processing before instruction execution Currently rep processing is handled somewhere in the middle of instruction processing. Move it to a sensible place. Signed-off-by: Avi Kivity commit 0d84c92a54aff9ca6f9e25f4551d1af34eb59a8c Author: Avi Kivity Date: Mon Nov 26 18:30:07 2007 +0200 KVM: Fix cpuid2 killing 32-bit guests on non-NX machines KVM_SET_CPUID fails to remove NX when the host doesn't support it, as previous versions do. On the other hand, KVM_SET_CPUID2 removes the feature even though, since we tell userspace about it, it shouldn't be necessary. Swap the two cases. Signed-off-by: Avi Kivity commit d1923b98c89ec7d5fbcd852d07bd987e16aea02a Author: Jerone Young Date: Mon Nov 26 08:33:53 2007 -0600 KVM: Add ifdef in irqchip struct for x86 only structures This patch fixes a small issue where sturctures: kvm_pic_state kvm_ioapic_state are defined inside x86 specific code and may or may not be defined in anyway for other architectures. The problem caused is one cannot compile userspace apps (ex. libkvm) for other archs since a size cannot be determined for these structures. Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit 282cb7a36798ae74de609538354d92ee9b704ca2 Author: Guillaume Thouvenin Date: Mon Nov 26 13:49:09 2007 +0100 KVM: x86 emulator: cmps instruction Add emulation for the cmps instruction. This lets OpenBSD boot on kvm. Signed-off-by: Guillaume Thouvenin Signed-off-by: Avi Kivity commit 8fc822737d95c85ea1db8a71fd835db11c0bdaa7 Author: Avi Kivity Date: Mon Nov 26 16:10:43 2007 +0200 KVM: x86 emulator: rename REP_REPE_PREFIX Signed-off-by: Avi Kivity commit 259ad7f05da1720f7bf88a00bec795dd7b517810 Author: Izik Eidus Date: Mon Nov 26 14:08:14 2007 +0200 KVM: MMU: mark pages that were inserted to the shadow pages table as accessed Mark guest pages as accessed when removed from the shadow page tables for better lru processing. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 8a29e7fd6400c8c14f4d8f7650c00a7e514d2829 Author: Avi Kivity Date: Sun Nov 25 17:45:31 2007 +0200 KVM: Remove misleading check for mmio during event injection mmio was already handled in kvm_arch_vcpu_ioctl_run(), so no need to check again. Signed-off-by: Avi Kivity commit 694401697ccd822bb08019731c3ee1bb34323d8e Author: Avi Kivity Date: Fri Nov 23 09:29:11 2007 +0200 KVM: Revert segment_descriptor.h removal Mainline isn't ready for it yet. This reverts commits 9f9d8a265d28fc36cfc4f08af0210d4f8da5b147, 51727a110220681f6f43b005d069e28c58f5d151, 7a819d50439ec2801d9aad5850e76f183360a37a, and d24618db16bd6d6d7ea6129e2de8433416f81823. Reported by Xiantao Zhang. Signed-off-by: Avi Kivity commit 9f9d8a265d28fc36cfc4f08af0210d4f8da5b147 Author: Carsten Otte Date: Thu Nov 22 17:24:01 2007 +0100 KVM: Remove desc.h include in kvm_main.c This patch removes the include of asm/desc.h in kvm_main.c, which is only available for x86 and not needed anymore. Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 8df313eea0f1db990da6798d86b60fc2c2f1b57a Author: Avi Kivity Date: Thu Nov 22 14:16:12 2007 +0200 KVM: x86 emulator: address size and operand size overrides are sticky Current implementation is to toggle, which is incorrect. Patch ported from corresponding Xen code. Signed-off-by: Avi Kivity commit 06ac686984864851df4556dcfe184238a66e71c2 Author: Guillaume Thouvenin Date: Thu Nov 22 11:32:09 2007 +0100 KVM: x86 emulator: Make a distinction between repeat prefixes F3 and F2 cmps and scas instructions accept repeat prefixes F3 and F2. So in order to emulate those prefixed instructions we need to be able to know if prefixes are REP/REPE/REPZ or REPNE/REPNZ. Currently kvm doesn't make this distinction. This patch introduces this distinction. Signed-off-by: Guillaume Thouvenin Signed-off-by: Avi Kivity commit 368170736f3fa12d2c4846f01c5c2aaac19a22d6 Author: Zhang Xiantao Date: Thu Nov 22 11:20:33 2007 +0800 KVM: Portability: Move unalias_gfn to arch dependent file Non-x86 archs don't need this mechanism. Move it to arch, and keep its interface in common. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit cad4dbe630b663d1d21f928984fd170595aef498 Author: Sheng Yang Date: Wed Nov 21 14:33:25 2007 +0800 KVM: VMX: Remove the secondary execute control dependency on irqchip The state of SECONDARY_VM_EXEC_CONTROL shouldn't depend on in-kernel IRQ chip, this patch fix this. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit bf3cee1783e143e4d24423bea59caa5f874cfc92 Author: Avi Kivity Date: Thu Nov 22 12:18:10 2007 +0200 KVM: x86 emulator: Fix instruction fetch cache hit check Signed-off-by: Avi Kivity commit 316bd49570ab7b1812bdd954ccd59ad8bc9e9ddc Author: Avi Kivity Date: Thu Nov 22 11:42:59 2007 +0200 KVM: Fix faults during injection of real-mode interrupts If vmx fails to inject a real-mode interrupt while fetching the interrupt redirection table, it fails to record this in the vectoring information field. So we detect this condition and do it ourselves. Signed-off-by: Avi Kivity commit 8fd969cf9a7fca9d4599b839e1995a6403d5a69e Author: Avi Kivity Date: Thu Nov 22 11:30:47 2007 +0200 KVM: VMX: Read & store IDT_VECTORING_INFO_FIELD We'll want to write to it in order to fix real-mode irq injection problems, but it is a read-only field. Storing it in a variable solves that issue. Signed-off-by: Avi Kivity commit 51727a110220681f6f43b005d069e28c58f5d151 Author: Avi Kivity Date: Wed Nov 21 19:17:33 2007 +0200 KVM: Fix compile error on i386 Signed-off-by: Avi Kivity commit 7a819d50439ec2801d9aad5850e76f183360a37a Author: Avi Kivity Date: Wed Nov 21 18:35:55 2007 +0200 KVM: Remove segment_descriptor, part 2 Turns out there was another definition somewhere else. Signed-off-by: Avi Kivity commit d24618db16bd6d6d7ea6129e2de8433416f81823 Author: Avi Kivity Date: Wed Nov 21 17:34:40 2007 +0200 KVM: Replace private 'struct segment descriptor' by x86's desc_struct Signed-off-by: Avi Kivity commit 57d03e8414672b5730ef7e11bfc8412219ec1553 Author: Dan Kenigsberg Date: Wed Nov 21 17:10:04 2007 +0200 KVM: Enhance guest cpuid management The current cpuid management suffers from several problems, which inhibit passing through the host feature set to the guest: - No way to tell which features the host supports While some features can be supported with no changes to kvm, others need explicit support. That means kvm needs to vet the feature set before it is passed to the guest. - No support for indexed or stateful cpuid entries Some cpuid entries depend on ecx as well as on eax, or on internal state in the processor (running cpuid multiple times with the same input returns different output). The current cpuid machinery only supports keying on eax. - No support for save/restore/migrate The internal state above needs to be exposed to userspace so it can be saved or migrated. This patch adds extended cpuid support by means of three new ioctls: - KVM_GET_SUPPORTED_CPUID: get all cpuid entries the host (and kvm) supports - KVM_SET_CPUID2: sets the vcpu's cpuid table - KVM_GET_CPUID2: gets the vcpu's cpuid table, including hidden state Signed-off-by: Dan Kenigsberg Signed-off-by: Avi Kivity commit 2a4922c0219e85b2acd92b69644864baa20b2e96 Author: Avi Kivity Date: Wed Nov 21 16:41:05 2007 +0200 KVM: Disallow fork() and similar games when using a VM We don't want the meaning of guest userspace changing under our feet. Signed-off-by: Avi Kivity commit a96b251aa077206f06481c94f8a0791b3cebf3a8 Author: Avi Kivity Date: Wed Nov 21 15:32:41 2007 +0200 KVM: MMU: Rename 'release_page' Rename the awkwardly named variable. Signed-off-by: Avi Kivity commit 000e8b3948c9e3eebc133e585381ec6819d545c5 Author: Avi Kivity Date: Wed Nov 21 15:28:32 2007 +0200 KVM: MMU: Rename variable of type 'struct kvm_mmu_page *' These are traditionally named 'page', but even more traditionally, that name is reserved for variables that point to a 'struct page'. Rename them to 'sp' (for "shadow page"). Signed-off-by: Avi Kivity commit eff7b4c194c24bea98d1f3460ea99b57ffcd7708 Author: Avi Kivity Date: Wed Nov 21 15:01:44 2007 +0200 KVM: Remove gpa_to_hpa() Converting last uses along the way. Signed-off-by: Avi Kivity commit ee4d8423330ef532cad2f7eb08e1c756eb8ba1c6 Author: Avi Kivity Date: Wed Nov 21 14:57:44 2007 +0200 KVM: MMU: Remove gva_to_hpa() No longer used. Signed-off-by: Avi Kivity commit 4a5a77187742a411111394d0ad4ddf463e8eb5f7 Author: Avi Kivity Date: Wed Nov 21 14:54:16 2007 +0200 KVM: MMU: Simplify nonpaging_map() Instead of passing an hpa, pass a regular struct page. Signed-off-by: Avi Kivity commit 2847f40d0f9ca46ce5a6e090f6ba73cec51082cf Author: Avi Kivity Date: Wed Nov 21 14:44:45 2007 +0200 KVM: MMU: Introduce gfn_to_gpa() Converting a frame number to an address is tricky since the data type changes size. Introduce a function to do it. This fixes an actual bug when accessing guest ptes. Signed-off-by: Avi Kivity commit 0c621b19fab7f7dcd859ec4f159accd5145461df Author: Avi Kivity Date: Wed Nov 21 14:20:22 2007 +0200 KVM: MMU: Adjust page_header_update_slot() to accept a gfn instead of a gpa Signed-off-by: Avi Kivity commit 0a2c38f403b2be6cfb1bd63eff7baa4004463c0f Author: Avi Kivity Date: Wed Nov 21 14:16:30 2007 +0200 KVM: MMU: Merge set_pte() and set_pte_common() Since set_pte() is now the only caller of set_pte_common(), merge the two functions. Signed-off-by: Avi Kivity commit f1336a6a39c8afb430e7673c31bf279186c12910 Author: Avi Kivity Date: Wed Nov 21 14:11:49 2007 +0200 KVM: MMU: Remove set_pde() It is now identical to set_pte(). Signed-off-by: Avi Kivity commit 3aafe8270b660e947d6f7d5feba6f706bca96140 Author: Avi Kivity Date: Wed Nov 21 14:08:40 2007 +0200 KVM: MMU: Remove extra gaddr parameter from set_pte_common() Similar information is available in the gfn parameter, so use that. Signed-off-by: Avi Kivity commit ef44f09e80ff7d68b0dbe2d58b210079fe8990a0 Author: Avi Kivity Date: Wed Nov 21 13:54:47 2007 +0200 KVM: MMU: Move pse36 handling to the guest walker Signed-off-by: Avi Kivity commit 1916b5e84c3dfa5fd085f4c3e98a4a700693c4e4 Author: Avi Kivity Date: Wed Nov 21 12:35:07 2007 +0200 KVM: MMU: Introduce and use gpte_to_gfn() Instead of repretitively open-coding this. Signed-off-by: Avi Kivity commit 45b905fe748de97264edf476b011fece80e3f343 Author: Izik Eidus Date: Tue Nov 20 12:02:12 2007 +0200 KVM: MMU: Code cleanup Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 76559d9ad5324f466289c493d473259cd095fea0 Author: Avi Kivity Date: Wed Nov 21 02:57:59 2007 +0200 KVM: Don't bother the mmu if cr3 load doesn't change cr3 If the guest requests just a tlb flush, don't take the vm lock and drop the mmu context pointlessly. Signed-off-by: Avi Kivity commit 798d6e84e6936206bfd9db9426ffb3687673b3c3 Author: Avi Kivity Date: Wed Nov 21 02:07:27 2007 +0200 KVM: Add parentheses to silence gcc Signed-off-by: Avi Kivity commit d07badf24aea04516a84676c08d5e0d4073363e8 Author: Avi Kivity Date: Wed Nov 21 02:06:21 2007 +0200 KVM: MMU: Avoid unnecessary remote tlb flushes when guest updates a pte If all we're doing is increasing permissions on a pte (typical for demand paging), then there's not need to flush remote tlbs. Worst case they'll get a spurious page fault. Signed-off-by: Avi Kivity commit 277eec7b001e006fcc21058d9b54dd5eda5c6d06 Author: Avi Kivity Date: Tue Nov 20 23:01:14 2007 +0200 KVM: Add statistic for remote tlb flushes Signed-off-by: Avi Kivity commit c91b40158f97160c5595a9c3a8829e49c298e7dd Author: Avi Kivity Date: Tue Nov 20 21:39:54 2007 +0200 KVM: MMU: Implement guest page fault bypass for nonpae I spent an hour worrying why I see so many guest page faults on FC6 i386. Turns out bypass wasn't implemented for nonpae. Implement it so it doesn't happen again. Signed-off-by: Avi Kivity commit 99040d8a4d9e4e6a49263e71d1832d360561a4e6 Author: Avi Kivity Date: Tue Nov 20 15:30:24 2007 +0200 KVM: Split vcpu creation to avoid vcpu_load() before preemption setup Split kvm_arch_vcpu_create() into kvm_arch_vcpu_create() and kvm_arch_vcpu_setup(), enabling preemption notification between the two. This mean that we can now do vcpu_load() within kvm_arch_vcpu_setup(). Signed-off-by: Avi Kivity commit fed1ca74c178299ab544795064d1c2636cbe78a9 Author: Zhang Xiantao Date: Tue Nov 20 16:25:04 2007 +0800 KVM: Portability: Split kvm_set_memory_region() to have an arch callout Moving !user_alloc case to kvm_arch to avoid unnecessary code logic in non-x86 platform. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 3e2a2eca6961927778bb69d559a40183a85910c3 Author: Zhang Xiantao Date: Tue Nov 20 13:11:38 2007 +0800 KVM: Recalculate mmu pages needed for every memory region change Instead of incrementally changing the mmu cache size for every memory slot operation, recalculate it from scratch. This is simpler and safer. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 90557b67ec617449792f4ca4181d874edce14bea Author: Amit Shah Date: Mon Nov 19 17:57:35 2007 +0200 KVM: SVM: Fix FPU leak and re-enable lazy FPU switching The clts code didn't use set_cr0 properly, so our lazy FPU processing wasn't being done by the clts instruction at all. This fixes all the FPU leaks, so re-enabling lazy FPU optimization. Signed-off-by: Amit Shah Signed-off-by: Avi Kivity commit 20046029f8b71bf0ed949542e5eecb3607619511 Author: Avi Kivity Date: Tue Nov 20 13:15:52 2007 +0200 KVM: x86 emulator: prefetch up to 15 bytes of the instruction executed Instead of fetching one byte at a time, prefetch 15 bytes (or until the next page boundary) to avoid guest page table walks. Signed-off-by: Avi Kivity commit 4df10721942bbdf93e4c7c168e775000a66fce00 Author: Avi Kivity Date: Tue Nov 20 12:49:31 2007 +0200 KVM: x86 emulator: retire ->write_std() Theoretically used to acccess memory known to be ordinary RAM, it was never implemented. It is questionable whether it is possible to implement it correctly. Signed-off-by: Avi Kivity commit 8afc7a0f22d7c5d8f5cbc3f0cfb0cd3d2bc66605 Author: Izik Eidus Date: Tue Nov 20 11:49:33 2007 +0200 KVM: MMU: Selectively set PageDirty when releasing guest memory Improve dirty bit setting for pages that kvm release, until now every page that we released we marked dirty, from now only pages that have potential to get dirty we mark dirty. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 86faf46a83fdf65c90aa87ff3e27509436db97ed Author: Izik Eidus Date: Tue Nov 20 11:30:04 2007 +0200 KVM: MMU: Fix potential memory leak with smp real-mode When we map a page, we check whether some other vcpu mapped it for us and if so, bail out. But we should decrease the refcount on the page as we do so. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit cc02b6a48c18507ab445000cfd2ef17724c39a7b Author: Avi Kivity Date: Tue Nov 20 11:45:14 2007 +0200 KVM: Export include/asm-x86/kvm.h Signed-off-by: Avi Kivity commit b92527793d12ce0f412cfe67aff959b1047ff255 Author: Jerone Young Date: Mon Nov 19 17:06:37 2007 -0600 KVM: Portability: Move cpuid structures to This patch moves structures: kvm_cpuid_entry kvm_cpuid from include/linux/kvm.h to include/asm-x86/kvm.h Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit ea36fb9556c5cf3121fd8cfb30f273c384a44cb4 Author: Jerone Young Date: Mon Nov 19 17:06:36 2007 -0600 KVM: Portability: Move kvm_sregs and msr structures to Move structures: kvm_sregs kvm_msr_entry kvm_msrs kvm_msr_list from include/linux/kvm.h to include/asm-x86/kvm.h Signed-off-by: Avi Kivity commit 7cf1d50b5293d7b505e2c4ecae4c52e42d08383e Author: Jerone Young Date: Mon Nov 19 17:06:35 2007 -0600 KVM: Portability: Move kvm_segment & kvm_dtable structure to This patch moves structures: kvm_segment kvm_dtable from include/linux/kvm.h to include/asm-x86/kvm.h Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit bf1b9719c3cd2744e8e1c61c9f710339062e82b1 Author: Jerone Young Date: Mon Nov 19 17:06:34 2007 -0600 KVM: Portability: Move structure lapic_state to This patch moves structure lapic_state from include/linux/kvm.h to include/asm-x86/kvm.h Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit 139a72a019300db50cc0bbff3f08fae182ad5295 Author: Jerone Young Date: Mon Nov 19 17:06:33 2007 -0600 KVM: Portability: Move kvm_regs to This patch moves structure kvm_regs to include/asm-x86/kvm.h. Each architecture will need to create there own version of this structure. Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit 6d441a253607c9d753c002fa8384ab864d15493d Author: Jerone Young Date: Mon Nov 19 17:06:32 2007 -0600 KVM: Portability: Move x86 pic strutctures This patch moves structures: kvm_pic_state kvm_ioapic_state to inclue/asm-x86/kvm.h. Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit 7bb420c0b02bff8a555a55cf8f0c181f80ece640 Author: Jerone Young Date: Mon Nov 19 17:06:31 2007 -0600 KVM: Portability: Move kvm_memory_alias to asm/kvm.h This patch moves sturct kvm_memory_alias from include/linux/kvm.h to include/asm-x86/kvm.h. Also have include/linux/kvm.h include include/asm/kvm.h. Signed-off-by: Jerone Young Signed-off-by: Avi Kivity commit 2f89106aa04dbc1ea5128734e5851eafb599570b Author: Hollis Blanchard Date: Mon Nov 19 14:04:44 2007 -0600 KVM: Move misplaced comment Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 1ac3d1e5a5d87d0f92b324ae8e4022d1a79e5342 Author: Hollis Blanchard Date: Mon Nov 19 14:04:43 2007 -0600 KVM: Correct consistent typo: "destory" -> "destroy" Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 15aab1f1b230180fa281861f4f3f502f97ec4ac1 Author: Hollis Blanchard Date: Mon Nov 19 14:04:45 2007 -0600 KVM: Remove unused "rmap_overflow" variable Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit e724f7e84ce40f4284f428e1766cc49b2712be4e Author: Avi Kivity Date: Mon Nov 19 18:44:15 2007 +0200 KVM: MMU: Remove unused variable Signed-off-by: Avi Kivity commit 1f4870283a5a27992a48a831bf4efcfea0f12c3f Author: Avi Kivity Date: Mon Nov 19 18:28:09 2007 +0200 KVM: Add missing #include Needed for empty_zero_page. Signed-off-by: Avi Kivity commit aa79833baa1491d6f8ed0158045eb92736194672 Author: Izik Eidus Date: Mon Nov 19 11:16:57 2007 +0200 kvm: simplify kvm_clear_guest_page() Use kvm_write_guest_page() with empty_zero_page, instead of doing kmap and memset. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 6589612b279ac8fc98dc32c2beaccaf73a123db3 Author: Izik Eidus Date: Mon Nov 19 11:28:19 2007 +0200 KVM: MMU: Change guest pte access to kvm_{read,write}_guest() Things are simpler and more regular this way. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 9fbcc4a1b7cf873a5aa1a357320fb82d588aa316 Author: Jan Kiszka Date: Mon Nov 19 10:21:45 2007 +0100 KVM: VMX: Force seg.base == (seg.sel << 4) in real mode Ensure that segment.base == segment.selector << 4 when entering the real mode on Intel so that the CPU will not bark at us. This fixes some old protected mode demo from http://www.x86.org/articles/pmbasics/tspec_a1_doc.htm. Signed-off-by: Jan Kiszka Signed-off-by: Avi Kivity commit 3f3b5523cbea87a7f5fb956d6d9934db8906c720 Author: Zhang Xiantao Date: Mon Nov 19 15:24:28 2007 +0800 KVM: Portability: Move some function declarations to x86.h Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 52377f9e6e1b698819778db98c0c849becefacaa Author: Zhang Xiantao Date: Mon Nov 19 15:08:31 2007 +0800 KVM: Move some static inline functions out from kvm.h into x86.h Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit f71f7978a42662d1334eab5e4247dd62f801c627 Author: Zhang Xiantao Date: Mon Nov 19 14:56:05 2007 +0800 KVM: Portability: Move vcpu regs enumeration definition to x86.h Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit e165cb34cb45b847a091037d8063e215f0aab839 Author: Zhang Xiantao Date: Mon Nov 19 14:40:47 2007 +0800 KVM: Portability: Move struct kvm_x86_ops definition to x86.h Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 5f45b1657504e8bc4c2a75ed4a320bb6ef230722 Author: Zhang Xiantao Date: Mon Nov 19 14:33:37 2007 +0800 KVM: Portability: Move some macro definitions from kvm.h to x86.h Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 67935bd1f29066d71fcc90b95ca80317d4a61114 Author: Zhang Xiantao Date: Sun Nov 18 20:43:21 2007 +0800 KVM: Portability: MMU initialization and teardown split Move out kvm_mmu init and exit functionality from kvm_main.c Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 655f2b2de26803d94285ca632dbb7a65939a52e9 Author: Zhang Xiantao Date: Sun Nov 18 20:29:43 2007 +0800 KVM: Portability: Move kvm_vcpu_ioctl_get_dirty_log to arch-specific file Meanwhile keep the interface in common, and leave as more logic in common as possible. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 3fbf24b10ff70174876626caf67090a8b82d1c3d Author: Amit Shah Date: Sun Nov 18 22:42:47 2007 +0530 KVM: SVM: Disable Lazy FPU optimization Host FPU state is leaked into the guest FPU state. This happens because of the lazy FPU optimization, so just reload the FPU each time there's a VM exit/entry. The real fix should follow soon. This is observed in cases where fonts in a guest aren't rendered correctly (bug 1807560). The test program, courtesy Avi is: double test_fpu_once() { int i; double f = 0; for (i = 0; i < 10000000; ++i) f += 1 / (1.0 + i); return f; } void test_fpu() { double a, b; int runs; runs = 0; a = test_fpu_once(); while (1) { b = test_fpu_once(); if (fabs(a - b) > 1e-9) printf("error: %20.16f -> %20.16f\n", a, b); a = b; if (++runs % 100 == 0) printf("runs: %8d\n", runs); } } int main(int ac, char **av) { test_fpu(); return 0; } Run this on the host and the guest, both pinned to the same host CPU. Signed-off-by: Amit Shah Signed-off-by: Avi Kivity commit 15aa6fbcd5908038d328eea250c282b2224cff1d Author: Amit Shah Date: Thu Nov 15 18:38:46 2007 +0200 KVM: Make unloading of FPU state when putting vcpu arch-independent Instead of having each architecture do it individually, we do this in the arch-independent code (just x86 as of now). Turns out SVM did not do this at all. Signed-off-by: Amit Shah Signed-off-by: Avi Kivity commit 3fefa5b661688e3f82179047047b98a27b1255ac Author: Amit Shah Date: Sun Nov 18 22:25:40 2007 +0530 KVM: x86 emulator: Use emulator_write_emulated and not emulator_write_std emulator_write_std() is not implemented, and calling write_emulated should work just as well in place of write_std. Fixes emulator failures with the push r/m instruction. Signed-off-by: Amit Shah Signed-off-by: Avi Kivity commit 90af65e22b7ef28aa0dc6d16ff42dee1b5329a82 Author: Avi Kivity Date: Sun Nov 18 16:37:07 2007 +0200 KVM: MMU: Add some mmu statistics Signed-off-by: Avi Kivity commit 65bee3dea12864c90e59985802b38b5d1726e411 Author: Avi Kivity Date: Sun Nov 18 16:24:12 2007 +0200 KVM: Extend stats support for VM stats This is in addition to the current virtual cpu statistics. Signed-off-by: Avi Kivity commit d600e85f82c9da9641dfd593c70706dc398a6a35 Author: Avi Kivity Date: Sun Nov 18 15:17:51 2007 +0200 KVM: Add instruction emulation statistics commit 5b355c536b29219696ebd62c05ed6b62a209e19d Author: Avi Kivity Date: Sun Nov 18 13:54:33 2007 +0200 KVM: Add fpu_reload counter Measure the number of times we switch the fpu state. Signed-off-by: Avi Kivity commit 3ceafc84da4130359f38a6c9870e8d434eca75cb Author: Avi Kivity Date: Sun Nov 18 13:50:24 2007 +0200 KVM: Replace 'light_exits' stat with 'host_state_reload' This is a little more accurate (since it counts actual reloads, not potential reloads), and reverses the sense of the statistic to measure a bad event like most of the other stats (e.g. we want to minimize all counters). Signed-off-by: Avi Kivity commit 070b3d6d8c2d62af9331d64a26a7abb0bc215329 Author: Zhang Xiantao Date: Sun Nov 18 18:43:45 2007 +0800 KVM: Portability: Add two hooks to handle kvm_create and destroy vm Add two arch hooks to handle kvm_create_vm and kvm destroy_vm. Now, just put io_bus init and destory in common. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit b99467ab695205c63a0614dc3a33559a9dc98c60 Author: Zhang Xiantao Date: Fri Nov 16 14:38:21 2007 +0800 KVM: Remove __init attributes for kvm_init_debug and kvm_init_msr_list Since their callers are not declared with __init. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit d0399b219b6ded177f7ddef7cf69ba3c0a94e5af Author: Joe Perches Date: Mon Nov 12 20:06:51 2007 -0800 KVM: Remove ptr comparisons to 0 Fix sparse warnings "Using plain integer as NULL pointer" Signed-off-by: Joe Perches Signed-off-by: Avi Kivity commit ebc1a8eca279a2387248d1950cc66fff9f6f6e67 Author: Sheng Yang Date: Fri Nov 16 16:29:15 2007 +0800 KVM: x86 emulator: Rename 'cr2' to 'memop' Previous patches have removed the dependency on cr2; we can now stop passing it to the emulator and rename uses to 'memop'. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit c3763adbd51d15ac1a158c4d51314237ee5be6ff Author: Zhang Xiantao Date: Fri Nov 16 13:05:55 2007 +0800 KVM: Portability: Make kvm_vcpu_ioctl_translate arch dependent Move kvm_vcpu_ioctl_translate to arch, since mmu would be put under arch. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit aed946861467c0ded1e10c6f18a0b39f503addf2 Author: Avi Kivity Date: Thu Nov 15 18:06:18 2007 +0200 KVM: VMX: Consolidate register usage in vmx_vcpu_run() We pass vcpu, vmx->fail, and vmx->launched to assembly code, but all three are fields within vmx. Consolidate by only passing in vmx and offsets for the rest. Signed-off-by: Avi Kivity commit e42ff0b65e30b0b2f8c022e113d0c6fd607d4eef Author: Zhang Xiantao Date: Thu Nov 15 23:07:47 2007 +0800 KVM: Portability: move KVM_CHECK_EXTENSION Make KVM_CHECK_EXTENSION code into a function, all archs can define its capability independently. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 8cdbd1f3f0b5d9599fd834de2000d2286ee05931 Author: Sheng Yang Date: Thu Nov 15 14:52:28 2007 +0800 KVM: x86 emulator: modify 'lods', and 'stos' not to depend on CR2 The current 'lods' and 'stos' is depending on incoming CR2 rather than decode memory address from registers. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit e29c6434dcc64992a84e1a34a16ccfc9fd623621 Author: Zhang Xiantao Date: Wed Nov 14 20:40:21 2007 +0800 KVM: Portability: Move x86 specific code from kvm_init() to kvm_arch() Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 5b6ea43200c02c08b60123a5478a981e0ede7b99 Author: Zhang Xiantao Date: Wed Nov 14 20:39:31 2007 +0800 KVM: Portability: Combine kvm_init and kvm_init_x86 Will be called once arch module registers itself. Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit c981fc179788d3bd7e6ccdc285774f5fee569045 Author: Zhang Xiantao Date: Wed Nov 14 20:38:21 2007 +0800 KVM: Portability: Add vcpu and hardware management arch hooks Add the following hooks: void decache_vcpus_on_cpu(int cpu); int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu); void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu); void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu); void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu); void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu); struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm, unsigned int id); void kvm_arch_vcpu_destory(struct kvm_vcpu *vcpu); int kvm_arch_vcpu_reset(struct kvm_vcpu *vcpu); void kvm_arch_hardware_enable(void *garbage); void kvm_arch_hardware_disable(void *garbage); int kvm_arch_hardware_setup(void); void kvm_arch_hardware_unsetup(void); void kvm_arch_check_processor_compat(void *rtn); Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit e402df0a544e9160ab68b1c666789f7007c66327 Author: Zhang Xiantao Date: Wed Nov 14 20:09:30 2007 +0800 KVM: Portability: Move kvm_x86_ops to x86.c Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 744060c59e5ad694721a8503c9416cdeb5411cdc Author: Zhang Xiantao Date: Wed Nov 14 20:08:51 2007 +0800 KVM: Portability: Move some includes to x86.c Move some includes to x86.c from kvm_main.c, since the related functions have been moved to x86.c Signed-off-by: Zhang Xiantao Acked-by: Carsten Otte Signed-off-by: Avi Kivity commit 7ee0b303e266990a54a26804d94bc24f649efcf9 Author: Izik Eidus Date: Sun Nov 11 22:10:22 2007 +0200 KVM: Change kvm_{read,write}_guest() to use copy_{from,to}_user() This changes kvm_write_guest_page/kvm_read_guest_page to use copy_to_user/read_from_user, as a result we get better speed and better dirty bit tracking. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit e8906e9fe7bc376f7d89ad089a19339fe83838a4 Author: Izik Eidus Date: Sun Nov 11 22:05:04 2007 +0200 KVM: introduce gfn_to_hva() Convert a guest frame number to the corresponding host virtual address. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit c94fd678cc5aaa7ef62051e42199576c563c0118 Author: Izik Eidus Date: Sun Nov 11 22:02:22 2007 +0200 KVM: add kvm_is_error_hva() Check for the "error hva", an address outside the user address space that signals a bad gfn. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit f81fa4f8c6759d70f70cb93f802e8b5b7ee3b31c Author: Avi Kivity Date: Sun Nov 11 18:37:32 2007 +0200 KVM: Simplify CPU_TASKS_FROZEN cpu notifier handling Signed-off-by: Avi Kivity commit a798c61d96780e45f8489f9b0dce93c313edb814 Author: Izik Eidus Date: Sun Nov 11 14:48:17 2007 +0200 KVM: x86 emulator: remove 8 bytes operands emulator for call near instruction it is removed beacuse it isnt supported on a real host Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit d452efc6f43bbc9e945720ac8ea36461c514001a Author: Izik Eidus Date: Sun Nov 11 14:46:34 2007 +0200 KVM: x86 emulator: fix the saving of of the eip value this make sure that no matter what is the operand size, all the value of the eip will be saved Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit f4e63bc2d9a7e0bad6209fe6ec95fda4ad2f3e9c Author: Izik Eidus Date: Sun Nov 11 14:40:48 2007 +0200 KVM: x86 emulator: fix JMP_REL Change JMP_REL to call to register_address_increment(): the operands size should not effect the calculation of the eip, instead the ad_bytes should affect it. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 495dcb4309e309d9ec42dc471b1548c09a359ed8 Author: Eddie Dong Date: Sun Nov 11 12:28:35 2007 +0200 KVM: VMX: wbinvd exiting Add wbinvd VM Exit support to prepare for pass-through device cache emulation and also enhance real time responsiveness. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit a5cfeab46e439b2610f264eaf200e3b01f3adf04 Author: Eddie Dong Date: Sun Nov 11 12:27:20 2007 +0200 KVM: VMX: Comment VMX primary/secondary exec ctl definitions Add comments for secondary/primary Processor-Based VM-execution controls. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 64276997bc49442e0cfb6a8d857274cca5ad2d39 Author: Avi Kivity Date: Sun Nov 11 11:29:26 2007 +0200 KVM: Go back to atomically injecting interrupts Revert b622204087b5dbdc76b39cbfa288a41d325e3e9a and 817b54a86b0a3e0e5955714b84577101ffff9c59, and inject interrupts atomically in the guest switch path. There are unresolved issues with injecting interrupts while sleeping is enabled. Signed-off-by: Avi Kivity commit ab4e018dc95e1b32b7f25746eb9b2c1385aec93e Author: Avi Kivity Date: Thu Nov 8 18:19:20 2007 +0200 KVM: VMX: Use vmx to inject real interrupts Instead of injecting real-mode interrupts by writing the interrupt frame into guest memory, abuse vmx by injecting a software interrupt. We need to pretend the software interrupt instruction had a length > 0, so we have to adjust rip backward. This lets us not to mess with writing guest memory, which is complex and also sleeps. Signed-off-by: Avi Kivity commit 1805646bfeeea2365d49c46abcd61f2c0d21e677 Author: Avi Kivity Date: Tue Nov 6 11:29:56 2007 +0200 KVM: VMX: Avoid reloading host efer on cpus that don't have it Some VT-capable processors (like the T2600) don't have an efer, so don't try to reload it. Signed-off-by: Avi Kivity commit f3cb18371632dd89d4158319baaa4137cb0f1bbd Author: Avi Kivity Date: Wed Nov 7 17:14:18 2007 +0200 KVM: SVM: Defer nmi processing until switch to host state is complete If we stgi() too soon, nmis can reach the processor even though interrupts are disabled, catching it in a half-switched state. Delay the stgi() until we're done switching. Signed-off-by: Avi Kivity commit 94ef4576bb78d429e4f25cdc09e348434c76c1a3 Author: Dor Laor Date: Wed Nov 7 16:20:06 2007 +0200 KVM: Add make_page_dirty() to kvm_clear_guest_page() Every write access to guest pages should be tracked. Signed-off-by: Dor Laor Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 157117844e1d228db58dfe7fbd51c5a225ceafe4 Author: Avi Kivity Date: Wed Nov 7 12:57:23 2007 +0200 KVM: SVM: Fix SMP with kernel apic AP processor needs to reset to the SIPI vector, not normal INIT. Signed-off-by: Avi Kivity commit 35e0154eeb0ace014ecf4cc2bdb93a42ee762aca Author: Sheng Yang Date: Tue Nov 6 11:37:44 2007 +0800 KVM: VMX: Fix repeated allocation of apic access page on smp For SMP guest, alloc_apic_access_page() would be called more than once. So only the last one works, causing SMP guest can't benifit from FlexPriority. This patch fixed this issue. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 9c86738fc9c62e5e801720a1cea3d982f9e66ec1 Author: Avi Kivity Date: Tue Nov 6 12:01:44 2007 +0200 KVM: x86 emulator: Move one-byte insns with reg operand into one-byte section Previously, they were decoded as 'ImplicitOps', but after now that we decode them as SrcReg or DstReg, they should be in the regular section. Thanks to Alexey Eremenko for a good bisect. Signed-off-by: Avi Kivity commit c388ba81841a1ed30a5dd4f6029db2263ad1aca3 Author: Hollis Blanchard Date: Thu Nov 1 14:16:10 2007 -0500 KVM: Portability: Move x86 vcpu ioctl handlers to x86.c Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit a9acc2800d8676d8a9a91aeaedd16ae4f75c05df Author: Hollis Blanchard Date: Wed Oct 31 17:24:25 2007 -0500 KVM: Portability: Move x86 FPU handling to x86.c Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit f0bed919cd92ebc5f6456061c2a1e3936a9cf4bb Author: Hollis Blanchard Date: Wed Oct 31 17:24:24 2007 -0500 KVM: Portability: Move x86 instruction emulation code to x86.c Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 24c5e5dfaafbb5fe3fbb35f456dc5293c7efa2f9 Author: Hollis Blanchard Date: Wed Oct 31 17:24:23 2007 -0500 KVM: Portability: Make exported debugfs data architecture-specific Signed-off-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 92f0fc32feb5ed773272ca0a4275f9c3d91666b6 Author: Avi Kivity Date: Thu Nov 1 06:31:28 2007 +0200 KVM: x86 emulator: Hoist modrm and abs decoding into separate functions Signed-off-by: Avi Kivity commit aadea67210c8b9e7a57744a1c2845501d2cdbac7 Author: Uri Lublin Date: Tue Oct 30 10:42:09 2007 +0200 KVM: Make mark_page_dirty() work for aliased pages too. Recommended by Izik Eidus. Signed-off-by: Uri Lublin Signed-off-by: Avi Kivity commit d49f75b8587e4078013124b76e89986201e31bd2 Author: Avi Kivity Date: Wed Oct 31 11:21:06 2007 +0200 KVM: Simplify decode_register_operand() calling convention Now that rex_prefix is part of the decode cache, there is no need to pass it along. Signed-off-by: Avi Kivity commit e49ba82c02da109f272da66a7b11d07da24146e4 Author: Avi Kivity Date: Wed Oct 31 11:15:56 2007 +0200 KVM: x86 emulator: centralize decoding of one-byte register access insns Instructions like 'inc reg' that have the register operand encoded in the opcode are currently specially decoded. Extend decode_register_operand() to handle that case, indicated by having DstReg or SrcReg without ModRM. Signed-off-by: Avi Kivity commit cc528786cfc5567c8478f57e9ba27abbe899cfe1 Author: Avi Kivity Date: Wed Oct 31 10:27:04 2007 +0200 KVM: x86 emulator: Extract the common code of SrcReg and DstReg Share the common parts of SrcReg and DstReg decoding. Signed-off-by: Avi Kivity commit baade4336b89881dfde8664339c888cbad749e21 Author: Carsten Otte Date: Tue Oct 30 18:44:25 2007 +0100 KVM: Portability: Move pio emulation functions to x86.c This patch moves implementation of the following functions from kvm_main.c to x86.c: free_pio_guest_pages, vcpu_find_pio_dev, pio_copy_data, complete_pio, kernel_pio, pio_string_write, kvm_emulate_pio, kvm_emulate_pio_string The function inject_gp, which was duplicated by yesterday's patch series, is removed from kvm_main.c now because it is not needed anymore. Signed-off-by: Carsten Otte Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit e20bd3021d1709638c08ce946e7fe0f21a78107d Author: Carsten Otte Date: Tue Oct 30 18:44:21 2007 +0100 KVM: Portability: Move x86 emulation and mmio device hook to x86.c This patch moves the following functions to from kvm_main.c to x86.c: emulator_read/write_std, vcpu_find_pervcpu_dev, vcpu_find_mmio_dev, emulator_read/write_emulated, emulator_write_phys, emulator_write_emulated_onepage, emulator_cmpxchg_emulated, get_setment_base, emulate_invlpg, emulate_clts, emulator_get/set_dr, kvm_report_emulation_failure, emulate_instruction The following data type is moved to x86.c: struct x86_emulate_ops emulate_ops Signed-off-by: Carsten Otte Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit d465b5f219d61e68f523dbe42f99fe7ec6787e2e Author: Carsten Otte Date: Tue Oct 30 18:44:17 2007 +0100 KVM: Portability: Move kvm_get/set_msr[_common] to x86.c This patch moves the implementation of the functions of kvm_get/set_msr, kvm_get/set_msr_common, and set_efer from kvm_main.c to x86.c. The definition of EFER_RESERVED_BITS is moved too. Signed-off-by: Carsten Otte Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 84397028b8a819ad3c102d0e55f9010e8a43875f Author: Anthony Liguori Date: Mon Oct 29 15:15:20 2007 -0500 KVM: Fix gfn_to_page() acquiring mmap_sem twice KVM's nopage handler calls gfn_to_page() which acquires the mmap_sem when calling out to get_user_pages(). nopage handlers are already invoked with the mmap_sem held though. Introduce a __gfn_to_page() for use by the nopage handler which requires the lock to already be held. This was noticed by tglx. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit a1ac91208be54463677c391b678f82a10b8f6b43 Author: Sheng Yang Date: Mon Oct 29 09:40:42 2007 +0800 KVM: VMX: Enable memory mapped TPR shadow (FlexPriority) This patch based on CR8/TPR patch, and enable the TPR shadow (FlexPriority) for 32bit Windows. Since TPR is accessed very frequently by 32bit Windows, especially SMP guest, with FlexPriority enabled, we saw significant performance gain. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 650d273133f478c40d1a5c720676d8a5687cbf7d Author: Carsten Otte Date: Mon Oct 29 16:09:35 2007 +0100 KVM: Portability: Move control register helper functions to x86.c This patch moves the definitions of CR0_RESERVED_BITS, CR4_RESERVED_BITS, and CR8_RESERVED_BITS along with the following functions from kvm_main.c to x86.c: set_cr0(), set_cr3(), set_cr4(), set_cr8(), get_cr8(), lmsw(), load_pdptrs() The static function wrapper inject_gp is duplicated in kvm_main.c and x86.c for now, the version in kvm_main.c should disappear once the last user of it is gone too. The function load_pdptrs is no longer static, and now defined in x86.h for the time being, until the last user of it is gone from kvm_main.c. Signed-off-by: Carsten Otte Reviewed-by: Christian Borntraeger Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 77c9dcf8e969f79483a8fef6eee35a462b013954 Author: Carsten Otte Date: Mon Oct 29 16:09:10 2007 +0100 KVM: Portability: move get/set_apic_base to x86.c This patch moves the implementation of get_apic_base and set_apic_base from kvm_main.c to x86.c Signed-off-by: Carsten Otte Reviewed-by: Christian Borntraeger Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit fba9a282a95211407af2a00f500868ae9846c75e Author: Carsten Otte Date: Mon Oct 29 16:08:51 2007 +0100 KVM: Portability: Move memory segmentation to x86.c This patch moves the definition of segment_descriptor_64 for AMD64 and EM64T from kvm_main.c to segment_descriptor.h. It also adds a proper #ifndef...#define...#endif around that header file. The implementation of segment_base is moved from kvm_main.c to x86.c. Signed-off-by: Carsten Otte Reviewed-by: Christian Borntraeger Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit 13974a5a9c61c0c1732dfe42c02d703830b5db3a Author: Carsten Otte Date: Mon Oct 29 16:08:35 2007 +0100 KVM: Portability: Split kvm_vm_ioctl v3 This patch splits kvm_vm_ioctl into archtecture independent parts, and x86 specific parts which go to kvm_arch_vcpu_ioctl in x86.c. The patch is unchanged since last submission. Common ioctls for all architectures are: KVM_CREATE_VCPU, KVM_GET_DIRTY_LOG, KVM_SET_USER_MEMORY_REGION x86 specific ioctls are: KVM_SET_MEMORY_REGION, KVM_GET/SET_NR_MMU_PAGES, KVM_SET_MEMORY_ALIAS, KVM_CREATE_IRQCHIP, KVM_CREATE_IRQ_LINE, KVM_GET/SET_IRQCHIP KVM_SET_TSS_ADDR Signed-off-by: Carsten Otte Reviewed-by: Christian Borntraeger Acked-by: Hollis Blanchard Signed-off-by: Avi Kivity commit b95061aec006bc4c44e4b244e4ec15c009ab880a Author: Avi Kivity Date: Sun Oct 28 18:52:05 2007 +0200 KVM: MMU: Topup the mmu memory preallocation caches before emulating an insn Emulation may cause a shadow pte to be instantiated, which requires memory resources. Make sure the caches are filled to avoid an oops. Signed-off-by: Avi Kivity commit e9e1741b896e474238422b3954eb05ff06075d61 Author: Avi Kivity Date: Sun Oct 28 18:48:59 2007 +0200 KVM: Move page fault processing to common code The code that dispatches the page fault and emulates if we failed to map is duplicated across vmx and svm. Merge it to simplify further bugfixing. Signed-off-by: Avi Kivity commit 302db0cf4a8a9eb286190abfec5d654cf61d6883 Author: Avi Kivity Date: Sun Oct 28 16:34:25 2007 +0200 KVM: x86 emulator: don't depend on cr2 for mov abs emulation The 'mov abs' instruction family (opcodes 0xa0 - 0xa3) still depends on cr2 provided by the page fault handler. This is wrong for several reasons: - if an instruction accessed misaligned data that crosses a page boundary, and if the fault happened on the second page, cr2 will point at the second page, not the data itself. - if we're emulating in real mode, or due to a FlexPriority exit, there is no cr2 generated. So, this change adds decoding for this instruction form and drops reliance on cr2. Signed-off-by: Avi Kivity commit 9471ec5bb21c235d14bbcd4ae244b838793c513f Author: Avi Kivity Date: Sun Oct 28 16:11:58 2007 +0200 KVM: SVM: Intercept the 'invd' and 'wbinvd' instructions 'invd' can destroy host data, and 'wbinvd' allows the guest to induce long (milliseconds) latencies. Noted by Ben Serebrin. Signed-off-by: Avi Kivity commit b5a23e7d1161f1182188c462353c3314010dcb6a Author: Avi Kivity Date: Sun Oct 28 16:09:18 2007 +0200 KVM: x86 emulator: invd instruction Emulate the 'invd' instruction (opcode 0f 08). Signed-off-by: Avi Kivity commit 8d2d0414d8203a3598fe403c18f7f612e69128fa Author: Laurent Vivier Date: Thu Oct 25 14:18:54 2007 +0200 KVM: SVM: Let gcc to choose which registers to save (i386) This patch lets GCC to determine which registers to save when we switch to/from a VCPU in the case of AMD i386 * Original code saves following registers: ebx, ecx, edx, esi, edi, ebp * Patched code: - informs GCC that we modify following registers using the clobber description: ebx, ecx, edx, esi, edi - rbp is saved (pop/push) because GCC seems to ignore its use in the clobber description. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit b8a500de75585cd6989d175b40421c04ea6b1f16 Author: Laurent Vivier Date: Thu Oct 25 14:18:53 2007 +0200 KVM: SVM: Let gcc to choose which registers to save (x86_64) This patch lets GCC to determine which registers to save when we switch to/from a VCPU in the case of AMD x86_64. * Original code saves following registers: rbx, rcx, rdx, rsi, rdi, rbp, r8, r9, r10, r11, r12, r13, r14, r15 * Patched code: - informs GCC that we modify following registers using the clobber description: rbx, rcx, rdx, rsi, rdi r8, r9, r10, r11, r12, r13, r14, r15 - rbp is saved (pop/push) because GCC seems to ignore its use in the clobber description. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 203ebca1065ff925cc35b31c85d160b2a3ebc473 Author: Laurent Vivier Date: Thu Oct 25 14:18:55 2007 +0200 KVM: VMX: Let gcc to choose which registers to save (i386) This patch lets GCC to determine which registers to save when we switch to/from a VCPU in the case of intel i386. * Original code saves following registers: eax, ebx, ecx, edx, edi, esi, ebp (using popa) * Patched code: - informs GCC that we modify following registers using the clobber description: ebx, edi, rsi - doesn't save eax because it is an output operand (vmx->fail) - cannot put ecx in clobber description because it is an input operand, but as we modify it and we want to keep its value (vcpu), we must save it (pop/push) - ebp is saved (pop/push) because GCC seems to ignore its use the clobber description. - edx is saved (pop/push) because it is reserved by GCC (REGPARM) and cannot be put in the clobber description. - line "mov (%%esp), %3 \n\t" has been removed because %3 is ecx and ecx is restored just after. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit acc3a1756feee379b35a913da2e7fd8e1deaeb98 Author: Laurent Vivier Date: Thu Oct 25 14:18:52 2007 +0200 KVM: VMX: Let gcc to choose which registers to save (x86_64) This patch lets GCC to determine which registers to save when we switch to/from a VCPU in the case of intel x86_64. * Original code saves following registers: rax, rbx, rcx, rdx, rsi, rdi, rbp, r8, r9, r10, r11, r12, r13, r14, r15 * Patched code: - informs GCC that we modify following registers using the clobber description: rbx, rdi, rsi, r8, r9, r10, r11, r12, r13, r14, r15 - doesn't save rax because it is an output operand (vmx->fail) - cannot put rcx in clobber description because it is an input operand, but as we modify it and we want to keep its value (vcpu), we must save it (pop/push) - rbp is saved (pop/push) because GCC seems to ignore its use in the clobber description. - rdx is saved (pop/push) because it is reserved by GCC (REGPARM) and cannot be put in the clobber description. - line "mov (%%rsp), %3 \n\t" has been removed because %3 is rcx and rcx is restored just after. - line ASM_VMX_VMWRITE_RSP_RDX() is moved out of the ifdef/else/endif Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit ac484b81d644721fbdfe0f6203ea18d3d23ff060 Author: Avi Kivity Date: Fri Oct 26 14:16:56 2007 +0200 KVM: x86 emulator: fix 'push imm8' emulation 'push imm8' found itself in the wrong switch somehow, so it is never executed. This fixes Windows 2003 installation. Signed-off-by: Avi Kivity commit 70ac85846fc8c818dd6ca0513954edeab8ef90d0 Author: Izik Eidus Date: Thu Oct 25 00:29:55 2007 +0200 KVM: Add ioctl to tss address from userspace, Currently kvm has a wart in that it requires three extra pages for use as a tss when emulating real mode on Intel. This patch moves the allocation internally, only requiring userspace to tell us where in the physical address space we can place the tss. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 12360bf90e1bd1e4780ab8903eab675b458ceb16 Author: Izik Eidus Date: Wed Oct 24 23:57:46 2007 +0200 KVM: Add kernel-internal memory slots Reserve a few memory slots for kernel internal use. This is good for case you have to register memory region and you want to be sure it was not registered from userspace, and for case you want to register a memory region that won't be seen from userspace. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 7de757f14b3e2e90a830ab0f2e42518ea1231c6c Author: Izik Eidus Date: Wed Oct 24 23:52:57 2007 +0200 KVM: Export memory slot allocation mechanism Remove kvm memory slot allocation mechanism from the ioctl and put it to exported function. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 2ddb29ee7761a7415b1172b77007dccb0cf49e39 Author: Izik Eidus Date: Thu Oct 25 11:54:04 2007 +0200 KVM: Unmap kernel-allocated memory on slot destruction kvm_vm_ioctl_set_memory_region() is able to remove memory in addition to adding it. Therefore when using kernel swapping support for old userspaces, we need to munmap the memory if the user request to remove it Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 031b69bbd4fabbd3cc4e93fe88cca3122498070a Author: Laurent Vivier Date: Mon Oct 22 16:33:07 2007 +0200 KVM: Use new smp_call_function_mask() in kvm_flush_remote_tlbs() In kvm_flush_remote_tlbs(), replace a loop using smp_call_function_single() by a single call to smp_call_function_mask() (which is new for x86_64). Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 0d878c5ce8309856b2aff32783601b761db96dec Author: Christian Borntraeger Date: Thu Oct 11 15:34:17 2007 +0200 KVM: Per-architecture hypercall definitions Currently kvm provides hypercalls only for x86* architectures. To provide hypercall infrastructure for other kvm architectures I split kvm_para.h into a generic header file and architecture specific definitions. Signed-off-by: Christian Borntraeger Signed-off-by: Avi Kivity commit b6afc446d80005ca125a58042a3a63e665f14110 Author: Avi Kivity Date: Sun Oct 21 18:34:54 2007 +0200 KVM: VMX: vmx_vcpu_setup(): remove unused variable. Noticed by Izik Eidus. Signed-off-by: Avi Kivity commit a785ddf7b0c9dd5367aed014eab3819be0214d0e Author: Avi Kivity Date: Sun Oct 21 11:03:36 2007 +0200 KVM: Add a might_sleep() annotation to gfn_to_page() This will help trap accesses to guest memory in atomic context. Signed-off-by: Avi Kivity commit d9f17a13c2180569f82acb85d93970c85a42a855 Author: Avi Kivity Date: Sun Oct 21 11:00:39 2007 +0200 KVM: Move vmx_vcpu_reset() out of vmx_vcpu_setup() Split guest reset code out of vmx_vcpu_setup(). Besides being cleaner, this moves the realmode tss setup (which can sleep) outside vmx_vcpu_setup() (which is executed with preemption enabled). Signed-off-by: Avi Kivity commit 3b06c8ee1e0710c99c2b34a3c34c9758256a6248 Author: Avi Kivity Date: Sun Oct 21 09:45:12 2007 +0200 Revert "KVM: VMX: Initialize vcpu with preemption enabled" This reverts commit 341131670f028f8bec97db6121c018f53129b9c3. It executes vcpu_load() before installing the preemption notifier, which leeds to oopses. Signed-off-by: Avi Kivity commit aa89acdb280d63973b255b9cb4d11c73f195fd15 Author: Kevin Pedretti Date: Sun Oct 21 08:55:50 2007 +0200 KVM: Improve local apic timer wraparound handling Better handle wrap-around cases when reading the APIC CCR (current count register). Also, if ICR is 0, CCR should also be 0... previously reading CCR before setting ICR would result in a large kinda-random number. Signed-off-by: Kevin Pedretti Signed-off-by: Avi Kivity commit 654f22693683aff28c006eceb15eb16cd0b25ec8 Author: Kevin Pedretti Date: Sun Oct 21 08:54:53 2007 +0200 KVM: Fix local apic timer divide by zero kvm_lapic_reset() was initializing apic->timer.divide_count to 0, which could potentially lead to a divide by zero error in apic_get_tmcct(). Any guest that reads the APIC's CCR (current count) register before setting DCR (divide configuration) would trigger a divide by zero exception in the host kernel, leading to a host-OS crash. This patch results in apic->timer.divide_count being initialized to 2 at reset, eliminating the bug (DCR=0 at reset, meaning divide by 2). Signed-off-by: Kevin Pedretti Signed-off-by: Avi Kivity commit 933a3f772d28b532cd09098257e482694a795dfb Author: Zhang Xiantao Date: Sat Oct 20 15:34:38 2007 +0800 KVM: Portability: Split kvm_vcpu into arch dependent and independent parts (part 1) First step to split kvm_vcpu. Currently, we just use an macro to define the common fields in kvm_vcpu for all archs, and all archs need to define its own kvm_vcpu struct. Signed-off-by: Zhang Xiantao Signed-off-by: Avi Kivity commit 648fc91671f57b818d9501aab30765df75165fbf Author: Anthony Liguori Date: Thu Oct 18 09:59:34 2007 -0500 KVM: Allocate userspace memory for older userspace Allocate a userspace buffer for older userspaces. Also eliminate phys_mem buffer. The memset() in kvmctl really kills initial memory usage but swapping works even with old userspaces. A side effect is that maximum guest side is reduced for older userspace on i386. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit bb1d1fee77d97efba72dccec85d857378e3abea5 Author: Avi Kivity Date: Thu Oct 18 17:35:57 2007 +0200 KVM: MMU: Fix dirty bit pte gpa calculation The host physical address has no business in there. Noticed by Izik Eidus. Signed-off-by: Avi Kivity commit e735785caa9c0a9134e1246bc8d5c5f73c2a3e65 Author: Laurent Vivier Date: Thu Oct 18 15:19:01 2007 +0200 KVM: Move kvm_guest_exit() after local_irq_enable() We need to make sure that the timer interrupt happens before we clear PF_VCPU, so the accounting code actually sees guest mode. http://lkml.org/lkml/2007/10/15/114 Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 1de6a8de93320521092aa237156fd5a6ed0d0ef5 Author: Christian Borntraeger Date: Thu Oct 18 14:39:10 2007 +0200 KVM: Use virtual cpu accounting if available for guest times. ppc and s390 offer the possibility to track process times precisely by looking at cpu timer on every context switch, irq, softirq etc. We can use that infrastructure as well for guest time accounting. We need to account the used time before we change the state. This patch adds a call to account_system_vtime to kvm_guest_enter and kvm_guest exit. If CONFIG_VIRT_CPU_ACCOUNTING is not set, account_system_vtime is defined in hardirq.h as an empty function, which means this patch does not change the behaviour on other platforms. I compile tested this patch on x86 and function tested the patch on s390. Signed-off-by: Christian Borntraeger Signed-off-by: Avi Kivity commit 341131670f028f8bec97db6121c018f53129b9c3 Author: Avi Kivity Date: Thu Oct 18 12:38:52 2007 +0200 KVM: VMX: Initialize vcpu with preemption enabled vcpu initialization require writes to memory (for the real mode tss), which is now a sleeping operation. Signed-off-by: Avi Kivity commit 1253f76f37189f0bfda7e4a46bfe537f329dc0db Author: Izik Eidus Date: Thu Oct 18 11:09:33 2007 +0200 KVM: Partial swapping of guest memory This allows guest memory to be swapped. Pages which are currently mapped via shadow page tables are pinned into memory, but all other pages can be freely swapped. The patch make gfn_to_page() elevate the page's reference count, and introduces kvm_release_page() that pairs with it. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 283c5eefd628c754df85434ed2aca079d35aa2aa Author: Izik Eidus Date: Wed Oct 17 19:17:48 2007 +0200 KVM: MMU: Make gfn_to_page() always safe In case the page is not present in the guest memory map, return a dummy page the guest can scribble on. This simplifies error checking in its users. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit ca335c8f08d88b4bb978afa02b86c206ecfd21d1 Author: Izik Eidus Date: Tue Oct 16 14:43:46 2007 +0200 KVM: MMU: Keep a reverse mapping of non-writable translations The current kvm mmu only reverse maps writable translation. This is used to write-protect a page in case it becomes a pagetable. But with swapping support, we need a reverse mapping of read-only pages as well: when we evict a page, we need to remove any mapping to it, whether writable or not. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 751e23de45cd219956036db6d55b8685e74a7090 Author: Izik Eidus Date: Tue Oct 16 14:42:30 2007 +0200 KVM: MMU: Add rmap_next(), a helper for walking kvm rmaps Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit f83562246921d6a8a7de8b76853a6835ace3699d Author: Aurelien Jarno Date: Wed Oct 17 19:30:41 2007 +0200 KVM: x86 emulator: fix access registers for instructions with ModR/M byte and Mod = 3 The patch belows changes the access type to register from memory for instructions that are declared as SrcMem or DstMem, but have a ModR/M byte with Mod = 3. It fixes (at least) the lmsw and smsw instructions on an AMD64 CPU, which are needed for FreeBSD. Signed-off-by: Aurelien Jarno Signed-off-by: Avi Kivity commit 0863fb5961a612a5d930c5796b7b0188082f4b14 Author: Avi Kivity Date: Thu Oct 18 10:46:02 2007 +0200 KVM: x86 emulator: use a defined flag definition EFLG_IF is not defined anywhere. Signed-off-by: Avi Kivity commit ad6c935c4963ee5577210ba47434c7c59aec81fa Author: Nitin A Kamble Date: Tue Oct 16 18:23:27 2007 -0700 KVM: x86 emulator: cmc, clc, cli, sti Instruction: cmc, clc, cli, sti opcodes: 0xf5, 0xf8, 0xfa, 0xfb respectively. Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit b622204087b5dbdc76b39cbfa288a41d325e3e9a Author: Avi Kivity Date: Wed Oct 17 12:20:21 2007 +0200 KVM: Actually move the interrupt injection code out of the critical section Commit 817b54a86b0a3e0e5955714b84577101ffff9c59 claimed to do this, but actually didn't (despite laying all the infrastructure for it). This completes the movement. Noticed by Eddie Dong. Signed-off-by: Avi Kivity commit f3a00bac6038e0a6ee519a6454ca2efc11805639 Author: Avi Kivity Date: Wed Oct 17 12:18:47 2007 +0200 KVM: MMU: Simplify page table walker Simplify the walker level loop not to carry so much information from one loop to the next. In addition to being complex, this made kmap_atomic() critical sections difficult to manage. As a result of this change, kmap_atomic() sections are limited to actually touching the guest pte, which allows the other functions called from the walker to do sleepy operations. This will happen when we enable swapping. Signed-off-by: Avi Kivity commit 9b6895d0e4bb62f46bdd05c7e4b4e99709462385 Author: Avi Kivity Date: Wed Oct 17 11:03:06 2007 +0200 Revert "KVM: MMU: Call update_dirty_bit() without disabling preemption" This reverts commit 5a691bafbc79643d60f1925a581d1af5a9f0f60d. It unmaps walker->table while leaving ptep pointing into it. Fails spectacularly on i386. Signed-off-by: Avi Kivity commit d8a0c28def19005173b0e4edcaa120b865eaac6d Author: Nitin A Kamble Date: Fri Oct 12 17:40:33 2007 -0700 KVM: x86 emulator: Implement emulation of instruction: inc & dec Instructions: inc r16/r32 (opcode 0x40-0x47) dec r16/r32 (opcode 0x48-0x4f) Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit f2d7854fd4932dec136dec5115a6d8e6d4a8a5a5 Author: Avi Kivity Date: Tue Oct 16 19:06:15 2007 +0200 KVM: VMX: Force vm86 mode if setting flags during real mode When resetting from userspace, we need to handle the flags being cleared even after we are in real mode. Signed-off-by: Avi Kivity commit 32262da4c1f9268a9c271360342821c114a8a8e7 Author: Avi Kivity Date: Tue Oct 16 17:22:08 2007 +0200 KVM: Rename KVM_TLB_FLUSH to KVM_REQ_TLB_FLUSH We now have a new namespace, KVM_REQ_*, for bits in vcpu->requests. Signed-off-by: Avi Kivity commit 817b54a86b0a3e0e5955714b84577101ffff9c59 Author: Avi Kivity Date: Tue Oct 16 16:29:39 2007 +0200 KVM: Move interrupt injection out of interrupt disabled section Instead of injecting interrupts while we're in the critical section during the guest switch, inject them earlier. In case we had an irq raised between the injection point and the switch, we check a bit during guest switch and if needed we go back and redo the injection. This improves system latency, and allows sleeping during injection (which is needed when injecting real-mode interrupts on Intel). Signed-off-by: Avi Kivity commit 1c37fdc33da77df7fbb0affe5c3896d15f6f2702 Author: Avi Kivity Date: Tue Oct 16 16:23:22 2007 +0200 KVM: Move apic timer interrupt backlog processing to common code Beside the obvious goodness of making code more common, this prevents a livelock with the next patch which moves interrupt injection out of the critical section. Signed-off-by: Avi Kivity commit 5a691bafbc79643d60f1925a581d1af5a9f0f60d Author: Izik Eidus Date: Mon Oct 15 19:24:52 2007 +0200 KVM: MMU: Call update_dirty_bit() without disabling preemption update_dirty_bit() will want to touch memory, which will one day invoke sleeping operations. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 0f4a1103e329eda5741eb548bc5746653471ce86 Author: Sheng Yang Date: Mon Oct 15 14:24:20 2007 +0800 KVM: x86 emulator: implement 'movnti mem, reg' Implement emulation of instruction: movnti m32/m64, r32/r64 opcode: 0x0f 0xc3 Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 3923231f506fb4e83f9fc5f8efce3607d696b33f Author: Laurent Vivier Date: Fri Oct 12 11:01:59 2007 +0200 KVM: Add some \n in ioapic_debug() Add new-line at end of debug strings. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit a279c26a8ad12130c347eddfd92de6f4a1c3b53b Author: Avi Kivity Date: Thu Oct 11 19:46:26 2007 +0200 KVM: Restore missing #include commit 33aafecf3f106ba6aa8847dfdae033a73e5d1b50 Author: Carsten Otte Date: Thu Oct 11 19:16:52 2007 +0200 KVM: Portability: split kvm_vcpu_ioctl This patch splits kvm_vcpu_ioctl into archtecture independent parts, and x86 specific parts which go to kvm_arch_vcpu_ioctl in x86.c. Common ioctls for all architectures are: KVM_RUN, KVM_GET/SET_(S-)REGS, KVM_TRANSLATE, KVM_INTERRUPT, KVM_DEBUG_GUEST, KVM_SET_SIGNAL_MASK, KVM_GET/SET_FPU Note that some PPC chips don't have an FPU, so we might need an #ifdef around KVM_GET/SET_FPU one day. x86 specific ioctls are: KVM_GET/SET_LAPIC, KVM_SET_CPUID, KVM_GET/SET_MSRS An interresting aspect is vcpu_load/vcpu_put. We now have a common vcpu_load/put which does the preemption stuff, and an architecture specific kvm_arch_vcpu_load/put. In the x86 case, this one calls the vmx/svm function defined in kvm_x86_ops. Signed-off-by: Carsten Otte Reviewed-by: Christian Borntraeger Reviewed-by: Christian Ehrhardt Signed-off-by: Avi Kivity commit 56161cd30f573c7aa24440df1f9f848c80c203da Author: Avi Kivity Date: Thu Oct 11 15:30:21 2007 +0200 KVM: MMU: When updating the dirty bit, inform the mmu about it Since the mmu uses different shadow pages for dirty large pages and clean large pages, this allows the mmu to drop ptes that are now invalid. Signed-off-by: Avi Kivity commit c507f33a3e7053fe31a9352b61e7bc76e4640c2f Author: Avi Kivity Date: Thu Oct 11 15:22:59 2007 +0200 KVM: MMU: Move dirty bit updates to a separate function Signed-off-by: Avi Kivity commit 7ccf679da43960a30336c5fcede3378f972763fb Author: Avi Kivity Date: Thu Oct 11 15:13:49 2007 +0200 KVM: MMU: Instatiate real-mode shadows as user writable shadows This is consistent with real-mode permissions. Signed-off-by: Avi Kivity commit 636a2d88e5b03699095dcafbf754fd2b3d6c7f17 Author: Avi Kivity Date: Thu Oct 11 15:12:24 2007 +0200 KVM: MMU: Disable write access on clean large pages By forcing clean huge pages to be read-only, we have separate roles for the shadow of a clean large page and the shadow of a dirty large page. This is necessary because different ptes will be instantiated for the two cases, even for read faults. Signed-off-by: Avi Kivity commit 154833765b9edde8fbc40cd30b2f0270bd6734d2 Author: Avi Kivity Date: Thu Oct 11 15:08:41 2007 +0200 KVM: MMU: Fix nx access bit for huge pages We must set the bit before the shift, otherwise the wrong bit gets set. Signed-off-by: Avi Kivity commit 14fe74643102320001eeb52f4fb940cc56eeea3a Author: Avi Kivity Date: Thu Oct 11 12:32:30 2007 +0200 KVM: Move guest pte dirty bit management to the guest pagetable walker This is more consistent with the accessed bit management, and makes the dirty bit available earlier for other purposes. Signed-off-by: Avi Kivity commit 4d7767d5d025a9ba5e230fd121aca7e1a064f969 Author: Anthony Liguori Date: Wed Oct 10 20:08:41 2007 -0500 KVM: MMU: More struct kvm_vcpu -> struct kvm cleanups This time, the biggest change is gpa_to_hpa. The translation of GPA to HPA does not depend on the VCPU state unlike GVA to GPA so there's no need to pass in the kvm_vcpu. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit 35e19206b7601a5a7c922f6c2932a01de15a5cb3 Author: Anthony Liguori Date: Wed Oct 10 19:25:50 2007 -0500 KVM: MMU: Clean up MMU functions to take struct kvm when appropriate Some of the MMU functions take a struct kvm_vcpu even though they affect all VCPUs. This patch cleans up some of them to instead take a struct kvm. This makes things a bit more clear. The main thing that was confusing me was whether certain functions need to be called on all VCPUs. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit ac413bb5e5ca60a3e12a99593d184577ff7518c4 Author: cotte@de.ibm.com Date: Wed Oct 10 17:16:19 2007 +0200 KVM: Move x86 msr handling to new files x86.[ch] Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity commit 2a96e86bf672a4c056483de24f4f25c3a19b4c11 Author: Avi Kivity Date: Wed Oct 10 14:03:16 2007 +0200 KVM: Replace enum by #define Easier for existence test (#ifdef) in userspace. Signed-off-by: Avi Kivity commit ad23abbeab86af3156467163b01b25237f99e9cb Author: Dong, Eddie Date: Wed Oct 10 14:26:45 2007 +0800 KVM: VMX: Reset mmu context when entering real mode Resetting an SMP guest will force AP enter real mode (RESET) with paging enabled in protected mode. While current enter_rmode() can only handle mode switch from nonpaging mode to real mode which leads to SMP reboot failure. Fix by reloading the mmu context on entering real mode. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Qing He Signed-off-by: Avi Kivity commit 342a6bf85cd40a70fd382324085dc3b0a901c865 Author: Eddie Dong Date: Wed Oct 10 12:15:54 2007 +0200 KVM: Split IOAPIC reset function and export for kernel RESET Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit ebac07d56f961752e209b662e2341aad3e85b408 Author: Eddie Dong Date: Wed Oct 10 12:14:25 2007 +0200 KVM: Export PIC reset for kernel device reset Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 7faf3e45cc45eb2b5b0db3e3f4412b15784a38cc Author: Izik Eidus Date: Tue Oct 9 19:20:39 2007 +0200 KVM: Support assigning userspace memory to the guest Instead of having the kernel allocate memory to the guest, let userspace allocate it and pass the address to the kernel. This is required for s390 support, but also enables features like memory sharing and using hugetlbfs backed memory. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 49c32b24524c0b929bcf93ebcc3acc9c7edc87e9 Author: Avi Kivity Date: Tue Oct 9 12:12:19 2007 +0200 KVM: VMX: Handle NMIs before enabling interrupts and preemption This makes sure we handle NMI on the current cpu, and that we don't service maskable interrupts before non-maskable ones. Signed-off-by: Avi Kivity commit 7060e1c92b504ac725e2ffbc91053c1dc684e685 Author: Mike Day Date: Mon Oct 8 09:02:08 2007 -0400 KVM: CodingStyle cleanup Signed-off-by: Mike D. Day Signed-off-by: Avi Kivity commit 82da48c29aabfb4941154e399e2a781d6eb786ca Author: Rusty Russell Date: Mon Oct 8 10:55:29 2007 +1000 KVM: Remove gratuitous casts from lapic.c Since vcpu->apic is of the correct type, there's not need to cast. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit a2230360fb019b080119126a9706c017a5cc96a4 Author: Rusty Russell Date: Mon Oct 8 10:50:48 2007 +1000 KVM: Hoist kvm_create_lapic() into kvm_vcpu_init() Move kvm_create_lapic() into kvm_vcpu_init(), rather than having svm and vmx do it. And make it return the error rather than a fairly random -ENOMEM. This also solves the problem that neither svm.c nor vmx.c actually handles the error path properly. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 3bbc5ebb64c17319970ef283c35aba79ed7fa915 Author: Rusty Russell Date: Mon Oct 8 10:48:30 2007 +1000 KVM: Add kvm_free_lapic() to pair with kvm_create_lapic() Instead of the asymetry of kvm_free_apic, implement kvm_free_lapic(). And guess what? I found a minor bug: we don't need to hrtimer_cancel() from kvm_main.c, because we do that in kvm_free_apic(). Also: 1) kvm_vcpu_uninit should be the reverse order from kvm_vcpu_init. 2) Don't set apic->regs_page to zero before freeing apic. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit f1b8c28f1886c9375361d7f2ebca1f742ea6bc5f Author: Avi Kivity Date: Mon Oct 8 10:01:45 2007 +0200 KVM: Check I/O APIC indirect index before writing Signed-off-by: Avi Kivity commit d2cfd9a5359db3b0fa8af0d07cf5801c3b22d9ae Author: Izik Eidus Date: Tue Oct 2 18:52:55 2007 +0200 KVM: Allow dynamic allocation of the mmu shadow cache size The user is now able to set how many mmu pages will be allocated to the guest. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 1842a5c0bf840e1a4f251f344136dd8ebc7c7974 Author: Izik Eidus Date: Mon Oct 1 22:14:18 2007 +0200 KVM: Add general accessors to read and write guest memory Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 06ba8d55ba4052ded08eea5bed9519c6f6780d8c Author: Laurent Vivier Date: Mon Oct 1 11:01:06 2007 +0200 KVM: x86 emulator: Correct management of REP prefix This patch corrects some errors appearing when we have an emulation failure on an operation using REP prefix. When x86_emulate_insn() fails, saving EIP and ECX is not enough as emulation should have modified other registers like RSI or RDI. Moreover, the emulation can fail on the writeback, and in this case we are not able to restore registers. At beginning of x86_emulate_insn(), we restore registers from vcpu as they were not modified by x86d_decode_insn() and we save EIP to be able to restore it in case of failure. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit c78fc6fb953bbbd9e0b931759b03162768991132 Author: Izik Eidus Date: Thu Sep 27 14:11:22 2007 +0200 KVM: Remove the usage of paeg->private field by rmap When kvm uses user-allocated pages in the future for the guest, we won't be able to use page->private for rmap, since page->rmap is reserved for the filesystem. So we move the rmap base pointers to the memory slot. A side effect of this is that we need to store the gfn of each gpte in the shadow pages, since the memory slot is addressed by gfn, instead of hfn like struct page. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 08079fa606400c5594e91ac26dcfbabe63940507 Author: Avi Kivity Date: Sun Sep 30 11:02:53 2007 +0200 KVM: VMX: Simplify vcpu_clear() Now that smp_call_function_single() knows how to call a function on the current cpu, there's no need to check explicitly. Signed-off-by: Avi Kivity commit b595c624ca08b063ee5397a5cc881126a6570654 Author: Avi Kivity Date: Sun Sep 30 10:50:12 2007 +0200 KVM: VMX: Don't clear the vmcs if the vcpu is not loaded on any processor Noted by Eddie Dong. Signed-off-by: Avi Kivity commit c0c8b920137e988bb4cde1bb41e0e409c8abb844 Author: Laurent Vivier Date: Tue Sep 25 15:36:35 2007 +0200 KVM: x86 emulator: remove unused variable Remove unused variable introduced by commit 5ed6627ee96f0a6802d99e71879d98610ba17e01 (I missed it, sorry) Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 9889cbb1bb752615ba1f2f533f7e1386ffeb29c3 Author: Laurent Vivier Date: Thu Sep 27 10:45:34 2007 +0200 KVM: x86 emulator: On a pop instruction, don't restore ECX and EIP on error This patch corrects a mistake introduced by commit 5d9b36eec8ca6abe03da91efdfc7b5861525bd43 and reported by Nitin A Kamble. The pop instruction restores ECX and EIP if read_std() fails and if we have a REP prefix, but at this level ECX and EIP are not saved (and not modified). We don't have to restore it. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit ba483db9d1e6bf59501c5751399e8b7f966c01d6 Author: Avi Kivity Date: Thu Sep 27 10:07:04 2007 +0200 i386: Expose IOAPIC register definitions even if CONFIG_X86_IO_APIC is not set KVM reuses the IOAPIC register definitions, and needs them even if the host is not compiled with IOAPIC support. Move the #ifdef below so that only the IOAPIC variables and functions are protected, and the register definitions are available to all. Signed-off-by: Avi Kivity commit 5ed6627ee96f0a6802d99e71879d98610ba17e01 Author: Laurent Vivier Date: Tue Sep 25 13:36:40 2007 +0200 KVM: x86 emulator: Any legacy prefix after a REX prefix nullifies its effect This patch modifies the management of REX prefix according behavior I saw in Xen 3.1. In Xen, this modification has been introduced by Jan Beulich. http://lists.xensource.com/archives/html/xen-changelog/2007-01/msg00081.html Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 6972c9253725255034d0f8d83f5bdbf70430a95b Author: Laurent Vivier Date: Mon Sep 24 17:00:58 2007 +0200 KVM: Purify x86_decode_insn() error case management The only valid case is on protected page access, other cases are errors. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 2cd2d1d11d1f67c4d660c0cf6758dd6e588c4dd6 Author: Qing He Date: Mon Sep 24 17:39:41 2007 +0800 KVM: apic round robin cleanup If no apic is enabled in the bitmap of an interrupt delivery with delivery mode of lowest priority, a warning should be reported rather than select a fallback vcpu Signed-off-by: Qing He Signed-off-by: Eddie (Yaozu) Dong Signed-off-by: Avi Kivity commit 04817088a0e8d96587e4fb954d104d62f71df58d Author: Qing He Date: Mon Sep 24 17:22:13 2007 +0800 KVM: x86_emulator: no writeback for bt Signed-off-by: Qing He Signed-off-by: Avi Kivity commit a21855c2ed30a7a01468558bfc12a05722ef3771 Author: Laurent Vivier Date: Mon Sep 24 11:10:56 2007 +0200 KVM: x86 emulator: Remove no_wb, use dst.type = OP_NONE instead Remove no_wb, use dst.type = OP_NONE instead, idea stollen from xen-3.1 Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit d7f0f98414e3ab5259d54aa6ebd86a825af76980 Author: Laurent Vivier Date: Mon Sep 24 11:10:55 2007 +0200 KVM: x86 emulator: remove _eflags and use directly ctxt->eflags. Remove _eflags and use directly ctxt->eflags. Caching eflags is not needed as it is restored to vcpu by kvm_main.c:emulate_instruction() from ctxt->eflags only if emulation doesn't fail. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit d98df34cc539942d8d5540ffa2425ca91056a7d3 Author: Laurent Vivier Date: Mon Sep 24 11:10:54 2007 +0200 KVM: x86 emulator: split some decoding into functions for readability To improve readability, move push, writeback, and grp 1a/2/3/4/5/9 emulation parts into functions. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 62d1ea7fdcdb905072198e4cec8f724c8ad33092 Author: Ryan Harper Date: Tue Sep 18 14:05:16 2007 -0500 KVM: MMU: Ignore reserved bits in cr3 in non-pae mode This patch removes the fault injected when the guest attempts to set reserved bits in cr3. X86 hardware doesn't generate a fault when setting reserved bits. The result of this patch is that vmware-server, running within a kvm guest, boots and runs memtest from an iso. Signed-off-by: Ryan Harper Signed-off-by: Avi Kivity commit 4acc535e64696fb09da6d2f41a5a8b8f60739c03 Author: Avi Kivity Date: Sun Sep 23 14:10:49 2007 +0200 KVM: MMU: Make flooding detection work when guest page faults are bypassed When we allow guest page faults to reach the guests directly, we lose the fault tracking which allows us to detect demand paging. So we provide an alternate mechnism by clearing the accessed bit when we set a pte, and checking it later to see if the guest actually used it. Signed-off-by: Avi Kivity commit 30649900566e8e8785b814f4a40e6660d8086873 Author: Avi Kivity Date: Sun Sep 16 18:58:32 2007 +0200 KVM: Allow not-present guest page faults to bypass kvm There are two classes of page faults trapped by kvm: - host page faults, where the fault is needed to allow kvm to install the shadow pte or update the guest accessed and dirty bits - guest page faults, where the guest has faulted and kvm simply injects the fault back into the guest to handle The second class, guest page faults, is pure overhead. We can eliminate some of it on vmx using the following evil trick: - when we set up a shadow page table entry, if the corresponding guest pte is not present, set up the shadow pte as not present - if the guest pte _is_ present, mark the shadow pte as present but also set one of the reserved bits in the shadow pte - tell the vmx hardware not to trap faults which have the present bit clear With this, normal page-not-present faults go directly to the guest, bypassing kvm entirely. Unfortunately, this trick only works on Intel hardware, as AMD lacks a way to discriminate among page faults based on error code. It is also a little risky since it uses reserved bits which might become unreserved in the future, so a module parameter is provided to disable it. Signed-off-by: Avi Kivity commit afa232aeb1676c63c5c4000a6d865cdc9455b2b5 Author: Izik Eidus Date: Sun Sep 23 12:30:19 2007 +0200 KVM: MMU: Set shadow pte atomically in mmu_pte_write_zap_pte() Setting shadow page table entry should be set atomicly using set_shadow_pte(). Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit 99f6c824362215f3038cfe54ddcd3c940281e9cd Author: Avi Kivity Date: Fri Sep 21 05:29:13 2007 +0200 KVM: Fix ioapic edge-triggered interrupts - clear irr after service - do not service after unmasking; wait for a new edge Signed-off-by: Avi Kivity commit 5fdd2a196e7975d446fedf6973cbb20708f1359c Author: Avi Kivity Date: Thu Sep 20 12:27:28 2007 +0200 KVM: Fix host oops due to guest changing efer If the guest changes efer from long mode with sce disabled to legacy mode, then load_transition_efer() zeros vmx->host_state.guest_efer_loaded, but the SCE-disabled efer remains in effect. So when we return to the host, we disable SCE and syscalls no longer work. Fix by (a) not touching vmx->host_state.guest_efer_loaded if we're not setting it, and instead (b) clearing it explicitly when we switch back. Also switch back when the guest writes to efer so we start from a clean slate. Signed-off-by: Avi Kivity commit e8ebaa91f96407a90c1cb81708a87a25f40ba8ab Author: Laurent Vivier Date: Thu Sep 20 11:17:24 2007 +0200 KVM: x86 emulator: fix repne/repnz decoding The repnz/repne instructions must set rep_prefix to 1 like rep/repe/repz. This patch correct the disk probe problem met with OpenBSD. This issue appears with commit 091b206f6c56f2329e11bac2fa40d6f236ab0bc2 because before it, the decoding was done internally to kvm and after it is done by x86_emulate.c (which doesn't do it correctly). Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 0203e2d5d0d0cea6eed6e437d9456aad71135913 Author: Avi Kivity Date: Wed Sep 19 16:08:53 2007 +0200 KVM: Implement ioapic irq polarity bit Reverse the sense of the irq level if the polarity bit is set. Signed-off-by: Avi Kivity commit faba110779451794f764a4802e740146e8efb93f Author: Avi Kivity Date: Wed Sep 19 15:48:58 2007 +0200 KVM: Avoid redelivery of edge-triggered irq if it is already in service Noticed by Eddie Dong. Signed-off-by: Avi Kivity commit 3ddc321087b0083fec2eff1bc613410fdc2e8388 Author: Laurent Vivier Date: Wed Sep 19 13:41:55 2007 +0200 KVM: x85 emulator: Correct inconcistency in between cr2 and ctxt->cr2. This patch corrects an inconcistency of cr2 introduced by the x86 emulator split. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 37d266e7330baedc52fab5cc699cff2c8cc2947e Author: Nitin A Kamble Date: Tue Sep 18 16:34:25 2007 -0700 KVM: x86 emulator: fix merge screwup due to emulator split This code has gone to wrong place in the file. Moving it back to right location. Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit 1196dd4e2e6f09053335b0a91e3cc793808c00a7 Author: Avi Kivity Date: Wed Sep 19 10:52:18 2007 +0200 KVM: Fix ioapic.c compilation failure due to missing include Signed-off-by: Avi Kivity commit 44a0469583ff93240acb76085a993a1d30202679 Author: Avi Kivity Date: Wed Sep 19 10:44:58 2007 +0200 KVM: VMX: Fix build on i386 due to EFER_LMA not defined commit caba4b5c24f24bf003dd385e5658f0b682bdf0ac Author: Avi Kivity Date: Wed Aug 29 03:48:05 2007 +0300 KVM: VMX: Further reduce efer reloads KVM avoids reloading the efer msr when the difference between the guest and host values consist of the long mode bits (which are switched by hardware) and the NX bit (which is emulated by the KVM MMU). This patch also allows KVM to ignore SCE (syscall enable) when the guest is running in 32-bit mode. This is because the syscall instruction is not available in 32-bit mode on Intel processors, so the SCE bit is effectively meaningless. Signed-off-by: Avi Kivity commit 97594d420a09db38e3f2c8aa2c8481dc51c11e82 Author: Avi Kivity Date: Tue Sep 18 15:26:30 2007 +0200 KVM: Fix #UD exception delivery It doesn't have an error code, and it uses the #UD vector. Signed-off-by: Avi Kivity commit 5e7a195fc4b1c0df577658e01a25b91d49bc68ee Author: Avi Kivity Date: Tue Sep 18 14:19:00 2007 +0200 KVM: Fix ioapic level-triggered interrupt redelivery The ioapic failed to set the irr bit if a previous interrupt was already being serviced. This caused interrupt loss fairly soon, leading to loss of level-triggered devices like pic networking. This patch fixes the problem by always setting irr when an irq is asserted. Signed-off-by: Avi Kivity commit 5d9b36eec8ca6abe03da91efdfc7b5861525bd43 Author: Laurent Vivier Date: Tue Sep 18 11:27:37 2007 +0200 KVM: Call x86_decode_insn() only when needed Move emulate_ctxt to kvm_vcpu to keep emulate context when we exit from kvm module. Call x86_decode_insn() only when needed. Modify x86_emulate_insn() to not modify the context if it must be re-entered. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit a00840cfcc2c18662e04ac94fcbe12266c403cad Author: Laurent Vivier Date: Tue Sep 18 11:27:27 2007 +0200 KVM: emulate_instruction() calls now x86_decode_insn() and x86_emulate_insn() emulate_instruction() calls now x86_decode_insn() and x86_emulate_insn(). x86_emulate_insn() is x86_emulate_memop() without the decoding part. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit a40bf553563276cf3aff293b6ec36373bf3dc968 Author: Laurent Vivier Date: Tue Sep 18 11:27:19 2007 +0200 KVM: x86 emulator: move all decoding process to function x86_decode_insn() Split the decoding process into a new function x86_decode_insn(). Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit c18617e89f3a94fd74d55dde36b54c8ca23072f9 Author: Laurent Vivier Date: Tue Sep 18 11:52:50 2007 +0200 KVM: x86 emulator: move all x86_emulate_memop() to a structure Move all x86_emulate_memop() common variables between decode and execute to a structure decode_cache. This will help in later separating decode and emulate. struct decode_cache { u8 twobyte; u8 b; u8 lock_prefix; u8 rep_prefix; u8 op_bytes; u8 ad_bytes; struct operand src; struct operand dst; unsigned long *override_base; unsigned int d; unsigned long regs[NR_VCPU_REGS]; unsigned long eip; /* modrm */ u8 modrm; u8 modrm_mod; u8 modrm_reg; u8 modrm_rm; u8 use_modrm_ea; unsigned long modrm_ea; unsigned long modrm_val; }; Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit d6a754e5ec1ae429e7bd22a2b54e0fea1d64e1d9 Author: Laurent Vivier Date: Tue Sep 18 11:26:38 2007 +0200 KVM: x86 emulator: remove unused functions Remove #ifdef functions never used Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 8db6e3d54971e76019b02a6ad860c9df35218dfc Author: Anthony Liguori Date: Mon Sep 17 14:57:50 2007 -0500 KVM: Refactor hypercall infrastructure (v3) This patch refactors the current hypercall infrastructure to better support live migration and SMP. It eliminates the hypercall page by trapping the UD exception that would occur if you used the wrong hypercall instruction for the underlying architecture and replacing it with the right one lazily. A fall-out of this patch is that the unhandled hypercalls no longer trap to userspace. There is very little reason though to use a hypercall to communicate with userspace as PIO or MMIO can be used. There is no code in tree that uses userspace hypercalls. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit cd132dabf169ce61b5be58d42d9bd08984cba429 Author: Anthony Liguori Date: Mon Sep 17 14:57:49 2007 -0500 KVM: x86 emulator: Add vmmcall/vmcall to x86_emulate (v3) Add vmmcall/vmcall to x86_emulate. Future patch will implement functionality for these instructions. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit 17f668f73876cb0a67404db12b843850a9426bbb Author: Avi Kivity Date: Mon Sep 17 11:02:51 2007 +0200 KVM: Fix virtualization menu help text What guest drivers? Signed-off-by: Avi Kivity commit 23263a086e85f0065f95e3cb676dd96434da98d8 Author: Avi Kivity Date: Mon Sep 17 10:59:31 2007 +0200 KVM: Remove errant printk() in kvm_vcpu_ioctl_get_sregs() Signed-off-by: Avi Kivity commit 718a3339a903ea1935148eb095c2f8ce741a54a2 Author: Avi Kivity Date: Mon Sep 17 10:58:27 2007 +0200 KVM: Fix kvm_vcpu_ioctl_get_sregs() warning on i386 Signed-off-by: Avi Kivity commit 37fa44d29fb9d9c47126e40bfe266f8bf74de43d Author: Qing He Date: Mon Sep 17 14:47:13 2007 +0800 KVM: fix PIC interrupt delivery on different APIC conditions This patch changes the PIC interrupts delivery. Now it is only deliverd to vcpu0 when either condition is met (on vcpu0): 1. local APIC is hardware disabled 2. LVT0 is unmasked and configured to delivery mode ExtInt It fixes the 2x faster wall clock on x86_64 and SMP i386 Linux guests Signed-off-by: Qing He Signed-off-by: Avi Kivity commit c408e4e8d9045d53c1d82c622a5756febd051ef9 Author: Avi Kivity Date: Sat Sep 15 17:34:36 2007 +0300 KVM: Skip pio instruction when it is emulated, not executed If we defer updating rip until pio instructions are executed, we have a problem with reset: a pio reset updates rip, and when the instruction completes we skip the emulated instruction, pointing rip somewhere completely unrelated. Fix by updating rip when we see decode the instruction, not after emulation. Signed-off-by: Avi Kivity commit 340bcebdee0382c3b1dd9f963e21e4217594467b Author: Nitin A Kamble Date: Sat Sep 15 10:45:05 2007 +0300 KVM: x86 emulator: popf Implement emulation of instruction: popf opcode: 0x9d Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit 338be073d760fde05ee2f78ace4e9576dc3e6909 Author: Nitin A Kamble Date: Sat Sep 15 10:43:33 2007 +0300 KVM: x86 emulator: fix src, dst value initialization Some operand fetches are less than the machine word size and can result in stale bits if used together with operands of different sizes. Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit a5f988993b5b167d007c8c33d45ad8e0f849d22a Author: Nitin A Kamble Date: Sat Sep 15 10:41:26 2007 +0300 KVM: x86 emulator: jmp abs Implement emulation of instruction: jump absolute r/m opcode: 0xff /4 Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit c6aeb4632919c37317213c9b5a41bedbcc8b3416 Author: Nitin A Kamble Date: Sat Sep 15 10:35:36 2007 +0300 KVM: x86 emulator: lea Implement emulation of instruction lea r16/r32, m opcode: 0x8d: Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit c9aa71c7901df4fcf1eb33721bea8b581188f2bf Author: Nitin A Kamble Date: Sat Sep 15 10:25:41 2007 +0300 KVM: X86 emulator: jump conditional short Implement emulation of more jump conditional instructions jcc shortrel opcodes: 0x70 - 0x7f Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit ef70803677eec7ab37d61e48b0d1cb628c3f991b Author: Nitin A Kamble Date: Sat Sep 15 10:23:07 2007 +0300 KVM: x86 emulator: imlpement jump conditional relative Implement emulation of instruction: jump conditional rel opcodes: 0x0f 0x80 - 0x0f 0x8f Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit 021854e6f9566e2990c1dfee474d4d509f84e3fd Author: Nitin A Kamble Date: Sat Sep 15 10:13:07 2007 +0300 KVM: x86 emulator: sort opcodes into ascending order Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit 28621bdce24324e1f8b33fa25595cc0609153be6 Author: Sheng Yang Date: Wed Sep 12 18:03:11 2007 +0800 KVM: VMX: Prevent setting CPU_BASED_TPR_SHADOW on i386 host Though tpr shadow feature can be used on i386 host, but it needs support from virtual apic access feature which hasn't been implemented yet, otherwise it will cause trouble on i386 machine which supports this feature. This patch disables tpr shadow feature for i386 host now. Signed-off-by: Sheng Yang Signed-off-by: Qing He Signed-off-by: Avi Kivity commit 58d8159c7264eee015ad0656afd018aecbb3c69f Author: Avi Kivity Date: Wed Sep 12 13:21:09 2007 +0300 KVM: Improve emulation failure reporting Report failed opcodes from all locations. Signed-off-by: Avi Kivity commit 0fe149eb04e5e67f4d3ebc2ab9f2426356a308ba Author: Nitin A Kamble Date: Tue Aug 28 18:22:47 2007 -0700 KVM: x86 emulator: pushf Implement emulation of instruction pushf opcode: 0x9c Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit 917fca3116605cfa2db01d390ba94b0412c88eb3 Author: Nitin A Kamble Date: Tue Aug 28 18:08:37 2007 -0700 KVM: x86 emulator: call near Implement emulation of instruction opcode: 0xe8 call (near) Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit 2b15dbf376872112c832576cc3b3f618e0b85e2d Author: Nitin A Kamble Date: Tue Aug 28 17:58:52 2007 -0700 KVM: x86 emulator: push imm8 Implement the instruction push imm8 opcode: 0x6a Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit c7c2eaa2c305ed106da78afd7b95f42cec8d6dc8 Author: He, Qing Date: Wed Sep 12 14:18:28 2007 +0800 KVM: VMX: Fix exit qualification width on i386 According to Intel Software Developer's Manual, Vol. 3B, Appendix H.4.2, exit qualification should be of natural width. However, current code uses u64 as the data type for this register, which occasionally introduces invalid value to VMExit handling logics. This patch fixes this bug. I have tested Windows and Linux guest on i386 host, and they can boot successfully with this patch. Signed-off-by: Qing He Signed-off-by: Avi Kivity commit de60b339983ae64920b1bc58bb5c2c6b10db5d93 Author: Eddie Dong Date: Wed Sep 12 10:58:04 2007 +0300 KVM: Fix link error to "genapic" GET_APIC_ID may use genapic instance for some machine configuration in i386 architecture, but it is not exported for outside usage. This patch remove this reference. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 0663a73e366dd1df52c0ce4fec32f47455575324 Author: Avi Kivity Date: Mon Sep 10 18:10:54 2007 +0300 KVM: Move main vcpu loop into subarch independent code This simplifies adding new code as well as reducing overall code size. Signed-off-by: Avi Kivity commit ec1ff57323b7ce5022cae99e27ff8297ce2aaa27 Author: Avi Kivity Date: Mon Sep 10 17:27:03 2007 +0300 KVM: VMX: Move vm entry failure handling to the exit handler This will help moving the main loop to subarch independent code. Signed-off-by: Avi Kivity commit 2f6ad5e1fb93c0392e6cfaf2ef2bee3aaaa19244 Author: Avi Kivity Date: Mon Sep 10 15:20:59 2007 +0300 KVM: Remove smp_processor_id() in kvm_vcpu_kick() The value is meaningless since it can change; instead call the function unconditionally. It is a no-op on the same cpu anyway. This removes annoying warning on runtime. Signed-off-by: Avi Kivity commit a40fa4c30f0883a3a4a1560e0174540d6594e0ca Author: Avi Kivity Date: Mon Sep 10 11:28:17 2007 +0300 KVM: MMU: Don't do GFP_NOWAIT allocations Before preempt notifiers, kvm needed to allocate memory with GFP_NOWAIT so as not to have to enable preemption and take a heavyweight exit. On oom, we'd fall back to a GFP_KERNEL allocation. With preemption notifiers, we can do a GFP_KERNEL allocation, and perform the heavyweight exit only if the kernel decides to put us to sleep. Signed-off-by: Avi Kivity commit 5b25a47c1edb6ba9ac23e745260e7533be371c1d Author: He, Qing Date: Mon Sep 10 11:01:52 2007 +0300 KVM: fix apic timer migration when inactive When local apic timer is inactive or is expired in one shot mode, it should not be restarted on vcpu and hrtimer migration. This patch fixes this. Signed-off-by: Qing He Signed-off-by: Avi Kivity commit e44af0f4ee99974ce40102e23784bc3cae7f4466 Author: Jindrich Makovicka Date: Sun Sep 9 18:45:01 2007 +0300 KVM: Fix lapic 64-bit division on 32-bit hosts Signed-off-by: Avi Kivity commit c54c215e7e71b99c0a3270d7fc85668179bea67a Author: Christian Ehrhardt Date: Sun Sep 9 15:41:59 2007 +0300 KVM: Rename kvm_arch_ops to kvm_x86_ops This patch just renames the current (misnamed) _arch namings to _x86 to ensure better readability when a real arch layer takes place. Signed-off-by: Christian Ehrhardt Signed-off-by: Avi Kivity commit beec957bd8205ebbd9dc2eecb166fe4ae06e31e4 Author: Laurent Vivier Date: Thu Aug 30 14:56:21 2007 +0200 KVM: Simplify memory allocation The mutex->splinlock convertion alllows us to make some code simplifications. As we can keep the lock longer, we don't have to release it and then have to check if the environment has not been modified before re-taking it. We can remove kvm->busy and kvm->memory_config_version. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit f71c862171a7265085798d1aa8c43eadb6d85520 Author: Rusty Russell Date: Thu Sep 6 01:21:32 2007 +1000 KVM: Hoist SVM's get_cs_db_l_bits into core code. SVM gets the DB and L bits for the cs by decoding the segment. This is in fact the completely generic code, so hoist it for kvm-lite to use. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 1cfd09dd0492b50376ed703f4252c489d91d1597 Author: Rusty Russell Date: Thu Sep 6 01:20:38 2007 +1000 KVM: Keep control regs in sync We don't update the vcpu control registers in various places. We should do so. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit aa38840d3d2e0a804e628077df8d8879b496d741 Author: Rusty Russell Date: Sun Sep 9 14:12:54 2007 +0300 KVM: Clean up unloved invlpg emulation invlpg shouldn't fetch the "src" address, since it may not be valid, however SVM's "solution" which neuters emulation of all group 7 instruction is horrible and breaks kvm-lite. The simplest fix is to put a special check in for invlpg. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 8fa7178a4f0c96662bab31ff46e3bff1995ff14a Author: Rusty Russell Date: Sun Sep 9 14:10:57 2007 +0300 KVM: Remove the unused invlpg member of struct kvm_arch_ops. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit f4ed61146e11e6f42500385feee51eb30ed324d0 Author: Amit Shah Date: Sat Aug 25 11:35:52 2007 +0300 KVM: Set the ET flag in CR0 after initializing FX This was missed when moving stuff around in fbc4f2e Fixes Solaris guests and bug #1773613 Signed-off-by: Amit Shah Signed-off-by: Avi Kivity commit fe3f479c1a1564b3612a955f037a1905b85c9f6f Author: He, Qing Date: Mon Sep 3 17:07:41 2007 +0300 KVM: enable in-kernel APIC INIT/SIPI handling This patch enables INIT/SIPI handling using in-kernel APIC by introducing a ->mp_state field to emulate the SMP state transition. Signed-off-by: Qing He Signed-off-by: Xin Li commit a0c1343ffdac844fe659678928d1eb6c88e8aeb4 Author: He, Qing Date: Mon Sep 3 17:01:36 2007 +0300 KVM: round robin for APIC lowest priority delivery mode Signed-off-by: Qing He Signed-off-by: Avi Kivity commit ca7d5e3ddce0d1483fbb28ba59d7677c8935d785 Author: Eddie Dong Date: Mon Sep 3 17:00:24 2007 +0300 KVM: deliver PIC interrupt only to vcpu0 Signed-off-by: Eddie (Yaozu) Dong Signed-off-by: Avi Kivity commit 1fef0a7c83cc8ce89c6ea25225898da57ea68a63 Author: Eddie Dong Date: Mon Sep 3 16:56:58 2007 +0300 KVM: VMX: Fix tpr threshold updating The TPR threshold must be updated only after any irqs are injected. Signed-off-by: Eddie (Yaozu) Dong Signed-off-by: Avi Kivity commit 43803341a9873c3955f10352b30f5d449aae70b5 Author: He, Qing Date: Thu Aug 30 17:04:26 2007 +0800 KVM: disable tpr/cr8 sync when in-kernel APIC is used Signed-off-by: Qing He Signed-off-by: Avi Kivity commit 966b840d0d7f52fdf2062772a1477f4d2536ab8f Author: Eddie Dong Date: Mon Sep 3 16:15:12 2007 +0300 KVM: Migrate lapic hrtimer when vcpu moves to another cpu This reduces overhead by accessing cachelines from the wrong node, as well as simplifying locking. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 50587b4ba6352cb87212b581f3e6a4b21ee5ff7f Author: Eddie Dong Date: Sat Aug 25 18:00:41 2007 +0300 KVM: Keep track of missed timer irq injections APIC timer IRQ is set every time when a certain period expires at host time, but the guest may be descheduled at that time and thus the irq be overwritten by later fire. This patch keep track of firing irq numbers and decrease only when the IRQ is injected to guest or buffered in APIC. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Qing He Signed-off-by: Avi Kivity commit 09fe5ff51331cc089d9d02b33ef0fc512dcd8f69 Author: Yang, Sheng Date: Mon Sep 3 16:37:44 2007 +0300 KVM: VMX: Use shadow TPR/cr8 for 64-bits guests This patch enables TPR shadow of VMX on CR8 access. 64bit Windows using CR8 access TPR frequently. The TPR shadow can improve the performance of access TPR by not causing vmexit. Signed-off-by: Sheng Yang Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit b2954a203243fa837c8c867163b00d2dee278048 Author: Eddie Dong Date: Mon Aug 6 16:29:07 2007 +0300 KVM: pending irq save/restore Add in kernel irqchip save/restore support for pending vectors. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Qing He Signed-off-by: Avi Kivity commit 6546954a502dedf79401c7e5f564573df78e2f61 Author: Eddie Dong Date: Thu Sep 6 12:22:56 2007 +0300 KVM: in-kernel LAPIC save and restore support This patch adds a new vcpu-based IOCTL to save and restore the local apic registers for a single vcpu. The kernel only copies the apic page as a whole, extraction of registers is left to userspace side. On restore, the APIC timer is restarted from the initial count, this introduces a little delay, but works fine. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Qing He Signed-off-by: Avi Kivity commit 3ae9777fe4c0fdc9688a8976ed105f537b5e2aea Author: He, Qing Date: Sun Aug 5 10:49:16 2007 +0300 KVM: in-kernel IOAPIC save and restore support This patch adds support for in-kernel ioapic save and restore (to and from userspace). It uses the same get/set_irqchip ioctl as in-kernel PIC. Signed-off-by: Qing He Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 8002f6c199d9c8535ee7848f55c35d012433e75a Author: He, Qing Date: Thu Aug 2 14:03:07 2007 +0300 KVM: Bypass irq_pending get/set when using in kernel irqchip vcpu->irq_pending is saved in get/set_sreg IOCTL, but when in-kernel local APIC is used, doing this may occasionally overwrite vcpu->apic to an invalid value, as in the vm restore path. Signed-off-by: Qing He commit aae5fefba1de58a016d5c49c92c79a58ed989721 Author: He, Qing Date: Thu Jul 26 11:05:18 2007 +0300 KVM: Add get/set irqchip ioctls for in-kernel PIC live migration support This patch adds two new ioctls to dump and write kernel irqchips for save/restore and live migration. PIC s/r and l/m is implemented in this patch. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Qing He Signed-off-by: Avi Kivity commit 6e031384c47b825dd70a6c412f214d3379ed1f83 Author: Eddie Dong Date: Sun Jul 22 10:36:31 2007 +0300 KVM: Protect in-kernel pio using kvm->lock pio operation and IRQ_LINE kvm_vm_ioctl is not kvm->lock protected. Add lock to same with IOAPIC MMIO operations. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 38557cfd5156f87f7f75623600b6b8c30e4e1ace Author: Eddie Dong Date: Wed Jul 18 12:15:21 2007 +0300 KVM: Emulate hlt in the kernel By sleeping in the kernel when hlt is executed, we simplify the in-kernel guest interrupt path considerably. Signed-off-by: Gregory Haskins Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 1fd2279b67369669c95e4474a9a1e0b0b6fbb060 Author: Eddie Dong Date: Wed Jul 18 12:03:39 2007 +0300 KVM: In-kernel I/O APIC model This allows in-kernel host-side device drivers to raise guest interrupts without going to userspace. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit d69018f178ceb0cbb93fdb4795b1b503c6899162 Author: Eddie Dong Date: Thu Sep 6 12:22:56 2007 +0300 KVM: Emulate local APIC in kernel Because lightweight exits (exits which don't involve userspace) are many times faster than heavyweight exits, it makes sense to emulate high usage devices in the kernel. The local APIC is one such device, especially for Windows and for SMP, so we add an APIC model to kvm. It also allows in-kernel host-side drivers to inject interrupts without going through userspace. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Qing He Signed-off-by: Avi Kivity commit 7ae590c3ab0dab8a6e94965ccc2e77f9c6309a8d Author: Eddie Dong Date: Wed Jul 18 11:34:57 2007 +0300 KVM: Define and use cr8 access functions This patch is to wrap APIC base register and CR8 operation which can provide a unique API for user level irqchip and kernel irqchip. This is a preparation of merging lapic/ioapic patch. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 127992c791d57fa7646e5ee8de60360ea3c0bd59 Author: Eddie Dong Date: Fri Jul 6 12:20:49 2007 +0300 KVM: Add support for in-kernel PIC emulation Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 263773f7a6606efda85f7b184a067b5f560ed39b Author: Laurent Vivier Date: Thu Aug 23 16:33:11 2007 +0200 KVM: VMX: Split segments reload in vmx_load_host_state() vmx_load_host_state() bundles fs, gs, ldt, and tss reloading into one in the hope that it is infrequent. With smp guests, fs reloading is frequent due to fs being used by threads. Unbundle the reloads so reduce expensive gs reloads. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit f3e0aa2b4593e7d5dd064a3c56c919f85ef0d9eb Author: Avi Kivity Date: Wed Aug 22 18:09:29 2007 +0300 KVM: X86 emulator: fix 'push reg' writeback Pointed out by Rusty Russell. Signed-off-by: Avi Kivity commit 46a948d80db725870da4ebdf5893d8efc426446d Author: Izik Eidus Date: Mon Aug 20 18:11:00 2007 +0300 KVM: Support more memory slots Needed for mapping memory at 4GB. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit a88bbc1699461bab7479fdcef3ea1c12069acd1f Author: Avi Kivity Date: Mon Aug 20 15:44:39 2007 +0300 KVM: MMU: Fix rare oops on guest context switch A guest context switch to an uncached cr3 can require allocation of shadow pages, but we only recycle shadow pages in kvm_mmu_page_fault(). Move shadow page recycling to mmu_topup_memory_caches(), which is called from both the page fault handler and from guest cr3 reload. Signed-off-by: Avi Kivity commit feeb915ce6cd7a5f51b2e56b6ff8dffb959a9594 Author: Avi Kivity Date: Sun Aug 19 13:51:00 2007 +0300 KVM: Avoid calling smp_call_function_single() with interrupts disabled When taking a cpu down, we need to hardware_disable() it. Unfortunately, the CPU_DYING notifier is called with interrupts disabled, which means we can't use smp_call_function_single(). Fortunately, the CPU_DYING notifier is always called on the dying cpu, so we don't need to use the function at all and can simply call hardware_disable() directly. Tested-by: Paolo Ornati Signed-off-by: Avi Kivity commit 086f2ee50db8a1f39b0e17ab17d9c79b5964f0d7 Author: Izik Eidus Date: Sun Aug 19 22:24:58 2007 +0300 KVM: VMX: allow rmode_tss_base() to work with >2G of guest memory Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit a843332b0445c9d60e4c9bda965b10cbe632a088 Author: Nitin A Kamble Date: Sun Aug 19 11:07:06 2007 +0300 KVM: x86 emulator: implement 'push reg' (opcodes 0x50-0x57) Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit b23f94e52c4cec9e5ad404ac1426c49d64902dbf Author: Nitin A Kamble Date: Sun Aug 19 11:03:13 2007 +0300 KVM: x86 emulator: Implement 'jmp rel short' instruction (opcode 0xeb) Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit 1bee2245738d473f57dcc973e16a497ff800c026 Author: Nitin A Kamble Date: Sun Aug 19 11:00:36 2007 +0300 KVM: x86 emulator: implement 'jmp rel' instruction (opcode 0xe9) Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit 1757c2eb9f4a6b3b3aac1026dd15f26eb5dea041 Author: Nitin A Kamble Date: Fri Aug 17 15:17:41 2007 +0300 KVM: x86 emulator: implement 'and $imm, %{al|ax|eax}' Implement emulation of instruction and al imm8 (opcode 0x24) and ax/eax imm16/imm32 (opcode 0x25) Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit 9bcbb7df435e154b148662df3721f71847a9342c Author: Sheng Yang Date: Thu Aug 16 13:01:00 2007 +0300 KVM: Communicate cr8 changes to userspace This allows running 64-bit Windows. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 93d097821cce141b3c74bbf20735c6dde443715f Author: Avi Kivity Date: Wed Aug 15 15:23:34 2007 +0300 KVM: Close minor race in signal handling We need to check for signals inside the critical section, otherwise a signal can be sent which we will not notice. Also move the check before entry, so that if the signal happens before the first entry, we exit immediately instead of waiting for something to happen to the guest. Signed-off-by: Avi Kivity commit 83aecfbf44f3ba92abde47957a3c9175f1ec7165 Author: Glauber de Oliveira Costa Date: Wed Aug 15 05:36:45 2007 +0300 KVM: VMX: Don't require cr8 load/store exit capability when running on 32-bit This is because cr8 is not available on IA-32. It is just used in 64-bit mode. The rdmsr will then report this as not present, and it will lead us to return an -EIO. Signed-off-by: Glauber de Oliveira Costa Signed-off-by: Avi Kivity commit 7a3773c7d8a0b488e86b98571e5b858a222b12a5 Author: Laurent Vivier Date: Sun Aug 5 10:43:32 2007 +0300 KVM: Clean up kvm_setup_pio() Split kvm_setup_pio() into two functions, one to setup in/out pio (kvm_emulate_pio()) and one to setup ins/outs pio (kvm_emulate_pio_string()). Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 091b206f6c56f2329e11bac2fa40d6f236ab0bc2 Author: Laurent Vivier Date: Sun Aug 5 10:36:40 2007 +0300 KVM: Cleanup string I/O instruction emulation Both vmx and svm decode the I/O instructions, and both botch the job, requiring the instruction prefixes to be fetched in order to completely decode the instruction. So, if we see a string I/O instruction, use the x86 emulator to decode it, as it already has all the prefix decoding machinery. This patch defines ins/outs opcodes in x86_emulate.c and calls emulate_instruction() from io_interception() (svm.c) and from handle_io() (vmx.c). It removes all vmx/svm prefix instruction decoders (get_addr_size(), io_get_override(), io_address(), get_io_count()) Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 3415130f97a18f354853cab694d392553aa51af8 Author: Laurent Vivier Date: Wed Aug 1 21:51:09 2007 +0300 KVM: Remove useless assignment Line 1809 of kvm_main.c is useless, value is overwritten in line 1815: 1809 now = min(count, PAGE_SIZE / size); 1810 1811 if (!down) 1812 in_page = PAGE_SIZE - offset_in_page(address); 1813 else 1814 in_page = offset_in_page(address) + size; 1815 now = min(count, (unsigned long)in_page / size); 1816 if (!now) { Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 777d55128214491c48efa4b88355c3fa38c3b057 Author: Li, Xin B Date: Wed Aug 1 21:49:10 2007 +0300 KVM: VMX: Remove a duplicated ia32e mode vm entry control Remove a duplicated ia32e mode VM Entry control definition and use the proper one. Signed-off-by: Xin Li Signed-off-by: Avi Kivity commit b6d8a8dd56ee037b64af90085dd4bd54cbf16ac5 Author: Rusty Russell Date: Wed Aug 1 14:46:11 2007 +1000 KVM: Use kmem_cache_free for kmem_cache_zalloc'ed objects We use kfree in svm.c and vmx.c, and this works, but it could break at any time. kfree() is supposed to match up with kmalloc(). Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit c4a026d15eecb4ec9769210aa31d7992f2b87c74 Author: Rusty Russell Date: Wed Aug 1 10:48:02 2007 +1000 KVM: Add and use pr_unimpl for standard formatting of unimplemented features All guest-invokable printks should be ratelimited to prevent malicious guests from flooding logs. This is a start. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 07b7ac315dfb33f8e56a3c19572a96318b8cbc43 Author: Rusty Russell Date: Wed Aug 1 10:17:06 2007 +1000 KVM: Remove unneeded kvm_dev_open and kvm_dev_release functions. Devices don't need open or release functions. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 71cda75733ec3020a5ce57a31eaf300f007c67b2 Author: Rusty Russell Date: Wed Aug 1 10:12:22 2007 +1000 KVM: Remove stat_set from debugfs We shouldn't define stat_set on the debug attributes, since that will cause silent failure on writing: without a set argument, userspace will get -EACCESS. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 6e0bfce30aa37a7fd5dd9c041296dfa237dae728 Author: Gabriel C Date: Wed Aug 1 16:23:10 2007 +0200 KVM: Fix defined but not used warning in drivers/kvm/vmx.c move_msr_up() is used only on X86_64 and generates a warning on !X86_64 Signed-off-by: Gabriel Craciunescu Signed-off-by: Avi Kivity commit e203ad4bcf11981df6fc1677fedbdb29f6fa38e8 Author: Rusty Russell Date: Tue Jul 31 20:46:12 2007 +1000 KVM: Remove redundant alloc_vmcs_cpu declaration alloc_vmcs_cpu is already declared (static) above, no need to redeclare. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 8716bbed1f90ec805ca20a0c3264e181278c08cd Author: Rusty Russell Date: Tue Jul 31 20:42:42 2007 +1000 KVM: SVM: Make set_msr_interception more reliable set_msr_interception() is used by svm to set up which MSRs should be intercepted. It can only fail if someone has changed the code to try to intercept an MSR without updating the array of ranges. The return value is ignored anyway: it should just BUG() if it doesn't work. (A build-time failure would be better, but that's tricky). Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit a3573510c9b6a93fffaa118e58494d439c37a17a Author: Rusty Russell Date: Tue Jul 31 20:41:14 2007 +1000 KVM: Cleanup mark_page_dirty For some reason, mark_page_dirty open-codes __gfn_to_memslot(). Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 087ba994ef1267032319ff2ec2d8addb8bc5a567 Author: Rusty Russell Date: Tue Jul 31 20:45:03 2007 +1000 KVM: Don't assign vcpu->cr3 if it's invalid: check first, set last sSigned-off-by: Rusty Russell Signed-off-by: Avi Kivity commit c53b35b292e58cf234aa7ca08fc679e61d4b291b Author: Yang, Sheng Date: Tue Jul 31 14:23:01 2007 +0300 KVM: VMX: Add cpu consistency check All the physical CPUs on the board should support the same VMX feature set. Add check_processor_compatibility to kvm_arch_ops for the consistency check. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit 2e3bac2a9a2d52b6f349296812c5b752249e3e30 Author: Rusty Russell Date: Tue Jul 31 19:57:47 2007 +1000 KVM: kvm_vm_ioctl_get_dirty_log restore "nothing dirty" optimization kvm_vm_ioctl_get_dirty_log scans bitmap to see it it's all zero, but doesn't use that information. Avi says: Looks like it was used to guard kvm_mmu_slot_remove_write_access(); optimizing the case where the guest just leaves the screen alone (which it usually does, especially in benchmarks). I'd rather reinstate that optimization. See 90cb0529dd230548a7f0d6b315997be854caea1b where the damage was done. It's pretty simple: if the bitmap is all zero, we don't need to do anything to clean it. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 68fa04ca20fb8cf79e171c37bffd74466f12ad2b Author: Rusty Russell Date: Mon Jul 30 21:13:43 2007 +1000 KVM: Use alignment properties of vcpu to simplify FPU ops Now we use a kmem cache for allocating vcpus, we can get the 16-byte alignment required by fxsave & fxrstor instructions, and avoid manually aligning the buffer. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 0ce565a6fc253c87f26d51c506cd13554889a598 Author: Rusty Russell Date: Mon Jul 30 21:12:19 2007 +1000 KVM: Use kmem cache for allocating vcpus Avi wants the allocations of vcpus centralized again. The easiest way is to add a "size" arg to kvm_init_arch, and expose the thus-prepared cache to the modules. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 29b8a493b293639ae509c44386dc6a8ff79debd0 Author: Laurent Vivier Date: Mon Jul 30 13:41:19 2007 +0300 KVM: Remove kvm_{read,write}_guest() ... in favor of the more general emulator_{read,write}_*. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 6d2b86f131a3cbf370b4a65f6a6db63081cb6efb Author: Laurent Vivier Date: Mon Jul 30 13:35:24 2007 +0300 KVM: Change the emulator_{read,write,cmpxchg}_* functions to take a vcpu ... instead of a x86_emulate_ctxt, so that other callers can use it easily. Signed-off-by: Laurent Vivier Signed-off-by: Avi Kivity commit 80917728e43e248155c019f743655806b582b099 Author: Avi Kivity Date: Mon Jul 30 15:56:36 2007 +0300 KVM: x86 emulator: disable writeback for debug register instructions These are handled internally by the instruction. Signed-off-by: Avi Kivity commit 1c23728a5acd3a1fe5d628e23e3e4c27ee77118f Author: Rusty Russell Date: Mon Jul 30 20:08:05 2007 +1000 KVM: SVM: internal function name cleanup Changes some svm.c internal function names: 1) io_adress -> io_address (de-germanify the spelling) 2) kvm_reput_irq -> reput_irq (it's not a generic kvm function) 3) kvm_do_inject_irq -> (it's not a generic kvm function) Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 61736efb5398154eceafcce0337fe0621d7eeeb0 Author: Rusty Russell Date: Mon Jul 30 20:07:08 2007 +1000 KVM: SVM: de-containization container_of is wonderful, but not casting at all is better. This patch changes svm.c's internal functions to pass "struct vcpu_svm" instead of "struct kvm_vcpu" and using container_of. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit b15c5febefc05f04b5db04552bef18a6902e657c Author: Rusty Russell Date: Mon Jul 30 16:41:57 2007 +1000 KVM: Remove three magic numbers There are several places where hardcoded numbers are used in place of the easily-available constant, which is poor form. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit b21514dab8c88570bf2078249881a8210e50bafa Author: Rusty Russell Date: Mon Jul 30 16:31:43 2007 +1000 KVM: VMX: pass vcpu_vmx internally container_of is wonderful, but not casting at all is better. This patch changes vmx.c's internal functions to pass "struct vcpu_vmx" instead of "struct kvm_vcpu" and using container_of. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 7d3fd03221bb8352a263249e6adb1232064e4341 Author: Rusty Russell Date: Mon Jul 30 16:29:56 2007 +1000 KVM: fx_init() needs preemption disabled while it plays with the FPU state Now that kvm generally runs with preemption enabled, we need to protect the fpu intialization sequence. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 985bc8087daf3719d89e5ed28fe59eecd58fae71 Author: Shaohua Li Date: Mon Jul 23 14:51:37 2007 +0800 KVM: Convert vm lock to a mutex This allows the kvm mmu to perform sleepy operations, such as memory allocation. Signed-off-by: Shaohua Li Signed-off-by: Avi Kivity commit 8928fb48c7a7f9053a55f1d0023cbc533f2b3663 Author: Avi Kivity Date: Wed Jul 11 18:17:21 2007 +0300 KVM: Use the scheduler preemption notifiers to make kvm preemptible Current kvm disables preemption while the new virtualization registers are in use. This of course is not very good for latency sensitive workloads (one use of virtualization is to offload user interface and other latency insensitive stuff to a container, so that it is easier to analyze the remaining workload). This patch re-enables preemption for kvm; preemption is now only disabled when switching the registers in and out, and during the switch to guest mode and back. Contains fixes from Shaohua Li . Signed-off-by: Avi Kivity commit 510144c386fb650a5530311721ae9d90bf12eaee Author: Yang, Sheng Date: Sun Jul 29 11:07:42 2007 +0300 KVM: VMX: Improve the method of writing vmcs control Put cpu feature detecting part in hardware_setup, and stored the vmcs condition in global variable for further check. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity commit fbc4f2e23aa26a8537f8f147c75a632e498c39c7 Author: Rusty Russell Date: Fri Jul 27 17:16:56 2007 +1000 KVM: Dynamically allocate vcpus This patch converts the vcpus array in "struct kvm" to a pointer array, and changes the "vcpu_create" and "vcpu_setup" hooks into one "vcpu_create" call which does the allocation and initialization of the vcpu (calling back into the kvm_vcpu_init core helper). Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 6532f26b4f39a409475918da47844eaff219f50b Author: Gregory Haskins Date: Fri Jul 27 08:13:10 2007 -0400 KVM: Remove arch specific components from the general code struct kvm_vcpu has vmx-specific members; remove them to a private structure. Signed-off-by: Gregory Haskins Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 35b8e2b29b372ab285819c3b84d6db1d0165998b Author: Rusty Russell Date: Wed Jul 25 13:29:51 2007 +1000 KVM: load_pdptrs() cleanups load_pdptrs can be handed an invalid cr3, and it should not oops. This can happen because we injected #gp in set_cr3() after we set vcpu->cr3 to the invalid value, or from kvm_vcpu_ioctl_set_sregs(), or memory configuration changes after the guest did set_cr3(). We should also copy the pdpte array once, before checking and assigning, otherwise an SMP guest can potentially alter the values between the check and the set. Finally one nitpick: ret = 1 should be done as late as possible: this allows GCC to check for unset "ret" should the function change in future. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 9cb698bd020974a7e950eca6285254b50b0b64d5 Author: Aurelien Jarno Date: Wed Jul 25 11:41:57 2007 +0200 KVM: Remove dead code in the cmpxchg instruction emulation The writeback fixes (02c03a326a5df825cc01de426f72e160db2b9538) let some dead code in the cmpxchg instruction emulation. Remove it. Signed-off-by: Aurelien Jarno Signed-off-by: Avi Kivity commit d9cbd1d77543d731f31e8ea5d1738d4aad81694a Author: Sheng Yang Date: Wed Jul 25 12:17:06 2007 +0300 KVM: VMX: Import some constants of vmcs from IA32 SDM This patch mainly imports some constants and rename two exist constants of vmcs according to IA32 SDM. It also adds two constants to indicate Lock bit and Enable bit in MSR_IA32_FEATURE_CONTROL, and replace the hardcode _5_ with these two bits. Signed-off-by: Sheng Yang Signed-off-by: Avi Kivity -- commit bfa6c62f98bd0602025d7b48e267d817082f5d07 Author: Aurelien Jarno Date: Wed Jul 25 10:19:54 2007 +0200 KVM: disable writeback for 0x0f 0x01 instructions. 0x0f 0x01 instructions (ie lgdt, lidt, smsw, lmsw and invlpg) does not use writeback. This patch set no_wb=1 when emulating those instructions. This fixes a regression booting the FreeBSD kernel on AMD. Signed-off-by: Aurelien Jarno Signed-off-by: Avi Kivity commit 24beb1e24843f05c3acfd20fc2fbcf4f5ab18ec7 Author: Shaohua Li Date: Mon Jul 23 14:51:39 2007 +0800 KVM: Move gfn_to_page out of kmap/unmap pairs gfn_to_page might sleep with swap support. Move it out of the kmap calls. Signed-off-by: Shaohua Li Signed-off-by: Avi Kivity commit 33c5dfed96a8cb19ccc2e08073ef97e5c731dae3 Author: Avi Kivity Date: Wed Jul 25 09:22:12 2007 +0300 KVM: Fix removal of nx capability from guest cpuid Testing the wrong bit caused kvm not to disable nx on the guest when it is disabled on the host (an mmu optimization relies on the nx bits being the same in the guest and host). This allows Windows to boot when nx is disabled on te host (e.g. when host pae is disabled). Signed-off-by: Avi Kivity commit 8d4faaba7b1ac40b96709dc244e7d81058918a08 Author: Shaohua Li Date: Mon Jul 23 14:51:32 2007 +0800 KVM: Hoist kvm_mmu_reload() out of the critical section vmx_cpu_run doesn't handle error correctly and kvm_mmu_reload might sleep with mutex changes, so I move it above. Signed-off-by: Shaohua Li Signed-off-by: Avi Kivity commit b41e5014dd8712e8de2b656617f7a7a158cd992a Author: Avi Kivity Date: Mon Jul 23 18:33:14 2007 +0300 Revert "KVM: Avoid useless memory write when possible" This reverts commit 8a1449563b3e5ede56b28cc977c8da22a17cdf51. While it does save useless updates, it (probably) defeats the fork detector, causing a massive performance loss. Signed-off-by: Avi Kivity commit 4d69bc0c78587849583d63ada004c82dc6277829 Author: Rusty Russell Date: Mon Jul 23 17:11:02 2007 +1000 KVM: Return if the pdptrs are invalid when the guest turns on PAE. Don't fall through and turn on PAE in this case. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit e8c2eb98b58dd135b14d87e6dd1d621bc630d919 Author: Rusty Russell Date: Mon Jul 23 17:08:21 2007 +1000 KVM: Fix unlikely kvm_create vs decache_vcpus_on_cpu race We add the kvm to the vm_list before initializing the vcpu mutexes, which can be mutex_trylock()'ed by decache_vcpus_on_cpu(). Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit aae0954ed6ac2a00ee76fd209aa2a39bb2f43a0c Author: Avi Kivity Date: Sun Jul 22 18:48:54 2007 +0300 KVM: Correctly handle writes crossing a page boundary Writes that are contiguous in virtual memory may not be contiguous in physical memory; so split writes that straddle a page boundary. Thanks to Aurelien for reporting the bug, patient testing, and a fix to this very patch. Signed-off-by: Aurelien Jarno Signed-off-by: Avi Kivity commit 76f0301b5e4d2603d8e1ee5295db29faea660b49 Author: Avi Kivity Date: Sun Jul 22 15:51:58 2007 +0300 KVM: x86 emulator: fix faulty check for two-byte opcode Right now, the bug is harmless as we never emulate one-byte 0xb6 or 0xb7. But things may change. Noted by the mysterious Gabriel C. Signed-off-by: Avi Kivity commit 86ba3093d785da1d2d1c5ecbf060d91edd7a5092 Author: Avi Kivity Date: Sun Jul 22 12:32:57 2007 +0300 KVM: Require CONFIG_ANON_INODES Found by Sebastian Siewior and randconfig. Signed-off-by: Avi Kivity commit 6da018860ce19321e25b685b72f3836d243c2137 Author: Avi Kivity Date: Sat Jul 21 09:00:21 2007 +0300 KVM: MMU: Fix cleaning up the shadow page allocation cache __free_page() wants a struct page, not a virtual address. Signed-off-by: Avi Kivity commit 29530eb22ba3b0baf260e2767cb125b61151ed25 Author: Avi Kivity Date: Fri Jul 20 12:30:58 2007 +0300 KVM: x86 emulator: fix cmov for writeback changes The writeback fixes (02c03a326a5df825cc01de426f72e160db2b9538) broke cmov emulation. Fix. Signed-off-by: Avi Kivity commit 92bd26eb2a199716ceeb5604b8f9f5ed7e69ac3d Author: Avi Kivity Date: Fri Jul 20 08:18:27 2007 +0300 KVM: MMU: Fix oopses with SLUB The kvm mmu uses page->private on shadow page tables; so does slub, and an oops result. Fix by allocating regular pages for shadows instead of using slub. Signed-off-by: Avi Kivity commit 860852357a6590299a273f1141dbf1871df0b491 Author: Rusty Russell Date: Tue Jul 17 23:37:17 2007 +1000 KVM: Use standard CR8 flags, and fix TPR definition Intel manual (and KVM definition) say the TPR is 4 bits wide. Also fix CR8_RESEVED_BITS typo. Signed-off-by: Rusty Russell Acked-by: H. Peter Anvin Signed-off-by: Avi Kivity commit 56282e5368afbc8ec6eebb6413bbb2ec0733d0ed Author: Jeff Dike Date: Tue Jul 17 12:26:59 2007 -0400 KVM: Set exit_reason to KVM_EXIT_MMIO where run->mmio is initialized. Signed-off-by: Jeff Dike Signed-off-by: Avi Kivity commit 7e5437f39897a09e79e69bd0c8d4641f13715cc4 Author: Rusty Russell Date: Wed Jul 18 13:05:58 2007 +1000 KVM: Trivial: Use standard BITMAP macros, open-code userspace-exposed header Creating one's own BITMAP macro seems suboptimal: if we use manual arithmetic in the one place exposed to userspace, we can use standard macros elsewhere. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 0dfb860def58bfb2daa000af490ed1986373fea5 Author: Rusty Russell Date: Tue Jul 17 23:34:16 2007 +1000 Use standard CR4 flags, tighten checking On this machine (Intel), writing to the CR4 bits 0x00000800 and 0x00001000 cause a GPF. The Intel manual is a little unclear, but AFIACT they're reserved, too. Also fix spelling of CR4_RESEVED_BITS. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 2aee2b5274884f40475fe9ad6a7f7a3d608e0ea4 Author: Rusty Russell Date: Tue Jul 17 23:32:55 2007 +1000 Use standard CR3 flags, tighten checking The kernel now has asm/cpu-features.h: use those macros instead of inventing our own. Also spell out definition of CR3_RESEVED_BITS, fix spelling and tighten it for the non-PAE case. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 688e14654b3ffb0292a209c052e7579948b17f27 Author: Rusty Russell Date: Tue Jul 17 23:19:08 2007 +1000 KVM: Trivial: Use standard CR0 flags macros from asm/cpu-features.h The kernel now has asm/cpu-features.h: use those macros instead of inventing our own. Also spell out definition of CR0_RESEVED_BITS (no code change) and fix typo. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 0da5e37f4dc3df7a941ddba8863b289863e8dd40 Author: Rusty Russell Date: Tue Jul 17 23:17:55 2007 +1000 KVM: Trivial: Avoid hardware_disable predeclaration Don't pre-declare hardware_disable: shuffle the reboot hook down. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 24356bfad9c4b8ba70920153aec00e78698ccb9a Author: Rusty Russell Date: Tue Jul 17 23:16:56 2007 +1000 KVM: Trivial: Comment spelling may escape grep Speling error in comment. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 793551cce1b90fac232e0a38269247815fb0d02a Author: Rusty Russell Date: Tue Jul 17 23:16:11 2007 +1000 KVM: Trivial: Make decode_register() static I have shied away from touching x86_emulate.c (it could definitely use some love, but it is forked from the Xen code, and it would be more productive to cross-merge fixes). Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 53df15a3cae92d4528dc8de21132bed3aa929ca1 Author: Rusty Russell Date: Tue Jul 17 23:15:29 2007 +1000 KVM: Trivial: Remove unused struct cpu_user_regs declaration Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit a9531af471c86779d28ba973cf5f54f82cfbdb8d Author: Rusty Russell Date: Tue Jul 17 23:12:26 2007 +1000 KVM: Trivial: /dev/kvm interface is no longer experimental. KVM interface is no longer experimental. Signed-off-by: Rusty Russell Signed-off-by: Avi Kivity commit 817d90b391f6c51d07bf9d6a94778a5957d46f65 Author: Avi Kivity Date: Tue Jul 17 14:20:30 2007 +0300 KVM: x86 emulator: implement rdmsr and wrmsr Allow real-mode emulation of rdmsr and wrmsr. This allows smp Windows to boot, presumably for its sipi trampoline. Signed-off-by: Avi Kivity commit 66d8a4e4d4bd470216028daabb9d887b73259c96 Author: Avi Kivity Date: Tue Jul 17 13:04:56 2007 +0300 KVM: Fix memory slot management functions for guest smp The memory slot management functions were oriented against vcpu 0, where they should be kvm-wide. This causes hangs starting X on guest smp. Fix by making the functions (and resultant tail in the mmu) non-vcpu-specific. Unfortunately this reduces the efficiency of the mmu object cache a bit. We may have to revisit this later. Signed-off-by: Avi Kivity commit 4dd0d9a876db49da29185c868cbea6c77c09c600 Author: Eddie Dong Date: Tue Jul 17 11:52:33 2007 +0300 KVM: In-kernel string pio write support Add string pio write support to support some version of Windows. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 7bb566d5c8661a179106579978c0c606e7fa8a93 Author: Avi Kivity Date: Tue Jul 17 11:45:55 2007 +0300 KVM:: Future-proof the exit information union ABI Note that as the size of struct kvm_run is not part of the ABI, we can add things at the end. Signed-off-by: Avi Kivity commit f2973ff11f9f8ef4b90413cea9cedd7f20639e3e Author: Jeff Dike Date: Mon Jul 16 15:24:47 2007 -0400 KVM - add hypercall nr to kvm_run Add the hypercall number to kvm_run and initialize it. This changes the ABI, but as this particular ABI was unusable before this no users are affected. Signed-off-by: Jeff Dike Signed-off-by: Avi Kivity commit 973ae594c1a65936fc09acab412be51d97b703b9 Author: Qing He Date: Thu Jul 12 12:33:56 2007 +0300 KVM: SMP: Add vcpu_id field in struct vcpu This patch adds a `vcpu_id' field in `struct vcpu', so we can differentiate BSP and APs without pointer comparison or arithmetic. Signed-off-by: Qing He Signed-off-by: Avi Kivity commit 9f5aa99d6256aa14b64683283ba1c4be910bc67e Author: Nguyen Anh Quynh Date: Wed Jul 11 14:30:54 2007 +0300 KVM: Fix *nopage() in kvm_main.c *nopage() in kvm_main.c should only store the type of mmap() fault if the pointers are not NULL. This patch fixes the problem. Signed-off-by: Nguyen Anh Quynh Signed-off-by: Avi Kivity commit 6287464e41b2b520d78d417f3d1b37aca9202a04 Author: Avi Kivity Date: Tue Jul 10 17:50:55 2007 +0300 KVM: MMU: Store nx bit for large page shadows We need to distinguish between large page shadows which have the nx bit set and those which don't. The problem shows up when booting a newer smp Linux kernel, where the trampoline page (which is in real mode, which uses the same shadow pages as large pages) is using the same mapping as a kernel data page, which is mapped using nx, causing kvm to spin on that page. Signed-off-by: Avi Kivity commit a737ba627a98f2ae66c308148c9c967c73f13f5d Author: Avi Kivity Date: Thu May 24 13:11:41 2007 +0300 KVM: Use CPU_DYING for disabling virtualization Only at the CPU_DYING stage can we be sure that no user process will be scheduled onto the cpu and oops when trying to use virtualization extensions. Signed-off-by: Avi Kivity commit 4fba051d7ec9ec1961f477d9a20311d8432738b7 Author: Avi Kivity Date: Thu May 24 13:09:41 2007 +0300 KVM: Tune hotplug/suspend IPIs The hotplug IPIs can be called from the cpu on which we are currently running on, so use on_cpu(). Similarly, drop on_each_cpu() for the suspend/resume callbacks, as we're in atomic context here and only one cpu is up anyway. Signed-off-by: Avi Kivity commit 63e8e638342401a5fd04ec310c5d0695c645e444 Author: Avi Kivity Date: Thu May 24 13:03:52 2007 +0300 KVM: Keep track of which cpus have virtualization enabled By keeping track of which cpus have virtualization enabled, we prevent double-enable or double-disable during hotplug, which is a very fatal oops. Signed-off-by: Avi Kivity commit 9b6f4dedfeb83190b6196fe201e2f33c97de1c73 Author: Avi Kivity Date: Thu May 24 12:42:10 2007 +0300 SMP: Implement on_cpu() This defines on_cpu() which is similar to smp_call_function_single() except that it works if cpu happens to be the current cpu. Can also be seen as a complement to on_each_cpu() (which also doesn't treat the current cpu specially). Signed-off-by: Avi Kivity commit 55971a0f3faab6ecdce1e17dafc6d968f3236ade Author: Avi Kivity Date: Thu May 24 12:37:34 2007 +0300 HOTPLUG: Adapt thermal throttle to CPU_DYING CPU_DYING is notified in atomic context, so no taking mutexes here. Signed-off-by: Avi Kivity commit 529bd39d193eeae66a7c0fc3b12169ea566dc0e5 Author: Avi Kivity Date: Thu May 24 12:33:15 2007 +0300 HOTPLUG: Adapt cpuset hotplug callback to CPU_DYING CPU_DYING is called in atomic context, so don't try to take any locks. Signed-off-by: Avi Kivity commit 33e6f5c2bd102cb43a1e9ae5fe210b0d5f9ac69f Author: Avi Kivity Date: Thu May 24 12:23:10 2007 +0300 HOTPLUG: Add CPU_DYING notifier KVM wants a notification when a cpu is about to die, so it can disable hardware extensions, but at a time when user processes cannot be scheduled on the cpu, so it doesn't try to use virtualization extensions after they have been disabled. This adds a CPU_DYING notification. The notification is called in atomic context on the doomed cpu. Signed-off-by: Avi Kivity commit 0d9c57e0a7ee426096af3d79114d23e50ed6d42b Author: Avi Kivity Date: Sun Jul 8 11:15:32 2007 +0300 KVM: Fix svm availability check miscompile on i386 Signed-off-by: Avi Kivity commit 222a35d12ad9ef4f4a97da496f0e038e94681d3b Author: Avi Kivity Date: Thu Jun 28 14:15:57 2007 -0400 KVM: Clean up #includes Remove unnecessary ones, and rearange the remaining in the standard order. Signed-off-by: Avi Kivity commit 41ac4b23696b12fec15191969bc18da42359861d Author: Avi Kivity Date: Thu Jun 28 08:38:16 2007 -0400 KVM: Remove kvmfs in favor of the anonymous inodes source kvm uses a pseudo filesystem, kvmfs, to generate inodes, a job that the new anonymous inodes source does much better. Cc: Davide Libenzi Signed-off-by: Avi Kivity commit cfc329b216bc3e54fe1107e8f714c7b3bc133224 Author: Joerg Roedel Date: Fri Jun 22 12:29:50 2007 +0300 KVM: SVM: Reliably detect if SVM was disabled by BIOS This patch adds an implementation to the svm is_disabled function to detect reliably if the BIOS disabled the SVM feature in the CPU. This fixes the issues with kernel panics when loading the kvm-amd module on machines where SVM is available but disabled. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit a2a8a256f8d4ff1595900b810fea90e5e5911b6d Author: Avi Kivity Date: Thu Jun 21 11:54:45 2007 +0300 KVM: VMX: Remove unnecessary code in vmx_tlb_flush() A vmexit implicitly flushes the tlb; the code is bogus. Noted by Shaohua Li. Signed-off-by: Avi Kivity commit 37ebbf17fbf71ec261c57c1404ac7c50ade97c13 Author: Shaohua Li Date: Wed Jun 20 17:13:26 2007 +0800 KVM: MMU: Fix Wrong tlb flush order Need to flush the tlb after updating a pte, not before. Signed-off-by: Shaohua Li Signed-off-by: Avi Kivity commit 030421334ae91b7f6302a1cfe9c971a8991b4870 Author: Avi Kivity Date: Wed Jun 20 11:20:04 2007 +0300 KVM: VMX: Reinitialize the real-mode tss when entering real mode Protected mode code may have corrupted the real-mode tss, so re-initialize it when switching to real mode. Signed-off-by: Avi Kivity commit 8a1449563b3e5ede56b28cc977c8da22a17cdf51 Author: Luca Tettamanti Date: Tue Jun 19 22:41:38 2007 +0200 KVM: Avoid useless memory write when possible When writing to normal memory and the memory area is unchanged the write can be safely skipped, avoiding the costly kvm_mmu_pte_write. Signed-Off-By: Luca Tettamanti Signed-off-by: Avi Kivity commit ba9c20c048726037664d303362b688759fdf6e9d Author: Luca Tettamanti Date: Tue Jun 19 22:41:20 2007 +0200 KVM: Fix x86 emulator writeback When the old value and new one are the same the emulator skips the write; this is undesirable when the destination is a MMIO area and the write shall be performed regardless of the previous value. This optimization breaks e.g. a Linux guest APIC compiled without X86_GOOD_APIC. Remove the check and perform the writeback stage in the emulation unless it's explicitly disabled (currently push and some 2 bytes instructions may disable the writeback). Signed-Off-By: Luca Tettamanti Signed-off-by: Avi Kivity commit 8e770bbe8651e8d13e1d09d426657fbed0fe052a Author: Eddie Dong Date: Tue Jun 19 18:05:03 2007 +0300 KVM: Add support for in-kernel pio handlers Useful for the PIC and PIT. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit ecd01fac443e69a574cb064d44e78ff783a1e1a4 Author: Gregory Haskins Date: Thu May 31 14:08:58 2007 -0400 KVM: VMX: Fix interrupt checking on lightweight exit With kernel-injected interrupts, we need to check for interrupts on lightweight exits too. Signed-off-by: Gregory Haskins Signed-off-by: Avi Kivity commit af93971fab7729229a45ecd64c72f56421bbcd0f Author: Gregory Haskins Date: Thu May 31 14:08:53 2007 -0400 KVM: Adds support for in-kernel mmio handlers Signed-off-by: Gregory Haskins Signed-off-by: Avi Kivity commit e0d1fb847d117124da53145b2d9b7f4d3da8e82c Author: Nitin A Kamble Date: Tue Jun 19 11:21:15 2007 +0300 KVM: Implement emulation of instruction "ret" (opcode 0xc3) Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit 246e9cd14121973b3c653b990d80bcd1c2163dd5 Author: Nitin A Kamble Date: Tue Jun 19 11:16:04 2007 +0300 KVM: Implement emulation of "pop reg" instruction (opcode 0x58-0x5f) For use in real mode. Signed-off-by: Nitin A Kamble Signed-off-by: Avi Kivity commit b0c4137315fc6f711fd3a0fc82aedb61a2536ac9 Author: Avi Kivity Date: Sun Jun 17 12:24:23 2007 +0300 KVM: Bring local tree in line with origin Signed-off-by: Avi Kivity commit 6685637b211ad67bdce21bfd9f91bc888b3acb4f Author: Avi Kivity Date: Wed Jun 13 19:55:28 2007 +0300 KVM: VMX: Ensure vcpu time stamp counter is monotonous If the time stamp counter goes backwards, a guest delay loop can become infinite. This can happen if a vcpu is migrated to another cpu, where the counter has a lower value than the first cpu. Since we're doing an IPI to the first cpu anyway, we can use that to pick up the old tsc, and use that to calculate the adjustment we need to make to the tsc offset. Signed-off-by: Avi Kivity commit 8aefa5d7ac55d487af62755545ecc02bc53678af Author: Avi Kivity Date: Wed Jun 13 19:43:19 2007 +0300 KVM: Initialize the BSP bit in the APIC_BASE msr correctly Needs to be set on vcpu 0 only. Signed-off-by: Avi Kivity commit 218179e7978af0308bcbd08f6c43bd5b3607a909 Author: Avi Kivity Date: Tue Jun 12 08:58:13 2007 +0300 KVM: Require a cpu which can set 64-bit values atomically set_64bit() is not available on 80386 and i486. Noticed by Adrian Bunk. Signed-off-by: Avi Kivity commit 74a54c5cfe3a1ea3777964a9e8e7bef119ca549b Author: Shani Moideen Date: Mon Jun 11 09:31:33 2007 +0530 KVM: VMX: Replace memset(, 0, PAGESIZE) with clear_page() Signed-off-by: Shani Moideen Signed-off-by: Avi Kivity commit ff4d2f93a9459aa820b56a59e9dbd3967aa407ce Author: Shani Moideen Date: Mon Jun 11 09:28:26 2007 +0530 KVM: SVM: Replace memset(, 0, PAGESIZE) with clear_page() Signed-off-by: Shani Moideen Signed-off-by: Avi Kivity commit 3105c9a9a2d5f64c9e67745120b8ee5c205847a3 Author: Avi Kivity Date: Thu Jun 7 19:18:30 2007 +0300 KVM: Flush remote tlbs when reducing shadow pte permissions When a vcpu causes a shadow tlb entry to have reduced permissions, it must also clear the tlb on remote vcpus. We do that by: - setting a bit on the vcpu that requests a tlb flush before the next entry - if the vcpu is currently executing, we send an ipi to make sure it exits before we continue Signed-off-by: Avi Kivity commit 2c3ac418d752e7f73ca0d9081a4377278432d565 Author: Avi Kivity Date: Thu Jun 7 19:11:53 2007 +0300 KVM: Keep an upper bound of initialized vcpus That way, we don't need to loop for KVM_MAX_VCPUS for a single vcpu vm. Signed-off-by: Avi Kivity commit 7ca30c3f2efbf9ab5ab595d9bc3e0bd3b705aba1 Author: Avi Kivity Date: Tue Jun 5 16:15:51 2007 +0300 KVM: Emulate hlt on real mode for Intel This has two use cases: the bios can't boot from disk, and guest smp bootstrap. Signed-off-by: Avi Kivity commit e7ebb74dbacc100cfd621157ac63b95e63e3292d Author: Avi Kivity Date: Tue Jun 5 15:53:05 2007 +0300 KVM: Move duplicate halt handling code into kvm_main.c Will soon have a thid user. Signed-off-by: Avi Kivity commit a80408da7a05e0be2ae99ad47dafd4bb4bc847cd Author: Avi Kivity Date: Tue Jun 5 14:37:09 2007 +0300 KVM: Enable guest smp As we don't support guest tlb shootdown yet, this is only reliable for real-mode guests. Signed-off-by: Avi Kivity commit 80b70c068ce4333e5e1242f32f538835a4e5d896 Author: Avi Kivity Date: Tue Jun 5 14:36:10 2007 +0300 KVM: Fix adding an smp virtual machine to the vm list If we add the vm once per vcpu, we corrupt the list if the guest has multiple vcpus. Signed-off-by: Avi Kivity commit 16fb83998b62717831dca3d913455091c855b3cd Author: Avi Kivity Date: Tue Jun 5 12:17:03 2007 +0300 KVM: Fix vcpu freeing for guest smp A vcpu can pin up to four mmu shadow pages, which means the freeing loop will never terminate. Fix by first unpinning shadow pages on all vcpus, then freeing shadow pages. Signed-off-by: Avi Kivity commit 55ae364d6a882c94511db17e8023c8976d44cd2d Author: Nguyen Anh Quynh Date: Tue Jun 5 10:35:19 2007 +0300 KVM: Remove unnecessary initialization and checks in mark_page_dirty() Signed-off-by: Avi Kivity commit 0ae1aebcc9825fba4d115c197e9c099fd9644caf Author: Robert P. J. Day Date: Sun Jun 3 13:35:29 2007 -0400 KVM: Replace C code with call to ARRAY_SIZE() macro. Signed-off-by: Robert P. J. Day Signed-off-by: Avi Kivity commit 4b82b37a35a085a07d9ed84efee06c69655fd3d1 Author: Avi Kivity Date: Mon Jun 4 15:58:30 2007 +0300 KVM: Lazy guest cr3 switching Switch guest paging context may require us to allocate memory, which might fail. Instead of wiring up error paths everywhere, make context switching lazy and actually do the switch before the next guest entry, where we can return an error if allocation fails. Signed-off-by: Avi Kivity commit fa8cfb020b0ef0acef94ddc9035b932308840314 Author: Avi Kivity Date: Mon Jun 4 11:11:23 2007 +0300 KVM: VMX: Fix asm constraint "g" can select a memory location, in which case size information is lost and gas needs an instruction suffix. Since the suffix is different for i386 and x86_64, we simply change the constraint to "r". Signed-off-by: Avi Kivity commit 63275ba244275719d6fd4d77c10d6b15586aa727 Author: Avi Kivity Date: Thu May 31 18:28:51 2007 +0300 KVM: MMU: Remove unused large page marker This has not been used for some time, as the same information is available in the page header. Signed-off-by: Avi Kivity commit 21e3670e57c34809d4c141ce1dde4fd8b23a4d60 Author: Avi Kivity Date: Thu May 31 18:24:09 2007 +0300 KVM: MMU: Don't cache guest access bits in the shadow page table This was once used to avoid accessing the guest pte when upgrading the shadow pte from read-only to read-write. But usually we need to set the guest pte dirty or accessed bits anyway, so this wasn't really exploited. Signed-off-by: Avi Kivity commit 319d035ef290b510edb7f848d41098c31ceaace0 Author: Avi Kivity Date: Thu May 31 18:20:14 2007 +0300 KVM: MMU: Simpify accessed/dirty/present/nx bit handling Always set the accessed and dirty bit (since having them cleared causes a read-modify-write cycle), always set the present bit, and copy the nx bit from the guest. Signed-off-by: Avi Kivity commit 080e7fd753ec60140ea89ebb0ea94625ae541534 Author: Avi Kivity Date: Thu May 31 17:17:06 2007 +0300 KVM: MMU: Remove cr0.wp tricks No longer needed as we do everything in one place. Signed-off-by: Avi Kivity commit cc9d465c7a9ef3a109814fa866676f876ff42133 Author: Avi Kivity Date: Thu May 31 15:46:04 2007 +0300 KVM: MMU: Make setting shadow ptes atomic on i386 Signed-off-by: Avi Kivity commit 823c30e8740ad71bd9556f3cd235231ad00bfa55 Author: Avi Kivity Date: Thu May 31 15:23:35 2007 +0300 KVM: Make shadow pte updates atomic With guest smp, a second vcpu might see partial updates when the first vcpu services a page fault. So delay all updates until we have figured out what the pte should look like. Note that on i386, this is still not completely atomic as a 64-bit write will be split into two on a 32-bit machine. Signed-off-by: Avi Kivity commit b7bd6888968e797f2deaa4aa9f98466a2371392b Author: Avi Kivity Date: Thu May 31 15:14:09 2007 +0300 KVM: Move shadow pte modifications from set_pte/set_pde to set_pde_common() We want all shadow pte modifications in one place. Signed-off-by: Avi Kivity commit b70ccb0b3fd4ac02c0f6cf5153008c736fa27710 Author: Avi Kivity Date: Thu May 31 15:08:29 2007 +0300 KVM: MMU: Fold fix_write_pf() into set_pte_common() This prevents some work from being performed twice, and, more importantly, reduces the number of places where we modify shadow ptes. Signed-off-by: Avi Kivity commit ad5555224aa01b2ddcc45ab9f0172b5497a7cd5d Author: Avi Kivity Date: Thu May 31 11:56:54 2007 +0300 KVM: MMU: Fold fix_read_pf() into set_pte_common() Signed-off-by: Avi Kivity commit 3f1380d422cbd5b9231c3e997e4cbec000e3a08f Author: Avi Kivity Date: Thu May 31 11:45:18 2007 +0300 KVM: MMU: Pass the guest pde to set_pte_common We will need the accessed bit (in addition to the dirty bit) and also write access (for setting the dirty bit) in a future patch. Signed-off-by: Avi Kivity commit 5fe13ee0e2b404dd34dea17ec0849b4a940a5755 Author: Avi Kivity Date: Wed May 30 19:31:17 2007 +0300 KVM: MMU: Move set_pte_common() to pte width dependent code In preparation of some modifications. Signed-off-by: Avi Kivity commit 5ada0f87635fa10a40a22b8b249c3d1fedb79840 Author: Avi Kivity Date: Wed May 30 14:21:51 2007 +0300 KVM: MMU: Simplify fetch() a little bit Signed-off-by: Avi Kivity commit 67310badceaed0519cb8efbe6054d790563ea136 Author: Avi Kivity Date: Wed May 30 12:34:53 2007 +0300 KVM: MMU: Use slab caches for shadow pages and their headers Use slab caches instead of a simple custom list. Signed-off-by: Avi Kivity commit 6d9d80f421f77da043b8b6898e01327763adecd2 Author: Eddie Dong Date: Tue May 29 15:07:21 2007 +0300 KVM: Use symbolic constants instead of magic numbers Signed-off-by: Avi Kivity commit 4eaa906699812e2e28c3237cfedd8c21cbd17c4b Author: Markus Rechberger Date: Sun May 27 10:46:52 2007 +0300 KVM: Fix includes KVM compilation fails for some .configs. This fixes it. Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit d67c455e06a1eaf8ab20b5c4e51f4ae8271b2637 Author: Avi Kivity Date: Thu May 24 11:17:33 2007 +0300 KVM: x86 emulator: implement wbinvd Vista seems to trigger it. Signed-off-by: Avi Kivity commit fc1193d546ec21c279a8e4e3e9eaf999275b2223 Author: Jan Engelhardt Date: Wed May 23 14:22:11 2007 -0700 Use menuconfig objects II - KVM/Virt Make a "menuconfig" out of the Kconfig objects "menu, ..., endmenu", so that the user can disable all the options in that menu at once instead of having to disable each option separately. Signed-off-by: Jan Engelhardt Signed-off-by: Andrew Morton Signed-off-by: Avi Kivity commit a6935dbdaa7278d5e4a4d7478f29462f2a5db7fe Author: Avi Kivity Date: Mon May 21 09:15:47 2007 +0300 KVM: VMX: Remove warnings on i386 Signed-off-by: Avi Kivity commit 1ab29f3fb765b08e65de563d9053d4d05cc95f52 Author: Eddie Dong Date: Mon May 21 07:28:09 2007 +0300 KVM: VMX: Avoid saving and restoring msr_efer on lightweight vmexit MSR_EFER.LME/LMA bits are automatically save/restored by VMX hardware, KVM only needs to save NX/SCE bits at time of heavy weight VM Exit. But clearing NX bits in host envirnment may cause system hang if the host page table is using EXB bits, thus we leave NX bits as it is. If Host NX=1 and guest NX=0, we can do guest page table EXB bits check before inserting a shadow pte (though no guest is expecting to see this kind of gp fault). If host NX=0, we present guest no Execute-Disable feature to guest, thus no host NX=0, guest NX=1 combination. This patch reduces raw vmexit time by ~27%. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 64ce9a0cf0960f9a029e54d1bffc06123d3b5893 Author: Eddie Dong Date: Sun May 20 16:28:59 2007 +0300 KVM: VMX: Fix a typo which mixes X86_64 and CONFIG_X86_64 This prevents compilation on 64-bits. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit cc1d717e078464a049cf8364417ec44267cd6143 Author: Eddie Dong Date: Sun May 20 10:50:08 2007 +0300 KVM: VMX: Cleanup redundant code in MSR set Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 8bf50c5c6b2af81355412ec1696a7e2c8ad940f2 Author: Daniel Hecken Date: Sun May 20 10:32:14 2007 +0300 KVM: VMX: Compile-fix for 32-bit hosts Signed-off-by: Avi Kivity commit f552bf62c86b383dd74030c5830c8043bf41e0bd Author: Eddie Dong Date: Thu May 17 18:55:15 2007 +0300 KVM: VMX: Avoid saving and restoring msrs on lightweight vmexit In a lightweight exit (where we exit and reenter the guest without scheduling or exiting to userspace in between), we don't need various msrs on the host, and avoiding shuffling them around reduces raw exit time by 8%. Signed-off-by: Yaozu (Eddie) Dong Signed-off-by: Avi Kivity commit 8edb11391b763357734cc5fd293d788d8591e6d7 Author: Nitin A Kamble Date: Thu May 17 15:50:34 2007 +0300 KVM: VMX: Handle #SS faults from real mode Instructions with address size override prefix opcode 0x67 Cause the #SS fault with 0 error code in VM86 mode. Forward them to the emulator. Signed-Off-By: Nitin A Kamble Signed-off-by: Avi Kivity commit bdf3f418471ba3c65aa78a1943da179d8320fdf8 Author: Avi Kivity Date: Mon May 14 20:41:13 2007 +0300 KVM: VMX: Use local labels in inline assembly This makes oprofile dumps and disassebly easier to read. Signed-off-by: Avi Kivity commit ca76d209b88c344fc6a8eac17057c0088a3d6940 Author: Avi Kivity Date: Sun May 13 20:18:14 2007 +0300 KVM: Remove merge artifact Signed-off-by: Avi Kivity commit 52916bb7c142b5cf8a81da225bf51c2ea60c5b49 Author: Avi Kivity Date: Tue May 8 11:34:07 2007 +0300 KVM: Fix vmx I/O bitmap initialization on highmem systems kunmap() expects a struct page, not a virtual address. Fixes an oops loading kvm-intel.ko on i386 with CONFIG_HIGHMEM. Thanks to Michael Ivanov for reporting. Signed-off-by: Avi Kivity commit facc2faaf471ca539ddd96fdbdf2e147421468a6 Author: Avi Kivity Date: Mon May 7 10:55:37 2007 +0300 KVM: Avoid corrupting tr in real mode The real mode tr needs to be set to a specific tss so that I/O instructions can function. Divert the new tr values to the real mode save area from where they will be restored on transition to protected mode. This fixes some crashes on reboot when the bios accesses an I/O instruction. Signed-off-by: Avi Kivity commit 05eb943c9b547ecc4de850f04ed4c09356440528 Author: Avi Kivity Date: Sun May 6 16:10:01 2007 +0300 KVM: VMX: Only reload guest msrs if they are already loaded If we set an msr via an ioctl() instead of by handling a guest exit, we have the host state loaded, so reloading the msrs would clobber host state instead of guest state. This fixes a host oops (and loss of a cpu) on a guest reboot. Signed-off-by: Avi Kivity commit 242b0f9ae76651226fb42d9ec3ecb1a9d8d7b263 Author: Avi Kivity Date: Sun May 6 15:50:58 2007 +0300 KVM: MMU: Store shadow page tables as kernel virtual addresses, not physical Simpifies things a bit. Signed-off-by: Avi Kivity commit 03aeb06a4440265777ae4ed62e8431955cbea865 Author: Avi Kivity Date: Sun May 6 15:36:30 2007 +0300 KVM: MMU: Simplify kvm_mmu_free_page() a tiny bit Signed-off-by: Avi Kivity commit f66b4a983d460d68ef5cc392285190065b0617e5 Author: Matthew Gregan Date: Sun May 6 10:59:46 2007 +0300 KVM: Implement IA32_EBL_CR_POWERON msr Attempting to boot the default 'bsd' kernel of OpenBSD 4.1 i386 in a guest fails early in the kernel init inside p3_get_bus_clock while trying to read the IA32_EBL_CR_POWERON MSR. KVM logs an 'unhandled MSR' message and the guest kernel faults. This patch is sufficient to allow OpenBSD to boot, after which it seems to run fine. I'm not sure if this is the correct solution for dealing with this particular MSR, but it works for me. Signed-off-by: Matthew Gregan Signed-off-by: Avi Kivity commit 7a57011a5e7c4082fdfd204115a8212298ef723f Author: Avi Kivity Date: Wed May 2 23:06:22 2007 +0300 KVM: Set cr0.mp for guests This allows fwait instructions to be trapped when the guest fpu is not loaded. Signed-off-by: Avi Kivity commit 90fb720a59dafb11d591a8e53a4a65bfa6fcfea9 Author: Avi Kivity Date: Wed May 2 22:57:13 2007 +0300 KVM: Ensure host cr0.ts is saved Otherwise, host fpu state may be corrupted after an exit. Signed-off-by: Avi Kivity commit 7616f59b208b088afd85d40aa06ca6d4d4a6ca1a Author: Avi Kivity Date: Wed May 2 20:40:00 2007 +0300 KVM: Consolidate guest fpu activation and deactivation Easier to keep track of where the fpu is this way. Signed-off-by: Avi Kivity commit 7ca14868fd7f3c0dc21450e61cca5b77a47daf0d Author: Avi Kivity Date: Wed May 2 17:57:40 2007 +0300 KVM: Rationalize exception bitmap usage Everyone owns a piece of the exception bitmap, but they happily write to the entire thing like there's no tomorrow. Centralize handling in update_exception_bitmap() and have everyone call that. Signed-off-by: Avi Kivity commit de32f820227fbe3e159ec42ce8fd55057155edca Author: Avi Kivity Date: Wed May 2 17:33:43 2007 +0300 KVM: Move some more msr mangling into vmx_save_host_state() Signed-off-by: Avi Kivity commit fa580ecc53536620546659740ae2dfcea763d17c Author: Avi Kivity Date: Wed May 2 17:30:48 2007 +0300 KVM: Prevent guest fpu state from leaking into the host The lazy fpu changes did not take into account that some vmexit handlers can sleep. Move loading the guest state into the inner loop so that it can be reloaded if necessary, and move loading the host state into vmx_vcpu_put() so it can be performed whenever we relinquish the vcpu. Signed-off-by: Avi Kivity commit bc8dcc2107de0ba8f25fc910c4559ebe3df33045 Author: Avi Kivity Date: Wed May 2 16:54:03 2007 +0300 KVM: Fix potential guest state leak into host The lightweight vmexit path avoids saving and reloading certain host state. However in certain cases lightweight vmexit handling can schedule() which requires reloading the host state. So we store the host state in the vcpu structure, and reloaded it if we relinquish the vcpu. Signed-off-by: Avi Kivity commit 11bdaf6e26c0cbabd9b6c8f2e9de60190815d348 Author: Avi Kivity Date: Tue May 1 18:24:38 2007 +0300 KVM: Increase mmu shadow cache to 1024 pages This improves kbuild times by about 10%, bringing it within a respectable 25% of native. Signed-off-by: Avi Kivity commit d6540cdffea466f1ee17a52ef530d40577b476b2 Author: Avi Kivity Date: Tue May 1 16:53:31 2007 +0300 KVM: Update shadow pte on write to guest pte A typical demand page/copy on write pattern is: - page fault on vaddr - kvm propagates fault to guest - guest handles fault, updates pte - kvm traps write, clears shadow pte, resumes guest - guest returns to userspace, re-faults on same vaddr - kvm installs shadow pte, resumes guest - guest continues So, three vmexits for a single guest page fault. But if instead of clearing the page table entry, we update to correspond to the value that the guest has just written, we eliminate the third vmexit. This patch does exactly that, reducing kbuild time by about 10%. Signed-off-by: Avi Kivity commit 807762acc40f7cc16aefcfaef8a596a4af988b20 Author: Avi Kivity Date: Tue May 1 16:44:05 2007 +0300 KVM: MMU: Respect nonpae pagetable quadrant when zapping ptes When a guest writes to a page that has an mmu shadow, we have to clear the shadow pte corresponding to the memory location touched by the guest. Now, in nonpae mode, a single guest page may have two or four shadow pages (because a nonpae page maps 4MB or 4GB, whereas the pae shadow maps 2MB or 1GB), so we when we look up the page we find up to three additional aliases for the page. Since we _clear_ the shadow pte, it doesn't matter except for a slight performance penalty, but if we want to _update_ the shadow pte instead of clearing it, it is vital that we don't modify the aliases. Fortunately, exactly which page is needed (the "quadrant") is easily computed, and is accessible in the shadow page header. All we need is to ignore shadow pages from the wrong quadrants. Signed-off-by: Avi Kivity commit 4a5c1655c9f6df8c668428d3c5d2ad4f67dce08d Author: Avi Kivity Date: Tue May 1 14:16:52 2007 +0300 KVM: Unify kvm_mmu_pre_write() and kvm_mmu_post_write() Instead of calling two functions and repeating expensive checks, call one function and provide it with before/after information. Signed-off-by: Avi Kivity commit ff31cf26ff8e17c2f7164c39dc03fe309ed36506 Author: Avi Kivity Date: Tue May 1 11:32:28 2007 +0300 KVM: Be more careful restoring fs on lightweight vmexit i386 wants fs for accessing the pda even on a lightweight exit, so ensure we can always restore it. This fixes a regression on i386 introduced by the lightweight vmexit patch. Signed-off-by: Avi Kivity commit e6d2f6292194c931b2fa11373a66d640245e1b14 Author: Avi Kivity Date: Mon Apr 30 17:05:38 2007 +0300 KVM: Reduce misfirings of the fork detector The kvm mmu tries to detects forks by looking for repeated writes to a page table. If it sees a fork, it unshadows the page table so the page table copying can proceed at native speed instead of being emulated. However, the detector also triggered on simple demand paging access patterns: a linear walk of memory would of course cause repeated writes to the same pagetable page, causing it to unshadow prematurely. Fix by resetting the fork detector if we detect a demand fault. Signed-off-by: Avi Kivity commit f908e27039ab637013ad17c64e4ef77c4c0a24b8 Author: Avi Kivity Date: Mon Apr 30 16:15:58 2007 +0300 KVM: Unindent some code Signed-off-by: Avi Kivity commit 5cf48c367dec74ba8553c53ed332cd075fa38b88 Author: Avi Kivity Date: Mon Apr 30 16:07:54 2007 +0300 KVM: Avoid saving and restoring some host CPU state on lightweight vmexit Many msrs and the like will only be used by the host if we schedule() or return to userspace. Therefore, we avoid saving them if we handle the exit within the kernel, and if a reschedule is not requested. Based on a patch from Eddie Dong with a couple of fixes by me. Signed-off-by: Yaozu(Eddie) Dong Signed-off-by: Avi Kivity commit 2d8d6944a2249f642420bbc70b199182c70ebc9a Author: Avi Kivity Date: Mon Apr 30 14:47:02 2007 +0300 KVM: Assume that writes smaller than 4 bytes are to non-pagetable pages This allows us to remove write protection earlier than otherwise. Should some mad OS choose to use byte writes to update pagetables, it will suffer a performance hit, but still work correctly. Signed-off-by: Avi Kivity commit 7d0e7eed6200c54462e884abc8dd6681df2f5e7d Author: Avi Kivity Date: Mon Apr 30 12:42:43 2007 +0300 KVM: Fix RMW mmio handling Commit 9bf671a47ed6af3164524a31dbef9360f1b66fb5 optimized the mmio read path by returning to the emulator directly after an mmio read request. But we may also need to return back to userspace in case the instruction was a read-modify-write instruction, which means we need to issue a write after completion of the read instead of returning to the guest. Signed-off-by: Avi Kivity commit f05f41f9bb1cf72a13caf61c2931dbbf4bff51eb Author: Anthony Liguori Date: Mon Apr 30 09:48:11 2007 +0300 KVM: SVM: Allow direct guest access to PC debug port The PC debug port is used for IO delay and does not require emulation. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit 99c7b51d71c0b0062b752c5f0a4b3498d3d165db Author: He, Qing Date: Mon Apr 30 09:45:24 2007 +0300 KVM: VMX: Enable io bitmaps to avoid IO port 0x80 VMEXITs This patch enables IO bitmaps control on vmx and unmask the 0x80 port to avoid VMEXITs caused by accessing port 0x80. 0x80 is used as delays (see include/asm/io.h), and handling VMEXITs on its access is unnecessary but slows things down. This patch improves kernel build test at around 3%~5%. Because every VM uses the same io bitmap, it is shared between all VMs rather than a per-VM data structure. Signed-off-by: Qing He Signed-off-by: Avi Kivity commit c06d7c14c006c5e2dcd2a7d84603b51e9e60d7a7 Author: Avi Kivity Date: Sun Apr 29 16:25:49 2007 +0300 KVM: Remove unused 'instruction_length' As we no longer emulate in userspace, this is meaningless. We don't compute it on SVM anyway. Signed-off-by: Avi Kivity commit 20426d1309353b3e2771f9c7f534e01ce7a019f2 Author: Avi Kivity Date: Sun Apr 29 15:02:17 2007 +0300 KVM: Don't require explicit indication of completion of mmio or pio It is illegal not to return from a pio or mmio request without completing it, as mmio or pio is an atomic operation. Therefore, we can simplify the userspace interface by avoiding the completion indication. Signed-off-by: Avi Kivity commit 9bf671a47ed6af3164524a31dbef9360f1b66fb5 Author: Avi Kivity Date: Wed Mar 14 15:54:54 2007 +0200 KVM: Remove extraneous guest entry on mmio read When emulating an mmio read, we actually emulate twice: once to determine the physical address of the mmio, and, after we've exited to userspace to get the mmio value, we emulate again to place the value in the result register and update any flags. But we don't really need to enter the guest again for that, only to take an immediate vmexit. So, if we detect that we're doing an mmio read, emulate a single instruction before entering the guest again. Signed-off-by: Avi Kivity commit 8dfdb0d81fb9e858c14e03fd5e007b20167cd065 Author: Avi Kivity Date: Sun Apr 29 13:01:34 2007 +0300 KVM: Remove trailing whitespace Signed-off-by: Avi Kivity commit 1628bcc25417eae4c83ca87e0899c7e02961d975 Author: Signed-off-by: Anthony Liguori Date: Sun Apr 29 11:56:06 2007 +0300 KVM: SVM: Only save/restore MSRs when needed We only have to save/restore MSR_GS_BASE on every VMEXIT. The rest can be saved/restored when we leave the VCPU. Since we don't emulate the DEBUGCTL MSRs and the guest cannot write to them, we don't have to worry about saving/restoring them at all. This shaves a whopping 40% off raw vmexit costs on AMD. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit 68ba823bbe6d546e3ceb63d006c62a84e92837db Author: Adrian Bunk Date: Sat Apr 28 21:20:48 2007 +0200 KVM: fix an if() condition It might have worked in this case since PT_PRESENT_MASK is 1, but let's express this correctly. Signed-off-by: Adrian Bunk Signed-off-by: Avi Kivity commit fe7dc1f2c0c3d0c21abf9dfa4387f0b748080688 Author: Anthony Liguori Date: Fri Apr 27 09:29:49 2007 +0300 KVM: VMX: Add lazy FPU support for VT Only save/restore the FPU host state when the guest is actually using the FPU. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit 4a579478e5259df8828a8b9e5b3ddac2a946ce88 Author: Anthony Liguori Date: Fri Apr 27 09:29:21 2007 +0300 KVM: VMX: Properly shadow the CR0 register in the vcpu struct Set all of the host mask bits for CR0 so that we can maintain a proper shadow of CR0. This exposes CR0.TS, paving the way for lazy fpu handling. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit aad1187a6c0201701026cdb2f7f6eeb49b2af4a2 Author: Avi Kivity Date: Wed Apr 25 16:57:46 2007 +0300 KVM: Move need_resched() check to common code Pointed out by Anthony Liguori. Signed-off-by: Avi Kivity commit b08487bd204708241c9b71ebfc555e334a4e4711 Author: Eddie Dong Date: Wed Apr 25 16:49:19 2007 +0300 KVM: VMX: Avoid unnecessary vcpu_load()/vcpu_put() cycles By checking if a reschedule is needed, we avoid dropping the vcpu. Signed-off-by: Avi Kivity commit 25900fd20d141145348178ffe91948e47c83e2ab Author: Avi Kivity Date: Wed Apr 25 11:51:06 2007 +0300 KVM: Avoid unused function warning due to assertion removal Signed-off-by: Avi Kivity commit 2bd9b992631841b1be5883a5c27b9c58ae9bb96a Author: Avi Kivity Date: Wed Apr 25 11:48:45 2007 +0300 KVM: We want asserts on debug builds, not release Noticed by Michael Riepe. Signed-off-by: Avi Kivity commit c3efc3ab86aa651106f6302592e25c7ab8285c35 Author: Avi Kivity Date: Thu Apr 12 13:03:01 2007 +0300 KVM: Initialize cr0 to indicate an fpu is present Solaris panics if it sees a cpu with no fpu, and it seems to rely on this bit. Closes sourceforge bug 1698920. Signed-off-by: Avi Kivity commit 28b183145d34a8ad1bc462df565165a88bcb5220 Author: Yaozu Dong Date: Wed Apr 25 14:17:25 2007 +0800 KVM: MMU: Avoid heavy ASSERT at non debug mode. Signed-off-by: Avi Kivity commit 418987aef13b475140b76f9f780046d63eb16f86 Author: Avi Kivity Date: Wed Apr 25 11:01:28 2007 +0300 KVM: Document MSR_K6_STAR's special place in the msr index array Signed-off-by: Avi Kivity commit 90ca9e3d54c8b0ac2023c624d1c7260bb8926beb Author: Avi Kivity Date: Wed Apr 25 10:59:52 2007 +0300 KVM: Don't complain about cpu erratum AA15 It slows down Windows x64 horribly. Signed-off-by: Avi Kivity commit 6f19cb49965e1316b285a443c9392031b1634f2e Author: Avi Kivity Date: Tue Apr 24 14:13:01 2007 +0300 KVM: Fix msr-avoidance regression on Core processors Core processors don't have the STAR msr, so the attempt not to save it caused an underflow in the number of msrs. Fix by only avoiding the STAR msr if it is actually present. Signed-off-by: Avi Kivity commit ccf9e2f22e5caf6274b5e9aafd9814a32ef049d5 Author: Anthony Liguori Date: Mon Apr 23 09:17:21 2007 -0500 KVM: Lazy FPU support for SVM Avoid saving and restoring the guest fpu state on every exit. This shaves ~100 cycles off the guest/host switch. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity commit d558e0b49319cfc9aa92e9b7215580f265a2ead7 Author: Avi Kivity Date: Sun Apr 22 15:28:19 2007 +0300 KVM: Allow passing 64-bit values to the emulated read/write API This simplifies the API somewhat (by eliminating the special-case cmpxchg8b on i386). Signed-off-by: Avi Kivity commit 551284356a39f20de70cd5556e85ae92080aec8c Author: Avi Kivity Date: Fri Apr 20 13:41:09 2007 +0300 KVM: Silence compile warning on i386 Signed-off-by: Avi Kivity commit 459377fe9ba4a307144ead3ad86993cdee9f8fe8 Author: Avi Kivity Date: Thu Apr 19 17:27:43 2007 +0300 KVM: Per-vcpu statistics Make the exit statistics per-vcpu instead of global. This gives a 3.5% boost when running one virtual machine per core on my two socket dual core (4 cores total) machine. Signed-off-by: Avi Kivity commit 5c828f83928f186320d74627089122ebc9ea98ce Author: Avi Kivity Date: Thu Apr 19 14:28:44 2007 +0300 KVM: VMX: Only save/restore MSR_K6_STAR if necessary Intel hosts only support syscall/sysret in long more (and only if efer.sce is enabled), so only reload the related MSR_K6_STAR if the guest will actually be able to use it. This reduces vmexit cost by about 500 cycles (6400 -> 5870) on my setup. Signed-off-by: Avi Kivity commit 37d6247b3636cbf47014694483d2d25c3806e8f2 Author: Avi Kivity Date: Thu Apr 19 13:26:39 2007 +0300 KVM: Fold drivers/kvm/kvm_vmx.h into drivers/kvm/vmx.c No meat in that file. Signed-off-by: Avi Kivity commit ba9c2fc1015a2b2f1f930274d465662ed8b860e6 Author: Avi Kivity Date: Thu Apr 19 13:22:48 2007 +0300 KVM: VMX: Don't switch 64-bit msrs for 32-bit guests Some msrs are only used by x86_64 instructions, and are therefore not needed when the guest is legacy mode. By not bothering to switch them, we reduce vmexit latency by 2400 cycles (from about 8800) when running a 32-bt guest on a 64-bit host. Signed-off-by: Avi Kivity commit 8d6c8a0d891f8c37889f28f368c2621f85e50035 Author: Avi Kivity Date: Wed Apr 18 11:18:18 2007 +0300 KVM: Fix off-by-one when writing to a nonpae guest pde Nonpae guest pdes are shadowed by two pae ptes, so we double the offset twice: once to account for the pte size difference, and once because we need to shadow pdes for a single guest pde. But when writing to the upper guest pde we also need to truncate the lower bits, otherwise the multiply shifts these bits into the pde index and causes an access to the wrong shadow pde. If we're at the end of the page (accessing the very last guest pde) we can even overflow into the next host page and oops. Signed-off-by: Avi Kivity commit f0b9c908fa1451147a07f2f4e4a9409fb7b14160 Author: Avi Kivity Date: Tue Apr 17 15:30:24 2007 +0300 KVM: VMX: Reduce unnecessary saving of host msrs THe automatically switched msrs are never changed on the host (with the exception of MSR_KERNEL_GS_BASE) and thus there is no need to save them on every vm entry. This reduces vmexit latency by ~400 cycles on i386 and by ~900 cycles (10%) on x86_64. Signed-off-by: Avi Kivity commit 7368e6550cdf72b0ad1b68dbe923f85e37ef4d08 Author: Avi Kivity Date: Tue Apr 17 10:53:22 2007 +0300 KVM: Handle guest page faults when emulating mmio Usually, guest page faults are detected by the kvm page fault handler, which detects if they are shadow faults, mmio faults, pagetable faults, or normal guest page faults. However, in ceratin circumstances, we can detect a page fault much later. One of these events is the following combination: - A two memory operand instruction (e.g. movsb) is executed. - The first operand is in mmio space (which is the fault reported to kvm) - The second operand is in an ummaped address (e.g. a guest page fault) The Windows 2000 installer does such an access, an promptly hangs. Fix by adding the missing page fault injection on that path. Signed-off-by: Avi Kivity commit 894f5a5efc0c48482eb10ad48891054a659e5941 Author: Avi Kivity Date: Mon Apr 16 14:28:40 2007 +0300 KVM: SVM: Report hardware exit reason to userspace instead of dmesg Signed-off-by: Avi Kivity commit 94d806a6efd4401ce43358af6a9e8df5a63151ae Author: Avi Kivity Date: Mon Apr 16 13:36:10 2007 +0300 KVM: Fix pio completion Check cur_count instead of count to avoid false completions. Signed-off-by: Avi Kivity commit d3344ae6f6293913d6e4f230ebee0b370f2e3f98 Author: Avi Kivity Date: Mon Apr 16 11:53:17 2007 +0300 KVM: Retry sleeping allocation if atomic allocation fails This avoids -ENOMEM under memory pressure. Signed-off-by: Avi Kivity commit 327585c3b4c1d6b04bb752f70f350d98ca855080 Author: Avi Kivity Date: Sun Apr 15 16:31:09 2007 +0300 KVM: Use slab caches to allocate mmu data structures Better leak detection, statistics, memory use, speed -- goodness all around. Signed-off-by: Avi Kivity commit 3079541923d2cdf702490eff7081610b7320e37f Author: Avi Kivity Date: Sun Apr 15 15:48:11 2007 +0300 KVM: Fix string pio when count == 0 Surprisingly, VT traps when executing a string pio instruction with zero count. Perhaps more surprisingly, the Windows ne2000 driver issues such instructions. Since we aren't prepared to handle completions of these instructions, avoid the entire mess by continuing execution without escaping to userspace. This fixes the networking problems reported by Leslie Mann with recent versions of kvm. Signed-off-by: Avi Kivity commit 3ef1110c81993e01343e1b473f5d7d1a23e6a8a3 Author: Avi Kivity Date: Thu Apr 12 17:35:58 2007 +0300 KVM: Handle partial pae pdptr Some guests (Solaris) do not set up all four pdptrs, but leave some invalid. kvm incorrectly treated these as valid page directories, pinning the wrong pages and causing general confusion. Fix by checking the valid bit of a pae pdpte. This closes sourceforge bug 1698922. Signed-off-by: Avi Kivity commit 4e9d9d330d9c9e66c449be10950562e407366a73 Author: Avi Kivity Date: Wed Apr 11 19:04:39 2007 +0300 KVM: Fix memory leak on pio completion We get_page() the pages participating in pio before we return to userspace, yet we neglect to free them. The can leak all guest memory in a few seconds by doing a hdparm -d 0 /dev/hda; dd < /dev/hda > /dev/null on the guest. Signed-off-by: Avi Kivity commit b630b9c6819844e29cddcfeaee901f6ada5d571b Author: Eric Sesterhenn / Snakebyte Date: Mon Apr 9 16:15:05 2007 +0200 KVM: Fix overflow bug in overflow detection code The expression sp - 6 < sp where sp is a u16 is undefined in C since 'sp - 6' is promoted to int, and signed overflow is undefined in C. gcc 4.2 actually warns about it. Replace with a simpler test. Signed-off-by: Eric Sesterhenn Signed-off-by: Avi Kivity commit c338c271f150ab2ded369ef4c1882f85b28af709 Author: Avi Kivity Date: Mon Apr 2 13:05:50 2007 +0300 KVM: Use kernel-standard types Noted by Joerg Roedel. Signed-off-by: Avi Kivity commit 0ea6eecef44923d66409a49d71e4fa87fa0f5bed Author: Avi Kivity Date: Sun Apr 1 16:34:31 2007 +0300 KVM: Add fpu get/set operations These are really helpful when migrating an floating point app to another machine. Signed-off-by: Avi Kivity commit 05671a064c73b8cb8966ddd037ece2d6ae2cb75b Author: Avi Kivity Date: Fri Mar 30 16:54:30 2007 +0300 KVM: Add physical memory aliasing feature With this, we can specify that accesses to one physical memory range will be remapped to another. This is useful for the vga window at 0xa0000 which is used as a movable window into the (much larger) framebuffer. Signed-off-by: Avi Kivity commit 8e08039818b6a5b8c81b905f863adaa18d774171 Author: Avi Kivity Date: Fri Mar 30 14:02:32 2007 +0300 KVM: Simply gfn_to_page() Mapping a guest page to a host page is a common operation. Currently, one has first to find the memory slot where the page belongs (gfn_to_memslot), then locate the page itself (gfn_to_page()). This is clumsy, and also won't work well with memory aliases. So simplify gfn_to_page() not to require memory slot translation first, and instead do it internally. Signed-off-by: Avi Kivity commit 66a9932c55ff7240955d57b7d1e62178a9e80868 Author: Dor Laor Date: Fri Mar 30 13:06:33 2007 +0300 Add mmu cache clear function Functions that play around with the physical memory map need a way to clear mappings to possibly nonexistent or invalid memory. Both the mmu cache and the processor tlb are cleared. Signed-off-by: Dor Laor Signed-off-by: Avi Kivity commit 6095d7b8291fc3e05f3b8790a9bc86b54af281a2 Author: Joerg Roedel Date: Fri Mar 30 17:02:14 2007 +0300 KVM: SVM: enable LBRV virtualization if available This patch enables the virtualization of the last branch record MSRs on SVM if this feature is available in hardware. It also introduces a small and simple check feature for specific SVM extensions. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 8f1469e8477bea483d5a6348a30a534449048c8d Author: Avi Kivity Date: Wed Mar 28 20:04:16 2007 +0200 KVM: x86 emulator: fix bit string operations operand size On x86, bit operations operate on a string of bits that can reside in multiple words. For example, 'btsl %eax, (blah)' will touch the word at blah+4 if %eax is between 32 and 63. The x86 emulator compensates for that by advancing the operand address by (bit offset / BITS_PER_LONG) and truncating the bit offset to the range (0..BITS_PER_LONG-1). This has a side effect of forcing the operand size to 8 bytes on 64-bit hosts. Now, a 32-bit guest goes and fork()s a process. It write protects a stack page at 0xbffff000 using the 'btr' instruction, at offset 0xffc in the page table, with bit offset 1 (for the write permission bit). The emulator now forces the operand size to 8 bytes as previously described, and an innocent page table update turns into a cross-page-boundary write, which is assumed by the mmu code not to be a page table, so it doesn't actually clear the corresponding shadow page table entry. The guest and host permissions are out of sync and guest memory is corrupted soon afterwards, leading to guest failure. Fix by not using BITS_PER_LONG as the word size; instead use the actual operand size, so we get a 32-bit write in that case. Note we still have to teach the mmu to handle cross-page-boundary writes to guest page table; but for now this allows Damn Small Linux 0.4 (2.4.20) to boot. Signed-off-by: Avi Kivity commit e3a065c4e99bb8282d72a2c3c75234d7d7408be6 Author: Avi Kivity Date: Tue Mar 27 17:50:20 2007 +0200 KVM: Remove debug message No longer interesting. Signed-off-by: Avi Kivity commit 19cd40d605bb99fc9058973a69ef208c8b5b1e42 Author: Avi Kivity Date: Tue Mar 27 16:12:41 2007 +0200 Revert "added KVM_GET_MEM_MAP ioctl to get the memory bitmap for a memory slot" This reverts commit ade11a015f83d270d1201c440199146f852fe5e4. As the balloon path will be through qemu, it will have direct knowledge of released gfns, so this API is not directly needed. If it becomes useful in the future, it will be un-reverted. Signed-off-by: Avi Kivity commit 932bf20c0c2075f958bb86b481d8f359197b4d6a Author: Avi Kivity Date: Mon Mar 26 19:31:52 2007 +0200 KVM: Use list_move() Use list_move() where possible. Noticed by Dor Laor. Signed-off-by: Avi Kivity commit 31e82571e8a77d5feb1093627ef0b31f28649590 Author: Michal Piotrowski Date: Sun Mar 25 17:59:32 2007 +0200 KVM: Remove unused function Remove unused function CC drivers/kvm/svm.o drivers/kvm/svm.c:207: warning: ‘inject_db’ defined but not used Signed-off-by: Michal Piotrowski Signed-off-by: Avi Kivity commit 9207113c121519986a114ee5c498184e618ffd68 Author: Avi Kivity Date: Sun Mar 25 12:07:27 2007 +0200 KVM: SVM: Ensure timestamp counter monotonicity When a vcpu is migrated from one cpu to another, its timestamp counter may lose its monotonic property if the host has unsynced timestamp counters. This can confuse the guest, sometimes to the point of refusing to boot. As the rdtsc instruction is rather fast on AMD processors (7-10 cycles), we can simply record the last host tsc when we drop the cpu, and adjust the vcpu tsc offset when we detect that we've migrated to a different cpu. Signed-off-by: Avi Kivity commit b40faf227eb371a52aa21d08f8e9c33fc06602b4 Author: Avi Kivity Date: Fri Mar 23 09:55:25 2007 +0200 KVM: MMU: Fix hugepage pdes mapping same physical address with different access The kvm mmu keeps a shadow page for hugepage pdes; if several such pdes map the same physical address, they share the same shadow page. This is a fairly common case (kernel mappings on i386 nonpae Linux, for example). However, if the two pdes map the same memory but with different permissions, kvm will happily use the cached shadow page. If the access through the more permissive pde will occur after the access to the strict pde, an endless pagefault loop will be generated and the guest will make no progress. Fix by making the access permissions part of the cache lookup key. The fix allows Xen pae to boot on kvm and run guest domains. Thanks to Jeremy Fitzhardinge for reporting the bug and testing the fix. Signed-off-by: Avi Kivity commit 061bba1190514205594d2046f5dc31a01a135163 Author: Avi Kivity Date: Thu Mar 22 15:10:32 2007 +0200 Revert "KVM: Remove extraneous guest entry on mmio read" This reverts commit b0092d187cfa19dfcada3b85d728af5ae27989dc. While the optimization is sound, it regresses booting the Fedora Core 6 32 bit kernel. Signed-off-by: Avi Kivity commit 4cec1674d1436157c7dcc2b5b6f625b08b2b96e8 Author: Joerg Roedel Date: Wed Mar 21 19:47:00 2007 +0100 KVM: SVM: forbid guest to execute monitor/mwait This patch forbids the guest to execute monitor/mwait instructions on SVM. This is necessary because the guest can execute these instructions if they are available even if the kvm cpuid doesn't report its existence. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 7921ad9e303f3f03dd81b552e3b0cd87ef355219 Author: Sergey Kiselev Date: Thu Mar 22 14:06:18 2007 +0200 KVM: Handle writes to MCG_STATUS msr Some older (~2.6.7) kernels write MCG_STATUS register during kernel boot (mce_clear_all() function, called from mce_init()). It's not currently handled by kvm and will cause it to inject a GPF. Following patch adds a "nop" handler for this. Signed-off-by: Sergey Kiselev Signed-off-by: Avi Kivity commit 36809e1326c13887d324025d4592958ead8758d5 Author: Avi Kivity Date: Wed Mar 21 18:14:42 2007 +0200 KVM: Remove unused and write-only variables Trivial cleanup. Signed-off-by: Avi Kivity commit 262e17b818054dad314a062a439681d79a336d48 Author: Avi Kivity Date: Wed Mar 21 18:11:36 2007 +0200 KVM: Don't allow the guest to turn off the cpu cache The cpu cache is a host resource; the guest should not be able to turn it off (even for itself). Signed-off-by: Avi Kivity commit 8c37a70d93ba3e4286ad7524f7915a32ed39cac9 Author: Avi Kivity Date: Wed Mar 21 17:58:32 2007 +0200 KVM: Hack real-mode segments on vmx from KVM_SET_SREGS As usual, we need to mangle segment registers when emulating real mode as vm86 has specific constraints. We special case the reset segment base, and set the "access rights" (or descriptor flags) to vm86 comaptible values. This fixes reboot on vmx. Signed-off-by: Avi Kivity commit 0bf8d346418255335dc9062d96b9f8814b471690 Author: Avi Kivity Date: Wed Mar 21 13:44:58 2007 +0200 KVM: Modify guest segments after potentially switching modes The SET_SREGS ioctl modifies both cr0.pe (real mode/protected mode) and guest segment registers. Since segment handling is modified by the mode on Intel procesors, update the segment registers after the mode switch has taken place. Signed-off-by: Avi Kivity commit f97af70b3aa8a92ddeabb7d42477e7d13dd0a192 Author: Avi Kivity Date: Tue Mar 20 18:44:51 2007 +0200 KVM: Remove set_cr0_no_modeswitch() arch op set_cr0_no_modeswitch() was a hack to avoid corrupting segment registers. As we now cache the protected mode values on entry to real mode, this isn't an issue anymore, and it interferes with reboot (which usually _is_ a modeswitch). Signed-off-by: Avi Kivity commit e314dde30e3851e8effc017c6fffced11d90183a Author: Avi Kivity Date: Tue Mar 20 18:40:40 2007 +0200 KVM: Workaround vmx inability to virtualize the reset state The reset state has cs.selector == 0xf000 and cs.base == 0xffff0000, which aren't compatible with vm86 mode, which is used for real mode virtualization. When we create a vcpu, we set cs.base to 0xf0000, but if we get there by way of a reset, the values are inconsistent and vmx refuses to enter guest mode. Workaround by detecting the state and munging it appropriately. Signed-off-by: Avi Kivity commit 88aea7ddfae755633b0a80ccfa56244b3c79c7b0 Author: Avi Kivity Date: Tue Mar 20 14:34:28 2007 +0200 KVM: MMU: Remove global pte tracking The initial, noncaching, version of the kvm mmu flushed the all nonglobal shadow page table translations (much like a native tlb flush). The new implementation flushes translations only when they change, rendering global pte tracking superfluous. This removes the unused tracking mechanism and storage space. Signed-off-by: Avi Kivity commit 66e5d5c81b5b89e39aa86e3bf9864d228f468b0d Author: Avi Kivity Date: Tue Mar 20 14:29:06 2007 +0200 KVM: MMU: Remove unnecessary check for pdptr access We already special case the pdptr access, so no need to check it again. Signed-off-by: Avi Kivity commit c01571ed56754dfea458cc37d553c360082411a1 Author: Avi Kivity Date: Tue Mar 20 12:46:50 2007 +0200 KVM: Avoid guest virtual addresses in string pio userspace interface The current string pio interface communicates using guest virtual addresses, relying on userspace to translate addresses and to check permissions. This interface cannot fully support guest smp, as the check needs to take into account two pages at one in case an unaligned string transfer straddles a page boundary. Change the interface not to communicate guest addresses at all; instead use a buffer page (mmaped by userspace) and do transfers there. The kernel manages the virtual to physical translation and can perform the checks atomically by taking the appropriate locks. Signed-off-by: Avi Kivity commit 74c24de6e7848a45d6109d987d4fd2ccd83e432e Author: Avi Kivity Date: Wed Mar 7 13:11:17 2007 +0200 KVM: Future-proof argument-less ioctls Some ioctls ignore their arguments. By requiring them to be zero now, we allow a nonzero value to have some special meaning in the future. Signed-off-by: Avi Kivity commit 29e686a1dc9631b7898d087a0ab1c4716672e209 Author: Avi Kivity Date: Wed Mar 7 13:05:38 2007 +0200 KVM: Allow kernel to select size of mmap() buffer This allows us to store offsets in the kernel/user kvm_run area, and be sure that userspace has them mapped. As offsets can be outside the kvm_run struct, userspace has no way of knowing how much to mmap. Signed-off-by: Avi Kivity commit cce3a1062817218c67163732339e2ea25e9f023b Author: Avi Kivity Date: Mon Mar 5 19:46:05 2007 +0200 KVM: Add guest mode signal mask Allow a special signal mask to be used while executing in guest mode. This allows signals to be used to interrupt a vcpu without requiring signal delivery to a userspace handler, which is quite expensive. Userspace still receives -EINTR and can get the signal via sigwait(). Signed-off-by: Avi Kivity commit cd3aaa2392baec9674792d71d304ec41e540b517 Author: Avi Kivity Date: Mon Mar 5 17:45:40 2007 +0200 KVM: Initialize the apic_base msr on svm too Older userspace didn't care, but newer userspace (with the cpuid changes) does. Signed-off-by: Avi Kivity commit c303c0efc5b2ff8c0f77c9079fa66f62801da93d Author: Avi Kivity Date: Sun Mar 4 14:24:03 2007 +0200 KVM: Add a special exit reason when exiting due to an interrupt This is redundant, as we also return -EINTR from the ioctl, but it allows us to examine the exit_reason field on resume without seeing old data. Signed-off-by: Avi Kivity commit 62919332e00e3226dd1f728ff83107d06a6d9a81 Author: Avi Kivity Date: Sun Mar 4 14:17:08 2007 +0200 KVM: Fold kvm_run::exit_type into kvm_run::exit_reason Currently, userspace is told about the nature of the last exit from the guest using two fields, exit_type and exit_reason, where exit_type has just two enumerations (and no need for more). So fold exit_type into exit_reason, reducing the complexity of determining what really happened. Signed-off-by: Avi Kivity commit 9e16898f4f5d6cdc35030bb272631611b71548fe Author: Avi Kivity Date: Sun Mar 4 13:59:30 2007 +0200 KVM: Allow userspace to process hypercalls which have no kernel handler This is useful for paravirtualized graphics devices, for example. Signed-off-by: Avi Kivity commit 440fd9098bceb2ca0856d962ff62db9af4d1094a Author: Avi Kivity Date: Thu Mar 1 17:56:20 2007 +0200 KVM: Add method to check for backwards-compatible API extensions Signed-off-by: Avi Kivity commit 0b37dedb178bcb3b0a28f65e6ae835bf58184301 Author: Avi Kivity Date: Thu Mar 1 17:20:13 2007 +0200 KVM: Renumber ioctls The recent changes have left the ioctl numbers in complete disarray. Signed-off-by: Avi Kivity commit 95cab16b18e1c1a786a9fc5ea6fcd68b29ae3481 Author: Avi Kivity Date: Thu Mar 1 16:47:06 2007 +0200 KVM: Remove minor wart from KVM_CREATE_VCPU ioctl That ioctl does not transfer any data, so it should be an _IO rather than an _IOW. Signed-off-by: Avi Kivity commit ba5cb15b027b76ba7b4d247914eb6d20065c0767 Author: Avi Kivity Date: Thu Mar 1 16:20:40 2007 +0200 KVM: Remove the 'emulated' field from the userspace interface We no longer emulate single instructions in userspace. Instead, we service mmio or pio requests. Signed-off-by: Avi Kivity commit 706e8fe655be36aa686f1fbb398d3a4470d4939b Author: Avi Kivity Date: Wed Feb 28 20:46:53 2007 +0200 KVM: Handle cpuid in the kernel instead of punting to userspace KVM used to handle cpuid by letting userspace decide what values to return to the guest. We now handle cpuid completely in the kernel. We still let userspace decide which values the guest will see by having userspace set up the value table beforehand (this is necessary to allow management software to set the cpu features to the least common denominator, so that live migration can work). The motivation for the change is that kvm kernel code can be impacted by cpuid features, for example the x86 emulator. Signed-off-by: Avi Kivity commit aad2f6e0faf4b03e087bbe6751acdacd72e911b6 Author: Avi Kivity Date: Thu Feb 22 19:48:43 2007 +0200 KVM: Initialize PIO I/O count This allows userspace to ignore the io.rep field. No a big deal, but friendly. Signed-off-by: Avi Kivity commit e668cf946ee8654c7f5afe3feeed686a3566c22a Author: Avi Kivity Date: Thu Feb 22 19:39:30 2007 +0200 KVM: Do not communicate to userspace through cpu registers during PIO Currently when passing the a PIO emulation request to userspace, we rely on userspace updating %rax (on 'in' instructions) and %rsi/%rdi/%rcx (on string instructions). This (a) requires two extra ioctls for getting and setting the registers and (b) is unfriendly to non-x86 archs, when they get kvm ports. So fix by doing the register fixups in the kernel and passing to userspace only an abstract description of the PIO to be done. Signed-off-by: Avi Kivity commit 3de857cd1335bd2e02b60d3a50b7da93ccbabf1d Author: Avi Kivity Date: Thu Feb 22 12:58:31 2007 +0200 KVM: Use a shared page for kernel/user communication when runing a vcpu Instead of passing a 'struct kvm_run' back and forth between the kernel and userspace, allocate a page and allow the user to mmap() it. This reduces needless copying and makes the interface expandable by providing lots of free space. Signed-off-by: Avi Kivity commit 128e159e11e999496ec44a549fcac91de3802389 Author: Avi Kivity Date: Mon Mar 19 13:18:10 2007 +0200 KVM: Prevent system selectors leaking into guest on real->protected mode transition on vmx Intel virtualization extensions do not support virtualizing real mode. So kvm uses virtualized vm86 mode to run real mode code. Unfortunately, this virtualized vm86 mode does not support the so called "big real" mode, where the segment selector and base do not agree with each other according to the real mode rules (base == selector << 4). To work around this, kvm checks whether a selector/base pair violates the virtualized vm86 rules, and if so, forces it into conformance. On a transition back to protected mode, if we see that the guest did not touch a forced segment, we restore it back to the original protected mode value. This pile of hacks breaks down if the gdt has changed in real mode, as it can cause a segment selector to point to a system descriptor instead of a normal data segment. In fact, this happens with the Windows bootloader and the qemu acpi bios, where a protected mode memcpy routine issues an innocent 'pop %es' and traps on an attempt to load a system descriptor. "Fix" by checking if the to-be-restored selector points at a system segment, and if so, coercing it into a normal data segment. The long term solution, of course, is to abandon vm86 mode and use emulation for big real mode. Signed-off-by: Avi Kivity commit ade11a015f83d270d1201c440199146f852fe5e4 Author: Uri Lublin Date: Wed Mar 14 19:21:06 2007 +0200 added KVM_GET_MEM_MAP ioctl to get the memory bitmap for a memory slot To be used when there may be "holes" in the memory. Specifically to not break VM migration when ballooning mechanism exists Signed-off-by: Uri Lublin commit b0092d187cfa19dfcada3b85d728af5ae27989dc Author: Avi Kivity Date: Wed Mar 14 15:54:54 2007 +0200 KVM: Remove extraneous guest entry on mmio read When emulating an mmio read, we actually emulate twice: once to determine the physical address of the mmio, and, after we've exited to userspace to get the mmio value, we emulate again to place the value in the result register and update any flags. But we don't really need to enter the guest again for that, only to take an immediate vmexit. So, if we detect that we're doing an mmio read, emulate a single instruction before entering the guest again. Signed-off-by: Avi Kivity commit 470db88b8b3491199e8d55b771d66e74b2fd53cd Author: Ingo Molnar Date: Sun Mar 11 13:52:33 2007 +0100 KVM: always reload segment selectors failed VM entry on VMX might still change %fs or %gs, thus make sure that KVM always reloads the segment selectors. This is crutial on both x86 and x86_64: x86 has __KERNEL_PDA in %fs on which things like 'current' depends and x86_64 has 0 there and needs MSR_GS_BASE to work. Signed-off-by: Ingo Molnar commit f7edc6a39584a3f95687a5320675fadb23bccbe5 Author: Ingo Molnar Date: Sat Mar 10 11:22:51 2007 +0100 KVM: trivial whitespace fixes trivial whitespace fixes. Signed-off-by: Ingo Molnar commit f3a33bfeaa5cade1a9ac1facb5cb904a483b1e5c Author: Avi Kivity Date: Fri Mar 9 13:04:31 2007 +0200 KVM: MMU: Fix host memory corruption on i386 with >= 4GB ram PAGE_MASK is an unsigned long, so using it to mask physical addresses on i386 (which are 64-bit wide) leads to truncation. This can result in page->private of unrelated memory pages being modified, with disasterous results. Fix by not using PAGE_MASK for physical addresses; instead calculate the correct value directly from PAGE_SIZE. Also fix a similar BUG_ON(). Signed-off-by: Avi Kivity commit 6ee9853b015f8807f497ffad39b142ddc1403aa9 Author: Avi Kivity Date: Thu Mar 8 17:13:32 2007 +0200 KVM: MMU: Fix guest writes to nonpae pde KVM shadow page tables are always in pae mode, regardless of the guest setting. This means that a guest pde (mapping 4MB of memory) is mapped to two shadow pdes (mapping 2MB each). When the guest writes to a pte or pde, we intercept the write and emulate it. We also remove any shadowed mappings corresponding to the write. Since the mmu did not account for the doubling in the number of pdes, it removed the wrong entry, resulting in a mismatch between shadow page tables and guest page tables, followed shortly by guest memory corruption. This patch fixes the problem by detecting the special case of writing to a non-pae pde and adjusting the address and number of shadow pdes zapped accordingly. Signed-off-by: Avi Kivity commit 374c1509c7d04a4e351b1812c2f0b9dac3ea0c0a Author: Avi Kivity Date: Thu Mar 8 11:48:09 2007 +0200 KVM: Fix bogus sign extension in mmu mapping audit When auditing a 32-bit guest on a 64-bit host, sign extension of the page table directory pointer table index caused bogus addresses to be shown on audit errors. Fix by declaring the index unsigned. Signed-off-by: Avi Kivity commit fac539542cbf923a39238b10557c88f99fd45b59 Author: Avi Kivity Date: Wed Mar 7 09:29:48 2007 +0200 KVM: Export This allows users to actually build prgrams that use kvm without the entire source tree. Signed-off-by: Avi Kivity commit c14a46343cc9f04f15ebc67573031fe8bbe1555a Author: Avi Kivity Date: Tue Mar 6 12:05:53 2007 +0200 KVM: Fix guest sysenter on vmx The vmx code currently treats the guest's sysenter support msrs as 32-bit values, which breaks 32-bit compat mode userspace on 64-bit guests. Fix by using the native word width of the machine. Signed-off-by: Avi Kivity commit ea135e7671189ffb7e67843bf98740dac0c6ccfa Author: Avi Kivity Date: Sun Mar 4 13:27:36 2007 +0200 KVM: Use own minor number Use the minor number (232) allocated to kvm by lanana. Signed-off-by: Avi Kivity commit 21af17507f37658414191b1cf1337efbaf7dd530 Author: Dor Laor Date: Mon Feb 19 18:25:43 2007 +0200 KVM: Use the generic skip_emulated_instruction() in hypercall code Instead of twiddling the rip registers directly, use the skip_emulated_instruction() function to do that for us. Signed-off-by: Dor Laor Signed-off-by: Avi Kivity commit 57d78025d84fb607aa335d015a79b257517aa209 Author: Dor Laor Date: Mon Feb 19 16:44:49 2007 +0200 KVM: Fix guest register corruption on paravirt hypercall The hypercall code mixes up the ->cache_regs() and ->decache_regs() callbacks, resulting in guest register corruption. Signed-off-by: Dor Laor Signed-off-by: Avi Kivity commit 28e9803c9134683a884efe05abdb3f814c1ca7e7 Author: Avi Kivity Date: Thu Mar 1 19:21:03 2007 +0200 KVM: Unset kvm_arch_ops if arch module loading failed Otherwise, the core module thinks the arch module is loaded, and won't let you reload it after you've fixed the bug. Signed-off-by: Avi Kivity commit 426bc2fd1462706ec92d0e9efdb0cf3643f4eb67 Author: Avi Kivity Date: Thu Mar 1 11:28:13 2007 +0200 KVM: Move kvmfs magic number to From: Andrew Morton Use the standard magic.h for kvmfs. Cc: Avi Kivity Signed-off-by: Andrew Morton Signed-off-by: Avi Kivity commit c1a8557e1da6e7d8bf8f77cb1b47c077f5c2a67d Author: Avi Kivity Date: Mon Feb 26 16:29:43 2007 +0200 KVM: Fix bogus failure in kvm.ko module initialization A bogus 'return r' can cause an otherwise successful module load to fail. This both denies users the use of kvm, and it also denies them the use of their machine, as it leaves a filesystem registered with its callbacks pointing into now-freed module memory. Fix by returning a zero like a good module. Thanks to Richard Lucassen (?) for reporting the problem and for providing access to a machine which exhibited it. Signed-off-by: Avi Kivity commit 7703ff91ee2ed171f2175d030e7f063c4efab2f5 Author: Uri Lublin Date: Thu Feb 22 17:37:32 2007 +0200 KVM: Remove write access permissions when dirty-page-logging is enabled Enabling dirty page logging is done using KVM_SET_MEMORY_REGION ioctl. If the memory region already exists, we need to remove write accesses, so writes will be caught, and dirty pages will be logged. Signed-off-by: Uri Lublin Signed-off-by: Avi Kivity commit b77fd1f62576463434fc434cbdcd808847e169a1 Author: Uri Lublin Date: Thu Feb 22 17:15:33 2007 +0200 kvm: move do_remove_write_access() up To be called from kvm_vm_ioctl_set_memory_region() Signed-off-by: Uri Lublin Signed-off-by: Avi Kivity commit 62e287e7210d6ff142b3b05233fa1f5df686b794 Author: Uri Lublin Date: Thu Feb 22 16:43:09 2007 +0200 KVM: Fix dirty page log bitmap size/access calculation Since dirty_bitmap is an unsigned long array, the alignment and size need to take that into account. Signed-off-by: Uri Lublin Signed-off-by: Avi Kivity commit 871574eb14e959c19d94fdee7c3e2b88ae06770f Author: Uri Lublin Date: Wed Feb 21 18:25:21 2007 +0200 KVM: Add missing calls to mark_page_dirty() A few places where we modify guest memory fail to call mark_page_dirty(), causing live migration to fail. This adds the missing calls. Signed-off-by: Uri Lublin Signed-off-by: Avi Kivity commit 42017e8bf8eb7b6f65b95bca1368ee274fc5ef50 Author: Uri Lublin Date: Thu Feb 22 17:37:32 2007 +0200 kvm: dirty page logging: remove write access permissions when dirty-page-logging is enabled Enabling dirty page logging is done using KVM_SET_MEMORY_REGION ioctl. If the memory region already exists, there is a need to remove write accesses, so writes will be caught, and dirty pages will be logged. commit a9fd29cfcb643b97cd76c7d836be4d0ed80f69e0 Author: Uri Lublin Date: Thu Feb 22 17:15:33 2007 +0200 kvm: move do_remove_write_access() up To be called from kvm_vm_ioctl_set_memory_region() commit fba4ba9c513ad2cd328f5f16980aa7b90d40cec0 Author: Uri Lublin Date: Thu Feb 22 16:43:09 2007 +0200 kvm: dirty pages log: fix bitmap size/access calculation Since dirty_bitmap is an unsigned long array (pointer) commit ae160d732685ab33d5a3a495663aa2b54c4d4734 Author: Uri Lublin Date: Thu Feb 22 15:47:42 2007 +0200 .gitignore: ignore emacs backup files (*~) commit 8267c1cd9a8a038e91c94e0cabc571a3614dc3e5 Author: Avi Kivity Date: Wed Feb 21 19:47:40 2007 +0200 KVM: Bump API version Signed-off-by: Avi Kivity commit c65237e78c19b8173338a49933c611dece13c1c6 Author: Avi Kivity Date: Wed Feb 21 18:04:26 2007 +0200 KVM: Per-vcpu inodes Allocate a distinct inode for every vcpu in a VM. This has the following benefits: - the filp cachelines are no longer bounced when f_count is incremented on every ioctl() - the API and internal code are distinctly clearer; for example, on the KVM_GET_REGS ioctl, there is no need to copy the vcpu number from userspace and then copy the registers back; the vcpu identity is derived from the fd used to make the call Right now the performance benefits are completely theoretical since (a) we don't support more than one vcpu per VM and (b) virtualization hardware inefficiencies completely everwhelm any cacheline bouncing effects. But both of these will change, and we need to prepare the API today. Signed-off-by: Avi Kivity commit 11c1297fadc533d1f66252088b4f4775018bafbb Author: Avi Kivity Date: Tue Feb 20 18:41:05 2007 +0200 KVM: Move kvm_vm_ioctl_create_vcpu() around In preparation of some hacking. Signed-off-by: Avi Kivity commit f3ad84386727171d8308338a2c5dee1deac2e50d Author: Avi Kivity Date: Tue Feb 20 18:27:58 2007 +0200 KVM: Rename some kvm_dev_ioctl_*() functions to kvm_vm_ioctl_*() This reflects the changed scope, from device-wide to single vm (previously every device open created a virtual machine). Signed-off-by: Avi Kivity commit 733e3f74f1c51bbc2e7a99df8b51767504b58de2 Author: Avi Kivity Date: Wed Feb 21 19:28:04 2007 +0200 KVM: Create an inode per virtual machine This avoids having filp->f_op and the corresponding inode->i_fop different, which is a little unorthodox. The ioctl list is split into two: global kvm ioctls and per-vm ioctls. A new ioctl, KVM_CREATE_VM, is used to create VMs and return the VM fd. Signed-off-by: Avi Kivity commit 52a96114380f8ab615626e4cec57b7015895bd0f Author: Avi Kivity Date: Tue Feb 20 14:07:37 2007 +0200 KVM: Add internal filesystem for generating inodes The kvmfs inodes will represent virtual machines and vcpus, as necessary, reducing cacheline bouncing due to inodes and filps being shared. Signed-off-by: Avi Kivity commit b00bc8b10197715f5b842f1f9a60e67a3484b10f Author: Uri Lublin Date: Wed Feb 21 18:25:21 2007 +0200 kvm, dirty pages log: adding some calls to mark_page_dirty() commit 58a214eba321d92f833221c26777e2119e34a19d Author: Avi Kivity Date: Mon Feb 19 14:37:48 2007 +0200 KVM: More 0 -> NULL conversions Signed-off-by: Avi Kivity commit f73199bb57b4c8feb7d8f60c6f1a25107de18dab Author: Joerg Roedel Date: Mon Feb 19 14:37:47 2007 +0200 KVM: SVM: intercept SMI to handle it at host level This patch changes the SVM code to intercept SMIs and handle it outside the guest. Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit fa2742c78f10fad8682e3af17df3e9fc2eece9e4 Author: Avi Kivity Date: Mon Feb 19 14:37:47 2007 +0200 KVM: svm: init cr0 with the wp bit set Signed-off-by: Avi Kivity commit 8da588a919dc0bef76e384d16fd13ea2189aa82d Author: Avi Kivity Date: Mon Feb 19 14:37:47 2007 +0200 KVM: Wire up hypercall handlers to a central arch-independent location Signed-off-by: Avi Kivity commit 68f16784f188d280c75b39e2367ebc1adbc66d9d Author: Avi Kivity Date: Mon Feb 19 14:37:47 2007 +0200 KVM: Add hypercall host support for svm Signed-off-by: Avi Kivity commit 7c8bd4d6fc0e2bfb35cd4c0e8ff39c4f8972d951 Author: Ingo Molnar Date: Mon Feb 19 14:37:47 2007 +0200 KVM: Add host hypercall support for vmx Signed-off-by: Avi Kivity commit f846fa34a14ec37dc0194c6f47ea4374c140e6f1 Author: Ingo Molnar Date: Mon Feb 19 14:37:47 2007 +0200 KVM: add MSR based hypercall API This adds a special MSR based hypercall API to KVM. This is to be used by paravirtual kernels and virtual drivers. Signed-off-by: Ingo Molnar Signed-off-by: Avi Kivity commit 8aa04bb13cf90d68c26d6bea1e4c720f1f027be0 Author: Markus Rechberger Date: Mon Feb 19 14:37:47 2007 +0200 KVM: Use page_private()/set_page_private() apis Besides using an established api, this allows using kvm in older kernels. Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit 4d5a7e81cc63d28e94373cdeb74dc44045edaa10 Author: Ahmed S. Darwish Date: Mon Feb 19 14:37:46 2007 +0200 KVM: Use ARRAY_SIZE macro instead of manual calculation. Signed-off-by: Ahmed S. Darwish Signed-off-by: Dor Laor Signed-off-by: Avi Kivity commit 0fe9875fb3f9946a6c1cef6f1b9a286edc8ee2b9 Author: Markus Rechberger Date: Mon Feb 19 14:37:46 2007 +0200 KVM: vmx: hack set_cr0_no_modeswitch() to actually do modeswitch From: Joerg Roedel The whole thing is rotten, but this allows vmx to boot with the guest reboot fix. Signed-off-by: Markus Rechberger Signed-off-by: Joerg Roedel Signed-off-by: Avi Kivity commit 7e6e2bbad7f5dbccb389ee6d79be661972b18b15 Author: Avi Kivity Date: Mon Feb 19 14:37:46 2007 +0200 KVM: Cosmetics Signed-off-by: Avi Kivity commit cc66daca849ca8c2900ba8cc7640de664296d36a Author: Jeremy Katz Date: Mon Feb 19 14:37:46 2007 +0200 KVM: Move virtualization deactivation from CPU_DEAD state to CPU_DOWN_PREPARE This gives it more chances of surviving suspend. Signed-off-by: Jeremy Katz Signed-off-by: Avi Kivity commit 2959cd13ecc1fbe1b2339937481844ff963f1e7f Author: Avi Kivity Date: Mon Feb 19 14:37:46 2007 +0200 KVM: mmu: add missing dirty page tracking cases We fail to mark a page dirty in three cases: - setting the accessed bit in a pte - setting the dirty bit in a pte - emulating a write into a pagetable This fix adds the missing cases. Signed-off-by: Avi Kivity Signed-off-by: Andrew Morton --- Documentation/00-INDEX | 2 Documentation/ABI/testing/sysfs-bus-css | 35 Documentation/ABI/testing/sysfs-dev | 20 Documentation/DocBook/kernel-locking.tmpl | 57 Documentation/RCU/NMI-RCU.txt | 3 Documentation/RCU/RTFP.txt | 108 Documentation/RCU/checklist.txt | 89 Documentation/RCU/whatisRCU.txt | 58 Documentation/early-userspace/00-INDEX | 8 Documentation/early-userspace/initrd.txt | 366 Documentation/edac.txt | 2 Documentation/feature-removal-schedule.txt | 7 Documentation/filesystems/hfs.txt | 2 Documentation/filesystems/nfs-rdma.txt | 103 Documentation/filesystems/sysfs-pci.txt | 1 Documentation/filesystems/sysfs.txt | 6 Documentation/filesystems/ubifs.txt | 163 Documentation/hwmon/dme1737 | 4 Documentation/hwmon/sysfs-interface | 33 Documentation/i2c/busses/i2c-i810 | 47 Documentation/i2c/busses/i2c-prosavage | 23 Documentation/i2c/busses/i2c-savage4 | 26 Documentation/i2c/fault-codes | 127 Documentation/i2c/smbus-protocol | 4 Documentation/i2c/writing-clients | 40 Documentation/i386/IO-APIC.txt | 119 Documentation/i386/boot.txt | 887 - Documentation/i386/usb-legacy-support.txt | 44 Documentation/i386/zero-page.txt | 31 Documentation/ia64/paravirt_ops.txt | 137 Documentation/initrd.txt | 366 Documentation/input/gameport-programming.txt | 2 Documentation/input/input.txt | 1 Documentation/input/joystick-api.txt | 2 Documentation/input/joystick-parport.txt | 1 Documentation/input/joystick.txt | 1 Documentation/ja_JP/SubmittingPatches | 4 Documentation/kernel-parameters.txt | 29 Documentation/kobject.txt | 4 Documentation/laptops/thinkpad-acpi.txt | 2 Documentation/lguest/lguest.c | 113 Documentation/networking/bonding.txt | 94 Documentation/powerpc/booting-without-of.txt | 69 Documentation/scsi/aacraid.txt | 24 Documentation/sound/alsa/ALSA-Configuration.txt | 12 Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | 4 Documentation/tracers/mmiotrace.txt | 164 Documentation/usb/WUSB-Design-overview.txt | 448 Documentation/usb/gadget_serial.txt | 35 Documentation/usb/uhci.txt | 165 Documentation/usb/wusb-cbaf | 133 Documentation/video4linux/CARDLIST.cx23885 | 1 Documentation/video4linux/CARDLIST.em28xx | 1 Documentation/x86/i386/IO-APIC.txt | 119 Documentation/x86/i386/boot.txt | 900 + Documentation/x86/i386/usb-legacy-support.txt | 44 Documentation/x86/i386/zero-page.txt | 31 Documentation/x86/x86_64/00-INDEX | 16 Documentation/x86/x86_64/boot-options.txt | 314 Documentation/x86/x86_64/cpu-hotplug-spec | 21 Documentation/x86/x86_64/fake-numa-for-cpusets | 66 Documentation/x86/x86_64/kernel-stacks | 99 Documentation/x86/x86_64/machinecheck | 77 Documentation/x86/x86_64/mm.txt | 28 Documentation/x86/x86_64/uefi.txt | 38 Documentation/x86_64/00-INDEX | 16 Documentation/x86_64/boot-options.txt | 314 Documentation/x86_64/cpu-hotplug-spec | 21 Documentation/x86_64/fake-numa-for-cpusets | 66 Documentation/x86_64/kernel-stacks | 99 Documentation/x86_64/machinecheck | 77 Documentation/x86_64/mm.txt | 29 Documentation/x86_64/uefi.txt | 38 Documentation/zh_CN/SubmittingPatches | 4 MAINTAINERS | 30 Makefile | 16 Next/Trees | 92 Next/merge.log | 4976 +++++ Next/quilt-import.log | 424 arch/arm/Kconfig | 35 arch/arm/Makefile | 2 arch/arm/boot/compressed/Makefile | 6 arch/arm/common/Makefile | 1 arch/arm/common/dmabounce.c | 22 arch/arm/common/locomo.c | 2 arch/arm/common/rtctime.c | 434 arch/arm/common/sa1111.c | 10 arch/arm/common/scoop.c | 2 arch/arm/common/sharpsl_pm.c | 3 arch/arm/configs/at91cap9adk_defconfig | 82 arch/arm/configs/at91rm9200dk_defconfig | 1 arch/arm/configs/at91rm9200ek_defconfig | 1 arch/arm/configs/at91sam9260ek_defconfig | 1 arch/arm/configs/at91sam9261ek_defconfig | 1 arch/arm/configs/at91sam9263ek_defconfig | 1 arch/arm/configs/at91sam9rlek_defconfig | 1 arch/arm/configs/ateb9200_defconfig | 1 arch/arm/configs/cm_x270_defconfig | 1410 - arch/arm/configs/collie_defconfig | 1 arch/arm/configs/corgi_defconfig | 1 arch/arm/configs/ecbat91_defconfig | 1 arch/arm/configs/em_x270_defconfig | 1265 - arch/arm/configs/ep93xx_defconfig | 1 arch/arm/configs/eseries_pxa_defconfig | 1 arch/arm/configs/iop13xx_defconfig | 1 arch/arm/configs/iop32x_defconfig | 1 arch/arm/configs/iop33x_defconfig | 1 arch/arm/configs/ixp2000_defconfig | 1 arch/arm/configs/ixp23xx_defconfig | 1 arch/arm/configs/ixp4xx_defconfig | 9 arch/arm/configs/kafa_defconfig | 1 arch/arm/configs/kb9202_defconfig | 1 arch/arm/configs/ks8695_defconfig | 1 arch/arm/configs/lpd270_defconfig | 1 arch/arm/configs/lpd7a404_defconfig | 1 arch/arm/configs/netx_defconfig | 1 arch/arm/configs/onearm_defconfig | 1 arch/arm/configs/picotux200_defconfig | 1 arch/arm/configs/pnx4008_defconfig | 1 arch/arm/configs/qil-a9260_defconfig | 1256 + arch/arm/configs/realview-smp_defconfig | 1 arch/arm/configs/realview_defconfig | 1 arch/arm/configs/rpc_defconfig | 1 arch/arm/configs/s3c2410_defconfig | 1 arch/arm/configs/sam9_l9260_defconfig | 1 arch/arm/configs/spitz_defconfig | 1 arch/arm/configs/tct_hammer_defconfig | 1 arch/arm/configs/trizeps4_defconfig | 1 arch/arm/configs/usb-a9260_defconfig | 1142 + arch/arm/configs/usb-a9263_defconfig | 1134 + arch/arm/configs/versatile_defconfig | 1 arch/arm/configs/xm_x270_defconfig | 1741 + arch/arm/kernel/Makefile | 5 arch/arm/kernel/armksyms.c | 5 arch/arm/kernel/ecard.c | 18 arch/arm/kernel/ecard.h | 13 arch/arm/kernel/entry-common.S | 47 arch/arm/kernel/ftrace.c | 128 arch/arm/kernel/kprobes.c | 2 arch/arm/kernel/process.c | 4 arch/arm/kernel/time.c | 120 arch/arm/mach-at91/Kconfig | 27 arch/arm/mach-at91/Makefile | 4 arch/arm/mach-at91/at91cap9_devices.c | 99 arch/arm/mach-at91/at91sam9rl_devices.c | 95 arch/arm/mach-at91/board-cap9adk.c | 9 arch/arm/mach-at91/board-carmeva.c | 23 arch/arm/mach-at91/board-csb637.c | 4 arch/arm/mach-at91/board-dk.c | 25 arch/arm/mach-at91/board-eb9200.c | 26 arch/arm/mach-at91/board-ek.c | 25 arch/arm/mach-at91/board-kb9202.c | 29 arch/arm/mach-at91/board-qil-a9260.c | 255 arch/arm/mach-at91/board-sam9rlek.c | 10 arch/arm/mach-at91/board-usb-a9260.c | 215 arch/arm/mach-at91/board-usb-a9263.c | 230 arch/arm/mach-at91/board-yl-9200.c | 859 arch/arm/mach-at91/clock.c | 45 arch/arm/mach-footbridge/Makefile | 2 arch/arm/mach-footbridge/co285.c | 39 arch/arm/mach-footbridge/common.c | 21 arch/arm/mach-footbridge/ebsa285-leds.c | 2 arch/arm/mach-footbridge/time.c | 3 arch/arm/mach-integrator/Makefile | 2 arch/arm/mach-integrator/impd1.c | 7 arch/arm/mach-integrator/lm.c | 6 arch/arm/mach-integrator/time.c | 223 arch/arm/mach-ixp4xx/Kconfig | 9 arch/arm/mach-ixp4xx/Makefile | 2 arch/arm/mach-ixp4xx/fsg-pci.c | 71 arch/arm/mach-ixp4xx/fsg-setup.c | 276 arch/arm/mach-lh7a40x/clocks.c | 15 arch/arm/mach-omap1/pm.c | 7 arch/arm/mach-omap2/pm.c | 7 arch/arm/mach-pxa/Kconfig | 55 arch/arm/mach-pxa/Makefile | 3 arch/arm/mach-pxa/clock.c | 2 arch/arm/mach-pxa/cm-x270-pci.c | 24 arch/arm/mach-pxa/corgi.c | 1 arch/arm/mach-pxa/corgi_pm.c | 7 arch/arm/mach-pxa/devices.c | 69 arch/arm/mach-pxa/devices.h | 5 arch/arm/mach-pxa/em-x270.c | 1 arch/arm/mach-pxa/generic.c | 17 arch/arm/mach-pxa/lpd270.c | 47 arch/arm/mach-pxa/magician.c | 110 arch/arm/mach-pxa/mainstone.c | 63 arch/arm/mach-pxa/mfp-pxa2xx.c | 1 arch/arm/mach-pxa/poodle.c | 1 arch/arm/mach-pxa/pwm.c | 299 arch/arm/mach-pxa/pxa25x.c | 7 arch/arm/mach-pxa/pxa27x.c | 10 arch/arm/mach-pxa/pxa3xx.c | 6 arch/arm/mach-pxa/reset.c | 96 arch/arm/mach-pxa/spitz.c | 7 arch/arm/mach-pxa/spitz_pm.c | 7 arch/arm/mach-pxa/standby.S | 89 arch/arm/mach-pxa/tosa.c | 45 arch/arm/mach-pxa/trizeps4.c | 2 arch/arm/mach-pxa/zylonite.c | 26 arch/arm/mach-pxa/zylonite_pxa300.c | 4 arch/arm/mach-pxa/zylonite_pxa320.c | 2 arch/arm/plat-omap/mailbox.c | 2 arch/avr32/mach-at32ap/clock.c | 4 arch/blackfin/mach-bf561/coreb.c | 4 arch/cris/arch-v10/drivers/eeprom.c | 4 arch/cris/arch-v10/drivers/gpio.c | 3 arch/cris/arch-v10/drivers/i2c.c | 2 arch/cris/arch-v10/drivers/sync_serial.c | 34 arch/cris/arch-v32/drivers/cryptocop.c | 3 arch/cris/arch-v32/drivers/i2c.c | 2 arch/cris/arch-v32/drivers/mach-a3/gpio.c | 4 arch/cris/arch-v32/drivers/mach-fs/gpio.c | 5 arch/cris/arch-v32/drivers/sync_serial.c | 33 arch/ia64/Makefile | 6 arch/ia64/kernel/Makefile | 44 arch/ia64/kernel/entry.S | 115 arch/ia64/kernel/head.S | 41 arch/ia64/kernel/iosapic.c | 45 arch/ia64/kernel/irq_ia64.c | 19 arch/ia64/kernel/ivt.S | 462 arch/ia64/kernel/minstate.h | 13 arch/ia64/kernel/nr-irqs.c | 24 arch/ia64/kernel/paravirt.c | 369 arch/ia64/kernel/paravirt_inst.h | 29 arch/ia64/kernel/paravirtentry.S | 60 arch/ia64/kernel/salinfo.c | 4 arch/ia64/kernel/setup.c | 10 arch/ia64/kernel/smpboot.c | 2 arch/ia64/kernel/time.c | 23 arch/ia64/kernel/vmlinux.lds.S | 1 arch/ia64/kvm/Makefile | 3 arch/ia64/kvm/kvm-ia64.c | 17 arch/ia64/kvm/mmio.c | 3 arch/ia64/sn/kernel/irq.c | 1 arch/m68k/bvme6000/rtc.c | 7 arch/m68k/fpsp040/Makefile | 1 arch/m68k/ifpsp060/Makefile | 1 arch/m68k/kernel/Makefile | 2 arch/m68k/kernel/setup.c | 6 arch/m68k/kernel/vmlinux-std.lds | 3 arch/m68k/kernel/vmlinux-sun3.lds | 7 arch/m68k/lib/Makefile | 2 arch/m68k/math-emu/Makefile | 2 arch/m68k/mvme16x/rtc.c | 4 arch/m68k/sun3/idprom.c | 2 arch/m68k/sun3/prom/Makefile | 1 arch/m68k/sun3/prom/console.c | 2 arch/m68k/sun3/prom/init.c | 2 arch/m68k/sun3/prom/misc.c | 2 arch/m68k/sun3/prom/printf.c | 2 arch/mips/basler/excite/excite_iodev.c | 9 arch/mips/kernel/rtlx.c | 11 arch/mips/kernel/vpe.c | 14 arch/mips/sibyte/common/sb_tbprof.c | 28 arch/parisc/kernel/perf.c | 4 arch/powerpc/Kconfig | 4 arch/powerpc/boot/Makefile | 3 arch/powerpc/boot/cuboot-warp.c | 47 arch/powerpc/boot/dts/asp834x-redboot.dts | 247 arch/powerpc/boot/dts/bamboo.dts | 142 arch/powerpc/boot/dts/canyonlands.dts | 222 arch/powerpc/boot/dts/ebony.dts | 164 arch/powerpc/boot/dts/ep405.dts | 100 arch/powerpc/boot/dts/glacier.dts | 262 arch/powerpc/boot/dts/haleakala.dts | 136 arch/powerpc/boot/dts/holly.dts | 122 arch/powerpc/boot/dts/katmai.dts | 210 arch/powerpc/boot/dts/kilauea.dts | 182 arch/powerpc/boot/dts/ksi8560.dts | 3 arch/powerpc/boot/dts/makalu.dts | 182 arch/powerpc/boot/dts/mpc7448hpc2.dts | 2 arch/powerpc/boot/dts/mpc8540ads.dts | 5 arch/powerpc/boot/dts/mpc8541cds.dts | 5 arch/powerpc/boot/dts/mpc8544ds.dts | 21 arch/powerpc/boot/dts/mpc8548cds.dts | 5 arch/powerpc/boot/dts/mpc8555cds.dts | 5 arch/powerpc/boot/dts/mpc8560ads.dts | 3 arch/powerpc/boot/dts/mpc8568mds.dts | 5 arch/powerpc/boot/dts/mpc8572ds.dts | 22 arch/powerpc/boot/dts/mpc8610_hpcd.dts | 18 arch/powerpc/boot/dts/mpc8641_hpcn.dts | 2 arch/powerpc/boot/dts/ps3.dts | 16 arch/powerpc/boot/dts/rainier.dts | 163 arch/powerpc/boot/dts/sbc8548.dts | 5 arch/powerpc/boot/dts/sbc8560.dts | 5 arch/powerpc/boot/dts/sequoia.dts | 172 arch/powerpc/boot/dts/storcenter.dts | 1 arch/powerpc/boot/dts/stx_gp3_8560.dts | 4 arch/powerpc/boot/dts/taishan.dts | 212 arch/powerpc/boot/dts/tqm8540.dts | 4 arch/powerpc/boot/dts/tqm8541.dts | 4 arch/powerpc/boot/dts/tqm8555.dts | 4 arch/powerpc/boot/dts/tqm8560.dts | 4 arch/powerpc/boot/dts/walnut.dts | 118 arch/powerpc/boot/dts/warp.dts | 145 arch/powerpc/boot/dts/yosemite.dts | 146 arch/powerpc/boot/redboot-83xx.c | 60 arch/powerpc/boot/wrapper | 6 arch/powerpc/configs/asp8347_defconfig | 1214 + arch/powerpc/kernel/Makefile | 14 arch/powerpc/kernel/asm-offsets.c | 23 arch/powerpc/kernel/entry_32.S | 273 arch/powerpc/kernel/entry_64.S | 62 arch/powerpc/kernel/ftrace.c | 171 arch/powerpc/kernel/head_40x.S | 24 arch/powerpc/kernel/head_44x.S | 9 arch/powerpc/kernel/head_booke.h | 102 arch/powerpc/kernel/head_fsl_booke.S | 9 arch/powerpc/kernel/io.c | 3 arch/powerpc/kernel/irq.c | 39 arch/powerpc/kernel/kprobes.c | 2 arch/powerpc/kernel/lparcfg.c | 6 arch/powerpc/kernel/machine_kexec_64.c | 4 arch/powerpc/kernel/msi.c | 2 arch/powerpc/kernel/of_device.c | 48 arch/powerpc/kernel/ppc_ksyms.c | 5 arch/powerpc/kernel/rtas-proc.c | 14 arch/powerpc/kernel/rtas.c | 6 arch/powerpc/kernel/rtas_flash.c | 4 arch/powerpc/kernel/rtas_pci.c | 4 arch/powerpc/kernel/setup_32.c | 30 arch/powerpc/kernel/signal.c | 12 arch/powerpc/kernel/signal_32.c | 2 arch/powerpc/kernel/smp.c | 4 arch/powerpc/kernel/time.c | 10 arch/powerpc/kernel/vdso64/vdso64.lds.S | 6 arch/powerpc/kvm/44x_tlb.c | 9 arch/powerpc/kvm/Makefile | 2 arch/powerpc/kvm/booke_guest.c | 33 arch/powerpc/kvm/emulate.c | 12 arch/powerpc/kvm/powerpc.c | 7 arch/powerpc/mm/hash_utils_64.c | 6 arch/powerpc/mm/init_32.c | 3 arch/powerpc/mm/init_64.c | 4 arch/powerpc/mm/stab.c | 4 arch/powerpc/mm/tlb_64.c | 7 arch/powerpc/platforms/44x/warp-nand.c | 49 arch/powerpc/platforms/44x/warp.c | 293 arch/powerpc/platforms/83xx/Kconfig | 9 arch/powerpc/platforms/83xx/Makefile | 1 arch/powerpc/platforms/83xx/asp834x.c | 90 arch/powerpc/platforms/85xx/mpc85xx_ds.c | 4 arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 3 arch/powerpc/platforms/cell/axon_msi.c | 58 arch/powerpc/platforms/chrp/pci.c | 2 arch/powerpc/platforms/chrp/setup.c | 7 arch/powerpc/platforms/maple/time.c | 2 arch/powerpc/platforms/powermac/Makefile | 5 arch/powerpc/platforms/powermac/pic.c | 8 arch/powerpc/platforms/pseries/firmware.c | 1 arch/powerpc/platforms/pseries/iommu.c | 15 arch/powerpc/platforms/pseries/lpar.c | 2 arch/powerpc/platforms/pseries/ras.c | 2 arch/powerpc/platforms/pseries/rtasd.c | 4 arch/powerpc/platforms/pseries/setup.c | 4 arch/powerpc/sysdev/6xx-suspend.S | 52 arch/powerpc/sysdev/Makefile | 7 arch/powerpc/sysdev/dcr.c | 156 arch/powerpc/sysdev/fsl_msi.c | 429 arch/powerpc/sysdev/fsl_msi.h | 42 arch/powerpc/sysdev/fsl_pci.c | 12 arch/powerpc/sysdev/fsl_soc.c | 19 arch/powerpc/sysdev/mpic.c | 9 arch/powerpc/sysdev/mpic_msi.c | 1 arch/powerpc/sysdev/mpic_pasemi_msi.c | 6 arch/powerpc/sysdev/mpic_u3msi.c | 8 arch/powerpc/sysdev/mv64x60_dev.c | 10 arch/powerpc/xmon/xmon.c | 66 arch/ppc/kernel/entry.S | 4 arch/ppc/platforms/cpci690.c | 4 arch/ppc/platforms/ev64260.c | 4 arch/ppc/platforms/ev64360.c | 4 arch/ppc/platforms/hdpu.c | 4 arch/ppc/platforms/katana.c | 4 arch/ppc/platforms/radstone_ppc7d.c | 4 arch/ppc/syslib/ppc_sys.c | 12 arch/s390/Kconfig | 2 arch/s390/crypto/prng.c | 2 arch/s390/kernel/Makefile | 7 arch/s390/kernel/binfmt_elf32.c | 214 arch/s390/kernel/compat_ptrace.h | 4 arch/s390/kernel/early.c | 18 arch/s390/kernel/ptrace.c | 363 arch/s390/kernel/time.c | 634 arch/s390/kvm/diag.c | 2 arch/s390/kvm/interrupt.c | 7 arch/s390/kvm/kvm-s390.c | 17 arch/s390/mm/pgtable.c | 44 arch/s390/mm/vmem.c | 2 arch/sh/Kconfig | 4 arch/sh/Makefile | 3 arch/sh/boards/landisk/gio.c | 10 arch/sh/boards/renesas/rsk7203/Makefile | 1 arch/sh/boards/renesas/rsk7203/setup.c | 126 arch/sh/configs/landisk_defconfig | 1 arch/sh/configs/lboxre2_defconfig | 1 arch/sh/configs/se7705_defconfig | 1 arch/sh/configs/se7712_defconfig | 1 arch/sh/configs/se7750_defconfig | 1 arch/sh/kernel/Makefile_32 | 2 arch/sh/kernel/ptrace_32.c | 23 arch/sh/kernel/signal_32.c | 25 arch/sh/lib64/c-checksum.c | 4 arch/sh/mm/Kconfig | 12 arch/sh/tools/mach-types | 1 arch/sparc/kernel/apc.c | 2 arch/sparc64/Kconfig | 2 arch/sparc64/Kconfig.debug | 2 arch/sparc64/kernel/Makefile | 1 arch/sparc64/kernel/ebus.c | 4 arch/sparc64/kernel/ftrace.c | 99 arch/sparc64/kernel/of_device.c | 4 arch/sparc64/kernel/pci.c | 2 arch/sparc64/kernel/time.c | 7 arch/sparc64/kernel/vio.c | 18 arch/sparc64/lib/mcount.S | 58 arch/um/drivers/harddog_kern.c | 3 arch/um/drivers/mmapper_kern.c | 2 arch/um/drivers/random.c | 3 arch/x86/Kconfig | 146 arch/x86/Kconfig.cpu | 4 arch/x86/Kconfig.debug | 33 arch/x86/Makefile | 7 arch/x86/boot/compressed/head_64.S | 5 arch/x86/boot/compressed/misc.c | 39 arch/x86/boot/cpu.c | 2 arch/x86/boot/main.c | 4 arch/x86/boot/memory.c | 3 arch/x86/boot/video-vga.c | 3 arch/x86/configs/i386_defconfig | 1701 + arch/x86/configs/x86_64_defconfig | 1729 + arch/x86/kernel/Makefile | 18 arch/x86/kernel/acpi/boot.c | 334 arch/x86/kernel/acpi/processor.c | 5 arch/x86/kernel/alternative.c | 22 arch/x86/kernel/aperture_64.c | 311 arch/x86/kernel/apic_32.c | 40 arch/x86/kernel/apic_64.c | 28 arch/x86/kernel/apm_32.c | 37 arch/x86/kernel/bugs_64.c | 33 arch/x86/kernel/cpu/Makefile | 4 arch/x86/kernel/cpu/addon_cpuid_features.c | 3 arch/x86/kernel/cpu/amd.c | 5 arch/x86/kernel/cpu/amd_64.c | 239 arch/x86/kernel/cpu/bugs.c | 27 arch/x86/kernel/cpu/bugs_64.c | 33 arch/x86/kernel/cpu/centaur_64.c | 31 arch/x86/kernel/cpu/cpufreq/powernow-k7.h | 1 arch/x86/kernel/cpu/intel_64.c | 92 arch/x86/kernel/cpu/intel_cacheinfo.c | 1 arch/x86/kernel/cpu/mcheck/mce_64.c | 24 arch/x86/kernel/cpu/mtrr/generic.c | 38 arch/x86/kernel/cpu/mtrr/main.c | 901 - arch/x86/kernel/cpu/mtrr/mtrr.h | 3 arch/x86/kernel/cpu/perfctr-watchdog.c | 4 arch/x86/kernel/cpuid.c | 29 arch/x86/kernel/e820.c | 896 + arch/x86/kernel/e820_32.c | 534 arch/x86/kernel/e820_64.c | 787 arch/x86/kernel/early-quirks.c | 13 arch/x86/kernel/efi.c | 59 arch/x86/kernel/efi_64.c | 8 arch/x86/kernel/entry_32.S | 70 arch/x86/kernel/entry_64.S | 106 arch/x86/kernel/ftrace.c | 159 arch/x86/kernel/genx2apic_uv_x.c | 141 arch/x86/kernel/head.c | 73 arch/x86/kernel/head32.c | 27 arch/x86/kernel/head64.c | 90 arch/x86/kernel/head_32.S | 8 arch/x86/kernel/head_64.S | 27 arch/x86/kernel/hpet.c | 43 arch/x86/kernel/i386_ksyms_32.c | 9 arch/x86/kernel/i8259.c | 337 arch/x86/kernel/i8259_32.c | 409 arch/x86/kernel/i8259_64.c | 512 arch/x86/kernel/io_apic_32.c | 232 arch/x86/kernel/io_apic_64.c | 183 arch/x86/kernel/ipi.c | 1 arch/x86/kernel/irq_32.c | 254 arch/x86/kernel/irq_64.c | 28 arch/x86/kernel/irqinit_32.c | 114 arch/x86/kernel/irqinit_64.c | 217 arch/x86/kernel/ldt.c | 6 arch/x86/kernel/machine_kexec_32.c | 4 arch/x86/kernel/machine_kexec_64.c | 4 arch/x86/kernel/mfgpt_32.c | 2 arch/x86/kernel/microcode.c | 6 arch/x86/kernel/mmconf-fam10h_64.c | 1 arch/x86/kernel/mpparse.c | 733 arch/x86/kernel/msr.c | 20 arch/x86/kernel/nmi.c | 541 arch/x86/kernel/nmi_32.c | 472 arch/x86/kernel/nmi_64.c | 482 arch/x86/kernel/numaq_32.c | 38 arch/x86/kernel/paravirt.c | 1 arch/x86/kernel/pci-dma.c | 21 arch/x86/kernel/pci-gart_64.c | 27 arch/x86/kernel/process_32.c | 3 arch/x86/kernel/process_64.c | 16 arch/x86/kernel/quirks.c | 58 arch/x86/kernel/reboot.c | 18 arch/x86/kernel/reboot_fixups_32.c | 4 arch/x86/kernel/setup.c | 332 arch/x86/kernel/setup.h | 26 arch/x86/kernel/setup64.c | 8 arch/x86/kernel/setup_32.c | 276 arch/x86/kernel/setup_64.c | 425 arch/x86/kernel/smpboot.c | 106 arch/x86/kernel/srat_32.c | 41 arch/x86/kernel/time_32.c | 3 arch/x86/kernel/trampoline.c | 2 arch/x86/kernel/traps_32.c | 9 arch/x86/kernel/traps_64.c | 32 arch/x86/kernel/tsc_32.c | 6 arch/x86/kernel/tsc_64.c | 2 arch/x86/kernel/vmiclock_32.c | 3 arch/x86/kernel/vmlinux_32.lds.S | 7 arch/x86/kernel/vmlinux_64.lds.S | 7 arch/x86/kernel/vsmp_64.c | 3 arch/x86/kernel/vsyscall_64.c | 3 arch/x86/kernel/x8664_ksyms_64.c | 11 arch/x86/kvm/Makefile | 3 arch/x86/kvm/i8254.c | 27 arch/x86/kvm/i8259.c | 3 arch/x86/kvm/irq.c | 6 arch/x86/kvm/irq.h | 2 arch/x86/kvm/lapic.c | 10 arch/x86/kvm/lapic.h | 1 arch/x86/kvm/mmu.c | 45 arch/x86/kvm/mmu.h | 3 arch/x86/kvm/paging_tmpl.h | 30 arch/x86/kvm/svm.c | 87 arch/x86/kvm/vmx.c | 260 arch/x86/kvm/vmx.h | 15 arch/x86/kvm/x86.c | 235 arch/x86/kvm/x86_emulate.c | 83 arch/x86/lguest/boot.c | 5 arch/x86/lib/Makefile | 1 arch/x86/lib/thunk_32.S | 47 arch/x86/lib/thunk_64.S | 19 arch/x86/mach-default/setup.c | 7 arch/x86/mach-es7000/es7000plat.c | 2 arch/x86/mach-visws/mpparse.c | 7 arch/x86/mach-visws/visws_apic.c | 3 arch/x86/mach-voyager/setup.c | 7 arch/x86/mach-voyager/voyager_smp.c | 14 arch/x86/mm/Makefile | 5 arch/x86/mm/discontig_32.c | 149 arch/x86/mm/dump_pagetables.c | 2 arch/x86/mm/fault.c | 25 arch/x86/mm/init_32.c | 25 arch/x86/mm/init_64.c | 23 arch/x86/mm/ioremap.c | 21 arch/x86/mm/k8topology_64.c | 13 arch/x86/mm/kmmio.c | 510 arch/x86/mm/mmio-mod.c | 515 arch/x86/mm/numa_64.c | 89 arch/x86/mm/pageattr.c | 40 arch/x86/mm/pat.c | 35 arch/x86/mm/pf_in.c | 489 arch/x86/mm/pf_in.h | 39 arch/x86/mm/pgtable.c | 2 arch/x86/mm/srat_64.c | 5 arch/x86/mm/testmmiotrace.c | 71 arch/x86/pci/acpi.c | 18 arch/x86/pci/common.c | 26 arch/x86/pci/direct.c | 21 arch/x86/pci/early.c | 60 arch/x86/pci/irq.c | 511 arch/x86/pci/k8-bus_64.c | 4 arch/x86/pci/mmconfig-shared.c | 2 arch/x86/pci/pci.h | 1 arch/x86/vdso/vclock_gettime.c | 15 arch/x86/vdso/vgetcpu.c | 3 arch/x86/vdso/vma.c | 2 arch/x86/xen/Kconfig | 12 arch/x86/xen/Makefile | 2 arch/x86/xen/enlighten.c | 172 arch/x86/xen/manage.c | 143 arch/x86/xen/mmu.c | 227 arch/x86/xen/mmu.h | 34 arch/x86/xen/setup.c | 5 arch/x86/xen/smp.c | 8 arch/x86/xen/suspend.c | 45 arch/x86/xen/time.c | 13 arch/x86/xen/xen-head.S | 9 arch/x86/xen/xen-ops.h | 11 block/blk-core.c | 12 block/blk-exec.c | 6 block/bsg.c | 25 block/genhd.c | 199 crypto/Kconfig | 52 crypto/Makefile | 5 crypto/ahash.c | 106 crypto/api.c | 8 crypto/async_tx/async_tx.c | 1 crypto/cryptd.c | 252 crypto/digest.c | 81 crypto/hash.c | 102 crypto/internal.h | 1 crypto/ripemd.h | 43 crypto/rmd128.c | 325 crypto/rmd160.c | 369 crypto/rmd256.c | 344 crypto/rmd320.c | 393 crypto/tcrypt.c | 172 crypto/tcrypt.h | 526 drivers/Kconfig | 2 drivers/Makefile | 1 drivers/acpi/ac.c | 2 drivers/acpi/battery.c | 2 drivers/acpi/fan.c | 10 drivers/acpi/glue.c | 20 drivers/acpi/pci_irq.c | 5 drivers/acpi/processor_core.c | 25 drivers/acpi/processor_idle.c | 13 drivers/acpi/scan.c | 62 drivers/acpi/sleep/main.c | 39 drivers/acpi/sleep/proc.c | 8 drivers/acpi/tables/tbxface.c | 2 drivers/acpi/thermal.c | 12 drivers/acpi/video.c | 5 drivers/acpi/wmi.c | 2 drivers/amba/bus.c | 4 drivers/ata/libata-scsi.c | 2 drivers/ata/pata_pcmcia.c | 2 drivers/base/Kconfig | 33 drivers/base/attribute_container.c | 2 drivers/base/base.h | 27 drivers/base/bus.c | 12 drivers/base/class.c | 155 drivers/base/core.c | 233 drivers/base/dd.c | 12 drivers/base/firmware_class.c | 43 drivers/base/isa.c | 4 drivers/base/platform.c | 314 drivers/base/power/main.c | 685 drivers/base/power/power.h | 2 drivers/base/power/trace.c | 12 drivers/base/sys.c | 2 drivers/base/topology.c | 25 drivers/block/aoe/aoechr.c | 12 drivers/block/ataflop.c | 4 drivers/block/paride/pd.c | 20 drivers/block/paride/pg.c | 27 drivers/block/paride/pt.c | 18 drivers/block/pktcdvd.c | 4 drivers/block/virtio_blk.c | 10 drivers/bluetooth/bfusb.c | 3 drivers/bluetooth/bt3c_cs.c | 3 drivers/bluetooth/hci_vhci.c | 5 drivers/char/Kconfig | 8 drivers/char/Makefile | 4 drivers/char/agp/amd64-agp.c | 85 drivers/char/agp/frontend.c | 4 drivers/char/apm-emulation.c | 3 drivers/char/briq_panel.c | 9 drivers/char/cs5535_gpio.c | 2 drivers/char/cyclades.c | 10 drivers/char/drm/drm_fops.c | 9 drivers/char/drm/drm_sysfs.c | 3 drivers/char/ds1286.c | 4 drivers/char/ds1620.c | 9 drivers/char/dsp56k.c | 19 drivers/char/dtlk.c | 3 drivers/char/efirtc.c | 2 drivers/char/genrtc.c | 7 drivers/char/hpet.c | 4 drivers/char/hvc_console.c | 8 drivers/char/hvc_console.h | 10 drivers/char/hvc_xen.c | 61 drivers/char/hw_random/core.c | 2 drivers/char/ip2/ip2main.c | 46 drivers/char/ip27-rtc.c | 4 drivers/char/ipmi/ipmi_devintf.c | 10 drivers/char/ipmi/ipmi_watchdog.c | 3 drivers/char/istallion.c | 5 drivers/char/keyboard.c | 2 drivers/char/lcd.c | 3 drivers/char/lp.c | 41 drivers/char/mbcs.c | 5 drivers/char/mem.c | 16 drivers/char/misc.c | 7 drivers/char/mwave/mwavedd.c | 2 drivers/char/nvram.c | 6 drivers/char/pc8736x_gpio.c | 2 drivers/char/pcmcia/cm4000_cs.c | 28 drivers/char/pcmcia/cm4040_cs.c | 26 drivers/char/pcmcia/ipwireless/main.c | 1 drivers/char/ppdev.c | 7 drivers/char/raw.c | 10 drivers/char/rtc.c | 4 drivers/char/scx200_gpio.c | 2 drivers/char/serial167.c | 2 drivers/char/snsc.c | 12 drivers/char/sonypi.c | 3 drivers/char/stallion.c | 4 drivers/char/tb0219.c | 2 drivers/char/tlclk.c | 19 drivers/char/tpm/tpm.c | 5 drivers/char/tty_io.c | 39 drivers/char/vc_screen.c | 21 drivers/char/viotape.c | 15 drivers/char/vr41xx_giu.c | 2 drivers/char/vt.c | 16 drivers/char/xilinx_hwicap/xilinx_hwicap.c | 11 drivers/cpufreq/cpufreq.c | 45 drivers/cpufreq/cpufreq_stats.c | 24 drivers/cpufreq/freq_table.c | 12 drivers/cpuidle/cpuidle.c | 40 drivers/crypto/hifn_795x.c | 365 drivers/dca/dca-sysfs.c | 8 drivers/dma/dmaengine.c | 2 drivers/dma/fsldma.c | 31 drivers/edac/cell_edac.c | 2 drivers/edac/edac_device.c | 2 drivers/edac/edac_mc.c | 2 drivers/edac/edac_pci.c | 2 drivers/edac/edac_pci_sysfs.c | 6 drivers/edac/mpc85xx_edac.c | 2 drivers/edac/mv64x60_edac.c | 8 drivers/eisa/Makefile | 2 drivers/eisa/eisa-bus.c | 6 drivers/firewire/fw-card.c | 2 drivers/firewire/fw-cdev.c | 16 drivers/firewire/fw-device.c | 16 drivers/firewire/fw-device.h | 1 drivers/firewire/fw-ohci.c | 12 drivers/firewire/fw-sbp2.c | 27 drivers/firewire/fw-transaction.c | 35 drivers/firewire/fw-transaction.h | 14 drivers/firmware/dell_rbu.c | 2 drivers/firmware/dmi-id.c | 2 drivers/firmware/dmi_scan.c | 5 drivers/hid/hid-core.c | 10 drivers/hid/hidraw.c | 54 drivers/hid/usbhid/hid-quirks.c | 16 drivers/hid/usbhid/hiddev.c | 14 drivers/hwmon/abituguru3.c | 3 drivers/hwmon/adt7473.c | 19 drivers/hwmon/dme1737.c | 297 drivers/hwmon/hdaps.c | 2 drivers/hwmon/hwmon.c | 5 drivers/hwmon/lm85.c | 25 drivers/i2c/algos/i2c-algo-bit.c | 4 drivers/i2c/algos/i2c-algo-pca.c | 2 drivers/i2c/busses/Kconfig | 524 drivers/i2c/busses/Makefile | 43 drivers/i2c/busses/i2c-ali1535.c | 36 drivers/i2c/busses/i2c-ali1563.c | 38 drivers/i2c/busses/i2c-ali15x3.c | 30 drivers/i2c/busses/i2c-amd756-s4882.c | 4 drivers/i2c/busses/i2c-amd756.c | 32 drivers/i2c/busses/i2c-amd8111.c | 54 drivers/i2c/busses/i2c-cpm.c | 745 drivers/i2c/busses/i2c-davinci.c | 89 drivers/i2c/busses/i2c-elektor.c | 2 drivers/i2c/busses/i2c-gpio.c | 2 drivers/i2c/busses/i2c-i801.c | 52 drivers/i2c/busses/i2c-i810.c | 260 drivers/i2c/busses/i2c-ibm_iic.c | 183 drivers/i2c/busses/i2c-iop3xx.c | 2 drivers/i2c/busses/i2c-isch.c | 339 drivers/i2c/busses/i2c-mpc.c | 2 drivers/i2c/busses/i2c-mv64xxx.c | 2 drivers/i2c/busses/i2c-nforce2-s4985.c | 257 drivers/i2c/busses/i2c-nforce2.c | 49 drivers/i2c/busses/i2c-ocores.c | 2 drivers/i2c/busses/i2c-pasemi.c | 2 drivers/i2c/busses/i2c-pca-platform.c | 2 drivers/i2c/busses/i2c-piix4.c | 71 drivers/i2c/busses/i2c-pmcmsp.c | 2 drivers/i2c/busses/i2c-prosavage.c | 325 drivers/i2c/busses/i2c-pxa.c | 33 drivers/i2c/busses/i2c-s3c2410.c | 4 drivers/i2c/busses/i2c-savage4.c | 185 drivers/i2c/busses/i2c-sh_mobile.c | 2 drivers/i2c/busses/i2c-sibyte.c | 4 drivers/i2c/busses/i2c-sis5595.c | 27 drivers/i2c/busses/i2c-sis630.c | 56 drivers/i2c/busses/i2c-sis96x.c | 34 drivers/i2c/busses/i2c-stub.c | 6 drivers/i2c/busses/i2c-taos-evm.c | 5 drivers/i2c/busses/i2c-via.c | 2 drivers/i2c/busses/i2c-viapro.c | 29 drivers/i2c/busses/scx200_acb.c | 2 drivers/i2c/chips/eeprom.c | 47 drivers/i2c/i2c-core.c | 367 drivers/i2c/i2c-dev.c | 33 drivers/ide/Kconfig | 22 drivers/ide/Makefile | 5 drivers/ide/arm/bast-ide.c | 2 drivers/ide/arm/ide_arm.c | 1 drivers/ide/arm/palm_bk3710.c | 4 drivers/ide/h8300/ide-h8300.c | 7 drivers/ide/ide-acpi.c | 8 drivers/ide/ide-atapi.c | 296 drivers/ide/ide-cd.c | 122 drivers/ide/ide-cd.h | 4 drivers/ide/ide-cd_ioctl.c | 113 drivers/ide/ide-disk.c | 13 drivers/ide/ide-dma.c | 4 drivers/ide/ide-floppy.c | 357 drivers/ide/ide-generic.c | 1 drivers/ide/ide-io.c | 114 drivers/ide/ide-iops.c | 36 drivers/ide/ide-lib.c | 151 drivers/ide/ide-pio-blacklist.c | 94 drivers/ide/ide-pnp.c | 2 drivers/ide/ide-probe.c | 32 drivers/ide/ide-proc.c | 1 drivers/ide/ide-tape.c | 578 drivers/ide/ide-taskfile.c | 38 drivers/ide/ide-timing.h | 218 drivers/ide/ide-timings.c | 205 drivers/ide/ide.c | 380 drivers/ide/legacy/ali14xx.c | 5 drivers/ide/legacy/buddha.c | 3 drivers/ide/legacy/falconide.c | 3 drivers/ide/legacy/gayle.c | 6 drivers/ide/legacy/ht6560b.c | 9 drivers/ide/legacy/ide-4drives.c | 27 drivers/ide/legacy/ide-cs.c | 11 drivers/ide/legacy/macide.c | 3 drivers/ide/legacy/q40ide.c | 3 drivers/ide/legacy/qd65xx.c | 7 drivers/ide/mips/au1xxx-ide.c | 13 drivers/ide/pci/aec62xx.c | 2 drivers/ide/pci/alim15x3.c | 8 drivers/ide/pci/amd74xx.c | 18 drivers/ide/pci/cmd640.c | 18 drivers/ide/pci/cmd64x.c | 10 drivers/ide/pci/cs5535.c | 6 drivers/ide/pci/cy82c693.c | 11 drivers/ide/pci/delkin_cb.c | 29 drivers/ide/pci/hpt366.c | 3 drivers/ide/pci/ns87415.c | 4 drivers/ide/pci/opti621.c | 12 drivers/ide/pci/scc_pata.c | 12 drivers/ide/pci/sgiioc4.c | 9 drivers/ide/pci/siimage.c | 25 drivers/ide/pci/sis5513.c | 8 drivers/ide/pci/sl82c105.c | 3 drivers/ide/pci/via82cxxx.c | 18 drivers/ide/ppc/mpc8xx.c | 37 drivers/ide/ppc/pmac.c | 27 drivers/ide/setup-pci.c | 6 drivers/ieee1394/csr1212.c | 32 drivers/ieee1394/dv1394.c | 13 drivers/ieee1394/highlevel.c | 4 drivers/ieee1394/highlevel.h | 13 drivers/ieee1394/hosts.c | 4 drivers/ieee1394/nodemgr.c | 37 drivers/ieee1394/raw1394.c | 27 drivers/ieee1394/sbp2.c | 22 drivers/ieee1394/sbp2.h | 1 drivers/ieee1394/video1394.c | 26 drivers/infiniband/core/addr.c | 41 drivers/infiniband/core/agent.h | 2 drivers/infiniband/core/cache.c | 2 drivers/infiniband/core/cm.c | 74 drivers/infiniband/core/cma.c | 42 drivers/infiniband/core/core_priv.h | 2 drivers/infiniband/core/device.c | 2 drivers/infiniband/core/fmr_pool.c | 2 drivers/infiniband/core/mad_priv.h | 2 drivers/infiniband/core/mad_rmpp.c | 2 drivers/infiniband/core/mad_rmpp.h | 2 drivers/infiniband/core/packer.c | 2 drivers/infiniband/core/sa_query.c | 24 drivers/infiniband/core/sysfs.c | 4 drivers/infiniband/core/ucm.c | 7 drivers/infiniband/core/ucma.c | 3 drivers/infiniband/core/ud_header.c | 2 drivers/infiniband/core/umem.c | 2 drivers/infiniband/core/user_mad.c | 11 drivers/infiniband/core/uverbs.h | 2 drivers/infiniband/core/uverbs_cmd.c | 2 drivers/infiniband/core/uverbs_main.c | 11 drivers/infiniband/core/verbs.c | 2 drivers/infiniband/hw/ipath/ipath_file_ops.c | 4 drivers/infiniband/hw/ipath/ipath_iba7220.c | 4 drivers/infiniband/hw/ipath/ipath_verbs.c | 1 drivers/infiniband/hw/ipath/ipath_verbs_mcast.c | 3 drivers/infiniband/hw/mlx4/qp.c | 8 drivers/infiniband/hw/mthca/mthca_allocator.c | 2 drivers/infiniband/hw/mthca/mthca_av.c | 2 drivers/infiniband/hw/mthca/mthca_catas.c | 2 drivers/infiniband/hw/mthca/mthca_cmd.c | 2 drivers/infiniband/hw/mthca/mthca_cmd.h | 2 drivers/infiniband/hw/mthca/mthca_config_reg.h | 2 drivers/infiniband/hw/mthca/mthca_cq.c | 2 drivers/infiniband/hw/mthca/mthca_dev.h | 2 drivers/infiniband/hw/mthca/mthca_doorbell.h | 2 drivers/infiniband/hw/mthca/mthca_eq.c | 2 drivers/infiniband/hw/mthca/mthca_mad.c | 2 drivers/infiniband/hw/mthca/mthca_main.c | 2 drivers/infiniband/hw/mthca/mthca_mcg.c | 2 drivers/infiniband/hw/mthca/mthca_memfree.c | 2 drivers/infiniband/hw/mthca/mthca_memfree.h | 2 drivers/infiniband/hw/mthca/mthca_mr.c | 2 drivers/infiniband/hw/mthca/mthca_pd.c | 2 drivers/infiniband/hw/mthca/mthca_profile.c | 2 drivers/infiniband/hw/mthca/mthca_profile.h | 2 drivers/infiniband/hw/mthca/mthca_provider.c | 2 drivers/infiniband/hw/mthca/mthca_provider.h | 2 drivers/infiniband/hw/mthca/mthca_qp.c | 2 drivers/infiniband/hw/mthca/mthca_reset.c | 2 drivers/infiniband/hw/mthca/mthca_srq.c | 2 drivers/infiniband/hw/mthca/mthca_uar.c | 2 drivers/infiniband/hw/mthca/mthca_user.h | 1 drivers/infiniband/hw/mthca/mthca_wqe.h | 2 drivers/infiniband/hw/nes/nes_cm.c | 1 drivers/infiniband/ulp/ipoib/ipoib.h | 3 drivers/infiniband/ulp/ipoib/ipoib_cm.c | 21 drivers/infiniband/ulp/ipoib/ipoib_fs.c | 2 drivers/infiniband/ulp/ipoib/ipoib_ib.c | 2 drivers/infiniband/ulp/ipoib/ipoib_main.c | 8 drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 2 drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 2 drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 2 drivers/infiniband/ulp/iser/iscsi_iser.c | 362 drivers/infiniband/ulp/iser/iscsi_iser.h | 46 drivers/infiniband/ulp/iser/iser_initiator.c | 211 drivers/infiniband/ulp/iser/iser_memory.c | 79 drivers/infiniband/ulp/iser/iser_verbs.c | 30 drivers/infiniband/ulp/srp/ib_srp.c | 18 drivers/infiniband/ulp/srp/ib_srp.h | 2 drivers/input/evbug.c | 2 drivers/input/evdev.c | 2 drivers/input/ff-memless.c | 4 drivers/input/gameport/emu10k1-gp.c | 2 drivers/input/gameport/gameport.c | 24 drivers/input/gameport/lightning.c | 2 drivers/input/gameport/ns558.c | 4 drivers/input/input.c | 18 drivers/input/joydev.c | 2 drivers/input/joystick/a3d.c | 2 drivers/input/joystick/amijoy.c | 2 drivers/input/joystick/cobra.c | 2 drivers/input/joystick/db9.c | 2 drivers/input/joystick/gf2k.c | 2 drivers/input/joystick/grip.c | 2 drivers/input/joystick/grip_mp.c | 2 drivers/input/joystick/guillemot.c | 2 drivers/input/joystick/iforce/iforce-ff.c | 2 drivers/input/joystick/iforce/iforce-main.c | 2 drivers/input/joystick/iforce/iforce-packets.c | 2 drivers/input/joystick/iforce/iforce-serio.c | 2 drivers/input/joystick/iforce/iforce-usb.c | 8 drivers/input/joystick/iforce/iforce.h | 2 drivers/input/joystick/interact.c | 2 drivers/input/joystick/joydump.c | 2 drivers/input/joystick/magellan.c | 2 drivers/input/joystick/spaceball.c | 2 drivers/input/joystick/spaceorb.c | 2 drivers/input/joystick/stinger.c | 2 drivers/input/joystick/tmdc.c | 2 drivers/input/joystick/turbografx.c | 2 drivers/input/joystick/twidjoy.c | 4 drivers/input/joystick/warrior.c | 2 drivers/input/joystick/xpad.c | 12 drivers/input/keyboard/amikbd.c | 2 drivers/input/keyboard/atakbd.c | 2 drivers/input/keyboard/atkbd.c | 20 drivers/input/keyboard/gpio_keys.c | 89 drivers/input/keyboard/hil_kbd.c | 1 drivers/input/keyboard/lkkbd.c | 6 drivers/input/keyboard/pxa27x_keypad.c | 15 drivers/input/keyboard/sunkbd.c | 2 drivers/input/keyboard/tosakbd.c | 2 drivers/input/keyboard/xtkbd.c | 2 drivers/input/misc/Kconfig | 12 drivers/input/misc/Makefile | 1 drivers/input/misc/appleir.c | 361 drivers/input/misc/ati_remote.c | 18 drivers/input/misc/ati_remote2.c | 18 drivers/input/misc/hp_sdc_rtc.c | 3 drivers/input/misc/keyspan_remote.c | 20 drivers/input/misc/powermate.c | 6 drivers/input/misc/uinput.c | 3 drivers/input/misc/yealink.c | 12 drivers/input/mouse/appletouch.c | 301 drivers/input/mouse/hil_ptr.c | 35 drivers/input/mouse/inport.c | 2 drivers/input/mouse/logibm.c | 2 drivers/input/mouse/pc110pad.c | 2 drivers/input/mouse/sermouse.c | 2 drivers/input/mousedev.c | 15 drivers/input/serio/ambakmi.c | 4 drivers/input/serio/ct82c710.c | 2 drivers/input/serio/gscps2.c | 2 drivers/input/serio/hil_mlc.c | 4 drivers/input/serio/hp_sdc.c | 1 drivers/input/serio/hp_sdc_mlc.c | 14 drivers/input/serio/i8042-x86ia64io.h | 29 drivers/input/serio/libps2.c | 52 drivers/input/serio/pcips2.c | 2 drivers/input/serio/q40kbd.c | 2 drivers/input/serio/rpckbd.c | 2 drivers/input/serio/sa1111ps2.c | 4 drivers/input/serio/serio.c | 11 drivers/input/serio/serio_raw.c | 6 drivers/input/tablet/acecad.c | 4 drivers/input/tablet/aiptek.c | 6 drivers/input/tablet/kbtab.c | 6 drivers/input/tablet/wacom.h | 2 drivers/input/tablet/wacom_sys.c | 6 drivers/input/tablet/wacom_wac.c | 39 drivers/input/touchscreen/Kconfig | 23 drivers/input/touchscreen/Makefile | 2 drivers/input/touchscreen/ads7846.c | 4 drivers/input/touchscreen/gunze.c | 2 drivers/input/touchscreen/h3600_ts_input.c | 2 drivers/input/touchscreen/htcpen.c | 255 drivers/input/touchscreen/migor_ts.c | 250 drivers/input/touchscreen/usbtouchscreen.c | 22 drivers/input/xen-kbdfront.c | 20 drivers/isdn/capi/capi.c | 20 drivers/isdn/hardware/eicon/divamnt.c | 16 drivers/isdn/hardware/eicon/divasi.c | 2 drivers/isdn/hardware/eicon/divasmain.c | 2 drivers/isdn/i4l/isdn_common.c | 3 drivers/lguest/lg.h | 1 drivers/lguest/lguest_device.c | 7 drivers/macintosh/adb.c | 21 drivers/macintosh/adbhid.c | 61 drivers/macintosh/ans-lcd.c | 2 drivers/macintosh/macio_asic.c | 8 drivers/macintosh/macio_sysfs.c | 12 drivers/macintosh/smu.c | 3 drivers/macintosh/via-pmu.c | 3 drivers/mca/mca-bus.c | 2 drivers/md/Kconfig | 19 drivers/md/Makefile | 7 drivers/md/dm-emc.c | 345 drivers/md/dm-hw-handler.c | 213 drivers/md/dm-hw-handler.h | 63 drivers/md/dm-mpath-hp-sw.c | 247 drivers/md/dm-mpath-rdac.c | 700 drivers/md/dm-mpath.c | 161 drivers/md/dm-mpath.h | 1 drivers/md/dm-raid1.c | 2 drivers/media/common/tuners/tda18271-maps.c | 2 drivers/media/common/tuners/tuner-xc2028.c | 2 drivers/media/common/tuners/xc5000.c | 2 drivers/media/dvb/dvb-core/dvbdev.c | 8 drivers/media/dvb/dvb-usb/Kconfig | 9 drivers/media/dvb/dvb-usb/Makefile | 3 drivers/media/dvb/dvb-usb/anysee.c | 555 drivers/media/dvb/dvb-usb/anysee.h | 304 drivers/media/dvb/dvb-usb/au6610.c | 83 drivers/media/dvb/dvb-usb/au6610.h | 22 drivers/media/dvb/dvb-usb/cxusb.c | 21 drivers/media/dvb/dvb-usb/dvb-usb-ids.h | 2 drivers/media/dvb/dvb-usb/gp8psk.c | 3 drivers/media/dvb/frontends/Kconfig | 14 drivers/media/dvb/frontends/Makefile | 1 drivers/media/dvb/frontends/au8522.c | 1 drivers/media/dvb/frontends/bcm3510.c | 5 drivers/media/dvb/frontends/drx397xD.c | 1504 + drivers/media/dvb/frontends/drx397xD.h | 130 drivers/media/dvb/frontends/drx397xD_fw.h | 40 drivers/media/dvb/frontends/dvb-pll.c | 47 drivers/media/dvb/frontends/dvb-pll.h | 1 drivers/media/dvb/frontends/nxt200x.c | 3 drivers/media/dvb/frontends/or51211.c | 4 drivers/media/dvb/frontends/s5h1409.c | 1 drivers/media/dvb/frontends/s5h1411.c | 1 drivers/media/dvb/frontends/sp8870.c | 2 drivers/media/dvb/frontends/sp887x.c | 2 drivers/media/dvb/frontends/tda10023.c | 193 drivers/media/dvb/frontends/tda1002x.h | 31 drivers/media/dvb/frontends/tda10048.c | 2 drivers/media/dvb/frontends/tda1004x.c | 2 drivers/media/dvb/ttpci/av7110.c | 2 drivers/media/dvb/ttpci/budget-av.c | 12 drivers/media/dvb/ttusb-budget/Kconfig | 9 drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c | 16 drivers/media/dvb/ttusb-budget/dvb-ttusb-dspbootcode.h | 1644 - drivers/media/dvb/ttusb-dec/ttusb_dec.c | 2 drivers/media/radio/miropcm20-rds.c | 4 drivers/media/radio/radio-si470x.c | 483 drivers/media/video/Kconfig | 9 drivers/media/video/Makefile | 1 drivers/media/video/bt8xx/bttv-cards.c | 3 drivers/media/video/bt8xx/bttv-driver.c | 44 drivers/media/video/bt8xx/bttv-gpio.c | 7 drivers/media/video/bt8xx/bttv-vbi.c | 6 drivers/media/video/bt8xx/bttv.h | 2 drivers/media/video/bt8xx/bttvp.h | 6 drivers/media/video/cafe_ccic.c | 18 drivers/media/video/compat_ioctl32.c | 1 drivers/media/video/cx18/cx18-driver.c | 2 drivers/media/video/cx23885/cx23885-cards.c | 13 drivers/media/video/cx23885/cx23885-dvb.c | 27 drivers/media/video/cx23885/cx23885-video.c | 24 drivers/media/video/cx23885/cx23885.h | 1 drivers/media/video/cx25840/cx25840-firmware.c | 27 drivers/media/video/cx88/cx88-blackbird.c | 16 drivers/media/video/cx88/cx88-video.c | 24 drivers/media/video/em28xx/em28xx-cards.c | 27 drivers/media/video/em28xx/em28xx-dvb.c | 2 drivers/media/video/em28xx/em28xx-video.c | 34 drivers/media/video/em28xx/em28xx.h | 1 drivers/media/video/et61x251/et61x251_core.c | 2 drivers/media/video/ir-kbd-i2c.c | 6 drivers/media/video/ivtv/ivtv-cards.c | 41 drivers/media/video/ivtv/ivtv-cards.h | 3 drivers/media/video/ivtv/ivtv-driver.c | 3 drivers/media/video/ivtv/ivtv-gpio.c | 11 drivers/media/video/ivtv/ivtvfb.c | 82 drivers/media/video/meye.c | 18 drivers/media/video/pvrusb2/pvrusb2-audio.c | 1 drivers/media/video/pvrusb2/pvrusb2-audio.h | 1 drivers/media/video/pvrusb2/pvrusb2-context.c | 1 drivers/media/video/pvrusb2/pvrusb2-context.h | 1 drivers/media/video/pvrusb2/pvrusb2-ctrl.c | 1 drivers/media/video/pvrusb2/pvrusb2-ctrl.h | 1 drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.c | 1 drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.h | 1 drivers/media/video/pvrusb2/pvrusb2-debug.h | 1 drivers/media/video/pvrusb2/pvrusb2-debugifc.c | 1 drivers/media/video/pvrusb2/pvrusb2-debugifc.h | 1 drivers/media/video/pvrusb2/pvrusb2-devattr.c | 11 drivers/media/video/pvrusb2/pvrusb2-devattr.h | 1 drivers/media/video/pvrusb2/pvrusb2-eeprom.c | 1 drivers/media/video/pvrusb2/pvrusb2-eeprom.h | 1 drivers/media/video/pvrusb2/pvrusb2-encoder.c | 1 drivers/media/video/pvrusb2/pvrusb2-encoder.h | 1 drivers/media/video/pvrusb2/pvrusb2-fx2-cmd.h | 1 drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h | 1 drivers/media/video/pvrusb2/pvrusb2-hdw.c | 48 drivers/media/video/pvrusb2/pvrusb2-hdw.h | 1 drivers/media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c | 1 drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.c | 1 drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.h | 1 drivers/media/video/pvrusb2/pvrusb2-i2c-core.c | 1 drivers/media/video/pvrusb2/pvrusb2-i2c-core.h | 1 drivers/media/video/pvrusb2/pvrusb2-io.c | 1 drivers/media/video/pvrusb2/pvrusb2-io.h | 1 drivers/media/video/pvrusb2/pvrusb2-ioread.c | 1 drivers/media/video/pvrusb2/pvrusb2-ioread.h | 1 drivers/media/video/pvrusb2/pvrusb2-main.c | 1 drivers/media/video/pvrusb2/pvrusb2-std.c | 1 drivers/media/video/pvrusb2/pvrusb2-std.h | 1 drivers/media/video/pvrusb2/pvrusb2-sysfs.c | 465 drivers/media/video/pvrusb2/pvrusb2-sysfs.h | 1 drivers/media/video/pvrusb2/pvrusb2-tuner.c | 1 drivers/media/video/pvrusb2/pvrusb2-tuner.h | 1 drivers/media/video/pvrusb2/pvrusb2-util.h | 1 drivers/media/video/pvrusb2/pvrusb2-v4l2.c | 1 drivers/media/video/pvrusb2/pvrusb2-v4l2.h | 1 drivers/media/video/pvrusb2/pvrusb2-video-v4l.c | 1 drivers/media/video/pvrusb2/pvrusb2-video-v4l.h | 1 drivers/media/video/pvrusb2/pvrusb2-wm8775.c | 1 drivers/media/video/pvrusb2/pvrusb2-wm8775.h | 1 drivers/media/video/pvrusb2/pvrusb2.h | 1 drivers/media/video/s2255drv.c | 2486 ++ drivers/media/video/saa7134/saa7134-empress.c | 12 drivers/media/video/saa7134/saa7134-reg.h | 1 drivers/media/video/saa7134/saa7134-tvaudio.c | 24 drivers/media/video/saa7134/saa7134-video.c | 46 drivers/media/video/sn9c102/sn9c102_core.c | 2 drivers/media/video/soc_camera.c | 23 drivers/media/video/stk-webcam.c | 18 drivers/media/video/tcm825x.c | 6 drivers/media/video/tcm825x.h | 1 drivers/media/video/usbvision/usbvision-video.c | 20 drivers/media/video/videodev.c | 299 drivers/media/video/vivi.c | 18 drivers/media/video/zc0301/zc0301_core.c | 2 drivers/media/video/zr364xx.c | 16 drivers/memstick/core/memstick.c | 6 drivers/memstick/core/mspro_block.c | 14 drivers/memstick/host/jmb38x_ms.c | 4 drivers/memstick/host/tifm_ms.c | 6 drivers/message/fusion/lsi/mpi.h | 2 drivers/message/fusion/lsi/mpi_cnfg.h | 2 drivers/message/fusion/mptbase.c | 100 drivers/message/fusion/mptbase.h | 19 drivers/message/fusion/mptctl.c | 4 drivers/message/fusion/mptctl.h | 2 drivers/message/fusion/mptdebug.h | 2 drivers/message/fusion/mptfc.c | 6 drivers/message/fusion/mptlan.c | 2 drivers/message/fusion/mptlan.h | 2 drivers/message/fusion/mptsas.c | 2 drivers/message/fusion/mptsas.h | 2 drivers/message/fusion/mptscsih.c | 2 drivers/message/fusion/mptscsih.h | 2 drivers/message/fusion/mptspi.c | 3 drivers/message/i2o/device.c | 6 drivers/message/i2o/i2o_block.c | 2 drivers/message/i2o/i2o_config.c | 2 drivers/message/i2o/i2o_proc.c | 2 drivers/message/i2o/iop.c | 2 drivers/misc/Makefile | 1 drivers/misc/enclosure.c | 8 drivers/misc/hdpuftrs/hdpu_cpustate.c | 9 drivers/misc/ibmasm/event.c | 2 drivers/misc/lkdtm.c | 345 drivers/misc/phantom.c | 14 drivers/misc/sony-laptop.c | 3 drivers/misc/thinkpad_acpi.c | 504 drivers/misc/tifm_7xx1.c | 2 drivers/misc/tifm_core.c | 7 drivers/mmc/card/mmc_test.c | 10 drivers/mmc/core/Kconfig | 12 drivers/mmc/core/Makefile | 1 drivers/mmc/core/bus.c | 16 drivers/mmc/core/core.c | 20 drivers/mmc/core/host.c | 6 drivers/mmc/core/lock.c | 193 drivers/mmc/core/lock.h | 41 drivers/mmc/core/mmc.c | 16 drivers/mmc/core/mmc_ops.c | 117 drivers/mmc/core/mmc_ops.h | 3 drivers/mmc/core/sd.c | 20 drivers/mmc/core/sdio_bus.c | 4 drivers/mmc/host/Kconfig | 18 drivers/mmc/host/Makefile | 1 drivers/mmc/host/at91_mci.c | 2 drivers/mmc/host/imxmmc.c | 9 drivers/mmc/host/mmc_spi.c | 30 drivers/mmc/host/pxamci.c | 9 drivers/mmc/host/sdhci-pci.c | 699 drivers/mmc/host/sdhci.c | 541 drivers/mmc/host/sdhci.h | 79 drivers/mmc/host/tifm_sd.c | 18 drivers/mtd/Kconfig | 2 drivers/mtd/afs.c | 2 drivers/mtd/chips/cfi_cmdset_0001.c | 8 drivers/mtd/chips/cfi_cmdset_0002.c | 3 drivers/mtd/chips/cfi_cmdset_0020.c | 2 drivers/mtd/chips/cfi_probe.c | 1 drivers/mtd/chips/cfi_util.c | 3 drivers/mtd/chips/chipreg.c | 2 drivers/mtd/chips/gen_probe.c | 1 drivers/mtd/chips/jedec_probe.c | 119 drivers/mtd/chips/map_absent.c | 1 drivers/mtd/chips/map_ram.c | 1 drivers/mtd/chips/map_rom.c | 1 drivers/mtd/cmdlinepart.c | 2 drivers/mtd/devices/Kconfig | 1 drivers/mtd/devices/Makefile | 1 drivers/mtd/devices/block2mtd.c | 6 drivers/mtd/devices/doc2000.c | 2 drivers/mtd/devices/doc2001.c | 2 drivers/mtd/devices/doc2001plus.c | 2 drivers/mtd/devices/docecc.c | 2 drivers/mtd/devices/docprobe.c | 3 drivers/mtd/devices/lart.c | 2 drivers/mtd/devices/m25p80.c | 14 drivers/mtd/devices/ms02-nv.c | 2 drivers/mtd/devices/ms02-nv.h | 2 drivers/mtd/devices/mtd_dataflash.c | 163 drivers/mtd/devices/mtdram.c | 1 drivers/mtd/devices/phram.c | 2 drivers/mtd/devices/pmc551.c | 2 drivers/mtd/devices/slram.c | 2 drivers/mtd/ftl.c | 3 drivers/mtd/inftlcore.c | 5 drivers/mtd/inftlmount.c | 4 drivers/mtd/maps/Kconfig | 12 drivers/mtd/maps/Makefile | 2 drivers/mtd/maps/amd76xrom.c | 1 drivers/mtd/maps/autcpu12-nvram.c | 2 drivers/mtd/maps/bast-flash.c | 4 drivers/mtd/maps/bfin-async-flash.c | 219 drivers/mtd/maps/cdb89712.c | 1 drivers/mtd/maps/ceiva.c | 1 drivers/mtd/maps/cfi_flagadm.c | 2 drivers/mtd/maps/dbox2-flash.c | 2 drivers/mtd/maps/dc21285.c | 2 drivers/mtd/maps/dilnetpc.c | 2 drivers/mtd/maps/dmv182.c | 2 drivers/mtd/maps/ebony.c | 2 drivers/mtd/maps/edb7312.c | 2 drivers/mtd/maps/fortunet.c | 1 drivers/mtd/maps/h720x-flash.c | 2 drivers/mtd/maps/ichxrom.c | 1 drivers/mtd/maps/impa7.c | 2 drivers/mtd/maps/integrator-flash.c | 4 drivers/mtd/maps/ipaq-flash.c | 2 drivers/mtd/maps/ixp2000.c | 6 drivers/mtd/maps/ixp4xx.c | 4 drivers/mtd/maps/l440gx.c | 2 drivers/mtd/maps/map_funcs.c | 2 drivers/mtd/maps/mbx860.c | 2 drivers/mtd/maps/mtx-1_flash.c | 2 drivers/mtd/maps/netsc520.c | 2 drivers/mtd/maps/nettel.c | 2 drivers/mtd/maps/octagon-5066.c | 1 drivers/mtd/maps/omap-toto-flash.c | 2 drivers/mtd/maps/omap_nor.c | 2 drivers/mtd/maps/pci.c | 2 drivers/mtd/maps/pcmciamtd.c | 5 drivers/mtd/maps/physmap.c | 8 drivers/mtd/maps/physmap_of.c | 4 drivers/mtd/maps/plat-ram.c | 2 drivers/mtd/maps/redwood.c | 2 drivers/mtd/maps/rpxlite.c | 2 drivers/mtd/maps/sa1100-flash.c | 2 drivers/mtd/maps/sbc8240.c | 3 drivers/mtd/maps/sbc_gxx.c | 2 drivers/mtd/maps/sc520cdp.c | 2 drivers/mtd/maps/scb2_flash.c | 1 drivers/mtd/maps/scx200_docflash.c | 2 drivers/mtd/maps/sharpsl-flash.c | 2 drivers/mtd/maps/solutionengine.c | 2 drivers/mtd/maps/sun_uflash.c | 2 drivers/mtd/maps/tqm8xxl.c | 2 drivers/mtd/maps/ts5500_flash.c | 2 drivers/mtd/maps/tsunami_flash.c | 1 drivers/mtd/maps/uclinux.c | 2 drivers/mtd/maps/vmax301.c | 1 drivers/mtd/maps/walnut.c | 2 drivers/mtd/maps/wr_sbc82xx_flash.c | 2 drivers/mtd/mtd_blkdevs.c | 34 drivers/mtd/mtdblock.c | 2 drivers/mtd/mtdblock_ro.c | 2 drivers/mtd/mtdchar.c | 35 drivers/mtd/mtdconcat.c | 2 drivers/mtd/mtdcore.c | 14 drivers/mtd/mtdpart.c | 25 drivers/mtd/nand/Kconfig | 1 drivers/mtd/nand/Makefile | 1 drivers/mtd/nand/au1550nd.c | 2 drivers/mtd/nand/autcpu12.c | 2 drivers/mtd/nand/cafe_nand.c | 6 drivers/mtd/nand/diskonchip.c | 2 drivers/mtd/nand/edb7312.c | 2 drivers/mtd/nand/excite_nandflash.c | 2 drivers/mtd/nand/h1910.c | 2 drivers/mtd/nand/nand_bbt.c | 2 drivers/mtd/nand/nand_ecc.c | 2 drivers/mtd/nand/nand_ids.c | 2 drivers/mtd/nand/nandsim.c | 41 drivers/mtd/nand/plat_nand.c | 2 drivers/mtd/nand/ppchameleonevb.c | 2 drivers/mtd/nand/rtc_from4.c | 2 drivers/mtd/nand/s3c2410.c | 25 drivers/mtd/nand/sharpsl.c | 2 drivers/mtd/nand/spia.c | 2 drivers/mtd/nand/toto.c | 2 drivers/mtd/nand/ts7250.c | 2 drivers/mtd/nftlcore.c | 5 drivers/mtd/nftlmount.c | 4 drivers/mtd/onenand/generic.c | 2 drivers/mtd/onenand/onenand_base.c | 54 drivers/mtd/redboot.c | 2 drivers/mtd/rfd_ftl.c | 2 drivers/mtd/ubi/build.c | 74 drivers/mtd/ubi/cdev.c | 13 drivers/mtd/ubi/eba.c | 19 drivers/mtd/ubi/kapi.c | 6 drivers/mtd/ubi/misc.c | 2 drivers/mtd/ubi/ubi.h | 1 drivers/mtd/ubi/upd.c | 6 drivers/mtd/ubi/vmt.c | 24 drivers/mtd/ubi/vtbl.c | 55 drivers/mtd/ubi/wl.c | 3 drivers/net/3c515.c | 4 drivers/net/3c523.c | 37 drivers/net/3c527.c | 47 drivers/net/3c59x.c | 6 drivers/net/8139cp.c | 43 drivers/net/8139too.c | 53 drivers/net/8390.h | 1 drivers/net/Kconfig | 20 drivers/net/Makefile | 2 drivers/net/acenic.c | 21 drivers/net/acenic.h | 1 drivers/net/ariadne.c | 47 drivers/net/arm/at91_ether.c | 2 drivers/net/arm/ep93xx_eth.c | 2 drivers/net/arm/etherh.c | 8 drivers/net/atlx/atl1.c | 3 drivers/net/au1000_eth.c | 4 drivers/net/bfin_mac.c | 8 drivers/net/bmac.c | 2 drivers/net/bnx2.c | 242 drivers/net/bnx2.h | 4 drivers/net/bnx2_fw.h | 80 drivers/net/bonding/bond_main.c | 729 drivers/net/bonding/bond_sysfs.c | 96 drivers/net/bonding/bonding.h | 13 drivers/net/cxgb3/adapter.h | 18 drivers/net/cxgb3/common.h | 6 drivers/net/cxgb3/cxgb3_ioctl.h | 1 drivers/net/cxgb3/cxgb3_main.c | 19 drivers/net/cxgb3/sge.c | 391 drivers/net/cxgb3/t3_cpl.h | 11 drivers/net/cxgb3/t3_hw.c | 7 drivers/net/declance.c | 6 drivers/net/defxx.c | 2 drivers/net/depca.c | 4 drivers/net/dl2k.c | 8 drivers/net/dm9000.c | 6 drivers/net/enc28j60.c | 2 drivers/net/fec_8xx/Kconfig | 20 drivers/net/fec_8xx/Makefile | 12 drivers/net/fec_8xx/fec_8xx-netta.c | 151 drivers/net/fec_8xx/fec_8xx.h | 220 drivers/net/fec_8xx/fec_main.c | 1264 - drivers/net/fec_8xx/fec_mii.c | 418 drivers/net/forcedeth.c | 61 drivers/net/fs_enet/fs_enet-main.c | 31 drivers/net/gianfar.c | 2 drivers/net/hamachi.c | 12 drivers/net/hamradio/6pack.c | 24 drivers/net/irda/irda-usb.c | 12 drivers/net/irda/sir_dev.c | 2 drivers/net/ixp2000/ixpdev.c | 4 drivers/net/jazzsonic.c | 6 drivers/net/lib8390.c | 100 drivers/net/macb.c | 8 drivers/net/macsonic.c | 15 drivers/net/macvlan.c | 2 drivers/net/myri10ge/myri10ge.c | 1087 - drivers/net/natsemi.c | 4 drivers/net/niu.h | 2 drivers/net/ns83820.c | 9 drivers/net/pasemi_mac.h | 2 drivers/net/pcmcia/3c574_cs.c | 47 drivers/net/pcmcia/3c589_cs.c | 49 drivers/net/pcmcia/axnet_cs.c | 70 drivers/net/pcnet32.c | 6 drivers/net/phy/Kconfig | 9 drivers/net/phy/Makefile | 1 drivers/net/phy/broadcom.c | 201 drivers/net/phy/mdio-ofgpio.c | 205 drivers/net/phy/mdio_bus.c | 2 drivers/net/phy/phy.c | 2 drivers/net/phy/phy_device.c | 14 drivers/net/ppp_async.c | 8 drivers/net/ppp_generic.c | 27 drivers/net/ps3_gelic_net.c | 11 drivers/net/ps3_gelic_net.h | 2 drivers/net/ps3_gelic_wireless.c | 207 drivers/net/ps3_gelic_wireless.h | 7 drivers/net/qla3xxx.c | 4 drivers/net/s2io.c | 6 drivers/net/s2io.h | 2 drivers/net/sb1250-mac.c | 12 drivers/net/sfc/Kconfig | 2 drivers/net/sfc/Makefile | 2 drivers/net/sfc/boards.c | 2 drivers/net/sfc/boards.h | 3 drivers/net/sfc/efx.c | 2 drivers/net/sfc/falcon.c | 74 drivers/net/sfc/i2c-direct.c | 381 drivers/net/sfc/i2c-direct.h | 91 drivers/net/sfc/net_driver.h | 11 drivers/net/sfc/sfe4001.c | 126 drivers/net/sis190.c | 2 drivers/net/sis900.c | 2 drivers/net/sky2.c | 175 drivers/net/sky2.h | 23 drivers/net/smc911x.c | 2 drivers/net/smc91x.c | 2 drivers/net/spider_net.c | 6 drivers/net/tc35815.c | 4 drivers/net/tg3.c | 1366 + drivers/net/tg3.h | 40 drivers/net/tlan.c | 506 drivers/net/tlan.h | 26 drivers/net/tokenring/3c359.c | 20 drivers/net/tokenring/3c359.h | 2 drivers/net/tokenring/Kconfig | 9 drivers/net/tokenring/smctr.c | 56 drivers/net/tokenring/smctr.h | 2 drivers/net/tokenring/smctr_firmware.h | 978 - drivers/net/tsi108_eth.c | 10 drivers/net/tulip/de4x5.c | 4 drivers/net/tun.c | 2 drivers/net/ucc_geth_ethtool.c | 4 drivers/net/usb/Kconfig | 19 drivers/net/usb/Makefile | 1 drivers/net/usb/hso.c | 2836 +++ drivers/net/usb/kaweth.c | 43 drivers/net/usb/kawethfw.h | 557 drivers/net/via-velocity.c | 25 drivers/net/virtio_net.c | 141 drivers/net/wan/cosa.c | 28 drivers/net/wireless/adm8211.c | 49 drivers/net/wireless/adm8211.h | 1 drivers/net/wireless/airo.c | 69 drivers/net/wireless/arlan-main.c | 40 drivers/net/wireless/arlan.h | 1 drivers/net/wireless/ath5k/base.c | 105 drivers/net/wireless/ath5k/base.h | 4 drivers/net/wireless/atmel.c | 52 drivers/net/wireless/b43/b43.h | 47 drivers/net/wireless/b43/debugfs.c | 79 drivers/net/wireless/b43/debugfs.h | 1 drivers/net/wireless/b43/dma.c | 54 drivers/net/wireless/b43/dma.h | 3 drivers/net/wireless/b43/lo.c | 727 drivers/net/wireless/b43/lo.h | 115 drivers/net/wireless/b43/main.c | 283 drivers/net/wireless/b43/main.h | 3 drivers/net/wireless/b43/nphy.c | 2 drivers/net/wireless/b43/phy.c | 291 drivers/net/wireless/b43/phy.h | 16 drivers/net/wireless/b43/pio.c | 44 drivers/net/wireless/b43/pio.h | 8 drivers/net/wireless/b43/xmit.c | 70 drivers/net/wireless/b43/xmit.h | 4 drivers/net/wireless/b43legacy/b43legacy.h | 17 drivers/net/wireless/b43legacy/dma.c | 43 drivers/net/wireless/b43legacy/dma.h | 7 drivers/net/wireless/b43legacy/main.c | 31 drivers/net/wireless/b43legacy/phy.c | 14 drivers/net/wireless/b43legacy/pio.c | 27 drivers/net/wireless/b43legacy/pio.h | 7 drivers/net/wireless/b43legacy/radio.c | 12 drivers/net/wireless/b43legacy/xmit.c | 51 drivers/net/wireless/b43legacy/xmit.h | 2 drivers/net/wireless/ipw2200.c | 176 drivers/net/wireless/ipw2200.h | 6 drivers/net/wireless/iwlwifi/Kconfig | 40 drivers/net/wireless/iwlwifi/Makefile | 11 drivers/net/wireless/iwlwifi/iwl-3945-hw.h | 13 drivers/net/wireless/iwlwifi/iwl-3945-rs.c | 17 drivers/net/wireless/iwlwifi/iwl-3945.c | 45 drivers/net/wireless/iwlwifi/iwl-3945.h | 11 drivers/net/wireless/iwlwifi/iwl-4965-commands.h | 2716 --- drivers/net/wireless/iwlwifi/iwl-4965-hw.h | 622 drivers/net/wireless/iwlwifi/iwl-4965-rs.c | 1172 - drivers/net/wireless/iwlwifi/iwl-4965-rs.h | 93 drivers/net/wireless/iwlwifi/iwl-4965.c | 3189 +-- drivers/net/wireless/iwlwifi/iwl-4965.h | 1262 - drivers/net/wireless/iwlwifi/iwl-5000-hw.h | 133 drivers/net/wireless/iwlwifi/iwl-5000.c | 1417 + drivers/net/wireless/iwlwifi/iwl-calib.c | 806 drivers/net/wireless/iwlwifi/iwl-calib.h | 109 drivers/net/wireless/iwlwifi/iwl-commands.h | 3018 +++ drivers/net/wireless/iwlwifi/iwl-core.c | 1039 + drivers/net/wireless/iwlwifi/iwl-core.h | 125 drivers/net/wireless/iwlwifi/iwl-csr.h | 38 drivers/net/wireless/iwlwifi/iwl-debug.h | 32 drivers/net/wireless/iwlwifi/iwl-debugfs.c | 101 drivers/net/wireless/iwlwifi/iwl-dev.h | 1335 + drivers/net/wireless/iwlwifi/iwl-eeprom.c | 146 drivers/net/wireless/iwlwifi/iwl-eeprom.h | 206 drivers/net/wireless/iwlwifi/iwl-fh.h | 391 drivers/net/wireless/iwlwifi/iwl-hcmd.c | 14 drivers/net/wireless/iwlwifi/iwl-helpers.h | 21 drivers/net/wireless/iwlwifi/iwl-led.c | 2 drivers/net/wireless/iwlwifi/iwl-power.c | 423 drivers/net/wireless/iwlwifi/iwl-power.h | 76 drivers/net/wireless/iwlwifi/iwl-prph.h | 329 drivers/net/wireless/iwlwifi/iwl-rfkill.c | 2 drivers/net/wireless/iwlwifi/iwl-rx.c | 470 drivers/net/wireless/iwlwifi/iwl-sta.c | 648 drivers/net/wireless/iwlwifi/iwl-sta.h | 16 drivers/net/wireless/iwlwifi/iwl-tx.c | 1393 + drivers/net/wireless/iwlwifi/iwl3945-base.c | 163 drivers/net/wireless/iwlwifi/iwl4965-base.c | 4003 ---- drivers/net/wireless/libertas/Makefile | 8 drivers/net/wireless/libertas/assoc.c | 8 drivers/net/wireless/libertas/cmd.c | 190 drivers/net/wireless/libertas/cmd.h | 8 drivers/net/wireless/libertas/cmdresp.c | 25 drivers/net/wireless/libertas/decl.h | 8 drivers/net/wireless/libertas/defs.h | 16 drivers/net/wireless/libertas/dev.h | 8 drivers/net/wireless/libertas/host.h | 17 drivers/net/wireless/libertas/hostcmd.h | 4 drivers/net/wireless/libertas/if_cs.c | 229 drivers/net/wireless/libertas/if_sdio.c | 4 drivers/net/wireless/libertas/if_usb.c | 26 drivers/net/wireless/libertas/main.c | 250 drivers/net/wireless/libertas/persistcfg.c | 453 drivers/net/wireless/libertas/rx.c | 4 drivers/net/wireless/libertas/types.h | 30 drivers/net/wireless/libertas/wext.c | 32 drivers/net/wireless/orinoco.c | 2 drivers/net/wireless/orinoco_cs.c | 2 drivers/net/wireless/p54/p54.h | 2 drivers/net/wireless/p54/p54common.c | 137 drivers/net/wireless/p54/p54common.h | 1 drivers/net/wireless/p54/p54pci.c | 2 drivers/net/wireless/p54/p54usb.c | 5 drivers/net/wireless/rndis_wlan.c | 2 drivers/net/wireless/rt2x00/Kconfig | 55 drivers/net/wireless/rt2x00/rt2400pci.c | 172 drivers/net/wireless/rt2x00/rt2400pci.h | 5 drivers/net/wireless/rt2x00/rt2500pci.c | 159 drivers/net/wireless/rt2x00/rt2500pci.h | 5 drivers/net/wireless/rt2x00/rt2500usb.c | 113 drivers/net/wireless/rt2x00/rt2500usb.h | 5 drivers/net/wireless/rt2x00/rt2x00.h | 74 drivers/net/wireless/rt2x00/rt2x00debug.c | 4 drivers/net/wireless/rt2x00/rt2x00dev.c | 238 drivers/net/wireless/rt2x00/rt2x00lib.h | 6 drivers/net/wireless/rt2x00/rt2x00mac.c | 113 drivers/net/wireless/rt2x00/rt2x00pci.c | 105 drivers/net/wireless/rt2x00/rt2x00pci.h | 30 drivers/net/wireless/rt2x00/rt2x00queue.c | 173 drivers/net/wireless/rt2x00/rt2x00queue.h | 90 drivers/net/wireless/rt2x00/rt2x00reg.h | 11 drivers/net/wireless/rt2x00/rt2x00usb.c | 240 drivers/net/wireless/rt2x00/rt2x00usb.h | 47 drivers/net/wireless/rt2x00/rt61pci.c | 167 drivers/net/wireless/rt2x00/rt61pci.h | 5 drivers/net/wireless/rt2x00/rt73usb.c | 103 drivers/net/wireless/rt2x00/rt73usb.h | 5 drivers/net/wireless/rtl8180_dev.c | 71 drivers/net/wireless/rtl8187.h | 6 drivers/net/wireless/rtl8187_dev.c | 55 drivers/net/wireless/spectrum_cs.c | 2 drivers/net/wireless/zd1201.c | 2 drivers/net/wireless/zd1211rw/zd_mac.c | 184 drivers/net/wireless/zd1211rw/zd_mac.h | 16 drivers/net/wireless/zd1211rw/zd_usb.c | 29 drivers/of/device.c | 84 drivers/of/gpio.c | 38 drivers/of/platform.c | 3 drivers/parisc/dino.c | 11 drivers/parisc/eisa_eeprom.c | 3 drivers/pci/hotplug/acpi_pcihp.c | 85 drivers/pci/hotplug/acpiphp.h | 4 drivers/pci/hotplug/acpiphp_ibm.c | 2 drivers/pci/hotplug/cpqphp_sysfs.c | 2 drivers/pci/hotplug/fakephp.c | 9 drivers/pci/hotplug/ibmphp_hpc.c | 30 drivers/pci/hotplug/pciehp.h | 9 drivers/pci/hotplug/pciehp_core.c | 13 drivers/pci/hotplug/pciehp_hpc.c | 104 drivers/pci/hotplug/shpchp.h | 14 drivers/pci/hotplug/shpchp_core.c | 17 drivers/pci/hotplug/shpchp_hpc.c | 1 drivers/pci/intel-iommu.c | 1 drivers/pci/msi.c | 12 drivers/pci/pci-acpi.c | 224 drivers/pci/pci-driver.c | 388 drivers/pci/pci-sysfs.c | 82 drivers/pci/pci.c | 6 drivers/pci/pci.h | 3 drivers/pci/pcie/aer/aerdrv.c | 7 drivers/pci/pcie/aer/aerdrv_acpi.c | 2 drivers/pci/pcie/aer/aerdrv_core.c | 8 drivers/pci/pcie/portdrv_bus.c | 1 drivers/pci/pcie/portdrv_core.c | 13 drivers/pci/probe.c | 52 drivers/pci/proc.c | 4 drivers/pci/quirks.c | 127 drivers/pcmcia/au1000_generic.h | 26 drivers/pcmcia/cs.c | 13 drivers/pcmcia/cs_internal.h | 4 drivers/pcmcia/ds.c | 48 drivers/pcmcia/hd64465_ss.c | 2 drivers/pcmcia/i82092.c | 2 drivers/pcmcia/i82092aa.h | 2 drivers/pcmcia/i82365.c | 39 drivers/pcmcia/m8xx_pcmcia.c | 3 drivers/pcmcia/pcmcia_ioctl.c | 25 drivers/pcmcia/pxa2xx_cm_x270.c | 15 drivers/pcmcia/pxa2xx_mainstone.c | 13 drivers/pcmcia/pxa2xx_sharpsl.c | 12 drivers/pcmcia/rsrc_mgr.c | 2 drivers/pcmcia/rsrc_nonstatic.c | 8 drivers/pcmcia/ti113x.h | 2 drivers/pnp/card.c | 4 drivers/pnp/core.c | 6 drivers/pnp/pnpacpi/core.c | 4 drivers/pnp/system.c | 2 drivers/power/apm_power.c | 2 drivers/power/ds2760_battery.c | 4 drivers/power/power_supply_core.c | 4 drivers/rtc/Kconfig | 19 drivers/rtc/Makefile | 1 drivers/rtc/class.c | 16 drivers/rtc/interface.c | 4 drivers/rtc/rtc-at91rm9200.c | 4 drivers/rtc/rtc-at91sam9.c | 5 drivers/rtc/rtc-cmos.c | 10 drivers/rtc/rtc-dev.c | 12 drivers/rtc/rtc-m41t80.c | 7 drivers/rtc/rtc-omap.c | 5 drivers/rtc/rtc-pl030.c | 217 drivers/rtc/rtc-pl031.c | 36 drivers/rtc/rtc-s3c.c | 4 drivers/rtc/rtc-sa1100.c | 37 drivers/s390/block/dasd.c | 48 drivers/s390/block/dasd_3990_erp.c | 17 drivers/s390/block/dasd_devmap.c | 28 drivers/s390/block/dasd_eckd.c | 18 drivers/s390/block/dasd_eer.c | 10 drivers/s390/block/dasd_fba.c | 16 drivers/s390/block/dasd_int.h | 4 drivers/s390/block/dasd_proc.c | 2 drivers/s390/block/dcssblk.c | 7 drivers/s390/char/con3215.c | 6 drivers/s390/char/con3270.c | 6 drivers/s390/char/fs3270.c | 29 drivers/s390/char/monreader.c | 4 drivers/s390/char/monwriter.c | 3 drivers/s390/char/raw3270.c | 30 drivers/s390/char/tape_34xx.c | 12 drivers/s390/char/tape_3590.c | 150 drivers/s390/char/tape_block.c | 2 drivers/s390/char/tape_char.c | 12 drivers/s390/char/tape_class.c | 7 drivers/s390/char/tape_core.c | 35 drivers/s390/char/tape_proc.c | 2 drivers/s390/char/tape_std.c | 12 drivers/s390/char/tty3270.c | 6 drivers/s390/char/vmcp.c | 4 drivers/s390/char/vmlogrdr.c | 13 drivers/s390/char/vmur.c | 28 drivers/s390/char/vmwatchdog.c | 7 drivers/s390/cio/Makefile | 3 drivers/s390/cio/blacklist.c | 6 drivers/s390/cio/ccwgroup.c | 3 drivers/s390/cio/chp.c | 73 drivers/s390/cio/chp.h | 15 drivers/s390/cio/chsc.c | 292 drivers/s390/cio/chsc.h | 6 drivers/s390/cio/cio.c | 291 drivers/s390/cio/cio.h | 14 drivers/s390/cio/cmf.c | 8 drivers/s390/cio/css.c | 253 drivers/s390/cio/css.h | 43 drivers/s390/cio/device.c | 470 drivers/s390/cio/device.h | 7 drivers/s390/cio/device_fsm.c | 216 drivers/s390/cio/device_id.c | 16 drivers/s390/cio/device_ops.c | 136 drivers/s390/cio/device_pgid.c | 26 drivers/s390/cio/device_status.c | 133 drivers/s390/cio/fcx.c | 350 drivers/s390/cio/io_sch.h | 46 drivers/s390/cio/itcw.c | 327 drivers/s390/cio/qdio.c | 28 drivers/s390/cio/scsw.c | 844 drivers/s390/crypto/ap_bus.c | 4 drivers/s390/crypto/zcrypt_api.c | 3 drivers/s390/kvm/kvm_virtio.c | 15 drivers/s390/net/claw.c | 125 drivers/s390/net/claw.h | 2 drivers/s390/net/ctcm_fsms.c | 12 drivers/s390/net/ctcm_main.c | 48 drivers/s390/net/ctcm_main.h | 2 drivers/s390/net/lcs.c | 67 drivers/s390/net/netiucv.c | 4 drivers/s390/net/qeth_core.h | 10 drivers/s390/net/qeth_core_main.c | 22 drivers/s390/s390_rdev.c | 2 drivers/s390/s390mach.c | 107 drivers/s390/s390mach.h | 10 drivers/s390/scsi/zfcp_aux.c | 63 drivers/s390/scsi/zfcp_dbf.c | 33 drivers/s390/scsi/zfcp_dbf.h | 12 drivers/s390/scsi/zfcp_def.h | 34 drivers/s390/scsi/zfcp_erp.c | 37 drivers/s390/scsi/zfcp_ext.h | 8 drivers/s390/scsi/zfcp_fsf.c | 105 drivers/s390/scsi/zfcp_fsf.h | 11 drivers/s390/scsi/zfcp_qdio.c | 27 drivers/s390/scsi/zfcp_scsi.c | 65 drivers/sbus/char/bpp.c | 3 drivers/sbus/char/cpwatchdog.c | 4 drivers/sbus/char/display7seg.c | 1 drivers/sbus/char/envctrl.c | 2 drivers/sbus/char/flash.c | 6 drivers/sbus/char/jsflash.c | 13 drivers/sbus/char/openprom.c | 3 drivers/sbus/char/riowatchdog.c | 2 drivers/sbus/char/rtc.c | 3 drivers/sbus/char/uctrl.c | 3 drivers/sbus/char/vfc_dev.c | 5 drivers/sbus/sbus.c | 6 drivers/scsi/3w-9xxx.c | 3 drivers/scsi/3w-xxxx.c | 3 drivers/scsi/Kconfig | 2 drivers/scsi/Makefile | 1 drivers/scsi/NCR_D700.c | 2 drivers/scsi/aacraid/commctrl.c | 33 drivers/scsi/aacraid/commsup.c | 2 drivers/scsi/aacraid/linit.c | 5 drivers/scsi/advansys.c | 2 drivers/scsi/aic94xx/aic94xx_sds.c | 12 drivers/scsi/aic94xx/aic94xx_sds.h | 4 drivers/scsi/aic94xx/aic94xx_seq.c | 7 drivers/scsi/aic94xx/aic94xx_tmf.c | 2 drivers/scsi/arm/Kconfig | 2 drivers/scsi/arm/acornscsi-io.S | 15 drivers/scsi/arm/acornscsi.c | 426 drivers/scsi/arm/acornscsi.h | 9 drivers/scsi/ch.c | 4 drivers/scsi/device_handler/Kconfig | 32 drivers/scsi/device_handler/Makefile | 7 drivers/scsi/device_handler/scsi_dh.c | 162 drivers/scsi/device_handler/scsi_dh_emc.c | 499 drivers/scsi/device_handler/scsi_dh_hp_sw.c | 202 drivers/scsi/device_handler/scsi_dh_rdac.c | 691 drivers/scsi/dpt_i2o.c | 9 drivers/scsi/gdth.c | 3 drivers/scsi/hosts.c | 13 drivers/scsi/ide-scsi.c | 304 drivers/scsi/ipr.c | 2 drivers/scsi/ipr.h | 2 drivers/scsi/iscsi_tcp.c | 515 drivers/scsi/iscsi_tcp.h | 7 drivers/scsi/lasi700.c | 2 drivers/scsi/libiscsi.c | 1351 - drivers/scsi/libsas/sas_discover.c | 2 drivers/scsi/libsas/sas_dump.c | 2 drivers/scsi/libsas/sas_port.c | 2 drivers/scsi/megaraid.c | 5 drivers/scsi/megaraid/megaraid_mm.c | 2 drivers/scsi/megaraid/megaraid_sas.c | 2 drivers/scsi/mesh.c | 8 drivers/scsi/osst.c | 15 drivers/scsi/qla2xxx/qla_def.h | 1 drivers/scsi/qla2xxx/qla_os.c | 4 drivers/scsi/qla4xxx/ql4_os.c | 8 drivers/scsi/raid_class.c | 3 drivers/scsi/scsi.c | 9 drivers/scsi/scsi_debug.c | 102 drivers/scsi/scsi_error.c | 11 drivers/scsi/scsi_ioctl.c | 2 drivers/scsi/scsi_lib.c | 8 drivers/scsi/scsi_scan.c | 7 drivers/scsi/scsi_sysfs.c | 13 drivers/scsi/scsi_tgt_if.c | 2 drivers/scsi/scsi_transport_fc.c | 23 drivers/scsi/scsi_transport_iscsi.c | 396 drivers/scsi/scsi_transport_sas.c | 32 drivers/scsi/scsi_transport_srp.c | 2 drivers/scsi/sd.c | 7 drivers/scsi/ses.c | 2 drivers/scsi/sg.c | 16 drivers/scsi/sim710.c | 5 drivers/scsi/sni_53c710.c | 2 drivers/scsi/st.c | 11 drivers/scsi/zalon.c | 2 drivers/serial/mpc52xx_uart.c | 4 drivers/serial/serial_core.c | 4 drivers/serial/sunzilog.c | 4 drivers/spi/atmel_spi.c | 8 drivers/spi/mpc52xx_psc_spi.c | 2 drivers/spi/omap2_mcspi.c | 2 drivers/spi/omap_uwire.c | 12 drivers/spi/pxa2xx_spi.c | 4 drivers/spi/spi.c | 18 drivers/spi/spi_bfin5xx.c | 2 drivers/spi/spi_bitbang.c | 2 drivers/spi/spi_butterfly.c | 2 drivers/spi/spi_imx.c | 4 drivers/spi/spi_lm70llp.c | 2 drivers/spi/spi_mpc83xx.c | 2 drivers/spi/spi_txx9.c | 2 drivers/spi/spidev.c | 10 drivers/ssb/main.c | 11 drivers/ssb/pci.c | 20 drivers/ssb/pcihost_wrapper.c | 2 drivers/telephony/phonedev.c | 3 drivers/thermal/thermal_sys.c | 6 drivers/uio/uio.c | 17 drivers/usb/Kconfig | 2 drivers/usb/Makefile | 3 drivers/usb/atm/cxacru.c | 2 drivers/usb/atm/ueagle-atm.c | 20 drivers/usb/core/devices.c | 2 drivers/usb/core/devio.c | 19 drivers/usb/core/driver.c | 37 drivers/usb/core/endpoint.c | 4 drivers/usb/core/file.c | 18 drivers/usb/core/hcd.c | 6 drivers/usb/core/hcd.h | 2 drivers/usb/core/hub.c | 506 drivers/usb/core/message.c | 8 drivers/usb/core/usb.c | 9 drivers/usb/gadget/Kconfig | 4 drivers/usb/gadget/Makefile | 2 drivers/usb/gadget/amd5536udc.c | 2 drivers/usb/gadget/at91_udc.c | 2 drivers/usb/gadget/atmel_usba_udc.c | 2 drivers/usb/gadget/dummy_hcd.c | 4 drivers/usb/gadget/ether.c | 2 drivers/usb/gadget/file_storage.c | 4 drivers/usb/gadget/fsl_usb2_udc.c | 2 drivers/usb/gadget/goku_udc.c | 2 drivers/usb/gadget/inode.c | 2 drivers/usb/gadget/lh7a40x_udc.c | 4 drivers/usb/gadget/m66592-udc.c | 2 drivers/usb/gadget/net2280.c | 2 drivers/usb/gadget/omap_udc.c | 2 drivers/usb/gadget/printer.c | 7 drivers/usb/gadget/pxa27x_udc.c | 2 drivers/usb/gadget/pxa2xx_udc.c | 14 drivers/usb/gadget/rndis.c | 55 drivers/usb/gadget/rndis.h | 2 drivers/usb/gadget/s3c2410_udc.c | 2 drivers/usb/gadget/serial.c | 1506 - drivers/usb/gadget/u_serial.c | 1270 + drivers/usb/gadget/u_serial.h | 51 drivers/usb/host/Kconfig | 26 drivers/usb/host/Makefile | 3 drivers/usb/host/ehci-dbg.c | 4 drivers/usb/host/ehci-fsl.c | 12 drivers/usb/host/ehci-ixp4xx.c | 8 drivers/usb/host/ehci-orion.c | 8 drivers/usb/host/ehci-ps3.c | 2 drivers/usb/host/hwa-hc.c | 935 + drivers/usb/host/isp116x-hcd.c | 2 drivers/usb/host/isp1760-hcd.c | 10 drivers/usb/host/isp1760-if.c | 6 drivers/usb/host/ohci-dbg.c | 2 drivers/usb/host/ohci-omap.c | 2 drivers/usb/host/ohci-pnx4008.c | 2 drivers/usb/host/ohci-ps3.c | 2 drivers/usb/host/ohci-sm501.c | 2 drivers/usb/host/ohci-ssb.c | 2 drivers/usb/host/sl811-hcd.c | 2 drivers/usb/host/u132-hcd.c | 2 drivers/usb/host/whci/Kbuild | 11 drivers/usb/host/whci/asl.c | 366 drivers/usb/host/whci/hcd.c | 339 drivers/usb/host/whci/hw.c | 80 drivers/usb/host/whci/init.c | 181 drivers/usb/host/whci/int.c | 95 drivers/usb/host/whci/pzl.c | 398 drivers/usb/host/whci/qset.c | 563 drivers/usb/host/whci/whcd.h | 195 drivers/usb/host/whci/whci-hc.h | 413 drivers/usb/host/whci/wusb.c | 241 drivers/usb/misc/Kconfig | 26 drivers/usb/misc/Makefile | 1 drivers/usb/misc/emi26.c | 96 drivers/usb/misc/emi26_fw.h | 5779 ------ drivers/usb/misc/emi62.c | 132 drivers/usb/misc/emi62_fw_m.h | 8853 ---------- drivers/usb/misc/emi62_fw_s.h | 8837 --------- drivers/usb/misc/gotemp.c | 301 drivers/usb/mon/mon_bin.c | 11 drivers/usb/serial/Kconfig | 43 drivers/usb/serial/digi_acceleport.c | 2 drivers/usb/serial/ftdi_sio.c | 2 drivers/usb/serial/io_fw_down3.h | 11 drivers/usb/serial/io_ti.c | 1890 -- drivers/usb/serial/keyspan.c | 78 drivers/usb/serial/keyspan.h | 84 drivers/usb/serial/keyspan_mpr_fw.h | 286 drivers/usb/serial/keyspan_pda.S | 1124 - drivers/usb/serial/keyspan_pda.c | 51 drivers/usb/serial/keyspan_pda_fw.h | 99 drivers/usb/serial/keyspan_usa18x_fw.h | 447 drivers/usb/serial/keyspan_usa19_fw.h | 285 drivers/usb/serial/keyspan_usa19qi_fw.h | 284 drivers/usb/serial/keyspan_usa19qw_fw.h | 448 drivers/usb/serial/keyspan_usa19w_fw.h | 446 drivers/usb/serial/keyspan_usa28_fw.h | 466 drivers/usb/serial/keyspan_usa28x_fw.h | 447 drivers/usb/serial/keyspan_usa28xa_fw.h | 449 drivers/usb/serial/keyspan_usa28xb_fw.h | 448 drivers/usb/serial/keyspan_usa49w_fw.h | 464 drivers/usb/serial/keyspan_usa49wlc_fw.h | 476 drivers/usb/serial/kl5kusb105.c | 2 drivers/usb/serial/ti_fw_3410.h | 885 drivers/usb/serial/ti_fw_5052.h | 885 drivers/usb/serial/ti_usb_3410_5052.c | 40 drivers/usb/serial/usb-serial.c | 6 drivers/usb/serial/whiteheat.c | 77 drivers/usb/serial/whiteheat_fw.h | 1669 - drivers/usb/serial/xircom_pgs.S | 1192 - drivers/usb/serial/xircom_pgs_fw.h | 103 drivers/usb/storage/datafab.c | 2 drivers/usb/storage/debug.c | 2 drivers/usb/storage/debug.h | 2 drivers/usb/storage/dpcm.c | 2 drivers/usb/storage/dpcm.h | 2 drivers/usb/storage/freecom.c | 2 drivers/usb/storage/freecom.h | 2 drivers/usb/storage/initializers.c | 2 drivers/usb/storage/initializers.h | 2 drivers/usb/storage/isd200.c | 8 drivers/usb/storage/jumpshot.c | 2 drivers/usb/storage/protocol.c | 2 drivers/usb/storage/protocol.h | 2 drivers/usb/storage/scsiglue.c | 28 drivers/usb/storage/scsiglue.h | 2 drivers/usb/storage/sddr09.c | 1 drivers/usb/storage/sddr09.h | 2 drivers/usb/storage/sddr55.c | 2 drivers/usb/storage/sddr55.h | 2 drivers/usb/storage/shuttle_usbat.c | 2 drivers/usb/storage/shuttle_usbat.h | 2 drivers/usb/storage/transport.c | 78 drivers/usb/storage/transport.h | 2 drivers/usb/storage/unusual_devs.h | 2 drivers/usb/storage/usb.c | 111 drivers/usb/storage/usb.h | 25 drivers/usb/wusbcore/Kconfig | 17 drivers/usb/wusbcore/Makefile | 20 drivers/usb/wusbcore/cbaf.c | 620 drivers/usb/wusbcore/crypto.c | 538 drivers/usb/wusbcore/dev-sysfs.c | 199 drivers/usb/wusbcore/devconnect.c | 1319 + drivers/usb/wusbcore/mmc.c | 329 drivers/usb/wusbcore/pal.c | 39 drivers/usb/wusbcore/reservation.c | 115 drivers/usb/wusbcore/rh.c | 477 drivers/usb/wusbcore/security.c | 644 drivers/usb/wusbcore/wa-hc.c | 83 drivers/usb/wusbcore/wa-hc.h | 416 drivers/usb/wusbcore/wa-nep.c | 313 drivers/usb/wusbcore/wa-rpipe.c | 562 drivers/usb/wusbcore/wa-xfer.c | 1709 + drivers/usb/wusbcore/wusbhc.c | 392 drivers/usb/wusbcore/wusbhc.h | 525 drivers/uwb/Kconfig | 89 drivers/uwb/Makefile | 29 drivers/uwb/address.c | 374 drivers/uwb/beacon.c | 707 drivers/uwb/driver.c | 142 drivers/uwb/drp-avail.c | 288 drivers/uwb/drp-ie.c | 233 drivers/uwb/drp.c | 451 drivers/uwb/est.c | 414 drivers/uwb/hwa-rc.c | 912 + drivers/uwb/i1480/Makefile | 2 drivers/uwb/i1480/dfu/Makefile | 9 drivers/uwb/i1480/dfu/dfu.c | 281 drivers/uwb/i1480/dfu/i1480-dfu.h | 263 drivers/uwb/i1480/dfu/mac.c | 529 drivers/uwb/i1480/dfu/phy.c | 203 drivers/uwb/i1480/dfu/usb.c | 501 drivers/uwb/i1480/i1480-est.c | 99 drivers/uwb/i1480/i1480-wlp.h | 155 drivers/uwb/i1480/i1480u-wlp/Makefile | 8 drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.h | 269 drivers/uwb/i1480/i1480u-wlp/lc.c | 421 drivers/uwb/i1480/i1480u-wlp/netdev.c | 367 drivers/uwb/i1480/i1480u-wlp/rx.c | 491 drivers/uwb/i1480/i1480u-wlp/sysfs.c | 446 drivers/uwb/i1480/i1480u-wlp/tx.c | 638 drivers/uwb/ie.c | 570 drivers/uwb/lc-dev.c | 517 drivers/uwb/lc-rc.c | 485 drivers/uwb/neh.c | 615 drivers/uwb/pal.c | 71 drivers/uwb/reset.c | 319 drivers/uwb/rsv.c | 677 drivers/uwb/scan.c | 159 drivers/uwb/umc-bus.c | 185 drivers/uwb/umc-dev.c | 103 drivers/uwb/umc-drv.c | 31 drivers/uwb/uwb-debug.c | 367 drivers/uwb/uwb-internal.h | 283 drivers/uwb/uwbd.c | 425 drivers/uwb/whc-rc.c | 511 drivers/uwb/whci.c | 274 drivers/uwb/wlp/Makefile | 10 drivers/uwb/wlp/driver.c | 43 drivers/uwb/wlp/eda.c | 449 drivers/uwb/wlp/messages.c | 1946 ++ drivers/uwb/wlp/sysfs.c | 715 drivers/uwb/wlp/txrx.c | 374 drivers/uwb/wlp/wlp-internal.h | 228 drivers/uwb/wlp/wlp-lc.c | 572 drivers/uwb/wlp/wss-lc.c | 1056 + drivers/video/atafb.c | 2 drivers/video/aty/aty128fb.c | 2 drivers/video/aty/radeonfb.h | 2 drivers/video/backlight/Kconfig | 7 drivers/video/backlight/Makefile | 1 drivers/video/backlight/backlight.c | 2 drivers/video/backlight/lcd.c | 2 drivers/video/backlight/pwm_bl.c | 185 drivers/video/console/fbcon.c | 3 drivers/video/fb_ddc.c | 1 drivers/video/fbmem.c | 20 drivers/video/intelfb/intelfb_i2c.c | 12 drivers/video/matrox/i2c-matroxfb.c | 20 drivers/video/output.c | 2 drivers/video/pmag-ba-fb.c | 16 drivers/video/pmagb-b-fb.c | 16 drivers/video/ps3fb.c | 2 drivers/video/xen-fbfront.c | 211 drivers/virtio/virtio.c | 7 drivers/virtio/virtio_pci.c | 10 drivers/virtio/virtio_ring.c | 28 drivers/w1/w1.c | 19 drivers/w1/w1_int.c | 3 drivers/xen/Makefile | 2 drivers/xen/balloon.c | 10 drivers/xen/events.c | 114 drivers/xen/grant-table.c | 4 drivers/xen/manage.c | 252 drivers/xen/xenbus/xenbus_comms.c | 23 drivers/xen/xenbus/xenbus_probe.c | 10 drivers/xen/xenbus/xenbus_probe.h | 2 drivers/zorro/proc.c | 4 drivers/zorro/zorro.c | 2 drivers/zorro/zorro.ids | 2 firmware/Makefile | 134 firmware/WHENCE | 228 firmware/emi26/bitstream.HEX | 4391 ++++ firmware/emi26/firmware.HEX | 1261 + firmware/emi26/loader.HEX | 116 firmware/emi62/bitstream.HEX | 4372 ++++ firmware/emi62/loader.HEX | 107 firmware/emi62/midi.HEX | 1266 + firmware/emi62/spdif.HEX | 1257 + firmware/ess/maestro3_assp_kernel.fw.ihex | 120 firmware/ess/maestro3_assp_minisrc.fw.ihex | 51 firmware/ihex2fw.c | 238 firmware/kaweth/new_code.bin.ihex | 206 firmware/kaweth/new_code_fix.bin.ihex | 40 firmware/kaweth/trigger_code.bin.ihex | 13 firmware/kaweth/trigger_code_fix.bin.ihex | 3 firmware/keyspan/mpr.HEX | 104 firmware/keyspan/usa18x.HEX | 141 firmware/keyspan/usa19.HEX | 101 firmware/keyspan/usa19qi.HEX | 101 firmware/keyspan/usa19qw.HEX | 142 firmware/keyspan/usa19w.HEX | 141 firmware/keyspan/usa28.HEX | 148 firmware/keyspan/usa28x.HEX | 141 firmware/keyspan/usa28xa.HEX | 141 firmware/keyspan/usa28xb.HEX | 142 firmware/keyspan/usa49w.HEX | 145 firmware/keyspan/usa49wlc.HEX | 153 firmware/keyspan_pda/keyspan_pda.HEX | 83 firmware/keyspan_pda/keyspan_pda.S | 1124 + firmware/keyspan_pda/xircom_pgs.HEX | 87 firmware/keyspan_pda/xircom_pgs.S | 1192 + firmware/korg/k1212.dsp.ihex | 987 + firmware/ti_3410.fw.ihex | 862 firmware/ti_5052.fw.ihex | 862 firmware/tr_smctr.bin.ihex | 477 firmware/ttusb-budget/dspbootcode.bin.ihex | 820 firmware/whiteheat.HEX | 1097 + firmware/whiteheat_loader.HEX | 314 firmware/whiteheat_loader_debug.HEX | 403 firmware/yamaha/ds1_ctrl.fw.ihex | 769 firmware/yamaha/ds1_dsp.fw.ihex | 9 firmware/yamaha/ds1e_ctrl.fw.ihex | 769 fs/Kconfig | 11 fs/Kconfig.binfmt | 2 fs/Makefile | 1 fs/binfmt_elf_fdpic.c | 45 fs/char_dev.c | 7 fs/cifs/cifsglob.h | 3 fs/cifs/cifspdu.h | 23 fs/cifs/cifssmb.c | 6 fs/cifs/connect.c | 4 fs/cifs/dir.c | 4 fs/cifs/file.c | 7 fs/cifs/inode.c | 146 fs/cifs/misc.c | 3 fs/cifs/readdir.c | 77 fs/coda/psdev.c | 5 fs/dcache.c | 102 fs/dlm/lock.c | 3 fs/dlm/user.c | 11 fs/ext4/balloc.c | 12 fs/ext4/ext4.h | 7 fs/ext4/ext4_i.h | 2 fs/ext4/ext4_sb.h | 2 fs/ext4/inode.c | 20 fs/ext4/mballoc.c | 86 fs/fat/cache.c | 2 fs/fat/dir.c | 4 fs/fat/file.c | 6 fs/fat/inode.c | 26 fs/fs-writeback.c | 22 fs/gfs2/Kconfig | 18 fs/gfs2/Makefile | 1 fs/gfs2/glock.c | 1696 - fs/gfs2/glock.h | 9 fs/gfs2/glops.c | 70 fs/gfs2/incore.h | 35 fs/gfs2/locking.c | 52 fs/gfs2/locking/dlm/lock.c | 356 fs/gfs2/locking/dlm/lock_dlm.h | 12 fs/gfs2/locking/dlm/mount.c | 4 fs/gfs2/locking/dlm/thread.c | 324 fs/gfs2/locking/nolock/Makefile | 3 fs/gfs2/locking/nolock/main.c | 238 fs/gfs2/log.c | 2 fs/gfs2/log.h | 2 fs/gfs2/main.c | 2 fs/gfs2/meta_io.c | 14 fs/gfs2/meta_io.h | 1 fs/gfs2/ops_address.c | 40 fs/gfs2/ops_file.c | 8 fs/gfs2/ops_fstype.c | 5 fs/gfs2/recovery.c | 5 fs/gfs2/super.c | 3 fs/jbd2/commit.c | 3 fs/jffs2/fs.c | 2 fs/jfs/jfs_debug.c | 62 fs/jfs/jfs_debug.h | 10 fs/jfs/jfs_imap.c | 2 fs/jfs/jfs_logmgr.c | 35 fs/jfs/jfs_metapage.c | 36 fs/jfs/jfs_txnmgr.c | 68 fs/jfs/jfs_xtree.c | 36 fs/jfs/namei.c | 2 fs/jfs/super.c | 7 fs/msdos/namei.c | 35 fs/nfsd/nfs4proc.c | 1 fs/nfsd/nfs4state.c | 4 fs/nfsd/nfs4xdr.c | 2 fs/ntfs/aops.c | 2 fs/ocfs2/dlmglue.c | 122 fs/ocfs2/inode.c | 4 fs/ocfs2/ocfs2.h | 12 fs/ocfs2/stack_user.c | 3 fs/partitions/check.c | 16 fs/proc/base.c | 9 fs/proc/nommu.c | 2 fs/proc/proc_misc.c | 16 fs/proc/task_mmu.c | 8 fs/proc/task_nommu.c | 2 fs/reiserfs/journal.c | 2 fs/sysfs/file.c | 13 fs/sysfs/mount.c | 2 fs/sysfs/sysfs.h | 1 fs/ubifs/Kconfig | 72 fs/ubifs/Makefile | 9 fs/ubifs/budget.c | 863 fs/ubifs/commit.c | 677 fs/ubifs/compress.c | 253 fs/ubifs/debug.c | 2210 ++ fs/ubifs/debug.h | 396 fs/ubifs/dir.c | 1017 + fs/ubifs/file.c | 960 + fs/ubifs/find.c | 977 + fs/ubifs/gc.c | 762 fs/ubifs/io.c | 921 + fs/ubifs/ioctl.c | 212 fs/ubifs/journal.c | 1286 + fs/ubifs/key.h | 533 fs/ubifs/log.c | 799 fs/ubifs/lprops.c | 1355 + fs/ubifs/lpt.c | 2241 ++ fs/ubifs/lpt_commit.c | 1631 + fs/ubifs/master.c | 387 fs/ubifs/misc.h | 311 fs/ubifs/orphan.c | 958 + fs/ubifs/recovery.c | 1537 + fs/ubifs/replay.c | 1075 + fs/ubifs/sb.c | 615 fs/ubifs/scan.c | 362 fs/ubifs/shrinker.c | 322 fs/ubifs/super.c | 1969 ++ fs/ubifs/tnc.c | 2961 +++ fs/ubifs/tnc_commit.c | 1105 + fs/ubifs/tnc_misc.c | 496 fs/ubifs/ubifs-media.h | 729 fs/ubifs/ubifs.h | 1605 + fs/ubifs/xattr.c | 581 fs/udf/super.c | 2 fs/vfat/namei.c | 35 fs/xfs/linux-2.6/kmem.c | 6 fs/xfs/linux-2.6/kmem.h | 4 fs/xfs/linux-2.6/sema.h | 8 fs/xfs/linux-2.6/xfs_aops.c | 5 fs/xfs/linux-2.6/xfs_buf.c | 18 fs/xfs/linux-2.6/xfs_buf.h | 2 fs/xfs/linux-2.6/xfs_export.c | 2 fs/xfs/linux-2.6/xfs_iops.c | 74 fs/xfs/linux-2.6/xfs_iops.h | 1 fs/xfs/linux-2.6/xfs_linux.h | 1 fs/xfs/linux-2.6/xfs_super.c | 568 fs/xfs/linux-2.6/xfs_super.h | 3 fs/xfs/quota/xfs_dquot.c | 3 fs/xfs/quota/xfs_dquot.h | 2 fs/xfs/quota/xfs_dquot_item.c | 4 fs/xfs/quota/xfs_qm.c | 14 fs/xfs/quota/xfs_qm_syscalls.c | 8 fs/xfs/support/ktrace.c | 4 fs/xfs/xfs_attr.c | 158 fs/xfs/xfs_attr.h | 2 fs/xfs/xfs_attr_leaf.c | 38 fs/xfs/xfs_attr_sf.h | 10 fs/xfs/xfs_bmap.c | 2 fs/xfs/xfs_buf_item.c | 8 fs/xfs/xfs_clnt.h | 1 fs/xfs/xfs_da_btree.c | 46 fs/xfs/xfs_da_btree.h | 36 fs/xfs/xfs_dfrag.c | 4 fs/xfs/xfs_dir2.c | 125 fs/xfs/xfs_dir2.h | 6 fs/xfs/xfs_dir2_block.c | 58 fs/xfs/xfs_dir2_data.c | 5 fs/xfs/xfs_dir2_leaf.c | 84 fs/xfs/xfs_dir2_node.c | 391 fs/xfs/xfs_dir2_sf.c | 83 fs/xfs/xfs_dir2_trace.c | 20 fs/xfs/xfs_error.c | 5 fs/xfs/xfs_extfree_item.c | 6 fs/xfs/xfs_fs.h | 1 fs/xfs/xfs_fsops.c | 4 fs/xfs/xfs_inode.c | 95 fs/xfs/xfs_inode.h | 3 fs/xfs/xfs_inode_item.c | 7 fs/xfs/xfs_itable.c | 6 fs/xfs/xfs_log.c | 49 fs/xfs/xfs_log_priv.h | 6 fs/xfs/xfs_log_recover.c | 21 fs/xfs/xfs_mount.c | 92 fs/xfs/xfs_mount.h | 15 fs/xfs/xfs_mru_cache.c | 8 fs/xfs/xfs_rtalloc.c | 2 fs/xfs/xfs_sb.h | 17 fs/xfs/xfs_trans.c | 4 fs/xfs/xfs_trans_inode.c | 2 fs/xfs/xfs_trans_item.c | 8 fs/xfs/xfs_vfsops.c | 479 fs/xfs/xfs_vfsops.h | 5 fs/xfs/xfs_vnodeops.c | 34 fs/xfs/xfs_vnodeops.h | 2 include/acpi/acpi_bus.h | 4 include/asm-alpha/semaphore.h | 1 include/asm-arm/arch-at91/at91_pmc.h | 7 include/asm-arm/arch-at91/at91cap9.h | 2 include/asm-arm/arch-at91/at91cap9_matrix.h | 5 include/asm-arm/arch-at91/at91sam9rl.h | 2 include/asm-arm/arch-at91/board.h | 4 include/asm-arm/arch-at91/timex.h | 17 include/asm-arm/arch-ebsa285/hardware.h | 26 include/asm-arm/arch-ebsa285/memory.h | 19 include/asm-arm/arch-ebsa285/vmalloc.h | 4 include/asm-arm/arch-ixp4xx/fsg.h | 50 include/asm-arm/arch-ixp4xx/hardware.h | 1 include/asm-arm/arch-ixp4xx/irqs.h | 7 include/asm-arm/arch-pxa/hardware.h | 12 include/asm-arm/arch-pxa/pxa-regs.h | 570 include/asm-arm/arch-pxa/pxa25x-udc.h | 163 include/asm-arm/arch-pxa/pxa27x-udc.h | 256 include/asm-arm/arch-pxa/pxa2xx-regs.h | 162 include/asm-arm/arch-pxa/system.h | 18 include/asm-arm/arch-pxa/zylonite.h | 1 include/asm-arm/arch-rpc/io.h | 5 include/asm-arm/dyntick.h | 6 include/asm-arm/ecard.h | 35 include/asm-arm/hw_irq.h | 11 include/asm-arm/kprobes.h | 1 include/asm-arm/mach/time.h | 22 include/asm-arm/rtc.h | 43 include/asm-arm/semaphore.h | 1 include/asm-avr32/semaphore.h | 1 include/asm-blackfin/semaphore.h | 1 include/asm-cris/semaphore.h | 1 include/asm-frv/semaphore.h | 1 include/asm-generic/vmlinux.lds.h | 27 include/asm-h8300/semaphore.h | 1 include/asm-ia64/Kbuild | 2 include/asm-ia64/gcc_intrin.h | 24 include/asm-ia64/hw_irq.h | 23 include/asm-ia64/intel_intrin.h | 41 include/asm-ia64/intrinsics.h | 55 include/asm-ia64/iosapic.h | 18 include/asm-ia64/irq.h | 9 include/asm-ia64/kvm_host.h | 3 include/asm-ia64/mmu_context.h | 6 include/asm-ia64/native/inst.h | 175 include/asm-ia64/native/irq.h | 35 include/asm-ia64/paravirt.h | 255 include/asm-ia64/paravirt_privop.h | 114 include/asm-ia64/semaphore.h | 1 include/asm-ia64/smp.h | 2 include/asm-ia64/system.h | 11 include/asm-m32r/semaphore.h | 1 include/asm-m68k/apollodma.h | 2 include/asm-m68k/dvma.h | 2 include/asm-m68k/fpu.h | 10 include/asm-m68k/irq.h | 2 include/asm-m68k/machines.h | 2 include/asm-m68k/md.h | 2 include/asm-m68k/openprom.h | 1 include/asm-m68k/oplib.h | 2 include/asm-m68k/semaphore.h | 1 include/asm-m68k/sun3-head.h | 1 include/asm-m68k/tlbflush.h | 8 include/asm-m68knommu/semaphore.h | 1 include/asm-mips/semaphore.h | 1 include/asm-mn10300/semaphore.h | 1 include/asm-parisc/parisc-device.h | 4 include/asm-parisc/semaphore.h | 1 include/asm-powerpc/dcr-generic.h | 49 include/asm-powerpc/dcr-mmio.h | 20 include/asm-powerpc/dcr-native.h | 16 include/asm-powerpc/dcr.h | 39 include/asm-powerpc/ftrace.h | 6 include/asm-powerpc/hw_irq.h | 10 include/asm-powerpc/ioctl.h | 58 include/asm-powerpc/irq.h | 13 include/asm-powerpc/kvm_host.h | 2 include/asm-powerpc/kvm_ppc.h | 1 include/asm-powerpc/mmu-hash64.h | 1 include/asm-powerpc/mpc6xx.h | 6 include/asm-powerpc/mpic.h | 2 include/asm-powerpc/of_device.h | 2 include/asm-powerpc/ppc_asm.h | 6 include/asm-powerpc/ptrace.h | 1 include/asm-powerpc/semaphore.h | 1 include/asm-powerpc/smp.h | 2 include/asm-powerpc/system.h | 1 include/asm-powerpc/thread_info.h | 19 include/asm-powerpc/time.h | 1 include/asm-powerpc/xmon.h | 9 include/asm-s390/ccwdev.h | 12 include/asm-s390/cio.h | 114 include/asm-s390/elf.h | 51 include/asm-s390/etr.h | 45 include/asm-s390/fcx.h | 311 include/asm-s390/itcw.h | 30 include/asm-s390/processor.h | 14 include/asm-s390/ptrace.h | 15 include/asm-s390/semaphore.h | 1 include/asm-sh/elf.h | 53 include/asm-sh/mmu.h | 4 include/asm-sh/page.h | 2 include/asm-sh/pgtable_32.h | 4 include/asm-sh/processor.h | 1 include/asm-sh/processor_32.h | 4 include/asm-sh/processor_64.h | 4 include/asm-sh/ptrace.h | 5 include/asm-sh/segment.h | 30 include/asm-sh/semaphore.h | 1 include/asm-sh/thread_info.h | 2 include/asm-sh/uaccess.h | 222 include/asm-sh/uaccess_32.h | 341 include/asm-sh/uaccess_64.h | 206 include/asm-sparc/semaphore.h | 1 include/asm-sparc64/semaphore.h | 1 include/asm-um/semaphore.h | 1 include/asm-v850/semaphore.h | 1 include/asm-x86/acpi.h | 1 include/asm-x86/alternative.h | 2 include/asm-x86/apic.h | 1 include/asm-x86/atomic_64.h | 6 include/asm-x86/bios_ebda.h | 2 include/asm-x86/bitops.h | 34 include/asm-x86/bootparam.h | 4 include/asm-x86/cpufeature.h | 6 include/asm-x86/current.h | 42 include/asm-x86/current_32.h | 17 include/asm-x86/current_64.h | 27 include/asm-x86/desc.h | 22 include/asm-x86/e820.h | 80 include/asm-x86/e820_32.h | 24 include/asm-x86/e820_64.h | 27 include/asm-x86/efi.h | 2 include/asm-x86/fixmap_32.h | 8 include/asm-x86/gart.h | 62 include/asm-x86/genapic_64.h | 2 include/asm-x86/hardirq.h | 6 include/asm-x86/hw_irq.h | 105 include/asm-x86/hw_irq_32.h | 66 include/asm-x86/hw_irq_64.h | 173 include/asm-x86/i8259.h | 2 include/asm-x86/io.h | 56 include/asm-x86/io_32.h | 49 include/asm-x86/io_64.h | 71 include/asm-x86/io_apic.h | 29 include/asm-x86/ipi.h | 1 include/asm-x86/irq.h | 51 include/asm-x86/irq_32.h | 51 include/asm-x86/irq_64.h | 51 include/asm-x86/irq_vectors.h | 169 include/asm-x86/irqflags.h | 24 include/asm-x86/kvm.h | 1 include/asm-x86/kvm_host.h | 44 include/asm-x86/mach-default/irq_vectors.h | 96 include/asm-x86/mach-default/irq_vectors_limits.h | 16 include/asm-x86/mach-visws/irq_vectors.h | 62 include/asm-x86/mach-voyager/irq_vectors.h | 79 include/asm-x86/mmconfig.h | 18 include/asm-x86/mmzone_32.h | 8 include/asm-x86/mpspec.h | 19 include/asm-x86/nmi.h | 7 include/asm-x86/numa_64.h | 19 include/asm-x86/numaq.h | 1 include/asm-x86/page.h | 11 include/asm-x86/page_32.h | 8 include/asm-x86/paravirt.h | 15 include/asm-x86/pci-direct.h | 4 include/asm-x86/pci.h | 2 include/asm-x86/pda.h | 7 include/asm-x86/percpu.h | 46 include/asm-x86/pgtable.h | 72 include/asm-x86/processor-flags.h | 6 include/asm-x86/ptrace.h | 8 include/asm-x86/reboot.h | 2 include/asm-x86/required-features.h | 6 include/asm-x86/resume-trace.h | 2 include/asm-x86/seccomp_32.h | 1 include/asm-x86/semaphore.h | 1 include/asm-x86/setup.h | 11 include/asm-x86/smp.h | 16 include/asm-x86/stackprotector.h | 38 include/asm-x86/string_32.h | 325 include/asm-x86/system.h | 9 include/asm-x86/thread_info.h | 248 include/asm-x86/thread_info_32.h | 205 include/asm-x86/thread_info_64.h | 195 include/asm-x86/topology.h | 150 include/asm-x86/uv/uv_hub.h | 188 include/asm-x86/uv/uv_mmrs.h | 509 include/asm-x86/vm86.h | 11 include/asm-x86/vsyscall.h | 3 include/asm-x86/xen/hypercall.h | 11 include/asm-x86/xen/page.h | 29 include/asm-xtensa/semaphore.h | 1 include/crypto/algapi.h | 36 include/linux/bitmap.h | 1 include/linux/blkdev.h | 1 include/linux/brcmphy.h | 6 include/linux/byteorder/bitfields.h | 114 include/linux/compiler-gcc.h | 19 include/linux/compiler-intel.h | 2 include/linux/console.h | 2 include/linux/consolemap.h | 14 include/linux/cpufreq.h | 3 include/linux/cpuidle.h | 1 include/linux/crypto.h | 187 include/linux/dcache.h | 2 include/linux/device.h | 63 include/linux/efi.h | 4 include/linux/eisa.h | 2 include/linux/firmware.h | 23 include/linux/fs.h | 2 include/linux/ftrace.h | 139 include/linux/gameport.h | 1 include/linux/gpio_keys.h | 1 include/linux/i2c-id.h | 1 include/linux/i2c.h | 8 include/linux/ide.h | 114 include/linux/ieee80211.h | 50 include/linux/ihex.h | 68 include/linux/init.h | 1 include/linux/input.h | 7 include/linux/irqflags.h | 13 include/linux/jbd2.h | 2 include/linux/jffs2.h | 3 include/linux/joystick.h | 2 include/linux/kernel.h | 35 include/linux/kernel_stat.h | 2 include/linux/kobject.h | 1 include/linux/kthread.h | 29 include/linux/kvm.h | 29 include/linux/kvm_host.h | 12 include/linux/libps2.h | 1 include/linux/linkage.h | 2 include/linux/list.h | 367 include/linux/magic.h | 1 include/linux/marker.h | 40 include/linux/mm.h | 1 include/linux/mmc/card.h | 5 include/linux/mmc/host.h | 13 include/linux/mmc/mmc.h | 9 include/linux/mmc/sdio_func.h | 2 include/linux/mmiotrace.h | 85 include/linux/mod_devicetable.h | 9 include/linux/mtd/blktrans.h | 2 include/linux/mtd/cfi.h | 1 include/linux/mtd/cfi_endian.h | 5 include/linux/mtd/concat.h | 2 include/linux/mtd/doc2000.h | 2 include/linux/mtd/flashchip.h | 3 include/linux/mtd/ftl.h | 2 include/linux/mtd/gen_probe.h | 1 include/linux/mtd/inftl.h | 4 include/linux/mtd/map.h | 3 include/linux/mtd/mtd.h | 4 include/linux/mtd/nand.h | 2 include/linux/mtd/nand_ecc.h | 2 include/linux/mtd/nftl.h | 2 include/linux/mtd/partitions.h | 2 include/linux/mtd/physmap.h | 2 include/linux/mtd/plat-ram.h | 2 include/linux/mtd/pmc551.h | 4 include/linux/mtd/xip.h | 2 include/linux/mutex.h | 4 include/linux/of_device.h | 3 include/linux/page-flags.h | 1 include/linux/pageblock-flags.h | 8 include/linux/pci.h | 22 include/linux/pci_hotplug.h | 2 include/linux/pci_ids.h | 2 include/linux/phy.h | 6 include/linux/platform_device.h | 1 include/linux/pm.h | 314 include/linux/poison.h | 10 include/linux/preempt.h | 34 include/linux/ptrace.h | 8 include/linux/pwm.h | 31 include/linux/pwm_backlight.h | 17 include/linux/rcuclassic.h | 3 include/linux/rculist.h | 373 include/linux/rcupdate.h | 26 include/linux/rcupreempt.h | 42 include/linux/resume-trace.h | 2 include/linux/rio_drv.h | 2 include/linux/sched.h | 32 include/linux/securebits.h | 2 include/linux/security.h | 16 include/linux/semaphore.h | 14 include/linux/smp_lock.h | 13 include/linux/spi/mmc_spi.h | 9 include/linux/spi/spi.h | 2 include/linux/stackprotector.h | 16 include/linux/stop_machine.h | 27 include/linux/sunrpc/gss_krb5.h | 28 include/linux/sunrpc/svc_rdma.h | 36 include/linux/sysfs.h | 9 include/linux/tcp.h | 50 include/linux/timer.h | 32 include/linux/tipc_config.h | 10 include/linux/usb.h | 10 include/linux/usb/wusb-wa.h | 281 include/linux/usb/wusb.h | 419 include/linux/usbdevice_fs.h | 2 include/linux/uwb.h | 759 include/linux/uwb/debug-cmd.h | 57 include/linux/uwb/debug.h | 82 include/linux/uwb/spec.h | 625 include/linux/uwb/umc.h | 194 include/linux/uwb/whci.h | 117 include/linux/videodev2.h | 10 include/linux/virtio_blk.h | 3 include/linux/virtio_config.h | 7 include/linux/virtio_net.h | 2 include/linux/virtio_ring.h | 15 include/linux/vt_kern.h | 19 include/linux/wanrouter.h | 2 include/linux/wireless.h | 2 include/linux/wlp.h | 728 include/linux/writeback.h | 2 include/media/v4l2-dev.h | 73 include/mtd/inftl-user.h | 2 include/mtd/jffs2-user.h | 2 include/mtd/mtd-abi.h | 2 include/mtd/mtd-user.h | 2 include/mtd/nftl-user.h | 2 include/net/bluetooth/hci_core.h | 7 include/net/ieee80211.h | 11 include/net/ip6_tunnel.h | 1 include/net/ipip.h | 1 include/net/mac80211.h | 460 include/net/net_namespace.h | 3 include/net/sctp/sctp.h | 2 include/net/sctp/structs.h | 4 include/net/sctp/user.h | 36 include/net/tipc/tipc_port.h | 3 include/net/wireless.h | 10 include/pcmcia/ss.h | 1 include/pcmcia/version.h | 3 include/rdma/ib_addr.h | 50 include/rdma/ib_cache.h | 2 include/rdma/ib_cm.h | 2 include/rdma/ib_fmr_pool.h | 4 include/rdma/ib_mad.h | 17 include/rdma/ib_pack.h | 2 include/rdma/ib_sa.h | 2 include/rdma/ib_smi.h | 4 include/rdma/ib_user_cm.h | 2 include/rdma/ib_user_mad.h | 2 include/rdma/ib_user_verbs.h | 2 include/rdma/ib_verbs.h | 6 include/rdma/iw_cm.h | 2 include/rdma/rdma_cm.h | 60 include/rdma/rdma_cm_ib.h | 50 include/scsi/iscsi_if.h | 93 include/scsi/iscsi_proto.h | 3 include/scsi/libiscsi.h | 107 include/scsi/scsi.h | 1 include/scsi/scsi_device.h | 23 include/scsi/scsi_dh.h | 59 include/scsi/scsi_host.h | 2 include/scsi/scsi_transport_fc.h | 4 include/scsi/scsi_transport_iscsi.h | 93 include/sound/core.h | 8 include/sound/emu10k1.h | 1 include/sound/soc-dapm.h | 25 include/sound/soc.h | 73 include/sound/uda1341.h | 2 include/sound/version.h | 4 include/xen/events.h | 4 include/xen/grant_table.h | 3 include/xen/hvc-console.h | 9 include/xen/interface/elfnote.h | 20 include/xen/interface/io/fbif.h | 29 include/xen/interface/io/kbdif.h | 2 include/xen/interface/memory.h | 12 include/xen/xen-ops.h | 6 init/do_mounts.c | 3 init/main.c | 17 kernel/Makefile | 18 kernel/backtracetest.c | 48 kernel/cpu.c | 14 kernel/exit.c | 5 kernel/fork.c | 7 kernel/hrtimer.c | 2 kernel/kthread.c | 29 kernel/lockdep.c | 33 kernel/marker.c | 30 kernel/mutex-debug.c | 2 kernel/mutex.c | 4 kernel/panic.c | 77 kernel/pid.c | 1 kernel/pm_qos_params.c | 7 kernel/power/disk.c | 22 kernel/power/main.c | 6 kernel/power/user.c | 10 kernel/printk.c | 9 kernel/ptrace.c | 15 kernel/rcuclassic.c | 30 kernel/rcupdate.c | 71 kernel/rcupreempt.c | 419 kernel/rcupreempt_trace.c | 1 kernel/rcutorture.c | 999 - kernel/rtmutex-tester.c | 442 kernel/sched.c | 65 kernel/sched_trace.h | 41 kernel/semaphore.c | 19 kernel/spinlock.c | 2 kernel/stop_machine.c | 282 kernel/sysctl.c | 23 kernel/test_kprobes.c | 228 kernel/timer.c | 10 kernel/trace/Kconfig | 135 kernel/trace/Makefile | 24 kernel/trace/ftrace.c | 1553 + kernel/trace/trace.c | 3131 +++ kernel/trace/trace.h | 333 kernel/trace/trace_functions.c | 78 kernel/trace/trace_irqsoff.c | 486 kernel/trace/trace_mmiotrace.c | 295 kernel/trace/trace_sched_switch.c | 286 kernel/trace/trace_sched_wakeup.c | 447 kernel/trace/trace_selftest.c | 563 kernel/trace/trace_selftest_dynamic.c | 7 kernel/trace/trace_sysprof.c | 363 lib/Kconfig.debug | 77 lib/Makefile | 10 lib/bitmap.c | 22 lib/kobject.c | 80 lib/locking-selftest-hardirq.h | 9 lib/locking-selftest-mutex.h | 11 lib/locking-selftest-rlock-hardirq.h | 2 lib/locking-selftest-rlock-softirq.h | 2 lib/locking-selftest-rlock.h | 14 lib/locking-selftest-rsem.h | 14 lib/locking-selftest-softirq.h | 9 lib/locking-selftest-spin-hardirq.h | 2 lib/locking-selftest-spin-softirq.h | 2 lib/locking-selftest-spin.h | 11 lib/locking-selftest-wlock-hardirq.h | 2 lib/locking-selftest-wlock-softirq.h | 2 lib/locking-selftest-wlock.h | 14 lib/locking-selftest-wsem.h | 14 lib/locking-selftest.c | 1218 - lib/smp_processor_id.c | 6 lib/swiotlb.c | 2 lib/textsearch.c | 1 localversion-next | 1 mm/migrate.c | 2 mm/page-writeback.c | 10 mm/page_alloc.c | 5 mm/slub.c | 4 net/802/psnap.c | 1 net/8021q/vlan.c | 1 net/9p/trans_virtio.c | 21 net/atm/atm_sysfs.c | 2 net/bluetooth/hci_core.c | 2 net/bluetooth/hci_sysfs.c | 14 net/bridge/br_device.c | 11 net/bridge/br_fdb.c | 1 net/bridge/br_forward.c | 2 net/bridge/br_input.c | 10 net/bridge/br_private.h | 1 net/bridge/br_stp.c | 1 net/core/net-sysfs.c | 12 net/core/rtnetlink.c | 20 net/core/sysctl_net_core.c | 39 net/ieee80211/ieee80211_rx.c | 2 net/ieee80211/ieee80211_tx.c | 86 net/ieee80211/ieee80211_wx.c | 89 net/ipv4/ip_fragment.c | 34 net/ipv4/ip_gre.c | 32 net/ipv4/ipip.c | 22 net/ipv4/ipmr.c | 29 net/ipv6/ip6_tunnel.c | 26 net/ipv6/ip6mr.c | 22 net/ipv6/reassembly.c | 61 net/ipv6/sit.c | 24 net/ipv6/sysctl_net_ipv6.c | 29 net/irda/irnet/irnet.h | 1 net/irda/irnet/irnet_ppp.c | 57 net/irda/irnet/irnet_ppp.h | 7 net/mac80211/Kconfig | 14 net/mac80211/Makefile | 2 net/mac80211/aes_ccm.c | 2 net/mac80211/aes_ccm.h | 2 net/mac80211/cfg.c | 6 net/mac80211/debugfs.c | 43 net/mac80211/debugfs_key.c | 8 net/mac80211/debugfs_netdev.c | 11 net/mac80211/debugfs_sta.c | 56 net/mac80211/ieee80211_i.h | 91 net/mac80211/iface.c | 6 net/mac80211/key.c | 11 net/mac80211/key.h | 17 net/mac80211/main.c | 327 net/mac80211/mesh.c | 38 net/mac80211/mesh.h | 2 net/mac80211/mesh_hwmp.c | 2 net/mac80211/mesh_pathtbl.c | 53 net/mac80211/mesh_plink.c | 88 net/mac80211/michael.c | 112 net/mac80211/michael.h | 8 net/mac80211/mlme.c | 225 net/mac80211/rate.c | 12 net/mac80211/rate.h | 33 net/mac80211/rc80211_pid.h | 4 net/mac80211/rc80211_pid_algo.c | 22 net/mac80211/rc80211_pid_debugfs.c | 8 net/mac80211/rx.c | 291 net/mac80211/sta_info.c | 22 net/mac80211/sta_info.h | 80 net/mac80211/tkip.c | 229 net/mac80211/tkip.h | 8 net/mac80211/tx.c | 863 net/mac80211/util.c | 59 net/mac80211/wep.c | 19 net/mac80211/wep.h | 2 net/mac80211/wext.c | 28 net/mac80211/wme.c | 147 net/mac80211/wme.h | 2 net/mac80211/wpa.c | 131 net/netfilter/nf_conntrack_helper.c | 1 net/netfilter/nf_conntrack_netlink.c | 1 net/netlabel/netlabel_domainhash.c | 3 net/rfkill/rfkill.c | 6 net/sctp/associola.c | 3 net/sctp/proc.c | 141 net/sctp/protocol.c | 3 net/sctp/sm_sideeffect.c | 17 net/sctp/socket.c | 314 net/sunrpc/auth_gss/Makefile | 4 net/sunrpc/auth_gss/auth_gss.c | 14 net/sunrpc/auth_gss/gss_krb5_crypto.c | 64 net/sunrpc/auth_gss/gss_krb5_seal.c | 26 net/sunrpc/auth_gss/gss_krb5_unseal.c | 16 net/sunrpc/auth_gss/gss_krb5_wrap.c | 79 net/sunrpc/auth_gss/gss_mech_switch.c | 14 net/sunrpc/auth_gss/svcauth_gss.c | 15 net/sunrpc/xprtrdma/svc_rdma.c | 40 net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 84 net/sunrpc/xprtrdma/svc_rdma_sendto.c | 125 net/sunrpc/xprtrdma/svc_rdma_transport.c | 195 net/sysctl_net.c | 30 net/tipc/bcast.c | 4 net/tipc/cluster.c | 2 net/tipc/config.c | 11 net/tipc/core.c | 13 net/tipc/core.h | 126 net/tipc/dbg.c | 231 net/tipc/dbg.h | 12 net/tipc/discover.c | 14 net/tipc/discover.h | 2 net/tipc/link.c | 80 net/tipc/msg.c | 13 net/tipc/msg.h | 42 net/tipc/name_distr.c | 6 net/tipc/name_table.c | 14 net/tipc/net.c | 10 net/tipc/net.h | 2 net/tipc/netlink.c | 16 net/tipc/node.c | 26 net/tipc/port.c | 79 net/tipc/ref.c | 12 net/tipc/socket.c | 5 net/tipc/subscr.c | 247 net/tipc/subscr.h | 34 net/wanrouter/wanmain.c | 6 net/wanrouter/wanproc.c | 2 net/wireless/core.c | 36 net/wireless/nl80211.c | 2 net/wireless/radiotap.c | 16 net/wireless/wext.c | 2 samples/firmware_class/firmware_sample_firmware_class.c | 4 scripts/Makefile.fwinst | 31 scripts/Makefile.lib | 3 scripts/mod/file2alias.c | 36 security/commoncap.c | 3 security/dummy.c | 3 security/security.c | 5 security/selinux/hooks.c | 126 security/selinux/include/audit.h | 4 security/selinux/include/avc.h | 15 security/selinux/include/objsec.h | 1 security/selinux/include/security.h | 5 security/selinux/netnode.c | 1 security/selinux/netport.c | 3 security/selinux/selinuxfs.c | 10 security/selinux/ss/avtab.c | 2 security/selinux/ss/context.h | 27 security/selinux/ss/mls.c | 19 security/selinux/ss/mls.h | 3 security/selinux/ss/policydb.c | 15 security/selinux/ss/services.c | 277 security/selinux/ss/sidtab.c | 58 security/selinux/ss/sidtab.h | 7 security/smack/smack_lsm.c | 5 sound/Kconfig | 34 sound/aoa/Kconfig | 11 sound/aoa/codecs/Kconfig | 4 sound/aoa/fabrics/Kconfig | 1 sound/aoa/soundbus/Kconfig | 1 sound/arm/Kconfig | 21 sound/arm/sa11xx-uda1341.c | 2 sound/core/Kconfig | 29 sound/core/init.c | 72 sound/core/memalloc.c | 62 sound/core/sound.c | 15 sound/drivers/Kconfig | 91 sound/drivers/ml403-ac97cr.c | 4 sound/drivers/vx/vx_core.c | 4 sound/i2c/cs8427.c | 6 sound/i2c/l3/uda1341.c | 2 sound/isa/Kconfig | 51 sound/isa/ad1848/ad1848.c | 6 sound/isa/adlib.c | 12 sound/isa/cs423x/cs4231.c | 9 sound/isa/cs423x/cs4236.c | 8 sound/isa/es1688/es1688.c | 6 sound/isa/gus/gusclassic.c | 8 sound/isa/gus/gusextreme.c | 12 sound/isa/sb/Makefile | 2 sound/isa/sb/sb8.c | 4 sound/mips/Kconfig | 14 sound/oss/Kconfig | 49 sound/oss/msnd.c | 2 sound/oss/msnd.h | 2 sound/oss/msnd_classic.h | 2 sound/oss/msnd_pinnacle.c | 5 sound/oss/msnd_pinnacle.h | 2 sound/oss/soundcard.c | 14 sound/parisc/Kconfig | 13 sound/pci/Kconfig | 116 sound/pci/Makefile | 2 sound/pci/ac97/Makefile | 12 sound/pci/ac97/ac97_codec.c | 2 sound/pci/ac97/ac97_patch.c | 76 sound/pci/ac97/ak4531_codec.c | 508 sound/pci/ak4531_codec.c | 488 sound/pci/au88x0/au88x0_game.c | 2 sound/pci/azt3328.c | 1192 - sound/pci/azt3328.h | 197 sound/pci/emu10k1/emu10k1_main.c | 1 sound/pci/emu10k1/emumixer.c | 13 sound/pci/emu10k1/memory.c | 66 sound/pci/hda/hda_codec.c | 2 sound/pci/hda/hda_hwdep.c | 2 sound/pci/hda/hda_intel.c | 136 sound/pci/hda/patch_realtek.c | 530 sound/pci/ice1712/envy24ht.h | 10 sound/pci/ice1712/ice1712.h | 2 sound/pci/ice1712/ice1724.c | 213 sound/pci/korg1212/korg1212-firmware.h | 987 - sound/pci/korg1212/korg1212.c | 18 sound/pci/maestro3.c | 228 sound/pci/oxygen/hifier.c | 33 sound/pci/oxygen/oxygen.c | 76 sound/pci/oxygen/oxygen.h | 14 sound/pci/oxygen/oxygen_io.c | 22 sound/pci/oxygen/oxygen_lib.c | 106 sound/pci/oxygen/oxygen_pcm.c | 53 sound/pci/oxygen/virtuoso.c | 252 sound/pci/pcxhr/pcxhr.c | 4 sound/pci/pcxhr/pcxhr_core.c | 22 sound/pci/riptide/riptide.c | 10 sound/pci/trident/trident_memory.c | 178 sound/pci/vx222/vx222_ops.c | 2 sound/pci/ymfpci/ymfpci_image.h | 1565 - sound/pci/ymfpci/ymfpci_main.c | 74 sound/pcmcia/Kconfig | 15 sound/ppc/Kconfig | 26 sound/sh/Kconfig | 16 sound/soc/Kconfig | 18 sound/soc/Makefile | 3 sound/soc/at32/Kconfig | 34 sound/soc/at32/Makefile | 11 sound/soc/at32/at32-pcm.c | 491 sound/soc/at32/at32-pcm.h | 79 sound/soc/at32/at32-ssc.c | 849 sound/soc/at32/at32-ssc.h | 59 sound/soc/at32/playpaq_wm8510.c | 524 sound/soc/at91/Kconfig | 2 sound/soc/at91/eti_b1_wm8731.c | 17 sound/soc/codecs/Kconfig | 19 sound/soc/codecs/Makefile | 6 sound/soc/codecs/ac97.c | 3 sound/soc/codecs/tlv320aic3x.c | 319 sound/soc/codecs/tlv320aic3x.h | 51 sound/soc/codecs/uda1380.c | 852 sound/soc/codecs/uda1380.h | 89 sound/soc/codecs/wm8510.c | 836 sound/soc/codecs/wm8510.h | 103 sound/soc/codecs/wm8731.c | 44 sound/soc/codecs/wm8750.c | 52 sound/soc/codecs/wm8753.c | 53 sound/soc/codecs/wm8990.c | 1645 + sound/soc/codecs/wm8990.h | 832 sound/soc/codecs/wm9712.c | 46 sound/soc/codecs/wm9713.c | 44 sound/soc/davinci/Kconfig | 2 sound/soc/davinci/davinci-evm.c | 14 sound/soc/fsl/Kconfig | 2 sound/soc/omap/n810.c | 35 sound/soc/pxa/Kconfig | 11 sound/soc/pxa/Makefile | 3 sound/soc/pxa/corgi.c | 16 sound/soc/pxa/em-x270.c | 102 sound/soc/pxa/poodle.c | 14 sound/soc/pxa/pxa2xx-i2s.c | 15 sound/soc/pxa/spitz.c | 17 sound/soc/pxa/tosa.c | 17 sound/soc/s3c24xx/Kconfig | 4 sound/soc/s3c24xx/neo1973_wm8753.c | 67 sound/soc/s3c24xx/s3c2443-ac97.c | 14 sound/soc/s3c24xx/s3c24xx-i2s.c | 10 sound/soc/s3c24xx/s3c24xx-pcm.c | 4 sound/soc/s3c24xx/smdk2443_wm9710.c | 3 sound/soc/sh/Kconfig | 5 sound/soc/soc-core.c | 201 sound/soc/soc-dapm.c | 171 sound/sound_core.c | 10 sound/sparc/Kconfig | 17 sound/spi/Kconfig | 13 sound/usb/Kconfig | 16 sound/usb/caiaq/caiaq-audio.c | 1 sound/usb/caiaq/caiaq-device.c | 12 sound/usb/caiaq/caiaq-device.h | 1 sound/usb/usbquirks.h | 33 tests/Kconfig | 80 tests/Makefile | 10 tests/backtracetest.c | 48 tests/lkdtm.c | 345 tests/locking-selftest-hardirq.h | 9 tests/locking-selftest-mutex.h | 11 tests/locking-selftest-rlock-hardirq.h | 2 tests/locking-selftest-rlock-softirq.h | 2 tests/locking-selftest-rlock.h | 14 tests/locking-selftest-rsem.h | 14 tests/locking-selftest-softirq.h | 9 tests/locking-selftest-spin-hardirq.h | 2 tests/locking-selftest-spin-softirq.h | 2 tests/locking-selftest-spin.h | 11 tests/locking-selftest-wlock-hardirq.h | 2 tests/locking-selftest-wlock-softirq.h | 2 tests/locking-selftest-wlock.h | 14 tests/locking-selftest-wsem.h | 14 tests/locking-selftest.c | 1218 + tests/rcutorture.c | 1027 + tests/rtmutex-tester.c | 442 tests/test_kprobes.c | 228 virt/kvm/coalesced_mmio.c | 156 virt/kvm/coalesced_mmio.h | 23 virt/kvm/ioapic.c | 44 virt/kvm/iodev.h | 8 virt/kvm/kvm_main.c | 130 3077 files changed, 225699 insertions(+), 110440 deletions(-) diff -puN Documentation/00-INDEX~linux-next Documentation/00-INDEX --- a/Documentation/00-INDEX~linux-next +++ a/Documentation/00-INDEX @@ -179,8 +179,6 @@ ia64/ - directory with info about Linux on Intel 64 bit architecture. infiniband/ - directory with documents concerning Linux InfiniBand support. -initrd.txt - - how to use the RAM disk as an initial/temporary root filesystem. input/ - info on Linux input device support. io_ordering.txt diff -puN /dev/null Documentation/ABI/testing/sysfs-bus-css --- /dev/null +++ a/Documentation/ABI/testing/sysfs-bus-css @@ -0,0 +1,35 @@ +What: /sys/bus/css/devices/.../type +Date: March 2008 +Contact: Cornelia Huck + linux-s390@vger.kernel.org +Description: Contains the subchannel type, as reported by the hardware. + This attribute is present for all subchannel types. + +What: /sys/bus/css/devices/.../modalias +Date: March 2008 +Contact: Cornelia Huck + linux-s390@vger.kernel.org +Description: Contains the module alias as reported with uevents. + It is of the format css:t and present for all + subchannel types. + +What: /sys/bus/css/drivers/io_subchannel/.../chpids +Date: December 2002 +Contact: Cornelia Huck + linux-s390@vger.kernel.org +Description: Contains the ids of the channel paths used by this + subchannel, as reported by the channel subsystem + during subchannel recognition. + Note: This is an I/O-subchannel specific attribute. +Users: s390-tools, HAL + +What: /sys/bus/css/drivers/io_subchannel/.../pimpampom +Date: December 2002 +Contact: Cornelia Huck + linux-s390@vger.kernel.org +Description: Contains the PIM/PAM/POM values, as reported by the + channel subsystem when last queried by the common I/O + layer (this implies that this attribute is not neccessarily + in sync with the values current in the channel subsystem). + Note: This is an I/O-subchannel specific attribute. +Users: s390-tools, HAL diff -puN /dev/null Documentation/ABI/testing/sysfs-dev --- /dev/null +++ a/Documentation/ABI/testing/sysfs-dev @@ -0,0 +1,20 @@ +What: /sys/dev +Date: April 2008 +KernelVersion: 2.6.26 +Contact: Dan Williams +Description: The /sys/dev tree provides a method to look up the sysfs + path for a device using the information returned from + stat(2). There are two directories, 'block' and 'char', + beneath /sys/dev containing symbolic links with names of + the form ":". These links point to the + corresponding sysfs path for the given device. + + Example: + $ readlink /sys/dev/block/8:32 + ../../block/sdc + + Entries in /sys/dev/char and /sys/dev/block will be + dynamically created and destroyed as devices enter and + leave the system. + +Users: mdadm diff -puN Documentation/DocBook/kernel-locking.tmpl~linux-next Documentation/DocBook/kernel-locking.tmpl --- a/Documentation/DocBook/kernel-locking.tmpl~linux-next +++ a/Documentation/DocBook/kernel-locking.tmpl @@ -219,10 +219,10 @@ - Three Main Types of Kernel Locks: Spinlocks, Mutexes and Semaphores + Two Main Types of Kernel Locks: Spinlocks and Mutexes - There are three main types of kernel locks. The fundamental type + There are two main types of kernel locks. The fundamental type is the spinlock (include/asm/spinlock.h), which is a very simple single-holder lock: if you can't get the @@ -240,14 +240,6 @@ use a spinlock instead. - The third type is a semaphore - (include/linux/semaphore.h): it - can have more than one holder at any time (the number decided at - initialization time), although it is most commonly used as a - single-holder lock (a mutex). If you can't get a semaphore, your - task will be suspended and later on woken up - just like for mutexes. - - Neither type of lock is recursive: see . @@ -278,7 +270,7 @@ - Semaphores still exist, because they are required for + Mutexes still exist, because they are required for synchronization between user contexts, as we will see below. @@ -289,18 +281,17 @@ If you have a data structure which is only ever accessed from - user context, then you can use a simple semaphore - (linux/linux/semaphore.h) to protect it. This - is the most trivial case: you initialize the semaphore to the number - of resources available (usually 1), and call - down_interruptible() to grab the semaphore, and - up() to release it. There is also a - down(), which should be avoided, because it + user context, then you can use a simple mutex + (include/linux/mutex.h) to protect it. This + is the most trivial case: you initialize the mutex. Then you can + call mutex_lock_interruptible() to grab the mutex, + and mutex_unlock() to release it. There is also a + mutex_lock(), which should be avoided, because it will not return if a signal is received. - Example: linux/net/core/netfilter.c allows + Example: net/netfilter/nf_sockopt.c allows registration of new setsockopt() and getsockopt() calls, with nf_register_sockopt(). Registration and @@ -515,7 +506,7 @@ If you are in a process context (any syscall) and want to - lock other process out, use a semaphore. You can take a semaphore + lock other process out, use a mutex. You can take a mutex and sleep (copy_from_user*( or kmalloc(x,GFP_KERNEL)). @@ -662,7 +653,7 @@ SLBH SLBH SLBH -DI +MLI None @@ -692,8 +683,8 @@ spin_lock_bh -DI -down_interruptible +MLI +mutex_lock_interruptible @@ -1310,7 +1301,7 @@ as Alan Cox says, Lock data, not There is a coding bug where a piece of code tries to grab a spinlock twice: it will spin forever, waiting for the lock to - be released (spinlocks, rwlocks and semaphores are not + be released (spinlocks, rwlocks and mutexes are not recursive in Linux). This is trivial to diagnose: not a stay-up-five-nights-talk-to-fluffy-code-bunnies kind of problem. @@ -1335,7 +1326,7 @@ as Alan Cox says, Lock data, not This complete lockup is easy to diagnose: on SMP boxes the - watchdog timer or compiling with DEBUG_SPINLOCKS set + watchdog timer or compiling with DEBUG_SPINLOCK set (include/linux/spinlock.h) will show this up immediately when it happens. @@ -1558,7 +1549,7 @@ the amount of locking which needs to be Read/Write Lock Variants - Both spinlocks and semaphores have read/write variants: + Both spinlocks and mutexes have read/write variants: rwlock_t and struct rw_semaphore. These divide users into two classes: the readers and the writers. If you are only reading the data, you can get a read lock, but to write to @@ -1681,7 +1672,7 @@ the amount of locking which needs to be #include <linux/slab.h> #include <linux/string.h> +#include <linux/rcupdate.h> - #include <linux/semaphore.h> + #include <linux/mutex.h> #include <asm/errno.h> struct object @@ -1913,7 +1904,7 @@ machines due to caching. - put_user() + put_user() @@ -1927,13 +1918,13 @@ machines due to caching. - down_interruptible() and - down() + mutex_lock_interruptible() and + mutex_lock() - There is a down_trylock() which can be + There is a mutex_trylock() which can be used inside interrupt context, as it will not sleep. - up() will also never sleep. + mutex_unlock() will also never sleep. @@ -2023,7 +2014,7 @@ machines due to caching. Prior to 2.5, or when CONFIG_PREEMPT is unset, processes in user context inside the kernel would not - preempt each other (ie. you had that CPU until you have it up, + preempt each other (ie. you had that CPU until you gave it up, except for interrupts). With the addition of CONFIG_PREEMPT in 2.5.4, this changed: when in user context, higher priority tasks can "cut in": spinlocks diff -puN Documentation/RCU/NMI-RCU.txt~linux-next Documentation/RCU/NMI-RCU.txt --- a/Documentation/RCU/NMI-RCU.txt~linux-next +++ a/Documentation/RCU/NMI-RCU.txt @@ -93,6 +93,9 @@ Since NMI handlers disable preemption, s not to return until all ongoing NMI handlers exit. It is therefore safe to free up the handler's data as soon as synchronize_sched() returns. +Important note: for this to work, the architecture in question must +invoke irq_enter() and irq_exit() on NMI entry and exit, respectively. + Answer to Quick Quiz diff -puN Documentation/RCU/RTFP.txt~linux-next Documentation/RCU/RTFP.txt --- a/Documentation/RCU/RTFP.txt~linux-next +++ a/Documentation/RCU/RTFP.txt @@ -52,6 +52,10 @@ of each iteration. Unfortunately, chaot structured data, such as the matrices used in scientific programs, and is thus inapplicable to most data structures in operating-system kernels. +In 1992, Henry (now Alexia) Massalin completed a dissertation advising +parallel programmers to defer processing when feasible to simplify +synchronization. RCU makes extremely heavy use of this advice. + In 1993, Jacobson [Jacobson93] verbally described what is perhaps the simplest deferred-free technique: simply waiting a fixed amount of time before freeing blocks awaiting deferred free. Jacobson did not describe @@ -138,6 +142,13 @@ blocking in read-side critical sections Robert Olsson described an RCU-protected trie-hash combination [RobertOlsson2006a]. +2007 saw the journal version of the award-winning RCU paper from 2006 +[ThomasEHart2007a], as well as a paper demonstrating use of Promela +and Spin to mechanically verify an optimization to Oleg Nesterov's +QRCU [PaulEMcKenney2007QRCUspin], a design document describing +preemptible RCU [PaulEMcKenney2007PreemptibleRCU], and the three-part +LWN "What is RCU?" series [PaulEMcKenney2007WhatIsRCUFundamentally, +PaulEMcKenney2008WhatIsRCUUsage, and PaulEMcKenney2008WhatIsRCUAPI]. Bibtex Entries @@ -202,6 +213,20 @@ Bibtex Entries ,Year="1991" } +@phdthesis{HMassalinPhD +,author="H. Massalin" +,title="Synthesis: An Efficient Implementation of Fundamental Operating +System Services" +,school="Columbia University" +,address="New York, NY" +,year="1992" +,annotation=" + Mondo optimizing compiler. + Wait-free stuff. + Good advice: defer work to avoid synchronization. +" +} + @unpublished{Jacobson93 ,author="Van Jacobson" ,title="Avoid Read-Side Locking Via Delayed Free" @@ -635,3 +660,86 @@ Revised: " } +@unpublished{PaulEMcKenney2007PreemptibleRCU +,Author="Paul E. McKenney" +,Title="The design of preemptible read-copy-update" +,month="October" +,day="8" +,year="2007" +,note="Available: +\url{http://lwn.net/Articles/253651/} +[Viewed October 25, 2007]" +,annotation=" + LWN article describing the design of preemptible RCU. +" +} + +######################################################################## +# +# "What is RCU?" LWN series. +# + +@unpublished{PaulEMcKenney2007WhatIsRCUFundamentally +,Author="Paul E. McKenney and Jonathan Walpole" +,Title="What is {RCU}, Fundamentally?" +,month="December" +,day="17" +,year="2007" +,note="Available: +\url{http://lwn.net/Articles/262464/} +[Viewed December 27, 2007]" +,annotation=" + Lays out the three basic components of RCU: (1) publish-subscribe, + (2) wait for pre-existing readers to complete, and (2) maintain + multiple versions. +" +} + +@unpublished{PaulEMcKenney2008WhatIsRCUUsage +,Author="Paul E. McKenney" +,Title="What is {RCU}? Part 2: Usage" +,month="January" +,day="4" +,year="2008" +,note="Available: +\url{http://lwn.net/Articles/263130/} +[Viewed January 4, 2008]" +,annotation=" + Lays out six uses of RCU: + 1. RCU is a Reader-Writer Lock Replacement + 2. RCU is a Restricted Reference-Counting Mechanism + 3. RCU is a Bulk Reference-Counting Mechanism + 4. RCU is a Poor Man's Garbage Collector + 5. RCU is a Way of Providing Existence Guarantees + 6. RCU is a Way of Waiting for Things to Finish +" +} + +@unpublished{PaulEMcKenney2008WhatIsRCUAPI +,Author="Paul E. McKenney" +,Title="{RCU} part 3: the {RCU} {API}" +,month="January" +,day="17" +,year="2008" +,note="Available: +\url{http://lwn.net/Articles/264090/} +[Viewed January 10, 2008]" +,annotation=" + Gives an overview of the Linux-kernel RCU API and a brief annotated RCU + bibliography. +" +} + +@article{DinakarGuniguntala2008IBMSysJ +,author="D. Guniguntala and P. E. McKenney and J. Triplett and J. Walpole" +,title="The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with {Linux}" +,Year="2008" +,Month="April" +,journal="IBM Systems Journal" +,volume="47" +,number="2" +,pages="@@-@@" +,annotation=" + RCU, realtime RCU, sleepable RCU, performance. +" +} diff -puN Documentation/RCU/checklist.txt~linux-next Documentation/RCU/checklist.txt --- a/Documentation/RCU/checklist.txt~linux-next +++ a/Documentation/RCU/checklist.txt @@ -13,10 +13,13 @@ over a rather long period of time, but i detailed performance measurements show that RCU is nonetheless the right tool for the job. - The other exception would be where performance is not an issue, - and RCU provides a simpler implementation. An example of this - situation is the dynamic NMI code in the Linux 2.6 kernel, - at least on architectures where NMIs are rare. + Another exception is where performance is not an issue, and RCU + provides a simpler implementation. An example of this situation + is the dynamic NMI code in the Linux 2.6 kernel, at least on + architectures where NMIs are rare. + + Yet another exception is where the low real-time latency of RCU's + read-side primitives is critically important. 1. Does the update code have proper mutual exclusion? @@ -39,9 +42,10 @@ over a rather long period of time, but i 2. Do the RCU read-side critical sections make proper use of rcu_read_lock() and friends? These primitives are needed - to suppress preemption (or bottom halves, in the case of - rcu_read_lock_bh()) in the read-side critical sections, - and are also an excellent aid to readability. + to prevent grace periods from ending prematurely, which + could result in data being unceremoniously freed out from + under your read-side code, which can greatly increase the + actuarial risk of your kernel. As a rough rule of thumb, any dereference of an RCU-protected pointer must be covered by rcu_read_lock() or rcu_read_lock_bh() @@ -54,15 +58,30 @@ over a rather long period of time, but i be running while updates are in progress. There are a number of ways to handle this concurrency, depending on the situation: - a. Make updates appear atomic to readers. For example, + a. Use the RCU variants of the list and hlist update + primitives to add, remove, and replace elements on an + RCU-protected list. Alternatively, use the RCU-protected + trees that have been added to the Linux kernel. + + This is almost always the best approach. + + b. Proceed as in (a) above, but also maintain per-element + locks (that are acquired by both readers and writers) + that guard per-element state. Of course, fields that + the readers refrain from accessing can be guarded by the + update-side lock. + + This works quite well, also. + + c. Make updates appear atomic to readers. For example, pointer updates to properly aligned fields will appear atomic, as will individual atomic primitives. Operations performed under a lock and sequences of multiple atomic primitives will -not- appear to be atomic. - This is almost always the best approach. + This can work, but is starting to get a bit tricky. - b. Carefully order the updates and the reads so that + d. Carefully order the updates and the reads so that readers see valid data at all phases of the update. This is often more difficult than it sounds, especially given modern CPUs' tendency to reorder memory references. @@ -123,18 +142,22 @@ over a rather long period of time, but i when publicizing a pointer to a structure that can be traversed by an RCU read-side critical section. -5. If call_rcu(), or a related primitive such as call_rcu_bh(), - is used, the callback function must be written to be called - from softirq context. In particular, it cannot block. +5. If call_rcu(), or a related primitive such as call_rcu_bh() or + call_rcu_sched(), is used, the callback function must be + written to be called from softirq context. In particular, + it cannot block. 6. Since synchronize_rcu() can block, it cannot be called from - any sort of irq context. + any sort of irq context. Ditto for synchronize_sched() and + synchronize_srcu(). 7. If the updater uses call_rcu(), then the corresponding readers must use rcu_read_lock() and rcu_read_unlock(). If the updater uses call_rcu_bh(), then the corresponding readers must use - rcu_read_lock_bh() and rcu_read_unlock_bh(). Mixing things up - will result in confusion and broken kernels. + rcu_read_lock_bh() and rcu_read_unlock_bh(). If the updater + uses call_rcu_sched(), then the corresponding readers must + disable preemption. Mixing things up will result in confusion + and broken kernels. One exception to this rule: rcu_read_lock() and rcu_read_unlock() may be substituted for rcu_read_lock_bh() and rcu_read_unlock_bh() @@ -143,9 +166,9 @@ over a rather long period of time, but i such cases is a must, of course! And the jury is still out on whether the increased speed is worth it. -8. Although synchronize_rcu() is a bit slower than is call_rcu(), - it usually results in simpler code. So, unless update - performance is critically important or the updaters cannot block, +8. Although synchronize_rcu() is slower than is call_rcu(), it + usually results in simpler code. So, unless update performance + is critically important or the updaters cannot block, synchronize_rcu() should be used in preference to call_rcu(). An especially important property of the synchronize_rcu() @@ -187,23 +210,23 @@ over a rather long period of time, but i number of updates per grace period. 9. All RCU list-traversal primitives, which include - list_for_each_rcu(), list_for_each_entry_rcu(), + rcu_dereference(), list_for_each_rcu(), list_for_each_entry_rcu(), list_for_each_continue_rcu(), and list_for_each_safe_rcu(), - must be within an RCU read-side critical section. RCU + must be either within an RCU read-side critical section or + must be protected by appropriate update-side locks. RCU read-side critical sections are delimited by rcu_read_lock() and rcu_read_unlock(), or by similar primitives such as rcu_read_lock_bh() and rcu_read_unlock_bh(). - Use of the _rcu() list-traversal primitives outside of an - RCU read-side critical section causes no harm other than - a slight performance degradation on Alpha CPUs. It can - also be quite helpful in reducing code bloat when common - code is shared between readers and updaters. + The reason that it is permissible to use RCU list-traversal + primitives when the update-side lock is held is that doing so + can be quite helpful in reducing code bloat when common code is + shared between readers and updaters. 10. Conversely, if you are in an RCU read-side critical section, - you -must- use the "_rcu()" variants of the list macros. - Failing to do so will break Alpha and confuse people reading - your code. + and you don't hold the appropriate update-side lock, you -must- + use the "_rcu()" variants of the list macros. Failing to do so + will break Alpha and confuse people reading your code. 11. Note that synchronize_rcu() -only- guarantees to wait until all currently executing rcu_read_lock()-protected RCU read-side @@ -230,6 +253,14 @@ over a rather long period of time, but i must use whatever locking or other synchronization is required to safely access and/or modify that data structure. + RCU callbacks are -usually- executed on the same CPU that executed + the corresponding call_rcu(), call_rcu_bh(), or call_rcu_sched(), + but are by -no- means guaranteed to be. For example, if a given + CPU goes offline while having an RCU callback pending, then that + RCU callback will execute on some surviving CPU. (If this was + not the case, a self-spawning RCU callback would prevent the + victim CPU from ever going offline.) + 14. SRCU (srcu_read_lock(), srcu_read_unlock(), and synchronize_srcu()) may only be invoked from process context. Unlike other forms of RCU, it -is- permissible to block in an SRCU read-side critical diff -puN Documentation/RCU/whatisRCU.txt~linux-next Documentation/RCU/whatisRCU.txt --- a/Documentation/RCU/whatisRCU.txt~linux-next +++ a/Documentation/RCU/whatisRCU.txt @@ -1,3 +1,11 @@ +Please note that the "What is RCU?" LWN series is an excellent place +to start learning about RCU: + +1. What is RCU, Fundamentally? http://lwn.net/Articles/262464/ +2. What is RCU? Part 2: Usage http://lwn.net/Articles/263130/ +3. RCU part 3: the RCU API http://lwn.net/Articles/264090/ + + What is RCU? RCU is a synchronization mechanism that was added to the Linux kernel @@ -772,26 +780,18 @@ Linux-kernel source code, but it helps t APIs, since there does not appear to be a way to categorize them in docbook. Here is the list, by category. -Markers for RCU read-side critical sections: - - rcu_read_lock - rcu_read_unlock - rcu_read_lock_bh - rcu_read_unlock_bh - srcu_read_lock - srcu_read_unlock - RCU pointer/list traversal: rcu_dereference + list_for_each_entry_rcu + hlist_for_each_entry_rcu + list_for_each_rcu (to be deprecated in favor of list_for_each_entry_rcu) - list_for_each_entry_rcu list_for_each_continue_rcu (to be deprecated in favor of new list_for_each_entry_continue_rcu) - hlist_for_each_entry_rcu -RCU pointer update: +RCU pointer/list update: rcu_assign_pointer list_add_rcu @@ -799,16 +799,36 @@ RCU pointer update: list_del_rcu list_replace_rcu hlist_del_rcu + hlist_add_after_rcu + hlist_add_before_rcu hlist_add_head_rcu + hlist_replace_rcu + list_splice_init_rcu() -RCU grace period: +RCU: Critical sections Grace period Barrier + + rcu_read_lock synchronize_net rcu_barrier + rcu_read_unlock synchronize_rcu + call_rcu + + +bh: Critical sections Grace period Barrier + + rcu_read_lock_bh call_rcu_bh rcu_barrier_bh + rcu_read_unlock_bh + + +sched: Critical sections Grace period Barrier + + [preempt_disable] synchronize_sched rcu_barrier_sched + [and friends] call_rcu_sched + + +SRCU: Critical sections Grace period Barrier + + srcu_read_lock synchronize_srcu N/A + srcu_read_unlock - synchronize_net - synchronize_sched - synchronize_rcu - synchronize_srcu - call_rcu - call_rcu_bh See the comment headers in the source code (or the docbook generated from them) for more information. diff -puN /dev/null Documentation/early-userspace/00-INDEX --- /dev/null +++ a/Documentation/early-userspace/00-INDEX @@ -0,0 +1,8 @@ +00-INDEX + - this file +README + - explains what early userspace is +buffer_format.txt + - documents the initramfs buffer format +initrd.txt + - how to use the RAM disk as an initial/temporary root filesystem. diff -puN /dev/null Documentation/early-userspace/initrd.txt --- /dev/null +++ a/Documentation/early-userspace/initrd.txt @@ -0,0 +1,366 @@ +Using the initial RAM disk (initrd) +=================================== + +Written 1996,2000 by Werner Almesberger and + Hans Lermen + + +initrd provides the capability to load a RAM disk by the boot loader. +This RAM disk can then be mounted as the root file system and programs +can be run from it. Afterwards, a new root file system can be mounted +from a different device. The previous root (from initrd) is then moved +to a directory and can be subsequently unmounted. + +initrd is mainly designed to allow system startup to occur in two phases, +where the kernel comes up with a minimum set of compiled-in drivers, and +where additional modules are loaded from initrd. + +This document gives a brief overview of the use of initrd. A more detailed +discussion of the boot process can be found in [1]. + + +Operation +--------- + +When using initrd, the system typically boots as follows: + + 1) the boot loader loads the kernel and the initial RAM disk + 2) the kernel converts initrd into a "normal" RAM disk and + frees the memory used by initrd + 3) if the root device is not /dev/ram0, the old (deprecated) + change_root procedure is followed. see the "Obsolete root change + mechanism" section below. + 4) root device is mounted. if it is /dev/ram0, the initrd image is + then mounted as root + 5) /sbin/init is executed (this can be any valid executable, including + shell scripts; it is run with uid 0 and can do basically everything + init can do). + 6) init mounts the "real" root file system + 7) init places the root file system at the root directory using the + pivot_root system call + 8) init execs the /sbin/init on the new root filesystem, performing + the usual boot sequence + 9) the initrd file system is removed + +Note that changing the root directory does not involve unmounting it. +It is therefore possible to leave processes running on initrd during that +procedure. Also note that file systems mounted under initrd continue to +be accessible. + + +Boot command-line options +------------------------- + +initrd adds the following new options: + + initrd= (e.g. LOADLIN) + + Loads the specified file as the initial RAM disk. When using LILO, you + have to specify the RAM disk image file in /etc/lilo.conf, using the + INITRD configuration variable. + + noinitrd + + initrd data is preserved but it is not converted to a RAM disk and + the "normal" root file system is mounted. initrd data can be read + from /dev/initrd. Note that the data in initrd can have any structure + in this case and doesn't necessarily have to be a file system image. + This option is used mainly for debugging. + + Note: /dev/initrd is read-only and it can only be used once. As soon + as the last process has closed it, all data is freed and /dev/initrd + can't be opened anymore. + + root=/dev/ram0 + + initrd is mounted as root, and the normal boot procedure is followed, + with the RAM disk mounted as root. + +Compressed cpio images +---------------------- + +Recent kernels have support for populating a ramdisk from a compressed cpio +archive. On such systems, the creation of a ramdisk image doesn't need to +involve special block devices or loopbacks; you merely create a directory on +disk with the desired initrd content, cd to that directory, and run (as an +example): + +find . | cpio --quiet -H newc -o | gzip -9 -n > /boot/imagefile.img + +Examining the contents of an existing image file is just as simple: + +mkdir /tmp/imagefile +cd /tmp/imagefile +gzip -cd /boot/imagefile.img | cpio -imd --quiet + +Installation +------------ + +First, a directory for the initrd file system has to be created on the +"normal" root file system, e.g. + +# mkdir /initrd + +The name is not relevant. More details can be found on the pivot_root(2) +man page. + +If the root file system is created during the boot procedure (i.e. if +you're building an install floppy), the root file system creation +procedure should create the /initrd directory. + +If initrd will not be mounted in some cases, its content is still +accessible if the following device has been created: + +# mknod /dev/initrd b 1 250 +# chmod 400 /dev/initrd + +Second, the kernel has to be compiled with RAM disk support and with +support for the initial RAM disk enabled. Also, at least all components +needed to execute programs from initrd (e.g. executable format and file +system) must be compiled into the kernel. + +Third, you have to create the RAM disk image. This is done by creating a +file system on a block device, copying files to it as needed, and then +copying the content of the block device to the initrd file. With recent +kernels, at least three types of devices are suitable for that: + + - a floppy disk (works everywhere but it's painfully slow) + - a RAM disk (fast, but allocates physical memory) + - a loopback device (the most elegant solution) + +We'll describe the loopback device method: + + 1) make sure loopback block devices are configured into the kernel + 2) create an empty file system of the appropriate size, e.g. + # dd if=/dev/zero of=initrd bs=300k count=1 + # mke2fs -F -m0 initrd + (if space is critical, you may want to use the Minix FS instead of Ext2) + 3) mount the file system, e.g. + # mount -t ext2 -o loop initrd /mnt + 4) create the console device: + # mkdir /mnt/dev + # mknod /mnt/dev/console c 5 1 + 5) copy all the files that are needed to properly use the initrd + environment. Don't forget the most important file, /sbin/init + Note that /sbin/init's permissions must include "x" (execute). + 6) correct operation the initrd environment can frequently be tested + even without rebooting with the command + # chroot /mnt /sbin/init + This is of course limited to initrds that do not interfere with the + general system state (e.g. by reconfiguring network interfaces, + overwriting mounted devices, trying to start already running demons, + etc. Note however that it is usually possible to use pivot_root in + such a chroot'ed initrd environment.) + 7) unmount the file system + # umount /mnt + 8) the initrd is now in the file "initrd". Optionally, it can now be + compressed + # gzip -9 initrd + +For experimenting with initrd, you may want to take a rescue floppy and +only add a symbolic link from /sbin/init to /bin/sh. Alternatively, you +can try the experimental newlib environment [2] to create a small +initrd. + +Finally, you have to boot the kernel and load initrd. Almost all Linux +boot loaders support initrd. Since the boot process is still compatible +with an older mechanism, the following boot command line parameters +have to be given: + + root=/dev/ram0 rw + +(rw is only necessary if writing to the initrd file system.) + +With LOADLIN, you simply execute + + LOADLIN initrd= +e.g. LOADLIN C:\LINUX\BZIMAGE initrd=C:\LINUX\INITRD.GZ root=/dev/ram0 rw + +With LILO, you add the option INITRD= to either the global section +or to the section of the respective kernel in /etc/lilo.conf, and pass +the options using APPEND, e.g. + + image = /bzImage + initrd = /boot/initrd.gz + append = "root=/dev/ram0 rw" + +and run /sbin/lilo + +For other boot loaders, please refer to the respective documentation. + +Now you can boot and enjoy using initrd. + + +Changing the root device +------------------------ + +When finished with its duties, init typically changes the root device +and proceeds with starting the Linux system on the "real" root device. + +The procedure involves the following steps: + - mounting the new root file system + - turning it into the root file system + - removing all accesses to the old (initrd) root file system + - unmounting the initrd file system and de-allocating the RAM disk + +Mounting the new root file system is easy: it just needs to be mounted on +a directory under the current root. Example: + +# mkdir /new-root +# mount -o ro /dev/hda1 /new-root + +The root change is accomplished with the pivot_root system call, which +is also available via the pivot_root utility (see pivot_root(8) man +page; pivot_root is distributed with util-linux version 2.10h or higher +[3]). pivot_root moves the current root to a directory under the new +root, and puts the new root at its place. The directory for the old root +must exist before calling pivot_root. Example: + +# cd /new-root +# mkdir initrd +# pivot_root . initrd + +Now, the init process may still access the old root via its +executable, shared libraries, standard input/output/error, and its +current root directory. All these references are dropped by the +following command: + +# exec chroot . what-follows dev/console 2>&1 + +Where what-follows is a program under the new root, e.g. /sbin/init +If the new root file system will be used with udev and has no valid +/dev directory, udev must be initialized before invoking chroot in order +to provide /dev/console. + +Note: implementation details of pivot_root may change with time. In order +to ensure compatibility, the following points should be observed: + + - before calling pivot_root, the current directory of the invoking + process should point to the new root directory + - use . as the first argument, and the _relative_ path of the directory + for the old root as the second argument + - a chroot program must be available under the old and the new root + - chroot to the new root afterwards + - use relative paths for dev/console in the exec command + +Now, the initrd can be unmounted and the memory allocated by the RAM +disk can be freed: + +# umount /initrd +# blockdev --flushbufs /dev/ram0 + +It is also possible to use initrd with an NFS-mounted root, see the +pivot_root(8) man page for details. + + +Usage scenarios +--------------- + +The main motivation for implementing initrd was to allow for modular +kernel configuration at system installation. The procedure would work +as follows: + + 1) system boots from floppy or other media with a minimal kernel + (e.g. support for RAM disks, initrd, a.out, and the Ext2 FS) and + loads initrd + 2) /sbin/init determines what is needed to (1) mount the "real" root FS + (i.e. device type, device drivers, file system) and (2) the + distribution media (e.g. CD-ROM, network, tape, ...). This can be + done by asking the user, by auto-probing, or by using a hybrid + approach. + 3) /sbin/init loads the necessary kernel modules + 4) /sbin/init creates and populates the root file system (this doesn't + have to be a very usable system yet) + 5) /sbin/init invokes pivot_root to change the root file system and + execs - via chroot - a program that continues the installation + 6) the boot loader is installed + 7) the boot loader is configured to load an initrd with the set of + modules that was used to bring up the system (e.g. /initrd can be + modified, then unmounted, and finally, the image is written from + /dev/ram0 or /dev/rd/0 to a file) + 8) now the system is bootable and additional installation tasks can be + performed + +The key role of initrd here is to re-use the configuration data during +normal system operation without requiring the use of a bloated "generic" +kernel or re-compiling or re-linking the kernel. + +A second scenario is for installations where Linux runs on systems with +different hardware configurations in a single administrative domain. In +such cases, it is desirable to generate only a small set of kernels +(ideally only one) and to keep the system-specific part of configuration +information as small as possible. In this case, a common initrd could be +generated with all the necessary modules. Then, only /sbin/init or a file +read by it would have to be different. + +A third scenario is more convenient recovery disks, because information +like the location of the root FS partition doesn't have to be provided at +boot time, but the system loaded from initrd can invoke a user-friendly +dialog and it can also perform some sanity checks (or even some form of +auto-detection). + +Last not least, CD-ROM distributors may use it for better installation +from CD, e.g. by using a boot floppy and bootstrapping a bigger RAM disk +via initrd from CD; or by booting via a loader like LOADLIN or directly +from the CD-ROM, and loading the RAM disk from CD without need of +floppies. + + +Obsolete root change mechanism +------------------------------ + +The following mechanism was used before the introduction of pivot_root. +Current kernels still support it, but you should _not_ rely on its +continued availability. + +It works by mounting the "real" root device (i.e. the one set with rdev +in the kernel image or with root=... at the boot command line) as the +root file system when linuxrc exits. The initrd file system is then +unmounted, or, if it is still busy, moved to a directory /initrd, if +such a directory exists on the new root file system. + +In order to use this mechanism, you do not have to specify the boot +command options root, init, or rw. (If specified, they will affect +the real root file system, not the initrd environment.) + +If /proc is mounted, the "real" root device can be changed from within +linuxrc by writing the number of the new root FS device to the special +file /proc/sys/kernel/real-root-dev, e.g. + + # echo 0x301 >/proc/sys/kernel/real-root-dev + +Note that the mechanism is incompatible with NFS and similar file +systems. + +This old, deprecated mechanism is commonly called "change_root", while +the new, supported mechanism is called "pivot_root". + + +Mixed change_root and pivot_root mechanism +------------------------------------------ + +In case you did not want to use root=/dev/ram0 to trigger the pivot_root +mechanism, you may create both /linuxrc and /sbin/init in your initrd image. + +/linuxrc would contain only the following: + +#! /bin/sh +mount -n -t proc proc /proc +echo 0x0100 >/proc/sys/kernel/real-root-dev +umount -n /proc + +Once linuxrc exited, the kernel would mount again your initrd as root, +this time executing /sbin/init. Again, it would be the duty of this init +to build the right environment (maybe using the root= device passed on +the cmdline) before the final execution of the real /sbin/init. + + +Resources +--------- + +[1] Almesberger, Werner; "Booting Linux: The History and the Future" + http://www.almesberger.net/cv/papers/ols2k-9.ps.gz +[2] newlib package (experimental), with initrd example + http://sources.redhat.com/newlib/ +[3] Brouwer, Andries; "util-linux: Miscellaneous utilities for Linux" + ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/ diff -puN Documentation/edac.txt~linux-next Documentation/edac.txt --- a/Documentation/edac.txt~linux-next +++ a/Documentation/edac.txt @@ -280,7 +280,7 @@ Polling period control file: The time period, in milliseconds, for polling for error information. Too small a value wastes resources. Too large a value might delay - necessary handling of errors and might loose valuable information for + necessary handling of errors and might lose valuable information for locating the error. 1000 milliseconds (once each second) is the current default. Systems which require all the bandwidth they can get, may increase this. diff -puN Documentation/feature-removal-schedule.txt~linux-next Documentation/feature-removal-schedule.txt --- a/Documentation/feature-removal-schedule.txt~linux-next +++ a/Documentation/feature-removal-schedule.txt @@ -222,13 +222,6 @@ Who: Thomas Gleixner - ---------------------------- - What (Why): - include/linux/netfilter_ipv4/ipt_TOS.h ipt_tos.h header files (superseded by xt_TOS/xt_tos target & match) diff -puN Documentation/filesystems/hfs.txt~linux-next Documentation/filesystems/hfs.txt --- a/Documentation/filesystems/hfs.txt~linux-next +++ a/Documentation/filesystems/hfs.txt @@ -61,7 +61,7 @@ the a little strange: Finder's metadata. o They are however created (with default values), deleted and renamed along with the corresponding data fork or directory. - o Copying files to a different filesystem will loose those attributes + o Copying files to a different filesystem will lose those attributes that are essential for MacOS to work. diff -puN Documentation/filesystems/nfs-rdma.txt~linux-next Documentation/filesystems/nfs-rdma.txt --- a/Documentation/filesystems/nfs-rdma.txt~linux-next +++ a/Documentation/filesystems/nfs-rdma.txt @@ -5,7 +5,7 @@ ################################################################################ Author: NetApp and Open Grid Computing - Date: April 15, 2008 + Date: May 29, 2008 Table of Contents ~~~~~~~~~~~~~~~~~ @@ -60,16 +60,18 @@ Installation The procedures described in this document have been tested with distributions from Red Hat's Fedora Project (http://fedora.redhat.com/). - - Install nfs-utils-1.1.1 or greater on the client + - Install nfs-utils-1.1.2 or greater on the client - An NFS/RDMA mount point can only be obtained by using the mount.nfs - command in nfs-utils-1.1.1 or greater. To see which version of mount.nfs - you are using, type: + An NFS/RDMA mount point can be obtained by using the mount.nfs command in + nfs-utils-1.1.2 or greater (nfs-utils-1.1.1 was the first nfs-utils + version with support for NFS/RDMA mounts, but for various reasons we + recommend using nfs-utils-1.1.2 or greater). To see which version of + mount.nfs you are using, type: - > /sbin/mount.nfs -V + $ /sbin/mount.nfs -V - If the version is less than 1.1.1 or the command does not exist, - then you will need to install the latest version of nfs-utils. + If the version is less than 1.1.2 or the command does not exist, + you should install the latest version of nfs-utils. Download the latest package from: @@ -77,22 +79,33 @@ Installation Uncompress the package and follow the installation instructions. - If you will not be using GSS and NFSv4, the installation process - can be simplified by disabling these features when running configure: + If you will not need the idmapper and gssd executables (you do not need + these to create an NFS/RDMA enabled mount command), the installation + process can be simplified by disabling these features when running + configure: - > ./configure --disable-gss --disable-nfsv4 + $ ./configure --disable-gss --disable-nfsv4 - For more information on this see the package's README and INSTALL files. + To build nfs-utils you will need the tcp_wrappers package installed. For + more information on this see the package's README and INSTALL files. After building the nfs-utils package, there will be a mount.nfs binary in the utils/mount directory. This binary can be used to initiate NFS v2, v3, - or v4 mounts. To initiate a v4 mount, the binary must be called mount.nfs4. - The standard technique is to create a symlink called mount.nfs4 to mount.nfs. + or v4 mounts. To initiate a v4 mount, the binary must be called + mount.nfs4. The standard technique is to create a symlink called + mount.nfs4 to mount.nfs. - NOTE: mount.nfs and therefore nfs-utils-1.1.1 or greater is only needed + This mount.nfs binary should be installed at /sbin/mount.nfs as follows: + + $ sudo cp utils/mount/mount.nfs /sbin/mount.nfs + + In this location, mount.nfs will be invoked automatically for NFS mounts + by the system mount commmand. + + NOTE: mount.nfs and therefore nfs-utils-1.1.2 or greater is only needed on the NFS client machine. You do not need this specific version of nfs-utils on the server. Furthermore, only the mount.nfs command from - nfs-utils-1.1.1 is needed on the client. + nfs-utils-1.1.2 is needed on the client. - Install a Linux kernel with NFS/RDMA @@ -156,8 +169,8 @@ Check RDMA and NFS Setup this time. For example, if you are using a Mellanox Tavor/Sinai/Arbel card: - > modprobe ib_mthca - > modprobe ib_ipoib + $ modprobe ib_mthca + $ modprobe ib_ipoib If you are using InfiniBand, make sure there is a Subnet Manager (SM) running on the network. If your IB switch has an embedded SM, you can @@ -166,7 +179,7 @@ Check RDMA and NFS Setup If an SM is running on your network, you should see the following: - > cat /sys/class/infiniband/driverX/ports/1/state + $ cat /sys/class/infiniband/driverX/ports/1/state 4: ACTIVE where driverX is mthca0, ipath5, ehca3, etc. @@ -174,10 +187,10 @@ Check RDMA and NFS Setup To further test the InfiniBand software stack, use IPoIB (this assumes you have two IB hosts named host1 and host2): - host1> ifconfig ib0 a.b.c.x - host2> ifconfig ib0 a.b.c.y - host1> ping a.b.c.y - host2> ping a.b.c.x + host1$ ifconfig ib0 a.b.c.x + host2$ ifconfig ib0 a.b.c.y + host1$ ping a.b.c.y + host2$ ping a.b.c.x For other device types, follow the appropriate procedures. @@ -202,11 +215,11 @@ NFS/RDMA Setup /vol0 192.168.0.47(fsid=0,rw,async,insecure,no_root_squash) /vol0 192.168.0.0/255.255.255.0(fsid=0,rw,async,insecure,no_root_squash) - The IP address(es) is(are) the client's IPoIB address for an InfiniBand HCA or the - cleint's iWARP address(es) for an RNIC. + The IP address(es) is(are) the client's IPoIB address for an InfiniBand + HCA or the cleint's iWARP address(es) for an RNIC. - NOTE: The "insecure" option must be used because the NFS/RDMA client does not - use a reserved port. + NOTE: The "insecure" option must be used because the NFS/RDMA client does + not use a reserved port. Each time a machine boots: @@ -214,43 +227,45 @@ NFS/RDMA Setup For InfiniBand using a Mellanox adapter: - > modprobe ib_mthca - > modprobe ib_ipoib - > ifconfig ib0 a.b.c.d + $ modprobe ib_mthca + $ modprobe ib_ipoib + $ ifconfig ib0 a.b.c.d NOTE: use unique addresses for the client and server - Start the NFS server - If the NFS/RDMA server was built as a module (CONFIG_SUNRPC_XPRT_RDMA=m in kernel config), - load the RDMA transport module: + If the NFS/RDMA server was built as a module (CONFIG_SUNRPC_XPRT_RDMA=m in + kernel config), load the RDMA transport module: - > modprobe svcrdma + $ modprobe svcrdma - Regardless of how the server was built (module or built-in), start the server: + Regardless of how the server was built (module or built-in), start the + server: - > /etc/init.d/nfs start + $ /etc/init.d/nfs start or - > service nfs start + $ service nfs start Instruct the server to listen on the RDMA transport: - > echo rdma 2050 > /proc/fs/nfsd/portlist + $ echo rdma 2050 > /proc/fs/nfsd/portlist - On the client system - If the NFS/RDMA client was built as a module (CONFIG_SUNRPC_XPRT_RDMA=m in kernel config), - load the RDMA client module: + If the NFS/RDMA client was built as a module (CONFIG_SUNRPC_XPRT_RDMA=m in + kernel config), load the RDMA client module: - > modprobe xprtrdma.ko + $ modprobe xprtrdma.ko - Regardless of how the client was built (module or built-in), issue the mount.nfs command: + Regardless of how the client was built (module or built-in), use this + command to mount the NFS/RDMA server: - > /path/to/your/mount.nfs :/ /mnt -i -o rdma,port=2050 + $ mount -o rdma,port=2050 :/ /mnt - To verify that the mount is using RDMA, run "cat /proc/mounts" and check the - "proto" field for the given mount. + To verify that the mount is using RDMA, run "cat /proc/mounts" and check + the "proto" field for the given mount. Congratulations! You're using NFS/RDMA! diff -puN Documentation/filesystems/sysfs-pci.txt~linux-next Documentation/filesystems/sysfs-pci.txt --- a/Documentation/filesystems/sysfs-pci.txt~linux-next +++ a/Documentation/filesystems/sysfs-pci.txt @@ -36,6 +36,7 @@ files, each with their own function. local_cpus nearby CPU mask (cpumask, ro) resource PCI resource host addresses (ascii, ro) resource0..N PCI resource N, if present (binary, mmap) + resource0_wc..N_wc PCI WC map resource N, if prefetchable (binary, mmap) rom PCI ROM resource, if present (binary, ro) subsystem_device PCI subsystem device (ascii, ro) subsystem_vendor PCI subsystem vendor (ascii, ro) diff -puN Documentation/filesystems/sysfs.txt~linux-next Documentation/filesystems/sysfs.txt --- a/Documentation/filesystems/sysfs.txt~linux-next +++ a/Documentation/filesystems/sysfs.txt @@ -248,6 +248,7 @@ The top level sysfs directory looks like block/ bus/ class/ +dev/ devices/ firmware/ net/ @@ -274,6 +275,11 @@ fs/ contains a directory for some filesy filesystem wanting to export attributes must create its own hierarchy below fs/ (see ./fuse.txt for an example). +dev/ contains two directories char/ and block/. Inside these two +directories there are symlinks named :. These symlinks +point to the sysfs directory for the given device. /sys/dev provides a +quick way to lookup the sysfs interface for a device from the result of +a stat(2) operation. More information can driver-model specific features can be found in Documentation/driver-model/. diff -puN /dev/null Documentation/filesystems/ubifs.txt --- /dev/null +++ a/Documentation/filesystems/ubifs.txt @@ -0,0 +1,163 @@ +Introduction +============= + +UBIFS file-system stands for UBI File System. UBI stands for "Unsorted +Block Images". UBIFS is a flash file system, which means it is designed +to work with flash devices. It is important to understand, that UBIFS +is completely different to any traditional file-system in Linux, like +Ext2, XFS, JFS, etc. UBIFS represents a separate class of file-systems +which work with MTD devices, not block devices. The other Linux +file-system of this class is JFFS2. + +To make it more clear, here is a small comparison of MTD devices and +block devices. + +1 MTD devices represent flash devices and they consist of eraseblocks of + rather large size, typically about 128KiB. Block devices consist of + small blocks, typically 512 bytes. +2 MTD devices support 3 main operations - read from some offset within an + eraseblock, write to some offset within an eraseblock, and erase a whole + eraseblock. Block devices support 2 main operations - read a whole + block and write a whole block. +3 The whole eraseblock has to be erased before it becomes possible to + re-write its contents. Blocks may be just re-written. +4 Eraseblocks become worn out after some number of erase cycles - + typically 100K-1G for SLC NAND and NOR flashes, and 1K-10K for MLC + NAND flashes. Blocks do not have the wear-out property. +5 Eraseblocks may become bad (only on NAND flashes) and software should + deal with this. Blocks on hard drives typically do not become bad, + because hardware has mechanisms to substitute bad blocks, at least in + modern LBA disks. + +It should be quite obvious why UBIFS is very different to traditional +file-systems. + +UBIFS works on top of UBI. UBI is a separate software layer which may be +found in drivers/mtd/ubi. UBI is basically a volume management and +wear-leveling layer. It provides so called UBI volumes which is a higher +level abstraction than a MTD device. The programming model of UBI devices +is very similar to MTD devices - they still consist of large eraseblocks, +they have read/write/erase operations, but UBI devices are devoid of +limitations like wear and bad blocks (items 4 and 5 in the above list). + +In a sense, UBIFS is a next generation of JFFS2 file-system, but it is +very different and incompatible to JFFS2. The following are the main +differences. + +* JFFS2 works on top of MTD devices, UBIFS depends on UBI and works on + top of UBI volumes. +* JFFS2 does not have on-media index and has to build it while mounting, + which requires full media scan. UBIFS maintains the FS indexing + information on the flash media and does not require full media scan, + so it mounts many times faster than JFFS2. +* JFFS2 is a write-through file-system, while UBIFS supports write-back, + which makes UBIFS much faster on writes. + +Similarly to JFFS2, UBIFS supports on-the-flight compression which makes +it possible to fit quite a lot of data to the flash. + +Similarly to JFFS2, UBIFS is tolerant of unclean reboots and power-cuts. +It does not need stuff like ckfs.ext2. UBIFS automatically replays its +journal and recovers from crashes, ensuring that the on-flash data +structures are consistent. + +UBIFS scales logarithmically (most of the data structures it uses are +trees), so the mount time and memory consumption do not linearly depend +on the flash size, like in case of JFFS2. This is because UBIFS +maintains the FS index on the flash media. However, UBIFS depends on +UBI, which scales linearly. So overall UBI/UBIFS stack scales linearly. +Nevertheless, UBI/UBIFS scales considerably better than JFFS2. + +The authors of UBIFS believe, that it is possible to develop UBI2 which +would scale logarithmically as well. UBI2 would support the same API as UBI, +but it would be binary incompatible to UBI. So UBIFS would not need to be +changed to use UBI2 + + +Mount options +============= + +(*) == default. + +norm_unmount (*) commit on unmount; the journal is committed + when the file-system is unmounted so that the + next mount does not have to replay the journal + and it becomes very fast; +fast_unmount do not commit on unmount; this option makes + unmount faster, but the next mount slower + because of the need to replay the journal. + + +Quick usage instructions +======================== + +The UBI volume to mount is specified using "ubiX_Y" or "ubiX:NAME" syntax, +where "X" is UBI device number, "Y" is UBI volume number, and "NAME" is +UBI volume name. + +Mount volume 0 on UBI device 0 to /mnt/ubifs: +$ mount -t ubifs ubi0_0 /mnt/ubifs + +Mount "rootfs" volume of UBI device 0 to /mnt/ubifs ("rootfs" is volume +name): +$ mount -t ubifs ubi0:rootfs /mnt/ubifs + +The following is an example of the kernel boot arguments to attach mtd0 +to UBI and mount volume "rootfs": +ubi.mtd=0 root=ubi0:rootfs rootfstype=ubifs + + +Module Parameters for Debugging +=============================== + +When UBIFS has been compiled with debugging enabled, there are 3 module +parameters that are available to control aspects of testing and debugging. +The parameters are unsigned integers where each bit controls an option. +The parameters are: + +debug_msgs Selects which debug messages to display, as follows: + + Message Type Flag value + + General messages 1 + Journal messages 2 + Mount messages 4 + Commit messages 8 + LEB search messages 16 + Budgeting messages 32 + Garbage collection messages 64 + Tree Node Cache (TNC) messages 128 + LEB properties (lprops) messages 256 + Input/output messages 512 + Log messages 1024 + Scan messages 2048 + Recovery messages 4096 + +debug_chks Selects extra checks that UBIFS can do while running: + + Check Flag value + + General checks 1 + Check Tree Node Cache (TNC) 2 + Check indexing tree size 4 + Check orphan area 8 + Check old indexing tree 16 + Check LEB properties (lprops) 32 + +debug_tsts Selects a mode of testing, as follows: + + Test mode Flag value + + Force in-the-gaps method 2 + Failure mode for recovery testing 4 + +For example, set debug_msgs to 5 to display General messages and Mount +messages. + + +References +========== + +UBIFS documentation and FAQ/HOWTO at the MTD web site: +http://www.linux-mtd.infradead.org/doc/ubifs.html +http://www.linux-mtd.infradead.org/faq/ubifs.html diff -puN Documentation/hwmon/dme1737~linux-next Documentation/hwmon/dme1737 --- a/Documentation/hwmon/dme1737~linux-next +++ a/Documentation/hwmon/dme1737 @@ -22,6 +22,10 @@ Module Parameters and PWM output control functions. Using this parameter shouldn't be required since the BIOS usually takes care of this. +* probe_all_addr: bool Include non-standard LPC addresses 0x162e and 0x164e + when probing for ISA devices. This is required for the + following boards: + - VIA EPIA SN18000 Note that there is no need to use this parameter if the driver loads without complaining. The driver will say so if it is necessary. diff -puN Documentation/hwmon/sysfs-interface~linux-next Documentation/hwmon/sysfs-interface --- a/Documentation/hwmon/sysfs-interface~linux-next +++ a/Documentation/hwmon/sysfs-interface @@ -2,17 +2,12 @@ Naming and data format standards for sys ------------------------------------------------ The libsensors library offers an interface to the raw sensors data -through the sysfs interface. See libsensors documentation and source for -further information. As of writing this document, libsensors -(from lm_sensors 2.8.3) is heavily chip-dependent. Adding or updating -support for any given chip requires modifying the library's code. -This is because libsensors was written for the procfs interface -older kernel modules were using, which wasn't standardized enough. -Recent versions of libsensors (from lm_sensors 2.8.2 and later) have -support for the sysfs interface, though. - -The new sysfs interface was designed to be as chip-independent as -possible. +through the sysfs interface. Since lm-sensors 3.0.0, libsensors is +completely chip-independent. It assumes that all the kernel drivers +implement the standard sysfs interface described in this document. +This makes adding or updating support for any given chip very easy, as +libsensors, and applications using it, do not need to be modified. +This is a major improvement compared to lm-sensors 2. Note that motherboards vary widely in the connections to sensor chips. There is no standard that ensures, for example, that the second @@ -35,19 +30,17 @@ access this data in a simple and consist will have to implement conversion, labeling and hiding of inputs. For this reason, it is still not recommended to bypass the library. -If you are developing a userspace application please send us feedback on -this standard. - -Note that this standard isn't completely established yet, so it is subject -to changes. If you are writing a new hardware monitoring driver those -features can't seem to fit in this interface, please contact us with your -extension proposal. Keep in mind that backward compatibility must be -preserved. - Each chip gets its own directory in the sysfs /sys/devices tree. To find all sensor chips, it is easier to follow the device symlinks from /sys/class/hwmon/hwmon*. +Up to lm-sensors 3.0.0, libsensors looks for hardware monitoring attributes +in the "physical" device directory. Since lm-sensors 3.0.1, attributes found +in the hwmon "class" device directory are also supported. Complex drivers +(e.g. drivers for multifunction chips) may want to use this possibility to +avoid namespace pollution. The only drawback will be that older versions of +libsensors won't support the driver in question. + All sysfs values are fixed point numbers. There is only one value per file, unlike the older /proc specification. diff -puN Documentation/i2c/busses/i2c-i810~linux-next /dev/null --- a/Documentation/i2c/busses/i2c-i810 +++ /dev/null @@ -1,47 +0,0 @@ -Kernel driver i2c-i810 - -Supported adapters: - * Intel 82810, 82810-DC100, 82810E, and 82815 (GMCH) - * Intel 82845G (GMCH) - -Authors: - Frodo Looijaard , - Philip Edelbrock , - Kyösti Mälkki , - Ralph Metzler , - Mark D. Studebaker - -Main contact: Mark Studebaker - -Description ------------ - -WARNING: If you have an '810' or '815' motherboard, your standard I2C -temperature sensors are most likely on the 801's I2C bus. You want the -i2c-i801 driver for those, not this driver. - -Now for the i2c-i810... - -The GMCH chip contains two I2C interfaces. - -The first interface is used for DDC (Data Display Channel) which is a -serial channel through the VGA monitor connector to a DDC-compliant -monitor. This interface is defined by the Video Electronics Standards -Association (VESA). The standards are available for purchase at -http://www.vesa.org . - -The second interface is a general-purpose I2C bus. It may be connected to a -TV-out chip such as the BT869 or possibly to a digital flat-panel display. - -Features --------- - -Both busses use the i2c-algo-bit driver for 'bit banging' -and support for specific transactions is provided by i2c-algo-bit. - -Issues ------- - -If you enable bus testing in i2c-algo-bit (insmod i2c-algo-bit bit_test=1), -the test may fail; if so, the i2c-i810 driver won't be inserted. However, -we think this has been fixed. diff -puN Documentation/i2c/busses/i2c-prosavage~linux-next /dev/null --- a/Documentation/i2c/busses/i2c-prosavage +++ /dev/null @@ -1,23 +0,0 @@ -Kernel driver i2c-prosavage - -Supported adapters: - - S3/VIA KM266/VT8375 aka ProSavage8 - S3/VIA KM133/VT8365 aka Savage4 - -Author: Henk Vergonet - -Description ------------ - -The Savage4 chips contain two I2C interfaces (aka a I2C 'master' or -'host'). - -The first interface is used for DDC (Data Display Channel) which is a -serial channel through the VGA monitor connector to a DDC-compliant -monitor. This interface is defined by the Video Electronics Standards -Association (VESA). The standards are available for purchase at -http://www.vesa.org . The second interface is a general-purpose I2C bus. - -Usefull for gaining access to the TV Encoder chips. - diff -puN Documentation/i2c/busses/i2c-savage4~linux-next /dev/null --- a/Documentation/i2c/busses/i2c-savage4 +++ /dev/null @@ -1,26 +0,0 @@ -Kernel driver i2c-savage4 - -Supported adapters: - * Savage4 - * Savage2000 - -Authors: - Alexander Wold , - Mark D. Studebaker - -Description ------------ - -The Savage4 chips contain two I2C interfaces (aka a I2C 'master' -or 'host'). - -The first interface is used for DDC (Data Display Channel) which is a -serial channel through the VGA monitor connector to a DDC-compliant -monitor. This interface is defined by the Video Electronics Standards -Association (VESA). The standards are available for purchase at -http://www.vesa.org . The DDC bus is not yet supported because its register -is not directly memory-mapped. - -The second interface is a general-purpose I2C bus. This is the only -interface supported by the driver at the moment. - diff -puN /dev/null Documentation/i2c/fault-codes --- /dev/null +++ a/Documentation/i2c/fault-codes @@ -0,0 +1,127 @@ +This is a summary of the most important conventions for use of fault +codes in the I2C/SMBus stack. + + +A "Fault" is not always an "Error" +---------------------------------- +Not all fault reports imply errors; "page faults" should be a familiar +example. Software often retries idempotent operations after transient +faults. There may be fancier recovery schemes that are appropriate in +some cases, such as re-initializing (and maybe resetting). After such +recovery, triggered by a fault report, there is no error. + +In a similar way, sometimes a "fault" code just reports one defined +result for an operation ... it doesn't indicate that anything is wrong +at all, just that the outcome wasn't on the "golden path". + +In short, your I2C driver code may need to know these codes in order +to respond correctly. Other code may need to rely on YOUR code reporting +the right fault code, so that it can (in turn) behave correctly. + + +I2C and SMBus fault codes +------------------------- +These are returned as negative numbers from most calls, with zero or +some positive number indicating a non-fault return. The specific +numbers associated with these symbols differ between architectures, +though most Linux systems use numbering. + +Note that the descriptions here are not exhaustive. There are other +codes that may be returned, and other cases where these codes should +be returned. However, drivers should not return other codes for these +cases (unless the hardware doesn't provide unique fault reports). + +Also, codes returned by adapter probe methods follow rules which are +specific to their host bus (such as PCI, or the platform bus). + + +EAGAIN + Returned by I2C adapters when they lose arbitration in master + transmit mode: some other master was transmitting different + data at the same time. + + Also returned when trying to invoke an I2C operation in an + atomic context, when some task is already using that I2C bus + to execute some other operation. + +EBADMSG + Returned by SMBus logic when an invalid Packet Error Code byte + is received. This code is a CRC covering all bytes in the + transaction, and is sent before the terminating STOP. This + fault is only reported on read transactions; the SMBus slave + may have a way to report PEC mismatches on writes from the + host. Note that even if PECs are in use, you should not rely + on these as the only way to detect incorrect data transfers. + +EBUSY + Returned by SMBus adapters when the bus was busy for longer + than allowed. This usually indicates some device (maybe the + SMBus adapter) needs some fault recovery (such as resetting), + or that the reset was attempted but failed. + +EINVAL + This rather vague error means an invalid parameter has been + detected before any I/O operation was started. Use a more + specific fault code when you can. + + One example would be a driver trying an SMBus Block Write + with block size outside the range of 1-32 bytes. + +EIO + This rather vague error means something went wrong when + performing an I/O operation. Use a more specific fault + code when you can. + +ENODEV + Returned by driver probe() methods. This is a bit more + specific than ENXIO, implying the problem isn't with the + address, but with the device found there. Driver probes + may verify the device returns *correct* responses, and + return this as appropriate. (The driver core will warn + about probe faults other than ENXIO and ENODEV.) + +ENOMEM + Returned by any component that can't allocate memory when + it needs to do so. + +ENXIO + Returned by I2C adapters to indicate that the address phase + of a transfer didn't get an ACK. While it might just mean + an I2C device was temporarily not responding, usually it + means there's nothing listening at that address. + + Returned by driver probe() methods to indicate that they + found no device to bind to. (ENODEV may also be used.) + +EOPNOTSUPP + Returned by an adapter when asked to perform an operation + that it doesn't, or can't, support. + + For example, this would be returned when an adapter that + doesn't support SMBus block transfers is asked to execute + one. In that case, the driver making that request should + have verified that functionality was supported before it + made that block transfer request. + + Similarly, if an I2C adapter can't execute all legal I2C + messages, it should return this when asked to perform a + transaction it can't. (These limitations can't be seen in + the adapter's functionality mask, since the assumption is + that if an adapter supports I2C it supports all of I2C.) + +EPROTO + Returned when slave does not conform to the relevant I2C + or SMBus (or chip-specific) protocol specifications. One + case is when the length of an SMBus block data response + (from the SMBus slave) is outside the range 1-32 bytes. + +ETIMEDOUT + This is returned by drivers when an operation took too much + time, and was aborted before it completed. + + SMBus adapters may return it when an operation took more + time than allowed by the SMBus specification; for example, + when a slave stretches clocks too far. I2C has no such + timeouts, but it's normal for I2C adapters to impose some + arbitrary limits (much longer than SMBus!) too. + diff -puN Documentation/i2c/smbus-protocol~linux-next Documentation/i2c/smbus-protocol --- a/Documentation/i2c/smbus-protocol~linux-next +++ a/Documentation/i2c/smbus-protocol @@ -42,8 +42,8 @@ Count (8 bits): A data byte containing t [..]: Data sent by I2C device, as opposed to data sent by the host adapter. -SMBus Quick Command: i2c_smbus_write_quick() -============================================= +SMBus Quick Command +=================== This sends a single bit to the device, at the place of the Rd/Wr bit. diff -puN Documentation/i2c/writing-clients~linux-next Documentation/i2c/writing-clients --- a/Documentation/i2c/writing-clients~linux-next +++ a/Documentation/i2c/writing-clients @@ -25,12 +25,23 @@ routines, and should be zero-initialized provide. A client structure holds device-specific information like the driver model device node, and its I2C address. +/* iff driver uses driver model ("new style") binding model: */ + +static struct i2c_device_id foo_idtable[] = { + { "foo", my_id_for_foo }, + { "bar", my_id_for_bar }, + { } +}; + +MODULE_DEVICE_TABLE(i2c, foo_idtable); + static struct i2c_driver foo_driver = { .driver = { .name = "foo", }, /* iff driver uses driver model ("new style") binding model: */ + .id_table = foo_ids, .probe = foo_probe, .remove = foo_remove, @@ -173,10 +184,9 @@ handle may be used during foo_probe(). (zero not a negative status code) it may save the handle and use it until foo_remove() returns. That binding model is used by most Linux drivers. -Drivers match devices when i2c_client.driver_name and the driver name are -the same; this approach is used in several other busses that don't have -device typing support in the hardware. The driver and module name should -match, so hotplug/coldplug mechanisms will modprobe the driver. +The probe function is called when an entry in the id_table name field +matches the device's name. It is passed the entry that was matched so +the driver knows which one in the table matched. Device Creation (Standard driver model) @@ -559,7 +569,6 @@ SMBus communication in terms of it. Never use this function directly! - extern s32 i2c_smbus_write_quick(struct i2c_client * client, u8 value); extern s32 i2c_smbus_read_byte(struct i2c_client * client); extern s32 i2c_smbus_write_byte(struct i2c_client * client, u8 value); extern s32 i2c_smbus_read_byte_data(struct i2c_client * client, u8 command); @@ -568,30 +577,31 @@ SMBus communication extern s32 i2c_smbus_read_word_data(struct i2c_client * client, u8 command); extern s32 i2c_smbus_write_word_data(struct i2c_client * client, u8 command, u16 value); + extern s32 i2c_smbus_read_block_data(struct i2c_client * client, + u8 command, u8 *values); extern s32 i2c_smbus_write_block_data(struct i2c_client * client, u8 command, u8 length, u8 *values); extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client, u8 command, u8 length, u8 *values); - -These ones were removed in Linux 2.6.10 because they had no users, but could -be added back later if needed: - - extern s32 i2c_smbus_read_block_data(struct i2c_client * client, - u8 command, u8 *values); extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client, u8 command, u8 length, u8 *values); + +These ones were removed from i2c-core because they had no users, but could +be added back later if needed: + + extern s32 i2c_smbus_write_quick(struct i2c_client * client, u8 value); extern s32 i2c_smbus_process_call(struct i2c_client * client, u8 command, u16 value); extern s32 i2c_smbus_block_process_call(struct i2c_client *client, u8 command, u8 length, u8 *values) -All these transactions return -1 on failure. The 'write' transactions -return 0 on success; the 'read' transactions return the read value, except -for read_block, which returns the number of values read. The block buffers -need not be longer than 32 bytes. +All these transactions return a negative errno value on failure. The 'write' +transactions return 0 on success; the 'read' transactions return the read +value, except for block transactions, which return the number of values +read. The block buffers need not be longer than 32 bytes. You can read the file `smbus-protocol' for more information about the actual SMBus protocol. diff -puN Documentation/i386/IO-APIC.txt~linux-next /dev/null --- a/Documentation/i386/IO-APIC.txt +++ /dev/null @@ -1,119 +0,0 @@ -Most (all) Intel-MP compliant SMP boards have the so-called 'IO-APIC', -which is an enhanced interrupt controller. It enables us to route -hardware interrupts to multiple CPUs, or to CPU groups. Without an -IO-APIC, interrupts from hardware will be delivered only to the -CPU which boots the operating system (usually CPU#0). - -Linux supports all variants of compliant SMP boards, including ones with -multiple IO-APICs. Multiple IO-APICs are used in high-end servers to -distribute IRQ load further. - -There are (a few) known breakages in certain older boards, such bugs are -usually worked around by the kernel. If your MP-compliant SMP board does -not boot Linux, then consult the linux-smp mailing list archives first. - -If your box boots fine with enabled IO-APIC IRQs, then your -/proc/interrupts will look like this one: - - ----------------------------> - hell:~> cat /proc/interrupts - CPU0 - 0: 1360293 IO-APIC-edge timer - 1: 4 IO-APIC-edge keyboard - 2: 0 XT-PIC cascade - 13: 1 XT-PIC fpu - 14: 1448 IO-APIC-edge ide0 - 16: 28232 IO-APIC-level Intel EtherExpress Pro 10/100 Ethernet - 17: 51304 IO-APIC-level eth0 - NMI: 0 - ERR: 0 - hell:~> - <---------------------------- - -Some interrupts are still listed as 'XT PIC', but this is not a problem; -none of those IRQ sources is performance-critical. - - -In the unlikely case that your board does not create a working mp-table, -you can use the pirq= boot parameter to 'hand-construct' IRQ entries. This -is non-trivial though and cannot be automated. One sample /etc/lilo.conf -entry: - - append="pirq=15,11,10" - -The actual numbers depend on your system, on your PCI cards and on their -PCI slot position. Usually PCI slots are 'daisy chained' before they are -connected to the PCI chipset IRQ routing facility (the incoming PIRQ1-4 -lines): - - ,-. ,-. ,-. ,-. ,-. - PIRQ4 ----| |-. ,-| |-. ,-| |-. ,-| |--------| | - |S| \ / |S| \ / |S| \ / |S| |S| - PIRQ3 ----|l|-. `/---|l|-. `/---|l|-. `/---|l|--------|l| - |o| \/ |o| \/ |o| \/ |o| |o| - PIRQ2 ----|t|-./`----|t|-./`----|t|-./`----|t|--------|t| - |1| /\ |2| /\ |3| /\ |4| |5| - PIRQ1 ----| |- `----| |- `----| |- `----| |--------| | - `-' `-' `-' `-' `-' - -Every PCI card emits a PCI IRQ, which can be INTA, INTB, INTC or INTD: - - ,-. - INTD--| | - |S| - INTC--|l| - |o| - INTB--|t| - |x| - INTA--| | - `-' - -These INTA-D PCI IRQs are always 'local to the card', their real meaning -depends on which slot they are in. If you look at the daisy chaining diagram, -a card in slot4, issuing INTA IRQ, it will end up as a signal on PIRQ4 of -the PCI chipset. Most cards issue INTA, this creates optimal distribution -between the PIRQ lines. (distributing IRQ sources properly is not a -necessity, PCI IRQs can be shared at will, but it's a good for performance -to have non shared interrupts). Slot5 should be used for videocards, they -do not use interrupts normally, thus they are not daisy chained either. - -so if you have your SCSI card (IRQ11) in Slot1, Tulip card (IRQ9) in -Slot2, then you'll have to specify this pirq= line: - - append="pirq=11,9" - -the following script tries to figure out such a default pirq= line from -your PCI configuration: - - echo -n pirq=; echo `scanpci | grep T_L | cut -c56-` | sed 's/ /,/g' - -note that this script wont work if you have skipped a few slots or if your -board does not do default daisy-chaining. (or the IO-APIC has the PIRQ pins -connected in some strange way). E.g. if in the above case you have your SCSI -card (IRQ11) in Slot3, and have Slot1 empty: - - append="pirq=0,9,11" - -[value '0' is a generic 'placeholder', reserved for empty (or non-IRQ emitting) -slots.] - -Generally, it's always possible to find out the correct pirq= settings, just -permute all IRQ numbers properly ... it will take some time though. An -'incorrect' pirq line will cause the booting process to hang, or a device -won't function properly (e.g. if it's inserted as a module). - -If you have 2 PCI buses, then you can use up to 8 pirq values, although such -boards tend to have a good configuration. - -Be prepared that it might happen that you need some strange pirq line: - - append="pirq=0,0,0,0,0,0,9,11" - -Use smart trial-and-error techniques to find out the correct pirq line ... - -Good luck and mail to linux-smp@vger.kernel.org or -linux-kernel@vger.kernel.org if you have any problems that are not covered -by this document. - --- mingo - diff -puN Documentation/i386/boot.txt~linux-next /dev/null --- a/Documentation/i386/boot.txt +++ /dev/null @@ -1,887 +0,0 @@ - THE LINUX/I386 BOOT PROTOCOL - ---------------------------- - - H. Peter Anvin - Last update 2007-05-23 - -On the i386 platform, the Linux kernel uses a rather complicated boot -convention. This has evolved partially due to historical aspects, as -well as the desire in the early days to have the kernel itself be a -bootable image, the complicated PC memory model and due to changed -expectations in the PC industry caused by the effective demise of -real-mode DOS as a mainstream operating system. - -Currently, the following versions of the Linux/i386 boot protocol exist. - -Old kernels: zImage/Image support only. Some very early kernels - may not even support a command line. - -Protocol 2.00: (Kernel 1.3.73) Added bzImage and initrd support, as - well as a formalized way to communicate between the - boot loader and the kernel. setup.S made relocatable, - although the traditional setup area still assumed - writable. - -Protocol 2.01: (Kernel 1.3.76) Added a heap overrun warning. - -Protocol 2.02: (Kernel 2.4.0-test3-pre3) New command line protocol. - Lower the conventional memory ceiling. No overwrite - of the traditional setup area, thus making booting - safe for systems which use the EBDA from SMM or 32-bit - BIOS entry points. zImage deprecated but still - supported. - -Protocol 2.03: (Kernel 2.4.18-pre1) Explicitly makes the highest possible - initrd address available to the bootloader. - -Protocol 2.04: (Kernel 2.6.14) Extend the syssize field to four bytes. - -Protocol 2.05: (Kernel 2.6.20) Make protected mode kernel relocatable. - Introduce relocatable_kernel and kernel_alignment fields. - -Protocol 2.06: (Kernel 2.6.22) Added a field that contains the size of - the boot command line. - -Protocol 2.07: (Kernel 2.6.24) Added paravirtualised boot protocol. - Introduced hardware_subarch and hardware_subarch_data - and KEEP_SEGMENTS flag in load_flags. - -Protocol 2.08: (Kernel 2.6.26) Added crc32 checksum and ELF format - payload. Introduced payload_offset and payload length - fields to aid in locating the payload. - -Protocol 2.09: (Kernel 2.6.26) Added a field of 64-bit physical - pointer to single linked list of struct setup_data. - -**** MEMORY LAYOUT - -The traditional memory map for the kernel loader, used for Image or -zImage kernels, typically looks like: - - | | -0A0000 +------------------------+ - | Reserved for BIOS | Do not use. Reserved for BIOS EBDA. -09A000 +------------------------+ - | Command line | - | Stack/heap | For use by the kernel real-mode code. -098000 +------------------------+ - | Kernel setup | The kernel real-mode code. -090200 +------------------------+ - | Kernel boot sector | The kernel legacy boot sector. -090000 +------------------------+ - | Protected-mode kernel | The bulk of the kernel image. -010000 +------------------------+ - | Boot loader | <- Boot sector entry point 0000:7C00 -001000 +------------------------+ - | Reserved for MBR/BIOS | -000800 +------------------------+ - | Typically used by MBR | -000600 +------------------------+ - | BIOS use only | -000000 +------------------------+ - - -When using bzImage, the protected-mode kernel was relocated to -0x100000 ("high memory"), and the kernel real-mode block (boot sector, -setup, and stack/heap) was made relocatable to any address between -0x10000 and end of low memory. Unfortunately, in protocols 2.00 and -2.01 the 0x90000+ memory range is still used internally by the kernel; -the 2.02 protocol resolves that problem. - -It is desirable to keep the "memory ceiling" -- the highest point in -low memory touched by the boot loader -- as low as possible, since -some newer BIOSes have begun to allocate some rather large amounts of -memory, called the Extended BIOS Data Area, near the top of low -memory. The boot loader should use the "INT 12h" BIOS call to verify -how much low memory is available. - -Unfortunately, if INT 12h reports that the amount of memory is too -low, there is usually nothing the boot loader can do but to report an -error to the user. The boot loader should therefore be designed to -take up as little space in low memory as it reasonably can. For -zImage or old bzImage kernels, which need data written into the -0x90000 segment, the boot loader should make sure not to use memory -above the 0x9A000 point; too many BIOSes will break above that point. - -For a modern bzImage kernel with boot protocol version >= 2.02, a -memory layout like the following is suggested: - - ~ ~ - | Protected-mode kernel | -100000 +------------------------+ - | I/O memory hole | -0A0000 +------------------------+ - | Reserved for BIOS | Leave as much as possible unused - ~ ~ - | Command line | (Can also be below the X+10000 mark) -X+10000 +------------------------+ - | Stack/heap | For use by the kernel real-mode code. -X+08000 +------------------------+ - | Kernel setup | The kernel real-mode code. - | Kernel boot sector | The kernel legacy boot sector. -X +------------------------+ - | Boot loader | <- Boot sector entry point 0000:7C00 -001000 +------------------------+ - | Reserved for MBR/BIOS | -000800 +------------------------+ - | Typically used by MBR | -000600 +------------------------+ - | BIOS use only | -000000 +------------------------+ - -... where the address X is as low as the design of the boot loader -permits. - - -**** THE REAL-MODE KERNEL HEADER - -In the following text, and anywhere in the kernel boot sequence, "a -sector" refers to 512 bytes. It is independent of the actual sector -size of the underlying medium. - -The first step in loading a Linux kernel should be to load the -real-mode code (boot sector and setup code) and then examine the -following header at offset 0x01f1. The real-mode code can total up to -32K, although the boot loader may choose to load only the first two -sectors (1K) and then examine the bootup sector size. - -The header looks like: - -Offset Proto Name Meaning -/Size - -01F1/1 ALL(1 setup_sects The size of the setup in sectors -01F2/2 ALL root_flags If set, the root is mounted readonly -01F4/4 2.04+(2 syssize The size of the 32-bit code in 16-byte paras -01F8/2 ALL ram_size DO NOT USE - for bootsect.S use only -01FA/2 ALL vid_mode Video mode control -01FC/2 ALL root_dev Default root device number -01FE/2 ALL boot_flag 0xAA55 magic number -0200/2 2.00+ jump Jump instruction -0202/4 2.00+ header Magic signature "HdrS" -0206/2 2.00+ version Boot protocol version supported -0208/4 2.00+ realmode_swtch Boot loader hook (see below) -020C/2 2.00+ start_sys The load-low segment (0x1000) (obsolete) -020E/2 2.00+ kernel_version Pointer to kernel version string -0210/1 2.00+ type_of_loader Boot loader identifier -0211/1 2.00+ loadflags Boot protocol option flags -0212/2 2.00+ setup_move_size Move to high memory size (used with hooks) -0214/4 2.00+ code32_start Boot loader hook (see below) -0218/4 2.00+ ramdisk_image initrd load address (set by boot loader) -021C/4 2.00+ ramdisk_size initrd size (set by boot loader) -0220/4 2.00+ bootsect_kludge DO NOT USE - for bootsect.S use only -0224/2 2.01+ heap_end_ptr Free memory after setup end -0226/2 N/A pad1 Unused -0228/4 2.02+ cmd_line_ptr 32-bit pointer to the kernel command line -022C/4 2.03+ initrd_addr_max Highest legal initrd address -0230/4 2.05+ kernel_alignment Physical addr alignment required for kernel -0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not -0235/3 N/A pad2 Unused -0238/4 2.06+ cmdline_size Maximum size of the kernel command line -023C/4 2.07+ hardware_subarch Hardware subarchitecture -0240/8 2.07+ hardware_subarch_data Subarchitecture-specific data -0248/4 2.08+ payload_offset Offset of kernel payload -024C/4 2.08+ payload_length Length of kernel payload -0250/8 2.09+ setup_data 64-bit physical pointer to linked list - of struct setup_data - -(1) For backwards compatibility, if the setup_sects field contains 0, the - real value is 4. - -(2) For boot protocol prior to 2.04, the upper two bytes of the syssize - field are unusable, which means the size of a bzImage kernel - cannot be determined. - -If the "HdrS" (0x53726448) magic number is not found at offset 0x202, -the boot protocol version is "old". Loading an old kernel, the -following parameters should be assumed: - - Image type = zImage - initrd not supported - Real-mode kernel must be located at 0x90000. - -Otherwise, the "version" field contains the protocol version, -e.g. protocol version 2.01 will contain 0x0201 in this field. When -setting fields in the header, you must make sure only to set fields -supported by the protocol version in use. - - -**** DETAILS OF HEADER FIELDS - -For each field, some are information from the kernel to the bootloader -("read"), some are expected to be filled out by the bootloader -("write"), and some are expected to be read and modified by the -bootloader ("modify"). - -All general purpose boot loaders should write the fields marked -(obligatory). Boot loaders who want to load the kernel at a -nonstandard address should fill in the fields marked (reloc); other -boot loaders can ignore those fields. - -The byte order of all fields is littleendian (this is x86, after all.) - -Field name: setup_sects -Type: read -Offset/size: 0x1f1/1 -Protocol: ALL - - The size of the setup code in 512-byte sectors. If this field is - 0, the real value is 4. The real-mode code consists of the boot - sector (always one 512-byte sector) plus the setup code. - -Field name: root_flags -Type: modify (optional) -Offset/size: 0x1f2/2 -Protocol: ALL - - If this field is nonzero, the root defaults to readonly. The use of - this field is deprecated; use the "ro" or "rw" options on the - command line instead. - -Field name: syssize -Type: read -Offset/size: 0x1f4/4 (protocol 2.04+) 0x1f4/2 (protocol ALL) -Protocol: 2.04+ - - The size of the protected-mode code in units of 16-byte paragraphs. - For protocol versions older than 2.04 this field is only two bytes - wide, and therefore cannot be trusted for the size of a kernel if - the LOAD_HIGH flag is set. - -Field name: ram_size -Type: kernel internal -Offset/size: 0x1f8/2 -Protocol: ALL - - This field is obsolete. - -Field name: vid_mode -Type: modify (obligatory) -Offset/size: 0x1fa/2 - - Please see the section on SPECIAL COMMAND LINE OPTIONS. - -Field name: root_dev -Type: modify (optional) -Offset/size: 0x1fc/2 -Protocol: ALL - - The default root device device number. The use of this field is - deprecated, use the "root=" option on the command line instead. - -Field name: boot_flag -Type: read -Offset/size: 0x1fe/2 -Protocol: ALL - - Contains 0xAA55. This is the closest thing old Linux kernels have - to a magic number. - -Field name: jump -Type: read -Offset/size: 0x200/2 -Protocol: 2.00+ - - Contains an x86 jump instruction, 0xEB followed by a signed offset - relative to byte 0x202. This can be used to determine the size of - the header. - -Field name: header -Type: read -Offset/size: 0x202/4 -Protocol: 2.00+ - - Contains the magic number "HdrS" (0x53726448). - -Field name: version -Type: read -Offset/size: 0x206/2 -Protocol: 2.00+ - - Contains the boot protocol version, in (major << 8)+minor format, - e.g. 0x0204 for version 2.04, and 0x0a11 for a hypothetical version - 10.17. - -Field name: readmode_swtch -Type: modify (optional) -Offset/size: 0x208/4 -Protocol: 2.00+ - - Boot loader hook (see ADVANCED BOOT LOADER HOOKS below.) - -Field name: start_sys -Type: read -Offset/size: 0x20c/4 -Protocol: 2.00+ - - The load low segment (0x1000). Obsolete. - -Field name: kernel_version -Type: read -Offset/size: 0x20e/2 -Protocol: 2.00+ - - If set to a nonzero value, contains a pointer to a NUL-terminated - human-readable kernel version number string, less 0x200. This can - be used to display the kernel version to the user. This value - should be less than (0x200*setup_sects). - - For example, if this value is set to 0x1c00, the kernel version - number string can be found at offset 0x1e00 in the kernel file. - This is a valid value if and only if the "setup_sects" field - contains the value 15 or higher, as: - - 0x1c00 < 15*0x200 (= 0x1e00) but - 0x1c00 >= 14*0x200 (= 0x1c00) - - 0x1c00 >> 9 = 14, so the minimum value for setup_secs is 15. - -Field name: type_of_loader -Type: write (obligatory) -Offset/size: 0x210/1 -Protocol: 2.00+ - - If your boot loader has an assigned id (see table below), enter - 0xTV here, where T is an identifier for the boot loader and V is - a version number. Otherwise, enter 0xFF here. - - Assigned boot loader ids: - 0 LILO (0x00 reserved for pre-2.00 bootloader) - 1 Loadlin - 2 bootsect-loader (0x20, all other values reserved) - 3 SYSLINUX - 4 EtherBoot - 5 ELILO - 7 GRuB - 8 U-BOOT - 9 Xen - A Gujin - B Qemu - - Please contact if you need a bootloader ID - value assigned. - -Field name: loadflags -Type: modify (obligatory) -Offset/size: 0x211/1 -Protocol: 2.00+ - - This field is a bitmask. - - Bit 0 (read): LOADED_HIGH - - If 0, the protected-mode code is loaded at 0x10000. - - If 1, the protected-mode code is loaded at 0x100000. - - Bit 6 (write): KEEP_SEGMENTS - Protocol: 2.07+ - - if 0, reload the segment registers in the 32bit entry point. - - if 1, do not reload the segment registers in the 32bit entry point. - Assume that %cs %ds %ss %es are all set to flat segments with - a base of 0 (or the equivalent for their environment). - - Bit 7 (write): CAN_USE_HEAP - Set this bit to 1 to indicate that the value entered in the - heap_end_ptr is valid. If this field is clear, some setup code - functionality will be disabled. - -Field name: setup_move_size -Type: modify (obligatory) -Offset/size: 0x212/2 -Protocol: 2.00-2.01 - - When using protocol 2.00 or 2.01, if the real mode kernel is not - loaded at 0x90000, it gets moved there later in the loading - sequence. Fill in this field if you want additional data (such as - the kernel command line) moved in addition to the real-mode kernel - itself. - - The unit is bytes starting with the beginning of the boot sector. - - This field is can be ignored when the protocol is 2.02 or higher, or - if the real-mode code is loaded at 0x90000. - -Field name: code32_start -Type: modify (optional, reloc) -Offset/size: 0x214/4 -Protocol: 2.00+ - - The address to jump to in protected mode. This defaults to the load - address of the kernel, and can be used by the boot loader to - determine the proper load address. - - This field can be modified for two purposes: - - 1. as a boot loader hook (see ADVANCED BOOT LOADER HOOKS below.) - - 2. if a bootloader which does not install a hook loads a - relocatable kernel at a nonstandard address it will have to modify - this field to point to the load address. - -Field name: ramdisk_image -Type: write (obligatory) -Offset/size: 0x218/4 -Protocol: 2.00+ - - The 32-bit linear address of the initial ramdisk or ramfs. Leave at - zero if there is no initial ramdisk/ramfs. - -Field name: ramdisk_size -Type: write (obligatory) -Offset/size: 0x21c/4 -Protocol: 2.00+ - - Size of the initial ramdisk or ramfs. Leave at zero if there is no - initial ramdisk/ramfs. - -Field name: bootsect_kludge -Type: kernel internal -Offset/size: 0x220/4 -Protocol: 2.00+ - - This field is obsolete. - -Field name: heap_end_ptr -Type: write (obligatory) -Offset/size: 0x224/2 -Protocol: 2.01+ - - Set this field to the offset (from the beginning of the real-mode - code) of the end of the setup stack/heap, minus 0x0200. - -Field name: cmd_line_ptr -Type: write (obligatory) -Offset/size: 0x228/4 -Protocol: 2.02+ - - Set this field to the linear address of the kernel command line. - The kernel command line can be located anywhere between the end of - the setup heap and 0xA0000; it does not have to be located in the - same 64K segment as the real-mode code itself. - - Fill in this field even if your boot loader does not support a - command line, in which case you can point this to an empty string - (or better yet, to the string "auto".) If this field is left at - zero, the kernel will assume that your boot loader does not support - the 2.02+ protocol. - -Field name: initrd_addr_max -Type: read -Offset/size: 0x22c/4 -Protocol: 2.03+ - - The maximum address that may be occupied by the initial - ramdisk/ramfs contents. For boot protocols 2.02 or earlier, this - field is not present, and the maximum address is 0x37FFFFFF. (This - address is defined as the address of the highest safe byte, so if - your ramdisk is exactly 131072 bytes long and this field is - 0x37FFFFFF, you can start your ramdisk at 0x37FE0000.) - -Field name: kernel_alignment -Type: read (reloc) -Offset/size: 0x230/4 -Protocol: 2.05+ - - Alignment unit required by the kernel (if relocatable_kernel is true.) - -Field name: relocatable_kernel -Type: read (reloc) -Offset/size: 0x234/1 -Protocol: 2.05+ - - If this field is nonzero, the protected-mode part of the kernel can - be loaded at any address that satisfies the kernel_alignment field. - After loading, the boot loader must set the code32_start field to - point to the loaded code, or to a boot loader hook. - -Field name: cmdline_size -Type: read -Offset/size: 0x238/4 -Protocol: 2.06+ - - The maximum size of the command line without the terminating - zero. This means that the command line can contain at most - cmdline_size characters. With protocol version 2.05 and earlier, the - maximum size was 255. - -Field name: hardware_subarch -Type: write -Offset/size: 0x23c/4 -Protocol: 2.07+ - - In a paravirtualized environment the hardware low level architectural - pieces such as interrupt handling, page table handling, and - accessing process control registers needs to be done differently. - - This field allows the bootloader to inform the kernel we are in one - one of those environments. - - 0x00000000 The default x86/PC environment - 0x00000001 lguest - 0x00000002 Xen - -Field name: hardware_subarch_data -Type: write -Offset/size: 0x240/8 -Protocol: 2.07+ - - A pointer to data that is specific to hardware subarch - -Field name: payload_offset -Type: read -Offset/size: 0x248/4 -Protocol: 2.08+ - - If non-zero then this field contains the offset from the end of the - real-mode code to the payload. - - The payload may be compressed. The format of both the compressed and - uncompressed data should be determined using the standard magic - numbers. Currently only gzip compressed ELF is used. - -Field name: payload_length -Type: read -Offset/size: 0x24c/4 -Protocol: 2.08+ - - The length of the payload. - -**** THE IMAGE CHECKSUM - -From boot protocol version 2.08 onwards the CRC-32 is calculated over -the entire file using the characteristic polynomial 0x04C11DB7 and an -initial remainder of 0xffffffff. The checksum is appended to the -file; therefore the CRC of the file up to the limit specified in the -syssize field of the header is always 0. - -**** THE KERNEL COMMAND LINE - -The kernel command line has become an important way for the boot -loader to communicate with the kernel. Some of its options are also -relevant to the boot loader itself, see "special command line options" -below. - -The kernel command line is a null-terminated string. The maximum -length can be retrieved from the field cmdline_size. Before protocol -version 2.06, the maximum was 255 characters. A string that is too -long will be automatically truncated by the kernel. - -If the boot protocol version is 2.02 or later, the address of the -kernel command line is given by the header field cmd_line_ptr (see -above.) This address can be anywhere between the end of the setup -heap and 0xA0000. - -If the protocol version is *not* 2.02 or higher, the kernel -command line is entered using the following protocol: - - At offset 0x0020 (word), "cmd_line_magic", enter the magic - number 0xA33F. - - At offset 0x0022 (word), "cmd_line_offset", enter the offset - of the kernel command line (relative to the start of the - real-mode kernel). - - The kernel command line *must* be within the memory region - covered by setup_move_size, so you may need to adjust this - field. - -Field name: setup_data -Type: write (obligatory) -Offset/size: 0x250/8 -Protocol: 2.09+ - - The 64-bit physical pointer to NULL terminated single linked list of - struct setup_data. This is used to define a more extensible boot - parameters passing mechanism. The definition of struct setup_data is - as follow: - - struct setup_data { - u64 next; - u32 type; - u32 len; - u8 data[0]; - }; - - Where, the next is a 64-bit physical pointer to the next node of - linked list, the next field of the last node is 0; the type is used - to identify the contents of data; the len is the length of data - field; the data holds the real payload. - - -**** MEMORY LAYOUT OF THE REAL-MODE CODE - -The real-mode code requires a stack/heap to be set up, as well as -memory allocated for the kernel command line. This needs to be done -in the real-mode accessible memory in bottom megabyte. - -It should be noted that modern machines often have a sizable Extended -BIOS Data Area (EBDA). As a result, it is advisable to use as little -of the low megabyte as possible. - -Unfortunately, under the following circumstances the 0x90000 memory -segment has to be used: - - - When loading a zImage kernel ((loadflags & 0x01) == 0). - - When loading a 2.01 or earlier boot protocol kernel. - - -> For the 2.00 and 2.01 boot protocols, the real-mode code - can be loaded at another address, but it is internally - relocated to 0x90000. For the "old" protocol, the - real-mode code must be loaded at 0x90000. - -When loading at 0x90000, avoid using memory above 0x9a000. - -For boot protocol 2.02 or higher, the command line does not have to be -located in the same 64K segment as the real-mode setup code; it is -thus permitted to give the stack/heap the full 64K segment and locate -the command line above it. - -The kernel command line should not be located below the real-mode -code, nor should it be located in high memory. - - -**** SAMPLE BOOT CONFIGURATION - -As a sample configuration, assume the following layout of the real -mode segment: - - When loading below 0x90000, use the entire segment: - - 0x0000-0x7fff Real mode kernel - 0x8000-0xdfff Stack and heap - 0xe000-0xffff Kernel command line - - When loading at 0x90000 OR the protocol version is 2.01 or earlier: - - 0x0000-0x7fff Real mode kernel - 0x8000-0x97ff Stack and heap - 0x9800-0x9fff Kernel command line - -Such a boot loader should enter the following fields in the header: - - unsigned long base_ptr; /* base address for real-mode segment */ - - if ( setup_sects == 0 ) { - setup_sects = 4; - } - - if ( protocol >= 0x0200 ) { - type_of_loader = ; - if ( loading_initrd ) { - ramdisk_image = ; - ramdisk_size = ; - } - - if ( protocol >= 0x0202 && loadflags & 0x01 ) - heap_end = 0xe000; - else - heap_end = 0x9800; - - if ( protocol >= 0x0201 ) { - heap_end_ptr = heap_end - 0x200; - loadflags |= 0x80; /* CAN_USE_HEAP */ - } - - if ( protocol >= 0x0202 ) { - cmd_line_ptr = base_ptr + heap_end; - strcpy(cmd_line_ptr, cmdline); - } else { - cmd_line_magic = 0xA33F; - cmd_line_offset = heap_end; - setup_move_size = heap_end + strlen(cmdline)+1; - strcpy(base_ptr+cmd_line_offset, cmdline); - } - } else { - /* Very old kernel */ - - heap_end = 0x9800; - - cmd_line_magic = 0xA33F; - cmd_line_offset = heap_end; - - /* A very old kernel MUST have its real-mode code - loaded at 0x90000 */ - - if ( base_ptr != 0x90000 ) { - /* Copy the real-mode kernel */ - memcpy(0x90000, base_ptr, (setup_sects+1)*512); - base_ptr = 0x90000; /* Relocated */ - } - - strcpy(0x90000+cmd_line_offset, cmdline); - - /* It is recommended to clear memory up to the 32K mark */ - memset(0x90000 + (setup_sects+1)*512, 0, - (64-(setup_sects+1))*512); - } - - -**** LOADING THE REST OF THE KERNEL - -The 32-bit (non-real-mode) kernel starts at offset (setup_sects+1)*512 -in the kernel file (again, if setup_sects == 0 the real value is 4.) -It should be loaded at address 0x10000 for Image/zImage kernels and -0x100000 for bzImage kernels. - -The kernel is a bzImage kernel if the protocol >= 2.00 and the 0x01 -bit (LOAD_HIGH) in the loadflags field is set: - - is_bzImage = (protocol >= 0x0200) && (loadflags & 0x01); - load_address = is_bzImage ? 0x100000 : 0x10000; - -Note that Image/zImage kernels can be up to 512K in size, and thus use -the entire 0x10000-0x90000 range of memory. This means it is pretty -much a requirement for these kernels to load the real-mode part at -0x90000. bzImage kernels allow much more flexibility. - - -**** SPECIAL COMMAND LINE OPTIONS - -If the command line provided by the boot loader is entered by the -user, the user may expect the following command line options to work. -They should normally not be deleted from the kernel command line even -though not all of them are actually meaningful to the kernel. Boot -loader authors who need additional command line options for the boot -loader itself should get them registered in -Documentation/kernel-parameters.txt to make sure they will not -conflict with actual kernel options now or in the future. - - vga= - here is either an integer (in C notation, either - decimal, octal, or hexadecimal) or one of the strings - "normal" (meaning 0xFFFF), "ext" (meaning 0xFFFE) or "ask" - (meaning 0xFFFD). This value should be entered into the - vid_mode field, as it is used by the kernel before the command - line is parsed. - - mem= - is an integer in C notation optionally followed by - (case insensitive) K, M, G, T, P or E (meaning << 10, << 20, - << 30, << 40, << 50 or << 60). This specifies the end of - memory to the kernel. This affects the possible placement of - an initrd, since an initrd should be placed near end of - memory. Note that this is an option to *both* the kernel and - the bootloader! - - initrd= - An initrd should be loaded. The meaning of is - obviously bootloader-dependent, and some boot loaders - (e.g. LILO) do not have such a command. - -In addition, some boot loaders add the following options to the -user-specified command line: - - BOOT_IMAGE= - The boot image which was loaded. Again, the meaning of - is obviously bootloader-dependent. - - auto - The kernel was booted without explicit user intervention. - -If these options are added by the boot loader, it is highly -recommended that they are located *first*, before the user-specified -or configuration-specified command line. Otherwise, "init=/bin/sh" -gets confused by the "auto" option. - - -**** RUNNING THE KERNEL - -The kernel is started by jumping to the kernel entry point, which is -located at *segment* offset 0x20 from the start of the real mode -kernel. This means that if you loaded your real-mode kernel code at -0x90000, the kernel entry point is 9020:0000. - -At entry, ds = es = ss should point to the start of the real-mode -kernel code (0x9000 if the code is loaded at 0x90000), sp should be -set up properly, normally pointing to the top of the heap, and -interrupts should be disabled. Furthermore, to guard against bugs in -the kernel, it is recommended that the boot loader sets fs = gs = ds = -es = ss. - -In our example from above, we would do: - - /* Note: in the case of the "old" kernel protocol, base_ptr must - be == 0x90000 at this point; see the previous sample code */ - - seg = base_ptr >> 4; - - cli(); /* Enter with interrupts disabled! */ - - /* Set up the real-mode kernel stack */ - _SS = seg; - _SP = heap_end; - - _DS = _ES = _FS = _GS = seg; - jmp_far(seg+0x20, 0); /* Run the kernel */ - -If your boot sector accesses a floppy drive, it is recommended to -switch off the floppy motor before running the kernel, since the -kernel boot leaves interrupts off and thus the motor will not be -switched off, especially if the loaded kernel has the floppy driver as -a demand-loaded module! - - -**** ADVANCED BOOT LOADER HOOKS - -If the boot loader runs in a particularly hostile environment (such as -LOADLIN, which runs under DOS) it may be impossible to follow the -standard memory location requirements. Such a boot loader may use the -following hooks that, if set, are invoked by the kernel at the -appropriate time. The use of these hooks should probably be -considered an absolutely last resort! - -IMPORTANT: All the hooks are required to preserve %esp, %ebp, %esi and -%edi across invocation. - - realmode_swtch: - A 16-bit real mode far subroutine invoked immediately before - entering protected mode. The default routine disables NMI, so - your routine should probably do so, too. - - code32_start: - A 32-bit flat-mode routine *jumped* to immediately after the - transition to protected mode, but before the kernel is - uncompressed. No segments, except CS, are guaranteed to be - set up (current kernels do, but older ones do not); you should - set them up to BOOT_DS (0x18) yourself. - - After completing your hook, you should jump to the address - that was in this field before your boot loader overwrote it - (relocated, if appropriate.) - - -**** 32-bit BOOT PROTOCOL - -For machine with some new BIOS other than legacy BIOS, such as EFI, -LinuxBIOS, etc, and kexec, the 16-bit real mode setup code in kernel -based on legacy BIOS can not be used, so a 32-bit boot protocol needs -to be defined. - -In 32-bit boot protocol, the first step in loading a Linux kernel -should be to setup the boot parameters (struct boot_params, -traditionally known as "zero page"). The memory for struct boot_params -should be allocated and initialized to all zero. Then the setup header -from offset 0x01f1 of kernel image on should be loaded into struct -boot_params and examined. The end of setup header can be calculated as -follow: - - 0x0202 + byte value at offset 0x0201 - -In addition to read/modify/write the setup header of the struct -boot_params as that of 16-bit boot protocol, the boot loader should -also fill the additional fields of the struct boot_params as that -described in zero-page.txt. - -After setupping the struct boot_params, the boot loader can load the -32/64-bit kernel in the same way as that of 16-bit boot protocol. - -In 32-bit boot protocol, the kernel is started by jumping to the -32-bit kernel entry point, which is the start address of loaded -32/64-bit kernel. - -At entry, the CPU must be in 32-bit protected mode with paging -disabled; a GDT must be loaded with the descriptors for selectors -__BOOT_CS(0x10) and __BOOT_DS(0x18); both descriptors must be 4G flat -segment; __BOOS_CS must have execute/read permission, and __BOOT_DS -must have read/write permission; CS must be __BOOT_CS and DS, ES, SS -must be __BOOT_DS; interrupt must be disabled; %esi must hold the base -address of the struct boot_params; %ebp, %edi and %ebx must be zero. diff -puN Documentation/i386/usb-legacy-support.txt~linux-next /dev/null --- a/Documentation/i386/usb-legacy-support.txt +++ /dev/null @@ -1,44 +0,0 @@ -USB Legacy support -~~~~~~~~~~~~~~~~~~ - -Vojtech Pavlik , January 2004 - - -Also known as "USB Keyboard" or "USB Mouse support" in the BIOS Setup is a -feature that allows one to use the USB mouse and keyboard as if they were -their classic PS/2 counterparts. This means one can use an USB keyboard to -type in LILO for example. - -It has several drawbacks, though: - -1) On some machines, the emulated PS/2 mouse takes over even when no USB - mouse is present and a real PS/2 mouse is present. In that case the extra - features (wheel, extra buttons, touchpad mode) of the real PS/2 mouse may - not be available. - -2) If CONFIG_HIGHMEM64G is enabled, the PS/2 mouse emulation can cause - system crashes, because the SMM BIOS is not expecting to be in PAE mode. - The Intel E7505 is a typical machine where this happens. - -3) If AMD64 64-bit mode is enabled, again system crashes often happen, - because the SMM BIOS isn't expecting the CPU to be in 64-bit mode. The - BIOS manufacturers only test with Windows, and Windows doesn't do 64-bit - yet. - -Solutions: - -Problem 1) can be solved by loading the USB drivers prior to loading the -PS/2 mouse driver. Since the PS/2 mouse driver is in 2.6 compiled into -the kernel unconditionally, this means the USB drivers need to be -compiled-in, too. - -Problem 2) can currently only be solved by either disabling HIGHMEM64G -in the kernel config or USB Legacy support in the BIOS. A BIOS update -could help, but so far no such update exists. - -Problem 3) is usually fixed by a BIOS update. Check the board -manufacturers web site. If an update is not available, disable USB -Legacy support in the BIOS. If this alone doesn't help, try also adding -idle=poll on the kernel command line. The BIOS may be entering the SMM -on the HLT instruction as well. - diff -puN Documentation/i386/zero-page.txt~linux-next /dev/null --- a/Documentation/i386/zero-page.txt +++ /dev/null @@ -1,31 +0,0 @@ -The additional fields in struct boot_params as a part of 32-bit boot -protocol of kernel. These should be filled by bootloader or 16-bit -real-mode setup code of the kernel. References/settings to it mainly -are in: - - include/asm-x86/bootparam.h - - -Offset Proto Name Meaning -/Size - -000/040 ALL screen_info Text mode or frame buffer information - (struct screen_info) -040/014 ALL apm_bios_info APM BIOS information (struct apm_bios_info) -060/010 ALL ist_info Intel SpeedStep (IST) BIOS support information - (struct ist_info) -080/010 ALL hd0_info hd0 disk parameter, OBSOLETE!! -090/010 ALL hd1_info hd1 disk parameter, OBSOLETE!! -0A0/010 ALL sys_desc_table System description table (struct sys_desc_table) -140/080 ALL edid_info Video mode setup (struct edid_info) -1C0/020 ALL efi_info EFI 32 information (struct efi_info) -1E0/004 ALL alk_mem_k Alternative mem check, in KB -1E4/004 ALL scratch Scratch field for the kernel setup code -1E8/001 ALL e820_entries Number of entries in e820_map (below) -1E9/001 ALL eddbuf_entries Number of entries in eddbuf (below) -1EA/001 ALL edd_mbr_sig_buf_entries Number of entries in edd_mbr_sig_buffer - (below) -290/040 ALL edd_mbr_sig_buffer EDD MBR signatures -2D0/A00 ALL e820_map E820 memory map table - (array of struct e820entry) -D00/1EC ALL eddbuf EDD data (array of struct edd_info) diff -puN /dev/null Documentation/ia64/paravirt_ops.txt --- /dev/null +++ a/Documentation/ia64/paravirt_ops.txt @@ -0,0 +1,137 @@ +Paravirt_ops on IA64 +==================== + 21 May 2008, Isaku Yamahata + + +Introduction +------------ +The aim of this documentation is to help with maintainability and/or to +encourage people to use paravirt_ops/IA64. + +paravirt_ops (pv_ops in short) is a way for virtualization support of +Linux kernel on x86. Several ways for virtualization support were +proposed, paravirt_ops is the winner. +On the other hand, now there are also several IA64 virtualization +technologies like kvm/IA64, xen/IA64 and many other academic IA64 +hypervisors so that it is good to add generic virtualization +infrastructure on Linux/IA64. + + +What is paravirt_ops? +--------------------- +It has been developed on x86 as virtualization support via API, not ABI. +It allows each hypervisor to override operations which are important for +hypervisors at API level. And it allows a single kernel binary to run on +all supported execution environments including native machine. +Essentially paravirt_ops is a set of function pointers which represent +operations corresponding to low level sensitive instructions and high +level functionalities in various area. But one significant difference +from usual function pointer table is that it allows optimization with +binary patch. It is because some of these operations are very +performance sensitive and indirect call overhead is not negligible. +With binary patch, indirect C function call can be transformed into +direct C function call or in-place execution to eliminate the overhead. + +Thus, operations of paravirt_ops are classified into three categories. +- simple indirect call + These operations correspond to high level functionality so that the + overhead of indirect call isn't very important. + +- indirect call which allows optimization with binary patch + Usually these operations correspond to low level instructions. They + are called frequently and performance critical. So the overhead is + very important. + +- a set of macros for hand written assembly code + Hand written assembly codes (.S files) also need paravirtualization + because they include sensitive instructions or some of code paths in + them are very performance critical. + + +The relation to the IA64 machine vector +--------------------------------------- +Linux/IA64 has the IA64 machine vector functionality which allows the +kernel to switch implementations (e.g. initialization, ipi, dma api...) +depending on executing platform. +We can replace some implementations very easily defining a new machine +vector. Thus another approach for virtualization support would be +enhancing the machine vector functionality. +But paravirt_ops approach was taken because +- virtualization support needs wider support than machine vector does. + e.g. low level instruction paravirtualization. It must be + initialized very early before platform detection. + +- virtualization support needs more functionality like binary patch. + Probably the calling overhead might not be very large compared to the + emulation overhead of virtualization. However in the native case, the + overhead should be eliminated completely. + A single kernel binary should run on each environment including native, + and the overhead of paravirt_ops on native environment should be as + small as possible. + +- for full virtualization technology, e.g. KVM/IA64 or + Xen/IA64 HVM domain, the result would be + (the emulated platform machine vector. probably dig) + (pv_ops). + This means that the virtualization support layer should be under + the machine vector layer. + +Possibly it might be better to move some function pointers from +paravirt_ops to machine vector. In fact, Xen domU case utilizes both +pv_ops and machine vector. + + +IA64 paravirt_ops +----------------- +In this section, the concrete paravirt_ops will be discussed. +Because of the architecture difference between ia64 and x86, the +resulting set of functions is very different from x86 pv_ops. + +- C function pointer tables +They are not very performance critical so that simple C indirect +function call is acceptable. The following structures are defined at +this moment. For details see linux/include/asm-ia64/paravirt.h + - struct pv_info + This structure describes the execution environment. + - struct pv_init_ops + This structure describes the various initialization hooks. + - struct pv_iosapic_ops + This structure describes hooks to iosapic operations. + - struct pv_irq_ops + This structure describes hooks to irq related operations + - struct pv_time_op + This structure describes hooks to steal time accounting. + +- a set of indirect calls which need optimization +Currently this class of functions correspond to a subset of IA64 +intrinsics. At this moment the optimization with binary patch isn't +implemented yet. +struct pv_cpu_op is defined. For details see +linux/include/asm-ia64/paravirt_privop.h +Mostly they correspond to ia64 intrinsics 1-to-1. +Caveat: Now they are defined as C indirect function pointers, but in +order to support binary patch optimization, they will be changed +using GCC extended inline assembly code. + +- a set of macros for hand written assembly code (.S files) +For maintenance purpose, the taken approach for .S files is single +source code and compile multiple times with different macros definitions. +Each pv_ops instance must define those macros to compile. +The important thing here is that sensitive, but non-privileged +instructions must be paravirtualized and that some privileged +instructions also need paravirtualization for reasonable performance. +Developers who modify .S files must be aware of that. At this moment +an easy checker is implemented to detect paravirtualization breakage. +But it doesn't cover all the cases. + +Sometimes this set of macros is called pv_cpu_asm_op. But there is no +corresponding structure in the source code. +Those macros mostly 1:1 correspond to a subset of privileged +instructions. See linux/include/asm-ia64/native/inst.h. +And some functions written in assembly also need to be overrided so +that each pv_ops instance have to define some macros. Again see +linux/include/asm-ia64/native/inst.h. + + +Those structures must be initialized very early before start_kernel. +Probably initialized in head.S using multi entry point or some other trick. +For native case implementation see linux/arch/ia64/kernel/paravirt.c. diff -puN Documentation/initrd.txt~linux-next /dev/null --- a/Documentation/initrd.txt +++ /dev/null @@ -1,366 +0,0 @@ -Using the initial RAM disk (initrd) -=================================== - -Written 1996,2000 by Werner Almesberger and - Hans Lermen - - -initrd provides the capability to load a RAM disk by the boot loader. -This RAM disk can then be mounted as the root file system and programs -can be run from it. Afterwards, a new root file system can be mounted -from a different device. The previous root (from initrd) is then moved -to a directory and can be subsequently unmounted. - -initrd is mainly designed to allow system startup to occur in two phases, -where the kernel comes up with a minimum set of compiled-in drivers, and -where additional modules are loaded from initrd. - -This document gives a brief overview of the use of initrd. A more detailed -discussion of the boot process can be found in [1]. - - -Operation ---------- - -When using initrd, the system typically boots as follows: - - 1) the boot loader loads the kernel and the initial RAM disk - 2) the kernel converts initrd into a "normal" RAM disk and - frees the memory used by initrd - 3) if the root device is not /dev/ram0, the old (deprecated) - change_root procedure is followed. see the "Obsolete root change - mechanism" section below. - 4) root device is mounted. if it is /dev/ram0, the initrd image is - then mounted as root - 5) /sbin/init is executed (this can be any valid executable, including - shell scripts; it is run with uid 0 and can do basically everything - init can do). - 6) init mounts the "real" root file system - 7) init places the root file system at the root directory using the - pivot_root system call - 8) init execs the /sbin/init on the new root filesystem, performing - the usual boot sequence - 9) the initrd file system is removed - -Note that changing the root directory does not involve unmounting it. -It is therefore possible to leave processes running on initrd during that -procedure. Also note that file systems mounted under initrd continue to -be accessible. - - -Boot command-line options -------------------------- - -initrd adds the following new options: - - initrd= (e.g. LOADLIN) - - Loads the specified file as the initial RAM disk. When using LILO, you - have to specify the RAM disk image file in /etc/lilo.conf, using the - INITRD configuration variable. - - noinitrd - - initrd data is preserved but it is not converted to a RAM disk and - the "normal" root file system is mounted. initrd data can be read - from /dev/initrd. Note that the data in initrd can have any structure - in this case and doesn't necessarily have to be a file system image. - This option is used mainly for debugging. - - Note: /dev/initrd is read-only and it can only be used once. As soon - as the last process has closed it, all data is freed and /dev/initrd - can't be opened anymore. - - root=/dev/ram0 - - initrd is mounted as root, and the normal boot procedure is followed, - with the RAM disk mounted as root. - -Compressed cpio images ----------------------- - -Recent kernels have support for populating a ramdisk from a compressed cpio -archive. On such systems, the creation of a ramdisk image doesn't need to -involve special block devices or loopbacks; you merely create a directory on -disk with the desired initrd content, cd to that directory, and run (as an -example): - -find . | cpio --quiet -H newc -o | gzip -9 -n > /boot/imagefile.img - -Examining the contents of an existing image file is just as simple: - -mkdir /tmp/imagefile -cd /tmp/imagefile -gzip -cd /boot/imagefile.img | cpio -imd --quiet - -Installation ------------- - -First, a directory for the initrd file system has to be created on the -"normal" root file system, e.g. - -# mkdir /initrd - -The name is not relevant. More details can be found on the pivot_root(2) -man page. - -If the root file system is created during the boot procedure (i.e. if -you're building an install floppy), the root file system creation -procedure should create the /initrd directory. - -If initrd will not be mounted in some cases, its content is still -accessible if the following device has been created: - -# mknod /dev/initrd b 1 250 -# chmod 400 /dev/initrd - -Second, the kernel has to be compiled with RAM disk support and with -support for the initial RAM disk enabled. Also, at least all components -needed to execute programs from initrd (e.g. executable format and file -system) must be compiled into the kernel. - -Third, you have to create the RAM disk image. This is done by creating a -file system on a block device, copying files to it as needed, and then -copying the content of the block device to the initrd file. With recent -kernels, at least three types of devices are suitable for that: - - - a floppy disk (works everywhere but it's painfully slow) - - a RAM disk (fast, but allocates physical memory) - - a loopback device (the most elegant solution) - -We'll describe the loopback device method: - - 1) make sure loopback block devices are configured into the kernel - 2) create an empty file system of the appropriate size, e.g. - # dd if=/dev/zero of=initrd bs=300k count=1 - # mke2fs -F -m0 initrd - (if space is critical, you may want to use the Minix FS instead of Ext2) - 3) mount the file system, e.g. - # mount -t ext2 -o loop initrd /mnt - 4) create the console device: - # mkdir /mnt/dev - # mknod /mnt/dev/console c 5 1 - 5) copy all the files that are needed to properly use the initrd - environment. Don't forget the most important file, /sbin/init - Note that /sbin/init's permissions must include "x" (execute). - 6) correct operation the initrd environment can frequently be tested - even without rebooting with the command - # chroot /mnt /sbin/init - This is of course limited to initrds that do not interfere with the - general system state (e.g. by reconfiguring network interfaces, - overwriting mounted devices, trying to start already running demons, - etc. Note however that it is usually possible to use pivot_root in - such a chroot'ed initrd environment.) - 7) unmount the file system - # umount /mnt - 8) the initrd is now in the file "initrd". Optionally, it can now be - compressed - # gzip -9 initrd - -For experimenting with initrd, you may want to take a rescue floppy and -only add a symbolic link from /sbin/init to /bin/sh. Alternatively, you -can try the experimental newlib environment [2] to create a small -initrd. - -Finally, you have to boot the kernel and load initrd. Almost all Linux -boot loaders support initrd. Since the boot process is still compatible -with an older mechanism, the following boot command line parameters -have to be given: - - root=/dev/ram0 rw - -(rw is only necessary if writing to the initrd file system.) - -With LOADLIN, you simply execute - - LOADLIN initrd= -e.g. LOADLIN C:\LINUX\BZIMAGE initrd=C:\LINUX\INITRD.GZ root=/dev/ram0 rw - -With LILO, you add the option INITRD= to either the global section -or to the section of the respective kernel in /etc/lilo.conf, and pass -the options using APPEND, e.g. - - image = /bzImage - initrd = /boot/initrd.gz - append = "root=/dev/ram0 rw" - -and run /sbin/lilo - -For other boot loaders, please refer to the respective documentation. - -Now you can boot and enjoy using initrd. - - -Changing the root device ------------------------- - -When finished with its duties, init typically changes the root device -and proceeds with starting the Linux system on the "real" root device. - -The procedure involves the following steps: - - mounting the new root file system - - turning it into the root file system - - removing all accesses to the old (initrd) root file system - - unmounting the initrd file system and de-allocating the RAM disk - -Mounting the new root file system is easy: it just needs to be mounted on -a directory under the current root. Example: - -# mkdir /new-root -# mount -o ro /dev/hda1 /new-root - -The root change is accomplished with the pivot_root system call, which -is also available via the pivot_root utility (see pivot_root(8) man -page; pivot_root is distributed with util-linux version 2.10h or higher -[3]). pivot_root moves the current root to a directory under the new -root, and puts the new root at its place. The directory for the old root -must exist before calling pivot_root. Example: - -# cd /new-root -# mkdir initrd -# pivot_root . initrd - -Now, the init process may still access the old root via its -executable, shared libraries, standard input/output/error, and its -current root directory. All these references are dropped by the -following command: - -# exec chroot . what-follows dev/console 2>&1 - -Where what-follows is a program under the new root, e.g. /sbin/init -If the new root file system will be used with udev and has no valid -/dev directory, udev must be initialized before invoking chroot in order -to provide /dev/console. - -Note: implementation details of pivot_root may change with time. In order -to ensure compatibility, the following points should be observed: - - - before calling pivot_root, the current directory of the invoking - process should point to the new root directory - - use . as the first argument, and the _relative_ path of the directory - for the old root as the second argument - - a chroot program must be available under the old and the new root - - chroot to the new root afterwards - - use relative paths for dev/console in the exec command - -Now, the initrd can be unmounted and the memory allocated by the RAM -disk can be freed: - -# umount /initrd -# blockdev --flushbufs /dev/ram0 - -It is also possible to use initrd with an NFS-mounted root, see the -pivot_root(8) man page for details. - - -Usage scenarios ---------------- - -The main motivation for implementing initrd was to allow for modular -kernel configuration at system installation. The procedure would work -as follows: - - 1) system boots from floppy or other media with a minimal kernel - (e.g. support for RAM disks, initrd, a.out, and the Ext2 FS) and - loads initrd - 2) /sbin/init determines what is needed to (1) mount the "real" root FS - (i.e. device type, device drivers, file system) and (2) the - distribution media (e.g. CD-ROM, network, tape, ...). This can be - done by asking the user, by auto-probing, or by using a hybrid - approach. - 3) /sbin/init loads the necessary kernel modules - 4) /sbin/init creates and populates the root file system (this doesn't - have to be a very usable system yet) - 5) /sbin/init invokes pivot_root to change the root file system and - execs - via chroot - a program that continues the installation - 6) the boot loader is installed - 7) the boot loader is configured to load an initrd with the set of - modules that was used to bring up the system (e.g. /initrd can be - modified, then unmounted, and finally, the image is written from - /dev/ram0 or /dev/rd/0 to a file) - 8) now the system is bootable and additional installation tasks can be - performed - -The key role of initrd here is to re-use the configuration data during -normal system operation without requiring the use of a bloated "generic" -kernel or re-compiling or re-linking the kernel. - -A second scenario is for installations where Linux runs on systems with -different hardware configurations in a single administrative domain. In -such cases, it is desirable to generate only a small set of kernels -(ideally only one) and to keep the system-specific part of configuration -information as small as possible. In this case, a common initrd could be -generated with all the necessary modules. Then, only /sbin/init or a file -read by it would have to be different. - -A third scenario is more convenient recovery disks, because information -like the location of the root FS partition doesn't have to be provided at -boot time, but the system loaded from initrd can invoke a user-friendly -dialog and it can also perform some sanity checks (or even some form of -auto-detection). - -Last not least, CD-ROM distributors may use it for better installation -from CD, e.g. by using a boot floppy and bootstrapping a bigger RAM disk -via initrd from CD; or by booting via a loader like LOADLIN or directly -from the CD-ROM, and loading the RAM disk from CD without need of -floppies. - - -Obsolete root change mechanism ------------------------------- - -The following mechanism was used before the introduction of pivot_root. -Current kernels still support it, but you should _not_ rely on its -continued availability. - -It works by mounting the "real" root device (i.e. the one set with rdev -in the kernel image or with root=... at the boot command line) as the -root file system when linuxrc exits. The initrd file system is then -unmounted, or, if it is still busy, moved to a directory /initrd, if -such a directory exists on the new root file system. - -In order to use this mechanism, you do not have to specify the boot -command options root, init, or rw. (If specified, they will affect -the real root file system, not the initrd environment.) - -If /proc is mounted, the "real" root device can be changed from within -linuxrc by writing the number of the new root FS device to the special -file /proc/sys/kernel/real-root-dev, e.g. - - # echo 0x301 >/proc/sys/kernel/real-root-dev - -Note that the mechanism is incompatible with NFS and similar file -systems. - -This old, deprecated mechanism is commonly called "change_root", while -the new, supported mechanism is called "pivot_root". - - -Mixed change_root and pivot_root mechanism ------------------------------------------- - -In case you did not want to use root=/dev/ram0 to trigger the pivot_root -mechanism, you may create both /linuxrc and /sbin/init in your initrd image. - -/linuxrc would contain only the following: - -#! /bin/sh -mount -n -t proc proc /proc -echo 0x0100 >/proc/sys/kernel/real-root-dev -umount -n /proc - -Once linuxrc exited, the kernel would mount again your initrd as root, -this time executing /sbin/init. Again, it would be the duty of this init -to build the right environment (maybe using the root= device passed on -the cmdline) before the final execution of the real /sbin/init. - - -Resources ---------- - -[1] Almesberger, Werner; "Booting Linux: The History and the Future" - http://www.almesberger.net/cv/papers/ols2k-9.ps.gz -[2] newlib package (experimental), with initrd example - http://sources.redhat.com/newlib/ -[3] Brouwer, Andries; "util-linux: Miscellaneous utilities for Linux" - ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/ diff -puN Documentation/input/gameport-programming.txt~linux-next Documentation/input/gameport-programming.txt --- a/Documentation/input/gameport-programming.txt~linux-next +++ a/Documentation/input/gameport-programming.txt @@ -1,5 +1,3 @@ -$Id: gameport-programming.txt,v 1.3 2001/04/24 13:51:37 vojtech Exp $ - Programming gameport drivers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff -puN Documentation/input/input.txt~linux-next Documentation/input/input.txt --- a/Documentation/input/input.txt~linux-next +++ a/Documentation/input/input.txt @@ -1,7 +1,6 @@ Linux Input drivers v1.0 (c) 1999-2001 Vojtech Pavlik Sponsored by SuSE - $Id: input.txt,v 1.8 2002/05/29 03:15:01 bradleym Exp $ ---------------------------------------------------------------------------- 0. Disclaimer diff -puN Documentation/input/joystick-api.txt~linux-next Documentation/input/joystick-api.txt --- a/Documentation/input/joystick-api.txt~linux-next +++ a/Documentation/input/joystick-api.txt @@ -5,8 +5,6 @@ 7 Aug 1998 - $Id: joystick-api.txt,v 1.2 2001/05/08 21:21:23 vojtech Exp $ - 1. Initialization ~~~~~~~~~~~~~~~~~ diff -puN Documentation/input/joystick-parport.txt~linux-next Documentation/input/joystick-parport.txt --- a/Documentation/input/joystick-parport.txt~linux-next +++ a/Documentation/input/joystick-parport.txt @@ -2,7 +2,6 @@ (c) 1998-2000 Vojtech Pavlik (c) 1998 Andree Borrmann Sponsored by SuSE - $Id: joystick-parport.txt,v 1.6 2001/09/25 09:31:32 vojtech Exp $ ---------------------------------------------------------------------------- 0. Disclaimer diff -puN Documentation/input/joystick.txt~linux-next Documentation/input/joystick.txt --- a/Documentation/input/joystick.txt~linux-next +++ a/Documentation/input/joystick.txt @@ -1,7 +1,6 @@ Linux Joystick driver v2.0.0 (c) 1996-2000 Vojtech Pavlik Sponsored by SuSE - $Id: joystick.txt,v 1.12 2002/03/03 12:13:07 jdeneux Exp $ ---------------------------------------------------------------------------- 0. Disclaimer diff -puN Documentation/ja_JP/SubmittingPatches~linux-next Documentation/ja_JP/SubmittingPatches --- a/Documentation/ja_JP/SubmittingPatches~linux-next +++ a/Documentation/ja_JP/SubmittingPatches @@ -195,7 +195,7 @@ VGER.KERNEL.ORG ã§ãƒ›ã‚¹ãƒ†ã‚£ãƒ³ã‚°ã• ãŸã¨ãˆã€ãƒ¡ãƒ³ãƒ†ãƒŠãŒ #4 ã§åå¿œãŒãªã‹ã£ãŸã¨ã—ã¦ã‚‚ã€ãƒ¡ãƒ³ãƒ†ãƒŠã®ã‚³ãƒ¼ãƒ‰ã«å¤‰æ›´ã‚’ 加ãˆãŸã¨ãã«ã¯ã€ã„ã¤ã‚‚メンテナ㫠CC ã™ã‚‹ã®ã‚’忘れãªã„よã†ã«ã—ã¦ãã ã•ã„。 -å°ã•ãªãƒ‘ッãƒã§ã‚ã‚Œã°ã€Adrian Bunk ãŒç®¡ç†ã—ã¦ã„ã‚‹ Trivial Patch Monkey +å°ã•ãªãƒ‘ッãƒã§ã‚ã‚Œã°ã€Jesper Juhl ãŒç®¡ç†ã—ã¦ã„ã‚‹ Trivial Patch Monkey (ã¡ã‚‡ã£ã¨ã—ãŸãƒ‘ッãƒã‚’集ã‚ã¦ã„ã‚‹)ã« CC ã—ã¦ã‚‚ã„ã„ ã§ã™ã€‚ã¡ã‚‡ã£ã¨ã—ãŸãƒ‘ッãƒã¨ã¯ä»¥ä¸‹ã®ãƒ«ãƒ¼ãƒ«ã®ã©ã‚Œã‹1ã¤ã‚’満ãŸã—ã¦ã„ãªã‘ ã‚Œã°ãªã‚Šã¾ã›ã‚“。 @@ -210,7 +210,7 @@ VGER.KERNEL.ORG ã§ãƒ›ã‚¹ãƒ†ã‚£ãƒ³ã‚°ã• ・移æ¤æ€§ã®ãªã„コードã‹ã‚‰ç§»æ¤æ€§ã®ã‚るコードã¸ã®ç½®ãæ›ãˆ(å°ã•ã„範囲㧠ã‚ã‚Œã°ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ç‰¹æœ‰ã®ã“ã¨ã§ã‚‚ä»–ã®äººãŒã‚³ãƒ”ーã§ãã¾ã™) ・作者やメンテナã«ã‚ˆã‚‹ä¿®æ­£(ã™ãªã‚ã¡ patch monkey ã®å†è»¢é€ãƒ¢ãƒ¼ãƒ‰) -URL: +URL: 7) MIME やリンクや圧縮ファイルや添付ファイルã§ã¯ãªãプレインテキストã®ã¿ diff -puN Documentation/kernel-parameters.txt~linux-next Documentation/kernel-parameters.txt --- a/Documentation/kernel-parameters.txt~linux-next +++ a/Documentation/kernel-parameters.txt @@ -599,6 +599,29 @@ and is between 256 and 4096 characters. See drivers/char/README.epca and Documentation/digiepca.txt. + disable_mtrr_cleanup [X86] + enable_mtrr_cleanup [X86] + The kernel tries to adjust MTRR layout from continuous + to discrete, to make X server driver able to add WB + entry later. This parameter enables/disables that. + + mtrr_chunk_size=nn[KMG] [X86] + used for mtrr cleanup. It is largest continous chunk + that could hold holes aka. UC entries. + + mtrr_gran_size=nn[KMG] [X86] + Used for mtrr cleanup. It is granularity of mtrr block. + Default is 1. + Large value could prevent small alignment from + using up MTRRs. + + mtrr_spare_reg_nr=n [X86] + Format: + Range: 0,7 : spare reg number + Default : 1 + Used for mtrr cleanup. It is spare mtrr entries number. + Set to 2 or more if your graphical card needs more. + disable_mtrr_trim [X86, Intel and AMD only] By default the kernel will trim any uncacheable memory out of your available memory pool based on @@ -722,9 +745,6 @@ and is between 256 and 4096 characters. hd= [EIDE] (E)IDE hard drive subsystem geometry Format: ,, - hd?= [HW] (E)IDE subsystem - hd?lun= See Documentation/ide/ide.txt. - highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an exact size of . This works even on boxes that have no highmem otherwise. This also works to reduce highmem @@ -1496,6 +1516,9 @@ and is between 256 and 4096 characters. Use with caution as certain devices share address decoders between ROMs and other resources. + norom [X86-32,X86_64] Do not assign address space to + expansion ROMs that do not already have + BIOS assigned address ranges. irqmask=0xMMMM [X86-32] Set a bit mask of IRQs allowed to be assigned automatically to PCI devices. You can make the kernel exclude IRQs of your ISA cards diff -puN Documentation/kobject.txt~linux-next Documentation/kobject.txt --- a/Documentation/kobject.txt~linux-next +++ a/Documentation/kobject.txt @@ -118,6 +118,10 @@ the name of the kobject, call kobject_re int kobject_rename(struct kobject *kobj, const char *new_name); +Note kobject_rename does perform any locking or have a solid notion of +what names are valid so the provide must provide their own sanity checking +and serialization. + There is a function called kobject_set_name() but that is legacy cruft and is being removed. If your code needs to call this function, it is incorrect and needs to be fixed. diff -puN Documentation/laptops/thinkpad-acpi.txt~linux-next Documentation/laptops/thinkpad-acpi.txt --- a/Documentation/laptops/thinkpad-acpi.txt~linux-next +++ a/Documentation/laptops/thinkpad-acpi.txt @@ -503,7 +503,7 @@ generate input device EV_KEY events. In addition to the EV_KEY events, thinkpad-acpi may also issue EV_SW events for switches: -SW_RADIO T60 and later hardare rfkill rocker switch +SW_RFKILL_ALL T60 and later hardare rfkill rocker switch SW_TABLET_MODE Tablet ThinkPads HKEY events 0x5009 and 0x500A Non hot-key ACPI HKEY event map: diff -puN Documentation/lguest/lguest.c~linux-next Documentation/lguest/lguest.c --- a/Documentation/lguest/lguest.c~linux-next +++ a/Documentation/lguest/lguest.c @@ -41,6 +41,7 @@ #include "linux/virtio_net.h" #include "linux/virtio_blk.h" #include "linux/virtio_console.h" +#include "linux/virtio_rng.h" #include "linux/virtio_ring.h" #include "asm-x86/bootparam.h" /*L:110 We can ignore the 39 include files we need for this program, but I do @@ -152,9 +153,6 @@ struct virtqueue /* The actual ring of buffers. */ struct vring vring; - /* Last available index we saw. */ - u16 last_avail_idx; - /* The routine to call when the Guest pings us. */ void (*handle_output)(int fd, struct virtqueue *me); @@ -199,6 +197,33 @@ static void *_convert(struct iovec *iov, #define le32_to_cpu(v32) (v32) #define le64_to_cpu(v64) (v64) +/* Is this iovec empty? */ +static bool iov_empty(const struct iovec iov[], unsigned int num_iov) +{ + unsigned int i; + + for (i = 0; i < num_iov; i++) + if (iov[i].iov_len) + return false; + return true; +} + +/* Take len bytes from the front of this iovec. */ +static void iov_consume(struct iovec iov[], unsigned num_iov, unsigned len) +{ + unsigned int i; + + for (i = 0; i < num_iov; i++) { + unsigned int used; + + used = iov[i].iov_len < len ? iov[i].iov_len : len; + iov[i].iov_base += used; + iov[i].iov_len -= used; + len -= used; + } + assert(len == 0); +} + /* The device virtqueue descriptors are followed by feature bitmasks. */ static u8 *get_feature_bits(struct device *dev) { @@ -661,19 +686,22 @@ static unsigned get_vq_desc(struct virtq unsigned int *out_num, unsigned int *in_num) { unsigned int i, head; + u16 last_avail; /* Check it isn't doing very strange things with descriptor numbers. */ - if ((u16)(vq->vring.avail->idx - vq->last_avail_idx) > vq->vring.num) + last_avail = vring_last_avail(&vq->vring); + if ((u16)(vq->vring.avail->idx - last_avail) > vq->vring.num) errx(1, "Guest moved used index from %u to %u", - vq->last_avail_idx, vq->vring.avail->idx); + last_avail, vq->vring.avail->idx); /* If there's nothing new since last we looked, return invalid. */ - if (vq->vring.avail->idx == vq->last_avail_idx) + if (vq->vring.avail->idx == last_avail) return vq->vring.num; /* Grab the next descriptor number they're advertising, and increment * the index we've seen. */ - head = vq->vring.avail->ring[vq->last_avail_idx++ % vq->vring.num]; + head = vq->vring.avail->ring[last_avail % vq->vring.num]; + vring_last_avail(&vq->vring)++; /* If their number is silly, that's a fatal mistake. */ if (head >= vq->vring.num) @@ -951,7 +979,7 @@ static void update_device_status(struct for (vq = dev->vq; vq; vq = vq->next) { memset(vq->vring.desc, 0, vring_size(vq->config.num, getpagesize())); - vq->last_avail_idx = 0; + vring_last_avail(&vq->vring) = 0; } } else if (dev->desc->status & VIRTIO_CONFIG_S_FAILED) { warnx("Device %s configuration FAILED", dev->name); @@ -1111,7 +1139,6 @@ static void add_virtqueue(struct device /* Initialize the virtqueue */ vq->next = NULL; - vq->last_avail_idx = 0; vq->dev = dev; vq->inflight = 0; @@ -1168,6 +1195,10 @@ static void add_feature(struct device *d * how we use it. */ static void set_config(struct device *dev, unsigned len, const void *conf) { + /* We always set the VIRTIO_RING_F_PUBLISH_INDICES feature + * bit, so now is a good time to do that. */ + add_feature(dev, VIRTIO_RING_F_PUBLISH_INDICES); + /* Check we haven't overflowed our single page. */ if (device_config(dev) + len > devices.descpage + getpagesize()) errx(1, "Too many devices"); @@ -1242,6 +1273,8 @@ static void setup_console(void) add_virtqueue(dev, VIRTQUEUE_NUM, enable_fd); add_virtqueue(dev, VIRTQUEUE_NUM, handle_console_output); + /* Every device should set this bit. */ + add_feature(dev, VIRTIO_RING_F_PUBLISH_INDICES); verbose("device %u: console\n", devices.device_num++); } /*:*/ @@ -1621,6 +1654,64 @@ static void setup_block_file(const char verbose("device %u: virtblock %llu sectors\n", devices.device_num, le64_to_cpu(conf.capacity)); } + +/* Our random number generator device reads from /dev/random into the Guest's + * input buffers. The usual case is that the Guest doesn't want random numbers + * and so has no buffers although /dev/random is still readable, whereas + * console is the reverse. + * + * The same logic applies, however. */ +static bool handle_rng_input(int fd, struct device *dev) +{ + int len; + unsigned int head, in_num, out_num, totlen = 0; + struct iovec iov[dev->vq->vring.num]; + + /* First we need a buffer from the Guests's virtqueue. */ + head = get_vq_desc(dev->vq, iov, &out_num, &in_num); + + /* If they're not ready for input, stop listening to this file + * descriptor. We'll start again once they add an input buffer. */ + if (head == dev->vq->vring.num) + return false; + + if (out_num) + errx(1, "Output buffers in rng?"); + + /* This is why we convert to iovecs: the readv() call uses them, and so + * it reads straight into the Guest's buffer. We loop to make sure we + * fill it. */ + while (!iov_empty(iov, in_num)) { + len = readv(dev->fd, iov, in_num); + if (len <= 0) + err(1, "Read from /dev/random gave %i", len); + iov_consume(iov, in_num, len); + totlen += len; + } + + /* Tell the Guest about the new input. */ + add_used_and_trigger(fd, dev->vq, head, totlen); + + /* Everything went OK! */ + return true; +} + +/* And this creates a "hardware" random number device for the Guest. */ +static void setup_rng(void) +{ + struct device *dev; + int fd; + + fd = open_or_die("/dev/random", O_RDONLY); + + /* The device responds to return from I/O thread. */ + dev = new_device("rng", VIRTIO_ID_RNG, fd, handle_rng_input); + + /* The device has one virtqueue, where the Guest places inbufs. */ + add_virtqueue(dev, VIRTQUEUE_NUM, enable_fd); + + verbose("device %u: rng\n", devices.device_num++); +} /* That's the end of device setup. */ /*L:230 Reboot is pretty easy: clean up and exec() the Launcher afresh. */ @@ -1691,6 +1782,7 @@ static struct option opts[] = { { "verbose", 0, NULL, 'v' }, { "tunnet", 1, NULL, 't' }, { "block", 1, NULL, 'b' }, + { "rng", 0, NULL, 'r' }, { "initrd", 1, NULL, 'i' }, { NULL }, }; @@ -1765,6 +1857,9 @@ int main(int argc, char *argv[]) case 'b': setup_block_file(optarg); break; + case 'r': + setup_rng(); + break; case 'i': initrd_name = optarg; break; diff -puN Documentation/networking/bonding.txt~linux-next Documentation/networking/bonding.txt --- a/Documentation/networking/bonding.txt~linux-next +++ a/Documentation/networking/bonding.txt @@ -289,35 +289,73 @@ downdelay fail_over_mac Specifies whether active-backup mode should set all slaves to - the same MAC address (the traditional behavior), or, when - enabled, change the bond's MAC address when changing the - active interface (i.e., fail over the MAC address itself). - - Fail over MAC is useful for devices that cannot ever alter - their MAC address, or for devices that refuse incoming - broadcasts with their own source MAC (which interferes with - the ARP monitor). - - The down side of fail over MAC is that every device on the - network must be updated via gratuitous ARP, vs. just updating - a switch or set of switches (which often takes place for any - traffic, not just ARP traffic, if the switch snoops incoming - traffic to update its tables) for the traditional method. If - the gratuitous ARP is lost, communication may be disrupted. - - When fail over MAC is used in conjuction with the mii monitor, - devices which assert link up prior to being able to actually - transmit and receive are particularly susecptible to loss of - the gratuitous ARP, and an appropriate updelay setting may be - required. - - A value of 0 disables fail over MAC, and is the default. A - value of 1 enables fail over MAC. This option is enabled - automatically if the first slave added cannot change its MAC - address. This option may be modified via sysfs only when no - slaves are present in the bond. + the same MAC address at enslavement (the traditional + behavior), or, when enabled, perform special handling of the + bond's MAC address in accordance with the selected policy. + + Possible values are: + + none or 0 + + This setting disables fail_over_mac, and causes + bonding to set all slaves of an active-backup bond to + the same MAC address at enslavement time. This is the + default. + + active or 1 + + The "active" fail_over_mac policy indicates that the + MAC address of the bond should always be the MAC + address of the currently active slave. The MAC + address of the slaves is not changed; instead, the MAC + address of the bond changes during a failover. + + This policy is useful for devices that cannot ever + alter their MAC address, or for devices that refuse + incoming broadcasts with their own source MAC (which + interferes with the ARP monitor). + + The down side of this policy is that every device on + the network must be updated via gratuitous ARP, + vs. just updating a switch or set of switches (which + often takes place for any traffic, not just ARP + traffic, if the switch snoops incoming traffic to + update its tables) for the traditional method. If the + gratuitous ARP is lost, communication may be + disrupted. + + When this policy is used in conjuction with the mii + monitor, devices which assert link up prior to being + able to actually transmit and receive are particularly + susecptible to loss of the gratuitous ARP, and an + appropriate updelay setting may be required. + + follow or 2 + + The "follow" fail_over_mac policy causes the MAC + address of the bond to be selected normally (normally + the MAC address of the first slave added to the bond). + However, the second and subsequent slaves are not set + to this MAC address while they are in a backup role; a + slave is programmed with the bond's MAC address at + failover time (and the formerly active slave receives + the newly active slave's MAC address). + + This policy is useful for multiport devices that + either become confused or incur a performance penalty + when multiple ports are programmed with the same MAC + address. + + + The default policy is none, unless the first slave cannot + change its MAC address, in which case the active policy is + selected by default. - This option was added in bonding version 3.2.0. + This option may be modified via sysfs only when no slaves are + present in the bond. + + This option was added in bonding version 3.2.0. The "follow" + policy was added in bonding version 3.3.0. lacp_rate diff -puN Documentation/powerpc/booting-without-of.txt~linux-next Documentation/powerpc/booting-without-of.txt --- a/Documentation/powerpc/booting-without-of.txt~linux-next +++ a/Documentation/powerpc/booting-without-of.txt @@ -57,7 +57,11 @@ Table of Contents n) 4xx/Axon EMAC ethernet nodes o) Xilinx IP cores p) Freescale Synchronous Serial Interface - q) USB EHCI controllers + q) USB EHCI controllers + r) Freescale Display Interface Unit + s) Freescale on board FPGA + t) Freescael MSI interrupt controller + u) MDIO on GPIOs VII - Marvell Discovery mv64[345]6x System Controller chips 1) The /system-controller node @@ -1360,14 +1364,11 @@ platforms are moved over to use the flat pic@40000 { linux,phandle = <40000>; - clock-frequency = <0>; interrupt-controller; #address-cells = <0>; reg = <40000 40000>; - built-in; compatible = "chrp,open-pic"; device_type = "open-pic"; - big-endian; }; @@ -2870,6 +2871,63 @@ platforms are moved over to use the flat reg = <0xe8000000 32>; }; + t) Freescale MSI interrupt controller + + Reguired properities: + - compatible : compatible list, contains 2 entries, + first is "fsl,CHIP-msi", where CHIP is the processor(mpc8610, mpc8572, + etc.) and the second is "fsl,mpic-msi" or "fsl,ipic-msi" depending on + the parent type. + - reg : should contain the address and the length of the shared message + interrupt register set. + - msi-available-ranges: use style section to define which + msi interrupt can be used in the 256 msi interrupts. This property is + optional, without this, all the 256 MSI interrupts can be used. + - interrupts : each one of the interrupts here is one entry per 32 MSIs, + and routed to the host interrupt controller. the interrupts should + be set as edge sensitive. + - interrupt-parent: the phandle for the interrupt controller + that services interrupts for this device. for 83xx cpu, the interrupts + are routed to IPIC, and for 85xx/86xx cpu the interrupts are routed + to MPIC. + + Example + msi@41600 { + compatible = "fsl,mpc8610-msi", "fsl,mpic-msi"; + reg = <0x41600 0x80>; + msi-available-ranges = <0 0x100>; + interrupts = < + 0xe0 0 + 0xe1 0 + 0xe2 0 + 0xe3 0 + 0xe4 0 + 0xe5 0 + 0xe6 0 + 0xe7 0>; + interrupt-parent = <&mpic>; + }; + + u) MDIO on GPIOs + + Currently defined compatibles: + - virtual,gpio-mdio + + MDC and MDIO lines connected to GPIO controllers are listed in the + gpios property as described in section VIII.1 in the following order: + + MDC, MDIO. + + Example: + + mdio { + compatible = "virtual,mdio-gpio"; + #address-cells = <1>; + #size-cells = <0>; + gpios = <&qe_pio_a 11 + &qe_pio_c 6>; + }; + VII - Marvell Discovery mv64[345]6x System Controller chips =========================================================== @@ -3622,14 +3680,11 @@ not necessary as they are usually the sa pic@40000 { linux,phandle = <40000>; - clock-frequency = <0>; interrupt-controller; #address-cells = <0>; reg = <40000 40000>; - built-in; compatible = "chrp,open-pic"; device_type = "open-pic"; - big-endian; }; i2c@3000 { diff -puN Documentation/scsi/aacraid.txt~linux-next Documentation/scsi/aacraid.txt --- a/Documentation/scsi/aacraid.txt~linux-next +++ a/Documentation/scsi/aacraid.txt @@ -56,19 +56,33 @@ Supported Cards/Chipsets 9005:0285:9005:02d1 Adaptec 5405 (Voodoo40) 9005:0285:15d9:02d2 SMC AOC-USAS-S8i-LP 9005:0285:15d9:02d3 SMC AOC-USAS-S8iR-LP - 9005:0285:9005:02d4 Adaptec 2045 (Voodoo04 Lite) - 9005:0285:9005:02d5 Adaptec 2405 (Voodoo40 Lite) - 9005:0285:9005:02d6 Adaptec 2445 (Voodoo44 Lite) - 9005:0285:9005:02d7 Adaptec 2805 (Voodoo80 Lite) + 9005:0285:9005:02d4 Adaptec ASR-2045 (Voodoo04 Lite) + 9005:0285:9005:02d5 Adaptec ASR-2405 (Voodoo40 Lite) + 9005:0285:9005:02d6 Adaptec ASR-2445 (Voodoo44 Lite) + 9005:0285:9005:02d7 Adaptec ASR-2805 (Voodoo80 Lite) + 9005:0285:9005:02d8 Adaptec 5405G (Voodoo40 PM) + 9005:0285:9005:02d9 Adaptec 5445G (Voodoo44 PM) + 9005:0285:9005:02da Adaptec 5805G (Voodoo80 PM) + 9005:0285:9005:02db Adaptec 5085G (Voodoo08 PM) + 9005:0285:9005:02dc Adaptec 51245G (Voodoo124 PM) + 9005:0285:9005:02dd Adaptec 51645G (Voodoo164 PM) + 9005:0285:9005:02de Adaptec 52445G (Voodoo244 PM) + 9005:0285:9005:02df Adaptec ASR-2045G (Voodoo04 Lite PM) + 9005:0285:9005:02e0 Adaptec ASR-2405G (Voodoo40 Lite PM) + 9005:0285:9005:02e1 Adaptec ASR-2445G (Voodoo44 Lite PM) + 9005:0285:9005:02e2 Adaptec ASR-2805G (Voodoo80 Lite PM) 1011:0046:9005:0364 Adaptec 5400S (Mustang) + 1011:0046:9005:0365 Adaptec 5400S (Mustang) 9005:0287:9005:0800 Adaptec Themisto (Jupiter) 9005:0200:9005:0200 Adaptec Themisto (Jupiter) 9005:0286:9005:0800 Adaptec Callisto (Jupiter) 1011:0046:9005:1364 Dell PERC 2/QC (Quad Channel, Mustang) + 1011:0046:9005:1365 Dell PERC 2/QC (Quad Channel, Mustang) 1028:0001:1028:0001 Dell PERC 2/Si (Iguana) 1028:0003:1028:0003 Dell PERC 3/Si (SlimFast) 1028:0002:1028:0002 Dell PERC 3/Di (Opal) - 1028:0004:1028:0004 Dell PERC 3/DiF (Iguana) + 1028:0004:1028:0004 Dell PERC 3/SiF (Iguana) + 1028:0004:1028:00d0 Dell PERC 3/DiF (Iguana) 1028:0002:1028:00d1 Dell PERC 3/DiV (Viper) 1028:0002:1028:00d9 Dell PERC 3/DiL (Lexus) 1028:000a:1028:0106 Dell PERC 3/DiJ (Jaguar) diff -puN Documentation/sound/alsa/ALSA-Configuration.txt~linux-next Documentation/sound/alsa/ALSA-Configuration.txt --- a/Documentation/sound/alsa/ALSA-Configuration.txt~linux-next +++ a/Documentation/sound/alsa/ALSA-Configuration.txt @@ -845,7 +845,7 @@ Prior to version 0.9.0rc4 options had a ALC269 basic Basic preset - ALC662 + ALC662/663 3stack-dig 3-stack (2-channel) with SPDIF 3stack-6ch 3-stack (6-channel) 3stack-6ch-dig 3-stack (6-channel) with SPDIF @@ -853,6 +853,10 @@ Prior to version 0.9.0rc4 options had a lenovo-101e Lenovo laptop eeepc-p701 ASUS Eeepc P701 eeepc-ep20 ASUS Eeepc EP20 + m51va ASUS M51VA + g71v ASUS G71V + h13 ASUS H13 + g50v ASUS G50V auto auto-config reading BIOS (default) ALC882/885 @@ -1091,7 +1095,7 @@ Prior to version 0.9.0rc4 options had a This occurs when the access to non-existing or non-working codec slot (likely a modem one) causes a stall of the communication via HD-audio bus. You can see which codec slots are probed by enabling - CONFIG_SND_DEBUG_DETECT, or simply from the file name of the codec + CONFIG_SND_DEBUG_VERBOSE, or simply from the file name of the codec proc files. Then limit the slots to probe by probe_mask option. For example, probe_mask=1 means to probe only the first slot, and probe_mask=4 means only the third slot. @@ -2267,6 +2271,10 @@ case above again, the first two slots ar other driver (e.g. snd-usb-audio) is loaded before snd-interwave or snd-ens1371, it will be assigned to the third or later slot. +When a module name is given with '!', the slot will be given for any +modules but that name. For example, "slots=!snd-pcsp" will reserve +the first slot for any modules but snd-pcsp. + ALSA PCM devices to OSS devices mapping ======================================= diff -puN Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl~linux-next Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl --- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl~linux-next +++ a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl @@ -6127,8 +6127,8 @@ struct _snd_pcm_runtime { snd_printdd() is compiled in only when - CONFIG_SND_DEBUG_DETECT is set. Please note - that DEBUG_DETECT is not set as default + CONFIG_SND_DEBUG_VERBOSE is set. Please note + that CONFIG_SND_DEBUG_VERBOSE is not set as default even if you configure the alsa-driver with option. You need to give explicitly option instead. diff -puN /dev/null Documentation/tracers/mmiotrace.txt --- /dev/null +++ a/Documentation/tracers/mmiotrace.txt @@ -0,0 +1,164 @@ + In-kernel memory-mapped I/O tracing + + +Home page and links to optional user space tools: + + http://nouveau.freedesktop.org/wiki/MmioTrace + +MMIO tracing was originally developed by Intel around 2003 for their Fault +Injection Test Harness. In Dec 2006 - Jan 2007, using the code from Intel, +Jeff Muizelaar created a tool for tracing MMIO accesses with the Nouveau +project in mind. Since then many people have contributed. + +Mmiotrace was built for reverse engineering any memory-mapped IO device with +the Nouveau project as the first real user. Only x86 and x86_64 architectures +are supported. + +Out-of-tree mmiotrace was originally modified for mainline inclusion and +ftrace framework by Pekka Paalanen . + + +Preparation +----------- + +Mmiotrace feature is compiled in by the CONFIG_MMIOTRACE option. Tracing is +disabled by default, so it is safe to have this set to yes. SMP systems are +supported, but tracing is unreliable and may miss events if more than one CPU +is on-line, therefore mmiotrace takes all but one CPU off-line during run-time +activation. You can re-enable CPUs by hand, but you have been warned, there +is no way to automatically detect if you are losing events due to CPUs racing. + + +Usage Quick Reference +--------------------- + +$ mount -t debugfs debugfs /debug +$ echo mmiotrace > /debug/tracing/current_tracer +$ cat /debug/tracing/trace_pipe > mydump.txt & +Start X or whatever. +$ echo "X is up" > /debug/tracing/marker +$ echo none > /debug/tracing/current_tracer +Check for lost events. + + +Usage +----- + +Make sure debugfs is mounted to /debug. If not, (requires root privileges) +$ mount -t debugfs debugfs /debug + +Check that the driver you are about to trace is not loaded. + +Activate mmiotrace (requires root privileges): +$ echo mmiotrace > /debug/tracing/current_tracer + +Start storing the trace: +$ cat /debug/tracing/trace_pipe > mydump.txt & +The 'cat' process should stay running (sleeping) in the background. + +Load the driver you want to trace and use it. Mmiotrace will only catch MMIO +accesses to areas that are ioremapped while mmiotrace is active. + +[Unimplemented feature:] +During tracing you can place comments (markers) into the trace by +$ echo "X is up" > /debug/tracing/marker +This makes it easier to see which part of the (huge) trace corresponds to +which action. It is recommended to place descriptive markers about what you +do. + +Shut down mmiotrace (requires root privileges): +$ echo none > /debug/tracing/current_tracer +The 'cat' process exits. If it does not, kill it by issuing 'fg' command and +pressing ctrl+c. + +Check that mmiotrace did not lose events due to a buffer filling up. Either +$ grep -i lost mydump.txt +which tells you exactly how many events were lost, or use +$ dmesg +to view your kernel log and look for "mmiotrace has lost events" warning. If +events were lost, the trace is incomplete. You should enlarge the buffers and +try again. Buffers are enlarged by first seeing how large the current buffers +are: +$ cat /debug/tracing/trace_entries +gives you a number. Approximately double this number and write it back, for +instance: +$ echo 128000 > /debug/tracing/trace_entries +Then start again from the top. + +If you are doing a trace for a driver project, e.g. Nouveau, you should also +do the following before sending your results: +$ lspci -vvv > lspci.txt +$ dmesg > dmesg.txt +$ tar zcf pciid-nick-mmiotrace.tar.gz mydump.txt lspci.txt dmesg.txt +and then send the .tar.gz file. The trace compresses considerably. Replace +"pciid" and "nick" with the PCI ID or model name of your piece of hardware +under investigation and your nick name. + + +How Mmiotrace Works +------------------- + +Access to hardware IO-memory is gained by mapping addresses from PCI bus by +calling one of the ioremap_*() functions. Mmiotrace is hooked into the +__ioremap() function and gets called whenever a mapping is created. Mapping is +an event that is recorded into the trace log. Note, that ISA range mappings +are not caught, since the mapping always exists and is returned directly. + +MMIO accesses are recorded via page faults. Just before __ioremap() returns, +the mapped pages are marked as not present. Any access to the pages causes a +fault. The page fault handler calls mmiotrace to handle the fault. Mmiotrace +marks the page present, sets TF flag to achieve single stepping and exits the +fault handler. The instruction that faulted is executed and debug trap is +entered. Here mmiotrace again marks the page as not present. The instruction +is decoded to get the type of operation (read/write), data width and the value +read or written. These are stored to the trace log. + +Setting the page present in the page fault handler has a race condition on SMP +machines. During the single stepping other CPUs may run freely on that page +and events can be missed without a notice. Re-enabling other CPUs during +tracing is discouraged. + + +Trace Log Format +---------------- + +The raw log is text and easily filtered with e.g. grep and awk. One record is +one line in the log. A record starts with a keyword, followed by keyword +dependant arguments. Arguments are separated by a space, or continue until the +end of line. The format for version 20070824 is as follows: + +Explanation Keyword Space separated arguments +--------------------------------------------------------------------------- + +read event R width, timestamp, map id, physical, value, PC, PID +write event W width, timestamp, map id, physical, value, PC, PID +ioremap event MAP timestamp, map id, physical, virtual, length, PC, PID +iounmap event UNMAP timestamp, map id, PC, PID +marker MARK timestamp, text +version VERSION the string "20070824" +info for reader LSPCI one line from lspci -v +PCI address map PCIDEV space separated /proc/bus/pci/devices data +unk. opcode UNKNOWN timestamp, map id, physical, data, PC, PID + +Timestamp is in seconds with decimals. Physical is a PCI bus address, virtual +is a kernel virtual address. Width is the data width in bytes and value is the +data value. Map id is an arbitrary id number identifying the mapping that was +used in an operation. PC is the program counter and PID is process id. PC is +zero if it is not recorded. PID is always zero as tracing MMIO accesses +originating in user space memory is not yet supported. + +For instance, the following awk filter will pass all 32-bit writes that target +physical addresses in the range [0xfb73ce40, 0xfb800000[ + +$ awk '/W 4 / { adr=strtonum($5); if (adr >= 0xfb73ce40 && +adr < 0xfb800000) print; }' + + +Tools for Developers +-------------------- + +The user space tools include utilities for: +- replacing numeric addresses and values with hardware register names +- replaying MMIO logs, i.e., re-executing the recorded writes + + diff -puN /dev/null Documentation/usb/WUSB-Design-overview.txt --- /dev/null +++ a/Documentation/usb/WUSB-Design-overview.txt @@ -0,0 +1,448 @@ + +Linux UWB + Wireless USB + WiNET + + (C) 2005-2006 Intel Corporation + Inaky Perez-Gonzalez + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License version + 2 as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. + + +Please visit http://bughost.org/thewiki/Design-overview.txt-1.8 for +updated content. + + * Design-overview.txt-1.8 + +This code implements a Ultra Wide Band stack for Linux, as well as +drivers for the the USB based UWB radio controllers defined in the +Wireless USB 1.0 specification (including Wireless USB host controller +and an Intel WiNET controller). + + 1. Introduction + 1. HWA: Host Wire adapters, your Wireless USB dongle + + 2. DWA: Device Wired Adaptor, a Wireless USB hub for wired + devices + 3. WHCI: Wireless Host Controller Interface, the PCI WUSB host + adapter + 2. The UWB stack + 1. Devices and hosts: the basic structure + + 2. Host Controller life cycle + + 3. On the air: beacons and enumerating the radio neighborhood + + 4. Device lists + 5. Bandwidth allocation + + 3. Wireless USB Host Controller drivers + + 4. Glossary + + + Introduction + +UWB is a wide-band communication protocol that is to serve also as the +low-level protocol for others (much like TCP sits on IP). Currently +these others are Wireless USB and TCP/IP, but seems Bluetooth and +Firewire/1394 are coming along. + +UWB uses a band from roughly 3 to 10 GHz, transmitting at a max of +~-41dB (or 0.074 uW/MHz--geography specific data is still being +negotiated w/ regulators, so watch for changes). That band is divided in +a bunch of ~1.5 GHz wide channels (or band groups) composed of three +subbands/subchannels (528 MHz each). Each channel is independent of each +other, so you could consider them different "busses". Initially this +driver considers them all a single one. + +Radio time is divided in 65536 us long /superframes/, each one divided +in 256 256us long /MASs/ (Media Allocation Slots), which are the basic +time/media allocation units for transferring data. At the beginning of +each superframe there is a Beacon Period (BP), where every device +transmit its beacon on a single MAS. The length of the BP depends on how +many devices are present and the length of their beacons. + +Devices have a MAC (fixed, 48 bit address) and a device (changeable, 16 +bit address) and send periodic beacons to advertise themselves and pass +info on what they are and do. They advertise their capabilities and a +bunch of other stuff. + +The different logical parts of this driver are: + + * + + *UWB*: the Ultra-Wide-Band stack -- manages the radio and + associated spectrum to allow for devices sharing it. Allows to + control bandwidth assingment, beaconing, scanning, etc + + * + + *WUSB*: the layer that sits on top of UWB to provide Wireless USB. + The Wireless USB spec defines means to control a UWB radio and to + do the actual WUSB. + + + HWA: Host Wire adapters, your Wireless USB dongle + +WUSB also defines a device called a Host Wire Adaptor (HWA), which in +mere terms is a USB dongle that enables your PC to have UWB and Wireless +USB. The Wireless USB Host Controller in a HWA looks to the host like a +[Wireless] USB controller connected via USB (!) + +The HWA itself is broken in two or three main interfaces: + + * + + *RC*: Radio control -- this implements an interface to the + Ultra-Wide-Band radio controller. The driver for this implements a + USB-based UWB Radio Controller to the UWB stack. + + * + + *HC*: the wireless USB host controller. It looks like a USB host + whose root port is the radio and the WUSB devices connect to it. + To the system it looks like a separate USB host. The driver (will) + implement a USB host controller (similar to UHCI, OHCI or EHCI) + for which the root hub is the radio...To reiterate: it is a USB + controller that is connected via USB instead of PCI. + + * + + *WINET*: some HW provide a WiNET interface (IP over UWB). This + package provides a driver for it (it looks like a network + interface, winetX). The driver detects when there is a link up for + their type and kick into gear. + + + DWA: Device Wired Adaptor, a Wireless USB hub for wired devices + +These are the complement to HWAs. They are a USB host for connecting +wired devices, but it is connected to your PC connected via Wireless +USB. To the system it looks like yet another USB host. To the untrained +eye, it looks like a hub that connects upstream wirelessly. + +We still offer no support for this; however, it should share a lot of +code with the HWA-RC driver; there is a bunch of factorization work that +has been done to support that in upcoming releases. + + + WHCI: Wireless Host Controller Interface, the PCI WUSB host adapter + +This is your usual PCI device that implements WHCI. Similar in concept +to EHCI, it allows your wireless USB devices (including DWAs) to connect +to your host via a PCI interface. As in the case of the HWA, it has a +Radio Control interface and the WUSB Host Controller interface per se. + +There is still no driver support for this, but will be in upcoming +releases. + + + The UWB stack + +The main mission of the UWB stack is to keep a tally of which devices +are in radio proximity to allow drivers to connect to them. As well, it +provides an API for controlling the local radio controllers (RCs from +now on), such as to start/stop beaconing, scan, allocate bandwidth, etc. + + + Devices and hosts: the basic structure + +The main building block here is the UWB device (struct uwb_dev). For +each device that pops up in radio presence (ie: the UWB host receives a +beacon from it) you get a struct uwb_dev that will show up in +/sys/class/uwb and in /sys/bus/uwb/devices. + +For each RC that is detected, a new struct uwb_rc is created. In turn, a +RC is also a device, so they also show in /sys/class/uwb and +/sys/bus/uwb/devices, but at the same time, only radio controllers show +up in /sys/class/uwb_rc. + + * + + [*] The reason for RCs being also devices is that not only we can + see them while enumerating the system device tree, but also on the + radio (their beacons and stuff), so the handling has to be + likewise to that of a device. + +Each RC driver is implemented by a separate driver that plugs into the +interface that the UWB stack provides through a struct uwb_rc_ops. The +spec creators have been nice enough to make the message format the same +for HWA and WHCI RCs, so the driver is really a very thin transport that +moves the requests from the UWB API to the device [/uwb_rc_ops->cmd()/] +and sends the replies and notifications back to the API +[/uwb_rc_neh_grok()/]. Notifications are handled to the UWB daemon, that +is chartered, among other things, to keep the tab of how the UWB radio +neighborhood looks, creating and destroying devices as they show up or +dissapear. + +Command execution is very simple: a command block is sent and a event +block or reply is expected back. For sending/receiving command/events, a +handle called /neh/ (Notification/Event Handle) is opened with +/uwb_rc_neh_open()/. + +The HWA-RC (USB dongle) driver (drivers/uwb/hwa-rc.c) does this job for +the USB connected HWA. Eventually, drivers/whci-rc.c will do the same +for the PCI connected WHCI controller. + + + Host Controller life cycle + +So let's say we connect a dongle to the system: it is detected and +firmware uploaded if needed [for Intel's i1480 +/drivers/uwb/ptc/usb.c:ptc_usb_probe()/] and then it is reenumerated. +Now we have a real HWA device connected and +/drivers/uwb/hwa-rc.c:hwarc_probe()/ picks it up, that will set up the +Wire-Adaptor environment and then suck it into the UWB stack's vision of +the world [/drivers/uwb/lc-rc.c:uwb_rc_add()/]. + + * + + [*] The stack should put a new RC to scan for devices + [/uwb_rc_scan()/] so it finds what's available around and tries to + connect to them, but this is policy stuff and should be driven + from user space. As of now, the operator is expected to do it + manually; see the release notes for documentation on the procedure. + +When a dongle is disconnected, /drivers/uwb/hwa-rc.c:hwarc_disconnect()/ +takes time of tearing everything down safely (or not...). + + + On the air: beacons and enumerating the radio neighborhood + +So assuming we have devices and we have agreed for a channel to connect +on (let's say 9), we put the new RC to beacon: + + * + + $ echo 9 0 > /sys/class/uwb_rc/uwb0/beacon + +Now it is visible. If there were other devices in the same radio channel +and beacon group (that's what the zero is for), the dongle's radio +control interface will send beacon notifications on its +notification/event endpoint (NEEP). The beacon notifications are part of +the event stream that is funneled into the API with +/drivers/uwb/neh.c:uwb_rc_neh_grok()/ and delivered to the UWBD, the UWB +daemon through a notification list. + +UWBD wakes up and scans the event list; finds a beacon and adds it to +the BEACON CACHE (/uwb_beca/). If he receives a number of beacons from +the same device, he considers it to be 'onair' and creates a new device +[/drivers/uwb/lc-dev.c:uwbd_dev_onair()/]. Similarly, when no beacons +are received in some time, the device is considered gone and wiped out +[uwbd calls periodically /uwb/beacon.c:uwb_beca_purge()/ that will purge +the beacon cache of dead devices]. + + + Device lists + +All UWB devices are kept in the list of the struct bus_type uwb_bus. + + + Bandwidth allocation + +The UWB stack maintains a local copy of DRP availability through +processing of incoming *DRP Availability Change* notifications. This +local copy is currently used to present the current bandwidth +availability to the user through the sysfs file +/sys/class/uwb_rc/uwbx/bw_avail. In the future the bandwidth +availability information will be used by the bandwidth reservation +routines. + +The bandwidth reservation routines are in progress and are thus not +present in the current release. When completed they will enable a user +to initiate DRP reservation requests through interaction with sysfs. DRP +reservation requests from remote UWB devices will also be handled. The +bandwidth management done by the UWB stack will include callbacks to the +higher layers will enable the higher layers to use the reservations upon +completion. [Note: The bandwidth reservation work is in progress and +subject to change.] + + + Wireless USB Host Controller drivers + +*WARNING* This section needs a lot of work! + +As explained above, there are three different types of HCs in the WUSB +world: HWA-HC, DWA-HC and WHCI-HC. + +HWA-HC and DWA-HC share that they are Wire-Adapters (USB or WUSB +connected controllers), and their transfer management system is almost +identical. So is their notification delivery system. + +HWA-HC and WHCI-HC share that they are both WUSB host controllers, so +they have to deal with WUSB device life cycle and maintenance, wireless +root-hub + +HWA exposes a Host Controller interface (HWA-HC 0xe0/02/02). This has +three endpoints (Notifications, Data Transfer In and Data Transfer +Out--known as NEP, DTI and DTO in the code). + +We reserve UWB bandwidth for our Wireless USB Cluster, create a Cluster +ID and tell the HC to use all that. Then we start it. This means the HC +starts sending MMCs. + + * + + The MMCs are blocks of data defined somewhere in the WUSB1.0 spec + that define a stream in the UWB channel time allocated for sending + WUSB IEs (host to device commands/notifications) and Device + Notifications (device initiated to host). Each host defines a + unique Wireless USB cluster through MMCs. Devices can connect to a + single cluster at the time. The IEs are Information Elements, and + among them are the bandwidth allocations that tell each device + when can they transmit or receive. + +Now it all depends on external stimuli. + +*New device connection* + +A new device pops up, it scans the radio looking for MMCs that give out +the existence of Wireless USB channels. Once one (or more) are found, +selects which one to connect to. Sends a /DN_Connect/ (device +notification connect) during the DNTS (Device Notification Time +Slot--announced in the MMCs + +HC picks the /DN_Connect/ out (nep module sends to notif.c for delivery +into /devconnect/). This process starts the authentication process for +the device. First we allocate a /fake port/ and assign an +unauthenticated address (128 to 255--what we really do is +0x80 | fake_port_idx). We fiddle with the fake port status and /khubd/ +sees a new connection, so he moves on to enable the fake port with a reset. + +So now we are in the reset path -- we know we have a non-yet enumerated +device with an unauthorized address; we ask user space to authenticate +(FIXME: not yet done, similar to bluetooth pairing), then we do the key +exchange (FIXME: not yet done) and issue a /set address 0/ to bring the +device to the default state. Device is authenticated. + +From here, the USB stack takes control through the usb_hcd ops. khubd +has seen the port status changes, as we have been toggling them. It will +start enumerating and doing transfers through usb_hcd->urb_enqueue() to +read descriptors and move our data. + +*Device life cycle and keep alives* + +Everytime there is a succesful transfer to/from a device, we update a +per-device activity timestamp. If not, every now and then we check and +if the activity timestamp gets old, we ping the device by sending it a +Keep Alive IE; it responds with a /DN_Alive/ pong during the DNTS (this +arrives to us as a notification through +devconnect.c:wusb_handle_dn_alive(). If a device times out, we +disconnect it from the system (cleaning up internal information and +toggling the bits in the fake hub port, which kicks khubd into removing +the rest of the stuff). + +This is done through devconnect:__wusb_check_devs(), which will scan the +device list looking for whom needs refreshing. + +If the device wants to disconnect, it will either die (ugly) or send a +/DN_Disconnect/ that will prompt a disconnection from the system. + +*Sending and receiving data* + +Data is sent and received through /Remote Pipes/ (rpipes). An rpipe is +/aimed/ at an endpoint in a WUSB device. This is the same for HWAs and +DWAs. + +Each HC has a number of rpipes and buffers that can be assigned to them; +when doing a data transfer (xfer), first the rpipe has to be aimed and +prepared (buffers assigned), then we can start queueing requests for +data in or out. + +Data buffers have to be segmented out before sending--so we send first a +header (segment request) and then if there is any data, a data buffer +immediately after to the DTI interface (yep, even the request). If our +buffer is bigger than the max segment size, then we just do multiple +requests. + +[This sucks, because doing USB scatter gatter in Linux is resource +intensive, if any...not that the current approach is not. It just has to +be cleaned up a lot :)]. + +If reading, we don't send data buffers, just the segment headers saying +we want to read segments. + +When the xfer is executed, we receive a notification that says data is +ready in the DTI endpoint (handled through +xfer.c:wa_handle_notif_xfer()). In there we read from the DTI endpoint a +descriptor that gives us the status of the transfer, its identification +(given when we issued it) and the segment number. If it was a data read, +we issue another URB to read into the destination buffer the chunk of +data coming out of the remote endpoint. Done, wait for the next guy. The +callbacks for the URBs issued from here are the ones that will declare +the xfer complete at some point and call it's callback. + +Seems simple, but the implementation is not trivial. + + * + + *WARNING* Old!! + +The main xfer descriptor, wa_xfer (equivalent to a URB) contains an +array of segments, tallys on segments and buffers and callback +information. Buried in there is a lot of URBs for executing the segments +and buffer transfers. + +For OUT xfers, there is an array of segments, one URB for each, another +one of buffer URB. When submitting, we submit URBs for segment request +1, buffer 1, segment 2, buffer 2...etc. Then we wait on the DTI for xfer +result data; when all the segments are complete, we call the callback to +finalize the transfer. + +For IN xfers, we only issue URBs for the segments we want to read and +then wait for the xfer result data. + +*URB mapping into xfers* + +This is done by hwahc_op_urb_[en|de]queue(). In enqueue() we aim an +rpipe to the endpoint where we have to transmit, create a transfer +context (wa_xfer) and submit it. When the xfer is done, our callback is +called and we assign the status bits and release the xfer resources. + +In dequeue() we are basically cancelling/aborting the transfer. We issue +a xfer abort request to the HC, cancell all the URBs we had submitted +and not yet done and when all that is done, the xfer callback will be +called--this will call the URB callback. + + + Glossary + +*DWA* -- Device Wire Adapter + +USB host, wired for downstream devices, upstream connects wirelessly +with Wireless USB. + +*EVENT* -- Response to a command on the NEEP + +*HWA* -- Host Wire Adapter / USB dongle for UWB and Wireless USB + +*NEH* -- Notification/Event Handle + +Handle/file descriptor for receiving notifications or events. The WA +code requires you to get one of this to listen for notifications or +events on the NEEP. + +*NEEP* -- Notification/Event EndPoint + +Stuff related to the management of the first endpoint of a HWA USB +dongle that is used to deliver an stream of events and notifications to +the host. + +*NOTIFICATION* -- Message coming in the NEEP as response to something. + +*RC* -- Radio Control + +Design-overview.txt-1.8 (last edited 2006-11-04 12:22:24 by +InakyPerezGonzalez) + diff -puN Documentation/usb/gadget_serial.txt~linux-next Documentation/usb/gadget_serial.txt --- a/Documentation/usb/gadget_serial.txt~linux-next +++ a/Documentation/usb/gadget_serial.txt @@ -1,6 +1,7 @@ Linux Gadget Serial Driver v2.0 11/20/2004 + (updated 8-May-2008 for v2.3) License and Disclaimer @@ -31,7 +32,7 @@ Prerequisites ------------- Versions of the gadget serial driver are available for the 2.4 Linux kernels, but this document assumes you are using -version 2.0 or later of the gadget serial driver in a 2.6 +version 2.3 or later of the gadget serial driver in a 2.6 Linux kernel. This document assumes that you are familiar with Linux and @@ -40,6 +41,12 @@ standard utilities, use minicom and Hype USB and serial devices. It also assumes you configure the Linux gadget and usb drivers as modules. +With version 2.3 of the driver, major and minor device nodes are +no longer statically defined. Your Linux based system should mount +sysfs in /sys, and use "mdev" (in Busybox) or "udev" to make the +/dev nodes matching the sysfs /sys/class/tty files. + + Overview -------- @@ -104,15 +111,8 @@ driver. All this are listed under "USB configuring the kernel. Then rebuild and install the kernel or modules. -The gadget serial driver uses major number 127, for now. So you -will need to create a device node for it, like this: - - mknod /dev/ttygserial c 127 0 - -You only need to do this once. - Then you must load the gadget serial driver. To load it as an -ACM device, do this: +ACM device (recommended for interoperability), do this: modprobe g_serial use_acm=1 @@ -125,6 +125,23 @@ controller driver. This must be done ea side Linux system. You can add this to the start up scripts, if desired. +Your system should use mdev (from busybox) or udev to make the +device nodes. After this gadget driver has been set up you should +then see a /dev/ttyGS0 node: + + # ls -l /dev/ttyGS0 | cat + crw-rw---- 1 root root 253, 0 May 8 14:10 /dev/ttyGS0 + # + +Note that the major number (253, above) is system-specific. If +you need to create /dev nodes by hand, the right numbers to use +will be in the /sys/class/tty/ttyGS0/dev file. + +When you link this gadget driver early, perhaps even statically, +you may want to set up an /etc/inittab entry to run "getty" on it. +The /dev/ttyGS0 line should work like most any other serial port. + + If gadget serial is loaded as an ACM device you will want to use either the Windows or Linux ACM driver on the host side. If gadget serial is loaded as a bulk in/out device, you will want to use the diff -puN Documentation/usb/uhci.txt~linux-next /dev/null --- a/Documentation/usb/uhci.txt +++ /dev/null @@ -1,165 +0,0 @@ -Specification and Internals for the New UHCI Driver (Whitepaper...) - - brought to you by - - Georg Acher, acher@in.tum.de (executive slave) (base guitar) - Deti Fliegl, deti@fliegl.de (executive slave) (lead voice) - Thomas Sailer, sailer@ife.ee.ethz.ch (chief consultant) (cheer leader) - - $Id: README.uhci,v 1.1 1999/12/14 14:03:02 fliegl Exp $ - -This document and the new uhci sources can be found on - http://hotswap.in.tum.de/usb - -1. General issues - -1.1 Why a new UHCI driver, we already have one?!? - -Correct, but its internal structure got more and more mixed up by the (still -ongoing) efforts to get isochronous transfers (ISO) to work. -Since there is an increasing need for reliable ISO-transfers (especially -for USB-audio needed by TS and for a DAB-USB-Receiver build by GA and DF), -this state was a bit unsatisfying in our opinion, so we've decided (based -on knowledge and experiences with the old UHCI driver) to start -from scratch with a new approach, much simpler but at the same time more -powerful. -It is inspired by the way Win98/Win2000 handles USB requests via URBs, -but it's definitely 100% free of MS-code and doesn't crash while -unplugging an used ISO-device like Win98 ;-) -Some code for HW setup and root hub management was taken from the -original UHCI driver, but heavily modified to fit into the new code. -The invention of the basic concept, and major coding were completed in two -days (and nights) on the 16th and 17th of October 1999, now known as the -great USB-October-Revolution started by GA, DF, and TS ;-) - -Since the concept is in no way UHCI dependent, we hope that it will also be -transferred to the OHCI-driver, so both drivers share a common API. - -1.2. Advantages and disadvantages - -+ All USB transfer types work now! -+ Asynchronous operation -+ Simple, but powerful interface (only two calls for start and cancel) -+ Easy migration to the new API, simplified by a compatibility API -+ Simple usage of ISO transfers -+ Automatic linking of requests -+ ISO transfers allow variable length for each frame and striping -+ No CPU dependent and non-portable atomic memory access, no asm()-inlines -+ Tested on x86 and Alpha - -- Rewriting for ISO transfers needed - -1.3. Is there some compatibility to the old API? - -Yes, but only for control, bulk and interrupt transfers. We've implemented -some wrapper calls for these transfer types. The usbcore works fine with -these wrappers. For ISO there's no compatibility, because the old ISO-API -and its semantics were unnecessary complicated in our opinion. - -1.4. What's really working? - -As said above, CTRL and BULK already work fine even with the wrappers, -so legacy code wouldn't notice the change. -Regarding to Thomas, ISO transfers now run stable with USB audio. -INT transfers (e.g. mouse driver) work fine, too. - -1.5. Are there any bugs? - -No ;-) -Hm... -Well, of course this implementation needs extensive testing on all available -hardware, but we believe that any fixes shouldn't harm the overall concept. - -1.6. What should be done next? - -A large part of the request handling seems to be identical for UHCI and -OHCI, so it would be a good idea to extract the common parts and have only -the HW specific stuff in uhci.c. Furthermore, all other USB device drivers -should need URBification, if they use isochronous or interrupt transfers. -One thing missing in the current implementation (and the old UHCI driver) -is fair queueing for BULK transfers. Since this would need (in principle) -the alteration of already constructed TD chains (to switch from depth to -breadth execution), another way has to be found. Maybe some simple -heuristics work with the same effect. - ---------------------------------------------------------------------------- - -2. Internal structure and mechanisms - -To get quickly familiar with the internal structures, here's a short -description how the new UHCI driver works. However, the ultimate source of -truth is only uhci.c! - -2.1. Descriptor structure (QHs and TDs) - -During initialization, the following skeleton is allocated in init_skel: - - framespecific | common chain - -framelist[] -[ 0 ]-----> TD --> TD -------\ -[ 1 ]-----> TD --> TD --------> TD ----> QH -------> QH -------> QH ---> NULL - ... TD --> TD -------/ -[1023]-----> TD --> TD ------/ - - ^^ ^^ ^^ ^^ ^^ ^^ - 1024 TDs for 7 TDs for 1 TD for Start of Start of End Chain - ISO INT (2-128ms) 1ms-INT CTRL Chain BULK Chain - -For each CTRL or BULK transfer a new QH is allocated and the containing data -transfers are appended as (vertical) TDs. After building the whole QH with its -dangling TDs, the QH is inserted before the BULK Chain QH (for CTRL) or -before the End Chain QH (for BULK). Since only the QH->next pointers are -affected, no atomic memory operation is required. The three QHs in the -common chain are never equipped with TDs! - -For ISO or INT, the TD for each frame is simply inserted into the appropriate -ISO/INT-TD-chain for the desired frame. The 7 skeleton INT-TDs are scattered -among the 1024 frames similar to the old UHCI driver. - -For CTRL/BULK/ISO, the last TD in the transfer has the IOC-bit set. For INT, -every TD (there is only one...) has the IOC-bit set. - -Besides the data for the UHCI controller (2 or 4 32bit words), the descriptors -are double-linked through the .vertical and .horizontal elements in the -SW data of the descriptor (using the double-linked list structures and -operations), but SW-linking occurs only in closed domains, i.e. for each of -the 1024 ISO-chains and the 8 INT-chains there is a closed cycle. This -simplifies all insertions and unlinking operations and avoids costly -bus_to_virt()-calls. - -2.2. URB structure and linking to QH/TDs - -During assembly of the QH and TDs of the requested action, these descriptors -are stored in urb->urb_list, so the allocated QH/TD descriptors are bound to -this URB. -If the assembly was successful and the descriptors were added to the HW chain, -the corresponding URB is inserted into a global URB list for this controller. -This list stores all pending URBs. - -2.3. Interrupt processing - -Since UHCI provides no means to directly detect completed transactions, the -following is done in each UHCI interrupt (uhci_interrupt()): - -For each URB in the pending queue (process_urb()), the ACTIVE-flag of the -associated TDs are processed (depending on the transfer type -process_{transfer|interrupt|iso}()). If the TDs are not active anymore, -they indicate the completion of the transaction and the status is calculated. -Inactive QH/TDs are removed from the HW chain (since the host controller -already removed the TDs from the QH, no atomic access is needed) and -eventually the URB is marked as completed (OK or errors) and removed from the -pending queue. Then the next linked URB is submitted. After (or immediately -before) that, the completion handler is called. - -2.4. Unlinking URBs - -First, all QH/TDs stored in the URB are unlinked from the HW chain. -To ensure that the host controller really left a vertical TD chain, we -wait for one frame. After that, the TDs are physically destroyed. - -2.5. URB linking and the consequences - -Since URBs can be linked and the corresponding submit_urb is called in -the UHCI-interrupt, all work associated with URB/QH/TD assembly has to be -interrupt save. This forces kmalloc to use GFP_ATOMIC in the interrupt. diff -puN /dev/null Documentation/usb/wusb-cbaf --- /dev/null +++ a/Documentation/usb/wusb-cbaf @@ -0,0 +1,133 @@ +#! /bin/bash +# + +set -e + +progname=$(basename $0) +function help +{ + cat < $uwb_rc/uwb_rc/beacon + echo I: started beaconing on ch 13 in host $(basename $uwb_rc) + fi + echo $host_CHID | cat > $dev/wusb_chid + echo I: started host $(basename $dev) + done + ;; + set-chid) + shift + for dev in ${2:-$devs} + do + echo "${2:-$host_CHID}" "${3:-$host_band_group}" "${4:-$host_name}" \ + | cat > $dev/wusb_host_info + done + ;; + get-cdid) + for dev in ${2:-$devs} + do + cat $dev/wusb_cdid + done + ;; + set-cc) + for dev in ${2:-$devs} + do + shift + CDID="$(head --bytes=16 /dev/urandom | od -tx1 -An)" + CK="$(head --bytes=16 /dev/urandom | od -tx1 -An)" + cat > $dev/wusb_cc <&2 + help 1>&2 + result=1 +esac +exit $result diff -puN Documentation/video4linux/CARDLIST.cx23885~linux-next Documentation/video4linux/CARDLIST.cx23885 --- a/Documentation/video4linux/CARDLIST.cx23885~linux-next +++ a/Documentation/video4linux/CARDLIST.cx23885 @@ -8,3 +8,4 @@ 7 -> Hauppauge WinTV-HVR1200 [0070:71d1,0070:71d3] 8 -> Hauppauge WinTV-HVR1700 [0070:8101] 9 -> Hauppauge WinTV-HVR1400 [0070:8010] + 10 -> DViCO FusionHDTV7 Dual Express [18ac:d618] diff -puN Documentation/video4linux/CARDLIST.em28xx~linux-next Documentation/video4linux/CARDLIST.em28xx --- a/Documentation/video4linux/CARDLIST.em28xx~linux-next +++ a/Documentation/video4linux/CARDLIST.em28xx @@ -15,3 +15,4 @@ 14 -> Pixelview Prolink PlayTV USB 2.0 (em2820/em2840) 15 -> V-Gear PocketTV (em2800) 16 -> Hauppauge WinTV HVR 950 (em2880) [2040:6513,2040:6517,2040:651b,2040:651f] + 17 -> Pinnacle PCTV HD Pro Stick (em2880) [2304:0227] diff -puN /dev/null Documentation/x86/i386/IO-APIC.txt --- /dev/null +++ a/Documentation/x86/i386/IO-APIC.txt @@ -0,0 +1,119 @@ +Most (all) Intel-MP compliant SMP boards have the so-called 'IO-APIC', +which is an enhanced interrupt controller. It enables us to route +hardware interrupts to multiple CPUs, or to CPU groups. Without an +IO-APIC, interrupts from hardware will be delivered only to the +CPU which boots the operating system (usually CPU#0). + +Linux supports all variants of compliant SMP boards, including ones with +multiple IO-APICs. Multiple IO-APICs are used in high-end servers to +distribute IRQ load further. + +There are (a few) known breakages in certain older boards, such bugs are +usually worked around by the kernel. If your MP-compliant SMP board does +not boot Linux, then consult the linux-smp mailing list archives first. + +If your box boots fine with enabled IO-APIC IRQs, then your +/proc/interrupts will look like this one: + + ----------------------------> + hell:~> cat /proc/interrupts + CPU0 + 0: 1360293 IO-APIC-edge timer + 1: 4 IO-APIC-edge keyboard + 2: 0 XT-PIC cascade + 13: 1 XT-PIC fpu + 14: 1448 IO-APIC-edge ide0 + 16: 28232 IO-APIC-level Intel EtherExpress Pro 10/100 Ethernet + 17: 51304 IO-APIC-level eth0 + NMI: 0 + ERR: 0 + hell:~> + <---------------------------- + +Some interrupts are still listed as 'XT PIC', but this is not a problem; +none of those IRQ sources is performance-critical. + + +In the unlikely case that your board does not create a working mp-table, +you can use the pirq= boot parameter to 'hand-construct' IRQ entries. This +is non-trivial though and cannot be automated. One sample /etc/lilo.conf +entry: + + append="pirq=15,11,10" + +The actual numbers depend on your system, on your PCI cards and on their +PCI slot position. Usually PCI slots are 'daisy chained' before they are +connected to the PCI chipset IRQ routing facility (the incoming PIRQ1-4 +lines): + + ,-. ,-. ,-. ,-. ,-. + PIRQ4 ----| |-. ,-| |-. ,-| |-. ,-| |--------| | + |S| \ / |S| \ / |S| \ / |S| |S| + PIRQ3 ----|l|-. `/---|l|-. `/---|l|-. `/---|l|--------|l| + |o| \/ |o| \/ |o| \/ |o| |o| + PIRQ2 ----|t|-./`----|t|-./`----|t|-./`----|t|--------|t| + |1| /\ |2| /\ |3| /\ |4| |5| + PIRQ1 ----| |- `----| |- `----| |- `----| |--------| | + `-' `-' `-' `-' `-' + +Every PCI card emits a PCI IRQ, which can be INTA, INTB, INTC or INTD: + + ,-. + INTD--| | + |S| + INTC--|l| + |o| + INTB--|t| + |x| + INTA--| | + `-' + +These INTA-D PCI IRQs are always 'local to the card', their real meaning +depends on which slot they are in. If you look at the daisy chaining diagram, +a card in slot4, issuing INTA IRQ, it will end up as a signal on PIRQ4 of +the PCI chipset. Most cards issue INTA, this creates optimal distribution +between the PIRQ lines. (distributing IRQ sources properly is not a +necessity, PCI IRQs can be shared at will, but it's a good for performance +to have non shared interrupts). Slot5 should be used for videocards, they +do not use interrupts normally, thus they are not daisy chained either. + +so if you have your SCSI card (IRQ11) in Slot1, Tulip card (IRQ9) in +Slot2, then you'll have to specify this pirq= line: + + append="pirq=11,9" + +the following script tries to figure out such a default pirq= line from +your PCI configuration: + + echo -n pirq=; echo `scanpci | grep T_L | cut -c56-` | sed 's/ /,/g' + +note that this script wont work if you have skipped a few slots or if your +board does not do default daisy-chaining. (or the IO-APIC has the PIRQ pins +connected in some strange way). E.g. if in the above case you have your SCSI +card (IRQ11) in Slot3, and have Slot1 empty: + + append="pirq=0,9,11" + +[value '0' is a generic 'placeholder', reserved for empty (or non-IRQ emitting) +slots.] + +Generally, it's always possible to find out the correct pirq= settings, just +permute all IRQ numbers properly ... it will take some time though. An +'incorrect' pirq line will cause the booting process to hang, or a device +won't function properly (e.g. if it's inserted as a module). + +If you have 2 PCI buses, then you can use up to 8 pirq values, although such +boards tend to have a good configuration. + +Be prepared that it might happen that you need some strange pirq line: + + append="pirq=0,0,0,0,0,0,9,11" + +Use smart trial-and-error techniques to find out the correct pirq line ... + +Good luck and mail to linux-smp@vger.kernel.org or +linux-kernel@vger.kernel.org if you have any problems that are not covered +by this document. + +-- mingo + diff -puN /dev/null Documentation/x86/i386/boot.txt --- /dev/null +++ a/Documentation/x86/i386/boot.txt @@ -0,0 +1,900 @@ + THE LINUX/x86 BOOT PROTOCOL + --------------------------- + +On the x86 platform, the Linux kernel uses a rather complicated boot +convention. This has evolved partially due to historical aspects, as +well as the desire in the early days to have the kernel itself be a +bootable image, the complicated PC memory model and due to changed +expectations in the PC industry caused by the effective demise of +real-mode DOS as a mainstream operating system. + +Currently, the following versions of the Linux/x86 boot protocol exist. + +Old kernels: zImage/Image support only. Some very early kernels + may not even support a command line. + +Protocol 2.00: (Kernel 1.3.73) Added bzImage and initrd support, as + well as a formalized way to communicate between the + boot loader and the kernel. setup.S made relocatable, + although the traditional setup area still assumed + writable. + +Protocol 2.01: (Kernel 1.3.76) Added a heap overrun warning. + +Protocol 2.02: (Kernel 2.4.0-test3-pre3) New command line protocol. + Lower the conventional memory ceiling. No overwrite + of the traditional setup area, thus making booting + safe for systems which use the EBDA from SMM or 32-bit + BIOS entry points. zImage deprecated but still + supported. + +Protocol 2.03: (Kernel 2.4.18-pre1) Explicitly makes the highest possible + initrd address available to the bootloader. + +Protocol 2.04: (Kernel 2.6.14) Extend the syssize field to four bytes. + +Protocol 2.05: (Kernel 2.6.20) Make protected mode kernel relocatable. + Introduce relocatable_kernel and kernel_alignment fields. + +Protocol 2.06: (Kernel 2.6.22) Added a field that contains the size of + the boot command line. + +Protocol 2.07: (Kernel 2.6.24) Added paravirtualised boot protocol. + Introduced hardware_subarch and hardware_subarch_data + and KEEP_SEGMENTS flag in load_flags. + +Protocol 2.08: (Kernel 2.6.26) Added crc32 checksum and ELF format + payload. Introduced payload_offset and payload length + fields to aid in locating the payload. + +Protocol 2.09: (Kernel 2.6.26) Added a field of 64-bit physical + pointer to single linked list of struct setup_data. + +**** MEMORY LAYOUT + +The traditional memory map for the kernel loader, used for Image or +zImage kernels, typically looks like: + + | | +0A0000 +------------------------+ + | Reserved for BIOS | Do not use. Reserved for BIOS EBDA. +09A000 +------------------------+ + | Command line | + | Stack/heap | For use by the kernel real-mode code. +098000 +------------------------+ + | Kernel setup | The kernel real-mode code. +090200 +------------------------+ + | Kernel boot sector | The kernel legacy boot sector. +090000 +------------------------+ + | Protected-mode kernel | The bulk of the kernel image. +010000 +------------------------+ + | Boot loader | <- Boot sector entry point 0000:7C00 +001000 +------------------------+ + | Reserved for MBR/BIOS | +000800 +------------------------+ + | Typically used by MBR | +000600 +------------------------+ + | BIOS use only | +000000 +------------------------+ + + +When using bzImage, the protected-mode kernel was relocated to +0x100000 ("high memory"), and the kernel real-mode block (boot sector, +setup, and stack/heap) was made relocatable to any address between +0x10000 and end of low memory. Unfortunately, in protocols 2.00 and +2.01 the 0x90000+ memory range is still used internally by the kernel; +the 2.02 protocol resolves that problem. + +It is desirable to keep the "memory ceiling" -- the highest point in +low memory touched by the boot loader -- as low as possible, since +some newer BIOSes have begun to allocate some rather large amounts of +memory, called the Extended BIOS Data Area, near the top of low +memory. The boot loader should use the "INT 12h" BIOS call to verify +how much low memory is available. + +Unfortunately, if INT 12h reports that the amount of memory is too +low, there is usually nothing the boot loader can do but to report an +error to the user. The boot loader should therefore be designed to +take up as little space in low memory as it reasonably can. For +zImage or old bzImage kernels, which need data written into the +0x90000 segment, the boot loader should make sure not to use memory +above the 0x9A000 point; too many BIOSes will break above that point. + +For a modern bzImage kernel with boot protocol version >= 2.02, a +memory layout like the following is suggested: + + ~ ~ + | Protected-mode kernel | +100000 +------------------------+ + | I/O memory hole | +0A0000 +------------------------+ + | Reserved for BIOS | Leave as much as possible unused + ~ ~ + | Command line | (Can also be below the X+10000 mark) +X+10000 +------------------------+ + | Stack/heap | For use by the kernel real-mode code. +X+08000 +------------------------+ + | Kernel setup | The kernel real-mode code. + | Kernel boot sector | The kernel legacy boot sector. +X +------------------------+ + | Boot loader | <- Boot sector entry point 0000:7C00 +001000 +------------------------+ + | Reserved for MBR/BIOS | +000800 +------------------------+ + | Typically used by MBR | +000600 +------------------------+ + | BIOS use only | +000000 +------------------------+ + +... where the address X is as low as the design of the boot loader +permits. + + +**** THE REAL-MODE KERNEL HEADER + +In the following text, and anywhere in the kernel boot sequence, "a +sector" refers to 512 bytes. It is independent of the actual sector +size of the underlying medium. + +The first step in loading a Linux kernel should be to load the +real-mode code (boot sector and setup code) and then examine the +following header at offset 0x01f1. The real-mode code can total up to +32K, although the boot loader may choose to load only the first two +sectors (1K) and then examine the bootup sector size. + +The header looks like: + +Offset Proto Name Meaning +/Size + +01F1/1 ALL(1 setup_sects The size of the setup in sectors +01F2/2 ALL root_flags If set, the root is mounted readonly +01F4/4 2.04+(2 syssize The size of the 32-bit code in 16-byte paras +01F8/2 ALL ram_size DO NOT USE - for bootsect.S use only +01FA/2 ALL vid_mode Video mode control +01FC/2 ALL root_dev Default root device number +01FE/2 ALL boot_flag 0xAA55 magic number +0200/2 2.00+ jump Jump instruction +0202/4 2.00+ header Magic signature "HdrS" +0206/2 2.00+ version Boot protocol version supported +0208/4 2.00+ realmode_swtch Boot loader hook (see below) +020C/2 2.00+ start_sys The load-low segment (0x1000) (obsolete) +020E/2 2.00+ kernel_version Pointer to kernel version string +0210/1 2.00+ type_of_loader Boot loader identifier +0211/1 2.00+ loadflags Boot protocol option flags +0212/2 2.00+ setup_move_size Move to high memory size (used with hooks) +0214/4 2.00+ code32_start Boot loader hook (see below) +0218/4 2.00+ ramdisk_image initrd load address (set by boot loader) +021C/4 2.00+ ramdisk_size initrd size (set by boot loader) +0220/4 2.00+ bootsect_kludge DO NOT USE - for bootsect.S use only +0224/2 2.01+ heap_end_ptr Free memory after setup end +0226/2 N/A pad1 Unused +0228/4 2.02+ cmd_line_ptr 32-bit pointer to the kernel command line +022C/4 2.03+ initrd_addr_max Highest legal initrd address +0230/4 2.05+ kernel_alignment Physical addr alignment required for kernel +0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not +0235/3 N/A pad2 Unused +0238/4 2.06+ cmdline_size Maximum size of the kernel command line +023C/4 2.07+ hardware_subarch Hardware subarchitecture +0240/8 2.07+ hardware_subarch_data Subarchitecture-specific data +0248/4 2.08+ payload_offset Offset of kernel payload +024C/4 2.08+ payload_length Length of kernel payload +0250/8 2.09+ setup_data 64-bit physical pointer to linked list + of struct setup_data + +(1) For backwards compatibility, if the setup_sects field contains 0, the + real value is 4. + +(2) For boot protocol prior to 2.04, the upper two bytes of the syssize + field are unusable, which means the size of a bzImage kernel + cannot be determined. + +If the "HdrS" (0x53726448) magic number is not found at offset 0x202, +the boot protocol version is "old". Loading an old kernel, the +following parameters should be assumed: + + Image type = zImage + initrd not supported + Real-mode kernel must be located at 0x90000. + +Otherwise, the "version" field contains the protocol version, +e.g. protocol version 2.01 will contain 0x0201 in this field. When +setting fields in the header, you must make sure only to set fields +supported by the protocol version in use. + + +**** DETAILS OF HEADER FIELDS + +For each field, some are information from the kernel to the bootloader +("read"), some are expected to be filled out by the bootloader +("write"), and some are expected to be read and modified by the +bootloader ("modify"). + +All general purpose boot loaders should write the fields marked +(obligatory). Boot loaders who want to load the kernel at a +nonstandard address should fill in the fields marked (reloc); other +boot loaders can ignore those fields. + +The byte order of all fields is littleendian (this is x86, after all.) + +Field name: setup_sects +Type: read +Offset/size: 0x1f1/1 +Protocol: ALL + + The size of the setup code in 512-byte sectors. If this field is + 0, the real value is 4. The real-mode code consists of the boot + sector (always one 512-byte sector) plus the setup code. + +Field name: root_flags +Type: modify (optional) +Offset/size: 0x1f2/2 +Protocol: ALL + + If this field is nonzero, the root defaults to readonly. The use of + this field is deprecated; use the "ro" or "rw" options on the + command line instead. + +Field name: syssize +Type: read +Offset/size: 0x1f4/4 (protocol 2.04+) 0x1f4/2 (protocol ALL) +Protocol: 2.04+ + + The size of the protected-mode code in units of 16-byte paragraphs. + For protocol versions older than 2.04 this field is only two bytes + wide, and therefore cannot be trusted for the size of a kernel if + the LOAD_HIGH flag is set. + +Field name: ram_size +Type: kernel internal +Offset/size: 0x1f8/2 +Protocol: ALL + + This field is obsolete. + +Field name: vid_mode +Type: modify (obligatory) +Offset/size: 0x1fa/2 + + Please see the section on SPECIAL COMMAND LINE OPTIONS. + +Field name: root_dev +Type: modify (optional) +Offset/size: 0x1fc/2 +Protocol: ALL + + The default root device device number. The use of this field is + deprecated, use the "root=" option on the command line instead. + +Field name: boot_flag +Type: read +Offset/size: 0x1fe/2 +Protocol: ALL + + Contains 0xAA55. This is the closest thing old Linux kernels have + to a magic number. + +Field name: jump +Type: read +Offset/size: 0x200/2 +Protocol: 2.00+ + + Contains an x86 jump instruction, 0xEB followed by a signed offset + relative to byte 0x202. This can be used to determine the size of + the header. + +Field name: header +Type: read +Offset/size: 0x202/4 +Protocol: 2.00+ + + Contains the magic number "HdrS" (0x53726448). + +Field name: version +Type: read +Offset/size: 0x206/2 +Protocol: 2.00+ + + Contains the boot protocol version, in (major << 8)+minor format, + e.g. 0x0204 for version 2.04, and 0x0a11 for a hypothetical version + 10.17. + +Field name: readmode_swtch +Type: modify (optional) +Offset/size: 0x208/4 +Protocol: 2.00+ + + Boot loader hook (see ADVANCED BOOT LOADER HOOKS below.) + +Field name: start_sys +Type: read +Offset/size: 0x20c/4 +Protocol: 2.00+ + + The load low segment (0x1000). Obsolete. + +Field name: kernel_version +Type: read +Offset/size: 0x20e/2 +Protocol: 2.00+ + + If set to a nonzero value, contains a pointer to a NUL-terminated + human-readable kernel version number string, less 0x200. This can + be used to display the kernel version to the user. This value + should be less than (0x200*setup_sects). + + For example, if this value is set to 0x1c00, the kernel version + number string can be found at offset 0x1e00 in the kernel file. + This is a valid value if and only if the "setup_sects" field + contains the value 15 or higher, as: + + 0x1c00 < 15*0x200 (= 0x1e00) but + 0x1c00 >= 14*0x200 (= 0x1c00) + + 0x1c00 >> 9 = 14, so the minimum value for setup_secs is 15. + +Field name: type_of_loader +Type: write (obligatory) +Offset/size: 0x210/1 +Protocol: 2.00+ + + If your boot loader has an assigned id (see table below), enter + 0xTV here, where T is an identifier for the boot loader and V is + a version number. Otherwise, enter 0xFF here. + + Assigned boot loader ids: + 0 LILO (0x00 reserved for pre-2.00 bootloader) + 1 Loadlin + 2 bootsect-loader (0x20, all other values reserved) + 3 SYSLINUX + 4 EtherBoot + 5 ELILO + 7 GRuB + 8 U-BOOT + 9 Xen + A Gujin + B Qemu + + Please contact if you need a bootloader ID + value assigned. + +Field name: loadflags +Type: modify (obligatory) +Offset/size: 0x211/1 +Protocol: 2.00+ + + This field is a bitmask. + + Bit 0 (read): LOADED_HIGH + - If 0, the protected-mode code is loaded at 0x10000. + - If 1, the protected-mode code is loaded at 0x100000. + + Bit 5 (write): QUIET_FLAG + - If 0, print early messages. + - If 1, suppress early messages. + This requests to the kernel (decompressor and early + kernel) to not write early messages that require + accessing the display hardware directly. + + Bit 6 (write): KEEP_SEGMENTS + Protocol: 2.07+ + - If 0, reload the segment registers in the 32bit entry point. + - If 1, do not reload the segment registers in the 32bit entry point. + Assume that %cs %ds %ss %es are all set to flat segments with + a base of 0 (or the equivalent for their environment). + + Bit 7 (write): CAN_USE_HEAP + Set this bit to 1 to indicate that the value entered in the + heap_end_ptr is valid. If this field is clear, some setup code + functionality will be disabled. + +Field name: setup_move_size +Type: modify (obligatory) +Offset/size: 0x212/2 +Protocol: 2.00-2.01 + + When using protocol 2.00 or 2.01, if the real mode kernel is not + loaded at 0x90000, it gets moved there later in the loading + sequence. Fill in this field if you want additional data (such as + the kernel command line) moved in addition to the real-mode kernel + itself. + + The unit is bytes starting with the beginning of the boot sector. + + This field is can be ignored when the protocol is 2.02 or higher, or + if the real-mode code is loaded at 0x90000. + +Field name: code32_start +Type: modify (optional, reloc) +Offset/size: 0x214/4 +Protocol: 2.00+ + + The address to jump to in protected mode. This defaults to the load + address of the kernel, and can be used by the boot loader to + determine the proper load address. + + This field can be modified for two purposes: + + 1. as a boot loader hook (see ADVANCED BOOT LOADER HOOKS below.) + + 2. if a bootloader which does not install a hook loads a + relocatable kernel at a nonstandard address it will have to modify + this field to point to the load address. + +Field name: ramdisk_image +Type: write (obligatory) +Offset/size: 0x218/4 +Protocol: 2.00+ + + The 32-bit linear address of the initial ramdisk or ramfs. Leave at + zero if there is no initial ramdisk/ramfs. + +Field name: ramdisk_size +Type: write (obligatory) +Offset/size: 0x21c/4 +Protocol: 2.00+ + + Size of the initial ramdisk or ramfs. Leave at zero if there is no + initial ramdisk/ramfs. + +Field name: bootsect_kludge +Type: kernel internal +Offset/size: 0x220/4 +Protocol: 2.00+ + + This field is obsolete. + +Field name: heap_end_ptr +Type: write (obligatory) +Offset/size: 0x224/2 +Protocol: 2.01+ + + Set this field to the offset (from the beginning of the real-mode + code) of the end of the setup stack/heap, minus 0x0200. + +Field name: cmd_line_ptr +Type: write (obligatory) +Offset/size: 0x228/4 +Protocol: 2.02+ + + Set this field to the linear address of the kernel command line. + The kernel command line can be located anywhere between the end of + the setup heap and 0xA0000; it does not have to be located in the + same 64K segment as the real-mode code itself. + + Fill in this field even if your boot loader does not support a + command line, in which case you can point this to an empty string + (or better yet, to the string "auto".) If this field is left at + zero, the kernel will assume that your boot loader does not support + the 2.02+ protocol. + +Field name: initrd_addr_max +Type: read +Offset/size: 0x22c/4 +Protocol: 2.03+ + + The maximum address that may be occupied by the initial + ramdisk/ramfs contents. For boot protocols 2.02 or earlier, this + field is not present, and the maximum address is 0x37FFFFFF. (This + address is defined as the address of the highest safe byte, so if + your ramdisk is exactly 131072 bytes long and this field is + 0x37FFFFFF, you can start your ramdisk at 0x37FE0000.) + +Field name: kernel_alignment +Type: read (reloc) +Offset/size: 0x230/4 +Protocol: 2.05+ + + Alignment unit required by the kernel (if relocatable_kernel is true.) + +Field name: relocatable_kernel +Type: read (reloc) +Offset/size: 0x234/1 +Protocol: 2.05+ + + If this field is nonzero, the protected-mode part of the kernel can + be loaded at any address that satisfies the kernel_alignment field. + After loading, the boot loader must set the code32_start field to + point to the loaded code, or to a boot loader hook. + +Field name: cmdline_size +Type: read +Offset/size: 0x238/4 +Protocol: 2.06+ + + The maximum size of the command line without the terminating + zero. This means that the command line can contain at most + cmdline_size characters. With protocol version 2.05 and earlier, the + maximum size was 255. + +Field name: hardware_subarch +Type: write (optional, defaults to x86/PC) +Offset/size: 0x23c/4 +Protocol: 2.07+ + + In a paravirtualized environment the hardware low level architectural + pieces such as interrupt handling, page table handling, and + accessing process control registers needs to be done differently. + + This field allows the bootloader to inform the kernel we are in one + one of those environments. + + 0x00000000 The default x86/PC environment + 0x00000001 lguest + 0x00000002 Xen + +Field name: hardware_subarch_data +Type: write (subarch-dependent) +Offset/size: 0x240/8 +Protocol: 2.07+ + + A pointer to data that is specific to hardware subarch + This field is currently unused for the default x86/PC environment, + do not modify. + +Field name: payload_offset +Type: read +Offset/size: 0x248/4 +Protocol: 2.08+ + + If non-zero then this field contains the offset from the end of the + real-mode code to the payload. + + The payload may be compressed. The format of both the compressed and + uncompressed data should be determined using the standard magic + numbers. Currently only gzip compressed ELF is used. + +Field name: payload_length +Type: read +Offset/size: 0x24c/4 +Protocol: 2.08+ + + The length of the payload. + +Field name: setup_data +Type: write (special) +Offset/size: 0x250/8 +Protocol: 2.09+ + + The 64-bit physical pointer to NULL terminated single linked list of + struct setup_data. This is used to define a more extensible boot + parameters passing mechanism. The definition of struct setup_data is + as follow: + + struct setup_data { + u64 next; + u32 type; + u32 len; + u8 data[0]; + }; + + Where, the next is a 64-bit physical pointer to the next node of + linked list, the next field of the last node is 0; the type is used + to identify the contents of data; the len is the length of data + field; the data holds the real payload. + + This list may be modified at a number of points during the bootup + process. Therefore, when modifying this list one should always make + sure to consider the case where the linked list already contains + entries. + + +**** THE IMAGE CHECKSUM + +From boot protocol version 2.08 onwards the CRC-32 is calculated over +the entire file using the characteristic polynomial 0x04C11DB7 and an +initial remainder of 0xffffffff. The checksum is appended to the +file; therefore the CRC of the file up to the limit specified in the +syssize field of the header is always 0. + + +**** THE KERNEL COMMAND LINE + +The kernel command line has become an important way for the boot +loader to communicate with the kernel. Some of its options are also +relevant to the boot loader itself, see "special command line options" +below. + +The kernel command line is a null-terminated string. The maximum +length can be retrieved from the field cmdline_size. Before protocol +version 2.06, the maximum was 255 characters. A string that is too +long will be automatically truncated by the kernel. + +If the boot protocol version is 2.02 or later, the address of the +kernel command line is given by the header field cmd_line_ptr (see +above.) This address can be anywhere between the end of the setup +heap and 0xA0000. + +If the protocol version is *not* 2.02 or higher, the kernel +command line is entered using the following protocol: + + At offset 0x0020 (word), "cmd_line_magic", enter the magic + number 0xA33F. + + At offset 0x0022 (word), "cmd_line_offset", enter the offset + of the kernel command line (relative to the start of the + real-mode kernel). + + The kernel command line *must* be within the memory region + covered by setup_move_size, so you may need to adjust this + field. + + +**** MEMORY LAYOUT OF THE REAL-MODE CODE + +The real-mode code requires a stack/heap to be set up, as well as +memory allocated for the kernel command line. This needs to be done +in the real-mode accessible memory in bottom megabyte. + +It should be noted that modern machines often have a sizable Extended +BIOS Data Area (EBDA). As a result, it is advisable to use as little +of the low megabyte as possible. + +Unfortunately, under the following circumstances the 0x90000 memory +segment has to be used: + + - When loading a zImage kernel ((loadflags & 0x01) == 0). + - When loading a 2.01 or earlier boot protocol kernel. + + -> For the 2.00 and 2.01 boot protocols, the real-mode code + can be loaded at another address, but it is internally + relocated to 0x90000. For the "old" protocol, the + real-mode code must be loaded at 0x90000. + +When loading at 0x90000, avoid using memory above 0x9a000. + +For boot protocol 2.02 or higher, the command line does not have to be +located in the same 64K segment as the real-mode setup code; it is +thus permitted to give the stack/heap the full 64K segment and locate +the command line above it. + +The kernel command line should not be located below the real-mode +code, nor should it be located in high memory. + + +**** SAMPLE BOOT CONFIGURATION + +As a sample configuration, assume the following layout of the real +mode segment: + + When loading below 0x90000, use the entire segment: + + 0x0000-0x7fff Real mode kernel + 0x8000-0xdfff Stack and heap + 0xe000-0xffff Kernel command line + + When loading at 0x90000 OR the protocol version is 2.01 or earlier: + + 0x0000-0x7fff Real mode kernel + 0x8000-0x97ff Stack and heap + 0x9800-0x9fff Kernel command line + +Such a boot loader should enter the following fields in the header: + + unsigned long base_ptr; /* base address for real-mode segment */ + + if ( setup_sects == 0 ) { + setup_sects = 4; + } + + if ( protocol >= 0x0200 ) { + type_of_loader = ; + if ( loading_initrd ) { + ramdisk_image = ; + ramdisk_size = ; + } + + if ( protocol >= 0x0202 && loadflags & 0x01 ) + heap_end = 0xe000; + else + heap_end = 0x9800; + + if ( protocol >= 0x0201 ) { + heap_end_ptr = heap_end - 0x200; + loadflags |= 0x80; /* CAN_USE_HEAP */ + } + + if ( protocol >= 0x0202 ) { + cmd_line_ptr = base_ptr + heap_end; + strcpy(cmd_line_ptr, cmdline); + } else { + cmd_line_magic = 0xA33F; + cmd_line_offset = heap_end; + setup_move_size = heap_end + strlen(cmdline)+1; + strcpy(base_ptr+cmd_line_offset, cmdline); + } + } else { + /* Very old kernel */ + + heap_end = 0x9800; + + cmd_line_magic = 0xA33F; + cmd_line_offset = heap_end; + + /* A very old kernel MUST have its real-mode code + loaded at 0x90000 */ + + if ( base_ptr != 0x90000 ) { + /* Copy the real-mode kernel */ + memcpy(0x90000, base_ptr, (setup_sects+1)*512); + base_ptr = 0x90000; /* Relocated */ + } + + strcpy(0x90000+cmd_line_offset, cmdline); + + /* It is recommended to clear memory up to the 32K mark */ + memset(0x90000 + (setup_sects+1)*512, 0, + (64-(setup_sects+1))*512); + } + + +**** LOADING THE REST OF THE KERNEL + +The 32-bit (non-real-mode) kernel starts at offset (setup_sects+1)*512 +in the kernel file (again, if setup_sects == 0 the real value is 4.) +It should be loaded at address 0x10000 for Image/zImage kernels and +0x100000 for bzImage kernels. + +The kernel is a bzImage kernel if the protocol >= 2.00 and the 0x01 +bit (LOAD_HIGH) in the loadflags field is set: + + is_bzImage = (protocol >= 0x0200) && (loadflags & 0x01); + load_address = is_bzImage ? 0x100000 : 0x10000; + +Note that Image/zImage kernels can be up to 512K in size, and thus use +the entire 0x10000-0x90000 range of memory. This means it is pretty +much a requirement for these kernels to load the real-mode part at +0x90000. bzImage kernels allow much more flexibility. + + +**** SPECIAL COMMAND LINE OPTIONS + +If the command line provided by the boot loader is entered by the +user, the user may expect the following command line options to work. +They should normally not be deleted from the kernel command line even +though not all of them are actually meaningful to the kernel. Boot +loader authors who need additional command line options for the boot +loader itself should get them registered in +Documentation/kernel-parameters.txt to make sure they will not +conflict with actual kernel options now or in the future. + + vga= + here is either an integer (in C notation, either + decimal, octal, or hexadecimal) or one of the strings + "normal" (meaning 0xFFFF), "ext" (meaning 0xFFFE) or "ask" + (meaning 0xFFFD). This value should be entered into the + vid_mode field, as it is used by the kernel before the command + line is parsed. + + mem= + is an integer in C notation optionally followed by + (case insensitive) K, M, G, T, P or E (meaning << 10, << 20, + << 30, << 40, << 50 or << 60). This specifies the end of + memory to the kernel. This affects the possible placement of + an initrd, since an initrd should be placed near end of + memory. Note that this is an option to *both* the kernel and + the bootloader! + + initrd= + An initrd should be loaded. The meaning of is + obviously bootloader-dependent, and some boot loaders + (e.g. LILO) do not have such a command. + +In addition, some boot loaders add the following options to the +user-specified command line: + + BOOT_IMAGE= + The boot image which was loaded. Again, the meaning of + is obviously bootloader-dependent. + + auto + The kernel was booted without explicit user intervention. + +If these options are added by the boot loader, it is highly +recommended that they are located *first*, before the user-specified +or configuration-specified command line. Otherwise, "init=/bin/sh" +gets confused by the "auto" option. + + +**** RUNNING THE KERNEL + +The kernel is started by jumping to the kernel entry point, which is +located at *segment* offset 0x20 from the start of the real mode +kernel. This means that if you loaded your real-mode kernel code at +0x90000, the kernel entry point is 9020:0000. + +At entry, ds = es = ss should point to the start of the real-mode +kernel code (0x9000 if the code is loaded at 0x90000), sp should be +set up properly, normally pointing to the top of the heap, and +interrupts should be disabled. Furthermore, to guard against bugs in +the kernel, it is recommended that the boot loader sets fs = gs = ds = +es = ss. + +In our example from above, we would do: + + /* Note: in the case of the "old" kernel protocol, base_ptr must + be == 0x90000 at this point; see the previous sample code */ + + seg = base_ptr >> 4; + + cli(); /* Enter with interrupts disabled! */ + + /* Set up the real-mode kernel stack */ + _SS = seg; + _SP = heap_end; + + _DS = _ES = _FS = _GS = seg; + jmp_far(seg+0x20, 0); /* Run the kernel */ + +If your boot sector accesses a floppy drive, it is recommended to +switch off the floppy motor before running the kernel, since the +kernel boot leaves interrupts off and thus the motor will not be +switched off, especially if the loaded kernel has the floppy driver as +a demand-loaded module! + + +**** ADVANCED BOOT LOADER HOOKS + +If the boot loader runs in a particularly hostile environment (such as +LOADLIN, which runs under DOS) it may be impossible to follow the +standard memory location requirements. Such a boot loader may use the +following hooks that, if set, are invoked by the kernel at the +appropriate time. The use of these hooks should probably be +considered an absolutely last resort! + +IMPORTANT: All the hooks are required to preserve %esp, %ebp, %esi and +%edi across invocation. + + realmode_swtch: + A 16-bit real mode far subroutine invoked immediately before + entering protected mode. The default routine disables NMI, so + your routine should probably do so, too. + + code32_start: + A 32-bit flat-mode routine *jumped* to immediately after the + transition to protected mode, but before the kernel is + uncompressed. No segments, except CS, are guaranteed to be + set up (current kernels do, but older ones do not); you should + set them up to BOOT_DS (0x18) yourself. + + After completing your hook, you should jump to the address + that was in this field before your boot loader overwrote it + (relocated, if appropriate.) + + +**** 32-bit BOOT PROTOCOL + +For machine with some new BIOS other than legacy BIOS, such as EFI, +LinuxBIOS, etc, and kexec, the 16-bit real mode setup code in kernel +based on legacy BIOS can not be used, so a 32-bit boot protocol needs +to be defined. + +In 32-bit boot protocol, the first step in loading a Linux kernel +should be to setup the boot parameters (struct boot_params, +traditionally known as "zero page"). The memory for struct boot_params +should be allocated and initialized to all zero. Then the setup header +from offset 0x01f1 of kernel image on should be loaded into struct +boot_params and examined. The end of setup header can be calculated as +follow: + + 0x0202 + byte value at offset 0x0201 + +In addition to read/modify/write the setup header of the struct +boot_params as that of 16-bit boot protocol, the boot loader should +also fill the additional fields of the struct boot_params as that +described in zero-page.txt. + +After setupping the struct boot_params, the boot loader can load the +32/64-bit kernel in the same way as that of 16-bit boot protocol. + +In 32-bit boot protocol, the kernel is started by jumping to the +32-bit kernel entry point, which is the start address of loaded +32/64-bit kernel. + +At entry, the CPU must be in 32-bit protected mode with paging +disabled; a GDT must be loaded with the descriptors for selectors +__BOOT_CS(0x10) and __BOOT_DS(0x18); both descriptors must be 4G flat +segment; __BOOS_CS must have execute/read permission, and __BOOT_DS +must have read/write permission; CS must be __BOOT_CS and DS, ES, SS +must be __BOOT_DS; interrupt must be disabled; %esi must hold the base +address of the struct boot_params; %ebp, %edi and %ebx must be zero. diff -puN /dev/null Documentation/x86/i386/usb-legacy-support.txt --- /dev/null +++ a/Documentation/x86/i386/usb-legacy-support.txt @@ -0,0 +1,44 @@ +USB Legacy support +~~~~~~~~~~~~~~~~~~ + +Vojtech Pavlik , January 2004 + + +Also known as "USB Keyboard" or "USB Mouse support" in the BIOS Setup is a +feature that allows one to use the USB mouse and keyboard as if they were +their classic PS/2 counterparts. This means one can use an USB keyboard to +type in LILO for example. + +It has several drawbacks, though: + +1) On some machines, the emulated PS/2 mouse takes over even when no USB + mouse is present and a real PS/2 mouse is present. In that case the extra + features (wheel, extra buttons, touchpad mode) of the real PS/2 mouse may + not be available. + +2) If CONFIG_HIGHMEM64G is enabled, the PS/2 mouse emulation can cause + system crashes, because the SMM BIOS is not expecting to be in PAE mode. + The Intel E7505 is a typical machine where this happens. + +3) If AMD64 64-bit mode is enabled, again system crashes often happen, + because the SMM BIOS isn't expecting the CPU to be in 64-bit mode. The + BIOS manufacturers only test with Windows, and Windows doesn't do 64-bit + yet. + +Solutions: + +Problem 1) can be solved by loading the USB drivers prior to loading the +PS/2 mouse driver. Since the PS/2 mouse driver is in 2.6 compiled into +the kernel unconditionally, this means the USB drivers need to be +compiled-in, too. + +Problem 2) can currently only be solved by either disabling HIGHMEM64G +in the kernel config or USB Legacy support in the BIOS. A BIOS update +could help, but so far no such update exists. + +Problem 3) is usually fixed by a BIOS update. Check the board +manufacturers web site. If an update is not available, disable USB +Legacy support in the BIOS. If this alone doesn't help, try also adding +idle=poll on the kernel command line. The BIOS may be entering the SMM +on the HLT instruction as well. + diff -puN /dev/null Documentation/x86/i386/zero-page.txt --- /dev/null +++ a/Documentation/x86/i386/zero-page.txt @@ -0,0 +1,31 @@ +The additional fields in struct boot_params as a part of 32-bit boot +protocol of kernel. These should be filled by bootloader or 16-bit +real-mode setup code of the kernel. References/settings to it mainly +are in: + + include/asm-x86/bootparam.h + + +Offset Proto Name Meaning +/Size + +000/040 ALL screen_info Text mode or frame buffer information + (struct screen_info) +040/014 ALL apm_bios_info APM BIOS information (struct apm_bios_info) +060/010 ALL ist_info Intel SpeedStep (IST) BIOS support information + (struct ist_info) +080/010 ALL hd0_info hd0 disk parameter, OBSOLETE!! +090/010 ALL hd1_info hd1 disk parameter, OBSOLETE!! +0A0/010 ALL sys_desc_table System description table (struct sys_desc_table) +140/080 ALL edid_info Video mode setup (struct edid_info) +1C0/020 ALL efi_info EFI 32 information (struct efi_info) +1E0/004 ALL alk_mem_k Alternative mem check, in KB +1E4/004 ALL scratch Scratch field for the kernel setup code +1E8/001 ALL e820_entries Number of entries in e820_map (below) +1E9/001 ALL eddbuf_entries Number of entries in eddbuf (below) +1EA/001 ALL edd_mbr_sig_buf_entries Number of entries in edd_mbr_sig_buffer + (below) +290/040 ALL edd_mbr_sig_buffer EDD MBR signatures +2D0/A00 ALL e820_map E820 memory map table + (array of struct e820entry) +D00/1EC ALL eddbuf EDD data (array of struct edd_info) diff -puN /dev/null Documentation/x86/x86_64/00-INDEX --- /dev/null +++ a/Documentation/x86/x86_64/00-INDEX @@ -0,0 +1,16 @@ +00-INDEX + - This file +boot-options.txt + - AMD64-specific boot options. +cpu-hotplug-spec + - Firmware support for CPU hotplug under Linux/x86-64 +fake-numa-for-cpusets + - Using numa=fake and CPUSets for Resource Management +kernel-stacks + - Context-specific per-processor interrupt stacks. +machinecheck + - Configurable sysfs parameters for the x86-64 machine check code. +mm.txt + - Memory layout of x86-64 (4 level page tables, 46 bits physical). +uefi.txt + - Booting Linux via Unified Extensible Firmware Interface. diff -puN /dev/null Documentation/x86/x86_64/boot-options.txt --- /dev/null +++ a/Documentation/x86/x86_64/boot-options.txt @@ -0,0 +1,314 @@ +AMD64 specific boot options + +There are many others (usually documented in driver documentation), but +only the AMD64 specific ones are listed here. + +Machine check + + mce=off disable machine check + mce=bootlog Enable logging of machine checks left over from booting. + Disabled by default on AMD because some BIOS leave bogus ones. + If your BIOS doesn't do that it's a good idea to enable though + to make sure you log even machine check events that result + in a reboot. On Intel systems it is enabled by default. + mce=nobootlog + Disable boot machine check logging. + mce=tolerancelevel (number) + 0: always panic on uncorrected errors, log corrected errors + 1: panic or SIGBUS on uncorrected errors, log corrected errors + 2: SIGBUS or log uncorrected errors, log corrected errors + 3: never panic or SIGBUS, log all errors (for testing only) + Default is 1 + Can be also set using sysfs which is preferable. + + nomce (for compatibility with i386): same as mce=off + + Everything else is in sysfs now. + +APICs + + apic Use IO-APIC. Default + + noapic Don't use the IO-APIC. + + disableapic Don't use the local APIC + + nolapic Don't use the local APIC (alias for i386 compatibility) + + pirq=... See Documentation/i386/IO-APIC.txt + + noapictimer Don't set up the APIC timer + + no_timer_check Don't check the IO-APIC timer. This can work around + problems with incorrect timer initialization on some boards. + + apicmaintimer Run time keeping from the local APIC timer instead + of using the PIT/HPET interrupt for this. This is useful + when the PIT/HPET interrupts are unreliable. + + noapicmaintimer Don't do time keeping using the APIC timer. + Useful when this option was auto selected, but doesn't work. + + apicpmtimer + Do APIC timer calibration using the pmtimer. Implies + apicmaintimer. Useful when your PIT timer is totally + broken. + + disable_8254_timer / enable_8254_timer + Enable interrupt 0 timer routing over the 8254 in addition to over + the IO-APIC. The kernel tries to set a sensible default. + +Early Console + + syntax: earlyprintk=vga + earlyprintk=serial[,ttySn[,baudrate]] + + The early console is useful when the kernel crashes before the + normal console is initialized. It is not enabled by + default because it has some cosmetic problems. + Append ,keep to not disable it when the real console takes over. + Only vga or serial at a time, not both. + Currently only ttyS0 and ttyS1 are supported. + Interaction with the standard serial driver is not very good. + The VGA output is eventually overwritten by the real console. + +Timing + + notsc + Don't use the CPU time stamp counter to read the wall time. + This can be used to work around timing problems on multiprocessor systems + with not properly synchronized CPUs. + + report_lost_ticks + Report when timer interrupts are lost because some code turned off + interrupts for too long. + + nmi_watchdog=NUMBER[,panic] + NUMBER can be: + 0 don't use an NMI watchdog + 1 use the IO-APIC timer for the NMI watchdog + 2 use the local APIC for the NMI watchdog using a performance counter. Note + This will use one performance counter and the local APIC's performance + vector. + When panic is specified panic when an NMI watchdog timeout occurs. + This is useful when you use a panic=... timeout and need the box + quickly up again. + + nohpet + Don't use the HPET timer. + +Idle loop + + idle=poll + Don't do power saving in the idle loop using HLT, but poll for rescheduling + event. This will make the CPUs eat a lot more power, but may be useful + to get slightly better performance in multiprocessor benchmarks. It also + makes some profiling using performance counters more accurate. + Please note that on systems with MONITOR/MWAIT support (like Intel EM64T + CPUs) this option has no performance advantage over the normal idle loop. + It may also interact badly with hyperthreading. + +Rebooting + + reboot=b[ios] | t[riple] | k[bd] | a[cpi] | e[fi] [, [w]arm | [c]old] + bios Use the CPU reboot vector for warm reset + warm Don't set the cold reboot flag + cold Set the cold reboot flag + triple Force a triple fault (init) + kbd Use the keyboard controller. cold reset (default) + acpi Use the ACPI RESET_REG in the FADT. If ACPI is not configured or the + ACPI reset does not work, the reboot path attempts the reset using + the keyboard controller. + efi Use efi reset_system runtime service. If EFI is not configured or the + EFI reset does not work, the reboot path attempts the reset using + the keyboard controller. + + Using warm reset will be much faster especially on big memory + systems because the BIOS will not go through the memory check. + Disadvantage is that not all hardware will be completely reinitialized + on reboot so there may be boot problems on some systems. + + reboot=force + + Don't stop other CPUs on reboot. This can make reboot more reliable + in some cases. + +Non Executable Mappings + + noexec=on|off + + on Enable(default) + off Disable + +SMP + + additional_cpus=NUM Allow NUM more CPUs for hotplug + (defaults are specified by the BIOS, see Documentation/x86_64/cpu-hotplug-spec) + +NUMA + + numa=off Only set up a single NUMA node spanning all memory. + + numa=noacpi Don't parse the SRAT table for NUMA setup + + numa=fake=CMDLINE + If a number, fakes CMDLINE nodes and ignores NUMA setup of the + actual machine. Otherwise, system memory is configured + depending on the sizes and coefficients listed. For example: + numa=fake=2*512,1024,4*256,*128 + gives two 512M nodes, a 1024M node, four 256M nodes, and the + rest split into 128M chunks. If the last character of CMDLINE + is a *, the remaining memory is divided up equally among its + coefficient: + numa=fake=2*512,2* + gives two 512M nodes and the rest split into two nodes. + Otherwise, the remaining system RAM is allocated to an + additional node. + + numa=hotadd=percent + Only allow hotadd memory to preallocate page structures upto + percent of already available memory. + numa=hotadd=0 will disable hotadd memory. + +ACPI + + acpi=off Don't enable ACPI + acpi=ht Use ACPI boot table parsing, but don't enable ACPI + interpreter + acpi=force Force ACPI on (currently not needed) + + acpi=strict Disable out of spec ACPI workarounds. + + acpi_sci={edge,level,high,low} Set up ACPI SCI interrupt. + + acpi=noirq Don't route interrupts + +PCI + + pci=off Don't use PCI + pci=conf1 Use conf1 access. + pci=conf2 Use conf2 access. + pci=rom Assign ROMs. + pci=assign-busses Assign busses + pci=irqmask=MASK Set PCI interrupt mask to MASK + pci=lastbus=NUMBER Scan upto NUMBER busses, no matter what the mptable says. + pci=noacpi Don't use ACPI to set up PCI interrupt routing. + +IOMMU (input/output memory management unit) + + Currently four x86-64 PCI-DMA mapping implementations exist: + + 1. : use no hardware/software IOMMU at all + (e.g. because you have < 3 GB memory). + Kernel boot message: "PCI-DMA: Disabling IOMMU" + + 2. : AMD GART based hardware IOMMU. + Kernel boot message: "PCI-DMA: using GART IOMMU" + + 3. : Software IOMMU implementation. Used + e.g. if there is no hardware IOMMU in the system and it is need because + you have >3GB memory or told the kernel to us it (iommu=soft)) + Kernel boot message: "PCI-DMA: Using software bounce buffering + for IO (SWIOTLB)" + + 4. : IBM Calgary hardware IOMMU. Used in IBM + pSeries and xSeries servers. This hardware IOMMU supports DMA address + mapping with memory protection, etc. + Kernel boot message: "PCI-DMA: Using Calgary IOMMU" + + iommu=[][,noagp][,off][,force][,noforce][,leak[=] + [,memaper[=]][,merge][,forcesac][,fullflush][,nomerge] + [,noaperture][,calgary] + + General iommu options: + off Don't initialize and use any kind of IOMMU. + noforce Don't force hardware IOMMU usage when it is not needed. + (default). + force Force the use of the hardware IOMMU even when it is + not actually needed (e.g. because < 3 GB memory). + soft Use software bounce buffering (SWIOTLB) (default for + Intel machines). This can be used to prevent the usage + of an available hardware IOMMU. + + iommu options only relevant to the AMD GART hardware IOMMU: + Set the size of the remapping area in bytes. + allowed Overwrite iommu off workarounds for specific chipsets. + fullflush Flush IOMMU on each allocation (default). + nofullflush Don't use IOMMU fullflush. + leak Turn on simple iommu leak tracing (only when + CONFIG_IOMMU_LEAK is on). Default number of leak pages + is 20. + memaper[=] Allocate an own aperture over RAM with size 32MB<4GB. + DAC is used with 32-bit PCI to push a 64-bit address in + two cycles. When off all DMA over >4GB is forced through + an IOMMU or software bounce buffering. + nodac Forbid DAC mode, i.e. DMA >4GB. + panic Always panic when IOMMU overflows. + calgary Use the Calgary IOMMU if it is available + + iommu options only relevant to the software bounce buffering (SWIOTLB) IOMMU + implementation: + swiotlb=[,force] + Prereserve that many 128K pages for the software IO + bounce buffering. + force Force all IO through the software TLB. + + Settings for the IBM Calgary hardware IOMMU currently found in IBM + pSeries and xSeries machines: + + calgary=[64k,128k,256k,512k,1M,2M,4M,8M] + calgary=[translate_empty_slots] + calgary=[disable=] + panic Always panic when IOMMU overflows + + 64k,...,8M - Set the size of each PCI slot's translation table + when using the Calgary IOMMU. This is the size of the translation + table itself in main memory. The smallest table, 64k, covers an IO + space of 32MB; the largest, 8MB table, can cover an IO space of + 4GB. Normally the kernel will make the right choice by itself. + + translate_empty_slots - Enable translation even on slots that have + no devices attached to them, in case a device will be hotplugged + in the future. + + disable= - Disable translation on a given PHB. For + example, the built-in graphics adapter resides on the first bridge + (PCI bus number 0); if translation (isolation) is enabled on this + bridge, X servers that access the hardware directly from user + space might stop working. Use this option if you have devices that + are accessed from userspace directly on some PCI host bridge. + +Debugging + + oops=panic Always panic on oopses. Default is to just kill the process, + but there is a small probability of deadlocking the machine. + This will also cause panics on machine check exceptions. + Useful together with panic=30 to trigger a reboot. + + kstack=N Print N words from the kernel stack in oops dumps. + + pagefaulttrace Dump all page faults. Only useful for extreme debugging + and will create a lot of output. + + call_trace=[old|both|newfallback|new] + old: use old inexact backtracer + new: use new exact dwarf2 unwinder + both: print entries from both + newfallback: use new unwinder but fall back to old if it gets + stuck (default) + +Miscellaneous + + nogbpages + Do not use GB pages for kernel direct mappings. + gbpages + Use GB pages for kernel direct mappings. diff -puN /dev/null Documentation/x86/x86_64/cpu-hotplug-spec --- /dev/null +++ a/Documentation/x86/x86_64/cpu-hotplug-spec @@ -0,0 +1,21 @@ +Firmware support for CPU hotplug under Linux/x86-64 +--------------------------------------------------- + +Linux/x86-64 supports CPU hotplug now. For various reasons Linux wants to +know in advance of boot time the maximum number of CPUs that could be plugged +into the system. ACPI 3.0 currently has no official way to supply +this information from the firmware to the operating system. + +In ACPI each CPU needs an LAPIC object in the MADT table (5.2.11.5 in the +ACPI 3.0 specification). ACPI already has the concept of disabled LAPIC +objects by setting the Enabled bit in the LAPIC object to zero. + +For CPU hotplug Linux/x86-64 expects now that any possible future hotpluggable +CPU is already available in the MADT. If the CPU is not available yet +it should have its LAPIC Enabled bit set to 0. Linux will use the number +of disabled LAPICs to compute the maximum number of future CPUs. + +In the worst case the user can overwrite this choice using a command line +option (additional_cpus=...), but it is recommended to supply the correct +number (or a reasonable approximation of it, with erring towards more not less) +in the MADT to avoid manual configuration. diff -puN /dev/null Documentation/x86/x86_64/fake-numa-for-cpusets --- /dev/null +++ a/Documentation/x86/x86_64/fake-numa-for-cpusets @@ -0,0 +1,66 @@ +Using numa=fake and CPUSets for Resource Management +Written by David Rientjes + +This document describes how the numa=fake x86_64 command-line option can be used +in conjunction with cpusets for coarse memory management. Using this feature, +you can create fake NUMA nodes that represent contiguous chunks of memory and +assign them to cpusets and their attached tasks. This is a way of limiting the +amount of system memory that are available to a certain class of tasks. + +For more information on the features of cpusets, see Documentation/cpusets.txt. +There are a number of different configurations you can use for your needs. For +more information on the numa=fake command line option and its various ways of +configuring fake nodes, see Documentation/x86_64/boot-options.txt. + +For the purposes of this introduction, we'll assume a very primitive NUMA +emulation setup of "numa=fake=4*512,". This will split our system memory into +four equal chunks of 512M each that we can now use to assign to cpusets. As +you become more familiar with using this combination for resource control, +you'll determine a better setup to minimize the number of nodes you have to deal +with. + +A machine may be split as follows with "numa=fake=4*512," as reported by dmesg: + + Faking node 0 at 0000000000000000-0000000020000000 (512MB) + Faking node 1 at 0000000020000000-0000000040000000 (512MB) + Faking node 2 at 0000000040000000-0000000060000000 (512MB) + Faking node 3 at 0000000060000000-0000000080000000 (512MB) + ... + On node 0 totalpages: 130975 + On node 1 totalpages: 131072 + On node 2 totalpages: 131072 + On node 3 totalpages: 131072 + +Now following the instructions for mounting the cpusets filesystem from +Documentation/cpusets.txt, you can assign fake nodes (i.e. contiguous memory +address spaces) to individual cpusets: + + [root@xroads /]# mkdir exampleset + [root@xroads /]# mount -t cpuset none exampleset + [root@xroads /]# mkdir exampleset/ddset + [root@xroads /]# cd exampleset/ddset + [root@xroads /exampleset/ddset]# echo 0-1 > cpus + [root@xroads /exampleset/ddset]# echo 0-1 > mems + +Now this cpuset, 'ddset', will only allowed access to fake nodes 0 and 1 for +memory allocations (1G). + +You can now assign tasks to these cpusets to limit the memory resources +available to them according to the fake nodes assigned as mems: + + [root@xroads /exampleset/ddset]# echo $$ > tasks + [root@xroads /exampleset/ddset]# dd if=/dev/zero of=tmp bs=1024 count=1G + [1] 13425 + +Notice the difference between the system memory usage as reported by +/proc/meminfo between the restricted cpuset case above and the unrestricted +case (i.e. running the same 'dd' command without assigning it to a fake NUMA +cpuset): + Unrestricted Restricted + MemTotal: 3091900 kB 3091900 kB + MemFree: 42113 kB 1513236 kB + +This allows for coarse memory management for the tasks you assign to particular +cpusets. Since cpusets can form a hierarchy, you can create some pretty +interesting combinations of use-cases for various classes of tasks for your +memory management needs. diff -puN /dev/null Documentation/x86/x86_64/kernel-stacks --- /dev/null +++ a/Documentation/x86/x86_64/kernel-stacks @@ -0,0 +1,99 @@ +Most of the text from Keith Owens, hacked by AK + +x86_64 page size (PAGE_SIZE) is 4K. + +Like all other architectures, x86_64 has a kernel stack for every +active thread. These thread stacks are THREAD_SIZE (2*PAGE_SIZE) big. +These stacks contain useful data as long as a thread is alive or a +zombie. While the thread is in user space the kernel stack is empty +except for the thread_info structure at the bottom. + +In addition to the per thread stacks, there are specialized stacks +associated with each CPU. These stacks are only used while the kernel +is in control on that CPU; when a CPU returns to user space the +specialized stacks contain no useful data. The main CPU stacks are: + +* Interrupt stack. IRQSTACKSIZE + + Used for external hardware interrupts. If this is the first external + hardware interrupt (i.e. not a nested hardware interrupt) then the + kernel switches from the current task to the interrupt stack. Like + the split thread and interrupt stacks on i386 (with CONFIG_4KSTACKS), + this gives more room for kernel interrupt processing without having + to increase the size of every per thread stack. + + The interrupt stack is also used when processing a softirq. + +Switching to the kernel interrupt stack is done by software based on a +per CPU interrupt nest counter. This is needed because x86-64 "IST" +hardware stacks cannot nest without races. + +x86_64 also has a feature which is not available on i386, the ability +to automatically switch to a new stack for designated events such as +double fault or NMI, which makes it easier to handle these unusual +events on x86_64. This feature is called the Interrupt Stack Table +(IST). There can be up to 7 IST entries per CPU. The IST code is an +index into the Task State Segment (TSS). The IST entries in the TSS +point to dedicated stacks; each stack can be a different size. + +An IST is selected by a non-zero value in the IST field of an +interrupt-gate descriptor. When an interrupt occurs and the hardware +loads such a descriptor, the hardware automatically sets the new stack +pointer based on the IST value, then invokes the interrupt handler. If +software wants to allow nested IST interrupts then the handler must +adjust the IST values on entry to and exit from the interrupt handler. +(This is occasionally done, e.g. for debug exceptions.) + +Events with different IST codes (i.e. with different stacks) can be +nested. For example, a debug interrupt can safely be interrupted by an +NMI. arch/x86_64/kernel/entry.S::paranoidentry adjusts the stack +pointers on entry to and exit from all IST events, in theory allowing +IST events with the same code to be nested. However in most cases, the +stack size allocated to an IST assumes no nesting for the same code. +If that assumption is ever broken then the stacks will become corrupt. + +The currently assigned IST stacks are :- + +* STACKFAULT_STACK. EXCEPTION_STKSZ (PAGE_SIZE). + + Used for interrupt 12 - Stack Fault Exception (#SS). + + This allows the CPU to recover from invalid stack segments. Rarely + happens. + +* DOUBLEFAULT_STACK. EXCEPTION_STKSZ (PAGE_SIZE). + + Used for interrupt 8 - Double Fault Exception (#DF). + + Invoked when handling one exception causes another exception. Happens + when the kernel is very confused (e.g. kernel stack pointer corrupt). + Using a separate stack allows the kernel to recover from it well enough + in many cases to still output an oops. + +* NMI_STACK. EXCEPTION_STKSZ (PAGE_SIZE). + + Used for non-maskable interrupts (NMI). + + NMI can be delivered at any time, including when the kernel is in the + middle of switching stacks. Using IST for NMI events avoids making + assumptions about the previous state of the kernel stack. + +* DEBUG_STACK. DEBUG_STKSZ + + Used for hardware debug interrupts (interrupt 1) and for software + debug interrupts (INT3). + + When debugging a kernel, debug interrupts (both hardware and + software) can occur at any time. Using IST for these interrupts + avoids making assumptions about the previous state of the kernel + stack. + +* MCE_STACK. EXCEPTION_STKSZ (PAGE_SIZE). + + Used for interrupt 18 - Machine Check Exception (#MC). + + MCE can be delivered at any time, including when the kernel is in the + middle of switching stacks. Using IST for MCE events avoids making + assumptions about the previous state of the kernel stack. + +For more details see the Intel IA32 or AMD AMD64 architecture manuals. diff -puN /dev/null Documentation/x86/x86_64/machinecheck --- /dev/null +++ a/Documentation/x86/x86_64/machinecheck @@ -0,0 +1,77 @@ + +Configurable sysfs parameters for the x86-64 machine check code. + +Machine checks report internal hardware error conditions detected +by the CPU. Uncorrected errors typically cause a machine check +(often with panic), corrected ones cause a machine check log entry. + +Machine checks are organized in banks (normally associated with +a hardware subsystem) and subevents in a bank. The exact meaning +of the banks and subevent is CPU specific. + +mcelog knows how to decode them. + +When you see the "Machine check errors logged" message in the system +log then mcelog should run to collect and decode machine check entries +from /dev/mcelog. Normally mcelog should be run regularly from a cronjob. + +Each CPU has a directory in /sys/devices/system/machinecheck/machinecheckN +(N = CPU number) + +The directory contains some configurable entries: + +Entries: + +bankNctl +(N bank number) + 64bit Hex bitmask enabling/disabling specific subevents for bank N + When a bit in the bitmask is zero then the respective + subevent will not be reported. + By default all events are enabled. + Note that BIOS maintain another mask to disable specific events + per bank. This is not visible here + +The following entries appear for each CPU, but they are truly shared +between all CPUs. + +check_interval + How often to poll for corrected machine check errors, in seconds + (Note output is hexademical). Default 5 minutes. When the poller + finds MCEs it triggers an exponential speedup (poll more often) on + the polling interval. When the poller stops finding MCEs, it + triggers an exponential backoff (poll less often) on the polling + interval. The check_interval variable is both the initial and + maximum polling interval. + +tolerant + Tolerance level. When a machine check exception occurs for a non + corrected machine check the kernel can take different actions. + Since machine check exceptions can happen any time it is sometimes + risky for the kernel to kill a process because it defies + normal kernel locking rules. The tolerance level configures + how hard the kernel tries to recover even at some risk of + deadlock. Higher tolerant values trade potentially better uptime + with the risk of a crash or even corruption (for tolerant >= 3). + + 0: always panic on uncorrected errors, log corrected errors + 1: panic or SIGBUS on uncorrected errors, log corrected errors + 2: SIGBUS or log uncorrected errors, log corrected errors + 3: never panic or SIGBUS, log all errors (for testing only) + + Default: 1 + + Note this only makes a difference if the CPU allows recovery + from a machine check exception. Current x86 CPUs generally do not. + +trigger + Program to run when a machine check event is detected. + This is an alternative to running mcelog regularly from cron + and allows to detect events faster. + +TBD document entries for AMD threshold interrupt configuration + +For more details about the x86 machine check architecture +see the Intel and AMD architecture manuals from their developer websites. + +For more details about the architecture see +see http://one.firstfloor.org/~andi/mce.pdf diff -puN /dev/null Documentation/x86/x86_64/mm.txt --- /dev/null +++ a/Documentation/x86/x86_64/mm.txt @@ -0,0 +1,28 @@ + + + +Virtual memory map with 4 level page tables: + +0000000000000000 - 00007fffffffffff (=47 bits) user space, different per mm +hole caused by [48:63] sign extension +ffff800000000000 - ffff80ffffffffff (=40 bits) guard hole +ffff810000000000 - ffffc0ffffffffff (=46 bits) direct mapping of all phys. memory +ffffc10000000000 - ffffc1ffffffffff (=40 bits) hole +ffffc20000000000 - ffffe1ffffffffff (=45 bits) vmalloc/ioremap space +ffffe20000000000 - ffffe2ffffffffff (=40 bits) virtual memory map (1TB) +... unused hole ... +ffffffff80000000 - ffffffffa0000000 (=512 MB) kernel text mapping, from phys 0 +ffffffffa0000000 - fffffffffff00000 (=1536 MB) module mapping space + +The direct mapping covers all memory in the system up to the highest +memory address (this means in some cases it can also include PCI memory +holes). + +vmalloc space is lazily synchronized into the different PML4 pages of +the processes using the page fault handler, with init_level4_pgt as +reference. + +Current X86-64 implementations only support 40 bits of address space, +but we support up to 46 bits. This expands into MBZ space in the page tables. + +-Andi Kleen, Jul 2004 diff -puN /dev/null Documentation/x86/x86_64/uefi.txt --- /dev/null +++ a/Documentation/x86/x86_64/uefi.txt @@ -0,0 +1,38 @@ +General note on [U]EFI x86_64 support +------------------------------------- + +The nomenclature EFI and UEFI are used interchangeably in this document. + +Although the tools below are _not_ needed for building the kernel, +the needed bootloader support and associated tools for x86_64 platforms +with EFI firmware and specifications are listed below. + +1. UEFI specification: http://www.uefi.org + +2. Booting Linux kernel on UEFI x86_64 platform requires bootloader + support. Elilo with x86_64 support can be used. + +3. x86_64 platform with EFI/UEFI firmware. + +Mechanics: +--------- +- Build the kernel with the following configuration. + CONFIG_FB_EFI=y + CONFIG_FRAMEBUFFER_CONSOLE=y + If EFI runtime services are expected, the following configuration should + be selected. + CONFIG_EFI=y + CONFIG_EFI_VARS=y or m # optional +- Create a VFAT partition on the disk +- Copy the following to the VFAT partition: + elilo bootloader with x86_64 support, elilo configuration file, + kernel image built in first step and corresponding + initrd. Instructions on building elilo and its dependencies + can be found in the elilo sourceforge project. +- Boot to EFI shell and invoke elilo choosing the kernel image built + in first step. +- If some or all EFI runtime services don't work, you can try following + kernel command line parameters to turn off some or all EFI runtime + services. + noefi turn off all EFI runtime services + reboot_type=k turn off EFI reboot runtime service diff -puN Documentation/x86_64/00-INDEX~linux-next /dev/null --- a/Documentation/x86_64/00-INDEX +++ /dev/null @@ -1,16 +0,0 @@ -00-INDEX - - This file -boot-options.txt - - AMD64-specific boot options. -cpu-hotplug-spec - - Firmware support for CPU hotplug under Linux/x86-64 -fake-numa-for-cpusets - - Using numa=fake and CPUSets for Resource Management -kernel-stacks - - Context-specific per-processor interrupt stacks. -machinecheck - - Configurable sysfs parameters for the x86-64 machine check code. -mm.txt - - Memory layout of x86-64 (4 level page tables, 46 bits physical). -uefi.txt - - Booting Linux via Unified Extensible Firmware Interface. diff -puN Documentation/x86_64/boot-options.txt~linux-next /dev/null --- a/Documentation/x86_64/boot-options.txt +++ /dev/null @@ -1,314 +0,0 @@ -AMD64 specific boot options - -There are many others (usually documented in driver documentation), but -only the AMD64 specific ones are listed here. - -Machine check - - mce=off disable machine check - mce=bootlog Enable logging of machine checks left over from booting. - Disabled by default on AMD because some BIOS leave bogus ones. - If your BIOS doesn't do that it's a good idea to enable though - to make sure you log even machine check events that result - in a reboot. On Intel systems it is enabled by default. - mce=nobootlog - Disable boot machine check logging. - mce=tolerancelevel (number) - 0: always panic on uncorrected errors, log corrected errors - 1: panic or SIGBUS on uncorrected errors, log corrected errors - 2: SIGBUS or log uncorrected errors, log corrected errors - 3: never panic or SIGBUS, log all errors (for testing only) - Default is 1 - Can be also set using sysfs which is preferable. - - nomce (for compatibility with i386): same as mce=off - - Everything else is in sysfs now. - -APICs - - apic Use IO-APIC. Default - - noapic Don't use the IO-APIC. - - disableapic Don't use the local APIC - - nolapic Don't use the local APIC (alias for i386 compatibility) - - pirq=... See Documentation/i386/IO-APIC.txt - - noapictimer Don't set up the APIC timer - - no_timer_check Don't check the IO-APIC timer. This can work around - problems with incorrect timer initialization on some boards. - - apicmaintimer Run time keeping from the local APIC timer instead - of using the PIT/HPET interrupt for this. This is useful - when the PIT/HPET interrupts are unreliable. - - noapicmaintimer Don't do time keeping using the APIC timer. - Useful when this option was auto selected, but doesn't work. - - apicpmtimer - Do APIC timer calibration using the pmtimer. Implies - apicmaintimer. Useful when your PIT timer is totally - broken. - - disable_8254_timer / enable_8254_timer - Enable interrupt 0 timer routing over the 8254 in addition to over - the IO-APIC. The kernel tries to set a sensible default. - -Early Console - - syntax: earlyprintk=vga - earlyprintk=serial[,ttySn[,baudrate]] - - The early console is useful when the kernel crashes before the - normal console is initialized. It is not enabled by - default because it has some cosmetic problems. - Append ,keep to not disable it when the real console takes over. - Only vga or serial at a time, not both. - Currently only ttyS0 and ttyS1 are supported. - Interaction with the standard serial driver is not very good. - The VGA output is eventually overwritten by the real console. - -Timing - - notsc - Don't use the CPU time stamp counter to read the wall time. - This can be used to work around timing problems on multiprocessor systems - with not properly synchronized CPUs. - - report_lost_ticks - Report when timer interrupts are lost because some code turned off - interrupts for too long. - - nmi_watchdog=NUMBER[,panic] - NUMBER can be: - 0 don't use an NMI watchdog - 1 use the IO-APIC timer for the NMI watchdog - 2 use the local APIC for the NMI watchdog using a performance counter. Note - This will use one performance counter and the local APIC's performance - vector. - When panic is specified panic when an NMI watchdog timeout occurs. - This is useful when you use a panic=... timeout and need the box - quickly up again. - - nohpet - Don't use the HPET timer. - -Idle loop - - idle=poll - Don't do power saving in the idle loop using HLT, but poll for rescheduling - event. This will make the CPUs eat a lot more power, but may be useful - to get slightly better performance in multiprocessor benchmarks. It also - makes some profiling using performance counters more accurate. - Please note that on systems with MONITOR/MWAIT support (like Intel EM64T - CPUs) this option has no performance advantage over the normal idle loop. - It may also interact badly with hyperthreading. - -Rebooting - - reboot=b[ios] | t[riple] | k[bd] | a[cpi] | e[fi] [, [w]arm | [c]old] - bios Use the CPU reboot vector for warm reset - warm Don't set the cold reboot flag - cold Set the cold reboot flag - triple Force a triple fault (init) - kbd Use the keyboard controller. cold reset (default) - acpi Use the ACPI RESET_REG in the FADT. If ACPI is not configured or the - ACPI reset does not work, the reboot path attempts the reset using - the keyboard controller. - efi Use efi reset_system runtime service. If EFI is not configured or the - EFI reset does not work, the reboot path attempts the reset using - the keyboard controller. - - Using warm reset will be much faster especially on big memory - systems because the BIOS will not go through the memory check. - Disadvantage is that not all hardware will be completely reinitialized - on reboot so there may be boot problems on some systems. - - reboot=force - - Don't stop other CPUs on reboot. This can make reboot more reliable - in some cases. - -Non Executable Mappings - - noexec=on|off - - on Enable(default) - off Disable - -SMP - - additional_cpus=NUM Allow NUM more CPUs for hotplug - (defaults are specified by the BIOS, see Documentation/x86_64/cpu-hotplug-spec) - -NUMA - - numa=off Only set up a single NUMA node spanning all memory. - - numa=noacpi Don't parse the SRAT table for NUMA setup - - numa=fake=CMDLINE - If a number, fakes CMDLINE nodes and ignores NUMA setup of the - actual machine. Otherwise, system memory is configured - depending on the sizes and coefficients listed. For example: - numa=fake=2*512,1024,4*256,*128 - gives two 512M nodes, a 1024M node, four 256M nodes, and the - rest split into 128M chunks. If the last character of CMDLINE - is a *, the remaining memory is divided up equally among its - coefficient: - numa=fake=2*512,2* - gives two 512M nodes and the rest split into two nodes. - Otherwise, the remaining system RAM is allocated to an - additional node. - - numa=hotadd=percent - Only allow hotadd memory to preallocate page structures upto - percent of already available memory. - numa=hotadd=0 will disable hotadd memory. - -ACPI - - acpi=off Don't enable ACPI - acpi=ht Use ACPI boot table parsing, but don't enable ACPI - interpreter - acpi=force Force ACPI on (currently not needed) - - acpi=strict Disable out of spec ACPI workarounds. - - acpi_sci={edge,level,high,low} Set up ACPI SCI interrupt. - - acpi=noirq Don't route interrupts - -PCI - - pci=off Don't use PCI - pci=conf1 Use conf1 access. - pci=conf2 Use conf2 access. - pci=rom Assign ROMs. - pci=assign-busses Assign busses - pci=irqmask=MASK Set PCI interrupt mask to MASK - pci=lastbus=NUMBER Scan upto NUMBER busses, no matter what the mptable says. - pci=noacpi Don't use ACPI to set up PCI interrupt routing. - -IOMMU (input/output memory management unit) - - Currently four x86-64 PCI-DMA mapping implementations exist: - - 1. : use no hardware/software IOMMU at all - (e.g. because you have < 3 GB memory). - Kernel boot message: "PCI-DMA: Disabling IOMMU" - - 2. : AMD GART based hardware IOMMU. - Kernel boot message: "PCI-DMA: using GART IOMMU" - - 3. : Software IOMMU implementation. Used - e.g. if there is no hardware IOMMU in the system and it is need because - you have >3GB memory or told the kernel to us it (iommu=soft)) - Kernel boot message: "PCI-DMA: Using software bounce buffering - for IO (SWIOTLB)" - - 4. : IBM Calgary hardware IOMMU. Used in IBM - pSeries and xSeries servers. This hardware IOMMU supports DMA address - mapping with memory protection, etc. - Kernel boot message: "PCI-DMA: Using Calgary IOMMU" - - iommu=[][,noagp][,off][,force][,noforce][,leak[=] - [,memaper[=]][,merge][,forcesac][,fullflush][,nomerge] - [,noaperture][,calgary] - - General iommu options: - off Don't initialize and use any kind of IOMMU. - noforce Don't force hardware IOMMU usage when it is not needed. - (default). - force Force the use of the hardware IOMMU even when it is - not actually needed (e.g. because < 3 GB memory). - soft Use software bounce buffering (SWIOTLB) (default for - Intel machines). This can be used to prevent the usage - of an available hardware IOMMU. - - iommu options only relevant to the AMD GART hardware IOMMU: - Set the size of the remapping area in bytes. - allowed Overwrite iommu off workarounds for specific chipsets. - fullflush Flush IOMMU on each allocation (default). - nofullflush Don't use IOMMU fullflush. - leak Turn on simple iommu leak tracing (only when - CONFIG_IOMMU_LEAK is on). Default number of leak pages - is 20. - memaper[=] Allocate an own aperture over RAM with size 32MB<4GB. - DAC is used with 32-bit PCI to push a 64-bit address in - two cycles. When off all DMA over >4GB is forced through - an IOMMU or software bounce buffering. - nodac Forbid DAC mode, i.e. DMA >4GB. - panic Always panic when IOMMU overflows. - calgary Use the Calgary IOMMU if it is available - - iommu options only relevant to the software bounce buffering (SWIOTLB) IOMMU - implementation: - swiotlb=[,force] - Prereserve that many 128K pages for the software IO - bounce buffering. - force Force all IO through the software TLB. - - Settings for the IBM Calgary hardware IOMMU currently found in IBM - pSeries and xSeries machines: - - calgary=[64k,128k,256k,512k,1M,2M,4M,8M] - calgary=[translate_empty_slots] - calgary=[disable=] - panic Always panic when IOMMU overflows - - 64k,...,8M - Set the size of each PCI slot's translation table - when using the Calgary IOMMU. This is the size of the translation - table itself in main memory. The smallest table, 64k, covers an IO - space of 32MB; the largest, 8MB table, can cover an IO space of - 4GB. Normally the kernel will make the right choice by itself. - - translate_empty_slots - Enable translation even on slots that have - no devices attached to them, in case a device will be hotplugged - in the future. - - disable= - Disable translation on a given PHB. For - example, the built-in graphics adapter resides on the first bridge - (PCI bus number 0); if translation (isolation) is enabled on this - bridge, X servers that access the hardware directly from user - space might stop working. Use this option if you have devices that - are accessed from userspace directly on some PCI host bridge. - -Debugging - - oops=panic Always panic on oopses. Default is to just kill the process, - but there is a small probability of deadlocking the machine. - This will also cause panics on machine check exceptions. - Useful together with panic=30 to trigger a reboot. - - kstack=N Print N words from the kernel stack in oops dumps. - - pagefaulttrace Dump all page faults. Only useful for extreme debugging - and will create a lot of output. - - call_trace=[old|both|newfallback|new] - old: use old inexact backtracer - new: use new exact dwarf2 unwinder - both: print entries from both - newfallback: use new unwinder but fall back to old if it gets - stuck (default) - -Miscellaneous - - nogbpages - Do not use GB pages for kernel direct mappings. - gbpages - Use GB pages for kernel direct mappings. diff -puN Documentation/x86_64/cpu-hotplug-spec~linux-next /dev/null --- a/Documentation/x86_64/cpu-hotplug-spec +++ /dev/null @@ -1,21 +0,0 @@ -Firmware support for CPU hotplug under Linux/x86-64 ---------------------------------------------------- - -Linux/x86-64 supports CPU hotplug now. For various reasons Linux wants to -know in advance of boot time the maximum number of CPUs that could be plugged -into the system. ACPI 3.0 currently has no official way to supply -this information from the firmware to the operating system. - -In ACPI each CPU needs an LAPIC object in the MADT table (5.2.11.5 in the -ACPI 3.0 specification). ACPI already has the concept of disabled LAPIC -objects by setting the Enabled bit in the LAPIC object to zero. - -For CPU hotplug Linux/x86-64 expects now that any possible future hotpluggable -CPU is already available in the MADT. If the CPU is not available yet -it should have its LAPIC Enabled bit set to 0. Linux will use the number -of disabled LAPICs to compute the maximum number of future CPUs. - -In the worst case the user can overwrite this choice using a command line -option (additional_cpus=...), but it is recommended to supply the correct -number (or a reasonable approximation of it, with erring towards more not less) -in the MADT to avoid manual configuration. diff -puN Documentation/x86_64/fake-numa-for-cpusets~linux-next /dev/null --- a/Documentation/x86_64/fake-numa-for-cpusets +++ /dev/null @@ -1,66 +0,0 @@ -Using numa=fake and CPUSets for Resource Management -Written by David Rientjes - -This document describes how the numa=fake x86_64 command-line option can be used -in conjunction with cpusets for coarse memory management. Using this feature, -you can create fake NUMA nodes that represent contiguous chunks of memory and -assign them to cpusets and their attached tasks. This is a way of limiting the -amount of system memory that are available to a certain class of tasks. - -For more information on the features of cpusets, see Documentation/cpusets.txt. -There are a number of different configurations you can use for your needs. For -more information on the numa=fake command line option and its various ways of -configuring fake nodes, see Documentation/x86_64/boot-options.txt. - -For the purposes of this introduction, we'll assume a very primitive NUMA -emulation setup of "numa=fake=4*512,". This will split our system memory into -four equal chunks of 512M each that we can now use to assign to cpusets. As -you become more familiar with using this combination for resource control, -you'll determine a better setup to minimize the number of nodes you have to deal -with. - -A machine may be split as follows with "numa=fake=4*512," as reported by dmesg: - - Faking node 0 at 0000000000000000-0000000020000000 (512MB) - Faking node 1 at 0000000020000000-0000000040000000 (512MB) - Faking node 2 at 0000000040000000-0000000060000000 (512MB) - Faking node 3 at 0000000060000000-0000000080000000 (512MB) - ... - On node 0 totalpages: 130975 - On node 1 totalpages: 131072 - On node 2 totalpages: 131072 - On node 3 totalpages: 131072 - -Now following the instructions for mounting the cpusets filesystem from -Documentation/cpusets.txt, you can assign fake nodes (i.e. contiguous memory -address spaces) to individual cpusets: - - [root@xroads /]# mkdir exampleset - [root@xroads /]# mount -t cpuset none exampleset - [root@xroads /]# mkdir exampleset/ddset - [root@xroads /]# cd exampleset/ddset - [root@xroads /exampleset/ddset]# echo 0-1 > cpus - [root@xroads /exampleset/ddset]# echo 0-1 > mems - -Now this cpuset, 'ddset', will only allowed access to fake nodes 0 and 1 for -memory allocations (1G). - -You can now assign tasks to these cpusets to limit the memory resources -available to them according to the fake nodes assigned as mems: - - [root@xroads /exampleset/ddset]# echo $$ > tasks - [root@xroads /exampleset/ddset]# dd if=/dev/zero of=tmp bs=1024 count=1G - [1] 13425 - -Notice the difference between the system memory usage as reported by -/proc/meminfo between the restricted cpuset case above and the unrestricted -case (i.e. running the same 'dd' command without assigning it to a fake NUMA -cpuset): - Unrestricted Restricted - MemTotal: 3091900 kB 3091900 kB - MemFree: 42113 kB 1513236 kB - -This allows for coarse memory management for the tasks you assign to particular -cpusets. Since cpusets can form a hierarchy, you can create some pretty -interesting combinations of use-cases for various classes of tasks for your -memory management needs. diff -puN Documentation/x86_64/kernel-stacks~linux-next /dev/null --- a/Documentation/x86_64/kernel-stacks +++ /dev/null @@ -1,99 +0,0 @@ -Most of the text from Keith Owens, hacked by AK - -x86_64 page size (PAGE_SIZE) is 4K. - -Like all other architectures, x86_64 has a kernel stack for every -active thread. These thread stacks are THREAD_SIZE (2*PAGE_SIZE) big. -These stacks contain useful data as long as a thread is alive or a -zombie. While the thread is in user space the kernel stack is empty -except for the thread_info structure at the bottom. - -In addition to the per thread stacks, there are specialized stacks -associated with each CPU. These stacks are only used while the kernel -is in control on that CPU; when a CPU returns to user space the -specialized stacks contain no useful data. The main CPU stacks are: - -* Interrupt stack. IRQSTACKSIZE - - Used for external hardware interrupts. If this is the first external - hardware interrupt (i.e. not a nested hardware interrupt) then the - kernel switches from the current task to the interrupt stack. Like - the split thread and interrupt stacks on i386 (with CONFIG_4KSTACKS), - this gives more room for kernel interrupt processing without having - to increase the size of every per thread stack. - - The interrupt stack is also used when processing a softirq. - -Switching to the kernel interrupt stack is done by software based on a -per CPU interrupt nest counter. This is needed because x86-64 "IST" -hardware stacks cannot nest without races. - -x86_64 also has a feature which is not available on i386, the ability -to automatically switch to a new stack for designated events such as -double fault or NMI, which makes it easier to handle these unusual -events on x86_64. This feature is called the Interrupt Stack Table -(IST). There can be up to 7 IST entries per CPU. The IST code is an -index into the Task State Segment (TSS). The IST entries in the TSS -point to dedicated stacks; each stack can be a different size. - -An IST is selected by a non-zero value in the IST field of an -interrupt-gate descriptor. When an interrupt occurs and the hardware -loads such a descriptor, the hardware automatically sets the new stack -pointer based on the IST value, then invokes the interrupt handler. If -software wants to allow nested IST interrupts then the handler must -adjust the IST values on entry to and exit from the interrupt handler. -(This is occasionally done, e.g. for debug exceptions.) - -Events with different IST codes (i.e. with different stacks) can be -nested. For example, a debug interrupt can safely be interrupted by an -NMI. arch/x86_64/kernel/entry.S::paranoidentry adjusts the stack -pointers on entry to and exit from all IST events, in theory allowing -IST events with the same code to be nested. However in most cases, the -stack size allocated to an IST assumes no nesting for the same code. -If that assumption is ever broken then the stacks will become corrupt. - -The currently assigned IST stacks are :- - -* STACKFAULT_STACK. EXCEPTION_STKSZ (PAGE_SIZE). - - Used for interrupt 12 - Stack Fault Exception (#SS). - - This allows the CPU to recover from invalid stack segments. Rarely - happens. - -* DOUBLEFAULT_STACK. EXCEPTION_STKSZ (PAGE_SIZE). - - Used for interrupt 8 - Double Fault Exception (#DF). - - Invoked when handling one exception causes another exception. Happens - when the kernel is very confused (e.g. kernel stack pointer corrupt). - Using a separate stack allows the kernel to recover from it well enough - in many cases to still output an oops. - -* NMI_STACK. EXCEPTION_STKSZ (PAGE_SIZE). - - Used for non-maskable interrupts (NMI). - - NMI can be delivered at any time, including when the kernel is in the - middle of switching stacks. Using IST for NMI events avoids making - assumptions about the previous state of the kernel stack. - -* DEBUG_STACK. DEBUG_STKSZ - - Used for hardware debug interrupts (interrupt 1) and for software - debug interrupts (INT3). - - When debugging a kernel, debug interrupts (both hardware and - software) can occur at any time. Using IST for these interrupts - avoids making assumptions about the previous state of the kernel - stack. - -* MCE_STACK. EXCEPTION_STKSZ (PAGE_SIZE). - - Used for interrupt 18 - Machine Check Exception (#MC). - - MCE can be delivered at any time, including when the kernel is in the - middle of switching stacks. Using IST for MCE events avoids making - assumptions about the previous state of the kernel stack. - -For more details see the Intel IA32 or AMD AMD64 architecture manuals. diff -puN Documentation/x86_64/machinecheck~linux-next /dev/null --- a/Documentation/x86_64/machinecheck +++ /dev/null @@ -1,77 +0,0 @@ - -Configurable sysfs parameters for the x86-64 machine check code. - -Machine checks report internal hardware error conditions detected -by the CPU. Uncorrected errors typically cause a machine check -(often with panic), corrected ones cause a machine check log entry. - -Machine checks are organized in banks (normally associated with -a hardware subsystem) and subevents in a bank. The exact meaning -of the banks and subevent is CPU specific. - -mcelog knows how to decode them. - -When you see the "Machine check errors logged" message in the system -log then mcelog should run to collect and decode machine check entries -from /dev/mcelog. Normally mcelog should be run regularly from a cronjob. - -Each CPU has a directory in /sys/devices/system/machinecheck/machinecheckN -(N = CPU number) - -The directory contains some configurable entries: - -Entries: - -bankNctl -(N bank number) - 64bit Hex bitmask enabling/disabling specific subevents for bank N - When a bit in the bitmask is zero then the respective - subevent will not be reported. - By default all events are enabled. - Note that BIOS maintain another mask to disable specific events - per bank. This is not visible here - -The following entries appear for each CPU, but they are truly shared -between all CPUs. - -check_interval - How often to poll for corrected machine check errors, in seconds - (Note output is hexademical). Default 5 minutes. When the poller - finds MCEs it triggers an exponential speedup (poll more often) on - the polling interval. When the poller stops finding MCEs, it - triggers an exponential backoff (poll less often) on the polling - interval. The check_interval variable is both the initial and - maximum polling interval. - -tolerant - Tolerance level. When a machine check exception occurs for a non - corrected machine check the kernel can take different actions. - Since machine check exceptions can happen any time it is sometimes - risky for the kernel to kill a process because it defies - normal kernel locking rules. The tolerance level configures - how hard the kernel tries to recover even at some risk of - deadlock. Higher tolerant values trade potentially better uptime - with the risk of a crash or even corruption (for tolerant >= 3). - - 0: always panic on uncorrected errors, log corrected errors - 1: panic or SIGBUS on uncorrected errors, log corrected errors - 2: SIGBUS or log uncorrected errors, log corrected errors - 3: never panic or SIGBUS, log all errors (for testing only) - - Default: 1 - - Note this only makes a difference if the CPU allows recovery - from a machine check exception. Current x86 CPUs generally do not. - -trigger - Program to run when a machine check event is detected. - This is an alternative to running mcelog regularly from cron - and allows to detect events faster. - -TBD document entries for AMD threshold interrupt configuration - -For more details about the x86 machine check architecture -see the Intel and AMD architecture manuals from their developer websites. - -For more details about the architecture see -see http://one.firstfloor.org/~andi/mce.pdf diff -puN Documentation/x86_64/mm.txt~linux-next /dev/null --- a/Documentation/x86_64/mm.txt +++ /dev/null @@ -1,29 +0,0 @@ - - - -Virtual memory map with 4 level page tables: - -0000000000000000 - 00007fffffffffff (=47 bits) user space, different per mm -hole caused by [48:63] sign extension -ffff800000000000 - ffff80ffffffffff (=40 bits) guard hole -ffff810000000000 - ffffc0ffffffffff (=46 bits) direct mapping of all phys. memory -ffffc10000000000 - ffffc1ffffffffff (=40 bits) hole -ffffc20000000000 - ffffe1ffffffffff (=45 bits) vmalloc/ioremap space -ffffe20000000000 - ffffe2ffffffffff (=40 bits) virtual memory map (1TB) -... unused hole ... -ffffffff80000000 - ffffffff82800000 (=40 MB) kernel text mapping, from phys 0 -... unused hole ... -ffffffff88000000 - fffffffffff00000 (=1919 MB) module mapping space - -The direct mapping covers all memory in the system up to the highest -memory address (this means in some cases it can also include PCI memory -holes). - -vmalloc space is lazily synchronized into the different PML4 pages of -the processes using the page fault handler, with init_level4_pgt as -reference. - -Current X86-64 implementations only support 40 bits of address space, -but we support up to 46 bits. This expands into MBZ space in the page tables. - --Andi Kleen, Jul 2004 diff -puN Documentation/x86_64/uefi.txt~linux-next /dev/null --- a/Documentation/x86_64/uefi.txt +++ /dev/null @@ -1,38 +0,0 @@ -General note on [U]EFI x86_64 support -------------------------------------- - -The nomenclature EFI and UEFI are used interchangeably in this document. - -Although the tools below are _not_ needed for building the kernel, -the needed bootloader support and associated tools for x86_64 platforms -with EFI firmware and specifications are listed below. - -1. UEFI specification: http://www.uefi.org - -2. Booting Linux kernel on UEFI x86_64 platform requires bootloader - support. Elilo with x86_64 support can be used. - -3. x86_64 platform with EFI/UEFI firmware. - -Mechanics: ---------- -- Build the kernel with the following configuration. - CONFIG_FB_EFI=y - CONFIG_FRAMEBUFFER_CONSOLE=y - If EFI runtime services are expected, the following configuration should - be selected. - CONFIG_EFI=y - CONFIG_EFI_VARS=y or m # optional -- Create a VFAT partition on the disk -- Copy the following to the VFAT partition: - elilo bootloader with x86_64 support, elilo configuration file, - kernel image built in first step and corresponding - initrd. Instructions on building elilo and its dependencies - can be found in the elilo sourceforge project. -- Boot to EFI shell and invoke elilo choosing the kernel image built - in first step. -- If some or all EFI runtime services don't work, you can try following - kernel command line parameters to turn off some or all EFI runtime - services. - noefi turn off all EFI runtime services - reboot_type=k turn off EFI reboot runtime service diff -puN Documentation/zh_CN/SubmittingPatches~linux-next Documentation/zh_CN/SubmittingPatches --- a/Documentation/zh_CN/SubmittingPatches~linux-next +++ a/Documentation/zh_CN/SubmittingPatches @@ -152,7 +152,7 @@ MAITAINERS 文件里的)å‘é€ä¸€ä¸ªæ‰ å³ä½¿åœ¨ç¬¬å››æ­¥çš„时候,维护者没有作出回应,也è¦ç¡®è®¤åœ¨ä¿®æ”¹ä»–们的代ç çš„时候 ,一直将维护者拷è´åˆ°CC列表中。 -对于å°çš„è¡¥ä¸ï¼Œä½ ä¹Ÿè®¸ä¼šCC到 Adrian Bunk 管ç†çš„æœé›†ç碎补ä¸çš„邮件列表 +对于å°çš„è¡¥ä¸ï¼Œä½ ä¹Ÿè®¸ä¼šCC到 Jesper Juhl 管ç†çš„æœé›†ç碎补ä¸çš„邮件列表 (Trivial Patch Monkey)trivial@kernel.org,那里专门收集ç碎的补ä¸ã€‚下é¢è¿™æ · çš„è¡¥ä¸ä¼šè¢«çœ‹ä½œâ€œç碎的â€è¡¥ä¸ï¼š 文档的拼写修正。 @@ -166,7 +166,7 @@ MAITAINERS 文件里的)å‘é€ä¸€ä¸ªæ‰ 人拷è´ï¼Œåªè¦å®ƒæ˜¯ç碎的) 任何文件的作者/维护者对该文件的改动(例如 patch monkey 在é‡ä¼ æ¨¡å¼ä¸‹ï¼‰ -URL: +URL: (译注,关于“ç碎补ä¸â€çš„一些说明:因为原文的这一部分写得比较简å•ï¼Œæ‰€ä»¥ä¸å¾—ä¸ è¿ä¾‹å†™ä¸€ä¸‹è¯‘注。"trivial"这个英文å•è¯çš„本æ„是“ç碎的,ä¸é‡è¦çš„。â€ä½†æ˜¯åœ¨è¿™é‡Œ diff -puN MAINTAINERS~linux-next MAINTAINERS --- a/MAINTAINERS~linux-next +++ a/MAINTAINERS @@ -228,21 +228,21 @@ ACPI BATTERY DRIVERS P: Alexey Starikovskiy M: astarikovskiy@suse.de L: linux-acpi@vger.kernel.org -W: http://acpi.sourceforge.net/ +W: http://www.lesswatts.org/projects/acpi/ S: Supported ACPI EC DRIVER P: Alexey Starikovskiy M: astarikovskiy@suse.de L: linux-acpi@vger.kernel.org -W: http://acpi.sourceforge.net/ +W: http://www.lesswatts.org/projects/acpi/ S: Supported ACPI FAN DRIVER P: Len Brown M: len.brown@intel.com L: linux-acpi@vger.kernel.org -W: http://acpi.sourceforge.net/ +W: http://www.lesswatts.org/projects/acpi/ S: Supported ACPI PCI HOTPLUG DRIVER @@ -255,14 +255,14 @@ ACPI THERMAL DRIVER P: Len Brown M: len.brown@intel.com L: linux-acpi@vger.kernel.org -W: http://acpi.sourceforge.net/ +W: http://www.lesswatts.org/projects/acpi/ S: Supported ACPI VIDEO DRIVER P: Rui Zhang M: rui.zhang@intel.com L: linux-acpi@vger.kernel.org -W: http://acpi.sourceforge.net/ +W: http://www.lesswatts.org/projects/acpi/ S: Supported ACPI WMI DRIVER @@ -1668,6 +1668,13 @@ L: linuxppc-embedded@ozlabs.org L: linux-kernel@vger.kernel.org S: Maintained +FREESCALE I2C CPM DRIVER +P: Jochen Friedrich +M: jochen@scram.de +L: linuxppc-dev@ozlabs.org +L: i2c@lm-sensors.org +S: Maintained + FREESCALE SOC FS_ENET DRIVER P: Pantelis Antoniou M: pantelis.antoniou@gmail.com @@ -1945,6 +1952,12 @@ M: mikulas@artax.karlin.mff.cuni.cz W: http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi S: Maintained +HTCPEN TOUCHSCREEN DRIVER +P: Pau Oliva Fora +M: pof@eslack.org +L: linux-input@vger.kernel.org +S: Maintained + HUGETLB FILESYSTEM P: William Irwin M: wli@holomorphy.com @@ -3658,13 +3671,6 @@ M: romieu@fr.zoreil.com L: netdev@vger.kernel.org S: Maintained -SIS 5513 IDE CONTROLLER DRIVER -P: Lionel Bouton -M: Lionel.Bouton@inet6.fr -W: http://inet6.dyn.dhs.org/sponsoring/sis5513/index.html -W: http://gyver.homeip.net/sis5513/index.html -S: Maintained - SIS 900/7016 FAST ETHERNET DRIVER P: Daniele Venzano M: venza@brownhat.org diff -puN Makefile~linux-next Makefile --- a/Makefile~linux-next +++ a/Makefile @@ -450,7 +450,7 @@ scripts: scripts_basic include/config/au # Objects we will link into vmlinux / subdirs we need to visit init-y := init/ -drivers-y := drivers/ sound/ +drivers-y := drivers/ sound/ firmware/ net-y := net/ libs-y := lib/ core-y := usr/ @@ -528,6 +528,10 @@ KBUILD_CFLAGS += -g KBUILD_AFLAGS += -gdwarf-2 endif +ifdef CONFIG_FTRACE +KBUILD_CFLAGS += -pg +endif + # We trigger additional mismatches with less inlining ifdef CONFIG_DEBUG_SECTION_MISMATCH KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once) @@ -608,6 +612,7 @@ export mod_strip_cmd ifeq ($(KBUILD_EXTMOD),) core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ +core-$(CONFIG_KERNEL_TESTS) += tests/ vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ @@ -995,6 +1000,15 @@ depend dep: @echo '*** Warning: make $@ is unnecessary now.' # --------------------------------------------------------------------------- +# Firmware install +INSTALL_FW_PATH=$(objtree)/usr/lib/firmware +export INSTALL_FW_PATH + +PHONY += firmware_install +firmware_install: FORCE + $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_install + +# --------------------------------------------------------------------------- # Kernel headers INSTALL_HDR_PATH=$(objtree)/usr export INSTALL_HDR_PATH diff -puN /dev/null Next/Trees --- /dev/null +++ a/Next/Trees @@ -0,0 +1,92 @@ +Trees included into this release: + +Name Type URL +---- ---- --- +origin git git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git#master +powerpc-merge git git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc.git#merge +scsi-rc-fixes git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6.git#master +net-current git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git#master +sparc-current git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6.git#master +sound-current git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git#for-linus +arm-current git ssh://master.kernel.org/home/rmk/linux-2.6-arm.git#master +pci-current git git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6#for-linus +wireless-current git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git#master +kbuild-current git git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next.git#master +driver-core.current quilt http://kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-01-driver-core.current/ +usb.current quilt http://kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-02-usb.current/ +cpufreq-current git git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq.git#fixes +input-current git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git#for-linus +driver-core quilt http://kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-03-driver-core/ +usb quilt http://kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-04-usb/ +x86 git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git#auto-x86-next +sched git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git#auto-sched-next +ftrace git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git#auto-ftrace-next +pci git git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6#linux-next +device-mapper quilt http://www.kernel.org/pub/linux/kernel/people/agk/patches/2.6/editing/ +hid git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid.git#mm +i2c quilt http://khali.linux-fr.org/devel/linux-2.6/jdelvare-i2c/ +kernel-doc quilt http://oss.oracle.com/~rdunlap/kernel-doc-patches/current/ +avr32 git git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6.git#avr32-arch +v4l-dvb git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-next.git#stable +s390 git git://git390.osdl.marist.edu/pub/scm/linux-2.6.git#features +sh git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.git#master +jfs git git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6.git#next +kbuild git git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next.git#master +ide quilt http://kernel.org/pub/linux/kernel/people/bart/pata-2.6/patches/ +libata git git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git#NEXT +nfs git git://git.linux-nfs.org/projects/trondmy/nfs-2.6.git#linux-next +xfs git git://oss.sgi.com:8090/xfs/xfs-2.6.git#master +infiniband git git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git#for-next +acpi git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6#test +blackfin git git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6.git#for-linus +nfsd git git://git.linux-nfs.org/~bfields/linux.git#nfsd-next +ieee1394 git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git#for-next +hwmon git git://lm-sensors.org/kernel/mhoffman/hwmon-2.6.git#testing +ubi git git://git.infradead.org/~dedekind/ubi-2.6.git#master +kvm git git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm.git#master +dlm git git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm.git#next +scsi git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git#master +ia64 git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6.git#test +tests git git://git.kernel.org/pub/scm/linux/kernel/git/sam/tests.git#master +ocfs2 git git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2.git#linux-next +selinux git git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6.git#for-akpm +m68k quilt http://linux-m68k-cvs.ubb.ca/~geert/linux-m68k-patches-2.6/ +powerpc git git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc.git#powerpc-next +hrt git git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt.git#mm +lblnet git git://git.infradead.org/users/pcmoore/lblnet-2.6_testing#master +ext4 git git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git#next +4xx git git://git.kernel.org/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx.git#next +async_tx git git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx.git#next +udf git git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6.git#for_next +security-testing git git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6.git#next +net git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6.git#master +sparc git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git#master +galak git git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git#powerpc-next +mtd git git://git.infradead.org/mtd-2.6.git#master +wireless git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6.git#master +crypto git git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6#master +vfs git git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6.git#vfs-2.6.25 +sound git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git#master +arm git ssh://master.kernel.org/home/rmk/linux-2.6-arm.git#devel +cpufreq git git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq.git#next +v9fs git git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs.git#for-next +rr quilt http://ozlabs.org/~rusty/kernel/rr-latest/ +cifs git git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git#master +mmc git git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git#next +gfs2 git git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw.git#master +rcu git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git#core/rcu +locking git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git#core/locking +safe-poison-pointers git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git#safe-poison-pointers +stackprotector git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git#stackprotector +input git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git#next +semaphore git git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc.git#semaphore +semaphore-removal git git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc.git#semaphore-removal +ldp.next quilt http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-05-ldp.next/ +bkl-removal git git://git.lwn.net/linux-2.6.git#bkl-removal +trivial git git://git.kernel.org/pub/scm/linux/kernel/git/juhl/trivial-2.6.git#next +ubifs git git://git.infradead.org/~dedekind/ubifs-2.6.git#for_andrew +lsm git git://gitkernel.org/pub/scm/linux/kernel/git/chrisw/lsm-2.6.git#for-next +block git git://git.kernel.dk/linux-2.6-block.git#for-next +embedded git git://git.infradead.org/embedded-2.6.git#master +firmware git git://git.infradead.org/users/dwmw2/firmware-2.6.git#master +pcmcia git git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git#master diff -puN /dev/null Next/merge.log --- /dev/null +++ a/Next/merge.log @@ -0,0 +1,4976 @@ +$ git checkout master +Already on "master" +$ git reset --hard stable +HEAD is now at edeb280 Fix uart_set_ldisc() function type +Merging origin/master +$ git merge origin/master +Updating edeb280..b2ab26a +Fast forward + Documentation/SubmittingPatches | 46 ++++++++ + Documentation/networking/bridge.txt | 2 +- + Documentation/video4linux/CARDLIST.cx88 | 2 +- + Documentation/video4linux/cx18.txt | 4 +- + MAINTAINERS | 2 +- + Makefile | 2 +- + arch/mips/au1000/common/clocks.c | 1 + + arch/mips/au1000/common/dbdma.c | 11 ++ + arch/mips/kernel/Makefile | 1 - + arch/mips/kernel/traps.c | 16 ++-- + arch/mips/mips-boards/generic/time.c | 19 ---- + arch/mips/mm/page.c | 10 +- + arch/mips/mm/tlbex.c | 3 +- + arch/mips/pci/ops-bridge.c | 20 +++- + arch/mips/pci/pci-ip27.c | 8 ++ + arch/mips/sgi-ip27/ip27-init.c | 22 ---- + arch/mips/sgi-ip27/ip27-memory.c | 117 ++++---------------- + arch/mips/sgi-ip27/ip27-smp.c | 5 +- + arch/mips/sgi-ip27/ip27-timer.c | 27 +++--- + arch/sparc/kernel/led.c | 34 ++++--- + arch/x86/Kconfig.debug | 20 ++-- + drivers/ata/libata-sff.c | 2 +- + drivers/block/brd.c | 1 + + drivers/media/Makefile | 7 +- + drivers/media/common/tuners/Kconfig | 1 + + drivers/media/common/tuners/mxl5005s.c | 4 +- + drivers/media/common/tuners/tda18271-common.c | 4 +- + drivers/media/common/tuners/tda827x.c | 4 +- + drivers/media/common/tuners/tea5761.c | 2 +- + drivers/media/common/tuners/tuner-i2c.h | 8 ++ + drivers/media/common/tuners/tuner-simple.c | 6 +- + drivers/media/common/tuners/tuner-xc2028.c | 87 +++++++-------- + drivers/media/dvb/b2c2/flexcop-usb.c | 2 +- + drivers/media/dvb/cinergyT2/cinergyT2.c | 46 ++++---- + drivers/media/dvb/dvb-core/dvb_net.c | 12 +- + drivers/media/dvb/dvb-usb/Kconfig | 2 +- + drivers/media/dvb/dvb-usb/dib0700_devices.c | 21 ++-- + drivers/media/dvb/dvb-usb/dvb-usb-firmware.c | 2 +- + drivers/media/dvb/dvb-usb/gp8psk.c | 10 +- + drivers/media/dvb/dvb-usb/m920x.c | 7 +- + drivers/media/dvb/frontends/dib0070.h | 15 +++- + drivers/media/dvb/frontends/dib7000p.h | 15 +++- + drivers/media/dvb/frontends/or51132.c | 6 +- + drivers/media/dvb/ttpci/av7110.c | 9 +- + drivers/media/dvb/ttpci/av7110_av.c | 34 +++++-- + drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c | 2 +- + drivers/media/dvb/ttusb-dec/Kconfig | 2 +- + drivers/media/dvb/ttusb-dec/ttusb_dec.c | 25 +++-- + drivers/media/dvb/ttusb-dec/ttusbdecfe.c | 10 +- + drivers/media/video/au0828/Kconfig | 2 +- + drivers/media/video/au0828/au0828-dvb.c | 6 - + drivers/media/video/bt8xx/bttv-cards.c | 5 +- + drivers/media/video/bt8xx/bttv-risc.c | 8 +- + drivers/media/video/btcx-risc.c | 2 +- + drivers/media/video/btcx-risc.h | 4 +- + drivers/media/video/cx18/cx18-av-core.c | 81 ++++++++------ + drivers/media/video/cx18/cx18-cards.c | 4 +- + drivers/media/video/cx18/cx18-controls.c | 6 +- + drivers/media/video/cx18/cx18-driver.c | 26 ++--- + drivers/media/video/cx18/cx18-driver.h | 9 ++- + drivers/media/video/cx18/cx18-fileops.c | 13 ++- + drivers/media/video/cx18/cx18-gpio.c | 33 +++--- + drivers/media/video/cx18/cx18-ioctl.c | 12 +- + drivers/media/video/cx18/cx18-irq.c | 12 ++- + drivers/media/video/cx18/cx18-mailbox.c | 8 +- + drivers/media/video/cx18/cx18-streams.c | 37 ++++--- + drivers/media/video/cx23885/cx23885-core.c | 8 +- + drivers/media/video/cx88/cx88-cards.c | 13 ++- + drivers/media/video/cx88/cx88-core.c | 8 +- + drivers/media/video/em28xx/em28xx-video.c | 8 +- + drivers/media/video/ivtv/ivtv-driver.h | 10 ++- + drivers/media/video/ivtv/ivtv-fileops.c | 2 +- + drivers/media/video/ivtv/ivtv-irq.c | 8 +- + drivers/media/video/ivtv/ivtv-queue.c | 2 +- + drivers/media/video/ivtv/ivtv-streams.c | 30 +++--- + drivers/media/video/ivtv/ivtv-version.h | 4 +- + drivers/media/video/ivtv/ivtv-yuv.c | 2 +- + drivers/media/video/ivtv/ivtv-yuv.h | 2 +- + drivers/media/video/saa7134/saa7134-empress.c | 3 +- + drivers/media/video/tuner-core.c | 40 ++++---- + drivers/media/video/usbvideo/quickcam_messenger.c | 2 +- + drivers/media/video/zoran.h | 4 +- + drivers/media/video/zoran_device.c | 2 +- + drivers/media/video/zoran_driver.c | 10 +- + drivers/mtd/maps/omap_nor.c | 2 +- + drivers/mtd/nand/pxa3xx_nand.c | 2 +- + drivers/mtd/onenand/generic.c | 2 +- + drivers/net/atlx/atl1.c | 1 + + drivers/net/cs89x0.c | 10 ++- + drivers/net/myri10ge/myri10ge.c | 2 +- + drivers/net/pppol2tp.c | 111 +++++++++++++++---- + drivers/net/sc92031.c | 2 +- + drivers/net/sfc/falcon_xmac.c | 2 +- + drivers/net/sunhme.c | 4 +- + drivers/net/tulip/tulip_core.c | 10 ++- + drivers/net/ucc_geth_ethtool.c | 3 +- + drivers/net/virtio_net.c | 36 ++++++- + drivers/net/wireless/airo.c | 2 +- + drivers/net/wireless/b43legacy/main.c | 17 ++-- + drivers/net/wireless/ipw2200.c | 27 +++++- + drivers/net/wireless/libertas/debugfs.c | 4 +- + drivers/net/wireless/p54/p54usb.c | 1 + + drivers/pnp/system.c | 2 +- + drivers/ssb/driver_pcicore.c | 4 +- + fs/cifs/asn1.c | 14 +++ + include/asm-frv/checksum.h | 2 +- + include/asm-mips/mach-au1x00/au1xxx_dbdma.h | 1 + + include/asm-mips/mipsregs.h | 3 + + include/asm-mips/pgtable.h | 3 +- + include/asm-mips/rtlx.h | 2 +- + include/asm-sparc64/io.h | 66 ++++++++---- + include/linux/in_route.h | 12 +- + include/linux/inetdevice.h | 1 - + include/linux/rtnetlink.h | 4 +- + include/linux/videodev2.h | 6 +- + include/media/v4l2-dev.h | 1 - + include/net/addrconf.h | 22 ++++ + include/net/genetlink.h | 4 +- + include/net/netlink.h | 20 ++-- + include/net/sctp/structs.h | 17 +++- + include/net/transp_v6.h | 3 +- + include/net/udp.h | 1 + + net/ax25/ax25_subr.c | 11 +-- + net/bluetooth/rfcomm/tty.c | 13 ++- + net/core/neighbour.c | 9 +- + net/core/rtnetlink.c | 3 +- + net/core/skbuff.c | 5 +- + net/core/user_dma.c | 2 +- + net/ipv4/devinet.c | 9 -- + net/ipv4/fib_frontend.c | 1 - + net/ipv4/netfilter/nf_nat_snmp_basic.c | 14 +++ + net/ipv4/raw.c | 9 ++ + net/ipv4/route.c | 2 +- + net/ipv4/tcp.c | 9 ++- + net/ipv4/tcp_input.c | 35 ++++--- + net/ipv4/tcp_output.c | 2 + + net/ipv4/tunnel4.c | 2 +- + net/ipv4/udp.c | 3 +- + net/ipv6/addrconf.c | 107 ++++++++++--------- + net/ipv6/datagram.c | 45 ++++---- + net/ipv6/ip6_flowlabel.c | 2 +- + net/ipv6/ipv6_sockglue.c | 21 +++- + net/ipv6/netfilter/nf_conntrack_reasm.c | 8 +- + net/ipv6/raw.c | 11 ++- + net/ipv6/route.c | 12 +-- + net/ipv6/tunnel6.c | 2 +- + net/ipv6/udp.c | 8 +- + net/irda/af_irda.c | 12 ++- + net/netfilter/xt_connlimit.c | 3 +- + net/netlink/attr.c | 12 +- + net/netlink/genetlink.c | 6 +- + net/sched/sch_dsmark.c | 6 +- + net/sched/sch_gred.c | 3 +- + net/sched/sch_hfsc.c | 2 +- + net/sched/sch_red.c | 3 +- + net/sctp/associola.c | 21 ++-- + net/sctp/ipv6.c | 11 ++- + net/sctp/output.c | 2 +- + net/sctp/outqueue.c | 120 +++++++++++++-------- + net/sctp/protocol.c | 11 ++- + net/sctp/transport.c | 50 ++++++--- + net/wireless/nl80211.c | 12 ++- + net/xfrm/xfrm_algo.c | 4 +- + 163 files changed, 1312 insertions(+), 881 deletions(-) +Merging powerpc-merge/merge +$ git merge powerpc-merge/merge +Already up-to-date. +Merging scsi-rc-fixes/master +$ git merge scsi-rc-fixes/master +Already up-to-date. +Merging net-current/master +$ git merge net-current/master +Already up-to-date. +Merging sparc-current/master +$ git merge sparc-current/master +Already up-to-date. +Merging sound-current/for-linus +$ git merge sound-current/for-linus +Already up-to-date. +Merging arm-current/master +$ git merge arm-current/master +Merge made by recursive. + arch/arm/boot/compressed/head-xscale.S | 4 ---- + arch/arm/mach-pxa/cm-x270.c | 2 +- + arch/arm/mach-pxa/em-x270.c | 2 +- + arch/arm/mach-pxa/tosa.c | 4 ++-- + include/asm-arm/arch-at91/io.h | 2 -- + include/asm-arm/arch-pxa/mfp-pxa27x.h | 1 + + include/asm-arm/arch-pxa/pxa2xx-gpio.h | 9 +++++++++ + include/asm-arm/pgtable-nommu.h | 1 - + include/asm-arm/spinlock.h | 2 +- + 9 files changed, 15 insertions(+), 12 deletions(-) +Merging pci-current/for-linus +$ git merge pci-current/for-linus +Merge made by recursive. + arch/x86/Kconfig | 11 +++++------ + arch/x86/pci/init.c | 3 ++- + arch/x86/pci/irq.c | 7 +++++++ + arch/x86/pci/olpc.c | 5 +++-- + arch/x86/pci/pci.h | 2 +- + 5 files changed, 18 insertions(+), 10 deletions(-) +Merging wireless-current/master +$ git merge wireless-current/master +Already up-to-date. +Merging kbuild-current/master +$ git merge kbuild-current/master +Already up-to-date. +Merging quilt/driver-core.current +$ git merge quilt/driver-core.current +Merge made by recursive. + Documentation/kobject.txt | 4 ++++ + drivers/base/core.c | 5 +++++ + include/linux/sysfs.h | 4 +++- + lib/kobject.c | 18 +++++------------- + 4 files changed, 17 insertions(+), 14 deletions(-) +Merging quilt/usb.current +$ git merge quilt/usb.current +Already up-to-date. +Merging cpufreq-current/fixes +$ git merge cpufreq-current/fixes +Already up-to-date. +Merging input-current/for-linus +$ git merge input-current/for-linus +Already up-to-date. +Merging quilt/driver-core +$ git merge quilt/driver-core +Auto-merged arch/x86/kernel/pci-gart_64.c +Auto-merged drivers/ata/libata-scsi.c +Auto-merged drivers/lguest/lguest_device.c +Auto-merged drivers/media/common/tuners/tuner-xc2028.c +Auto-merged drivers/media/dvb/dvb-usb/gp8psk.c +Auto-merged drivers/media/dvb/ttusb-dec/ttusb_dec.c +Auto-merged drivers/media/video/bt8xx/bttv-cards.c +Auto-merged drivers/media/video/em28xx/em28xx-video.c +Auto-merged drivers/message/fusion/mptfc.c +Auto-merged drivers/mtd/maps/omap_nor.c +Auto-merged drivers/mtd/onenand/generic.c +Auto-merged drivers/net/myri10ge/myri10ge.c +Auto-merged drivers/net/wireless/p54/p54usb.c +Auto-merged drivers/pnp/system.c +Auto-merged drivers/s390/kvm/kvm_virtio.c +CONFLICT (content): Merge conflict in drivers/s390/kvm/kvm_virtio.c +Auto-merged drivers/scsi/scsi_sysfs.c +Auto-merged drivers/serial/serial_core.c +Auto-merged drivers/usb/host/isp1760-if.c +Auto-merged drivers/virtio/virtio.c +CONFLICT (content): Merge conflict in drivers/virtio/virtio.c +Auto-merged drivers/virtio/virtio_pci.c +CONFLICT (content): Merge conflict in drivers/virtio/virtio_pci.c +Auto-merged net/wireless/nl80211.c +Resolved 'drivers/s390/kvm/kvm_virtio.c' using previous resolution. +Resolved 'drivers/virtio/virtio.c' using previous resolution. +Resolved 'drivers/virtio/virtio_pci.c' using previous resolution. +Automatic merge failed; fix conflicts and then commit the result. +$ git commit -v -a +$ git diff -M --stat --summary HEAD^.. + Documentation/ABI/testing/sysfs-dev | 20 ++ + Documentation/filesystems/sysfs.txt | 6 + + arch/arm/common/dmabounce.c | 22 +-- + arch/arm/common/locomo.c | 2 +- + arch/arm/common/sa1111.c | 10 +- + arch/arm/common/scoop.c | 2 +- + arch/arm/kernel/ecard.c | 5 +- + arch/arm/mach-integrator/impd1.c | 7 +- + arch/arm/mach-integrator/lm.c | 6 +- + arch/arm/plat-omap/mailbox.c | 2 +- + arch/avr32/mach-at32ap/clock.c | 4 +- + arch/mips/kernel/rtlx.c | 4 +- + arch/mips/sibyte/common/sb_tbprof.c | 3 +- + arch/powerpc/platforms/chrp/pci.c | 2 +- + arch/ppc/platforms/cpci690.c | 4 +- + arch/ppc/platforms/ev64260.c | 4 +- + arch/ppc/platforms/ev64360.c | 4 +- + arch/ppc/platforms/hdpu.c | 4 +- + arch/ppc/platforms/katana.c | 4 +- + arch/ppc/platforms/radstone_ppc7d.c | 4 +- + arch/ppc/syslib/ppc_sys.c | 12 +- + arch/sparc64/kernel/ebus.c | 4 +- + arch/sparc64/kernel/of_device.c | 4 +- + arch/sparc64/kernel/pci.c | 2 +- + arch/sparc64/kernel/vio.c | 18 +- + arch/x86/kernel/cpuid.c | 4 +- + arch/x86/kernel/microcode.c | 4 +- + arch/x86/kernel/msr.c | 4 +- + arch/x86/kernel/pci-dma.c | 8 +- + arch/x86/kernel/pci-gart_64.c | 4 +- + arch/x86/kernel/traps_32.c | 1 + + arch/x86/kernel/traps_64.c | 1 + + block/bsg.c | 9 +- + block/genhd.c | 201 ++++++++++------- + drivers/acpi/ac.c | 2 +- + drivers/acpi/battery.c | 2 +- + drivers/acpi/fan.c | 10 +- + drivers/acpi/glue.c | 14 +- + drivers/acpi/processor_core.c | 11 +- + drivers/acpi/scan.c | 6 +- + drivers/acpi/sleep/proc.c | 2 +- + drivers/acpi/thermal.c | 12 +- + drivers/acpi/video.c | 5 +- + drivers/acpi/wmi.c | 2 +- + drivers/amba/bus.c | 4 +- + drivers/ata/libata-scsi.c | 2 +- + drivers/base/attribute_container.c | 2 +- + drivers/base/base.h | 27 +++ + drivers/base/bus.c | 12 +- + drivers/base/class.c | 153 ++++++++------ + drivers/base/core.c | 228 ++++++++++++------- + drivers/base/dd.c | 12 +- + drivers/base/firmware_class.c | 10 +- + drivers/base/isa.c | 4 +- + drivers/base/platform.c | 18 +- + drivers/base/power/main.c | 2 +- + drivers/base/power/trace.c | 6 +- + drivers/block/aoe/aoechr.c | 5 +- + drivers/block/paride/pg.c | 5 +- + drivers/block/paride/pt.c | 10 +- + drivers/block/pktcdvd.c | 4 +- + drivers/bluetooth/bfusb.c | 3 +- + drivers/bluetooth/bt3c_cs.c | 3 +- + drivers/char/cyclades.c | 10 +- + drivers/char/drm/drm_sysfs.c | 3 +- + drivers/char/dsp56k.c | 3 +- + drivers/char/ip2/ip2main.c | 12 +- + drivers/char/ipmi/ipmi_devintf.c | 2 +- + drivers/char/istallion.c | 5 +- + drivers/char/lp.c | 3 +- + drivers/char/mem.c | 6 +- + drivers/char/misc.c | 4 +- + drivers/char/pcmcia/cm4000_cs.c | 2 +- + drivers/char/pcmcia/cm4040_cs.c | 3 +- + drivers/char/ppdev.c | 5 +- + drivers/char/raw.c | 7 +- + drivers/char/snsc.c | 3 +- + drivers/char/stallion.c | 4 +- + drivers/char/tty_io.c | 12 +- + drivers/char/vc_screen.c | 12 +- + drivers/char/viotape.c | 8 +- + drivers/char/vt.c | 14 +- + drivers/char/xilinx_hwicap/xilinx_hwicap.c | 5 +- + drivers/dca/dca-sysfs.c | 8 +- + drivers/dma/dmaengine.c | 2 +- + drivers/edac/cell_edac.c | 2 +- + drivers/edac/edac_device.c | 2 +- + drivers/edac/edac_mc.c | 2 +- + drivers/edac/edac_pci.c | 2 +- + drivers/edac/edac_pci_sysfs.c | 6 +- + drivers/edac/mpc85xx_edac.c | 2 +- + drivers/edac/mv64x60_edac.c | 8 +- + drivers/eisa/Makefile | 2 +- + drivers/eisa/eisa-bus.c | 6 +- + drivers/firewire/fw-device.c | 16 +- + drivers/firewire/fw-ohci.c | 2 +- + drivers/firewire/fw-sbp2.c | 2 +- + drivers/firmware/dell_rbu.c | 2 +- + drivers/firmware/dmi-id.c | 2 +- + drivers/hid/hidraw.c | 5 +- + drivers/hwmon/hwmon.c | 5 +- + drivers/i2c/busses/i2c-pxa.c | 4 +- + drivers/i2c/busses/i2c-s3c2410.c | 2 +- + drivers/i2c/busses/i2c-sh_mobile.c | 2 +- + drivers/i2c/i2c-core.c | 104 +++++---- + drivers/i2c/i2c-dev.c | 6 +- + drivers/ide/ide-acpi.c | 2 +- + drivers/ide/ide-probe.c | 4 +- + drivers/ide/ide-tape.c | 10 +- + drivers/ieee1394/dv1394.c | 7 +- + drivers/ieee1394/hosts.c | 4 +- + drivers/ieee1394/nodemgr.c | 37 ++-- + drivers/ieee1394/raw1394.c | 4 +- + drivers/ieee1394/video1394.c | 6 +- + drivers/infiniband/core/cm.c | 72 +++---- + drivers/infiniband/core/sysfs.c | 2 +- + drivers/infiniband/core/ucm.c | 3 +- + drivers/infiniband/hw/ipath/ipath_file_ops.c | 2 +- + drivers/infiniband/ulp/srp/ib_srp.c | 3 +- + drivers/input/evdev.c | 2 +- + drivers/input/gameport/gameport.c | 2 +- + drivers/input/gameport/ns558.c | 2 +- + drivers/input/input.c | 2 +- + drivers/input/joydev.c | 2 +- + drivers/input/mousedev.c | 3 +- + drivers/input/serio/ambakmi.c | 4 +- + drivers/input/serio/gscps2.c | 2 +- + drivers/input/serio/pcips2.c | 2 +- + drivers/input/serio/sa1111ps2.c | 4 +- + drivers/input/serio/serio.c | 2 +- + drivers/input/touchscreen/ads7846.c | 4 +- + drivers/isdn/capi/capi.c | 3 +- + drivers/lguest/lguest_device.c | 4 +- + drivers/macintosh/adb.c | 3 +- + drivers/macintosh/macio_asic.c | 8 +- + drivers/mca/mca-bus.c | 2 +- + drivers/media/common/tuners/tuner-xc2028.c | 2 +- + drivers/media/common/tuners/xc5000.c | 2 +- + drivers/media/dvb/dvb-core/dvbdev.c | 4 +- + drivers/media/dvb/dvb-usb/cxusb.c | 21 ++- + drivers/media/dvb/dvb-usb/gp8psk.c | 3 +- + drivers/media/dvb/frontends/bcm3510.c | 5 +- + drivers/media/dvb/frontends/nxt200x.c | 3 +- + drivers/media/dvb/frontends/or51211.c | 4 +- + drivers/media/dvb/frontends/sp8870.c | 2 +- + drivers/media/dvb/frontends/sp887x.c | 2 +- + drivers/media/dvb/frontends/tda10048.c | 2 +- + drivers/media/dvb/frontends/tda1004x.c | 2 +- + drivers/media/dvb/ttusb-dec/ttusb_dec.c | 2 +- + drivers/media/video/bt8xx/bttv-cards.c | 3 +- + drivers/media/video/bt8xx/bttv-gpio.c | 7 +- + drivers/media/video/bt8xx/bttv.h | 2 +- + drivers/media/video/cx25840/cx25840-firmware.c | 27 +-- + drivers/media/video/em28xx/em28xx-video.c | 4 +- + drivers/media/video/et61x251/et61x251_core.c | 2 +- + drivers/media/video/ir-kbd-i2c.c | 6 +- + drivers/media/video/pvrusb2/pvrusb2-hdw.c | 2 +- + drivers/media/video/pvrusb2/pvrusb2-sysfs.c | 4 +- + drivers/media/video/sn9c102/sn9c102_core.c | 2 +- + drivers/media/video/soc_camera.c | 5 +- + drivers/media/video/usbvision/usbvision-video.c | 2 +- + drivers/media/video/videodev.c | 2 +- + drivers/media/video/zc0301/zc0301_core.c | 2 +- + drivers/memstick/core/memstick.c | 6 +- + drivers/memstick/core/mspro_block.c | 14 +- + drivers/memstick/host/jmb38x_ms.c | 4 +- + drivers/memstick/host/tifm_ms.c | 6 +- + drivers/message/fusion/mptbase.h | 2 +- + drivers/message/fusion/mptfc.c | 4 +- + drivers/message/i2o/device.c | 6 +- + drivers/message/i2o/i2o_proc.c | 2 +- + drivers/message/i2o/iop.c | 2 +- + drivers/misc/enclosure.c | 8 +- + drivers/misc/phantom.c | 5 +- + drivers/misc/thinkpad_acpi.c | 8 +- + drivers/misc/tifm_7xx1.c | 2 +- + drivers/misc/tifm_core.c | 7 +- + drivers/mmc/core/bus.c | 4 +- + drivers/mmc/core/host.c | 6 +- + drivers/mmc/core/sdio_bus.c | 4 +- + drivers/mmc/host/mmc_spi.c | 2 +- + drivers/mmc/host/tifm_sd.c | 18 +- + drivers/mtd/devices/m25p80.c | 14 +- + drivers/mtd/devices/mtd_dataflash.c | 28 ++-- + drivers/mtd/maps/bast-flash.c | 2 +- + drivers/mtd/maps/integrator-flash.c | 2 +- + drivers/mtd/maps/ixp2000.c | 4 +- + drivers/mtd/maps/ixp4xx.c | 2 +- + drivers/mtd/maps/omap_nor.c | 2 +- + drivers/mtd/maps/physmap.c | 6 +- + drivers/mtd/maps/physmap_of.c | 4 +- + drivers/mtd/mtdchar.c | 9 +- + drivers/mtd/nand/plat_nand.c | 2 +- + drivers/mtd/onenand/generic.c | 2 +- + drivers/mtd/ubi/build.c | 2 +- + drivers/mtd/ubi/vmt.c | 4 +- + drivers/net/3c59x.c | 6 +- + drivers/net/arm/at91_ether.c | 2 +- + drivers/net/arm/ep93xx_eth.c | 2 +- + drivers/net/arm/etherh.c | 6 +- + drivers/net/au1000_eth.c | 4 +- + drivers/net/bfin_mac.c | 8 +- + drivers/net/bmac.c | 2 +- + drivers/net/cxgb3/common.h | 5 +- + drivers/net/cxgb3/t3_hw.c | 7 +- + drivers/net/declance.c | 6 +- + drivers/net/defxx.c | 2 +- + drivers/net/depca.c | 4 +- + drivers/net/enc28j60.c | 2 +- + drivers/net/irda/irda-usb.c | 12 +- + drivers/net/jazzsonic.c | 6 +- + drivers/net/macb.c | 8 +- + drivers/net/macsonic.c | 15 +- + drivers/net/myri10ge/myri10ge.c | 11 +- + drivers/net/pasemi_mac.h | 2 +- + drivers/net/phy/mdio_bus.c | 2 +- + drivers/net/phy/phy.c | 2 +- + drivers/net/phy/phy_device.c | 14 +- + drivers/net/ppp_generic.c | 3 +- + drivers/net/sb1250-mac.c | 10 +- + drivers/net/smc911x.c | 2 +- + drivers/net/smc91x.c | 2 +- + drivers/net/tc35815.c | 4 +- + drivers/net/tulip/de4x5.c | 4 +- + drivers/net/wan/cosa.c | 6 +- + drivers/net/wireless/atmel.c | 6 +- + drivers/net/wireless/libertas/defs.h | 2 +- + drivers/net/wireless/libertas/if_cs.c | 2 +- + drivers/net/wireless/libertas/if_sdio.c | 4 +- + drivers/net/wireless/libertas/if_usb.c | 4 +- + drivers/net/wireless/orinoco.c | 2 +- + drivers/net/wireless/orinoco_cs.c | 2 +- + drivers/net/wireless/p54/p54usb.c | 5 +- + drivers/net/wireless/rt2x00/rt2x00.h | 4 +- + drivers/net/wireless/rt2x00/rt2x00pci.h | 2 +- + drivers/net/wireless/rt2x00/rt61pci.c | 4 +- + drivers/net/wireless/rt2x00/rt73usb.c | 6 +- + drivers/net/wireless/spectrum_cs.c | 2 +- + drivers/net/wireless/zd1201.c | 2 +- + drivers/parisc/dino.c | 11 +- + drivers/pci/hotplug/acpiphp.h | 4 +- + drivers/pci/hotplug/acpiphp_ibm.c | 2 +- + drivers/pci/hotplug/cpqphp_sysfs.c | 2 +- + drivers/pci/hotplug/fakephp.c | 9 +- + drivers/pci/pci-acpi.c | 2 +- + drivers/pci/pcie/aer/aerdrv.c | 6 +- + drivers/pci/pcie/aer/aerdrv_acpi.c | 2 +- + drivers/pci/pcie/aer/aerdrv_core.c | 8 +- + drivers/pci/pcie/portdrv_core.c | 13 +- + drivers/pci/probe.c | 8 +- + drivers/pcmcia/cs.c | 2 +- + drivers/pcmcia/cs_internal.h | 4 +- + drivers/pcmcia/ds.c | 48 ++-- + drivers/pcmcia/rsrc_mgr.c | 2 +- + drivers/pcmcia/rsrc_nonstatic.c | 8 +- + drivers/pnp/card.c | 4 +- + drivers/pnp/core.c | 6 +- + drivers/pnp/system.c | 2 +- + drivers/power/apm_power.c | 2 +- + drivers/power/ds2760_battery.c | 4 +- + drivers/power/power_supply_core.c | 4 +- + drivers/rtc/class.c | 16 +- + drivers/rtc/interface.c | 4 +- + drivers/rtc/rtc-at91sam9.c | 4 +- + drivers/rtc/rtc-cmos.c | 10 +- + drivers/rtc/rtc-omap.c | 4 +- + drivers/s390/block/dasd.c | 32 ++-- + drivers/s390/block/dasd_3990_erp.c | 2 +- + drivers/s390/block/dasd_devmap.c | 28 ++-- + drivers/s390/block/dasd_eckd.c | 6 +- + drivers/s390/block/dasd_eer.c | 4 +- + drivers/s390/block/dasd_fba.c | 4 +- + drivers/s390/block/dasd_int.h | 4 +- + drivers/s390/block/dasd_proc.c | 2 +- + drivers/s390/block/dcssblk.c | 7 +- + drivers/s390/char/raw3270.c | 14 +- + drivers/s390/char/tape_3590.c | 129 ++++++------ + drivers/s390/char/tape_block.c | 2 +- + drivers/s390/char/tape_class.c | 7 +- + drivers/s390/char/tape_core.c | 20 +- + drivers/s390/char/tape_proc.c | 2 +- + drivers/s390/char/tape_std.c | 12 +- + drivers/s390/char/vmlogrdr.c | 5 +- + drivers/s390/char/vmur.c | 11 +- + drivers/s390/cio/ccwgroup.c | 3 +- + drivers/s390/cio/chp.c | 3 +- + drivers/s390/cio/cio.c | 29 ++- + drivers/s390/cio/cio.h | 4 + + drivers/s390/cio/css.c | 4 +- + drivers/s390/cio/device.c | 20 ++- + drivers/s390/cio/device_fsm.c | 6 +- + drivers/s390/cio/device_ops.c | 2 +- + drivers/s390/cio/qdio.c | 24 +- + drivers/s390/crypto/ap_bus.c | 4 +- + drivers/s390/kvm/kvm_virtio.c | 15 +- + drivers/s390/net/claw.c | 50 +++-- + drivers/s390/net/claw.h | 2 +- + drivers/s390/net/ctcm_main.c | 22 +- + drivers/s390/net/ctcm_main.h | 2 +- + drivers/s390/net/lcs.c | 30 ++-- + drivers/s390/net/netiucv.c | 4 +- + drivers/s390/net/qeth_core.h | 10 +- + drivers/s390/net/qeth_core_main.c | 10 +- + drivers/s390/s390_rdev.c | 2 +- + drivers/s390/scsi/zfcp_aux.c | 23 +-- + drivers/s390/scsi/zfcp_def.h | 4 +- + drivers/sbus/sbus.c | 6 +- + drivers/scsi/NCR_D700.c | 2 +- + drivers/scsi/advansys.c | 2 +- + drivers/scsi/aic94xx/aic94xx_sds.c | 12 +- + drivers/scsi/aic94xx/aic94xx_sds.h | 4 +- + drivers/scsi/aic94xx/aic94xx_seq.c | 7 +- + drivers/scsi/aic94xx/aic94xx_tmf.c | 2 +- + drivers/scsi/dpt_i2o.c | 4 +- + drivers/scsi/hosts.c | 13 +- + drivers/scsi/ipr.c | 2 +- + drivers/scsi/ipr.h | 2 +- + drivers/scsi/lasi700.c | 2 +- + drivers/scsi/libsas/sas_discover.c | 2 +- + drivers/scsi/libsas/sas_dump.c | 2 +- + drivers/scsi/libsas/sas_port.c | 2 +- + drivers/scsi/raid_class.c | 3 +- + drivers/scsi/scsi_debug.c | 4 +- + drivers/scsi/scsi_ioctl.c | 2 +- + drivers/scsi/scsi_scan.c | 7 +- + drivers/scsi/scsi_sysfs.c | 12 +- + drivers/scsi/scsi_transport_fc.c | 23 +- + drivers/scsi/scsi_transport_iscsi.c | 12 +- + drivers/scsi/scsi_transport_sas.c | 32 ++-- + drivers/scsi/scsi_transport_srp.c | 2 +- + drivers/scsi/sd.c | 2 +- + drivers/scsi/ses.c | 2 +- + drivers/scsi/sim710.c | 5 +- + drivers/scsi/sni_53c710.c | 2 +- + drivers/scsi/zalon.c | 2 +- + drivers/serial/serial_core.c | 4 +- + drivers/serial/sunzilog.c | 4 +- + drivers/spi/atmel_spi.c | 8 +- + drivers/spi/mpc52xx_psc_spi.c | 2 +- + drivers/spi/omap2_mcspi.c | 2 +- + drivers/spi/omap_uwire.c | 12 +- + drivers/spi/pxa2xx_spi.c | 4 +- + drivers/spi/spi.c | 18 +- + drivers/spi/spi_bfin5xx.c | 2 +- + drivers/spi/spi_bitbang.c | 2 +- + drivers/spi/spi_butterfly.c | 2 +- + drivers/spi/spi_imx.c | 4 +- + drivers/spi/spi_lm70llp.c | 2 +- + drivers/spi/spi_mpc83xx.c | 2 +- + drivers/spi/spi_txx9.c | 2 +- + drivers/spi/spidev.c | 3 +- + drivers/ssb/main.c | 11 +- + drivers/ssb/pcihost_wrapper.c | 2 +- + drivers/thermal/thermal_sys.c | 6 +- + drivers/usb/atm/cxacru.c | 2 +- + drivers/usb/atm/ueagle-atm.c | 20 +- + drivers/usb/core/devio.c | 15 +- + drivers/usb/core/driver.c | 6 +- + drivers/usb/core/endpoint.c | 4 +- + drivers/usb/core/file.c | 15 +- + drivers/usb/core/hcd.c | 6 +- + drivers/usb/core/hcd.h | 2 +- + drivers/usb/core/message.c | 8 +- + drivers/usb/core/usb.c | 7 +- + drivers/usb/gadget/amd5536udc.c | 2 +- + drivers/usb/gadget/at91_udc.c | 2 +- + drivers/usb/gadget/atmel_usba_udc.c | 2 +- + drivers/usb/gadget/dummy_hcd.c | 4 +- + drivers/usb/gadget/ether.c | 2 +- + drivers/usb/gadget/file_storage.c | 4 +- + drivers/usb/gadget/fsl_usb2_udc.c | 2 +- + drivers/usb/gadget/goku_udc.c | 2 +- + drivers/usb/gadget/lh7a40x_udc.c | 4 +- + drivers/usb/gadget/m66592-udc.c | 2 +- + drivers/usb/gadget/net2280.c | 2 +- + drivers/usb/gadget/omap_udc.c | 2 +- + drivers/usb/gadget/printer.c | 4 +- + drivers/usb/gadget/pxa27x_udc.c | 2 +- + drivers/usb/gadget/pxa2xx_udc.c | 4 +- + drivers/usb/gadget/s3c2410_udc.c | 2 +- + drivers/usb/host/ehci-dbg.c | 4 +- + drivers/usb/host/ehci-fsl.c | 12 +- + drivers/usb/host/ehci-ixp4xx.c | 8 +- + drivers/usb/host/ehci-orion.c | 8 +- + drivers/usb/host/ehci-ps3.c | 2 +- + drivers/usb/host/isp116x-hcd.c | 2 +- + drivers/usb/host/isp1760-hcd.c | 2 +- + drivers/usb/host/isp1760-if.c | 6 +- + drivers/usb/host/ohci-dbg.c | 2 +- + drivers/usb/host/ohci-omap.c | 2 +- + drivers/usb/host/ohci-pnx4008.c | 2 +- + drivers/usb/host/ohci-ps3.c | 2 +- + drivers/usb/host/ohci-sm501.c | 2 +- + drivers/usb/host/ohci-ssb.c | 2 +- + drivers/usb/host/sl811-hcd.c | 2 +- + drivers/usb/host/u132-hcd.c | 2 +- + drivers/usb/misc/isight_firmware.c | 2 +- + drivers/usb/mon/mon_bin.c | 5 +- + drivers/usb/serial/usb-serial.c | 6 +- + drivers/video/aty/aty128fb.c | 2 +- + drivers/video/aty/radeonfb.h | 2 +- + drivers/video/backlight/backlight.c | 2 +- + drivers/video/backlight/lcd.c | 2 +- + drivers/video/console/fbcon.c | 3 +- + drivers/video/fbmem.c | 5 +- + drivers/video/output.c | 2 +- + drivers/video/pmag-ba-fb.c | 16 +- + drivers/video/pmagb-b-fb.c | 16 +- + drivers/video/ps3fb.c | 2 +- + drivers/virtio/virtio.c | 2 +- + drivers/virtio/virtio_pci.c | 4 +- + drivers/w1/w1.c | 19 +- + drivers/w1/w1_int.c | 3 +- + drivers/xen/xenbus/xenbus_probe.c | 10 +- + drivers/xen/xenbus/xenbus_probe.h | 2 +- + fs/coda/psdev.c | 5 +- + fs/partitions/check.c | 16 +- + fs/sysfs/file.c | 13 ++ + fs/sysfs/mount.c | 2 +- + fs/sysfs/sysfs.h | 1 + + include/asm-parisc/parisc-device.h | 4 +- + include/linux/device.h | 55 +++-- + include/linux/eisa.h | 2 +- + include/linux/firmware.h | 2 +- + include/linux/init.h | 1 + + include/linux/kobject.h | 1 - + include/linux/mmc/card.h | 2 +- + include/linux/mmc/host.h | 2 +- + include/linux/mmc/sdio_func.h | 2 +- + include/linux/mtd/map.h | 2 +- + include/linux/mtd/mtd.h | 2 +- + include/linux/pci.h | 4 +- + include/linux/phy.h | 6 +- + include/linux/rio_drv.h | 2 +- + include/linux/spi/spi.h | 2 +- + include/linux/sysfs.h | 5 + + include/linux/usb.h | 2 +- + include/net/wireless.h | 4 +- + include/scsi/scsi_host.h | 2 +- + include/scsi/scsi_transport_fc.h | 4 +- + include/scsi/scsi_transport_iscsi.h | 2 +- + init/main.c | 9 + + lib/Kconfig.debug | 3 + + lib/kobject.c | 62 +++++- + lib/swiotlb.c | 2 +- + net/atm/atm_sysfs.c | 2 +- + net/bluetooth/hci_sysfs.c | 14 +- + net/core/net-sysfs.c | 3 +- + net/rfkill/rfkill.c | 6 +- + net/wireless/core.c | 3 +- + net/wireless/nl80211.c | 2 +- + .../firmware_sample_firmware_class.c | 4 +- + scripts/mod/file2alias.c | 24 ++- + sound/core/init.c | 5 +- + sound/drivers/ml403-ac97cr.c | 4 +- + sound/drivers/vx/vx_core.c | 4 +- + sound/isa/ad1848/ad1848.c | 6 +- + sound/isa/adlib.c | 12 +- + sound/isa/cs423x/cs4231.c | 9 +- + sound/isa/cs423x/cs4236.c | 8 +- + sound/isa/es1688/es1688.c | 6 +- + sound/isa/gus/gusclassic.c | 8 +- + sound/isa/gus/gusextreme.c | 12 +- + sound/isa/sb/sb8.c | 4 +- + sound/oss/soundcard.c | 14 +- + sound/pci/ac97/ac97_codec.c | 2 +- + sound/pci/maestro3.c | 29 ++-- + sound/pci/pcxhr/pcxhr_core.c | 4 +- + sound/pci/riptide/riptide.c | 10 +- + sound/pci/vx222/vx222_ops.c | 2 +- + sound/pci/ymfpci/ymfpci_main.c | 59 +++--- + sound/sound_core.c | 5 +- + 472 files changed, 2080 insertions(+), 1733 deletions(-) + create mode 100644 Documentation/ABI/testing/sysfs-dev +Merging quilt/usb +$ git merge quilt/usb +Removed Documentation/usb/uhci.txt +Merge made by recursive. + Documentation/usb/WUSB-Design-overview.txt | 448 +++++++ + Documentation/usb/gadget_serial.txt | 35 +- + Documentation/usb/uhci.txt | 165 --- + Documentation/usb/wusb-cbaf | 133 ++ + drivers/Kconfig | 2 + + drivers/Makefile | 1 + + drivers/usb/Kconfig | 2 + + drivers/usb/Makefile | 3 + + drivers/usb/core/devices.c | 2 - + drivers/usb/core/devio.c | 2 - + drivers/usb/core/driver.c | 31 +- + drivers/usb/core/hub.c | 506 +++++--- + drivers/usb/gadget/Makefile | 2 +- + drivers/usb/gadget/rndis.c | 55 +- + drivers/usb/gadget/rndis.h | 2 - + drivers/usb/gadget/serial.c | 1392 ++------------------- + drivers/usb/gadget/u_serial.c | 1270 ++++++++++++++++++ + drivers/usb/gadget/u_serial.h | 51 + + drivers/usb/host/Kconfig | 26 + + drivers/usb/host/Makefile | 3 + + drivers/usb/host/hwa-hc.c | 935 +++++++++++++ + drivers/usb/host/isp1760-hcd.c | 8 +- + drivers/usb/host/whci/Kbuild | 11 + + drivers/usb/host/whci/asl.c | 366 ++++++ + drivers/usb/host/whci/hcd.c | 339 +++++ + drivers/usb/host/whci/hw.c | 80 ++ + drivers/usb/host/whci/init.c | 181 +++ + drivers/usb/host/whci/int.c | 95 ++ + drivers/usb/host/whci/pzl.c | 398 ++++++ + drivers/usb/host/whci/qset.c | 563 ++++++++ + drivers/usb/host/whci/whcd.h | 195 +++ + drivers/usb/host/whci/whci-hc.h | 413 ++++++ + drivers/usb/host/whci/wusb.c | 241 ++++ + drivers/usb/misc/Kconfig | 10 + + drivers/usb/misc/Makefile | 1 + + drivers/usb/misc/emi62.c | 2 - + drivers/usb/misc/gotemp.c | 301 +++++ + drivers/usb/serial/Kconfig | 8 + + drivers/usb/serial/digi_acceleport.c | 2 - + drivers/usb/serial/io_fw_down3.h | 11 +- + drivers/usb/serial/io_ti.c | 1888 ++++++++++++--------------- + drivers/usb/serial/keyspan_pda.S | 2 +- + drivers/usb/serial/kl5kusb105.c | 2 +- + drivers/usb/serial/ti_fw_3410.h | 4 + + drivers/usb/serial/ti_fw_5052.h | 5 + + drivers/usb/serial/ti_usb_3410_5052.c | 106 +- + drivers/usb/serial/xircom_pgs.S | 2 +- + drivers/usb/storage/datafab.c | 2 - + drivers/usb/storage/debug.c | 2 - + drivers/usb/storage/debug.h | 2 - + drivers/usb/storage/dpcm.c | 2 - + drivers/usb/storage/dpcm.h | 2 - + drivers/usb/storage/freecom.c | 2 - + drivers/usb/storage/freecom.h | 2 - + drivers/usb/storage/initializers.c | 2 - + drivers/usb/storage/initializers.h | 2 - + drivers/usb/storage/isd200.c | 8 +- + drivers/usb/storage/jumpshot.c | 2 - + drivers/usb/storage/protocol.c | 2 - + drivers/usb/storage/protocol.h | 2 - + drivers/usb/storage/scsiglue.c | 28 +- + drivers/usb/storage/scsiglue.h | 2 - + drivers/usb/storage/sddr09.c | 1 - + drivers/usb/storage/sddr09.h | 2 - + drivers/usb/storage/sddr55.c | 2 - + drivers/usb/storage/sddr55.h | 2 - + drivers/usb/storage/shuttle_usbat.c | 2 - + drivers/usb/storage/shuttle_usbat.h | 2 - + drivers/usb/storage/transport.c | 78 +- + drivers/usb/storage/transport.h | 2 - + drivers/usb/storage/unusual_devs.h | 2 - + drivers/usb/storage/usb.c | 111 +- + drivers/usb/storage/usb.h | 25 +- + drivers/usb/wusbcore/Kconfig | 17 + + drivers/usb/wusbcore/Makefile | 20 + + drivers/usb/wusbcore/cbaf.c | 620 +++++++++ + drivers/usb/wusbcore/crypto.c | 538 ++++++++ + drivers/usb/wusbcore/dev-sysfs.c | 199 +++ + drivers/usb/wusbcore/devconnect.c | 1319 +++++++++++++++++++ + drivers/usb/wusbcore/mmc.c | 329 +++++ + drivers/usb/wusbcore/pal.c | 39 + + drivers/usb/wusbcore/reservation.c | 115 ++ + drivers/usb/wusbcore/rh.c | 477 +++++++ + drivers/usb/wusbcore/security.c | 644 +++++++++ + drivers/usb/wusbcore/wa-hc.c | 83 ++ + drivers/usb/wusbcore/wa-hc.h | 416 ++++++ + drivers/usb/wusbcore/wa-nep.c | 313 +++++ + drivers/usb/wusbcore/wa-rpipe.c | 562 ++++++++ + drivers/usb/wusbcore/wa-xfer.c | 1709 ++++++++++++++++++++++++ + drivers/usb/wusbcore/wusbhc.c | 392 ++++++ + drivers/usb/wusbcore/wusbhc.h | 525 ++++++++ + drivers/uwb/Kconfig | 89 ++ + drivers/uwb/Makefile | 29 + + drivers/uwb/address.c | 374 ++++++ + drivers/uwb/beacon.c | 707 ++++++++++ + drivers/uwb/driver.c | 142 ++ + drivers/uwb/drp-avail.c | 288 ++++ + drivers/uwb/drp-ie.c | 233 ++++ + drivers/uwb/drp.c | 451 +++++++ + drivers/uwb/est.c | 414 ++++++ + drivers/uwb/hwa-rc.c | 912 +++++++++++++ + drivers/uwb/i1480/Makefile | 2 + + drivers/uwb/i1480/dfu/Makefile | 9 + + drivers/uwb/i1480/dfu/dfu.c | 281 ++++ + drivers/uwb/i1480/dfu/i1480-dfu.h | 263 ++++ + drivers/uwb/i1480/dfu/mac.c | 529 ++++++++ + drivers/uwb/i1480/dfu/phy.c | 203 +++ + drivers/uwb/i1480/dfu/usb.c | 501 +++++++ + drivers/uwb/i1480/i1480-est.c | 99 ++ + drivers/uwb/i1480/i1480-wlp.h | 155 +++ + drivers/uwb/i1480/i1480u-wlp/Makefile | 8 + + drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.h | 269 ++++ + drivers/uwb/i1480/i1480u-wlp/lc.c | 421 ++++++ + drivers/uwb/i1480/i1480u-wlp/netdev.c | 367 ++++++ + drivers/uwb/i1480/i1480u-wlp/rx.c | 491 +++++++ + drivers/uwb/i1480/i1480u-wlp/sysfs.c | 446 +++++++ + drivers/uwb/i1480/i1480u-wlp/tx.c | 638 +++++++++ + drivers/uwb/ie.c | 570 ++++++++ + drivers/uwb/lc-dev.c | 517 ++++++++ + drivers/uwb/lc-rc.c | 485 +++++++ + drivers/uwb/neh.c | 615 +++++++++ + drivers/uwb/pal.c | 71 + + drivers/uwb/reset.c | 319 +++++ + drivers/uwb/rsv.c | 677 ++++++++++ + drivers/uwb/scan.c | 159 +++ + drivers/uwb/umc-bus.c | 185 +++ + drivers/uwb/umc-dev.c | 103 ++ + drivers/uwb/umc-drv.c | 31 + + drivers/uwb/uwb-debug.c | 367 ++++++ + drivers/uwb/uwb-internal.h | 283 ++++ + drivers/uwb/uwbd.c | 425 ++++++ + drivers/uwb/whc-rc.c | 511 ++++++++ + drivers/uwb/whci.c | 274 ++++ + drivers/uwb/wlp/Makefile | 10 + + drivers/uwb/wlp/driver.c | 43 + + drivers/uwb/wlp/eda.c | 449 +++++++ + drivers/uwb/wlp/messages.c | 1946 ++++++++++++++++++++++++++++ + drivers/uwb/wlp/sysfs.c | 715 ++++++++++ + drivers/uwb/wlp/txrx.c | 374 ++++++ + drivers/uwb/wlp/wlp-internal.h | 228 ++++ + drivers/uwb/wlp/wlp-lc.c | 572 ++++++++ + drivers/uwb/wlp/wss-lc.c | 1056 +++++++++++++++ + include/linux/bitmap.h | 1 + + include/linux/byteorder/bitfields.h | 114 ++ + include/linux/usb.h | 6 + + include/linux/usb/wusb-wa.h | 281 ++++ + include/linux/usb/wusb.h | 419 ++++++ + include/linux/usbdevice_fs.h | 2 - + include/linux/uwb.h | 759 +++++++++++ + include/linux/uwb/debug-cmd.h | 57 + + include/linux/uwb/debug.h | 82 ++ + include/linux/uwb/spec.h | 625 +++++++++ + include/linux/uwb/umc.h | 194 +++ + include/linux/uwb/whci.h | 117 ++ + include/linux/wlp.h | 728 +++++++++++ + lib/bitmap.c | 22 + + 156 files changed, 38655 insertions(+), 2966 deletions(-) + create mode 100644 Documentation/usb/WUSB-Design-overview.txt + delete mode 100644 Documentation/usb/uhci.txt + create mode 100644 Documentation/usb/wusb-cbaf + create mode 100644 drivers/usb/gadget/u_serial.c + create mode 100644 drivers/usb/gadget/u_serial.h + create mode 100644 drivers/usb/host/hwa-hc.c + create mode 100644 drivers/usb/host/whci/Kbuild + create mode 100644 drivers/usb/host/whci/asl.c + create mode 100644 drivers/usb/host/whci/hcd.c + create mode 100644 drivers/usb/host/whci/hw.c + create mode 100644 drivers/usb/host/whci/init.c + create mode 100644 drivers/usb/host/whci/int.c + create mode 100644 drivers/usb/host/whci/pzl.c + create mode 100644 drivers/usb/host/whci/qset.c + create mode 100644 drivers/usb/host/whci/whcd.h + create mode 100644 drivers/usb/host/whci/whci-hc.h + create mode 100644 drivers/usb/host/whci/wusb.c + create mode 100644 drivers/usb/misc/gotemp.c + create mode 100644 drivers/usb/wusbcore/Kconfig + create mode 100644 drivers/usb/wusbcore/Makefile + create mode 100644 drivers/usb/wusbcore/cbaf.c + create mode 100644 drivers/usb/wusbcore/crypto.c + create mode 100644 drivers/usb/wusbcore/dev-sysfs.c + create mode 100644 drivers/usb/wusbcore/devconnect.c + create mode 100644 drivers/usb/wusbcore/mmc.c + create mode 100644 drivers/usb/wusbcore/pal.c + create mode 100644 drivers/usb/wusbcore/reservation.c + create mode 100644 drivers/usb/wusbcore/rh.c + create mode 100644 drivers/usb/wusbcore/security.c + create mode 100644 drivers/usb/wusbcore/wa-hc.c + create mode 100644 drivers/usb/wusbcore/wa-hc.h + create mode 100644 drivers/usb/wusbcore/wa-nep.c + create mode 100644 drivers/usb/wusbcore/wa-rpipe.c + create mode 100644 drivers/usb/wusbcore/wa-xfer.c + create mode 100644 drivers/usb/wusbcore/wusbhc.c + create mode 100644 drivers/usb/wusbcore/wusbhc.h + create mode 100644 drivers/uwb/Kconfig + create mode 100644 drivers/uwb/Makefile + create mode 100644 drivers/uwb/address.c + create mode 100644 drivers/uwb/beacon.c + create mode 100644 drivers/uwb/driver.c + create mode 100644 drivers/uwb/drp-avail.c + create mode 100644 drivers/uwb/drp-ie.c + create mode 100644 drivers/uwb/drp.c + create mode 100644 drivers/uwb/est.c + create mode 100644 drivers/uwb/hwa-rc.c + create mode 100644 drivers/uwb/i1480/Makefile + create mode 100644 drivers/uwb/i1480/dfu/Makefile + create mode 100644 drivers/uwb/i1480/dfu/dfu.c + create mode 100644 drivers/uwb/i1480/dfu/i1480-dfu.h + create mode 100644 drivers/uwb/i1480/dfu/mac.c + create mode 100644 drivers/uwb/i1480/dfu/phy.c + create mode 100644 drivers/uwb/i1480/dfu/usb.c + create mode 100644 drivers/uwb/i1480/i1480-est.c + create mode 100644 drivers/uwb/i1480/i1480-wlp.h + create mode 100644 drivers/uwb/i1480/i1480u-wlp/Makefile + create mode 100644 drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.h + create mode 100644 drivers/uwb/i1480/i1480u-wlp/lc.c + create mode 100644 drivers/uwb/i1480/i1480u-wlp/netdev.c + create mode 100644 drivers/uwb/i1480/i1480u-wlp/rx.c + create mode 100644 drivers/uwb/i1480/i1480u-wlp/sysfs.c + create mode 100644 drivers/uwb/i1480/i1480u-wlp/tx.c + create mode 100644 drivers/uwb/ie.c + create mode 100644 drivers/uwb/lc-dev.c + create mode 100644 drivers/uwb/lc-rc.c + create mode 100644 drivers/uwb/neh.c + create mode 100644 drivers/uwb/pal.c + create mode 100644 drivers/uwb/reset.c + create mode 100644 drivers/uwb/rsv.c + create mode 100644 drivers/uwb/scan.c + create mode 100644 drivers/uwb/umc-bus.c + create mode 100644 drivers/uwb/umc-dev.c + create mode 100644 drivers/uwb/umc-drv.c + create mode 100644 drivers/uwb/uwb-debug.c + create mode 100644 drivers/uwb/uwb-internal.h + create mode 100644 drivers/uwb/uwbd.c + create mode 100644 drivers/uwb/whc-rc.c + create mode 100644 drivers/uwb/whci.c + create mode 100644 drivers/uwb/wlp/Makefile + create mode 100644 drivers/uwb/wlp/driver.c + create mode 100644 drivers/uwb/wlp/eda.c + create mode 100644 drivers/uwb/wlp/messages.c + create mode 100644 drivers/uwb/wlp/sysfs.c + create mode 100644 drivers/uwb/wlp/txrx.c + create mode 100644 drivers/uwb/wlp/wlp-internal.h + create mode 100644 drivers/uwb/wlp/wlp-lc.c + create mode 100644 drivers/uwb/wlp/wss-lc.c + create mode 100644 include/linux/byteorder/bitfields.h + create mode 100644 include/linux/usb/wusb-wa.h + create mode 100644 include/linux/usb/wusb.h + create mode 100644 include/linux/uwb.h + create mode 100644 include/linux/uwb/debug-cmd.h + create mode 100644 include/linux/uwb/debug.h + create mode 100644 include/linux/uwb/spec.h + create mode 100644 include/linux/uwb/umc.h + create mode 100644 include/linux/uwb/whci.h + create mode 100644 include/linux/wlp.h +Merging x86/auto-x86-next +$ git merge x86/auto-x86-next +Auto-merged arch/x86/Kconfig +Auto-merged arch/x86/Kconfig.debug +Auto-merged arch/x86/kernel/acpi/boot.c +Removed arch/x86/kernel/i8259_64.c +Removed arch/x86/kernel/nmi_32.c +Auto-merged arch/x86/kernel/pci-dma.c +Auto-merged arch/x86/kernel/pci-gart_64.c +Auto-merged arch/x86/kernel/smpboot.c +Auto-merged arch/x86/kernel/traps_32.c +Auto-merged arch/x86/kernel/traps_64.c +Auto-merged arch/x86/mm/init_64.c +Auto-merged arch/x86/mm/ioremap.c +Auto-merged arch/x86/mm/pat.c +Removed arch/x86/xen/manage.c +Auto-merged drivers/base/power/trace.c +Removed include/asm-x86/current_32.h +Removed include/asm-x86/current_64.h +Removed include/asm-x86/hw_irq_32.h +Removed include/asm-x86/hw_irq_64.h +Removed include/asm-x86/irq_32.h +Removed include/asm-x86/irq_64.h +Removed include/asm-x86/mach-default/irq_vectors.h +Removed include/asm-x86/mach-default/irq_vectors_limits.h +Removed include/asm-x86/mach-visws/irq_vectors.h +Removed include/asm-x86/mach-voyager/irq_vectors.h +Removed include/asm-x86/thread_info_32.h +Removed include/asm-x86/thread_info_64.h +Auto-merged include/linux/pci.h +Merge made by recursive. + Documentation/filesystems/sysfs-pci.txt | 1 + + Documentation/kernel-parameters.txt | 23 + + Documentation/{ => x86}/i386/IO-APIC.txt | 0 + Documentation/{ => x86}/i386/boot.txt | 79 +- + .../{ => x86}/i386/usb-legacy-support.txt | 0 + Documentation/{ => x86}/i386/zero-page.txt | 0 + Documentation/{ => x86}/x86_64/00-INDEX | 0 + Documentation/{ => x86}/x86_64/boot-options.txt | 0 + Documentation/{ => x86}/x86_64/cpu-hotplug-spec | 0 + .../{ => x86}/x86_64/fake-numa-for-cpusets | 0 + Documentation/{ => x86}/x86_64/kernel-stacks | 0 + Documentation/{ => x86}/x86_64/machinecheck | 0 + Documentation/{ => x86}/x86_64/mm.txt | 5 +- + Documentation/{ => x86}/x86_64/uefi.txt | 0 + arch/x86/Kconfig | 116 +- + arch/x86/Kconfig.cpu | 4 + + arch/x86/Kconfig.debug | 4 +- + arch/x86/Makefile | 5 +- + arch/x86/boot/compressed/head_64.S | 5 +- + arch/x86/boot/compressed/misc.c | 39 +- + arch/x86/boot/cpu.c | 2 + + arch/x86/boot/main.c | 4 + + arch/x86/boot/memory.c | 3 +- + arch/x86/boot/video-vga.c | 3 +- + arch/x86/configs/i386_defconfig | 1711 ++++++++++++++------ + arch/x86/configs/x86_64_defconfig | 1735 ++++++++++++++------ + arch/x86/kernel/Makefile | 9 +- + arch/x86/kernel/acpi/boot.c | 334 ++++- + arch/x86/kernel/aperture_64.c | 309 +++-- + arch/x86/kernel/apic_32.c | 40 +- + arch/x86/kernel/apic_64.c | 28 +- + arch/x86/kernel/apm_32.c | 25 +- + arch/x86/kernel/cpu/Makefile | 4 + + arch/x86/kernel/cpu/addon_cpuid_features.c | 3 + + arch/x86/kernel/cpu/amd.c | 5 + + arch/x86/kernel/cpu/amd_64.c | 239 +++ + arch/x86/kernel/cpu/bugs.c | 27 +- + arch/x86/kernel/{ => cpu}/bugs_64.c | 0 + arch/x86/kernel/cpu/centaur_64.c | 31 + + arch/x86/kernel/cpu/intel_64.c | 92 + + arch/x86/kernel/cpu/intel_cacheinfo.c | 1 + + arch/x86/kernel/cpu/mcheck/mce_64.c | 20 +- + arch/x86/kernel/cpu/mtrr/generic.c | 38 +- + arch/x86/kernel/cpu/mtrr/main.c | 901 ++++++++++- + arch/x86/kernel/cpu/mtrr/mtrr.h | 3 + + arch/x86/kernel/cpu/perfctr-watchdog.c | 4 +- + arch/x86/kernel/e820.c | 896 ++++++++++ + arch/x86/kernel/e820_32.c | 536 +------ + arch/x86/kernel/e820_64.c | 787 +--------- + arch/x86/kernel/early-quirks.c | 13 - + arch/x86/kernel/efi.c | 59 +- + arch/x86/kernel/efi_64.c | 8 +- + arch/x86/kernel/entry_32.S | 2 +- + arch/x86/kernel/entry_64.S | 4 - + arch/x86/kernel/genx2apic_uv_x.c | 141 ++- + arch/x86/kernel/head.c | 73 + + arch/x86/kernel/head32.c | 27 + + arch/x86/kernel/head64.c | 90 +- + arch/x86/kernel/head_32.S | 8 +- + arch/x86/kernel/head_64.S | 27 +- + arch/x86/kernel/hpet.c | 43 +- + arch/x86/kernel/{i8259_32.c => i8259.c} | 136 +-- + arch/x86/kernel/i8259_64.c | 512 ------ + arch/x86/kernel/io_apic_32.c | 232 ++-- + arch/x86/kernel/io_apic_64.c | 181 ++- + arch/x86/kernel/ipi.c | 1 - + arch/x86/kernel/irq_32.c | 254 ++-- + arch/x86/kernel/irq_64.c | 28 + + arch/x86/kernel/irqinit_32.c | 114 ++ + arch/x86/kernel/irqinit_64.c | 217 +++ + arch/x86/kernel/ldt.c | 6 +- + arch/x86/kernel/mfgpt_32.c | 2 + + arch/x86/kernel/mmconf-fam10h_64.c | 1 + + arch/x86/kernel/mpparse.c | 725 +++++---- + arch/x86/kernel/{nmi_64.c => nmi.c} | 219 ++- + arch/x86/kernel/nmi_32.c | 472 ------ + arch/x86/kernel/numaq_32.c | 38 +- + arch/x86/kernel/paravirt.c | 1 + + arch/x86/kernel/pci-dma.c | 13 +- + arch/x86/kernel/pci-gart_64.c | 23 +- + arch/x86/kernel/quirks.c | 58 +- + arch/x86/kernel/reboot.c | 18 +- + arch/x86/kernel/reboot_fixups_32.c | 4 +- + arch/x86/kernel/setup.c | 332 ++++- + arch/x86/kernel/setup.h | 26 + + arch/x86/kernel/setup64.c | 8 +- + arch/x86/kernel/setup_32.c | 276 ++-- + arch/x86/kernel/setup_64.c | 420 +----- + arch/x86/kernel/smpboot.c | 106 +- + arch/x86/kernel/srat_32.c | 41 +- + arch/x86/kernel/time_32.c | 3 +- + arch/x86/kernel/trampoline.c | 2 +- + arch/x86/kernel/traps_32.c | 8 +- + arch/x86/kernel/traps_64.c | 31 +- + arch/x86/kernel/tsc_32.c | 6 +- + arch/x86/kernel/tsc_64.c | 2 +- + arch/x86/kernel/vmiclock_32.c | 3 +- + arch/x86/kernel/vmlinux_32.lds.S | 7 - + arch/x86/kernel/vmlinux_64.lds.S | 7 - + arch/x86/kernel/vsmp_64.c | 3 + + arch/x86/lguest/boot.c | 5 +- + arch/x86/mach-default/setup.c | 7 +- + arch/x86/mach-es7000/es7000plat.c | 2 + + arch/x86/mach-visws/mpparse.c | 7 +- + arch/x86/mach-visws/visws_apic.c | 3 +- + arch/x86/mach-voyager/setup.c | 7 +- + arch/x86/mach-voyager/voyager_smp.c | 14 - + arch/x86/mm/discontig_32.c | 149 +- + arch/x86/mm/dump_pagetables.c | 2 +- + arch/x86/mm/fault.c | 5 + + arch/x86/mm/init_32.c | 21 +- + arch/x86/mm/init_64.c | 13 +- + arch/x86/mm/ioremap.c | 10 +- + arch/x86/mm/k8topology_64.c | 13 +- + arch/x86/mm/numa_64.c | 89 +- + arch/x86/mm/pageattr.c | 39 + + arch/x86/mm/pat.c | 35 +- + arch/x86/mm/pgtable.c | 2 +- + arch/x86/mm/srat_64.c | 5 +- + arch/x86/pci/acpi.c | 18 +- + arch/x86/pci/direct.c | 21 +- + arch/x86/pci/k8-bus_64.c | 4 +- + arch/x86/pci/mmconfig-shared.c | 2 +- + arch/x86/vdso/vma.c | 2 +- + arch/x86/xen/Kconfig | 12 +- + arch/x86/xen/Makefile | 2 +- + arch/x86/xen/enlighten.c | 166 ++- + arch/x86/xen/manage.c | 143 -- + arch/x86/xen/mmu.c | 227 +++- + arch/x86/xen/mmu.h | 32 +- + arch/x86/xen/setup.c | 5 +- + arch/x86/xen/smp.c | 8 +- + arch/x86/xen/suspend.c | 45 + + arch/x86/xen/time.c | 13 + + arch/x86/xen/xen-head.S | 9 +- + arch/x86/xen/xen-ops.h | 11 + + drivers/acpi/pci_irq.c | 5 + + drivers/base/power/trace.c | 2 +- + drivers/base/topology.c | 25 +- + drivers/char/agp/amd64-agp.c | 85 +- + drivers/char/hvc_xen.c | 61 +- + drivers/firmware/dmi_scan.c | 5 + + drivers/input/xen-kbdfront.c | 20 +- + drivers/lguest/lg.h | 1 - + drivers/pci/pci-sysfs.c | 84 +- + drivers/video/xen-fbfront.c | 211 ++- + drivers/xen/Makefile | 2 +- + drivers/xen/balloon.c | 10 +- + drivers/xen/events.c | 114 ++- + drivers/xen/grant-table.c | 4 +- + drivers/xen/manage.c | 252 +++ + drivers/xen/xenbus/xenbus_comms.c | 23 +- + fs/proc/proc_misc.c | 16 + + include/asm-generic/vmlinux.lds.h | 14 + + include/asm-x86/acpi.h | 1 + + include/asm-x86/apic.h | 1 - + include/asm-x86/atomic_64.h | 6 - + include/asm-x86/bios_ebda.h | 2 + + include/asm-x86/bitops.h | 34 +- + include/asm-x86/bootparam.h | 4 + + include/asm-x86/cpufeature.h | 6 +- + include/asm-x86/current.h | 42 +- + include/asm-x86/current_32.h | 17 - + include/asm-x86/current_64.h | 27 - + include/asm-x86/desc.h | 22 + + include/asm-x86/e820.h | 80 +- + include/asm-x86/e820_32.h | 24 +- + include/asm-x86/e820_64.h | 27 - + include/asm-x86/efi.h | 2 +- + include/asm-x86/fixmap_32.h | 8 +- + include/asm-x86/gart.h | 62 + + include/asm-x86/genapic_64.h | 2 + + include/asm-x86/hardirq.h | 6 + + include/asm-x86/hw_irq.h | 105 ++- + include/asm-x86/hw_irq_32.h | 66 - + include/asm-x86/hw_irq_64.h | 173 -- + include/asm-x86/i8259.h | 2 + + include/asm-x86/io.h | 56 + + include/asm-x86/io_32.h | 49 - + include/asm-x86/io_64.h | 71 - + include/asm-x86/io_apic.h | 29 +- + include/asm-x86/ipi.h | 1 + + include/asm-x86/irq.h | 51 +- + include/asm-x86/irq_32.h | 51 - + include/asm-x86/irq_64.h | 51 - + include/asm-x86/irq_vectors.h | 169 ++ + include/asm-x86/mach-default/irq_vectors.h | 96 -- + include/asm-x86/mach-default/irq_vectors_limits.h | 16 - + include/asm-x86/mach-visws/irq_vectors.h | 62 - + include/asm-x86/mach-voyager/irq_vectors.h | 79 - + include/asm-x86/mmconfig.h | 18 + + include/asm-x86/mmzone_32.h | 8 +- + include/asm-x86/mpspec.h | 19 +- + include/asm-x86/nmi.h | 7 +- + include/asm-x86/numa_64.h | 19 +- + include/asm-x86/numaq.h | 1 + + include/asm-x86/page.h | 11 +- + include/asm-x86/page_32.h | 8 + + include/asm-x86/paravirt.h | 15 + + include/asm-x86/pci.h | 2 + + include/asm-x86/pda.h | 5 +- + include/asm-x86/percpu.h | 46 + + include/asm-x86/pgtable.h | 72 +- + include/asm-x86/processor-flags.h | 6 + + include/asm-x86/ptrace.h | 8 +- + include/asm-x86/reboot.h | 2 +- + include/asm-x86/required-features.h | 6 +- + include/asm-x86/resume-trace.h | 2 +- + include/asm-x86/seccomp_32.h | 1 + + include/asm-x86/setup.h | 11 +- + include/asm-x86/smp.h | 16 +- + include/asm-x86/string_32.h | 323 +++-- + include/asm-x86/system.h | 3 +- + include/asm-x86/thread_info.h | 248 +++- + include/asm-x86/thread_info_32.h | 205 --- + include/asm-x86/thread_info_64.h | 195 --- + include/asm-x86/topology.h | 152 +- + include/asm-x86/uv/uv_hub.h | 188 ++- + include/asm-x86/uv/uv_mmrs.h | 509 ++++++- + include/asm-x86/vm86.h | 11 +- + include/asm-x86/xen/hypercall.h | 11 +- + include/asm-x86/xen/page.h | 29 +- + include/linux/console.h | 2 + + include/linux/efi.h | 4 - + include/linux/kernel_stat.h | 2 +- + include/linux/mm.h | 1 + + include/linux/page-flags.h | 1 + + include/linux/pageblock-flags.h | 8 +- + include/linux/pci.h | 1 + + include/linux/resume-trace.h | 2 +- + include/xen/events.h | 4 + + include/xen/grant_table.h | 3 + + include/xen/hvc-console.h | 9 + + include/xen/interface/elfnote.h | 20 + + include/xen/interface/io/fbif.h | 29 +- + include/xen/interface/io/kbdif.h | 2 + + include/xen/interface/memory.h | 12 +- + include/xen/xen-ops.h | 6 + + kernel/printk.c | 3 + + mm/page_alloc.c | 5 + + 240 files changed, 11429 insertions(+), 7526 deletions(-) + rename Documentation/{ => x86}/i386/IO-APIC.txt (100%) + rename Documentation/{ => x86}/i386/boot.txt (96%) + rename Documentation/{ => x86}/i386/usb-legacy-support.txt (100%) + rename Documentation/{ => x86}/i386/zero-page.txt (100%) + rename Documentation/{ => x86}/x86_64/00-INDEX (100%) + rename Documentation/{ => x86}/x86_64/boot-options.txt (100%) + rename Documentation/{ => x86}/x86_64/cpu-hotplug-spec (100%) + rename Documentation/{ => x86}/x86_64/fake-numa-for-cpusets (100%) + rename Documentation/{ => x86}/x86_64/kernel-stacks (100%) + rename Documentation/{ => x86}/x86_64/machinecheck (100%) + rename Documentation/{ => x86}/x86_64/mm.txt (87%) + rename Documentation/{ => x86}/x86_64/uefi.txt (100%) + create mode 100644 arch/x86/kernel/cpu/amd_64.c + rename arch/x86/kernel/{ => cpu}/bugs_64.c (100%) + create mode 100644 arch/x86/kernel/cpu/centaur_64.c + create mode 100644 arch/x86/kernel/cpu/intel_64.c + create mode 100644 arch/x86/kernel/e820.c + create mode 100644 arch/x86/kernel/head.c + rename arch/x86/kernel/{i8259_32.c => i8259.c} (70%) + delete mode 100644 arch/x86/kernel/i8259_64.c + create mode 100644 arch/x86/kernel/irqinit_32.c + create mode 100644 arch/x86/kernel/irqinit_64.c + rename arch/x86/kernel/{nmi_64.c => nmi.c} (69%) + delete mode 100644 arch/x86/kernel/nmi_32.c + create mode 100644 arch/x86/kernel/setup.h + delete mode 100644 arch/x86/xen/manage.c + create mode 100644 arch/x86/xen/suspend.c + create mode 100644 drivers/xen/manage.c + delete mode 100644 include/asm-x86/current_32.h + delete mode 100644 include/asm-x86/current_64.h + delete mode 100644 include/asm-x86/hw_irq_32.h + delete mode 100644 include/asm-x86/hw_irq_64.h + delete mode 100644 include/asm-x86/irq_32.h + delete mode 100644 include/asm-x86/irq_64.h + create mode 100644 include/asm-x86/irq_vectors.h + delete mode 100644 include/asm-x86/mach-default/irq_vectors.h + delete mode 100644 include/asm-x86/mach-default/irq_vectors_limits.h + delete mode 100644 include/asm-x86/mach-visws/irq_vectors.h + delete mode 100644 include/asm-x86/mach-voyager/irq_vectors.h + create mode 100644 include/asm-x86/mmconfig.h + delete mode 100644 include/asm-x86/thread_info_32.h + delete mode 100644 include/asm-x86/thread_info_64.h +Merging sched/auto-sched-next +$ git merge sched/auto-sched-next +Auto-merged init/main.c +Merge made by recursive. + Documentation/RCU/NMI-RCU.txt | 3 + + Documentation/RCU/RTFP.txt | 108 ++++++ + Documentation/RCU/checklist.txt | 89 ++++-- + Documentation/RCU/whatisRCU.txt | 58 +++- + arch/ia64/sn/kernel/irq.c | 1 + + crypto/async_tx/async_tx.c | 1 + + drivers/infiniband/hw/ipath/ipath_verbs.c | 1 + + drivers/infiniband/hw/ipath/ipath_verbs_mcast.c | 3 +- + drivers/net/macvlan.c | 2 +- + include/linux/dcache.h | 1 + + include/linux/list.h | 367 -------------------- + include/linux/rcuclassic.h | 3 + + include/linux/rculist.h | 373 ++++++++++++++++++++ + include/linux/rcupdate.h | 26 ++- + include/linux/rcupreempt.h | 42 ++- + init/main.c | 1 + + kernel/pid.c | 1 + + kernel/rcuclassic.c | 30 ++- + kernel/rcupdate.c | 71 +++-- + kernel/rcupreempt.c | 419 ++++++++++++++++++++--- + kernel/rcupreempt_trace.c | 1 - + kernel/rcutorture.c | 34 ++- + lib/textsearch.c | 1 + + net/802/psnap.c | 1 + + net/8021q/vlan.c | 1 + + net/bridge/br_fdb.c | 1 + + net/bridge/br_stp.c | 1 + + net/netfilter/nf_conntrack_helper.c | 1 + + net/netfilter/nf_conntrack_netlink.c | 1 + + net/netlabel/netlabel_domainhash.c | 3 +- + 30 files changed, 1142 insertions(+), 503 deletions(-) + create mode 100644 include/linux/rculist.h +Merging ftrace/auto-ftrace-next +$ git merge ftrace/auto-ftrace-next +Auto-merged Makefile +Auto-merged arch/x86/Kconfig +Auto-merged arch/x86/Kconfig.debug +Auto-merged arch/x86/kernel/Makefile +Auto-merged arch/x86/kernel/entry_32.S +Auto-merged arch/x86/kernel/entry_64.S +Auto-merged arch/x86/kernel/process_32.c +Auto-merged arch/x86/kernel/process_64.c +Auto-merged arch/x86/mm/fault.c +Auto-merged arch/x86/mm/init_32.c +Auto-merged arch/x86/mm/init_64.c +Auto-merged arch/x86/mm/ioremap.c +Auto-merged arch/x86/mm/pageattr.c +Auto-merged kernel/printk.c +Auto-merged lib/Kconfig.debug +Merge made by recursive. + Documentation/tracers/mmiotrace.txt | 164 ++ + Makefile | 4 + + arch/arm/Kconfig | 2 + + arch/arm/boot/compressed/Makefile | 6 + + arch/arm/kernel/Makefile | 5 + + arch/arm/kernel/armksyms.c | 5 + + arch/arm/kernel/entry-common.S | 47 + + arch/arm/kernel/ftrace.c | 128 ++ + arch/arm/kernel/kprobes.c | 2 +- + arch/powerpc/Kconfig | 4 +- + arch/powerpc/kernel/Makefile | 14 + + arch/powerpc/kernel/entry_32.S | 123 ++ + arch/powerpc/kernel/entry_64.S | 62 + + arch/powerpc/kernel/ftrace.c | 171 ++ + arch/powerpc/kernel/io.c | 3 +- + arch/powerpc/kernel/irq.c | 6 +- + arch/powerpc/kernel/ppc_ksyms.c | 5 + + arch/powerpc/kernel/setup_32.c | 6 +- + arch/powerpc/platforms/powermac/Makefile | 5 + + arch/sparc64/Kconfig | 2 + + arch/sparc64/Kconfig.debug | 2 +- + arch/sparc64/kernel/Makefile | 1 + + arch/sparc64/kernel/ftrace.c | 99 + + arch/sparc64/lib/mcount.S | 58 +- + arch/x86/Kconfig | 2 + + arch/x86/Kconfig.debug | 28 + + arch/x86/kernel/Makefile | 8 + + arch/x86/kernel/alternative.c | 22 +- + arch/x86/kernel/entry_32.S | 68 + + arch/x86/kernel/entry_64.S | 102 + + arch/x86/kernel/ftrace.c | 159 ++ + arch/x86/kernel/i386_ksyms_32.c | 9 +- + arch/x86/kernel/machine_kexec_32.c | 4 + + arch/x86/kernel/machine_kexec_64.c | 4 + + arch/x86/kernel/process_32.c | 3 + + arch/x86/kernel/process_64.c | 3 + + arch/x86/kernel/vsyscall_64.c | 3 +- + arch/x86/kernel/x8664_ksyms_64.c | 11 +- + arch/x86/lib/Makefile | 1 + + arch/x86/lib/thunk_32.S | 47 + + arch/x86/lib/thunk_64.S | 19 +- + arch/x86/mm/Makefile | 5 + + arch/x86/mm/fault.c | 13 + + arch/x86/mm/init_32.c | 4 + + arch/x86/mm/init_64.c | 10 +- + arch/x86/mm/ioremap.c | 11 +- + arch/x86/mm/kmmio.c | 509 +++++ + arch/x86/mm/mmio-mod.c | 515 +++++ + arch/x86/mm/pageattr.c | 1 + + arch/x86/mm/pf_in.c | 489 +++++ + arch/x86/mm/pf_in.h | 39 + + arch/x86/mm/testmmiotrace.c | 71 + + arch/x86/vdso/vclock_gettime.c | 15 +- + arch/x86/vdso/vgetcpu.c | 3 +- + include/asm-arm/kprobes.h | 1 + + include/asm-powerpc/ftrace.h | 6 + + include/asm-powerpc/hw_irq.h | 10 + + include/asm-x86/alternative.h | 2 + + include/asm-x86/irqflags.h | 24 +- + include/asm-x86/vsyscall.h | 3 +- + include/linux/ftrace.h | 139 ++ + include/linux/irqflags.h | 13 +- + include/linux/linkage.h | 2 + + include/linux/marker.h | 40 +- + include/linux/mmiotrace.h | 85 + + include/linux/preempt.h | 34 +- + include/linux/sched.h | 16 + + include/linux/writeback.h | 2 + + kernel/Makefile | 14 + + kernel/fork.c | 2 +- + kernel/lockdep.c | 33 +- + kernel/marker.c | 30 +- + kernel/printk.c | 2 + + kernel/sched.c | 58 +- + kernel/sched_trace.h | 41 + + kernel/semaphore.c | 2 + + kernel/spinlock.c | 2 +- + kernel/sysctl.c | 11 + + kernel/trace/Kconfig | 135 ++ + kernel/trace/Makefile | 24 + + kernel/trace/ftrace.c | 1553 +++++++++++++++ + kernel/trace/trace.c | 3131 ++++++++++++++++++++++++++++++ + kernel/trace/trace.h | 333 ++++ + kernel/trace/trace_functions.c | 78 + + kernel/trace/trace_irqsoff.c | 486 +++++ + kernel/trace/trace_mmiotrace.c | 295 +++ + kernel/trace/trace_sched_switch.c | 286 +++ + kernel/trace/trace_sched_wakeup.c | 447 +++++ + kernel/trace/trace_selftest.c | 563 ++++++ + kernel/trace/trace_selftest_dynamic.c | 7 + + kernel/trace/trace_sysprof.c | 363 ++++ + lib/Kconfig.debug | 2 + + lib/Makefile | 9 + + lib/smp_processor_id.c | 6 +- + mm/page-writeback.c | 10 +- + scripts/Makefile.lib | 3 +- + 96 files changed, 11289 insertions(+), 116 deletions(-) + create mode 100644 Documentation/tracers/mmiotrace.txt + create mode 100644 arch/arm/kernel/ftrace.c + create mode 100644 arch/powerpc/kernel/ftrace.c + create mode 100644 arch/sparc64/kernel/ftrace.c + create mode 100644 arch/x86/kernel/ftrace.c + create mode 100644 arch/x86/lib/thunk_32.S + create mode 100644 arch/x86/mm/kmmio.c + create mode 100644 arch/x86/mm/mmio-mod.c + create mode 100644 arch/x86/mm/pf_in.c + create mode 100644 arch/x86/mm/pf_in.h + create mode 100644 arch/x86/mm/testmmiotrace.c + create mode 100644 include/asm-powerpc/ftrace.h + create mode 100644 include/linux/ftrace.h + create mode 100644 include/linux/mmiotrace.h + create mode 100644 kernel/sched_trace.h + create mode 100644 kernel/trace/Kconfig + create mode 100644 kernel/trace/Makefile + create mode 100644 kernel/trace/ftrace.c + create mode 100644 kernel/trace/trace.c + create mode 100644 kernel/trace/trace.h + create mode 100644 kernel/trace/trace_functions.c + create mode 100644 kernel/trace/trace_irqsoff.c + create mode 100644 kernel/trace/trace_mmiotrace.c + create mode 100644 kernel/trace/trace_sched_switch.c + create mode 100644 kernel/trace/trace_sched_wakeup.c + create mode 100644 kernel/trace/trace_selftest.c + create mode 100644 kernel/trace/trace_selftest_dynamic.c + create mode 100644 kernel/trace/trace_sysprof.c +Applying ftrace: fix rculist split fallout +Merging pci/linux-next +$ git merge pci/linux-next +Auto-merged Documentation/kernel-parameters.txt +Auto-merged arch/x86/kernel/apm_32.c +Auto-merged arch/x86/kernel/setup_64.c +Auto-merged arch/x86/pci/irq.c +Auto-merged arch/x86/pci/pci.h +Auto-merged drivers/base/platform.c +Auto-merged drivers/base/power/main.c +CONFLICT (content): Merge conflict in drivers/base/power/main.c +Auto-merged drivers/base/power/trace.c +Auto-merged drivers/pci/pci-acpi.c +Auto-merged drivers/pci/pcie/aer/aerdrv.c +Auto-merged drivers/pci/probe.c +Auto-merged include/asm-generic/vmlinux.lds.h +Auto-merged include/linux/device.h +CONFLICT (content): Merge conflict in include/linux/device.h +Auto-merged include/linux/pci.h +Resolved 'drivers/base/power/main.c' using previous resolution. +Resolved 'include/linux/device.h' using previous resolution. +Automatic merge failed; fix conflicts and then commit the result. +$ git commit -v -a +$ git diff -M --stat --summary HEAD^.. + Documentation/kernel-parameters.txt | 3 + + arch/x86/kernel/apm_32.c | 8 +- + arch/x86/kernel/setup_64.c | 5 + + arch/x86/pci/common.c | 26 ++ + arch/x86/pci/early.c | 60 +++- + arch/x86/pci/irq.c | 511 +++++++++++++++----------- + arch/x86/pci/pci.h | 1 + + drivers/base/platform.c | 296 +++++++++++++++- + drivers/base/power/main.c | 675 +++++++++++++++++++++++++++-------- + drivers/base/power/power.h | 2 +- + drivers/base/power/trace.c | 4 +- + drivers/pci/hotplug/acpi_pcihp.c | 85 +++++- + drivers/pci/hotplug/pciehp.h | 9 +- + drivers/pci/hotplug/pciehp_core.c | 13 +- + drivers/pci/hotplug/pciehp_hpc.c | 104 +----- + drivers/pci/hotplug/shpchp.h | 14 +- + drivers/pci/hotplug/shpchp_core.c | 17 +- + drivers/pci/hotplug/shpchp_hpc.c | 1 - + drivers/pci/intel-iommu.c | 1 - + drivers/pci/msi.c | 12 +- + drivers/pci/pci-acpi.c | 216 +++++------- + drivers/pci/pci-driver.c | 388 ++++++++++++++++++--- + drivers/pci/pci.c | 2 - + drivers/pci/pcie/aer/aerdrv.c | 1 + + drivers/pci/pcie/portdrv_bus.c | 1 + + drivers/pci/probe.c | 44 +++ + drivers/pci/proc.c | 4 +- + drivers/pci/quirks.c | 125 +++++-- + include/asm-generic/vmlinux.lds.h | 6 + + include/asm-x86/pci-direct.h | 4 + + include/linux/device.h | 8 + + include/linux/pci.h | 17 +- + include/linux/pci_hotplug.h | 2 +- + include/linux/platform_device.h | 1 + + include/linux/pm.h | 314 +++++++++++++++-- + kernel/power/disk.c | 22 +- + kernel/power/main.c | 6 +- + 37 files changed, 2236 insertions(+), 772 deletions(-) +Merging quilt/device-mapper +$ git merge quilt/device-mapper +Already up-to-date. +Merging hid/mm +$ git merge hid/mm +Auto-merged drivers/hid/hidraw.c +Merge made by recursive. + drivers/hid/hid-core.c | 10 ++++---- + drivers/hid/hidraw.c | 47 ++++++++++++++++++++------------------ + drivers/hid/usbhid/hid-quirks.c | 14 ++++++++++- + drivers/hid/usbhid/hiddev.c | 14 ++++++++--- + 4 files changed, 53 insertions(+), 32 deletions(-) +Merging quilt/i2c +$ git merge quilt/i2c +Removed Documentation/i2c/busses/i2c-i810 +Removed Documentation/i2c/busses/i2c-prosavage +Removed Documentation/i2c/busses/i2c-savage4 +Removed drivers/i2c/busses/i2c-i810.c +Removed drivers/i2c/busses/i2c-prosavage.c +Auto-merged drivers/i2c/busses/i2c-s3c2410.c +Removed drivers/i2c/busses/i2c-savage4.c +Auto-merged drivers/i2c/i2c-core.c +CONFLICT (content): Merge conflict in drivers/i2c/i2c-core.c +Auto-merged drivers/i2c/i2c-dev.c +Resolved 'drivers/i2c/i2c-core.c' using previous resolution. +Automatic merge failed; fix conflicts and then commit the result. +$ git commit -v -a +$ git diff -M --stat --summary HEAD^.. + Documentation/feature-removal-schedule.txt | 7 - + Documentation/i2c/busses/i2c-i810 | 47 -- + Documentation/i2c/busses/i2c-prosavage | 23 - + Documentation/i2c/busses/i2c-savage4 | 26 - + Documentation/i2c/fault-codes | 127 +++++ + Documentation/i2c/smbus-protocol | 4 +- + Documentation/i2c/writing-clients | 40 +- + MAINTAINERS | 7 + + drivers/i2c/algos/i2c-algo-bit.c | 4 +- + drivers/i2c/algos/i2c-algo-pca.c | 2 +- + drivers/i2c/busses/Kconfig | 524 ++++++++++---------- + drivers/i2c/busses/Makefile | 43 +- + drivers/i2c/busses/i2c-ali1535.c | 36 +- + drivers/i2c/busses/i2c-ali1563.c | 38 +- + drivers/i2c/busses/i2c-ali15x3.c | 30 +- + drivers/i2c/busses/i2c-amd756-s4882.c | 4 +- + drivers/i2c/busses/i2c-amd756.c | 32 +- + drivers/i2c/busses/i2c-amd8111.c | 54 ++- + drivers/i2c/busses/i2c-cpm.c | 745 ++++++++++++++++++++++++++++ + drivers/i2c/busses/i2c-davinci.c | 89 +++- + drivers/i2c/busses/i2c-elektor.c | 2 +- + drivers/i2c/busses/i2c-gpio.c | 2 +- + drivers/i2c/busses/i2c-i801.c | 52 ++- + drivers/i2c/busses/i2c-i810.c | 260 ---------- + drivers/i2c/busses/i2c-ibm_iic.c | 183 +------- + drivers/i2c/busses/i2c-iop3xx.c | 2 +- + drivers/i2c/busses/i2c-isch.c | 339 +++++++++++++ + drivers/i2c/busses/i2c-mpc.c | 2 +- + drivers/i2c/busses/i2c-mv64xxx.c | 2 +- + drivers/i2c/busses/i2c-nforce2-s4985.c | 257 ++++++++++ + drivers/i2c/busses/i2c-nforce2.c | 49 ++- + drivers/i2c/busses/i2c-ocores.c | 2 +- + drivers/i2c/busses/i2c-pasemi.c | 2 +- + drivers/i2c/busses/i2c-pca-platform.c | 2 +- + drivers/i2c/busses/i2c-piix4.c | 71 ++-- + drivers/i2c/busses/i2c-pmcmsp.c | 2 +- + drivers/i2c/busses/i2c-prosavage.c | 325 ------------ + drivers/i2c/busses/i2c-s3c2410.c | 2 +- + drivers/i2c/busses/i2c-savage4.c | 185 ------- + drivers/i2c/busses/i2c-sibyte.c | 4 +- + drivers/i2c/busses/i2c-sis5595.c | 27 +- + drivers/i2c/busses/i2c-sis630.c | 56 ++- + drivers/i2c/busses/i2c-sis96x.c | 34 +- + drivers/i2c/busses/i2c-stub.c | 6 +- + drivers/i2c/busses/i2c-taos-evm.c | 5 +- + drivers/i2c/busses/i2c-via.c | 2 +- + drivers/i2c/busses/i2c-viapro.c | 29 +- + drivers/i2c/busses/scx200_acb.c | 2 +- + drivers/i2c/chips/eeprom.c | 47 +- + drivers/i2c/i2c-core.c | 313 ++++++++---- + drivers/i2c/i2c-dev.c | 5 +- + drivers/video/fb_ddc.c | 1 + + drivers/video/intelfb/intelfb_i2c.c | 12 +- + drivers/video/matrox/i2c-matroxfb.c | 20 +- + include/linux/i2c-id.h | 1 - + include/linux/i2c.h | 8 +- + 56 files changed, 2444 insertions(+), 1751 deletions(-) + delete mode 100644 Documentation/i2c/busses/i2c-i810 + delete mode 100644 Documentation/i2c/busses/i2c-prosavage + delete mode 100644 Documentation/i2c/busses/i2c-savage4 + create mode 100644 Documentation/i2c/fault-codes + create mode 100644 drivers/i2c/busses/i2c-cpm.c + delete mode 100644 drivers/i2c/busses/i2c-i810.c + create mode 100644 drivers/i2c/busses/i2c-isch.c + create mode 100644 drivers/i2c/busses/i2c-nforce2-s4985.c + delete mode 100644 drivers/i2c/busses/i2c-prosavage.c + delete mode 100644 drivers/i2c/busses/i2c-savage4.c +Merging quilt/kernel-doc +$ git merge quilt/kernel-doc +Merge made by recursive. + Documentation/00-INDEX | 2 -- + Documentation/early-userspace/00-INDEX | 8 ++++++++ + Documentation/{ => early-userspace}/initrd.txt | 6 +++--- + 3 files changed, 11 insertions(+), 5 deletions(-) + create mode 100644 Documentation/early-userspace/00-INDEX + rename Documentation/{ => early-userspace}/initrd.txt (99%) +Merging avr32/avr32-arch +$ git merge avr32/avr32-arch +Auto-merged arch/avr32/kernel/avr32_ksyms.c +Merge made by recursive. +Merging v4l-dvb/stable +$ git merge v4l-dvb/stable +Auto-merged drivers/media/common/tuners/tuner-xc2028.c +Auto-merged drivers/media/dvb/dvb-usb/Kconfig +Auto-merged drivers/media/dvb/dvb-usb/gp8psk.c +Auto-merged drivers/media/dvb/ttusb-dec/ttusb_dec.c +Auto-merged drivers/media/video/bt8xx/bttv-cards.c +Auto-merged drivers/media/video/cx18/cx18-driver.c +Auto-merged drivers/media/video/em28xx/em28xx-video.c +Auto-merged drivers/media/video/pvrusb2/pvrusb2-hdw.c +Auto-merged drivers/media/video/pvrusb2/pvrusb2-sysfs.c +Auto-merged drivers/media/video/saa7134/saa7134-empress.c +Auto-merged drivers/media/video/soc_camera.c +Auto-merged drivers/media/video/usbvision/usbvision-video.c +Auto-merged drivers/media/video/videodev.c +Auto-merged include/linux/videodev2.h +Auto-merged include/media/v4l2-dev.h +Merge made by recursive. + Documentation/video4linux/CARDLIST.cx23885 | 1 + + Documentation/video4linux/CARDLIST.em28xx | 1 + + drivers/media/common/tuners/tda18271-maps.c | 2 +- + drivers/media/dvb/dvb-usb/Kconfig | 9 + + drivers/media/dvb/dvb-usb/Makefile | 3 + + drivers/media/dvb/dvb-usb/anysee.c | 555 ++++++++ + drivers/media/dvb/dvb-usb/anysee.h | 304 ++++ + drivers/media/dvb/dvb-usb/au6610.c | 83 +- + drivers/media/dvb/dvb-usb/au6610.h | 22 +- + drivers/media/dvb/dvb-usb/dvb-usb-ids.h | 2 + + drivers/media/dvb/frontends/Kconfig | 14 + + drivers/media/dvb/frontends/Makefile | 1 + + drivers/media/dvb/frontends/au8522.c | 1 - + drivers/media/dvb/frontends/drx397xD.c | 1504 ++++++++++++++++++++ + drivers/media/dvb/frontends/drx397xD.h | 130 ++ + drivers/media/dvb/frontends/drx397xD_fw.h | 40 + + drivers/media/dvb/frontends/dvb-pll.c | 47 + + drivers/media/dvb/frontends/dvb-pll.h | 1 + + drivers/media/dvb/frontends/s5h1409.c | 1 - + drivers/media/dvb/frontends/s5h1411.c | 1 - + drivers/media/dvb/frontends/tda10023.c | 193 ++-- + drivers/media/dvb/frontends/tda1002x.h | 31 +- + drivers/media/dvb/ttpci/budget-av.c | 12 +- + drivers/media/radio/radio-si470x.c | 483 +++++-- + drivers/media/video/bt8xx/bttv-driver.c | 44 +- + drivers/media/video/bt8xx/bttv-vbi.c | 6 +- + drivers/media/video/bt8xx/bttvp.h | 6 +- + drivers/media/video/cafe_ccic.c | 18 +- + drivers/media/video/compat_ioctl32.c | 1 + + drivers/media/video/cx18/cx18-driver.c | 2 +- + drivers/media/video/cx23885/cx23885-cards.c | 13 + + drivers/media/video/cx23885/cx23885-dvb.c | 27 + + drivers/media/video/cx23885/cx23885-video.c | 24 +- + drivers/media/video/cx23885/cx23885.h | 1 + + drivers/media/video/cx88/cx88-blackbird.c | 16 +- + drivers/media/video/cx88/cx88-video.c | 24 +- + drivers/media/video/em28xx/em28xx-cards.c | 27 + + drivers/media/video/em28xx/em28xx-dvb.c | 2 + + drivers/media/video/em28xx/em28xx-video.c | 30 +- + drivers/media/video/em28xx/em28xx.h | 1 + + drivers/media/video/ivtv/ivtv-cards.c | 41 +- + drivers/media/video/ivtv/ivtv-cards.h | 3 +- + drivers/media/video/ivtv/ivtv-driver.c | 3 +- + drivers/media/video/ivtv/ivtv-gpio.c | 11 +- + drivers/media/video/ivtv/ivtvfb.c | 82 ++ + drivers/media/video/meye.c | 18 +- + drivers/media/video/pvrusb2/pvrusb2-audio.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-audio.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-context.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-context.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-ctrl.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-ctrl.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-debug.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-debugifc.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-debugifc.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-devattr.c | 11 +- + drivers/media/video/pvrusb2/pvrusb2-devattr.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-eeprom.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-eeprom.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-encoder.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-encoder.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-fx2-cmd.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-hdw.c | 46 +- + drivers/media/video/pvrusb2/pvrusb2-hdw.h | 1 - + .../media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-i2c-core.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-i2c-core.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-io.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-io.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-ioread.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-ioread.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-main.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-std.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-std.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-sysfs.c | 461 ++----- + drivers/media/video/pvrusb2/pvrusb2-sysfs.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-tuner.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-tuner.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-util.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-v4l2.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-v4l2.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-video-v4l.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-video-v4l.h | 1 - + drivers/media/video/pvrusb2/pvrusb2-wm8775.c | 1 - + drivers/media/video/pvrusb2/pvrusb2-wm8775.h | 1 - + drivers/media/video/pvrusb2/pvrusb2.h | 1 - + drivers/media/video/saa7134/saa7134-empress.c | 12 +- + drivers/media/video/saa7134/saa7134-reg.h | 1 + + drivers/media/video/saa7134/saa7134-tvaudio.c | 24 +- + drivers/media/video/saa7134/saa7134-video.c | 46 +- + drivers/media/video/soc_camera.c | 18 +- + drivers/media/video/stk-webcam.c | 18 +- + drivers/media/video/tcm825x.c | 6 + + drivers/media/video/tcm825x.h | 1 + + drivers/media/video/usbvision/usbvision-video.c | 18 +- + drivers/media/video/videodev.c | 293 +++-- + drivers/media/video/vivi.c | 18 +- + drivers/media/video/zr364xx.c | 16 +- + include/linux/videodev2.h | 10 + + include/media/v4l2-dev.h | 73 +- + 105 files changed, 3929 insertions(+), 1026 deletions(-) + create mode 100644 drivers/media/dvb/dvb-usb/anysee.c + create mode 100644 drivers/media/dvb/dvb-usb/anysee.h + create mode 100644 drivers/media/dvb/frontends/drx397xD.c + create mode 100644 drivers/media/dvb/frontends/drx397xD.h + create mode 100644 drivers/media/dvb/frontends/drx397xD_fw.h +Merging s390/features +$ git merge s390/features +Removed arch/s390/kernel/binfmt_elf32.c +Auto-merged drivers/s390/block/dasd.c +CONFLICT (content): Merge conflict in drivers/s390/block/dasd.c +Auto-merged drivers/s390/block/dasd_3990_erp.c +Auto-merged drivers/s390/block/dasd_eckd.c +CONFLICT (content): Merge conflict in drivers/s390/block/dasd_eckd.c +Auto-merged drivers/s390/block/dasd_fba.c +CONFLICT (content): Merge conflict in drivers/s390/block/dasd_fba.c +Auto-merged drivers/s390/char/raw3270.c +Auto-merged drivers/s390/char/tape_3590.c +Auto-merged drivers/s390/char/tape_core.c +CONFLICT (content): Merge conflict in drivers/s390/char/tape_core.c +Auto-merged drivers/s390/char/vmur.c +Auto-merged drivers/s390/cio/chp.c +Auto-merged drivers/s390/cio/cio.c +Auto-merged drivers/s390/cio/cio.h +Auto-merged drivers/s390/cio/css.c +Auto-merged drivers/s390/cio/device.c +Auto-merged drivers/s390/cio/device_fsm.c +CONFLICT (content): Merge conflict in drivers/s390/cio/device_fsm.c +Auto-merged drivers/s390/cio/device_ops.c +Auto-merged drivers/s390/cio/qdio.c +Auto-merged drivers/s390/net/claw.c +CONFLICT (content): Merge conflict in drivers/s390/net/claw.c +Auto-merged drivers/s390/net/ctcm_main.c +CONFLICT (content): Merge conflict in drivers/s390/net/ctcm_main.c +Auto-merged drivers/s390/net/lcs.c +CONFLICT (content): Merge conflict in drivers/s390/net/lcs.c +Auto-merged drivers/s390/net/qeth_core_main.c +Auto-merged scripts/mod/file2alias.c +Resolved 'drivers/s390/block/dasd.c' using previous resolution. +Resolved 'drivers/s390/block/dasd_eckd.c' using previous resolution. +Resolved 'drivers/s390/block/dasd_fba.c' using previous resolution. +Resolved 'drivers/s390/char/tape_core.c' using previous resolution. +Resolved 'drivers/s390/cio/device_fsm.c' using previous resolution. +Resolved 'drivers/s390/net/claw.c' using previous resolution. +Resolved 'drivers/s390/net/ctcm_main.c' using previous resolution. +Resolved 'drivers/s390/net/lcs.c' using previous resolution. +Automatic merge failed; fix conflicts and then commit the result. +$ git commit -v -a +$ git diff -M --stat --summary HEAD^.. + Documentation/ABI/testing/sysfs-bus-css | 35 ++ + arch/s390/Kconfig | 2 + + arch/s390/kernel/Makefile | 7 +- + arch/s390/kernel/binfmt_elf32.c | 214 -------- + arch/s390/kernel/compat_ptrace.h | 4 +- + arch/s390/kernel/early.c | 18 + + arch/s390/kernel/ptrace.c | 363 ++++++++++++-- + arch/s390/kernel/time.c | 634 ++++++++++++++++++------ + arch/s390/mm/vmem.c | 2 +- + drivers/s390/block/dasd.c | 18 +- + drivers/s390/block/dasd_3990_erp.c | 15 +- + drivers/s390/block/dasd_eckd.c | 12 +- + drivers/s390/block/dasd_fba.c | 12 +- + drivers/s390/char/con3215.c | 6 +- + drivers/s390/char/con3270.c | 6 +- + drivers/s390/char/fs3270.c | 6 +- + drivers/s390/char/raw3270.c | 16 +- + drivers/s390/char/tape_34xx.c | 12 +- + drivers/s390/char/tape_3590.c | 21 +- + drivers/s390/char/tape_core.c | 15 +- + drivers/s390/char/tty3270.c | 6 +- + drivers/s390/char/vmur.c | 5 +- + drivers/s390/cio/Makefile | 3 +- + drivers/s390/cio/blacklist.c | 6 +- + drivers/s390/cio/chp.c | 70 +++- + drivers/s390/cio/chp.h | 15 +- + drivers/s390/cio/chsc.c | 292 ++++-------- + drivers/s390/cio/chsc.h | 6 +- + drivers/s390/cio/cio.c | 262 ++++++---- + drivers/s390/cio/cio.h | 10 +- + drivers/s390/cio/cmf.c | 8 +- + drivers/s390/cio/css.c | 249 ++++----- + drivers/s390/cio/css.h | 43 +- + drivers/s390/cio/device.c | 450 +++++++++++++---- + drivers/s390/cio/device.h | 7 +- + drivers/s390/cio/device_fsm.c | 210 +++----- + drivers/s390/cio/device_id.c | 16 +- + drivers/s390/cio/device_ops.c | 134 +++++- + drivers/s390/cio/device_pgid.c | 26 +- + drivers/s390/cio/device_status.c | 133 +++--- + drivers/s390/cio/fcx.c | 350 +++++++++++++ + drivers/s390/cio/io_sch.h | 46 ++- + drivers/s390/cio/itcw.c | 327 ++++++++++++ + drivers/s390/cio/qdio.c | 4 +- + drivers/s390/cio/scsw.c | 844 +++++++++++++++++++++++++++++++ + drivers/s390/net/claw.c | 77 ++-- + drivers/s390/net/ctcm_fsms.c | 12 +- + drivers/s390/net/ctcm_main.c | 28 +- + drivers/s390/net/lcs.c | 37 +- + drivers/s390/net/qeth_core_main.c | 12 +- + drivers/s390/s390mach.c | 106 ++-- + drivers/s390/s390mach.h | 10 + + include/asm-s390/ccwdev.h | 12 + + include/asm-s390/cio.h | 114 ++++- + include/asm-s390/elf.h | 51 +-- + include/asm-s390/etr.h | 45 ++- + include/asm-s390/fcx.h | 311 ++++++++++++ + include/asm-s390/itcw.h | 30 ++ + include/asm-s390/processor.h | 14 +- + include/asm-s390/ptrace.h | 15 + + include/linux/mod_devicetable.h | 9 + + scripts/mod/file2alias.c | 12 + + 62 files changed, 4321 insertions(+), 1514 deletions(-) + create mode 100644 Documentation/ABI/testing/sysfs-bus-css + delete mode 100644 arch/s390/kernel/binfmt_elf32.c + create mode 100644 drivers/s390/cio/fcx.c + create mode 100644 drivers/s390/cio/itcw.c + create mode 100644 drivers/s390/cio/scsw.c + create mode 100644 include/asm-s390/fcx.h + create mode 100644 include/asm-s390/itcw.h +Merging sh/master +$ git merge sh/master +Merge made by recursive. + arch/sh/Kconfig | 4 + + arch/sh/Makefile | 3 + + arch/sh/boards/renesas/rsk7203/Makefile | 1 + + arch/sh/boards/renesas/rsk7203/setup.c | 126 ++++++++++++ + arch/sh/kernel/Makefile_32 | 2 +- + arch/sh/kernel/ptrace_32.c | 23 ++ + arch/sh/kernel/signal_32.c | 25 ++- + arch/sh/mm/Kconfig | 12 +- + arch/sh/tools/mach-types | 1 + + fs/Kconfig.binfmt | 2 +- + fs/binfmt_elf_fdpic.c | 45 +++-- + include/asm-sh/elf.h | 53 +++++- + include/asm-sh/mmu.h | 4 + + include/asm-sh/page.h | 2 + + include/asm-sh/pgtable_32.h | 4 +- + include/asm-sh/processor.h | 1 + + include/asm-sh/processor_32.h | 4 - + include/asm-sh/processor_64.h | 4 - + include/asm-sh/ptrace.h | 5 + + include/asm-sh/segment.h | 30 +++- + include/asm-sh/thread_info.h | 2 + + include/asm-sh/uaccess.h | 222 ++++++++++++++++++++ + include/asm-sh/uaccess_32.h | 341 +++++-------------------------- + include/asm-sh/uaccess_64.h | 206 ------------------- + 24 files changed, 587 insertions(+), 535 deletions(-) + create mode 100644 arch/sh/boards/renesas/rsk7203/Makefile + create mode 100644 arch/sh/boards/renesas/rsk7203/setup.c +Merging jfs/next +$ git merge jfs/next +Merge made by recursive. + fs/jfs/jfs_debug.c | 62 ++++++++++++++++++++------------------------ + fs/jfs/jfs_debug.h | 10 +++--- + fs/jfs/jfs_imap.c | 2 +- + fs/jfs/jfs_logmgr.c | 35 +++++++++++------------- + fs/jfs/jfs_metapage.c | 36 ++++++++++++------------- + fs/jfs/jfs_txnmgr.c | 68 ++++++++++++++++++++++-------------------------- + fs/jfs/jfs_xtree.c | 36 ++++++++++++------------- + fs/jfs/namei.c | 2 +- + fs/jfs/super.c | 7 ++--- + 9 files changed, 119 insertions(+), 139 deletions(-) +Merging kbuild/master +$ git merge kbuild/master +Already up-to-date. +Merging quilt/ide +$ git merge quilt/ide +Auto-merged Documentation/kernel-parameters.txt +Auto-merged MAINTAINERS +Auto-merged block/blk-core.c +Auto-merged drivers/ide/ide-acpi.c +Auto-merged drivers/ide/ide-probe.c +Auto-merged drivers/ide/ide-tape.c +Auto-merged drivers/ide/legacy/macide.c +Merge made by recursive. + Documentation/kernel-parameters.txt | 3 - + MAINTAINERS | 7 - + block/blk-core.c | 12 +- + block/blk-exec.c | 6 +- + drivers/block/paride/pd.c | 20 +- + drivers/ide/Kconfig | 22 + + drivers/ide/Makefile | 5 +- + drivers/ide/arm/bast-ide.c | 2 +- + drivers/ide/arm/ide_arm.c | 1 + + drivers/ide/arm/palm_bk3710.c | 4 - + drivers/ide/h8300/ide-h8300.c | 7 +- + drivers/ide/ide-acpi.c | 6 +- + drivers/ide/ide-atapi.c | 296 ++++++++++++++ + drivers/ide/ide-cd.c | 122 +++--- + drivers/ide/ide-cd.h | 4 +- + drivers/ide/ide-cd_ioctl.c | 113 +++--- + drivers/ide/ide-disk.c | 13 +- + drivers/ide/ide-dma.c | 4 +- + drivers/ide/ide-floppy.c | 357 ++++-------------- + drivers/ide/ide-generic.c | 1 + + drivers/ide/ide-io.c | 114 +----- + drivers/ide/ide-iops.c | 36 +- + drivers/ide/ide-lib.c | 151 ------- + drivers/ide/ide-pio-blacklist.c | 94 +++++ + drivers/ide/ide-pnp.c | 2 +- + drivers/ide/ide-probe.c | 28 +- + drivers/ide/ide-proc.c | 1 - + drivers/ide/ide-tape.c | 561 ++++++++------------------- + drivers/ide/ide-taskfile.c | 38 ++- + drivers/ide/{ide-timing.h => ide-timings.c} | 205 +++++------ + drivers/ide/ide.c | 380 ++----------------- + drivers/ide/legacy/ali14xx.c | 5 +- + drivers/ide/legacy/buddha.c | 3 +- + drivers/ide/legacy/falconide.c | 3 +- + drivers/ide/legacy/gayle.c | 6 +- + drivers/ide/legacy/ht6560b.c | 9 +- + drivers/ide/legacy/ide-4drives.c | 27 +- + drivers/ide/legacy/ide-cs.c | 9 +- + drivers/ide/legacy/macide.c | 3 +- + drivers/ide/legacy/q40ide.c | 3 +- + drivers/ide/legacy/qd65xx.c | 7 +- + drivers/ide/mips/au1xxx-ide.c | 13 +- + drivers/ide/pci/aec62xx.c | 2 +- + drivers/ide/pci/alim15x3.c | 8 +- + drivers/ide/pci/amd74xx.c | 18 +- + drivers/ide/pci/cmd640.c | 18 +- + drivers/ide/pci/cmd64x.c | 10 +- + drivers/ide/pci/cs5535.c | 6 +- + drivers/ide/pci/cy82c693.c | 11 +- + drivers/ide/pci/delkin_cb.c | 29 +- + drivers/ide/pci/hpt366.c | 3 +- + drivers/ide/pci/ns87415.c | 4 +- + drivers/ide/pci/opti621.c | 12 +- + drivers/ide/pci/scc_pata.c | 12 +- + drivers/ide/pci/sgiioc4.c | 9 +- + drivers/ide/pci/siimage.c | 25 +- + drivers/ide/pci/sis5513.c | 8 +- + drivers/ide/pci/sl82c105.c | 3 +- + drivers/ide/pci/via82cxxx.c | 18 +- + drivers/ide/ppc/mpc8xx.c | 37 +- + drivers/ide/ppc/pmac.c | 27 +- + drivers/ide/setup-pci.c | 6 +- + drivers/scsi/ide-scsi.c | 302 ++++----------- + include/linux/blkdev.h | 1 - + include/linux/ide.h | 114 +++--- + 65 files changed, 1301 insertions(+), 2085 deletions(-) + create mode 100644 drivers/ide/ide-atapi.c + create mode 100644 drivers/ide/ide-pio-blacklist.c + rename drivers/ide/{ide-timing.h => ide-timings.c} (56%) +Merging libata/NEXT +$ git merge libata/NEXT +Already up-to-date. +Merging nfs/linux-next +$ git merge nfs/linux-next +Already up-to-date. +Merging xfs/master +$ git merge xfs/master +Auto-merged fs/xfs/linux-2.6/xfs_buf.c +Auto-merged fs/xfs/linux-2.6/xfs_buf.h +Auto-merged fs/xfs/xfs_inode.c +Auto-merged fs/xfs/xfs_vnodeops.c +Auto-merged fs/xfs/xfs_vnodeops.h +Auto-merged include/linux/dcache.h +Merge made by recursive. + fs/dcache.c | 102 +++++++ + fs/xfs/linux-2.6/kmem.c | 6 +- + fs/xfs/linux-2.6/kmem.h | 4 +- + fs/xfs/linux-2.6/xfs_aops.c | 5 +- + fs/xfs/linux-2.6/xfs_buf.c | 14 +- + fs/xfs/linux-2.6/xfs_buf.h | 2 +- + fs/xfs/linux-2.6/xfs_export.c | 2 +- + fs/xfs/linux-2.6/xfs_iops.c | 74 +++++- + fs/xfs/linux-2.6/xfs_iops.h | 1 + + fs/xfs/linux-2.6/xfs_linux.h | 1 + + fs/xfs/linux-2.6/xfs_super.c | 566 ++++++++++++++++++++++++++++++++++++++-- + fs/xfs/linux-2.6/xfs_super.h | 3 - + fs/xfs/quota/xfs_dquot.c | 3 +- + fs/xfs/quota/xfs_dquot.h | 2 +- + fs/xfs/quota/xfs_dquot_item.c | 4 +- + fs/xfs/quota/xfs_qm.c | 14 +- + fs/xfs/quota/xfs_qm_syscalls.c | 8 +- + fs/xfs/support/ktrace.c | 4 +- + fs/xfs/xfs_attr.c | 158 +++--------- + fs/xfs/xfs_attr.h | 2 - + fs/xfs/xfs_attr_leaf.c | 38 ++-- + fs/xfs/xfs_attr_sf.h | 10 +- + fs/xfs/xfs_bmap.c | 2 +- + fs/xfs/xfs_buf_item.c | 8 +- + fs/xfs/xfs_clnt.h | 1 + + fs/xfs/xfs_da_btree.c | 46 +++- + fs/xfs/xfs_da_btree.h | 36 +++- + fs/xfs/xfs_dfrag.c | 4 +- + fs/xfs/xfs_dir2.c | 125 ++++++++-- + fs/xfs/xfs_dir2.h | 6 +- + fs/xfs/xfs_dir2_block.c | 56 +++-- + fs/xfs/xfs_dir2_data.c | 5 +- + fs/xfs/xfs_dir2_leaf.c | 80 ++++-- + fs/xfs/xfs_dir2_node.c | 387 ++++++++++++++++------------ + fs/xfs/xfs_dir2_sf.c | 83 ++++--- + fs/xfs/xfs_dir2_trace.c | 20 +- + fs/xfs/xfs_error.c | 5 +- + fs/xfs/xfs_extfree_item.c | 6 +- + fs/xfs/xfs_fs.h | 1 + + fs/xfs/xfs_fsops.c | 4 +- + fs/xfs/xfs_inode.c | 95 ++------ + fs/xfs/xfs_inode.h | 3 - + fs/xfs/xfs_inode_item.c | 7 +- + fs/xfs/xfs_itable.c | 6 +- + fs/xfs/xfs_log.c | 49 ++-- + fs/xfs/xfs_log_priv.h | 6 +- + fs/xfs/xfs_log_recover.c | 21 +- + fs/xfs/xfs_mount.c | 92 ++----- + fs/xfs/xfs_mount.h | 15 +- + fs/xfs/xfs_mru_cache.c | 8 +- + fs/xfs/xfs_rtalloc.c | 2 +- + fs/xfs/xfs_sb.h | 17 ++- + fs/xfs/xfs_trans.c | 4 +- + fs/xfs/xfs_trans_inode.c | 2 +- + fs/xfs/xfs_trans_item.c | 8 +- + fs/xfs/xfs_vfsops.c | 479 +--------------------------------- + fs/xfs/xfs_vfsops.h | 5 - + fs/xfs/xfs_vnodeops.c | 34 ++- + fs/xfs/xfs_vnodeops.h | 2 +- + include/linux/dcache.h | 1 + + 60 files changed, 1511 insertions(+), 1243 deletions(-) +Merging infiniband/for-next +$ git merge infiniband/for-next +Auto-merged drivers/infiniband/core/cm.c +Auto-merged drivers/infiniband/core/sysfs.c +Auto-merged drivers/infiniband/core/ucm.c +Auto-merged drivers/infiniband/ulp/srp/ib_srp.c +Merge made by recursive. + drivers/infiniband/core/addr.c | 41 ++++++++++-------- + drivers/infiniband/core/agent.h | 2 - + drivers/infiniband/core/cache.c | 2 - + drivers/infiniband/core/cm.c | 2 - + drivers/infiniband/core/cma.c | 42 ++++++++++--------- + drivers/infiniband/core/core_priv.h | 2 - + drivers/infiniband/core/device.c | 2 - + drivers/infiniband/core/fmr_pool.c | 2 - + drivers/infiniband/core/mad_priv.h | 2 - + drivers/infiniband/core/mad_rmpp.c | 2 - + drivers/infiniband/core/mad_rmpp.h | 2 - + drivers/infiniband/core/packer.c | 2 - + drivers/infiniband/core/sa_query.c | 24 +++++++---- + drivers/infiniband/core/sysfs.c | 2 - + drivers/infiniband/core/ucm.c | 2 - + drivers/infiniband/core/ud_header.c | 2 - + drivers/infiniband/core/umem.c | 2 - + drivers/infiniband/core/user_mad.c | 2 - + drivers/infiniband/core/uverbs.h | 2 - + drivers/infiniband/core/uverbs_cmd.c | 2 - + drivers/infiniband/core/uverbs_main.c | 2 - + drivers/infiniband/core/verbs.c | 2 - + drivers/infiniband/hw/ipath/ipath_iba7220.c | 4 +- + drivers/infiniband/hw/mlx4/qp.c | 8 +++- + drivers/infiniband/hw/mthca/mthca_allocator.c | 2 - + drivers/infiniband/hw/mthca/mthca_av.c | 2 - + drivers/infiniband/hw/mthca/mthca_catas.c | 2 - + drivers/infiniband/hw/mthca/mthca_cmd.c | 2 - + drivers/infiniband/hw/mthca/mthca_cmd.h | 2 - + drivers/infiniband/hw/mthca/mthca_config_reg.h | 2 - + drivers/infiniband/hw/mthca/mthca_cq.c | 2 - + drivers/infiniband/hw/mthca/mthca_dev.h | 2 - + drivers/infiniband/hw/mthca/mthca_doorbell.h | 2 - + drivers/infiniband/hw/mthca/mthca_eq.c | 2 - + drivers/infiniband/hw/mthca/mthca_mad.c | 2 - + drivers/infiniband/hw/mthca/mthca_main.c | 2 - + drivers/infiniband/hw/mthca/mthca_mcg.c | 2 - + drivers/infiniband/hw/mthca/mthca_memfree.c | 2 - + drivers/infiniband/hw/mthca/mthca_memfree.h | 2 - + drivers/infiniband/hw/mthca/mthca_mr.c | 2 - + drivers/infiniband/hw/mthca/mthca_pd.c | 2 - + drivers/infiniband/hw/mthca/mthca_profile.c | 2 - + drivers/infiniband/hw/mthca/mthca_profile.h | 2 - + drivers/infiniband/hw/mthca/mthca_provider.c | 2 - + drivers/infiniband/hw/mthca/mthca_provider.h | 2 - + drivers/infiniband/hw/mthca/mthca_qp.c | 2 - + drivers/infiniband/hw/mthca/mthca_reset.c | 2 - + drivers/infiniband/hw/mthca/mthca_srq.c | 2 - + drivers/infiniband/hw/mthca/mthca_uar.c | 2 - + drivers/infiniband/hw/mthca/mthca_user.h | 1 - + drivers/infiniband/hw/mthca/mthca_wqe.h | 2 - + drivers/infiniband/hw/nes/nes_cm.c | 1 - + drivers/infiniband/ulp/ipoib/ipoib.h | 3 +- + drivers/infiniband/ulp/ipoib/ipoib_cm.c | 21 +++++++++- + drivers/infiniband/ulp/ipoib/ipoib_fs.c | 2 - + drivers/infiniband/ulp/ipoib/ipoib_ib.c | 2 - + drivers/infiniband/ulp/ipoib/ipoib_main.c | 8 +++- + drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 2 - + drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 2 - + drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 2 - + drivers/infiniband/ulp/iser/iscsi_iser.c | 3 - + drivers/infiniband/ulp/iser/iscsi_iser.h | 2 - + drivers/infiniband/ulp/iser/iser_initiator.c | 2 - + drivers/infiniband/ulp/iser/iser_memory.c | 2 - + drivers/infiniband/ulp/iser/iser_verbs.c | 2 - + drivers/infiniband/ulp/srp/ib_srp.c | 15 ++----- + drivers/infiniband/ulp/srp/ib_srp.h | 2 - + include/rdma/ib_addr.h | 50 ++++++++++++---------- + include/rdma/ib_cache.h | 2 - + include/rdma/ib_cm.h | 2 - + include/rdma/ib_fmr_pool.h | 4 +- + include/rdma/ib_mad.h | 17 +++----- + include/rdma/ib_pack.h | 2 - + include/rdma/ib_sa.h | 2 - + include/rdma/ib_smi.h | 4 +- + include/rdma/ib_user_cm.h | 2 - + include/rdma/ib_user_mad.h | 2 - + include/rdma/ib_user_verbs.h | 2 - + include/rdma/ib_verbs.h | 6 +-- + include/rdma/iw_cm.h | 2 +- + include/rdma/rdma_cm.h | 52 +++++++++++++----------- + include/rdma/rdma_cm_ib.h | 50 ++++++++++++---------- + 82 files changed, 195 insertions(+), 285 deletions(-) +Merging acpi/test +$ git merge acpi/test +Auto-merged MAINTAINERS +Auto-merged drivers/acpi/glue.c +Auto-merged drivers/acpi/processor_core.c +Auto-merged drivers/acpi/scan.c +Auto-merged drivers/acpi/sleep/proc.c +Auto-merged drivers/misc/thinkpad_acpi.c +Auto-merged drivers/pci/pci-acpi.c +Auto-merged drivers/pci/pci.c +Merge made by recursive. + Documentation/laptops/thinkpad-acpi.txt | 2 +- + MAINTAINERS | 10 +- + arch/x86/kernel/acpi/processor.c | 5 + + drivers/acpi/glue.c | 6 + + drivers/acpi/processor_core.c | 14 +- + drivers/acpi/processor_idle.c | 13 +- + drivers/acpi/scan.c | 56 ++-- + drivers/acpi/sleep/main.c | 39 +--- + drivers/acpi/sleep/proc.c | 6 + + drivers/acpi/tables/tbxface.c | 2 +- + drivers/cpuidle/cpuidle.c | 40 +++- + drivers/misc/thinkpad_acpi.c | 492 ++++++++++++++++--------------- + drivers/pci/pci-acpi.c | 6 +- + drivers/pci/pci.c | 4 +- + drivers/pci/pci.h | 3 +- + drivers/pnp/pnpacpi/core.c | 4 +- + include/acpi/acpi_bus.h | 4 +- + include/linux/cpuidle.h | 1 + + kernel/cpu.c | 1 + + 19 files changed, 380 insertions(+), 328 deletions(-) +Merging blackfin/for-linus +$ git merge blackfin/for-linus +Already up-to-date. +Merging nfsd/nfsd-next +$ git merge nfsd/nfsd-next +Merge made by recursive. + Documentation/filesystems/nfs-rdma.txt | 103 +++++++++------- + fs/nfsd/nfs4proc.c | 1 + + fs/nfsd/nfs4state.c | 4 +- + fs/nfsd/nfs4xdr.c | 2 +- + include/linux/sunrpc/gss_krb5.h | 28 +++++ + include/linux/sunrpc/svc_rdma.h | 36 +++++- + net/sunrpc/auth_gss/Makefile | 4 +- + net/sunrpc/auth_gss/auth_gss.c | 14 ++- + net/sunrpc/auth_gss/gss_krb5_crypto.c | 64 +++++++++-- + net/sunrpc/auth_gss/gss_krb5_seal.c | 26 ++-- + net/sunrpc/auth_gss/gss_krb5_unseal.c | 16 ++-- + net/sunrpc/auth_gss/gss_krb5_wrap.c | 79 +++++++----- + net/sunrpc/auth_gss/gss_mech_switch.c | 14 ++ + net/sunrpc/auth_gss/svcauth_gss.c | 15 +++ + net/sunrpc/xprtrdma/svc_rdma.c | 40 ++++++ + net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 84 ++++++------- + net/sunrpc/xprtrdma/svc_rdma_sendto.c | 125 +++++++++---------- + net/sunrpc/xprtrdma/svc_rdma_transport.c | 195 +++++++++++------------------- + 18 files changed, 495 insertions(+), 355 deletions(-) +Merging ieee1394/for-next +$ git merge ieee1394/for-next +Auto-merged drivers/firewire/fw-ohci.c +Auto-merged drivers/firewire/fw-sbp2.c +Auto-merged drivers/firewire/fw-transaction.c +Auto-merged drivers/ieee1394/raw1394.c +Auto-merged drivers/ieee1394/sbp2.c +Auto-merged drivers/ieee1394/video1394.c +Auto-merged drivers/scsi/sd.c +Auto-merged include/scsi/scsi_device.h +Merge made by recursive. + drivers/firewire/fw-card.c | 2 +- + drivers/firewire/fw-device.h | 1 - + drivers/firewire/fw-ohci.c | 10 ++++++++-- + drivers/firewire/fw-sbp2.c | 25 +++++++++++++++++++++++-- + drivers/firewire/fw-transaction.c | 35 +++++++++++++++++++++++++---------- + drivers/firewire/fw-transaction.h | 14 ++++++++------ + drivers/ieee1394/csr1212.c | 32 ++++++++++++++++++++++---------- + drivers/ieee1394/highlevel.c | 4 +--- + drivers/ieee1394/highlevel.h | 13 ++++++++++++- + drivers/ieee1394/raw1394.c | 20 +++++++++++++++----- + drivers/ieee1394/sbp2.c | 22 ++++++++++++++++++++-- + drivers/ieee1394/sbp2.h | 1 + + drivers/ieee1394/video1394.c | 2 ++ + drivers/scsi/sd.c | 5 +++++ + include/scsi/scsi_device.h | 1 + + 15 files changed, 144 insertions(+), 43 deletions(-) +Merging hwmon/testing +$ git merge hwmon/testing +Merge made by recursive. + Documentation/hwmon/dme1737 | 4 + + Documentation/hwmon/sysfs-interface | 33 ++--- + drivers/hwmon/abituguru3.c | 3 +- + drivers/hwmon/adt7473.c | 19 +-- + drivers/hwmon/dme1737.c | 297 ++++++++++++++++++++++------------- + drivers/hwmon/lm85.c | 25 ++-- + 6 files changed, 218 insertions(+), 163 deletions(-) +Merging ubi/master +$ git merge ubi/master +Auto-merged drivers/mtd/ubi/build.c +Auto-merged drivers/mtd/ubi/vmt.c +Merge made by recursive. + drivers/mtd/ubi/build.c | 72 +++++++++++++++++++++++++++++++++++++++------- + drivers/mtd/ubi/cdev.c | 6 ++-- + drivers/mtd/ubi/eba.c | 19 +------------ + drivers/mtd/ubi/kapi.c | 6 ++-- + drivers/mtd/ubi/misc.c | 2 +- + drivers/mtd/ubi/ubi.h | 1 - + drivers/mtd/ubi/upd.c | 6 ++-- + drivers/mtd/ubi/vmt.c | 20 ++++++------ + drivers/mtd/ubi/vtbl.c | 55 +++++++++++++++++++++-------------- + drivers/mtd/ubi/wl.c | 3 +- + 10 files changed, 116 insertions(+), 74 deletions(-) +Merging kvm/master +$ git merge kvm/master +Auto-merged drivers/s390/s390mach.c +Merge made by recursive. + arch/ia64/kvm/Makefile | 3 +- + arch/ia64/kvm/kvm-ia64.c | 17 +-- + arch/ia64/kvm/mmio.c | 3 +- + arch/powerpc/kvm/44x_tlb.c | 9 +- + arch/powerpc/kvm/Makefile | 2 +- + arch/powerpc/kvm/booke_guest.c | 33 ----- + arch/powerpc/kvm/emulate.c | 12 ++ + arch/powerpc/kvm/powerpc.c | 7 +- + arch/s390/kvm/diag.c | 2 +- + arch/s390/kvm/interrupt.c | 7 +- + arch/s390/kvm/kvm-s390.c | 17 ++- + arch/s390/mm/pgtable.c | 44 ++++--- + arch/x86/kvm/Makefile | 3 +- + arch/x86/kvm/i8254.c | 27 ++++- + arch/x86/kvm/i8259.c | 3 +- + arch/x86/kvm/irq.c | 6 + + arch/x86/kvm/irq.h | 2 + + arch/x86/kvm/lapic.c | 10 ++- + arch/x86/kvm/lapic.h | 1 + + arch/x86/kvm/mmu.c | 45 +++++-- + arch/x86/kvm/mmu.h | 3 +- + arch/x86/kvm/paging_tmpl.h | 30 +++-- + arch/x86/kvm/svm.c | 87 ++++++++++---- + arch/x86/kvm/vmx.c | 260 +++++++++++++++++++++++++++++++++------- + arch/x86/kvm/vmx.h | 15 ++- + arch/x86/kvm/x86.c | 235 +++++++++++++++++++++--------------- + arch/x86/kvm/x86_emulate.c | 83 ++++++++++++-- + drivers/s390/s390mach.c | 1 + + include/asm-ia64/kvm_host.h | 3 + + include/asm-powerpc/kvm_host.h | 2 + + include/asm-powerpc/kvm_ppc.h | 1 + + include/asm-x86/kvm.h | 1 + + include/asm-x86/kvm_host.h | 44 +++++++- + include/linux/kvm.h | 29 +++++ + include/linux/kvm_host.h | 12 +- + virt/kvm/coalesced_mmio.c | 156 ++++++++++++++++++++++++ + virt/kvm/coalesced_mmio.h | 23 ++++ + virt/kvm/ioapic.c | 44 +++++-- + virt/kvm/iodev.h | 8 +- + virt/kvm/kvm_main.c | 130 +++++++++++++++++--- + 40 files changed, 1084 insertions(+), 336 deletions(-) + create mode 100644 virt/kvm/coalesced_mmio.c + create mode 100644 virt/kvm/coalesced_mmio.h +Merging dlm/next +$ git merge dlm/next +Merge made by recursive. + fs/dlm/lock.c | 3 ++- + fs/dlm/user.c | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) +Merging scsi/master +$ git merge scsi/master +Auto-merged block/bsg.c +Auto-merged drivers/infiniband/ulp/iser/iscsi_iser.c +Auto-merged drivers/infiniband/ulp/iser/iscsi_iser.h +Auto-merged drivers/infiniband/ulp/iser/iser_initiator.c +Auto-merged drivers/infiniband/ulp/iser/iser_memory.c +Auto-merged drivers/infiniband/ulp/iser/iser_verbs.c +Removed drivers/md/dm-emc.c +Removed drivers/md/dm-hw-handler.c +Removed drivers/md/dm-hw-handler.h +Removed drivers/md/dm-mpath-hp-sw.c +Removed drivers/md/dm-mpath-rdac.c +Auto-merged drivers/message/fusion/mptbase.h +Auto-merged drivers/message/fusion/mptfc.c +Auto-merged drivers/s390/scsi/zfcp_aux.c +Auto-merged drivers/s390/scsi/zfcp_def.h +Auto-merged drivers/scsi/scsi_debug.c +Auto-merged drivers/scsi/scsi_sysfs.c +Auto-merged drivers/scsi/scsi_transport_iscsi.c +Auto-merged include/scsi/scsi_device.h +Auto-merged include/scsi/scsi_transport_iscsi.h +Merge made by recursive. + Documentation/scsi/aacraid.txt | 24 +- + block/bsg.c | 9 +- + drivers/infiniband/ulp/iser/iscsi_iser.c | 355 ++++--- + drivers/infiniband/ulp/iser/iscsi_iser.h | 44 +- + drivers/infiniband/ulp/iser/iser_initiator.c | 209 ++-- + drivers/infiniband/ulp/iser/iser_memory.c | 77 +- + drivers/infiniband/ulp/iser/iser_verbs.c | 28 +- + drivers/md/Kconfig | 19 +- + drivers/md/Makefile | 7 +- + drivers/md/dm-emc.c | 345 ------- + drivers/md/dm-hw-handler.c | 213 ---- + drivers/md/dm-hw-handler.h | 63 -- + drivers/md/dm-mpath-hp-sw.c | 247 ----- + drivers/md/dm-mpath-rdac.c | 700 ------------- + drivers/md/dm-mpath.c | 161 ++-- + drivers/md/dm-mpath.h | 1 - + drivers/message/fusion/lsi/mpi.h | 2 +- + drivers/message/fusion/lsi/mpi_cnfg.h | 2 +- + drivers/message/fusion/mptbase.c | 100 ++- + drivers/message/fusion/mptbase.h | 17 +- + drivers/message/fusion/mptctl.c | 4 +- + drivers/message/fusion/mptctl.h | 2 +- + drivers/message/fusion/mptdebug.h | 2 +- + drivers/message/fusion/mptfc.c | 2 +- + drivers/message/fusion/mptlan.c | 2 +- + drivers/message/fusion/mptlan.h | 2 +- + drivers/message/fusion/mptsas.c | 2 +- + drivers/message/fusion/mptsas.h | 2 +- + drivers/message/fusion/mptscsih.c | 2 +- + drivers/message/fusion/mptscsih.h | 2 +- + drivers/message/fusion/mptspi.c | 3 +- + drivers/s390/scsi/zfcp_aux.c | 40 +- + drivers/s390/scsi/zfcp_dbf.c | 33 +- + drivers/s390/scsi/zfcp_dbf.h | 12 +- + drivers/s390/scsi/zfcp_def.h | 30 +- + drivers/s390/scsi/zfcp_erp.c | 37 +- + drivers/s390/scsi/zfcp_ext.h | 8 +- + drivers/s390/scsi/zfcp_fsf.c | 105 ++- + drivers/s390/scsi/zfcp_fsf.h | 11 +- + drivers/s390/scsi/zfcp_qdio.c | 27 +- + drivers/s390/scsi/zfcp_scsi.c | 65 ++ + drivers/scsi/Kconfig | 2 + + drivers/scsi/Makefile | 1 + + drivers/scsi/aacraid/commctrl.c | 33 + + drivers/scsi/aacraid/linit.c | 2 +- + drivers/scsi/device_handler/Kconfig | 32 + + drivers/scsi/device_handler/Makefile | 7 + + drivers/scsi/device_handler/scsi_dh.c | 162 +++ + drivers/scsi/device_handler/scsi_dh_emc.c | 499 ++++++++++ + drivers/scsi/device_handler/scsi_dh_hp_sw.c | 202 ++++ + drivers/scsi/device_handler/scsi_dh_rdac.c | 691 +++++++++++++ + drivers/scsi/iscsi_tcp.c | 515 +++++----- + drivers/scsi/iscsi_tcp.h | 7 +- + drivers/scsi/libiscsi.c | 1353 ++++++++++++++------------ + drivers/scsi/mesh.c | 8 +- + drivers/scsi/qla4xxx/ql4_os.c | 8 +- + drivers/scsi/scsi.c | 9 + + drivers/scsi/scsi_debug.c | 98 ++- + drivers/scsi/scsi_error.c | 11 + + drivers/scsi/scsi_lib.c | 8 + + drivers/scsi/scsi_sysfs.c | 1 + + drivers/scsi/scsi_transport_iscsi.c | 384 ++++++-- + include/scsi/iscsi_if.h | 93 +- + include/scsi/iscsi_proto.h | 3 +- + include/scsi/libiscsi.h | 107 +- + include/scsi/scsi.h | 1 + + include/scsi/scsi_device.h | 22 + + include/scsi/scsi_dh.h | 59 ++ + include/scsi/scsi_transport_iscsi.h | 91 +- + 69 files changed, 4127 insertions(+), 3298 deletions(-) + delete mode 100644 drivers/md/dm-emc.c + delete mode 100644 drivers/md/dm-hw-handler.c + delete mode 100644 drivers/md/dm-hw-handler.h + delete mode 100644 drivers/md/dm-mpath-hp-sw.c + delete mode 100644 drivers/md/dm-mpath-rdac.c + create mode 100644 drivers/scsi/device_handler/Kconfig + create mode 100644 drivers/scsi/device_handler/Makefile + create mode 100644 drivers/scsi/device_handler/scsi_dh.c + create mode 100644 drivers/scsi/device_handler/scsi_dh_emc.c + create mode 100644 drivers/scsi/device_handler/scsi_dh_hp_sw.c + create mode 100644 drivers/scsi/device_handler/scsi_dh_rdac.c + create mode 100644 include/scsi/scsi_dh.h +Applying scsi: fix fallout from the class_find_device API change +Applying scsi: fix fallout from KOBJ_NAME_LEN removal +Merging ia64/test +$ git merge ia64/test +Merge made by recursive. + Documentation/ia64/paravirt_ops.txt | 137 +++++++++++ + arch/ia64/Makefile | 6 + + arch/ia64/kernel/Makefile | 44 ++++ + arch/ia64/kernel/entry.S | 115 ++++++---- + arch/ia64/kernel/head.S | 41 +++ + arch/ia64/kernel/iosapic.c | 45 +++-- + arch/ia64/kernel/irq_ia64.c | 19 +- + arch/ia64/kernel/ivt.S | 462 +++++++++++++++++----------------- + arch/ia64/kernel/minstate.h | 13 +- + arch/ia64/kernel/nr-irqs.c | 24 ++ + arch/ia64/kernel/paravirt.c | 369 ++++++++++++++++++++++++++++ + arch/ia64/kernel/paravirt_inst.h | 29 +++ + arch/ia64/kernel/paravirtentry.S | 60 +++++ + arch/ia64/kernel/setup.c | 10 + + arch/ia64/kernel/smpboot.c | 2 + + arch/ia64/kernel/time.c | 23 ++ + arch/ia64/kernel/vmlinux.lds.S | 1 - + include/asm-ia64/Kbuild | 2 +- + include/asm-ia64/gcc_intrin.h | 24 +- + include/asm-ia64/hw_irq.h | 23 ++- + include/asm-ia64/intel_intrin.h | 41 ++-- + include/asm-ia64/intrinsics.h | 55 ++++ + include/asm-ia64/iosapic.h | 18 ++- + include/asm-ia64/irq.h | 9 +- + include/asm-ia64/mmu_context.h | 6 +- + include/asm-ia64/native/inst.h | 175 +++++++++++++ + include/asm-ia64/native/irq.h | 35 +++ + include/asm-ia64/paravirt.h | 255 +++++++++++++++++++ + include/asm-ia64/paravirt_privop.h | 114 +++++++++ + include/asm-ia64/smp.h | 2 + + include/asm-ia64/system.h | 11 +- + 31 files changed, 1813 insertions(+), 357 deletions(-) + create mode 100644 Documentation/ia64/paravirt_ops.txt + create mode 100644 arch/ia64/kernel/nr-irqs.c + create mode 100644 arch/ia64/kernel/paravirt.c + create mode 100644 arch/ia64/kernel/paravirt_inst.h + create mode 100644 arch/ia64/kernel/paravirtentry.S + create mode 100644 include/asm-ia64/native/inst.h + create mode 100644 include/asm-ia64/native/irq.h + create mode 100644 include/asm-ia64/paravirt.h + create mode 100644 include/asm-ia64/paravirt_privop.h +Merging tests/master +$ git merge tests/master +Renamed drivers/misc/lkdtm.c => tests/lkdtm.c +Auto-merged tests/lkdtm.c +Auto-merged Makefile +Auto-merged drivers/misc/Makefile +Auto-merged kernel/Makefile +Auto-merged lib/Kconfig.debug +CONFLICT (content): Merge conflict in lib/Kconfig.debug +Auto-merged lib/Makefile +Resolved 'lib/Kconfig.debug' using previous resolution. +Automatic merge failed; fix conflicts and then commit the result. +$ git commit -v -a +$ git diff -M --stat --summary HEAD^.. + Makefile | 1 + + drivers/misc/Makefile | 1 - + kernel/Makefile | 4 - + lib/Kconfig.debug | 72 +-------------------- + lib/Makefile | 1 - + tests/Kconfig | 80 +++++++++++++++++++++++ + tests/Makefile | 10 +++ + {kernel => tests}/backtracetest.c | 0 + {drivers/misc => tests}/lkdtm.c | 12 ++-- + {lib => tests}/locking-selftest-hardirq.h | 0 + {lib => tests}/locking-selftest-mutex.h | 0 + {lib => tests}/locking-selftest-rlock-hardirq.h | 0 + {lib => tests}/locking-selftest-rlock-softirq.h | 0 + {lib => tests}/locking-selftest-rlock.h | 0 + {lib => tests}/locking-selftest-rsem.h | 0 + {lib => tests}/locking-selftest-softirq.h | 0 + {lib => tests}/locking-selftest-spin-hardirq.h | 0 + {lib => tests}/locking-selftest-spin-softirq.h | 0 + {lib => tests}/locking-selftest-spin.h | 0 + {lib => tests}/locking-selftest-wlock-hardirq.h | 0 + {lib => tests}/locking-selftest-wlock-softirq.h | 0 + {lib => tests}/locking-selftest-wlock.h | 0 + {lib => tests}/locking-selftest-wsem.h | 0 + {lib => tests}/locking-selftest.c | 0 + {kernel => tests}/rcutorture.c | 0 + {kernel => tests}/rtmutex-tester.c | 2 +- + {kernel => tests}/test_kprobes.c | 0 + 27 files changed, 100 insertions(+), 83 deletions(-) + create mode 100644 tests/Kconfig + create mode 100644 tests/Makefile + rename {kernel => tests}/backtracetest.c (100%) + rename {drivers/misc => tests}/lkdtm.c (96%) + rename {lib => tests}/locking-selftest-hardirq.h (100%) + rename {lib => tests}/locking-selftest-mutex.h (100%) + rename {lib => tests}/locking-selftest-rlock-hardirq.h (100%) + rename {lib => tests}/locking-selftest-rlock-softirq.h (100%) + rename {lib => tests}/locking-selftest-rlock.h (100%) + rename {lib => tests}/locking-selftest-rsem.h (100%) + rename {lib => tests}/locking-selftest-softirq.h (100%) + rename {lib => tests}/locking-selftest-spin-hardirq.h (100%) + rename {lib => tests}/locking-selftest-spin-softirq.h (100%) + rename {lib => tests}/locking-selftest-spin.h (100%) + rename {lib => tests}/locking-selftest-wlock-hardirq.h (100%) + rename {lib => tests}/locking-selftest-wlock-softirq.h (100%) + rename {lib => tests}/locking-selftest-wlock.h (100%) + rename {lib => tests}/locking-selftest-wsem.h (100%) + rename {lib => tests}/locking-selftest.c (100%) + rename {kernel => tests}/rcutorture.c (100%) + rename {kernel => tests}/rtmutex-tester.c (99%) + rename {kernel => tests}/test_kprobes.c (100%) +Merging ocfs2/linux-next +$ git merge ocfs2/linux-next +Merge made by recursive. + fs/Kconfig | 8 +++ + fs/ocfs2/dlmglue.c | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++- + fs/ocfs2/ocfs2.h | 12 +++++ + 3 files changed, 141 insertions(+), 1 deletions(-) +Merging selinux/for-akpm +$ git merge selinux/for-akpm +Auto-merged security/smack/smack_lsm.c +Merge made by recursive. + fs/proc/base.c | 9 +- + fs/proc/task_mmu.c | 8 +- + fs/proc/task_nommu.c | 2 +- + include/linux/ptrace.h | 8 +- + include/linux/security.h | 16 ++- + kernel/ptrace.c | 15 +- + security/commoncap.c | 3 +- + security/dummy.c | 3 +- + security/security.c | 5 +- + security/selinux/hooks.c | 126 +++++++++------- + security/selinux/include/audit.h | 4 +- + security/selinux/include/avc.h | 15 +- + security/selinux/include/objsec.h | 1 - + security/selinux/include/security.h | 5 + + security/selinux/netnode.c | 1 - + security/selinux/netport.c | 3 +- + security/selinux/selinuxfs.c | 10 +- + security/selinux/ss/avtab.c | 2 +- + security/selinux/ss/context.h | 27 ++++- + security/selinux/ss/mls.c | 19 ++- + security/selinux/ss/mls.h | 3 +- + security/selinux/ss/policydb.c | 15 +- + security/selinux/ss/services.c | 277 ++++++++++++++++++++++++----------- + security/selinux/ss/sidtab.c | 58 +++----- + security/selinux/ss/sidtab.h | 7 +- + security/smack/smack_lsm.c | 5 +- + 26 files changed, 397 insertions(+), 250 deletions(-) +Merging quilt/m68k +$ git merge quilt/m68k +Merge made by recursive. + arch/m68k/configs/amiga_defconfig | 6 ++-- + arch/m68k/configs/apollo_defconfig | 6 ++-- + arch/m68k/configs/atari_defconfig | 6 ++-- + arch/m68k/configs/bvme6000_defconfig | 6 ++-- + arch/m68k/configs/hp300_defconfig | 6 ++-- + arch/m68k/configs/mac_defconfig | 6 ++-- + arch/m68k/configs/multi_defconfig | 6 ++-- + arch/m68k/configs/mvme147_defconfig | 6 ++-- + arch/m68k/configs/mvme16x_defconfig | 6 ++-- + arch/m68k/configs/q40_defconfig | 6 ++-- + arch/m68k/configs/sun3_defconfig | 6 ++-- + arch/m68k/configs/sun3x_defconfig | 6 ++-- + arch/m68k/fpsp040/Makefile | 1 - + arch/m68k/ifpsp060/Makefile | 1 - + arch/m68k/kernel/Makefile | 2 - + arch/m68k/kernel/setup.c | 6 ++++ + arch/m68k/kernel/vmlinux-std.lds | 3 +- + arch/m68k/kernel/vmlinux-sun3.lds | 7 +++-- + arch/m68k/lib/Makefile | 2 - + arch/m68k/math-emu/Makefile | 2 - + arch/m68k/sun3/idprom.c | 2 +- + arch/m68k/sun3/prom/Makefile | 1 - + arch/m68k/sun3/prom/console.c | 2 +- + arch/m68k/sun3/prom/init.c | 2 +- + arch/m68k/sun3/prom/misc.c | 2 +- + arch/m68k/sun3/prom/printf.c | 2 +- + drivers/block/ataflop.c | 4 +- + drivers/char/nvram.c | 2 +- + drivers/input/keyboard/atakbd.c | 2 +- + drivers/net/ariadne.c | 47 ++++++++++++++++------------------ + drivers/video/atafb.c | 2 +- + drivers/zorro/proc.c | 4 +-- + drivers/zorro/zorro.c | 2 - + drivers/zorro/zorro.ids | 2 - + include/asm-m68k/apollodma.h | 2 +- + include/asm-m68k/dvma.h | 2 +- + include/asm-m68k/fpu.h | 10 +++--- + include/asm-m68k/irq.h | 2 +- + include/asm-m68k/machines.h | 2 +- + include/asm-m68k/md.h | 2 +- + include/asm-m68k/openprom.h | 1 - + include/asm-m68k/oplib.h | 2 +- + include/asm-m68k/sun3-head.h | 1 - + include/asm-m68k/tlbflush.h | 8 +++--- + 44 files changed, 96 insertions(+), 108 deletions(-) +Merging powerpc/powerpc-next +$ git merge powerpc/powerpc-next +Auto-merged arch/powerpc/boot/dts/mpc8610_hpcd.dts +Auto-merged arch/powerpc/kernel/entry_32.S +Auto-merged arch/powerpc/kernel/irq.c +Auto-merged arch/powerpc/kernel/setup_32.c +Removed drivers/net/fec_8xx/Kconfig +Removed drivers/net/fec_8xx/Makefile +Removed drivers/net/fec_8xx/fec_8xx-netta.c +Removed drivers/net/fec_8xx/fec_8xx.h +Removed drivers/net/fec_8xx/fec_main.c +Removed drivers/net/fec_8xx/fec_mii.c +Merge made by recursive. + Documentation/powerpc/booting-without-of.txt | 49 +- + arch/powerpc/boot/Makefile | 3 +- + arch/powerpc/boot/cuboot-warp.c | 47 +- + arch/powerpc/boot/dts/asp834x-redboot.dts | 247 +++++ + arch/powerpc/boot/dts/bamboo.dts | 142 ++-- + arch/powerpc/boot/dts/canyonlands.dts | 222 +++--- + arch/powerpc/boot/dts/ebony.dts | 164 ++-- + arch/powerpc/boot/dts/ep405.dts | 100 +- + arch/powerpc/boot/dts/glacier.dts | 262 +++--- + arch/powerpc/boot/dts/haleakala.dts | 136 ++-- + arch/powerpc/boot/dts/holly.dts | 122 ++-- + arch/powerpc/boot/dts/katmai.dts | 210 +++--- + arch/powerpc/boot/dts/kilauea.dts | 182 ++-- + arch/powerpc/boot/dts/ksi8560.dts | 3 +- + arch/powerpc/boot/dts/makalu.dts | 182 ++-- + arch/powerpc/boot/dts/mpc7448hpc2.dts | 2 - + arch/powerpc/boot/dts/mpc8540ads.dts | 5 +- + arch/powerpc/boot/dts/mpc8541cds.dts | 5 +- + arch/powerpc/boot/dts/mpc8544ds.dts | 21 +- + arch/powerpc/boot/dts/mpc8548cds.dts | 5 +- + arch/powerpc/boot/dts/mpc8555cds.dts | 5 +- + arch/powerpc/boot/dts/mpc8560ads.dts | 3 +- + arch/powerpc/boot/dts/mpc8568mds.dts | 5 +- + arch/powerpc/boot/dts/mpc8572ds.dts | 22 +- + arch/powerpc/boot/dts/mpc8610_hpcd.dts | 18 +- + arch/powerpc/boot/dts/mpc8641_hpcn.dts | 2 - + arch/powerpc/boot/dts/ps3.dts | 16 +- + arch/powerpc/boot/dts/rainier.dts | 163 ++-- + arch/powerpc/boot/dts/sbc8548.dts | 5 +- + arch/powerpc/boot/dts/sbc8560.dts | 5 +- + arch/powerpc/boot/dts/sequoia.dts | 172 ++-- + arch/powerpc/boot/dts/storcenter.dts | 1 + + arch/powerpc/boot/dts/stx_gp3_8560.dts | 4 +- + arch/powerpc/boot/dts/taishan.dts | 212 +++--- + arch/powerpc/boot/dts/tqm8540.dts | 4 +- + arch/powerpc/boot/dts/tqm8541.dts | 4 +- + arch/powerpc/boot/dts/tqm8555.dts | 4 +- + arch/powerpc/boot/dts/tqm8560.dts | 4 +- + arch/powerpc/boot/dts/walnut.dts | 118 ++-- + arch/powerpc/boot/dts/warp.dts | 145 ++-- + arch/powerpc/boot/dts/yosemite.dts | 146 ++-- + arch/powerpc/boot/redboot-83xx.c | 60 ++ + arch/powerpc/boot/wrapper | 6 +- + arch/powerpc/configs/asp8347_defconfig | 1214 +++++++++++++++++++++++++ + arch/powerpc/kernel/asm-offsets.c | 23 + + arch/powerpc/kernel/entry_32.S | 150 +++- + arch/powerpc/kernel/head_40x.S | 24 +- + arch/powerpc/kernel/head_44x.S | 9 - + arch/powerpc/kernel/head_booke.h | 102 ++- + arch/powerpc/kernel/head_fsl_booke.S | 9 - + arch/powerpc/kernel/irq.c | 33 + + arch/powerpc/kernel/kprobes.c | 2 +- + arch/powerpc/kernel/lparcfg.c | 6 +- + arch/powerpc/kernel/machine_kexec_64.c | 4 +- + arch/powerpc/kernel/msi.c | 2 +- + arch/powerpc/kernel/of_device.c | 48 - + arch/powerpc/kernel/rtas-proc.c | 14 +- + arch/powerpc/kernel/rtas.c | 6 +- + arch/powerpc/kernel/rtas_flash.c | 4 +- + arch/powerpc/kernel/rtas_pci.c | 4 +- + arch/powerpc/kernel/setup_32.c | 24 + + arch/powerpc/kernel/signal.c | 12 +- + arch/powerpc/kernel/signal_32.c | 2 +- + arch/powerpc/kernel/smp.c | 4 - + arch/powerpc/kernel/time.c | 10 +- + arch/powerpc/kernel/vdso64/vdso64.lds.S | 6 +- + arch/powerpc/mm/hash_utils_64.c | 6 +- + arch/powerpc/mm/init_32.c | 3 +- + arch/powerpc/mm/init_64.c | 4 +- + arch/powerpc/mm/stab.c | 4 +- + arch/powerpc/mm/tlb_64.c | 7 +- + arch/powerpc/platforms/44x/warp-nand.c | 49 +- + arch/powerpc/platforms/44x/warp.c | 293 +++++- + arch/powerpc/platforms/83xx/Kconfig | 9 + + arch/powerpc/platforms/83xx/Makefile | 1 + + arch/powerpc/platforms/83xx/asp834x.c | 90 ++ + arch/powerpc/platforms/85xx/mpc85xx_ds.c | 4 +- + arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 3 +- + arch/powerpc/platforms/cell/axon_msi.c | 58 ++ + arch/powerpc/platforms/chrp/setup.c | 7 - + arch/powerpc/platforms/maple/time.c | 2 - + arch/powerpc/platforms/powermac/pic.c | 8 +- + arch/powerpc/platforms/pseries/firmware.c | 1 + + arch/powerpc/platforms/pseries/iommu.c | 15 +- + arch/powerpc/platforms/pseries/lpar.c | 2 +- + arch/powerpc/platforms/pseries/ras.c | 2 +- + arch/powerpc/platforms/pseries/rtasd.c | 4 +- + arch/powerpc/platforms/pseries/setup.c | 4 +- + arch/powerpc/sysdev/6xx-suspend.S | 52 ++ + arch/powerpc/sysdev/Makefile | 7 +- + arch/powerpc/sysdev/dcr.c | 156 +++- + arch/powerpc/sysdev/fsl_msi.c | 429 +++++++++ + arch/powerpc/sysdev/fsl_msi.h | 42 + + arch/powerpc/sysdev/fsl_pci.c | 12 + + arch/powerpc/sysdev/fsl_soc.c | 15 +- + arch/powerpc/sysdev/mpic.c | 9 +- + arch/powerpc/sysdev/mpic_msi.c | 1 + + arch/powerpc/sysdev/mpic_pasemi_msi.c | 6 +- + arch/powerpc/sysdev/mpic_u3msi.c | 8 +- + arch/powerpc/sysdev/mv64x60_dev.c | 10 + + arch/powerpc/xmon/xmon.c | 66 +- + arch/ppc/kernel/entry.S | 4 +- + drivers/char/hvc_console.c | 8 +- + drivers/char/hvc_console.h | 10 + + drivers/macintosh/macio_sysfs.c | 12 +- + drivers/net/Kconfig | 1 - + drivers/net/Makefile | 1 - + drivers/net/fec_8xx/Kconfig | 20 - + drivers/net/fec_8xx/Makefile | 12 - + drivers/net/fec_8xx/fec_8xx-netta.c | 151 --- + drivers/net/fec_8xx/fec_8xx.h | 220 ----- + drivers/net/fec_8xx/fec_main.c | 1264 -------------------------- + drivers/net/fec_8xx/fec_mii.c | 418 --------- + drivers/of/device.c | 84 ++- + drivers/of/gpio.c | 38 +- + drivers/of/platform.c | 3 + + include/asm-powerpc/dcr-generic.h | 49 + + include/asm-powerpc/dcr-mmio.h | 20 +- + include/asm-powerpc/dcr-native.h | 16 +- + include/asm-powerpc/dcr.h | 39 +- + include/asm-powerpc/ioctl.h | 58 +-- + include/asm-powerpc/irq.h | 13 + + include/asm-powerpc/mmu-hash64.h | 1 + + include/asm-powerpc/mpc6xx.h | 6 + + include/asm-powerpc/mpic.h | 2 + + include/asm-powerpc/of_device.h | 2 - + include/asm-powerpc/ppc_asm.h | 6 + + include/asm-powerpc/ptrace.h | 1 + + include/asm-powerpc/smp.h | 2 + + include/asm-powerpc/system.h | 1 + + include/asm-powerpc/thread_info.h | 19 +- + include/asm-powerpc/time.h | 1 + + include/asm-powerpc/xmon.h | 9 + + include/linux/of_device.h | 3 + + 134 files changed, 4873 insertions(+), 3955 deletions(-) + create mode 100644 arch/powerpc/boot/dts/asp834x-redboot.dts + create mode 100644 arch/powerpc/boot/redboot-83xx.c + create mode 100644 arch/powerpc/configs/asp8347_defconfig + create mode 100644 arch/powerpc/platforms/83xx/asp834x.c + create mode 100644 arch/powerpc/sysdev/6xx-suspend.S + create mode 100644 arch/powerpc/sysdev/fsl_msi.c + create mode 100644 arch/powerpc/sysdev/fsl_msi.h + delete mode 100644 drivers/net/fec_8xx/Kconfig + delete mode 100644 drivers/net/fec_8xx/Makefile + delete mode 100644 drivers/net/fec_8xx/fec_8xx-netta.c + delete mode 100644 drivers/net/fec_8xx/fec_8xx.h + delete mode 100644 drivers/net/fec_8xx/fec_main.c + delete mode 100644 drivers/net/fec_8xx/fec_mii.c + create mode 100644 include/asm-powerpc/dcr-generic.h + create mode 100644 include/asm-powerpc/mpc6xx.h +Merging hrt/mm +$ git merge hrt/mm +Already up-to-date. +Merging lblnet/master +$ git merge lblnet/master +Already up-to-date. +Merging ext4/next +$ git merge ext4/next +Merge made by recursive. + fs/ext4/balloc.c | 12 +++++-- + fs/ext4/ext4.h | 7 ++-- + fs/ext4/ext4_i.h | 2 +- + fs/ext4/ext4_sb.h | 2 +- + fs/ext4/inode.c | 20 +++++++----- + fs/ext4/mballoc.c | 86 +++++++++++++++++++++++++------------------------ + fs/jbd2/commit.c | 3 ++ + include/linux/jbd2.h | 2 + + 8 files changed, 76 insertions(+), 58 deletions(-) +Merging 4xx/next +$ git merge 4xx/next +Already up-to-date. +Merging async_tx/next +$ git merge async_tx/next +Merge made by recursive. + drivers/dma/fsldma.c | 31 ++++++++++++++++--------------- + 1 files changed, 16 insertions(+), 15 deletions(-) +Merging udf/for_next +$ git merge udf/for_next +Merge made by recursive. + fs/udf/super.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) +Merging security-testing/next +$ git merge security-testing/next +Already up-to-date. +Merging net/master +$ git merge net/master +Auto-merged Documentation/powerpc/booting-without-of.txt +CONFLICT (content): Merge conflict in Documentation/powerpc/booting-without-of.txt +Auto-merged drivers/net/Kconfig +Auto-merged drivers/net/atlx/atl1.c +Auto-merged drivers/net/cxgb3/common.h +Auto-merged drivers/net/myri10ge/myri10ge.c +Auto-merged drivers/net/ppp_generic.c +Auto-merged drivers/net/s2io.c +Auto-merged drivers/net/sb1250-mac.c +Removed drivers/net/sfc/i2c-direct.c +Removed drivers/net/sfc/i2c-direct.h +Auto-merged drivers/net/ucc_geth_ethtool.c +Auto-merged drivers/net/wireless/airo.c +Auto-merged drivers/net/wireless/atmel.c +Auto-merged drivers/net/wireless/b43/b43.h +Auto-merged drivers/net/wireless/b43/main.c +Auto-merged drivers/net/wireless/b43legacy/main.c +Auto-merged drivers/net/wireless/iwlwifi/iwl-4965-rs.c +Auto-merged drivers/net/wireless/rt2x00/rt2x00.h +Auto-merged drivers/net/wireless/rt2x00/rt2x00dev.c +Auto-merged drivers/net/wireless/rt2x00/rt2x00mac.c +Auto-merged drivers/net/wireless/rt2x00/rt2x00pci.h +Auto-merged drivers/net/wireless/rt2x00/rt61pci.c +Auto-merged drivers/net/wireless/rt2x00/rt73usb.c +Auto-merged drivers/net/wireless/zd1211rw/zd_mac.c +Auto-merged include/linux/pci_ids.h +Auto-merged include/net/sctp/structs.h +Auto-merged net/core/net-sysfs.c +Auto-merged net/core/rtnetlink.c +Auto-merged net/ipv6/ip6mr.c +Auto-merged net/mac80211/cfg.c +Auto-merged net/mac80211/main.c +Auto-merged net/mac80211/mlme.c +Auto-merged net/mac80211/rx.c +Auto-merged net/mac80211/wext.c +Auto-merged net/sctp/associola.c +Auto-merged net/sctp/protocol.c +Auto-merged net/wireless/core.c +Recorded preimage for 'Documentation/powerpc/booting-without-of.txt' +Automatic merge failed; fix conflicts and then commit the result. +$ git commit -v -a +$ git diff -M --stat --summary HEAD^.. + Documentation/networking/bonding.txt | 96 +- + Documentation/powerpc/booting-without-of.txt | 20 + + drivers/net/3c515.c | 4 + + drivers/net/3c523.c | 37 +- + drivers/net/3c527.c | 45 +- + drivers/net/8139cp.c | 43 +- + drivers/net/8139too.c | 53 +- + drivers/net/8390.h | 1 - + drivers/net/Kconfig | 6 +- + drivers/net/acenic.c | 21 +- + drivers/net/acenic.h | 1 - + drivers/net/atlx/atl1.c | 3 +- + drivers/net/bnx2.c | 242 ++- + drivers/net/bnx2.h | 4 +- + drivers/net/bnx2_fw.h | 80 + + drivers/net/bonding/bond_main.c | 706 ++++--- + drivers/net/bonding/bond_sysfs.c | 81 +- + drivers/net/bonding/bonding.h | 13 +- + drivers/net/cxgb3/adapter.h | 18 + + drivers/net/cxgb3/common.h | 1 + + drivers/net/cxgb3/cxgb3_ioctl.h | 1 + + drivers/net/cxgb3/cxgb3_main.c | 19 + + drivers/net/cxgb3/sge.c | 391 +++- + drivers/net/cxgb3/t3_cpl.h | 11 + + drivers/net/dl2k.c | 8 +- + drivers/net/dm9000.c | 6 +- + drivers/net/forcedeth.c | 61 +- + drivers/net/fs_enet/fs_enet-main.c | 31 +- + drivers/net/gianfar.c | 2 +- + drivers/net/hamachi.c | 12 +- + drivers/net/hamradio/6pack.c | 24 +- + drivers/net/ixp2000/ixpdev.c | 4 +- + drivers/net/lib8390.c | 96 +- + drivers/net/myri10ge/myri10ge.c | 1076 ++++++++--- + drivers/net/natsemi.c | 4 +- + drivers/net/niu.h | 2 +- + drivers/net/ns83820.c | 9 +- + drivers/net/pcmcia/3c574_cs.c | 47 +- + drivers/net/pcmcia/3c589_cs.c | 49 +- + drivers/net/pcmcia/axnet_cs.c | 70 +- + drivers/net/pcnet32.c | 6 +- + drivers/net/phy/Kconfig | 9 +- + drivers/net/phy/Makefile | 1 + + drivers/net/phy/broadcom.c | 201 ++- + drivers/net/phy/mdio-ofgpio.c | 205 ++ + drivers/net/ppp_generic.c | 22 +- + drivers/net/ps3_gelic_net.c | 10 +- + drivers/net/ps3_gelic_net.h | 2 +- + drivers/net/ps3_gelic_wireless.c | 40 +- + drivers/net/ps3_gelic_wireless.h | 4 +- + drivers/net/qla3xxx.c | 4 +- + drivers/net/s2io.c | 6 +- + drivers/net/s2io.h | 2 +- + drivers/net/sb1250-mac.c | 2 +- + drivers/net/sfc/Kconfig | 2 + + drivers/net/sfc/Makefile | 2 +- + drivers/net/sfc/boards.c | 2 +- + drivers/net/sfc/boards.h | 3 +- + drivers/net/sfc/efx.c | 2 + + drivers/net/sfc/falcon.c | 74 +- + drivers/net/sfc/i2c-direct.c | 381 ---- + drivers/net/sfc/i2c-direct.h | 91 - + drivers/net/sfc/net_driver.h | 11 +- + drivers/net/sfc/sfe4001.c | 126 +- + drivers/net/sis190.c | 2 +- + drivers/net/sis900.c | 2 +- + drivers/net/sky2.c | 175 ++- + drivers/net/sky2.h | 23 +- + drivers/net/spider_net.c | 4 +- + drivers/net/tg3.c | 1268 ++++++++---- + drivers/net/tg3.h | 40 +- + drivers/net/tlan.c | 490 +++--- + drivers/net/tlan.h | 26 +- + drivers/net/tokenring/3c359.c | 20 +- + drivers/net/tokenring/3c359.h | 2 - + drivers/net/tsi108_eth.c | 10 +- + drivers/net/ucc_geth_ethtool.c | 4 +- + drivers/net/via-velocity.c | 25 +- + drivers/net/wireless/adm8211.c | 14 +- + drivers/net/wireless/airo.c | 57 +- + drivers/net/wireless/arlan-main.c | 40 +- + drivers/net/wireless/arlan.h | 1 - + drivers/net/wireless/ath5k/base.c | 33 +- + drivers/net/wireless/ath5k/base.h | 3 +- + drivers/net/wireless/atmel.c | 46 +- + drivers/net/wireless/b43/b43.h | 19 +- + drivers/net/wireless/b43/debugfs.c | 77 +- + drivers/net/wireless/b43/debugfs.h | 1 + + drivers/net/wireless/b43/dma.c | 8 +- + drivers/net/wireless/b43/lo.c | 731 +++----- + drivers/net/wireless/b43/lo.h | 115 +- + drivers/net/wireless/b43/main.c | 58 +- + drivers/net/wireless/b43/main.h | 3 + + drivers/net/wireless/b43/nphy.c | 2 - + drivers/net/wireless/b43/phy.c | 291 +--- + drivers/net/wireless/b43/phy.h | 16 +- + drivers/net/wireless/b43/pio.c | 8 +- + drivers/net/wireless/b43/xmit.c | 7 +- + drivers/net/wireless/b43legacy/b43legacy.h | 17 - + drivers/net/wireless/b43legacy/dma.c | 8 +- + drivers/net/wireless/b43legacy/main.c | 18 +- + drivers/net/wireless/b43legacy/phy.c | 14 +- + drivers/net/wireless/b43legacy/pio.c | 8 +- + drivers/net/wireless/b43legacy/radio.c | 12 +- + drivers/net/wireless/b43legacy/xmit.c | 6 +- + drivers/net/wireless/iwlwifi/Kconfig | 40 +- + drivers/net/wireless/iwlwifi/Makefile | 11 +- + drivers/net/wireless/iwlwifi/iwl-3945-hw.h | 13 +- + drivers/net/wireless/iwlwifi/iwl-3945-rs.c | 1 - + drivers/net/wireless/iwlwifi/iwl-3945.c | 20 +- + drivers/net/wireless/iwlwifi/iwl-3945.h | 6 +- + drivers/net/wireless/iwlwifi/iwl-4965-hw.h | 615 +------ + drivers/net/wireless/iwlwifi/iwl-4965-rs.c | 1017 +++++----- + drivers/net/wireless/iwlwifi/iwl-4965-rs.h | 87 +- + drivers/net/wireless/iwlwifi/iwl-4965.c | 2214 +++++--------------- + drivers/net/wireless/iwlwifi/iwl-5000-hw.h | 133 ++ + drivers/net/wireless/iwlwifi/iwl-5000.c | 560 +++++ + drivers/net/wireless/iwlwifi/iwl-calib.c | 779 +++++++ + drivers/net/wireless/iwlwifi/iwl-calib.h | 104 + + .../{iwl-4965-commands.h => iwl-commands.h} | 111 +- + drivers/net/wireless/iwlwifi/iwl-core.c | 780 +++++++- + drivers/net/wireless/iwlwifi/iwl-core.h | 79 +- + drivers/net/wireless/iwlwifi/iwl-csr.h | 32 +- + drivers/net/wireless/iwlwifi/iwl-debug.h | 22 +- + drivers/net/wireless/iwlwifi/iwl-debugfs.c | 46 +- + .../net/wireless/iwlwifi/{iwl-4965.h => iwl-dev.h} | 281 ++-- + drivers/net/wireless/iwlwifi/iwl-eeprom.c | 118 +- + drivers/net/wireless/iwlwifi/iwl-eeprom.h | 205 +- + drivers/net/wireless/iwlwifi/iwl-fh.h | 391 ++++ + drivers/net/wireless/iwlwifi/iwl-hcmd.c | 6 +- + drivers/net/wireless/iwlwifi/iwl-led.c | 2 +- + drivers/net/wireless/iwlwifi/iwl-power.c | 423 ++++ + drivers/net/wireless/iwlwifi/iwl-power.h | 76 + + drivers/net/wireless/iwlwifi/iwl-prph.h | 310 +++- + drivers/net/wireless/iwlwifi/iwl-rfkill.c | 2 +- + drivers/net/wireless/iwlwifi/iwl-rx.c | 422 ++++ + drivers/net/wireless/iwlwifi/iwl-sta.c | 151 ++- + drivers/net/wireless/iwlwifi/iwl-sta.h | 11 +- + drivers/net/wireless/iwlwifi/iwl-tx.c | 373 ++++ + drivers/net/wireless/iwlwifi/iwl3945-base.c | 79 +- + drivers/net/wireless/iwlwifi/iwl4965-base.c | 2145 +++++--------------- + drivers/net/wireless/libertas/cmd.c | 32 - + drivers/net/wireless/libertas/cmd.h | 3 +- + drivers/net/wireless/libertas/decl.h | 4 +- + drivers/net/wireless/libertas/main.c | 38 +- + drivers/net/wireless/p54/p54.h | 2 +- + drivers/net/wireless/p54/p54common.c | 35 +- + drivers/net/wireless/rt2x00/Kconfig | 55 +- + drivers/net/wireless/rt2x00/rt2400pci.c | 42 +- + drivers/net/wireless/rt2x00/rt2500pci.c | 41 +- + drivers/net/wireless/rt2x00/rt2500usb.c | 26 +- + drivers/net/wireless/rt2x00/rt2x00.h | 20 +- + drivers/net/wireless/rt2x00/rt2x00dev.c | 10 +- + drivers/net/wireless/rt2x00/rt2x00mac.c | 39 +- + drivers/net/wireless/rt2x00/rt2x00pci.c | 2 +- + drivers/net/wireless/rt2x00/rt2x00pci.h | 6 +- + drivers/net/wireless/rt2x00/rt2x00queue.c | 6 +- + drivers/net/wireless/rt2x00/rt2x00queue.h | 37 +- + drivers/net/wireless/rt2x00/rt2x00usb.c | 4 +- + drivers/net/wireless/rt2x00/rt2x00usb.h | 21 +- + drivers/net/wireless/rt2x00/rt61pci.c | 32 +- + drivers/net/wireless/rt2x00/rt73usb.c | 38 +- + drivers/net/wireless/rtl8180_dev.c | 9 +- + drivers/net/wireless/rtl8187_dev.c | 10 +- + drivers/net/wireless/zd1211rw/zd_mac.c | 29 +- + drivers/ssb/pci.c | 20 +- + include/linux/brcmphy.h | 6 + + include/linux/ieee80211.h | 32 +- + include/linux/pci_ids.h | 1 + + include/linux/tcp.h | 50 +- + include/linux/tipc_config.h | 10 +- + include/linux/wanrouter.h | 2 +- + include/net/ieee80211.h | 11 - + include/net/ip6_tunnel.h | 1 - + include/net/ipip.h | 1 - + include/net/mac80211.h | 152 +- + include/net/net_namespace.h | 3 + + include/net/sctp/sctp.h | 2 + + include/net/sctp/structs.h | 4 + + include/net/sctp/user.h | 36 +- + include/net/tipc/tipc_port.h | 3 +- + net/bridge/br_device.c | 11 +- + net/bridge/br_forward.c | 2 +- + net/bridge/br_input.c | 10 +- + net/bridge/br_private.h | 1 - + net/core/net-sysfs.c | 9 +- + net/core/rtnetlink.c | 20 +- + net/core/sysctl_net_core.c | 39 +- + net/ieee80211/ieee80211_rx.c | 2 +- + net/ieee80211/ieee80211_tx.c | 86 - + net/ieee80211/ieee80211_wx.c | 89 - + net/ipv4/ip_fragment.c | 34 +- + net/ipv4/ip_gre.c | 32 +- + net/ipv4/ipip.c | 22 +- + net/ipv4/ipmr.c | 29 +- + net/ipv6/ip6_tunnel.c | 26 +- + net/ipv6/ip6mr.c | 22 +- + net/ipv6/reassembly.c | 61 +- + net/ipv6/sit.c | 24 +- + net/ipv6/sysctl_net_ipv6.c | 29 +- + net/irda/irnet/irnet_ppp.c | 54 +- + net/irda/irnet/irnet_ppp.h | 7 +- + net/mac80211/aes_ccm.c | 2 +- + net/mac80211/aes_ccm.h | 2 +- + net/mac80211/cfg.c | 2 + + net/mac80211/debugfs.c | 43 - + net/mac80211/debugfs_netdev.c | 2 +- + net/mac80211/debugfs_sta.c | 55 +- + net/mac80211/ieee80211_i.h | 17 +- + net/mac80211/iface.c | 6 +- + net/mac80211/key.c | 11 +- + net/mac80211/main.c | 52 +- + net/mac80211/mesh_hwmp.c | 2 +- + net/mac80211/mesh_plink.c | 88 +- + net/mac80211/mlme.c | 139 +- + net/mac80211/rx.c | 219 ++- + net/mac80211/sta_info.c | 16 +- + net/mac80211/sta_info.h | 74 +- + net/mac80211/tkip.c | 145 +- + net/mac80211/tkip.h | 4 +- + net/mac80211/tx.c | 30 +- + net/mac80211/wep.c | 2 +- + net/mac80211/wep.h | 2 +- + net/mac80211/wext.c | 28 +- + net/mac80211/wme.c | 119 +- + net/mac80211/wpa.c | 8 +- + net/sctp/associola.c | 3 + + net/sctp/proc.c | 141 ++ + net/sctp/protocol.c | 3 + + net/sctp/sm_sideeffect.c | 17 +- + net/sctp/socket.c | 306 ++- + net/sysctl_net.c | 30 + + net/tipc/bcast.c | 4 +- + net/tipc/cluster.c | 2 +- + net/tipc/config.c | 11 +- + net/tipc/core.c | 13 +- + net/tipc/core.h | 126 +- + net/tipc/dbg.c | 231 +-- + net/tipc/dbg.h | 12 +- + net/tipc/discover.c | 14 +- + net/tipc/discover.h | 2 +- + net/tipc/link.c | 80 +- + net/tipc/msg.c | 13 +- + net/tipc/msg.h | 42 +- + net/tipc/name_distr.c | 6 +- + net/tipc/name_table.c | 14 +- + net/tipc/net.c | 10 +- + net/tipc/net.h | 2 +- + net/tipc/netlink.c | 16 +- + net/tipc/node.c | 26 + + net/tipc/port.c | 79 +- + net/tipc/ref.c | 12 +- + net/tipc/socket.c | 5 +- + net/tipc/subscr.c | 249 ++- + net/tipc/subscr.h | 34 +- + net/wanrouter/wanmain.c | 6 +- + net/wanrouter/wanproc.c | 2 +- + net/wireless/core.c | 33 +- + net/wireless/radiotap.c | 16 +- + 259 files changed, 13809 insertions(+), 10278 deletions(-) + create mode 100644 drivers/net/phy/mdio-ofgpio.c + delete mode 100644 drivers/net/sfc/i2c-direct.c + delete mode 100644 drivers/net/sfc/i2c-direct.h + create mode 100644 drivers/net/wireless/iwlwifi/iwl-5000-hw.h + create mode 100644 drivers/net/wireless/iwlwifi/iwl-5000.c + create mode 100644 drivers/net/wireless/iwlwifi/iwl-calib.c + create mode 100644 drivers/net/wireless/iwlwifi/iwl-calib.h + rename drivers/net/wireless/iwlwifi/{iwl-4965-commands.h => iwl-commands.h} (96%) + rename drivers/net/wireless/iwlwifi/{iwl-4965.h => iwl-dev.h} (85%) + create mode 100644 drivers/net/wireless/iwlwifi/iwl-fh.h + create mode 100644 drivers/net/wireless/iwlwifi/iwl-power.c + create mode 100644 drivers/net/wireless/iwlwifi/iwl-power.h + create mode 100644 drivers/net/wireless/iwlwifi/iwl-rx.c + create mode 100644 drivers/net/wireless/iwlwifi/iwl-tx.c + create mode 100644 include/linux/brcmphy.h +Merging sparc/master +$ git merge sparc/master +Already up-to-date. +Merging galak/powerpc-next +$ git merge galak/powerpc-next +Already up-to-date. +Merging mtd/master +$ git merge mtd/master +Auto-merged drivers/mtd/devices/mtd_dataflash.c +Auto-merged drivers/mtd/maps/Kconfig +Auto-merged drivers/mtd/maps/Makefile +Auto-merged drivers/mtd/maps/bast-flash.c +Auto-merged drivers/mtd/maps/integrator-flash.c +Auto-merged drivers/mtd/maps/ixp2000.c +Auto-merged drivers/mtd/maps/ixp4xx.c +Auto-merged drivers/mtd/maps/physmap.c +Auto-merged drivers/mtd/mtdchar.c +Auto-merged include/linux/mtd/map.h +Auto-merged include/linux/mtd/mtd.h +Merge made by recursive. + drivers/mtd/Kconfig | 2 - + drivers/mtd/afs.c | 2 - + drivers/mtd/chips/cfi_cmdset_0001.c | 8 +- + drivers/mtd/chips/cfi_cmdset_0002.c | 3 - + drivers/mtd/chips/cfi_cmdset_0020.c | 2 - + drivers/mtd/chips/cfi_probe.c | 1 - + drivers/mtd/chips/cfi_util.c | 3 - + drivers/mtd/chips/chipreg.c | 2 - + drivers/mtd/chips/gen_probe.c | 1 - + drivers/mtd/chips/jedec_probe.c | 119 ++++++++++++++++++- + drivers/mtd/chips/map_absent.c | 1 - + drivers/mtd/chips/map_ram.c | 1 - + drivers/mtd/chips/map_rom.c | 1 - + drivers/mtd/cmdlinepart.c | 2 - + drivers/mtd/devices/Kconfig | 1 - + drivers/mtd/devices/Makefile | 1 - + drivers/mtd/devices/block2mtd.c | 6 - + drivers/mtd/devices/doc2000.c | 2 - + drivers/mtd/devices/doc2001.c | 2 - + drivers/mtd/devices/doc2001plus.c | 2 - + drivers/mtd/devices/docecc.c | 2 - + drivers/mtd/devices/docprobe.c | 3 - + drivers/mtd/devices/lart.c | 2 - + drivers/mtd/devices/ms02-nv.c | 2 - + drivers/mtd/devices/ms02-nv.h | 2 - + drivers/mtd/devices/mtd_dataflash.c | 135 +++++++++++++++++++--- + drivers/mtd/devices/mtdram.c | 1 - + drivers/mtd/devices/phram.c | 2 - + drivers/mtd/devices/pmc551.c | 2 - + drivers/mtd/devices/slram.c | 2 - + drivers/mtd/ftl.c | 3 - + drivers/mtd/inftlcore.c | 5 - + drivers/mtd/inftlmount.c | 4 - + drivers/mtd/maps/Kconfig | 12 ++- + drivers/mtd/maps/Makefile | 2 +- + drivers/mtd/maps/amd76xrom.c | 1 - + drivers/mtd/maps/autcpu12-nvram.c | 2 - + drivers/mtd/maps/bast-flash.c | 2 - + drivers/mtd/maps/bfin-async-flash.c | 219 +++++++++++++++++++++++++++++++++++ + drivers/mtd/maps/cdb89712.c | 1 - + drivers/mtd/maps/ceiva.c | 1 - + drivers/mtd/maps/cfi_flagadm.c | 2 - + drivers/mtd/maps/dbox2-flash.c | 2 - + drivers/mtd/maps/dc21285.c | 2 - + drivers/mtd/maps/dilnetpc.c | 2 - + drivers/mtd/maps/dmv182.c | 2 - + drivers/mtd/maps/ebony.c | 2 - + drivers/mtd/maps/edb7312.c | 2 - + drivers/mtd/maps/fortunet.c | 1 - + drivers/mtd/maps/h720x-flash.c | 2 - + drivers/mtd/maps/ichxrom.c | 1 - + drivers/mtd/maps/impa7.c | 2 - + drivers/mtd/maps/integrator-flash.c | 2 - + drivers/mtd/maps/ipaq-flash.c | 2 - + drivers/mtd/maps/ixp2000.c | 2 - + drivers/mtd/maps/ixp4xx.c | 2 - + drivers/mtd/maps/l440gx.c | 2 - + drivers/mtd/maps/map_funcs.c | 2 - + drivers/mtd/maps/mbx860.c | 2 - + drivers/mtd/maps/mtx-1_flash.c | 2 - + drivers/mtd/maps/netsc520.c | 2 - + drivers/mtd/maps/nettel.c | 2 - + drivers/mtd/maps/octagon-5066.c | 1 - + drivers/mtd/maps/omap-toto-flash.c | 2 - + drivers/mtd/maps/pci.c | 2 - + drivers/mtd/maps/pcmciamtd.c | 5 +- + drivers/mtd/maps/physmap.c | 2 - + drivers/mtd/maps/plat-ram.c | 2 - + drivers/mtd/maps/redwood.c | 2 - + drivers/mtd/maps/rpxlite.c | 2 - + drivers/mtd/maps/sa1100-flash.c | 2 - + drivers/mtd/maps/sbc8240.c | 3 - + drivers/mtd/maps/sbc_gxx.c | 2 - + drivers/mtd/maps/sc520cdp.c | 2 - + drivers/mtd/maps/scb2_flash.c | 1 - + drivers/mtd/maps/scx200_docflash.c | 2 - + drivers/mtd/maps/sharpsl-flash.c | 2 - + drivers/mtd/maps/solutionengine.c | 2 - + drivers/mtd/maps/sun_uflash.c | 2 +- + drivers/mtd/maps/tqm8xxl.c | 2 - + drivers/mtd/maps/ts5500_flash.c | 2 - + drivers/mtd/maps/tsunami_flash.c | 1 - + drivers/mtd/maps/uclinux.c | 2 - + drivers/mtd/maps/vmax301.c | 1 - + drivers/mtd/maps/walnut.c | 2 - + drivers/mtd/maps/wr_sbc82xx_flash.c | 2 - + drivers/mtd/mtd_blkdevs.c | 34 ++---- + drivers/mtd/mtdblock.c | 2 - + drivers/mtd/mtdblock_ro.c | 2 - + drivers/mtd/mtdchar.c | 2 - + drivers/mtd/mtdconcat.c | 2 - + drivers/mtd/mtdcore.c | 14 +-- + drivers/mtd/mtdpart.c | 25 +--- + drivers/mtd/nand/Kconfig | 1 - + drivers/mtd/nand/Makefile | 1 - + drivers/mtd/nand/au1550nd.c | 2 - + drivers/mtd/nand/autcpu12.c | 2 - + drivers/mtd/nand/cafe_nand.c | 6 +- + drivers/mtd/nand/diskonchip.c | 2 - + drivers/mtd/nand/edb7312.c | 2 - + drivers/mtd/nand/excite_nandflash.c | 2 +- + drivers/mtd/nand/h1910.c | 2 - + drivers/mtd/nand/nand_bbt.c | 2 - + drivers/mtd/nand/nand_ecc.c | 2 - + drivers/mtd/nand/nand_ids.c | 2 - + drivers/mtd/nand/nandsim.c | 41 ++++--- + drivers/mtd/nand/ppchameleonevb.c | 2 - + drivers/mtd/nand/rtc_from4.c | 2 - + drivers/mtd/nand/s3c2410.c | 25 +--- + drivers/mtd/nand/sharpsl.c | 2 - + drivers/mtd/nand/spia.c | 2 - + drivers/mtd/nand/toto.c | 2 - + drivers/mtd/nand/ts7250.c | 2 - + drivers/mtd/nftlcore.c | 5 - + drivers/mtd/nftlmount.c | 4 - + drivers/mtd/onenand/onenand_base.c | 54 ++++----- + drivers/mtd/redboot.c | 2 - + drivers/mtd/rfd_ftl.c | 2 - + include/linux/jffs2.h | 3 - + include/linux/mtd/blktrans.h | 2 - + include/linux/mtd/cfi.h | 1 - + include/linux/mtd/cfi_endian.h | 5 - + include/linux/mtd/concat.h | 2 - + include/linux/mtd/doc2000.h | 2 - + include/linux/mtd/flashchip.h | 3 - + include/linux/mtd/ftl.h | 2 - + include/linux/mtd/gen_probe.h | 1 - + include/linux/mtd/inftl.h | 4 - + include/linux/mtd/map.h | 1 - + include/linux/mtd/mtd.h | 2 - + include/linux/mtd/nand.h | 2 - + include/linux/mtd/nand_ecc.h | 2 - + include/linux/mtd/nftl.h | 2 - + include/linux/mtd/partitions.h | 2 - + include/linux/mtd/physmap.h | 2 - + include/linux/mtd/plat-ram.h | 2 - + include/linux/mtd/pmc551.h | 4 +- + include/linux/mtd/xip.h | 2 - + include/mtd/inftl-user.h | 2 - + include/mtd/jffs2-user.h | 2 - + include/mtd/mtd-abi.h | 2 - + include/mtd/mtd-user.h | 2 - + include/mtd/nftl-user.h | 2 - + 143 files changed, 555 insertions(+), 408 deletions(-) + create mode 100644 drivers/mtd/maps/bfin-async-flash.c +Merging wireless/master +$ git merge wireless/master +Auto-merged drivers/net/Kconfig +Auto-merged drivers/net/ps3_gelic_wireless.c +CONFLICT (content): Merge conflict in drivers/net/ps3_gelic_wireless.c +Auto-merged drivers/net/ps3_gelic_wireless.h +Auto-merged drivers/net/wireless/b43/b43.h +Auto-merged drivers/net/wireless/b43/main.c +Auto-merged drivers/net/wireless/b43legacy/main.c +Auto-merged drivers/net/wireless/ipw2200.c +Auto-merged drivers/net/wireless/iwlwifi/iwl-4965-rs.c +Auto-merged drivers/net/wireless/libertas/defs.h +Auto-merged drivers/net/wireless/libertas/if_cs.c +Auto-merged drivers/net/wireless/libertas/if_usb.c +Auto-merged drivers/net/wireless/libertas/main.c +CONFLICT (content): Merge conflict in drivers/net/wireless/libertas/main.c +Auto-merged drivers/net/wireless/rndis_wlan.c +Auto-merged drivers/net/wireless/rt2x00/rt2x00.h +Auto-merged drivers/net/wireless/rt2x00/rt2x00dev.c +CONFLICT (content): Merge conflict in drivers/net/wireless/rt2x00/rt2x00dev.c +Auto-merged drivers/net/wireless/rt2x00/rt2x00mac.c +Auto-merged drivers/net/wireless/rt2x00/rt2x00pci.h +Auto-merged drivers/net/wireless/rt2x00/rt61pci.c +Auto-merged drivers/net/wireless/rt2x00/rt73usb.c +Auto-merged drivers/net/wireless/rtl8187_dev.c +Auto-merged drivers/net/wireless/zd1211rw/zd_mac.c +Auto-merged drivers/net/wireless/zd1211rw/zd_usb.c +Auto-merged include/net/mac80211.h +Auto-merged include/net/wireless.h +Auto-merged net/mac80211/cfg.c +Auto-merged net/mac80211/main.c +Auto-merged net/mac80211/mlme.c +Auto-merged net/mac80211/rx.c +Auto-merged net/mac80211/util.c +Resolved 'drivers/net/ps3_gelic_wireless.c' using previous resolution. +Resolved 'drivers/net/wireless/libertas/main.c' using previous resolution. +Resolved 'drivers/net/wireless/rt2x00/rt2x00dev.c' using previous resolution. +Automatic merge failed; fix conflicts and then commit the result. +$ git commit -v -a +$ git diff -M --stat --summary HEAD^.. + drivers/net/Kconfig | 13 + + drivers/net/ps3_gelic_wireless.c | 166 ++- + drivers/net/ps3_gelic_wireless.h | 3 - + drivers/net/wireless/adm8211.c | 35 +- + drivers/net/wireless/adm8211.h | 1 - + drivers/net/wireless/ath5k/base.c | 74 +- + drivers/net/wireless/ath5k/base.h | 1 - + drivers/net/wireless/b43/b43.h | 28 +- + drivers/net/wireless/b43/dma.c | 46 +- + drivers/net/wireless/b43/dma.h | 3 +- + drivers/net/wireless/b43/main.c | 225 +++- + drivers/net/wireless/b43/pio.c | 36 +- + drivers/net/wireless/b43/pio.h | 8 +- + drivers/net/wireless/b43/xmit.c | 65 +- + drivers/net/wireless/b43/xmit.h | 4 +- + drivers/net/wireless/b43legacy/dma.c | 35 +- + drivers/net/wireless/b43legacy/dma.h | 7 +- + drivers/net/wireless/b43legacy/main.c | 13 +- + drivers/net/wireless/b43legacy/pio.c | 19 +- + drivers/net/wireless/b43legacy/pio.h | 7 +- + drivers/net/wireless/b43legacy/xmit.c | 47 +- + drivers/net/wireless/b43legacy/xmit.h | 2 +- + drivers/net/wireless/ipw2200.c | 176 ++-- + drivers/net/wireless/ipw2200.h | 6 +- + drivers/net/wireless/iwlwifi/iwl-3945-rs.c | 16 +- + drivers/net/wireless/iwlwifi/iwl-3945.c | 25 +- + drivers/net/wireless/iwlwifi/iwl-3945.h | 5 +- + drivers/net/wireless/iwlwifi/iwl-4965-hw.h | 7 +- + drivers/net/wireless/iwlwifi/iwl-4965-rs.c | 169 ++-- + drivers/net/wireless/iwlwifi/iwl-4965-rs.h | 8 +- + drivers/net/wireless/iwlwifi/iwl-4965.c | 1019 ++++++---------- + drivers/net/wireless/iwlwifi/iwl-5000.c | 897 ++++++++++++++- + drivers/net/wireless/iwlwifi/iwl-calib.c | 27 + + drivers/net/wireless/iwlwifi/iwl-calib.h | 9 +- + drivers/net/wireless/iwlwifi/iwl-commands.h | 243 ++++- + drivers/net/wireless/iwlwifi/iwl-core.c | 327 +++++- + drivers/net/wireless/iwlwifi/iwl-core.h | 56 +- + drivers/net/wireless/iwlwifi/iwl-csr.h | 6 +- + drivers/net/wireless/iwlwifi/iwl-debug.h | 10 +- + drivers/net/wireless/iwlwifi/iwl-debugfs.c | 55 +- + drivers/net/wireless/iwlwifi/iwl-dev.h | 152 ++- + drivers/net/wireless/iwlwifi/iwl-eeprom.c | 28 +- + drivers/net/wireless/iwlwifi/iwl-eeprom.h | 1 + + drivers/net/wireless/iwlwifi/iwl-hcmd.c | 8 +- + drivers/net/wireless/iwlwifi/iwl-helpers.h | 21 + + drivers/net/wireless/iwlwifi/iwl-prph.h | 39 +- + drivers/net/wireless/iwlwifi/iwl-rx.c | 48 + + drivers/net/wireless/iwlwifi/iwl-sta.c | 501 ++++++++- + drivers/net/wireless/iwlwifi/iwl-sta.h | 7 + + drivers/net/wireless/iwlwifi/iwl-tx.c | 1058 +++++++++++++++++- + drivers/net/wireless/iwlwifi/iwl3945-base.c | 90 +- + drivers/net/wireless/iwlwifi/iwl4965-base.c | 1670 +++------------------------ + drivers/net/wireless/libertas/Makefile | 8 +- + drivers/net/wireless/libertas/assoc.c | 8 +- + drivers/net/wireless/libertas/cmd.c | 174 ++- + drivers/net/wireless/libertas/cmd.h | 5 + + drivers/net/wireless/libertas/cmdresp.c | 25 +- + drivers/net/wireless/libertas/decl.h | 4 + + drivers/net/wireless/libertas/defs.h | 14 +- + drivers/net/wireless/libertas/dev.h | 8 +- + drivers/net/wireless/libertas/host.h | 17 + + drivers/net/wireless/libertas/hostcmd.h | 4 +- + drivers/net/wireless/libertas/if_cs.c | 227 ++-- + drivers/net/wireless/libertas/if_usb.c | 22 + + drivers/net/wireless/libertas/main.c | 216 +++-- + drivers/net/wireless/libertas/persistcfg.c | 453 ++++++++ + drivers/net/wireless/libertas/rx.c | 4 +- + drivers/net/wireless/libertas/types.h | 30 + + drivers/net/wireless/libertas/wext.c | 32 +- + drivers/net/wireless/p54/p54common.c | 106 +- + drivers/net/wireless/p54/p54common.h | 1 - + drivers/net/wireless/p54/p54pci.c | 2 +- + drivers/net/wireless/rndis_wlan.c | 2 +- + drivers/net/wireless/rt2x00/rt2400pci.c | 132 ++- + drivers/net/wireless/rt2x00/rt2400pci.h | 5 + + drivers/net/wireless/rt2x00/rt2500pci.c | 120 ++- + drivers/net/wireless/rt2x00/rt2500pci.h | 5 + + drivers/net/wireless/rt2x00/rt2500usb.c | 85 +- + drivers/net/wireless/rt2x00/rt2500usb.h | 5 + + drivers/net/wireless/rt2x00/rt2x00.h | 52 +- + drivers/net/wireless/rt2x00/rt2x00debug.c | 4 +- + drivers/net/wireless/rt2x00/rt2x00dev.c | 226 +--- + drivers/net/wireless/rt2x00/rt2x00lib.h | 6 +- + drivers/net/wireless/rt2x00/rt2x00mac.c | 76 +- + drivers/net/wireless/rt2x00/rt2x00pci.c | 103 +- + drivers/net/wireless/rt2x00/rt2x00pci.h | 28 +- + drivers/net/wireless/rt2x00/rt2x00queue.c | 167 +++- + drivers/net/wireless/rt2x00/rt2x00queue.h | 73 +- + drivers/net/wireless/rt2x00/rt2x00reg.h | 11 - + drivers/net/wireless/rt2x00/rt2x00usb.c | 228 ++-- + drivers/net/wireless/rt2x00/rt2x00usb.h | 26 +- + drivers/net/wireless/rt2x00/rt61pci.c | 133 ++- + drivers/net/wireless/rt2x00/rt61pci.h | 5 + + drivers/net/wireless/rt2x00/rt73usb.c | 59 +- + drivers/net/wireless/rt2x00/rt73usb.h | 5 + + drivers/net/wireless/rtl8180_dev.c | 62 +- + drivers/net/wireless/rtl8187.h | 6 - + drivers/net/wireless/rtl8187_dev.c | 45 +- + drivers/net/wireless/zd1211rw/zd_mac.c | 161 +-- + drivers/net/wireless/zd1211rw/zd_mac.h | 16 - + drivers/net/wireless/zd1211rw/zd_usb.c | 29 +- + include/linux/ieee80211.h | 20 +- + include/linux/wireless.h | 2 + + include/net/mac80211.h | 350 +++--- + include/net/wireless.h | 6 + + net/mac80211/Kconfig | 14 +- + net/mac80211/Makefile | 2 +- + net/mac80211/cfg.c | 4 +- + net/mac80211/debugfs_key.c | 8 +- + net/mac80211/debugfs_netdev.c | 9 - + net/mac80211/debugfs_sta.c | 1 - + net/mac80211/ieee80211_i.h | 78 +- + net/mac80211/iface.c | 2 +- + net/mac80211/key.h | 17 +- + net/mac80211/main.c | 291 +++--- + net/mac80211/mesh.c | 38 +- + net/mac80211/mesh.h | 2 +- + net/mac80211/mesh_pathtbl.c | 53 +- + net/mac80211/michael.c | 106 +-- + net/mac80211/michael.h | 8 +- + net/mac80211/mlme.c | 88 ++- + net/mac80211/rate.c | 12 +- + net/mac80211/rate.h | 33 +- + net/mac80211/rc80211_pid.h | 4 +- + net/mac80211/rc80211_pid_algo.c | 22 +- + net/mac80211/rc80211_pid_debugfs.c | 8 +- + net/mac80211/rx.c | 72 +- + net/mac80211/sta_info.c | 8 +- + net/mac80211/sta_info.h | 6 +- + net/mac80211/tkip.c | 86 +- + net/mac80211/tkip.h | 4 - + net/mac80211/tx.c | 841 +++++++------- + net/mac80211/util.c | 59 +- + net/mac80211/wep.c | 19 +- + net/mac80211/wme.c | 28 +- + net/mac80211/wme.h | 2 +- + net/mac80211/wpa.c | 135 +-- + 137 files changed, 7675 insertions(+), 5520 deletions(-) + create mode 100644 drivers/net/wireless/libertas/persistcfg.c +Merging crypto/master +$ git merge crypto/master +Merge made by recursive. + crypto/Kconfig | 52 +++++ + crypto/Makefile | 5 + + crypto/ahash.c | 106 +++++++++ + crypto/api.c | 8 +- + crypto/cryptd.c | 252 +++++++++++++++++++++- + crypto/digest.c | 81 +++++++ + crypto/hash.c | 102 ++++++++- + crypto/internal.h | 1 + + crypto/ripemd.h | 43 ++++ + crypto/rmd128.c | 325 +++++++++++++++++++++++++++ + crypto/rmd160.c | 369 +++++++++++++++++++++++++++++++ + crypto/rmd256.c | 344 +++++++++++++++++++++++++++++ + crypto/rmd320.c | 393 +++++++++++++++++++++++++++++++++ + crypto/tcrypt.c | 172 ++++++++++++--- + crypto/tcrypt.h | 526 +++++++++++++++++++++++++++++++++++++++++++- + drivers/crypto/hifn_795x.c | 367 +++++++++++++++---------------- + include/crypto/algapi.h | 36 +++ + include/linux/crypto.h | 187 +++++++++++++++- + 18 files changed, 3121 insertions(+), 248 deletions(-) + create mode 100644 crypto/ahash.c + create mode 100644 crypto/ripemd.h + create mode 100644 crypto/rmd128.c + create mode 100644 crypto/rmd160.c + create mode 100644 crypto/rmd256.c + create mode 100644 crypto/rmd320.c +Merging vfs/vfs-2.6.25 +$ git merge vfs/vfs-2.6.25 +Auto-merged fs/exec.c +Auto-merged kernel/fork.c +Auto-merged kernel/sysctl.c +Merge made by recursive. +Merging sound/master +$ git merge sound/master +Auto-merged sound/core/init.c +Auto-merged sound/pci/maestro3.c +Auto-merged sound/pci/pcxhr/pcxhr_core.c +Merge made by recursive. + Documentation/sound/alsa/ALSA-Configuration.txt | 12 +- + .../sound/alsa/DocBook/writing-an-alsa-driver.tmpl | 4 +- + include/sound/core.h | 8 +- + include/sound/emu10k1.h | 1 + + include/sound/soc-dapm.h | 25 +- + include/sound/soc.h | 73 +- + include/sound/uda1341.h | 2 - + include/sound/version.h | 4 +- + sound/Kconfig | 34 +- + sound/aoa/Kconfig | 11 +- + sound/aoa/codecs/Kconfig | 4 - + sound/aoa/fabrics/Kconfig | 1 - + sound/aoa/soundbus/Kconfig | 1 - + sound/arm/Kconfig | 21 +- + sound/arm/sa11xx-uda1341.c | 2 - + sound/core/Kconfig | 29 +- + sound/core/init.c | 67 +- + sound/core/memalloc.c | 62 - + sound/drivers/Kconfig | 91 +- + sound/i2c/cs8427.c | 6 +- + sound/i2c/l3/uda1341.c | 2 - + sound/isa/Kconfig | 51 +- + sound/isa/sb/Makefile | 2 - + sound/mips/Kconfig | 14 +- + sound/oss/Kconfig | 49 +- + sound/oss/msnd.c | 2 - + sound/oss/msnd.h | 2 - + sound/oss/msnd_classic.h | 2 - + sound/oss/msnd_pinnacle.c | 5 - + sound/oss/msnd_pinnacle.h | 2 - + sound/parisc/Kconfig | 13 +- + sound/pci/Kconfig | 104 +-- + sound/pci/Makefile | 2 +- + sound/pci/ac97/Makefile | 12 +- + sound/pci/ac97/ac97_patch.c | 76 + + sound/pci/{ac97 => }/ak4531_codec.c | 32 +- + sound/pci/au88x0/au88x0_game.c | 2 - + sound/pci/azt3328.c | 1192 ++++++++++----- + sound/pci/azt3328.h | 197 ++- + sound/pci/emu10k1/emu10k1_main.c | 1 + + sound/pci/emu10k1/emumixer.c | 13 +- + sound/pci/emu10k1/memory.c | 66 +- + sound/pci/hda/hda_codec.c | 2 +- + sound/pci/hda/hda_hwdep.c | 2 +- + sound/pci/hda/hda_intel.c | 136 ++- + sound/pci/hda/patch_realtek.c | 530 ++++++- + sound/pci/ice1712/envy24ht.h | 10 +- + sound/pci/ice1712/ice1712.h | 2 + + sound/pci/ice1712/ice1724.c | 213 ++- + sound/pci/maestro3.c | 42 +- + sound/pci/oxygen/hifier.c | 33 +- + sound/pci/oxygen/oxygen.c | 76 +- + sound/pci/oxygen/oxygen.h | 14 + + sound/pci/oxygen/oxygen_io.c | 22 +- + sound/pci/oxygen/oxygen_lib.c | 106 ++- + sound/pci/oxygen/oxygen_pcm.c | 53 +- + sound/pci/oxygen/virtuoso.c | 252 ++-- + sound/pci/pcxhr/pcxhr.c | 4 +- + sound/pci/pcxhr/pcxhr_core.c | 18 +- + sound/pci/trident/trident_memory.c | 178 --- + sound/pcmcia/Kconfig | 15 +- + sound/ppc/Kconfig | 26 +- + sound/sh/Kconfig | 16 +- + sound/soc/Kconfig | 18 +- + sound/soc/Makefile | 3 +- + sound/soc/at32/Kconfig | 34 + + sound/soc/at32/Makefile | 11 + + sound/soc/at32/at32-pcm.c | 491 ++++++ + sound/soc/at32/at32-pcm.h | 79 + + sound/soc/at32/at32-ssc.c | 849 ++++++++++ + sound/soc/at32/at32-ssc.h | 59 + + sound/soc/at32/playpaq_wm8510.c | 524 +++++++ + sound/soc/at91/Kconfig | 2 +- + sound/soc/at91/eti_b1_wm8731.c | 17 +- + sound/soc/codecs/Kconfig | 19 +- + sound/soc/codecs/Makefile | 6 + + sound/soc/codecs/ac97.c | 3 - + sound/soc/codecs/tlv320aic3x.c | 319 ++-- + sound/soc/codecs/tlv320aic3x.h | 51 + + sound/soc/codecs/uda1380.c | 852 ++++++++++ + sound/soc/codecs/uda1380.h | 89 ++ + sound/soc/codecs/wm8510.c | 836 ++++++++++ + sound/soc/codecs/wm8510.h | 103 ++ + sound/soc/codecs/wm8731.c | 44 +- + sound/soc/codecs/wm8750.c | 52 +- + sound/soc/codecs/wm8753.c | 53 +- + sound/soc/codecs/wm8990.c | 1645 ++++++++++++++++++++ + sound/soc/codecs/wm8990.h | 832 ++++++++++ + sound/soc/codecs/wm9712.c | 46 +- + sound/soc/codecs/wm9713.c | 44 +- + sound/soc/davinci/Kconfig | 2 +- + sound/soc/davinci/davinci-evm.c | 14 +- + sound/soc/fsl/Kconfig | 2 +- + sound/soc/omap/n810.c | 35 +- + sound/soc/pxa/Kconfig | 11 +- + sound/soc/pxa/Makefile | 3 +- + sound/soc/pxa/corgi.c | 16 +- + sound/soc/pxa/em-x270.c | 102 ++ + sound/soc/pxa/poodle.c | 14 +- + sound/soc/pxa/pxa2xx-i2s.c | 3 - + sound/soc/pxa/spitz.c | 17 +- + sound/soc/pxa/tosa.c | 17 +- + sound/soc/s3c24xx/Kconfig | 4 +- + sound/soc/s3c24xx/neo1973_wm8753.c | 67 +- + sound/soc/s3c24xx/s3c2443-ac97.c | 3 - + sound/soc/s3c24xx/s3c24xx-i2s.c | 10 +- + sound/soc/s3c24xx/s3c24xx-pcm.c | 4 - + sound/soc/s3c24xx/smdk2443_wm9710.c | 3 - + sound/soc/sh/Kconfig | 5 +- + sound/soc/soc-core.c | 201 ++- + sound/soc/soc-dapm.c | 171 ++- + sound/sparc/Kconfig | 17 +- + sound/spi/Kconfig | 13 +- + sound/usb/Kconfig | 16 +- + sound/usb/caiaq/caiaq-audio.c | 1 + + sound/usb/caiaq/caiaq-device.c | 12 +- + sound/usb/caiaq/caiaq-device.h | 1 + + sound/usb/usbquirks.h | 33 + + 118 files changed, 9968 insertions(+), 1959 deletions(-) + rename sound/pci/{ac97 => }/ak4531_codec.c (96%) + create mode 100644 sound/soc/at32/Kconfig + create mode 100644 sound/soc/at32/Makefile + create mode 100644 sound/soc/at32/at32-pcm.c + create mode 100644 sound/soc/at32/at32-pcm.h + create mode 100644 sound/soc/at32/at32-ssc.c + create mode 100644 sound/soc/at32/at32-ssc.h + create mode 100644 sound/soc/at32/playpaq_wm8510.c + create mode 100644 sound/soc/codecs/uda1380.c + create mode 100644 sound/soc/codecs/uda1380.h + create mode 100644 sound/soc/codecs/wm8510.c + create mode 100644 sound/soc/codecs/wm8510.h + create mode 100644 sound/soc/codecs/wm8990.c + create mode 100644 sound/soc/codecs/wm8990.h + create mode 100644 sound/soc/pxa/em-x270.c +Merging arm/devel +$ git merge arm/devel +Auto-merged arch/arm/Kconfig +Removed arch/arm/common/rtctime.c +Auto-merged arch/arm/kernel/ecard.c +Removed arch/arm/mach-footbridge/co285.c +Removed arch/arm/mach-integrator/time.c +Auto-merged arch/arm/mach-pxa/em-x270.c +Auto-merged arch/arm/mach-pxa/spitz.c +Auto-merged arch/arm/mach-pxa/tosa.c +CONFLICT (content): Merge conflict in arch/arm/mach-pxa/tosa.c +Auto-merged drivers/i2c/busses/i2c-pxa.c +Auto-merged drivers/net/arm/etherh.c +Auto-merged drivers/rtc/rtc-at91sam9.c +Auto-merged drivers/rtc/rtc-omap.c +Auto-merged drivers/usb/gadget/pxa2xx_udc.c +Removed include/asm-arm/dyntick.h +Removed include/asm-arm/rtc.h +Auto-merged kernel/sysctl.c +Auto-merged sound/soc/pxa/pxa2xx-i2s.c +Resolved 'arch/arm/mach-pxa/tosa.c' using previous resolution. +Automatic merge failed; fix conflicts and then commit the result. +$ git commit -v -a +$ git diff -M --stat --summary HEAD^.. + arch/arm/Kconfig | 33 +- + arch/arm/Makefile | 2 - + arch/arm/common/Makefile | 1 - + arch/arm/common/rtctime.c | 434 ---------- + arch/arm/common/sharpsl_pm.c | 3 + + arch/arm/configs/at91cap9adk_defconfig | 82 ++- + arch/arm/configs/at91rm9200dk_defconfig | 1 - + arch/arm/configs/at91rm9200ek_defconfig | 1 - + arch/arm/configs/at91sam9260ek_defconfig | 1 - + arch/arm/configs/at91sam9261ek_defconfig | 1 - + arch/arm/configs/at91sam9263ek_defconfig | 1 - + arch/arm/configs/at91sam9rlek_defconfig | 1 - + arch/arm/configs/ateb9200_defconfig | 1 - + arch/arm/configs/collie_defconfig | 1 - + arch/arm/configs/corgi_defconfig | 1 - + arch/arm/configs/ecbat91_defconfig | 1 - + arch/arm/configs/ep93xx_defconfig | 1 - + arch/arm/configs/eseries_pxa_defconfig | 1 - + arch/arm/configs/iop13xx_defconfig | 1 - + arch/arm/configs/iop32x_defconfig | 1 - + arch/arm/configs/iop33x_defconfig | 1 - + arch/arm/configs/ixp2000_defconfig | 1 - + arch/arm/configs/ixp23xx_defconfig | 1 - + arch/arm/configs/ixp4xx_defconfig | 9 +- + arch/arm/configs/kafa_defconfig | 1 - + arch/arm/configs/kb9202_defconfig | 1 - + arch/arm/configs/ks8695_defconfig | 1 - + arch/arm/configs/lpd270_defconfig | 1 - + arch/arm/configs/lpd7a404_defconfig | 1 - + arch/arm/configs/netx_defconfig | 1 - + arch/arm/configs/onearm_defconfig | 1 - + arch/arm/configs/picotux200_defconfig | 1 - + arch/arm/configs/pnx4008_defconfig | 1 - + .../{em_x270_defconfig => qil-a9260_defconfig} | 729 ++++++++--------- + arch/arm/configs/realview-smp_defconfig | 1 - + arch/arm/configs/realview_defconfig | 1 - + arch/arm/configs/rpc_defconfig | 1 - + arch/arm/configs/s3c2410_defconfig | 1 - + arch/arm/configs/sam9_l9260_defconfig | 1 - + arch/arm/configs/spitz_defconfig | 1 - + arch/arm/configs/tct_hammer_defconfig | 1 - + arch/arm/configs/trizeps4_defconfig | 1 - + .../{em_x270_defconfig => usb-a9260_defconfig} | 699 +++++++---------- + .../{em_x270_defconfig => usb-a9263_defconfig} | 691 +++++++---------- + arch/arm/configs/versatile_defconfig | 1 - + .../{cm_x270_defconfig => xm_x270_defconfig} | 861 ++++++++++++++------ + arch/arm/kernel/ecard.c | 13 +- + arch/arm/kernel/ecard.h | 13 + + arch/arm/kernel/process.c | 4 +- + arch/arm/kernel/time.c | 120 --- + arch/arm/mach-at91/Kconfig | 27 + + arch/arm/mach-at91/Makefile | 4 + + arch/arm/mach-at91/at91cap9_devices.c | 99 +++ + arch/arm/mach-at91/at91sam9rl_devices.c | 95 +++ + arch/arm/mach-at91/board-cap9adk.c | 9 + + arch/arm/mach-at91/board-carmeva.c | 23 +- + arch/arm/mach-at91/board-csb637.c | 4 +- + arch/arm/mach-at91/board-dk.c | 25 +- + arch/arm/mach-at91/board-eb9200.c | 26 +- + arch/arm/mach-at91/board-ek.c | 25 +- + arch/arm/mach-at91/board-kb9202.c | 29 +- + arch/arm/mach-at91/board-qil-a9260.c | 255 ++++++ + arch/arm/mach-at91/board-sam9rlek.c | 10 + + arch/arm/mach-at91/board-usb-a9260.c | 215 +++++ + arch/arm/mach-at91/board-usb-a9263.c | 230 ++++++ + arch/arm/mach-at91/board-yl-9200.c | 853 +++++++++----------- + arch/arm/mach-at91/clock.c | 45 +- + arch/arm/mach-footbridge/Makefile | 2 - + arch/arm/mach-footbridge/co285.c | 39 - + arch/arm/mach-footbridge/common.c | 21 - + arch/arm/mach-footbridge/ebsa285-leds.c | 2 +- + arch/arm/mach-footbridge/time.c | 3 +- + arch/arm/mach-integrator/Makefile | 2 +- + arch/arm/mach-integrator/time.c | 223 ----- + arch/arm/mach-ixp4xx/Kconfig | 9 + + arch/arm/mach-ixp4xx/Makefile | 2 + + arch/arm/mach-ixp4xx/fsg-pci.c | 71 ++ + arch/arm/mach-ixp4xx/fsg-setup.c | 276 +++++++ + arch/arm/mach-omap1/pm.c | 7 - + arch/arm/mach-omap2/pm.c | 7 - + arch/arm/mach-pxa/Kconfig | 55 +- + arch/arm/mach-pxa/Makefile | 3 +- + arch/arm/mach-pxa/clock.c | 2 +- + arch/arm/mach-pxa/cm-x270-pci.c | 26 +- + arch/arm/mach-pxa/corgi.c | 1 + + arch/arm/mach-pxa/corgi_pm.c | 7 + + arch/arm/mach-pxa/devices.c | 69 ++ + arch/arm/mach-pxa/devices.h | 5 + + arch/arm/mach-pxa/em-x270.c | 1 + + arch/arm/mach-pxa/generic.c | 17 - + arch/arm/mach-pxa/lpd270.c | 47 +- + arch/arm/mach-pxa/magician.c | 110 ++- + arch/arm/mach-pxa/mainstone.c | 63 +- + arch/arm/mach-pxa/mfp-pxa2xx.c | 1 + + arch/arm/mach-pxa/poodle.c | 1 + + arch/arm/mach-pxa/pwm.c | 299 +++++++ + arch/arm/mach-pxa/pxa25x.c | 7 +- + arch/arm/mach-pxa/pxa27x.c | 10 +- + arch/arm/mach-pxa/pxa3xx.c | 6 +- + arch/arm/mach-pxa/reset.c | 96 +++ + arch/arm/mach-pxa/spitz.c | 7 +- + arch/arm/mach-pxa/spitz_pm.c | 7 + + arch/arm/mach-pxa/standby.S | 83 +- + arch/arm/mach-pxa/tosa.c | 45 +- + arch/arm/mach-pxa/trizeps4.c | 2 + + arch/arm/mach-pxa/zylonite.c | 26 +- + arch/arm/mach-pxa/zylonite_pxa300.c | 4 +- + arch/arm/mach-pxa/zylonite_pxa320.c | 2 +- + arch/sh/configs/landisk_defconfig | 1 - + arch/sh/configs/lboxre2_defconfig | 1 - + arch/sh/configs/se7705_defconfig | 1 - + arch/sh/configs/se7712_defconfig | 1 - + arch/sh/configs/se7750_defconfig | 1 - + drivers/i2c/busses/i2c-pxa.c | 29 - + drivers/input/keyboard/tosakbd.c | 2 - + drivers/net/arm/etherh.c | 2 +- + drivers/pcmcia/pxa2xx_cm_x270.c | 15 +- + drivers/pcmcia/pxa2xx_mainstone.c | 13 +- + drivers/pcmcia/pxa2xx_sharpsl.c | 12 +- + drivers/rtc/Kconfig | 19 +- + drivers/rtc/Makefile | 1 + + drivers/rtc/rtc-at91rm9200.c | 4 - + drivers/rtc/rtc-at91sam9.c | 1 - + drivers/rtc/rtc-omap.c | 1 - + drivers/rtc/rtc-pl030.c | 217 +++++ + drivers/rtc/rtc-pl031.c | 36 +- + drivers/rtc/rtc-s3c.c | 4 - + drivers/rtc/rtc-sa1100.c | 37 +- + drivers/scsi/arm/Kconfig | 2 +- + drivers/scsi/arm/acornscsi-io.S | 15 +- + drivers/scsi/arm/acornscsi.c | 426 +++++------ + drivers/scsi/arm/acornscsi.h | 9 +- + drivers/usb/gadget/Kconfig | 4 +- + drivers/usb/gadget/pxa2xx_udc.c | 10 +- + drivers/video/backlight/Kconfig | 7 + + drivers/video/backlight/Makefile | 1 + + drivers/video/backlight/pwm_bl.c | 185 +++++ + include/asm-arm/arch-at91/at91_pmc.h | 7 +- + include/asm-arm/arch-at91/at91cap9.h | 2 +- + include/asm-arm/arch-at91/at91cap9_matrix.h | 5 + + include/asm-arm/arch-at91/at91sam9rl.h | 2 +- + include/asm-arm/arch-at91/board.h | 4 + + include/asm-arm/arch-at91/timex.h | 17 +- + include/asm-arm/arch-ebsa285/hardware.h | 26 - + include/asm-arm/arch-ebsa285/memory.h | 19 - + include/asm-arm/arch-ebsa285/vmalloc.h | 4 - + include/asm-arm/arch-ixp4xx/fsg.h | 50 ++ + include/asm-arm/arch-ixp4xx/hardware.h | 1 + + include/asm-arm/arch-ixp4xx/irqs.h | 7 + + include/asm-arm/arch-pxa/hardware.h | 12 +- + include/asm-arm/arch-pxa/pxa-regs.h | 570 +------------- + include/asm-arm/arch-pxa/pxa25x-udc.h | 163 ++++ + include/asm-arm/arch-pxa/pxa27x-udc.h | 256 ++++++ + include/asm-arm/arch-pxa/pxa2xx-regs.h | 162 ++++ + include/asm-arm/arch-pxa/system.h | 18 +- + include/asm-arm/arch-pxa/zylonite.h | 1 - + include/asm-arm/arch-rpc/io.h | 5 +- + include/asm-arm/dyntick.h | 6 - + include/asm-arm/ecard.h | 35 - + include/asm-arm/hw_irq.h | 11 - + include/asm-arm/mach/time.h | 22 - + include/asm-arm/rtc.h | 43 - + include/linux/pwm.h | 31 + + include/linux/pwm_backlight.h | 17 + + kernel/hrtimer.c | 2 +- + kernel/sysctl.c | 12 - + kernel/timer.c | 10 +- + sound/soc/pxa/pxa2xx-i2s.c | 12 +- + 168 files changed, 5651 insertions(+), 4307 deletions(-) + delete mode 100644 arch/arm/common/rtctime.c + copy arch/arm/configs/{em_x270_defconfig => qil-a9260_defconfig} (66%) + copy arch/arm/configs/{em_x270_defconfig => usb-a9260_defconfig} (70%) + rename arch/arm/configs/{em_x270_defconfig => usb-a9263_defconfig} (70%) + rename arch/arm/configs/{cm_x270_defconfig => xm_x270_defconfig} (65%) + create mode 100644 arch/arm/mach-at91/board-qil-a9260.c + create mode 100644 arch/arm/mach-at91/board-usb-a9260.c + create mode 100644 arch/arm/mach-at91/board-usb-a9263.c + delete mode 100644 arch/arm/mach-footbridge/co285.c + delete mode 100644 arch/arm/mach-integrator/time.c + create mode 100644 arch/arm/mach-ixp4xx/fsg-pci.c + create mode 100644 arch/arm/mach-ixp4xx/fsg-setup.c + create mode 100644 arch/arm/mach-pxa/pwm.c + create mode 100644 arch/arm/mach-pxa/reset.c + create mode 100644 drivers/rtc/rtc-pl030.c + create mode 100644 drivers/video/backlight/pwm_bl.c + create mode 100644 include/asm-arm/arch-ixp4xx/fsg.h + create mode 100644 include/asm-arm/arch-pxa/pxa25x-udc.h + create mode 100644 include/asm-arm/arch-pxa/pxa27x-udc.h + delete mode 100644 include/asm-arm/dyntick.h + delete mode 100644 include/asm-arm/rtc.h + create mode 100644 include/linux/pwm.h + create mode 100644 include/linux/pwm_backlight.h +Merging cpufreq/next +$ git merge cpufreq/next +Auto-merged drivers/cpufreq/cpufreq.c +Auto-merged drivers/cpufreq/freq_table.c +Merge made by recursive. + arch/x86/kernel/cpu/cpufreq/powernow-k7.h | 1 - + drivers/cpufreq/cpufreq.c | 45 +++++++++++++++------------- + drivers/cpufreq/cpufreq_stats.c | 24 ++++++++-------- + drivers/cpufreq/freq_table.c | 12 ++++---- + include/linux/cpufreq.h | 3 -- + 5 files changed, 42 insertions(+), 43 deletions(-) +Merging v9fs/for-next +$ git merge v9fs/for-next +Already up-to-date. +Merging quilt/rr +$ git merge quilt/rr +Auto-merged drivers/char/snsc.c +Auto-merged drivers/char/viotape.c +Auto-merged drivers/infiniband/core/user_mad.c +Auto-merged drivers/lguest/lguest_device.c +Auto-merged drivers/net/3c527.c +Auto-merged drivers/net/wireless/airo.c +Auto-merged drivers/usb/core/usb.c +Auto-merged drivers/virtio/virtio.c +Auto-merged drivers/virtio/virtio_pci.c +Auto-merged fs/xfs/linux-2.6/xfs_buf.c +Auto-merged include/linux/usb.h +Auto-merged kernel/cpu.c +Auto-merged kernel/printk.c +Auto-merged kernel/semaphore.c +Merge made by recursive. + Documentation/DocBook/kernel-locking.tmpl | 57 +++---- + Documentation/lguest/lguest.c | 113 +++++++++++- + arch/ia64/kernel/salinfo.c | 4 +- + drivers/block/virtio_blk.c | 10 +- + drivers/char/snsc.c | 4 +- + drivers/char/viotape.c | 4 +- + drivers/infiniband/core/user_mad.c | 2 +- + drivers/input/serio/hil_mlc.c | 4 +- + drivers/input/serio/hp_sdc_mlc.c | 14 +- + drivers/lguest/lguest_device.c | 3 +- + drivers/md/dm-raid1.c | 2 +- + drivers/net/3c527.c | 2 +- + drivers/net/irda/sir_dev.c | 2 +- + drivers/net/virtio_net.c | 141 ++++++++++++++- + drivers/net/wireless/airo.c | 12 +- + drivers/scsi/aacraid/commsup.c | 2 +- + drivers/usb/core/usb.c | 2 +- + drivers/usb/gadget/inode.c | 2 +- + drivers/virtio/virtio.c | 5 + + drivers/virtio/virtio_pci.c | 6 +- + drivers/virtio/virtio_ring.c | 28 ++- + fs/ocfs2/inode.c | 4 - + fs/reiserfs/journal.c | 2 +- + fs/xfs/linux-2.6/sema.h | 8 +- + fs/xfs/linux-2.6/xfs_buf.c | 4 +- + include/linux/compiler-gcc.h | 19 ++ + include/linux/compiler-intel.h | 2 + + include/linux/kernel.h | 35 ++++ + include/linux/kthread.h | 29 +++- + include/linux/mutex.h | 4 - + include/linux/semaphore.h | 8 +- + include/linux/stop_machine.h | 27 ++-- + include/linux/timer.h | 32 +++- + include/linux/usb.h | 2 +- + include/linux/virtio_blk.h | 3 + + include/linux/virtio_config.h | 7 + + include/linux/virtio_net.h | 2 +- + include/linux/virtio_ring.h | 15 ++- + kernel/cpu.c | 13 +- + kernel/kthread.c | 29 +--- + kernel/mutex.c | 4 +- + kernel/printk.c | 4 +- + kernel/semaphore.c | 17 +- + kernel/stop_machine.c | 278 +++++++++++++---------------- + 44 files changed, 630 insertions(+), 337 deletions(-) +Merging cifs/master +$ git merge cifs/master +Auto-merged fs/cifs/cifssmb.c +Merge made by recursive. + fs/cifs/cifsglob.h | 3 +- + fs/cifs/cifspdu.h | 23 ++++++-- + fs/cifs/cifssmb.c | 6 +-- + fs/cifs/connect.c | 4 ++ + fs/cifs/dir.c | 4 +- + fs/cifs/file.c | 7 --- + fs/cifs/inode.c | 148 ++++++++++++++++++++++++++++++--------------------- + fs/cifs/misc.c | 3 +- + fs/cifs/readdir.c | 77 ++++++++++++++------------- + 9 files changed, 156 insertions(+), 119 deletions(-) +Merging mmc/next +$ git merge mmc/next +Auto-merged drivers/mmc/core/bus.c +Auto-merged drivers/mmc/host/mmc_spi.c +CONFLICT (content): Merge conflict in drivers/mmc/host/mmc_spi.c +Auto-merged include/linux/mmc/card.h +Auto-merged include/linux/mmc/host.h +Auto-merged include/linux/pci_ids.h +Recorded preimage for 'drivers/mmc/host/mmc_spi.c' +Automatic merge failed; fix conflicts and then commit the result. +$ git commit -v -a +$ git diff -M --stat --summary HEAD^.. + drivers/mmc/card/mmc_test.c | 10 +- + drivers/mmc/core/Kconfig | 12 + + drivers/mmc/core/Makefile | 1 + + drivers/mmc/core/bus.c | 12 + + drivers/mmc/core/core.c | 20 +- + drivers/mmc/core/lock.c | 193 ++++++++++++ + drivers/mmc/core/lock.h | 41 +++ + drivers/mmc/core/mmc.c | 16 +- + drivers/mmc/core/mmc_ops.c | 117 +++++++ + drivers/mmc/core/mmc_ops.h | 3 + + drivers/mmc/core/sd.c | 20 +- + drivers/mmc/host/Kconfig | 18 +- + drivers/mmc/host/Makefile | 1 + + drivers/mmc/host/at91_mci.c | 2 +- + drivers/mmc/host/imxmmc.c | 9 +- + drivers/mmc/host/mmc_spi.c | 28 ++- + drivers/mmc/host/pxamci.c | 9 +- + drivers/mmc/host/sdhci-pci.c | 699 ++++++++++++++++++++++++++++++++++++++++++ + drivers/mmc/host/sdhci.c | 541 ++++++++------------------------ + drivers/mmc/host/sdhci.h | 79 ++++-- + include/linux/mmc/card.h | 3 + + include/linux/mmc/host.h | 11 + + include/linux/mmc/mmc.h | 9 +- + include/linux/pci_ids.h | 1 + + include/linux/spi/mmc_spi.h | 9 + + 25 files changed, 1406 insertions(+), 458 deletions(-) + create mode 100644 drivers/mmc/core/lock.c + create mode 100644 drivers/mmc/core/lock.h + create mode 100644 drivers/mmc/host/sdhci-pci.c +Merging gfs2/master +$ git merge gfs2/master +Removed fs/gfs2/locking/nolock/Makefile +Removed fs/gfs2/locking/nolock/main.c +Merge made by recursive. + fs/gfs2/Kconfig | 18 +- + fs/gfs2/Makefile | 1 - + fs/gfs2/glock.c | 1624 ++++++++++++++++----------------------- + fs/gfs2/glock.h | 9 +- + fs/gfs2/glops.c | 70 ++- + fs/gfs2/incore.h | 35 +- + fs/gfs2/locking.c | 52 ++- + fs/gfs2/locking/dlm/lock.c | 356 +++++++-- + fs/gfs2/locking/dlm/lock_dlm.h | 12 +- + fs/gfs2/locking/dlm/mount.c | 4 - + fs/gfs2/locking/dlm/thread.c | 324 +-------- + fs/gfs2/locking/nolock/Makefile | 3 - + fs/gfs2/locking/nolock/main.c | 238 ------ + fs/gfs2/log.c | 2 + + fs/gfs2/log.h | 2 + + fs/gfs2/main.c | 2 - + fs/gfs2/meta_io.c | 14 +- + fs/gfs2/meta_io.h | 1 + + fs/gfs2/ops_address.c | 40 +- + fs/gfs2/ops_file.c | 8 +- + fs/gfs2/ops_fstype.c | 5 +- + fs/gfs2/recovery.c | 5 +- + fs/gfs2/super.c | 3 +- + 23 files changed, 1123 insertions(+), 1705 deletions(-) + delete mode 100644 fs/gfs2/locking/nolock/Makefile + delete mode 100644 fs/gfs2/locking/nolock/main.c +Merging rcu/core/rcu +$ git merge rcu/core/rcu +Already up-to-date. +Merging locking/core/locking +$ git merge locking/core/locking +Merge made by recursive. + kernel/mutex-debug.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) +Merging safe-poison-pointers/safe-poison-pointers +$ git merge safe-poison-pointers/safe-poison-pointers +Auto-merged arch/x86/Kconfig +Merge made by recursive. + arch/x86/Kconfig | 5 +++++ + include/linux/poison.h | 10 ++++++++-- + 2 files changed, 13 insertions(+), 2 deletions(-) +Merging stackprotector/stackprotector +$ git merge stackprotector/stackprotector +Auto-merged arch/x86/Kconfig +Auto-merged arch/x86/Kconfig.debug +Auto-merged arch/x86/Makefile +Auto-merged arch/x86/kernel/Makefile +Auto-merged arch/x86/kernel/process_64.c +Auto-merged arch/x86/mm/fault.c +Auto-merged include/asm-x86/pda.h +Auto-merged include/asm-x86/system.h +Auto-merged include/linux/sched.h +Auto-merged init/main.c +Auto-merged kernel/fork.c +Auto-merged kernel/sched.c +Merge made by recursive. + arch/x86/Kconfig | 23 +++++------ + arch/x86/Kconfig.debug | 1 + + arch/x86/Makefile | 2 +- + arch/x86/kernel/Makefile | 1 + + arch/x86/kernel/process_64.c | 13 ++++++- + arch/x86/mm/fault.c | 7 +++ + include/asm-x86/pda.h | 2 - + include/asm-x86/stackprotector.h | 38 +++++++++++++++++++ + include/asm-x86/system.h | 6 ++- + include/linux/magic.h | 1 + + include/linux/sched.h | 16 +++++++- + include/linux/stackprotector.h | 16 ++++++++ + init/main.c | 7 +++ + kernel/exit.c | 5 +-- + kernel/fork.c | 5 ++ + kernel/panic.c | 77 +++++++++++++++++++++++++++++++++++++- + kernel/sched.c | 7 +--- + 17 files changed, 196 insertions(+), 31 deletions(-) + create mode 100644 include/asm-x86/stackprotector.h + create mode 100644 include/linux/stackprotector.h +Merging input/next +$ git merge input/next +Auto-merged MAINTAINERS +Auto-merged drivers/hwmon/hdaps.c +Auto-merged drivers/input/gameport/gameport.c +Auto-merged drivers/input/gameport/ns558.c +Auto-merged drivers/input/keyboard/atkbd.c +Auto-merged drivers/input/keyboard/pxa27x_keypad.c +Auto-merged drivers/input/serio/i8042-x86ia64io.h +Auto-merged drivers/input/serio/q40kbd.c +Auto-merged drivers/input/serio/serio.c +Auto-merged include/linux/input.h +Merge made by recursive. + Documentation/input/gameport-programming.txt | 2 - + Documentation/input/input.txt | 1 - + Documentation/input/joystick-api.txt | 2 - + Documentation/input/joystick-parport.txt | 1 - + Documentation/input/joystick.txt | 1 - + MAINTAINERS | 6 + + drivers/char/keyboard.c | 2 + + drivers/hwmon/hdaps.c | 2 + + drivers/input/evbug.c | 2 - + drivers/input/ff-memless.c | 4 +- + drivers/input/gameport/emu10k1-gp.c | 2 - + drivers/input/gameport/gameport.c | 22 -- + drivers/input/gameport/lightning.c | 2 - + drivers/input/gameport/ns558.c | 2 - + drivers/input/joystick/a3d.c | 2 - + drivers/input/joystick/amijoy.c | 2 - + drivers/input/joystick/cobra.c | 2 - + drivers/input/joystick/db9.c | 2 - + drivers/input/joystick/gf2k.c | 2 - + drivers/input/joystick/grip.c | 2 - + drivers/input/joystick/grip_mp.c | 2 - + drivers/input/joystick/guillemot.c | 2 - + drivers/input/joystick/iforce/iforce-ff.c | 2 - + drivers/input/joystick/iforce/iforce-main.c | 2 - + drivers/input/joystick/iforce/iforce-packets.c | 2 - + drivers/input/joystick/iforce/iforce-serio.c | 2 - + drivers/input/joystick/iforce/iforce-usb.c | 8 +- + drivers/input/joystick/iforce/iforce.h | 2 - + drivers/input/joystick/interact.c | 2 - + drivers/input/joystick/joydump.c | 2 - + drivers/input/joystick/magellan.c | 2 - + drivers/input/joystick/spaceball.c | 2 - + drivers/input/joystick/spaceorb.c | 2 - + drivers/input/joystick/stinger.c | 2 - + drivers/input/joystick/tmdc.c | 2 - + drivers/input/joystick/turbografx.c | 2 - + drivers/input/joystick/twidjoy.c | 4 - + drivers/input/joystick/warrior.c | 2 - + drivers/input/joystick/xpad.c | 12 +- + drivers/input/keyboard/amikbd.c | 2 - + drivers/input/keyboard/atkbd.c | 20 +- + drivers/input/keyboard/gpio_keys.c | 89 ++++++-- + drivers/input/keyboard/lkkbd.c | 6 +- + drivers/input/keyboard/pxa27x_keypad.c | 15 ++- + drivers/input/keyboard/sunkbd.c | 2 - + drivers/input/keyboard/xtkbd.c | 2 - + drivers/input/misc/ati_remote.c | 18 +- + drivers/input/misc/ati_remote2.c | 18 +- + drivers/input/misc/keyspan_remote.c | 20 +- + drivers/input/misc/powermate.c | 6 +- + drivers/input/misc/yealink.c | 12 +- + drivers/input/mouse/appletouch.c | 299 +++++++++++------------- + drivers/input/mouse/hil_ptr.c | 37 ++- + drivers/input/mouse/inport.c | 2 - + drivers/input/mouse/logibm.c | 2 - + drivers/input/mouse/pc110pad.c | 2 - + drivers/input/mouse/sermouse.c | 2 - + drivers/input/serio/ct82c710.c | 2 - + drivers/input/serio/i8042-x86ia64io.h | 29 ++- + drivers/input/serio/libps2.c | 52 ---- + drivers/input/serio/q40kbd.c | 2 - + drivers/input/serio/rpckbd.c | 2 - + drivers/input/serio/serio.c | 9 +- + drivers/input/tablet/acecad.c | 4 +- + drivers/input/tablet/aiptek.c | 6 +- + drivers/input/tablet/kbtab.c | 6 +- + drivers/input/tablet/wacom.h | 2 +- + drivers/input/tablet/wacom_sys.c | 6 +- + drivers/input/tablet/wacom_wac.c | 39 ++-- + drivers/input/touchscreen/Kconfig | 23 ++ + drivers/input/touchscreen/Makefile | 2 + + drivers/input/touchscreen/gunze.c | 2 - + drivers/input/touchscreen/h3600_ts_input.c | 2 - + drivers/input/touchscreen/htcpen.c | 255 ++++++++++++++++++++ + drivers/input/touchscreen/migor_ts.c | 250 ++++++++++++++++++++ + drivers/input/touchscreen/usbtouchscreen.c | 22 +- + drivers/macintosh/adbhid.c | 61 ++++- + include/linux/gameport.h | 1 - + include/linux/gpio_keys.h | 1 + + include/linux/input.h | 7 +- + include/linux/joystick.h | 2 - + include/linux/libps2.h | 1 - + 82 files changed, 968 insertions(+), 493 deletions(-) + create mode 100644 drivers/input/touchscreen/htcpen.c + create mode 100644 drivers/input/touchscreen/migor_ts.c +Merging semaphore/semaphore +$ git merge semaphore/semaphore +Auto-merged include/linux/semaphore.h +Merge made by recursive. + drivers/input/keyboard/hil_kbd.c | 1 + + drivers/input/misc/hp_sdc_rtc.c | 1 + + drivers/input/serio/hp_sdc.c | 1 + + include/asm-alpha/semaphore.h | 1 + + include/asm-arm/semaphore.h | 1 + + include/asm-avr32/semaphore.h | 1 + + include/asm-blackfin/semaphore.h | 1 + + include/asm-cris/semaphore.h | 1 + + include/asm-frv/semaphore.h | 1 + + include/asm-h8300/semaphore.h | 1 + + include/asm-ia64/semaphore.h | 1 + + include/asm-m32r/semaphore.h | 1 + + include/asm-m68k/semaphore.h | 1 + + include/asm-m68knommu/semaphore.h | 1 + + include/asm-mips/semaphore.h | 1 + + include/asm-mn10300/semaphore.h | 1 + + include/asm-parisc/semaphore.h | 1 + + include/asm-powerpc/semaphore.h | 1 + + include/asm-s390/semaphore.h | 1 + + include/asm-sh/semaphore.h | 1 + + include/asm-sparc/semaphore.h | 1 + + include/asm-sparc64/semaphore.h | 1 + + include/asm-um/semaphore.h | 1 + + include/asm-v850/semaphore.h | 1 + + include/asm-x86/semaphore.h | 1 + + include/asm-xtensa/semaphore.h | 1 + + include/linux/semaphore.h | 6 ++---- + 27 files changed, 28 insertions(+), 4 deletions(-) +Merging semaphore-removal/semaphore-removal +$ git merge semaphore-removal/semaphore-removal +Auto-merged drivers/net/bonding/bond_main.c +Auto-merged drivers/net/bonding/bond_sysfs.c +Auto-merged drivers/net/ps3_gelic_net.c +Auto-merged drivers/net/ps3_gelic_wireless.c +CONFLICT (content): Merge conflict in drivers/net/ps3_gelic_wireless.c +Auto-merged drivers/net/ps3_gelic_wireless.h +Auto-merged drivers/scsi/qla2xxx/qla_attr.c +CONFLICT (content): Merge conflict in drivers/scsi/qla2xxx/qla_attr.c +Auto-merged drivers/scsi/qla2xxx/qla_def.h +CONFLICT (content): Merge conflict in drivers/scsi/qla2xxx/qla_def.h +Auto-merged drivers/scsi/qla2xxx/qla_mbx.c +CONFLICT (content): Merge conflict in drivers/scsi/qla2xxx/qla_mbx.c +Auto-merged drivers/scsi/qla2xxx/qla_mid.c +CONFLICT (content): Merge conflict in drivers/scsi/qla2xxx/qla_mid.c +Auto-merged drivers/scsi/qla2xxx/qla_os.c +CONFLICT (content): Merge conflict in drivers/scsi/qla2xxx/qla_os.c +Auto-merged sound/soc/s3c24xx/s3c2443-ac97.c +Resolved 'drivers/net/ps3_gelic_wireless.c' using previous resolution. +Resolved 'drivers/scsi/qla2xxx/qla_attr.c' using previous resolution. +Resolved 'drivers/scsi/qla2xxx/qla_def.h' using previous resolution. +Resolved 'drivers/scsi/qla2xxx/qla_mbx.c' using previous resolution. +Resolved 'drivers/scsi/qla2xxx/qla_mid.c' using previous resolution. +Resolved 'drivers/scsi/qla2xxx/qla_os.c' using previous resolution. +Automatic merge failed; fix conflicts and then commit the result. +$ git commit -v -a +$ git diff -M --stat --summary HEAD^.. + arch/arm/mach-lh7a40x/clocks.c | 15 ++++++++------- + drivers/net/bonding/bond_main.c | 21 +++++++++++---------- + drivers/net/bonding/bond_sysfs.c | 15 ++++++++------- + drivers/net/ppp_async.c | 8 ++++---- + drivers/net/ps3_gelic_net.c | 1 + + drivers/net/ps3_gelic_wireless.c | 1 + + drivers/pci/hotplug/ibmphp_hpc.c | 30 ++++++++++++++---------------- + drivers/scsi/qla2xxx/qla_def.h | 1 - + drivers/scsi/qla2xxx/qla_os.c | 4 +++- + include/net/bluetooth/hci_core.h | 7 ++++--- + net/9p/trans_virtio.c | 21 +++++++++++---------- + net/bluetooth/hci_core.c | 2 +- + sound/soc/s3c24xx/s3c2443-ac97.c | 11 ++++++----- + 13 files changed, 72 insertions(+), 65 deletions(-) +Merging quilt/ldp.next +$ git merge quilt/ldp.next +Auto-merged drivers/hid/usbhid/hid-quirks.c +Auto-merged drivers/net/Makefile +Merge made by recursive. + drivers/hid/usbhid/hid-quirks.c | 2 + + drivers/input/misc/Kconfig | 12 + + drivers/input/misc/Makefile | 1 + + drivers/input/misc/appleir.c | 361 +++++ + drivers/media/video/Kconfig | 9 + + drivers/media/video/Makefile | 1 + + drivers/media/video/s2255drv.c | 2486 ++++++++++++++++++++++++++++++++++ + drivers/net/Makefile | 1 + + drivers/net/usb/Kconfig | 10 + + drivers/net/usb/Makefile | 1 + + drivers/net/usb/hso.c | 2836 +++++++++++++++++++++++++++++++++++++++ + 11 files changed, 5720 insertions(+), 0 deletions(-) + create mode 100644 drivers/input/misc/appleir.c + create mode 100644 drivers/media/video/s2255drv.c + create mode 100644 drivers/net/usb/hso.c +Applying ldp: fix fallout from v4l struct element renaming +Merging bkl-removal/bkl-removal +$ git merge bkl-removal/bkl-removal +Auto-merged arch/mips/kernel/rtlx.c +Auto-merged arch/mips/sibyte/common/sb_tbprof.c +Auto-merged arch/x86/kernel/apm_32.c +Auto-merged arch/x86/kernel/cpu/mcheck/mce_64.c +Auto-merged arch/x86/kernel/cpuid.c +Auto-merged arch/x86/kernel/microcode.c +Auto-merged arch/x86/kernel/msr.c +Auto-merged block/bsg.c +Auto-merged drivers/block/aoe/aoechr.c +Auto-merged drivers/block/paride/pg.c +Auto-merged drivers/block/paride/pt.c +Auto-merged drivers/char/drm/drm_fops.c +Auto-merged drivers/char/dsp56k.c +Auto-merged drivers/char/ip2/ip2main.c +Auto-merged drivers/char/ipmi/ipmi_devintf.c +Auto-merged drivers/char/lp.c +Auto-merged drivers/char/mem.c +Auto-merged drivers/char/misc.c +Auto-merged drivers/char/nvram.c +Auto-merged drivers/char/pcmcia/cm4000_cs.c +Auto-merged drivers/char/pcmcia/cm4040_cs.c +Auto-merged drivers/char/ppdev.c +Auto-merged drivers/char/raw.c +Auto-merged drivers/char/snsc.c +Auto-merged drivers/char/tty_io.c +Auto-merged drivers/char/vc_screen.c +Auto-merged drivers/char/viotape.c +Auto-merged drivers/char/xilinx_hwicap/xilinx_hwicap.c +Auto-merged drivers/firewire/fw-cdev.c +Auto-merged drivers/hid/hidraw.c +Auto-merged drivers/i2c/i2c-dev.c +Auto-merged drivers/ide/ide-tape.c +Auto-merged drivers/ieee1394/dv1394.c +Auto-merged drivers/ieee1394/raw1394.c +Auto-merged drivers/ieee1394/video1394.c +Auto-merged drivers/infiniband/core/ucm.c +Auto-merged drivers/infiniband/core/user_mad.c +Auto-merged drivers/infiniband/core/uverbs_main.c +Auto-merged drivers/infiniband/hw/ipath/ipath_file_ops.c +Auto-merged drivers/input/input.c +Auto-merged drivers/input/misc/hp_sdc_rtc.c +Auto-merged drivers/input/mousedev.c +Auto-merged drivers/isdn/capi/capi.c +Auto-merged drivers/macintosh/adb.c +Auto-merged drivers/media/dvb/dvb-core/dvbdev.c +Auto-merged drivers/media/video/videodev.c +Auto-merged drivers/misc/phantom.c +Auto-merged drivers/mtd/mtdchar.c +Auto-merged drivers/mtd/ubi/cdev.c +Auto-merged drivers/net/ppp_generic.c +Auto-merged drivers/net/wan/cosa.c +Auto-merged drivers/s390/block/dasd_eer.c +Auto-merged drivers/s390/char/fs3270.c +Auto-merged drivers/s390/char/vmlogrdr.c +Auto-merged drivers/s390/char/vmur.c +Auto-merged drivers/sbus/char/bpp.c +Auto-merged drivers/scsi/3w-9xxx.c +Auto-merged drivers/scsi/aacraid/linit.c +Auto-merged drivers/scsi/ch.c +Auto-merged drivers/scsi/dpt_i2o.c +Auto-merged drivers/scsi/osst.c +Auto-merged drivers/scsi/sg.c +Auto-merged drivers/scsi/st.c +Auto-merged drivers/spi/spidev.c +Auto-merged drivers/uio/uio.c +Auto-merged drivers/usb/core/devio.c +Auto-merged drivers/usb/core/file.c +Auto-merged drivers/usb/gadget/printer.c +Auto-merged drivers/usb/mon/mon_bin.c +Auto-merged drivers/video/fbmem.c +Auto-merged fs/dlm/user.c +Auto-merged fs/ocfs2/stack_user.c +Auto-merged net/irda/irnet/irnet_ppp.c +Auto-merged sound/core/sound.c +Auto-merged sound/sound_core.c +Merge made by recursive. + arch/blackfin/mach-bf561/coreb.c | 4 +++ + arch/cris/arch-v10/drivers/eeprom.c | 4 +- + arch/cris/arch-v10/drivers/gpio.c | 3 ++ + arch/cris/arch-v10/drivers/i2c.c | 2 + + arch/cris/arch-v10/drivers/sync_serial.c | 34 ++++++++++++++--------- + arch/cris/arch-v32/drivers/cryptocop.c | 3 +- + arch/cris/arch-v32/drivers/i2c.c | 2 + + arch/cris/arch-v32/drivers/mach-a3/gpio.c | 4 +++ + arch/cris/arch-v32/drivers/mach-fs/gpio.c | 5 +++- + arch/cris/arch-v32/drivers/sync_serial.c | 33 +++++++++++++--------- + arch/m68k/bvme6000/rtc.c | 7 ++++- + arch/m68k/mvme16x/rtc.c | 4 +++ + arch/mips/basler/excite/excite_iodev.c | 9 +++++- + arch/mips/kernel/rtlx.c | 7 ++++- + arch/mips/kernel/vpe.c | 12 ++++++-- + arch/mips/sibyte/common/sb_tbprof.c | 25 ++++++++++++----- + arch/parisc/kernel/perf.c | 4 +++ + arch/s390/crypto/prng.c | 2 + + arch/sh/boards/landisk/gio.c | 10 +++++-- + arch/sparc/kernel/apc.c | 2 + + arch/sparc64/kernel/time.c | 7 ++++- + arch/um/drivers/harddog_kern.c | 3 ++ + arch/um/drivers/mmapper_kern.c | 2 + + arch/um/drivers/random.c | 3 ++ + arch/x86/kernel/apm_32.c | 4 +++ + arch/x86/kernel/cpu/mcheck/mce_64.c | 4 +++ + arch/x86/kernel/cpuid.c | 25 +++++++++++----- + arch/x86/kernel/microcode.c | 2 + + arch/x86/kernel/msr.c | 16 ++++++++--- + block/bsg.c | 7 ++++- + drivers/block/aoe/aoechr.c | 7 ++++- + drivers/block/paride/pg.c | 22 +++++++++++---- + drivers/block/paride/pt.c | 8 +++++- + drivers/bluetooth/hci_vhci.c | 5 +++ + drivers/char/agp/frontend.c | 4 +++ + drivers/char/apm-emulation.c | 3 ++ + drivers/char/briq_panel.c | 9 +++++- + drivers/char/cs5535_gpio.c | 2 + + drivers/char/drm/drm_fops.c | 9 +++++- + drivers/char/ds1286.c | 4 +++ + drivers/char/ds1620.c | 9 +++++- + drivers/char/dsp56k.c | 16 +++++++--- + drivers/char/dtlk.c | 3 ++ + drivers/char/efirtc.c | 2 + + drivers/char/genrtc.c | 7 ++++- + drivers/char/hpet.c | 4 +++ + drivers/char/hw_random/core.c | 2 + + drivers/char/ip2/ip2main.c | 34 +--------------------- + drivers/char/ip27-rtc.c | 4 +++ + drivers/char/ipmi/ipmi_devintf.c | 8 ++++- + drivers/char/ipmi/ipmi_watchdog.c | 3 ++ + drivers/char/lcd.c | 3 ++ + drivers/char/lp.c | 38 +++++++++++++++++-------- + drivers/char/mbcs.c | 5 +++ + drivers/char/mem.c | 10 +++++- + drivers/char/misc.c | 3 ++ + drivers/char/mwave/mwavedd.c | 2 + + drivers/char/nvram.c | 4 +++ + drivers/char/pc8736x_gpio.c | 2 + + drivers/char/pcmcia/cm4000_cs.c | 26 +++++++++++++----- + drivers/char/pcmcia/cm4040_cs.c | 23 +++++++++++---- + drivers/char/ppdev.c | 2 + + drivers/char/raw.c | 3 ++ + drivers/char/rtc.c | 4 +++ + drivers/char/scx200_gpio.c | 2 + + drivers/char/snsc.c | 5 +++- + drivers/char/sonypi.c | 3 ++ + drivers/char/tb0219.c | 2 + + drivers/char/tlclk.c | 19 ++++++++----- + drivers/char/tpm/tpm.c | 5 +++ + drivers/char/tty_io.c | 27 +++++++++++++++++- + drivers/char/vc_screen.c | 9 +++++- + drivers/char/viotape.c | 3 ++ + drivers/char/vr41xx_giu.c | 2 + + drivers/char/xilinx_hwicap/xilinx_hwicap.c | 6 +++- + drivers/firewire/fw-cdev.c | 16 ++++++++--- + drivers/hid/hidraw.c | 2 + + drivers/i2c/i2c-dev.c | 22 +++++++++++---- + drivers/ide/ide-tape.c | 7 ++++- + drivers/ieee1394/dv1394.c | 6 +++- + drivers/ieee1394/raw1394.c | 3 ++ + drivers/ieee1394/video1394.c | 18 +++++++++--- + drivers/infiniband/core/ucm.c | 2 + + drivers/infiniband/core/ucma.c | 3 ++ + drivers/infiniband/core/user_mad.c | 7 ++++- + drivers/infiniband/core/uverbs_main.c | 9 +++++- + drivers/infiniband/hw/ipath/ipath_file_ops.c | 2 + + drivers/input/input.c | 16 ++++++++--- + drivers/input/misc/hp_sdc_rtc.c | 2 + + drivers/input/misc/uinput.c | 3 ++ + drivers/input/mousedev.c | 12 +++++++- + drivers/input/serio/serio_raw.c | 6 +++- + drivers/isdn/capi/capi.c | 17 +++++++---- + drivers/isdn/hardware/eicon/divamnt.c | 16 +++++++--- + drivers/isdn/hardware/eicon/divasi.c | 2 + + drivers/isdn/hardware/eicon/divasmain.c | 2 + + drivers/isdn/i4l/isdn_common.c | 3 +- + drivers/macintosh/adb.c | 18 +++++++++--- + drivers/macintosh/ans-lcd.c | 2 + + drivers/macintosh/smu.c | 3 ++ + drivers/macintosh/via-pmu.c | 3 ++ + drivers/media/dvb/dvb-core/dvbdev.c | 4 +++ + drivers/media/radio/miropcm20-rds.c | 4 +++ + drivers/media/video/videodev.c | 4 +++ + drivers/message/i2o/i2o_config.c | 2 + + drivers/misc/hdpuftrs/hdpu_cpustate.c | 9 +++++- + drivers/misc/phantom.c | 9 +++++- + drivers/misc/sony-laptop.c | 3 ++ + drivers/mtd/mtdchar.c | 22 +++++++++++---- + drivers/mtd/ubi/cdev.c | 7 ++++- + drivers/net/ppp_generic.c | 2 + + drivers/net/tun.c | 2 + + drivers/net/wan/cosa.c | 22 +++++++++++---- + drivers/parisc/eisa_eeprom.c | 3 ++ + drivers/pcmcia/pcmcia_ioctl.c | 25 ++++++++++++----- + drivers/rtc/rtc-dev.c | 12 ++++++-- + drivers/rtc/rtc-m41t80.c | 7 ++++- + drivers/s390/block/dasd_eer.c | 6 ++++ + drivers/s390/char/fs3270.c | 23 +++++++++++----- + drivers/s390/char/monreader.c | 4 +++ + drivers/s390/char/monwriter.c | 3 ++ + drivers/s390/char/tape_char.c | 12 ++++++-- + drivers/s390/char/vmcp.c | 4 +++ + drivers/s390/char/vmlogrdr.c | 8 +++++- + drivers/s390/char/vmur.c | 12 ++++++-- + drivers/s390/char/vmwatchdog.c | 7 ++++- + drivers/s390/crypto/zcrypt_api.c | 3 ++ + drivers/sbus/char/bpp.c | 3 ++ + drivers/sbus/char/cpwatchdog.c | 4 +++ + drivers/sbus/char/display7seg.c | 1 + + drivers/sbus/char/envctrl.c | 2 + + drivers/sbus/char/flash.c | 6 +++- + drivers/sbus/char/jsflash.c | 13 +++++++-- + drivers/sbus/char/openprom.c | 3 ++ + drivers/sbus/char/riowatchdog.c | 2 + + drivers/sbus/char/rtc.c | 3 ++ + drivers/sbus/char/uctrl.c | 3 ++ + drivers/sbus/char/vfc_dev.c | 5 +++ + drivers/scsi/3w-9xxx.c | 3 ++ + drivers/scsi/3w-xxxx.c | 3 ++ + drivers/scsi/aacraid/linit.c | 3 ++ + drivers/scsi/ch.c | 4 +++ + drivers/scsi/dpt_i2o.c | 5 +++ + drivers/scsi/gdth.c | 3 ++ + drivers/scsi/megaraid.c | 5 ++- + drivers/scsi/megaraid/megaraid_mm.c | 2 + + drivers/scsi/megaraid/megaraid_sas.c | 2 + + drivers/scsi/osst.c | 15 +++++++++- + drivers/scsi/scsi_tgt_if.c | 2 + + drivers/scsi/sg.c | 16 +++++++++-- + drivers/scsi/st.c | 11 ++++++- + drivers/spi/spidev.c | 3 ++ + drivers/telephony/phonedev.c | 3 ++ + drivers/uio/uio.c | 17 ++++++++--- + drivers/usb/core/devio.c | 2 + + drivers/usb/core/file.c | 3 ++ + drivers/usb/gadget/printer.c | 3 +- + drivers/usb/mon/mon_bin.c | 6 ++++ + drivers/video/fbmem.c | 15 +++++++--- + fs/char_dev.c | 7 ++--- + fs/dlm/user.c | 9 +++++- + fs/fat/cache.c | 2 +- + fs/fat/dir.c | 4 +- + fs/fat/file.c | 6 ---- + fs/fat/inode.c | 26 +++++++++++------- + fs/msdos/namei.c | 35 +++++++++++++----------- + fs/ocfs2/stack_user.c | 3 ++ + fs/vfat/namei.c | 35 +++++++++++++----------- + include/linux/smp_lock.h | 13 +++++++++ + kernel/pm_qos_params.c | 7 ++++- + kernel/power/user.c | 10 ++++++- + net/irda/irnet/irnet.h | 1 + + net/irda/irnet/irnet_ppp.c | 3 ++ + sound/core/sound.c | 15 +++++++++- + sound/sound_core.c | 5 +++ + 175 files changed, 1075 insertions(+), 320 deletions(-) +Merging trivial/next +$ git merge trivial/next +Auto-merged arch/mips/kernel/vpe.c +Auto-merged drivers/media/dvb/ttpci/av7110.c +Auto-merged drivers/net/spider_net.c +Auto-merged drivers/usb/serial/ftdi_sio.c +Auto-merged mm/slub.c +Merge made by recursive. + Documentation/edac.txt | 2 +- + Documentation/filesystems/hfs.txt | 2 +- + Documentation/ja_JP/SubmittingPatches | 4 ++-- + Documentation/zh_CN/SubmittingPatches | 4 ++-- + arch/mips/kernel/vpe.c | 2 +- + arch/sh/lib64/c-checksum.c | 4 ++-- + drivers/base/sys.c | 2 +- + drivers/char/serial167.c | 2 +- + drivers/media/dvb/ttpci/av7110.c | 2 +- + drivers/message/i2o/i2o_block.c | 2 +- + drivers/misc/ibmasm/event.c | 2 +- + drivers/net/spider_net.c | 2 +- + drivers/serial/mpc52xx_uart.c | 4 ++-- + drivers/usb/serial/ftdi_sio.c | 2 +- + fs/jffs2/fs.c | 2 +- + fs/ntfs/aops.c | 2 +- + fs/proc/nommu.c | 2 +- + include/linux/securebits.h | 2 +- + mm/migrate.c | 2 +- + mm/slub.c | 4 ++-- + net/wireless/wext.c | 2 +- + 21 files changed, 26 insertions(+), 26 deletions(-) +Merging ubifs/for_andrew +$ git merge ubifs/for_andrew +Auto-merged fs/Kconfig +Merge made by recursive. + Documentation/filesystems/ubifs.txt | 163 ++ + fs/Kconfig | 3 + + fs/Makefile | 1 + + fs/fs-writeback.c | 22 +- + fs/ubifs/Kconfig | 72 + + fs/ubifs/Makefile | 9 + + fs/ubifs/budget.c | 863 ++++++++++ + fs/ubifs/commit.c | 677 ++++++++ + fs/ubifs/compress.c | 253 +++ + fs/ubifs/debug.c | 2210 ++++++++++++++++++++++++++ + fs/ubifs/debug.h | 396 +++++ + fs/ubifs/dir.c | 1017 ++++++++++++ + fs/ubifs/file.c | 960 ++++++++++++ + fs/ubifs/find.c | 977 ++++++++++++ + fs/ubifs/gc.c | 762 +++++++++ + fs/ubifs/io.c | 921 +++++++++++ + fs/ubifs/ioctl.c | 212 +++ + fs/ubifs/journal.c | 1286 +++++++++++++++ + fs/ubifs/key.h | 533 +++++++ + fs/ubifs/log.c | 799 ++++++++++ + fs/ubifs/lprops.c | 1355 ++++++++++++++++ + fs/ubifs/lpt.c | 2241 ++++++++++++++++++++++++++ + fs/ubifs/lpt_commit.c | 1631 +++++++++++++++++++ + fs/ubifs/master.c | 387 +++++ + fs/ubifs/misc.h | 311 ++++ + fs/ubifs/orphan.c | 958 +++++++++++ + fs/ubifs/recovery.c | 1537 ++++++++++++++++++ + fs/ubifs/replay.c | 1075 +++++++++++++ + fs/ubifs/sb.c | 615 ++++++++ + fs/ubifs/scan.c | 362 +++++ + fs/ubifs/shrinker.c | 322 ++++ + fs/ubifs/super.c | 1969 +++++++++++++++++++++++ + fs/ubifs/tnc.c | 2961 +++++++++++++++++++++++++++++++++++ + fs/ubifs/tnc_commit.c | 1105 +++++++++++++ + fs/ubifs/tnc_misc.c | 496 ++++++ + fs/ubifs/ubifs-media.h | 729 +++++++++ + fs/ubifs/ubifs.h | 1605 +++++++++++++++++++ + fs/ubifs/xattr.c | 581 +++++++ + include/linux/fs.h | 2 + + init/do_mounts.c | 3 +- + 40 files changed, 32370 insertions(+), 11 deletions(-) + create mode 100644 Documentation/filesystems/ubifs.txt + create mode 100644 fs/ubifs/Kconfig + create mode 100644 fs/ubifs/Makefile + create mode 100644 fs/ubifs/budget.c + create mode 100644 fs/ubifs/commit.c + create mode 100644 fs/ubifs/compress.c + create mode 100644 fs/ubifs/debug.c + create mode 100644 fs/ubifs/debug.h + create mode 100644 fs/ubifs/dir.c + create mode 100644 fs/ubifs/file.c + create mode 100644 fs/ubifs/find.c + create mode 100644 fs/ubifs/gc.c + create mode 100644 fs/ubifs/io.c + create mode 100644 fs/ubifs/ioctl.c + create mode 100644 fs/ubifs/journal.c + create mode 100644 fs/ubifs/key.h + create mode 100644 fs/ubifs/log.c + create mode 100644 fs/ubifs/lprops.c + create mode 100644 fs/ubifs/lpt.c + create mode 100644 fs/ubifs/lpt_commit.c + create mode 100644 fs/ubifs/master.c + create mode 100644 fs/ubifs/misc.h + create mode 100644 fs/ubifs/orphan.c + create mode 100644 fs/ubifs/recovery.c + create mode 100644 fs/ubifs/replay.c + create mode 100644 fs/ubifs/sb.c + create mode 100644 fs/ubifs/scan.c + create mode 100644 fs/ubifs/shrinker.c + create mode 100644 fs/ubifs/super.c + create mode 100644 fs/ubifs/tnc.c + create mode 100644 fs/ubifs/tnc_commit.c + create mode 100644 fs/ubifs/tnc_misc.c + create mode 100644 fs/ubifs/ubifs-media.h + create mode 100644 fs/ubifs/ubifs.h + create mode 100644 fs/ubifs/xattr.c +Merging lsm/for-next +$ git merge lsm/for-next +Auto-merged MAINTAINERS +Merge made by recursive. + MAINTAINERS | 1 - + fs/proc/array.c | 2 +- + include/linux/capability.h | 29 ++++++++--- + kernel/capability.c | 111 +++++++++++++++++++++++++++++--------------- + 4 files changed, 95 insertions(+), 48 deletions(-) +Merging block/for-next +$ git merge block/for-next +Already up-to-date. +Merging embedded/master +$ git merge embedded/master +Auto-merged drivers/char/vt.c +Merge made by recursive. + drivers/char/Kconfig | 8 ++++++++ + drivers/char/Makefile | 4 ++-- + drivers/char/vt.c | 2 +- + include/linux/consolemap.h | 14 ++++++++++++++ + include/linux/vt_kern.h | 19 +++++++++++++++++++ + 5 files changed, 44 insertions(+), 3 deletions(-) +Merging firmware/master +$ git merge firmware/master +Auto-merged Makefile +Auto-merged arch/x86/kernel/microcode.c +Removed drivers/atm/atmsar11.data +Removed drivers/atm/atmsar11.regions +Removed drivers/atm/atmsar11.start +Auto-merged drivers/base/firmware_class.c +Auto-merged drivers/media/common/tuners/tuner-xc2028.c +Auto-merged drivers/media/dvb/dvb-usb/gp8psk.c +Auto-merged drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c +Removed drivers/media/dvb/ttusb-budget/dvb-ttusb-dspbootcode.h +Auto-merged drivers/media/dvb/ttusb-dec/ttusb_dec.c +Auto-merged drivers/media/video/bt8xx/bttv-cards.c +Auto-merged drivers/net/cxgb3/common.h +Auto-merged drivers/net/myri10ge/myri10ge.c +Removed drivers/net/tokenring/smctr_firmware.h +Auto-merged drivers/net/usb/Kconfig +Removed drivers/net/usb/kawethfw.h +Auto-merged drivers/net/wireless/atmel.c +Auto-merged drivers/net/wireless/libertas/if_cs.c +Auto-merged drivers/net/wireless/libertas/if_usb.c +Auto-merged drivers/net/wireless/p54/p54usb.c +Auto-merged drivers/net/wireless/rt2x00/rt2x00.h +Auto-merged drivers/net/wireless/rt2x00/rt2x00pci.h +Auto-merged drivers/net/wireless/rt2x00/rt61pci.c +Auto-merged drivers/net/wireless/rt2x00/rt73usb.c +Auto-merged drivers/usb/misc/Kconfig +Removed drivers/usb/misc/emi26_fw.h +Auto-merged drivers/usb/misc/emi62.c +Removed drivers/usb/misc/emi62_fw_m.h +Removed drivers/usb/misc/emi62_fw_s.h +Auto-merged drivers/usb/serial/Kconfig +CONFLICT (content): Merge conflict in drivers/usb/serial/Kconfig +Removed drivers/usb/serial/keyspan_mpr_fw.h +Removed drivers/usb/serial/keyspan_pda_fw.h +Removed drivers/usb/serial/keyspan_usa18x_fw.h +Removed drivers/usb/serial/keyspan_usa19_fw.h +Removed drivers/usb/serial/keyspan_usa19qi_fw.h +Removed drivers/usb/serial/keyspan_usa19qw_fw.h +Removed drivers/usb/serial/keyspan_usa19w_fw.h +Removed drivers/usb/serial/keyspan_usa28_fw.h +Removed drivers/usb/serial/keyspan_usa28x_fw.h +Removed drivers/usb/serial/keyspan_usa28xa_fw.h +Removed drivers/usb/serial/keyspan_usa28xb_fw.h +Removed drivers/usb/serial/keyspan_usa49w_fw.h +Removed drivers/usb/serial/keyspan_usa49wlc_fw.h +CONFLICT (delete/modify): drivers/usb/serial/ti_fw_3410.h deleted in firmware/master and modified in HEAD. Version HEAD of drivers/usb/serial/ti_fw_3410.h left in tree. +CONFLICT (delete/modify): drivers/usb/serial/ti_fw_5052.h deleted in firmware/master and modified in HEAD. Version HEAD of drivers/usb/serial/ti_fw_5052.h left in tree. +Auto-merged drivers/usb/serial/ti_usb_3410_5052.c +CONFLICT (content): Merge conflict in drivers/usb/serial/ti_usb_3410_5052.c +Removed drivers/usb/serial/whiteheat_fw.h +Removed drivers/usb/serial/xircom_pgs_fw.h +Auto-merged include/asm-generic/vmlinux.lds.h +Auto-merged include/linux/firmware.h +Auto-merged sound/pci/Kconfig +CONFLICT (content): Merge conflict in sound/pci/Kconfig +Removed sound/pci/korg1212/korg1212-firmware.h +Auto-merged sound/pci/maestro3.c +CONFLICT (content): Merge conflict in sound/pci/maestro3.c +Auto-merged sound/pci/pcxhr/pcxhr_core.c +Removed sound/pci/ymfpci/ymfpci_image.h +Auto-merged sound/pci/ymfpci/ymfpci_main.c +CONFLICT (content): Merge conflict in sound/pci/ymfpci/ymfpci_main.c +Resolved 'drivers/usb/serial/Kconfig' using previous resolution. +Resolved 'drivers/usb/serial/ti_usb_3410_5052.c' using previous resolution. +Resolved 'sound/pci/Kconfig' using previous resolution. +Resolved 'sound/pci/maestro3.c' using previous resolution. +Resolved 'sound/pci/ymfpci/ymfpci_main.c' using previous resolution. +Automatic merge failed; fix conflicts and then commit the result. +$ git commit -v -a +$ git diff -M --stat --summary HEAD^.. + Makefile | 11 +- + drivers/atm/Kconfig | 8 + + drivers/atm/ambassador.c | 140 +- + drivers/atm/ambassador.h | 11 - + drivers/atm/atmsar11.data | 2063 ----- + drivers/atm/atmsar11.regions | 6 - + drivers/atm/atmsar11.start | 4 - + drivers/base/Kconfig | 33 + + drivers/base/firmware_class.c | 33 +- + drivers/media/dvb/ttusb-budget/Kconfig | 9 + + drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c | 16 +- + .../media/dvb/ttusb-budget/dvb-ttusb-dspbootcode.h | 1644 ---- + drivers/net/tokenring/Kconfig | 9 + + drivers/net/tokenring/smctr.c | 56 +- + drivers/net/tokenring/smctr.h | 2 - + drivers/net/tokenring/smctr_firmware.h | 978 --- + drivers/net/usb/Kconfig | 9 + + drivers/net/usb/kaweth.c | 43 +- + drivers/net/usb/kawethfw.h | 557 -- + drivers/usb/misc/Kconfig | 16 + + drivers/usb/misc/emi26.c | 96 +- + drivers/usb/misc/emi26_fw.h | 5779 ------------- + drivers/usb/misc/emi62.c | 130 +- + drivers/usb/misc/emi62_fw_m.h | 8853 -------------------- + drivers/usb/misc/emi62_fw_s.h | 8837 ------------------- + drivers/usb/serial/Kconfig | 45 +- + drivers/usb/serial/keyspan.c | 78 +- + drivers/usb/serial/keyspan.h | 84 - + drivers/usb/serial/keyspan_mpr_fw.h | 286 - + drivers/usb/serial/keyspan_pda.c | 51 +- + drivers/usb/serial/keyspan_pda_fw.h | 99 - + drivers/usb/serial/keyspan_usa18x_fw.h | 447 - + drivers/usb/serial/keyspan_usa19_fw.h | 285 - + drivers/usb/serial/keyspan_usa19qi_fw.h | 284 - + drivers/usb/serial/keyspan_usa19qw_fw.h | 448 - + drivers/usb/serial/keyspan_usa19w_fw.h | 446 - + drivers/usb/serial/keyspan_usa28_fw.h | 466 - + drivers/usb/serial/keyspan_usa28x_fw.h | 447 - + drivers/usb/serial/keyspan_usa28xa_fw.h | 449 - + drivers/usb/serial/keyspan_usa28xb_fw.h | 448 - + drivers/usb/serial/keyspan_usa49w_fw.h | 464 - + drivers/usb/serial/keyspan_usa49wlc_fw.h | 476 -- + drivers/usb/serial/ti_fw_3410.h | 889 -- + drivers/usb/serial/ti_fw_5052.h | 890 -- + drivers/usb/serial/ti_usb_3410_5052.c | 124 +- + drivers/usb/serial/whiteheat.c | 77 +- + drivers/usb/serial/whiteheat_fw.h | 1669 ---- + drivers/usb/serial/xircom_pgs_fw.h | 103 - + firmware/Makefile | 135 + + firmware/WHENCE | 228 + + firmware/atmsar11.HEX | 204 + + firmware/emi26/bitstream.HEX | 4391 ++++++++++ + firmware/emi26/firmware.HEX | 1261 +++ + firmware/emi26/loader.HEX | 116 + + firmware/emi62/bitstream.HEX | 4372 ++++++++++ + firmware/emi62/loader.HEX | 107 + + firmware/emi62/midi.HEX | 1266 +++ + firmware/emi62/spdif.HEX | 1257 +++ + firmware/ess/maestro3_assp_kernel.fw.ihex | 120 + + firmware/ess/maestro3_assp_minisrc.fw.ihex | 51 + + firmware/ihex2fw.c | 238 + + firmware/kaweth/new_code.bin.ihex | 206 + + firmware/kaweth/new_code_fix.bin.ihex | 40 + + firmware/kaweth/trigger_code.bin.ihex | 13 + + firmware/kaweth/trigger_code_fix.bin.ihex | 3 + + firmware/keyspan/mpr.HEX | 104 + + firmware/keyspan/usa18x.HEX | 141 + + firmware/keyspan/usa19.HEX | 101 + + firmware/keyspan/usa19qi.HEX | 101 + + firmware/keyspan/usa19qw.HEX | 142 + + firmware/keyspan/usa19w.HEX | 141 + + firmware/keyspan/usa28.HEX | 148 + + firmware/keyspan/usa28x.HEX | 141 + + firmware/keyspan/usa28xa.HEX | 141 + + firmware/keyspan/usa28xb.HEX | 142 + + firmware/keyspan/usa49w.HEX | 145 + + firmware/keyspan/usa49wlc.HEX | 153 + + firmware/keyspan_pda/keyspan_pda.HEX | 83 + + .../serial => firmware/keyspan_pda}/keyspan_pda.S | 0 + firmware/keyspan_pda/xircom_pgs.HEX | 87 + + .../serial => firmware/keyspan_pda}/xircom_pgs.S | 0 + firmware/korg/k1212.dsp.ihex | 987 +++ + firmware/ti_3410.fw.ihex | 862 ++ + firmware/ti_5052.fw.ihex | 862 ++ + firmware/tr_smctr.bin.ihex | 477 ++ + firmware/ttusb-budget/dspbootcode.bin.ihex | 820 ++ + firmware/whiteheat.HEX | 1097 +++ + firmware/whiteheat_loader.HEX | 314 + + firmware/whiteheat_loader_debug.HEX | 403 + + firmware/yamaha/ds1_ctrl.fw.ihex | 769 ++ + firmware/yamaha/ds1_dsp.fw.ihex | 9 + + firmware/yamaha/ds1e_ctrl.fw.ihex | 769 ++ + include/asm-generic/vmlinux.lds.h | 7 + + include/linux/firmware.h | 21 + + include/linux/ihex.h | 68 + + scripts/Makefile.fwinst | 31 + + sound/pci/Kconfig | 12 +- + sound/pci/korg1212/korg1212-firmware.h | 987 --- + sound/pci/korg1212/korg1212.c | 18 - + sound/pci/maestro3.c | 171 - + sound/pci/ymfpci/ymfpci_image.h | 1565 ---- + sound/pci/ymfpci/ymfpci_main.c | 63 - + 102 files changed, 23882 insertions(+), 40606 deletions(-) + delete mode 100644 drivers/atm/atmsar11.data + delete mode 100644 drivers/atm/atmsar11.regions + delete mode 100644 drivers/atm/atmsar11.start + delete mode 100644 drivers/media/dvb/ttusb-budget/dvb-ttusb-dspbootcode.h + delete mode 100644 drivers/net/tokenring/smctr_firmware.h + delete mode 100644 drivers/net/usb/kawethfw.h + delete mode 100644 drivers/usb/misc/emi26_fw.h + delete mode 100644 drivers/usb/misc/emi62_fw_m.h + delete mode 100644 drivers/usb/misc/emi62_fw_s.h + delete mode 100644 drivers/usb/serial/keyspan_mpr_fw.h + delete mode 100644 drivers/usb/serial/keyspan_pda_fw.h + delete mode 100644 drivers/usb/serial/keyspan_usa18x_fw.h + delete mode 100644 drivers/usb/serial/keyspan_usa19_fw.h + delete mode 100644 drivers/usb/serial/keyspan_usa19qi_fw.h + delete mode 100644 drivers/usb/serial/keyspan_usa19qw_fw.h + delete mode 100644 drivers/usb/serial/keyspan_usa19w_fw.h + delete mode 100644 drivers/usb/serial/keyspan_usa28_fw.h + delete mode 100644 drivers/usb/serial/keyspan_usa28x_fw.h + delete mode 100644 drivers/usb/serial/keyspan_usa28xa_fw.h + delete mode 100644 drivers/usb/serial/keyspan_usa28xb_fw.h + delete mode 100644 drivers/usb/serial/keyspan_usa49w_fw.h + delete mode 100644 drivers/usb/serial/keyspan_usa49wlc_fw.h + delete mode 100644 drivers/usb/serial/ti_fw_3410.h + delete mode 100644 drivers/usb/serial/ti_fw_5052.h + delete mode 100644 drivers/usb/serial/whiteheat_fw.h + delete mode 100644 drivers/usb/serial/xircom_pgs_fw.h + create mode 100644 firmware/Makefile + create mode 100644 firmware/WHENCE + create mode 100644 firmware/atmsar11.HEX + create mode 100644 firmware/emi26/bitstream.HEX + create mode 100644 firmware/emi26/firmware.HEX + create mode 100644 firmware/emi26/loader.HEX + create mode 100644 firmware/emi62/bitstream.HEX + create mode 100644 firmware/emi62/loader.HEX + create mode 100644 firmware/emi62/midi.HEX + create mode 100644 firmware/emi62/spdif.HEX + create mode 100644 firmware/ess/maestro3_assp_kernel.fw.ihex + create mode 100644 firmware/ess/maestro3_assp_minisrc.fw.ihex + create mode 100644 firmware/ihex2fw.c + create mode 100644 firmware/kaweth/new_code.bin.ihex + create mode 100644 firmware/kaweth/new_code_fix.bin.ihex + create mode 100644 firmware/kaweth/trigger_code.bin.ihex + create mode 100644 firmware/kaweth/trigger_code_fix.bin.ihex + create mode 100644 firmware/keyspan/mpr.HEX + create mode 100644 firmware/keyspan/usa18x.HEX + create mode 100644 firmware/keyspan/usa19.HEX + create mode 100644 firmware/keyspan/usa19qi.HEX + create mode 100644 firmware/keyspan/usa19qw.HEX + create mode 100644 firmware/keyspan/usa19w.HEX + create mode 100644 firmware/keyspan/usa28.HEX + create mode 100644 firmware/keyspan/usa28x.HEX + create mode 100644 firmware/keyspan/usa28xa.HEX + create mode 100644 firmware/keyspan/usa28xb.HEX + create mode 100644 firmware/keyspan/usa49w.HEX + create mode 100644 firmware/keyspan/usa49wlc.HEX + create mode 100644 firmware/keyspan_pda/keyspan_pda.HEX + rename {drivers/usb/serial => firmware/keyspan_pda}/keyspan_pda.S (100%) + create mode 100644 firmware/keyspan_pda/xircom_pgs.HEX + rename {drivers/usb/serial => firmware/keyspan_pda}/xircom_pgs.S (100%) + create mode 100644 firmware/korg/k1212.dsp.ihex + create mode 100644 firmware/ti_3410.fw.ihex + create mode 100644 firmware/ti_5052.fw.ihex + create mode 100644 firmware/tr_smctr.bin.ihex + create mode 100644 firmware/ttusb-budget/dspbootcode.bin.ihex + create mode 100644 firmware/whiteheat.HEX + create mode 100644 firmware/whiteheat_loader.HEX + create mode 100644 firmware/whiteheat_loader_debug.HEX + create mode 100644 firmware/yamaha/ds1_ctrl.fw.ihex + create mode 100644 firmware/yamaha/ds1_dsp.fw.ihex + create mode 100644 firmware/yamaha/ds1e_ctrl.fw.ihex + create mode 100644 include/linux/ihex.h + create mode 100644 scripts/Makefile.fwinst + delete mode 100644 sound/pci/korg1212/korg1212-firmware.h + delete mode 100644 sound/pci/ymfpci/ymfpci_image.h +$ git revert 62836d89ead6bd0502cb56b31ebccae818db157f +Removed firmware/atmsar11.HEX +Finished one revert. +Created commit ec498d3: Revert "firmware: convert Ambassador ATM driver to request_firmware()" + 8 files changed, 2167 insertions(+), 270 deletions(-) + create mode 100644 drivers/atm/atmsar11.data + create mode 100644 drivers/atm/atmsar11.regions + create mode 100644 drivers/atm/atmsar11.start + delete mode 100644 firmware/atmsar11.HEX +Merging pcmcia/master +$ git merge pcmcia/master +Auto-merged drivers/ide/legacy/ide-cs.c +Auto-merged drivers/pcmcia/cs.c +Removed include/pcmcia/version.h +Merge made by recursive. + drivers/ata/pata_pcmcia.c | 2 + + drivers/char/pcmcia/ipwireless/main.c | 1 - + drivers/ide/legacy/ide-cs.c | 2 + + drivers/pcmcia/au1000_generic.h | 26 ++++++++++++--------- + drivers/pcmcia/cs.c | 11 ++------ + drivers/pcmcia/hd64465_ss.c | 2 - + drivers/pcmcia/i82092.c | 2 - + drivers/pcmcia/i82092aa.h | 2 - + drivers/pcmcia/i82365.c | 39 ++++++++++++++++++++++---------- + drivers/pcmcia/m8xx_pcmcia.c | 3 +- + drivers/pcmcia/ti113x.h | 2 +- + include/pcmcia/ss.h | 1 - + include/pcmcia/version.h | 3 -- + 13 files changed, 51 insertions(+), 45 deletions(-) + delete mode 100644 include/pcmcia/version.h +Applying Fix various 8390 builds diff -puN /dev/null Next/quilt-import.log --- /dev/null +++ a/Next/quilt-import.log @@ -0,0 +1,424 @@ +Importing driver-core.current based on 2.6.26-rc4-git4 +$ git checkout quilt/driver-core.current +Switched to branch "quilt/driver-core.current" +$ git reset --hard 1beee8dc8cf58e3f605bd7b34d7a39939be7d8d2 +HEAD is now at 1beee8d Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 +$ git quiltimport --author Greg KH --patches ../quilt/driver-core.current +kobject-fix-kobject_rename-and-config_sysfs.patch +Importing usb.current based on quilt/driver-core.current + quilt series is empty +$ git update-ref refs/heads/quilt/usb.current 1973ea319251d80f6fe65e3c01cd5920f84ca820 +Importing driver-core based on quilt/usb.current +$ git checkout quilt/driver-core +Switched to branch "quilt/driver-core" +$ git reset --hard 1973ea319251d80f6fe65e3c01cd5920f84ca820 +HEAD is now at 1973ea3 kobject: Fix kobject_rename and !CONFIG_SYSFS +$ git quiltimport --author Greg KH --patches ../quilt/driver-core +sysfs-add-sys-dev-char-block-to-lookup-sysfs-path-by-major-minor.patch +kobject-replace-with-in-name.patch +debugfs-add-a-reference-to-the-debugfs-api-documentation.patch +firmware-fix-typo-in-example-code.patch +device-create-block-convert-device_create-to-device_create_drvdata.patch +device-create-char-convert-device_create-to-device_create_drvdata.patch +device-create-coda-convert-device_create-to-device_create_drvdata.patch +device-create-dca-convert-device_create-to-device_create_drvdata.patch +device-create-dvb-convert-device_create-to-device_create_drvdata.patch +device-create-framebuffer-convert-device_create-to-device_create_drvdata.patch +device-create-hid-convert-device_create-to-device_create_drvdata.patch +device-create-hwmon-convert-device_create-to-device_create_drvdata.patch +device-create-i2c-convert-device_create-to-device_create_drvdata.patch +device-create-ide-convert-device_create-to-device_create_drvdata.patch +device-create-ieee1394-convert-device_create-to-device_create_drvdata.patch +device-create-infiniband-convert-device_create-to-device_create_drvdata.patch +device-create-isdn-convert-device_create-to-device_create_drvdata.patch +device-create-macintosh-convert-device_create-to-device_create_drvdata.patch +device-create-mips-convert-device_create-to-device_create_drvdata.patch +device-create-misc-convert-device_create-to-device_create_drvdata.patch +device-create-mtd-convert-device_create-to-device_create_drvdata.patch +device-create-net-convert-device_create-to-device_create_drvdata.patch +device-create-s390-convert-device_create-to-device_create_drvdata.patch +device-create-scsi-convert-device_create-to-device_create_drvdata.patch +device-create-sound-convert-device_create-to-device_create_drvdata.patch +device-create-usb-convert-device_create-to-device_create_drvdata.patch +device-create-x86-convert-device_create-to-device_create_drvdata.patch +driver-core-remove-device_create.patch +driver-core-add-ability-for-class_for_each_device-to-start-in-middle-of-list.patch +driver-core-add-ability-for-class_find_device-to-start-in-middle-of-list.patch +block-fix-compiler-warning-in-genhd.c.patch +block-make-printk_partition-use-the-class-iterator-function.patch +block-make-blk_lookup_devt-use-the-class-iterator-function.patch +block-make-proc-diskstats-only-build-if-config_proc_fs-is-enabled.patch +block-make-proc-files-seq_start-use-the-class_find_device.patch +block-move-header-for-proc-partitions-to-seq_start.patch +block-make-proc-partitions-and-proc-diskstats-use-class_find_device.patch +i2c-use-class_for_each_device.patch +infiniband-rename-device-to-ib_device-in-cm_device.patch +infiniband-make-cm_device-use-a-struct-device-and-not-a-kobject.patch +bluetooth-remove-improper-bluetooth-class-symlinks.patch +class-move-driver-core-specific-parts-to-a-private-structure.patch +class-rename-devices-to-class_devices-in-internal-class-structure.patch +class-rename-interfaces-to-class_interfaces-in-internal-class-structure.patch +class-rename-subsys-to-class_subsys-in-internal-class-structure.patch +class-rename-sem-to-class_sem-in-internal-class-structure.patch +class-fix-docbook-comments-for-class_private-structure.patch +class-add-lockdep-infrastructure.patch +class-change-internal-semaphore-to-a-mutex.patch +driver-core-remove-kobj_name_len-define.patch +driver-core-remove-device_name_size-define.patch +driver-core-remove-device_id_size-define.patch +driver-core-fix-a-lot-of-printk-usages-of-bus_id.patch +pnp-add-acpi-modalias-entries.patch +pci-make-pci_name-use-dev_name.patch +sparc64-fix-up-bus_id-changes-in-sparc-core-code.patch +s390-bus_id-dev_name-conversions.patch +s390-more-bus_id-dev_name-conversions.patch +s390-use-s390_root_dev_-in-kvm_virtio.patch +s390-bus_id-dev_set_name-changes.patch +arm-bus_id-dev_name-and-dev_set_name-conversions.patch +driver-core-prepare-for-removal-of-20-char-limit-from-struct-device.patch +driver-core-convert-to-new-device-api-to-allow-names-longer-than-20-chars.patch +driver-core-lguest-convert-to-new-device-api-to-allow-names-longer-than-20-chars.patch +driver-core-add-init_name-to-struct-device.patch +libertas-treat-firmware-data-as-const.patch +bluetooth-treat-firmware-data-as-const.patch +cyclades-treat-firmware-data-as-const.patch +cx25840-treat-firmware-data-as-const.patch +myri10ge-treat-firmware-data-as-const.patch +vx222-treat-firmware-data-as-const.patch +riptide-treat-firmware-data-as-const.patch +pcxhr-treat-firmware-data-as-const.patch +vx-treat-firmware-data-as-const.patch +ueagle-atm-treat-firmware-data-as-const.patch +cxacru-treat-firmware-data-as-const.patch +aic94xx-treat-firmware-data-as-const.patch +zd1201-treat-firmware-data-as-const.patch +rt2x00-treat-firmware-data-as-const.patch +p54-treat-firmware-data-as-const.patch +atmel-treat-firmware-data-as-const.patch +irda-usb-treat-firmware-data-as-const.patch +cxgb3-treat-firmware-data-as-const.patch +bt8xx-treat-firmware-data-as-const.patch +ttusb-dec-treat-firmware-data-as-const.patch +dvb-frontends-treat-firmware-data-as-const.patch +cxusb-treat-firmware-data-as-const.patch +gp8psk-treat-firmware-data-as-const.patch +tuners-treat-firmware-data-as-const.patch +maestro3-treat-firmware-data-as-const.patch +ymfpci-treat-firmware-data-as-const.patch +isight-firmware-data-is-const.patch +dell_rbu-firmware-data-is-const.patch +x86-microcode-firmware-data-is-const.patch +firmware-make-fw-data-const.patch +net-convert-the-phy_device-file-to-use-bus_find_device_by_name.patch +put_device-might_sleep.patch +warn-when-statically-allocated-kobjects-are-used.patch +sysfs-crash-debugging.patch +Importing usb based on quilt/driver-core +$ git checkout quilt/usb +Switched to branch "quilt/usb" +$ git reset --hard 5aada95fe8ff6a51e0d16c2d882cdf3f1fef0d59 +HEAD is now at 5aada95 sysfs: crash debugging +$ git quiltimport --author Greg KH --patches ../quilt/usb +usb-use-get_unaligned_-helpers-for-kl5kusb105-driver.patch +ti_usb-kick-firmware-into-user-space.patch +usb-add-new-routine-for-checking-port-resume-type.patch +usb-debounce-before-unregistering.patch +usb-simplify-hub_restart-logic.patch +usb-try-to-salvage-lost-power-sessions.patch +usb-optimize-port-debouncing-during-hub-activation.patch +usb-combine-hub_activate-and-hub_restart.patch +usb-combine-hub_quiesce-and-hub_stop.patch +usb-io_ti-first-cut-at-a-big-clean-up.patch +usb-storage-separate-dynamic-flags-from-fixed-flags.patch +usb-storage-change-remaining-semaphore-to-completion.patch +usb-isp1760-hcd.c-make-2-functions-static.patch +usb-implement-soft-unbinding.patch +usb-storage-implement-soft-unbinding.patch +usb-remove-cvs-keywords.patch +usb-remove-documentation-usb-uhci.txt.patch +usb-serial-gadget-modular-tty-glue.patch +usb-serial-gadget-use-new-tty-glue.patch +usb-rndis-switch-to-seq_files.patch +bitmap-add-bitmap_copy_le.patch +add-linux-byteorder-bitfields.h.patch +usb-add-usb_dev_reset_delayed.patch +uwb-documentation.patch +uwb-add-the-uwb-include-files.patch +uwb-stack-core.patch +uwb-stack-urci.patch +uwb-stack-mlme.patch +uwb-stack-reservation-manager.patch +uwb-stack-debug.patch +uwb-stack-build-system.patch +uwb-add-umc-bus.patch +uwb-add-whci-enumerator.patch +uwb-add-whc-rc-radio-control-driver.patch +uwb-add-hwa-rc-radio-controller-driver.patch +uwb-add-wimedia-llc-protocol-core.patch +uwb-wlp-messages.patch +uwb-wlp-wss.patch +uwb-wlp-build-system.patch +uwb-i1480-driver.patch +uwb-i1480-wlp-driver.patch +wusb-add-usb-specific-wusb-include-files.patch +wusb-core.patch +wusb-protocol.patch +wusb-security.patch +wusb-build-system.patch +wusb-add-the-usb-wusb-cbaf-driver.patch +wusb-whci-hcd-driver.patch +wusb-add-the-wire-adapter-core.patch +wusb-add-hwa-hc-wireless-host-controller-driver.patch +wusb-fix-error-path-for-wusb_set_dev_addr.patch +uwb-disable-command-event-filtering-for-DUB-1210.patch +usb-gotemp.patch +Importing device-mapper based on v2.6.25-rc2 + quilt series is empty +$ git update-ref refs/heads/quilt/device-mapper 101142c37be8e5af9b847860219217e6b958c739 +Importing i2c based on 2.6.26-rc5 +$ git checkout quilt/i2c +Switched to branch "quilt/i2c" +$ git reset --hard 53c8ba95402be65d412a806cda3430f0e72cd107 +HEAD is now at 53c8ba9 Linux 2.6.26-rc5 +$ git quiltimport --author Jean Delvare --patches ../quilt/i2c +i2c-documentation-fix-device-matching-description.patch +i2c-davinci-01-clock-between-7-12-mhz.patch +i2c-davinci-02-move-dev_dbg-statement-for-more-output.patch +i2c-davinci-03-remove-useless-ivr-read.patch +i2c-davinci-04-fix-signal-handling-bug.patch +i2c-davinci-05-initialize-cmd_complete-sooner.patch +i2c-nforce2-add-tyan-s4985-spport.patch +i2c-remove-3-deprecated-bus-drivers.patch +i2c-bfin-twi-update-dependencies.patch +i2c-document-standard-fault-codes.patch +i2c-core-remove-useless-include.patch +i2c-core-return-proper-error-codes.patch +i2c-group-bus-drivers.patch +i2c-delete-i2c_smbus_write_quick.patch +i2c-update-refs-to-smbus_access.patch +i2c-kerneldoc-for-most-i-o-calls.patch +i2c-i2c_use_client-defends-against-null.patch +i2c-adapters-return-proper-error-codes.patch +i2c-piix4-more-cleanups.patch +i2c-bus-fix-handling-of-unsupported-transactions.patch +i2c-use-class_for_each_device.patch +i2c-pca-algo-fix-errorcode.patch +i2c-pca-platform-fix-errorcode.patch +i2c-core-use-list_for_each_entry_safe.patch +i2c-simplify-i2c_del_driver.patch +i2c-add-intel-sch-i2c-smbus-support.patch +i2c-acpi-check-conflict.patch +i2c-push-ioctl-bkl-down-into-the-i2c-code.patch +i2c-add-support-for-i2c-bus-on-freescale-cpm1-cpm2-controllers.patch +i2c-add-maintainer-entry-for-i2c-cpm.patch +i2c-01-fb-drivers-declare-ddc-class.patch +i2c-02-bus-drivers-declare-spd-class.patch +i2c-03-eeprom-should-not-probe-all-adapters.patch +i2c-eeprom-use-word-read-transactions.patch +i2c-core-simplify-i2c_device_probe.patch +i2c-ibm_iic-remove-deprecated-ocp-style-part.patch +Importing kernel-doc based on 2.6.25-git13 +$ git checkout quilt/kernel-doc +Switched to branch "quilt/kernel-doc" +$ git reset --hard a01e035ebb552223c03f2d9138ffc73f2d4d3965 +HEAD is now at a01e035 drivers: fix integer as NULL pointer warnings +$ git quiltimport --author Randy Dunlap --patches ../quilt/kernel-doc +doc-move-initrd-txt.patch +Importing ide based on commit f26a3988917913b3d11b2bd741601a2c64ab9204 +$ git checkout quilt/ide +Switched to branch "quilt/ide" +$ git reset --hard f26a3988917913b3d11b2bd741601a2c64ab9204 +HEAD is now at f26a398 Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc +$ git quiltimport --author Bartlomiej Zolnierkiewicz --patches ../quilt/ide +ide-remove-obsoleted-idebus-kernel-parameter.patch +ide-remove-obsoleted-hdx-kernel-parameters.patch +ide-cleanup-init_ide_data.patch +ide-remove-obsoleted-ide-parameters.patch +ide-eliminate-fit-macro.patch +ide-tape-use-clamp_t-rather-than-nested-min_t-_max_t.patch +ide-use-get_unaligned_-helpers.patch +ide-set-req_preempt-request-flag-in-ide_do_drive_cmd-users.patch +ide-use-__generic_unplug_device-in-ide_do_drive_cmd-take-2.patch +ide-cd-convert-ide_cd_queue_pc-to-use-blk_execute_rq.patch +ide-cd-convert-ide_do_drive_cmd-path-to-use-blk_execute_rq.patch +ide-disk-convert-ide_do_drive_cmd-path-to-use-blk_execute_rq.patch +ide-floppy-convert-ide_do_drive_cmd-path-to-use-blk_execute_rq.patch +ide-taskfile-convert-ide_do_drive_cmd-path-to-use-blk_execute_rq.patch +ide-tape-convert-ide_do_drive_cmd-path-to-use-blk_execute_rq.patch +block-handle-blk_pm_resume_request-requests-in-blk_execute_rq_nowait.patch +ide-convert-ide_do_drive_cmd-path-to-use-blk_execute_rq.patch +ide-remove-ide_wait_head_wait-path-in-ide_do_drive_cmd.patch +Context reduced to (2/2) to apply fragment at 1602 +ide-remove-ide_init_drive_cmd.patch +ide-cd-remove-ide_cd_init_rq.patch +block-convert-pd_special_command-to-use-blk_execute_rq.patch +block-remove-the-checking-for-null-queue-in-blk_put_request.patch +block-unexport-blk_end_sync_rq.patch +ide-remove-try_to_flush_leftover_data.patch +sgiioc4-use-extra_base-instead-of-dma_status-for-dma_handle.patch +ide-remove-commented-out-code-from-ide_config_drive_speed.patch +ide-fix-do_probe-to-use-select_drive.patch +ide-remove-ide_tflag_no_select_mask-taskfile-flag.patch +ide-move-irq-unmasking-out-from-tf_load-method.patch +ide-remove-mmio-flag-from-ide_hwif_t.patch +ide-pass-hwif-instead-of-drive-to-outbsync-method.patch +ide-use-outbsync-in-init_irq.patch +ide-use-outbsync-in-ide_set_irq.patch +ide-remove-drive-ctl.patch +ide-scsi-replace-ide_do_drive_cmd-with-blk_execute_rq_nowait.patch +ide-remove-action-argument-in-ide_do_drive_cmd.patch +ide-scsi-fix-race-in-idescsi_transfer_pc.patch +ide-scsi-fix-drq-checking-for-dma-transfers-in-idescsi_pc_intr.patch +ide-scsi-fix-handling-of-dma-errors-in-idescsi_pc_intr.patch +ide-scsi-fix-interrupt-reason-checking-in-idescsi_pc_intr.patch +ide-scsi-merge-idescsi_input_buffers-and-idescsi_output_buffers.patch +ide-scsi-remove-superfluous-bug_on-from-idescsi_transfer_pc.patch +ide-scsi-add-debug_log-macro.patch +ide-tape-idetape_pc_intr-should-use-local_irq_enable_in_hardirq.patch +ide-tape-remove-superfluous-error-message-from-idetape_pc_intr.patch +ide-tape-remove-superfluous-warning-message-from-idetape_issue_pc.patch +ide-tape-remove-unneeded-config_blk_dev_idedma-ifdef.patch +ide-tape-remove-stale-comments-from-idetape_pc_intr.patch +ide-tape-remove-simulate_errors-debug-code.patch +ide-floppy-merge-idefloppy_transfer_pc-and-idefloppy_transfer_pc1.patch +ide-floppy-tape-scsi-log-device-name-instead-of-driver-name.patch +ide-tape-make-idetape_retry_pc-void.patch +ide-tape-merge-callbacks.patch +ide-tape-make-pc-idetape_callback-void.patch +ide-floppy-merge-callbacks.patch +ide-floppy-tape-merge-pc-idefloppy_callback-and-pc-idetape_callback.patch +ide-floppy-tape-pc_flag_dma_recommended-to-pc_flag_dma_ok.patch +ide-floppy-start-dma-engine-in-idefloppy_transfer_pc1.patch +ide-tape-set-pc_flag_dma_in_progress-flag-in-idetape_transfer_pc.patch +ide-tape-factor-out-waiting-for-good-ireason-from-idetape_transfer_pc.patch +ide-add-pc_flag_zip_drive-pc-flag.patch +ide-cd-floppy-tape-remove-checking-for-drive-scsi.patch +ide-scsi-set-drive-scsi-flag-for-devices-handled-by-the-driver.patch +ide-add-ide_transfer_pc-helper.patch +ide-scsi-move-idescsi_map_sg-call-out-from-idescsi_issue_pc.patch +ide-add-pc_flag_drq_interrupt-pc-flag.patch +ide-add-ide_issue_pc-helper.patch +ide-floppy-tape-move-checking-of-failed_pc-to-callback.patch +ide-tape-factor-out-dsc-handling-from-idetape_pc_intr.patch +ide-tape-add-ide_tape_io_buffers-helper.patch +ide-tape-always-log-debug-info-in-idetape_pc_intr-if-debugging-is-enabled.patch +ide-floppy-add-more-debugging-to-idefloppy_pc_intr.patch +ide-scsi-use-pc-callback.patch +ide-scsi-add-more-debugging-to-idescsi_pc_intr.patch +ide-floppy-scsi-read-status-register-before-stopping-dma-engine.patch +ide-add-ide_pc_intr-helper.patch +ide-remove-the-ide_etrax100-chipset-type.patch +maintainers-remove-sis-5513-ide-entry.patch +ide-tape-unify-idetape_create_read-write_cmd.patch +sis5513-add-missing-pci_enable_device-call.patch +ide-remove-needless-includes-from-ide-lib-c.patch +ide-remove-unused-xfer_udma_slow.patch +ide-use-u8-for-xfer-modes-in-ide-timing-h.patch +ide-move-some-bits-from-ide-timing-h-to-linux-ide-h.patch +ide-remove-xfer_-masks-from-ide-timing-h.patch +ide-checkpatch-pl-fixes-for-ide-timing-h.patch +ide-convert-ide-timing-h-to-ide-timings-c-library.patch +ali14xx-convert-to-use-ide_timing_find_mode.patch +ht6560b-convert-to-use-ide_timing_find_mode.patch +qd65xx-convert-to-use-ide_timing_find_mode.patch +alim15x3-convert-to-use-ide_timing_find_mode.patch +cmd640-convert-to-use-ide_timing_find_mode.patch +cmd64x-convert-to-use-ide_timing_find_mode.patch +cy82c693-convert-to-use-ide_timing_find_mode.patch +opti621-convert-to-use-ide_timing_find_mode.patch +sl82c105-convert-to-use-ide_timing_find_mode.patch +ide-mpc8xx-convert-to-use-ide_timing_find_mode.patch +ide-pmac-convert-to-use-ide_timing_find_mode.patch +ide-move-ide_pio_cycle_time-to-ide-timings-c.patch +ide-remove-no-longer-used-ide_pio_timings.patch +ide-move-pio-blacklist-to-ide-pio-blacklist-c.patch +ide-floppy-fix-unfortunate-function-naming.patch +ide-generic-add-missing-hwif-chipset-setup.patch +ide-fix-hwif-s-initialization.patch +ide-make-ide_hwifs-static.patch +ide-fix-host-drivers-missing-hwif-chipset-initialization.patch +ide-set-hwif-dev-in-ide_init_port_hw.patch +delkin_cb-set-proper-hwif-gendev-parent-value.patch +delkin_cb-use-struct-ide_port_info.patch +delkin_cb-add-warm-plug-support.patch +delkin_cb-add-missing-__init-__exit-tags.patch +au1xxx-ide-dont-use-hwif-hwif_data.patch +ide-4drives-use-struct-ide_port_info.patch +ide-cs-use-struct-ide_port_info.patch +Importing m68k based on 53c8ba95402be65d412a806cda3430f0e72cd107 +$ git checkout quilt/m68k +Switched to branch "quilt/m68k" +$ git reset --hard 53c8ba95402be65d412a806cda3430f0e72cd107 +HEAD is now at 53c8ba9 Linux 2.6.26-rc5 +$ git quiltimport --author Geert Uytterhoeven --patches ../quilt/m68k +m68k-set-CONFIG_COMPAT_BRK-in-defconfigs.diff +m68k-remove-CVS-keywords.diff +m68k-ariadne-use-netstats-in-net_device-structure.diff +zorro-replace-deprecated-__initcall-with-equivalent-device_initcall.diff +m68k-initcalls-should-return-ENODEV-if-device-not-found2.diff +m68k-vmlinux-std_sun3.lds.S_cleanup_use_PAGE_SIZE_macro.diff +m68k-allnoconfig.diff +m68k-remove-traditional.diff +Importing rr based on v2.6.26-rc5-73-gb2ab26a +$ git checkout quilt/rr +Switched to branch "quilt/rr" +$ git reset --hard b2ab26ab28cfed076ee8a83627d008472f6ac54f +HEAD is now at b2ab26a Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb +$ git quiltimport --author Rusty Russell --patches ../quilt/rr +virtio:net_fix_skb_csum_start_computation.patch +virtio:fix_typo_in_net_hdr_comments.patch +virtio:net_free_transmit_skbs_in_a_timer.patch +virtio:net-force-callback-on-empty.patch +lguest:rng.patch +virtio:net_add_ethtool_ops_for_sg_gso.patch +virtio:net_allow_receiving_sg_packets.patch +virtio:net-recycle-unused-pages.patch +virtio:transport-features.patch +virtio:vring-enhance.patch +lguest:publish-indices.patch +Context reduced to (1/1) to apply fragment at 1141 +virtio:blk_check_for_hardsector_size_from_host.patch +misc:add_all_cpus_option_to_stop_machine_run.patch +stop_machine:simplify.patch +misc:kernel-locking-doc-remove-semaphores.patch +.dotest/patch:61: trailing whitespace. + and mutex_unlock() to release it. There is also a +.dotest/patch:62: trailing whitespace. + mutex_lock(), which should be avoided, because it +.dotest/patch:68: trailing whitespace. + Example: net/netfilter/nf_sockopt.c allows +warning: 3 lines add whitespace errors. +misc:kthread-printf-attribute.patch +misc:cast_if_type.patch +misc:typesafe_cb.patch +misc:stop_machine-typesafe.patch +misc:kthread-typesafe.patch +misc:timer-typesafe.patch +misc:introduce-down_nowait.patch +misc:down_nowait.patch +misc:down_nowait-documentation.patch +misc:down_nowait-arch_ia64_kernel_salinfo.patch +misc:down_nowait-drivers_char_snsc.patch +misc:down_nowait-drivers_char_viotape.patch +misc:down_nowait-drivers_infiniband_core_user_mad.patch +misc:down_nowait-drivers_input_serio_hil_mlc.patch +misc:down_nowait-drivers_input_serio_hp_sdc_mlc.patch +misc:down_nowait-drivers_md_dm-raid1.patch +misc:down_nowait-drivers_net_3c527.patch +misc:down_nowait-drivers_net_irda_sir_dev.patch +misc:down_nowait-drivers_net_wireless_airo.patch +misc:down_nowait-drivers_scsi_aacraid_commsup.patch +misc:down_nowait-drivers_usb_core_usb.patch +misc:down_nowait-drivers_usb_gadget_inode.patch +misc:down_nowait-fs_reiserfs_journal.patch +misc:down_nowait-xfs.patch +misc:down_nowait-kernel_printk.patch +Importing ldp.next based on quilt/usb +$ git checkout quilt/ldp.next +Switched to branch "quilt/ldp.next" +$ git reset --hard 799e0c9d32c0498450c9ae8fe403fbe1c675e2b7 +HEAD is now at 799e0c9 USB: driver for gotemp device +$ git quiltimport --author Greg KH --patches ../quilt/ldp.next +usb-add-option-hso-driver.patch +usb-add-sensoray-2255-v4l-driver.patch +input-add-appleir-driver.patch diff -puN arch/arm/Kconfig~linux-next arch/arm/Kconfig --- a/arch/arm/Kconfig~linux-next +++ a/arch/arm/Kconfig @@ -14,6 +14,8 @@ config ARM select HAVE_OPROFILE select HAVE_KPROBES if (!XIP_KERNEL) select HAVE_KRETPROBES if (HAVE_KPROBES) + select HAVE_FTRACE if (!XIP_KERNEL) + select HAVE_DYNAMIC_FTRACE if (HAVE_FTRACE) help The ARM series is a line of low-power-consumption RISC chip designs licensed by ARM Ltd and targeted at embedded applications and @@ -22,6 +24,9 @@ config ARM Europe. There is an ARM Linux project with a web page at . +config HAVE_PWM + bool + config SYS_SUPPORTS_APM_EMULATION bool @@ -232,13 +237,6 @@ config ARCH_CLPS711X help Support for Cirrus Logic 711x/721x based boards. -config ARCH_CO285 - bool "Co-EBSA285" - select FOOTBRIDGE - select FOOTBRIDGE_ADDIN - help - Support for Intel's EBSA285 companion chip. - config ARCH_EBSA110 bool "EBSA-110" select ISA @@ -703,27 +701,6 @@ config PREEMPT Say Y here if you are building a kernel for a desktop, embedded or real-time system. Say N if you are unsure. -config NO_IDLE_HZ - bool "Dynamic tick timer" - depends on !GENERIC_CLOCKEVENTS - help - Select this option if you want to disable continuous timer ticks - and have them programmed to occur as required. This option saves - power as the system can remain in idle state for longer. - - By default dynamic tick is disabled during the boot, and can be - manually enabled with: - - echo 1 > /sys/devices/system/timer/timer0/dyn_tick - - Alternatively, if you want dynamic tick automatically enabled - during boot, pass "dyntick=enable" via the kernel command string. - - Please note that dynamic tick may affect the accuracy of - timekeeping on some platforms depending on the implementation. - Currently at least OMAP, PXA2xx and SA11x0 platforms are known - to have accurate timekeeping with dynamic tick. - config HZ int default 128 if ARCH_L7200 @@ -789,7 +766,7 @@ source "mm/Kconfig" config LEDS bool "Timer and CPU usage LEDs" - depends on ARCH_CDB89712 || ARCH_CO285 || ARCH_EBSA110 || \ + depends on ARCH_CDB89712 || ARCH_EBSA110 || \ ARCH_EBSA285 || ARCH_IMX || ARCH_INTEGRATOR || \ ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \ ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \ diff -puN arch/arm/Makefile~linux-next arch/arm/Makefile --- a/arch/arm/Makefile~linux-next +++ a/arch/arm/Makefile @@ -100,8 +100,6 @@ textofs-y := 0x00008000 incdir-$(CONFIG_ARCH_CLPS7500) := cl7500 machine-$(CONFIG_FOOTBRIDGE) := footbridge incdir-$(CONFIG_FOOTBRIDGE) := ebsa285 - machine-$(CONFIG_ARCH_CO285) := footbridge - incdir-$(CONFIG_ARCH_CO285) := ebsa285 machine-$(CONFIG_ARCH_SHARK) := shark machine-$(CONFIG_ARCH_SA1100) := sa1100 ifeq ($(CONFIG_ARCH_SA1100),y) diff -puN arch/arm/boot/compressed/Makefile~linux-next arch/arm/boot/compressed/Makefile --- a/arch/arm/boot/compressed/Makefile~linux-next +++ a/arch/arm/boot/compressed/Makefile @@ -69,6 +69,12 @@ SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/ targets := vmlinux vmlinux.lds piggy.gz piggy.o font.o font.c \ head.o misc.o $(OBJS) + +ifeq ($(CONFIG_FTRACE),y) +ORIG_CFLAGS := $(KBUILD_CFLAGS) +KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS)) +endif + EXTRA_CFLAGS := -fpic -fno-builtin EXTRA_AFLAGS := diff -puN arch/arm/common/Makefile~linux-next arch/arm/common/Makefile --- a/arch/arm/common/Makefile~linux-next +++ a/arch/arm/common/Makefile @@ -2,7 +2,6 @@ # Makefile for the linux kernel. # -obj-y += rtctime.o obj-$(CONFIG_ARM_GIC) += gic.o obj-$(CONFIG_ARM_VIC) += vic.o obj-$(CONFIG_ICST525) += icst525.o diff -puN arch/arm/common/dmabounce.c~linux-next arch/arm/common/dmabounce.c --- a/arch/arm/common/dmabounce.c~linux-next +++ a/arch/arm/common/dmabounce.c @@ -554,9 +554,8 @@ dmabounce_register_dev(struct device *de device_info = kmalloc(sizeof(struct dmabounce_device_info), GFP_ATOMIC); if (!device_info) { - printk(KERN_ERR - "Could not allocated dmabounce_device_info for %s", - dev->bus_id); + dev_err(dev, + "Could not allocated dmabounce_device_info\n"); return -ENOMEM; } @@ -594,8 +593,7 @@ dmabounce_register_dev(struct device *de dev->archdata.dmabounce = device_info; - printk(KERN_INFO "dmabounce: registered device %s on %s bus\n", - dev->bus_id, dev->bus->name); + dev_info(dev, "dmabounce: registered device\n"); return 0; @@ -614,16 +612,15 @@ dmabounce_unregister_dev(struct device * dev->archdata.dmabounce = NULL; if (!device_info) { - printk(KERN_WARNING - "%s: Never registered with dmabounce but attempting" \ - "to unregister!\n", dev->bus_id); + dev_warn(dev, + "Never registered with dmabounce but attempting" + "to unregister!\n"); return; } if (!list_empty(&device_info->safe_buffers)) { - printk(KERN_ERR - "%s: Removing from dmabounce with pending buffers!\n", - dev->bus_id); + dev_err(dev, + "Removing from dmabounce with pending buffers!\n"); BUG(); } @@ -639,8 +636,7 @@ dmabounce_unregister_dev(struct device * kfree(device_info); - printk(KERN_INFO "dmabounce: device %s on %s bus unregistered\n", - dev->bus_id, dev->bus->name); + dev_info(dev, "dmabounce: device unregistered\n"); } diff -puN arch/arm/common/locomo.c~linux-next arch/arm/common/locomo.c --- a/arch/arm/common/locomo.c~linux-next +++ a/arch/arm/common/locomo.c @@ -543,7 +543,6 @@ locomo_init_one_child(struct locomo *lch goto out; } - strncpy(dev->dev.bus_id, info->name, sizeof(dev->dev.bus_id)); /* * If the parent device has a DMA mask associated with it, * propagate it down to the children. @@ -553,6 +552,7 @@ locomo_init_one_child(struct locomo *lch dev->dev.dma_mask = &dev->dma_mask; } + dev_set_name(&dev->dev, "%s", info->name); dev->devid = info->devid; dev->dev.parent = lchip->dev; dev->dev.bus = &locomo_bus_type; diff -puN arch/arm/common/rtctime.c~linux-next /dev/null --- a/arch/arm/common/rtctime.c +++ /dev/null @@ -1,434 +0,0 @@ -/* - * linux/arch/arm/common/rtctime.c - * - * Copyright (C) 2003 Deep Blue Solutions Ltd. - * Based on sa1100-rtc.c, Nils Faerber, CIH, Nicolas Pitre. - * Based on rtc.c by Paul Gortmaker - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -static DECLARE_WAIT_QUEUE_HEAD(rtc_wait); -static struct fasync_struct *rtc_async_queue; - -/* - * rtc_lock protects rtc_irq_data - */ -static DEFINE_SPINLOCK(rtc_lock); -static unsigned long rtc_irq_data; - -/* - * rtc_sem protects rtc_inuse and rtc_ops - */ -static DEFINE_MUTEX(rtc_mutex); -static unsigned long rtc_inuse; -static struct rtc_ops *rtc_ops; - -#define rtc_epoch 1900UL - -/* - * Calculate the next alarm time given the requested alarm time mask - * and the current time. - */ -void rtc_next_alarm_time(struct rtc_time *next, struct rtc_time *now, struct rtc_time *alrm) -{ - unsigned long next_time; - unsigned long now_time; - - next->tm_year = now->tm_year; - next->tm_mon = now->tm_mon; - next->tm_mday = now->tm_mday; - next->tm_hour = alrm->tm_hour; - next->tm_min = alrm->tm_min; - next->tm_sec = alrm->tm_sec; - - rtc_tm_to_time(now, &now_time); - rtc_tm_to_time(next, &next_time); - - if (next_time < now_time) { - /* Advance one day */ - next_time += 60 * 60 * 24; - rtc_time_to_tm(next_time, next); - } -} -EXPORT_SYMBOL(rtc_next_alarm_time); - -static inline int rtc_arm_read_time(struct rtc_ops *ops, struct rtc_time *tm) -{ - memset(tm, 0, sizeof(struct rtc_time)); - return ops->read_time(tm); -} - -static inline int rtc_arm_set_time(struct rtc_ops *ops, struct rtc_time *tm) -{ - int ret; - - ret = rtc_valid_tm(tm); - if (ret == 0) - ret = ops->set_time(tm); - - return ret; -} - -static inline int rtc_arm_read_alarm(struct rtc_ops *ops, struct rtc_wkalrm *alrm) -{ - int ret = -EINVAL; - if (ops->read_alarm) { - memset(alrm, 0, sizeof(struct rtc_wkalrm)); - ret = ops->read_alarm(alrm); - } - return ret; -} - -static inline int rtc_arm_set_alarm(struct rtc_ops *ops, struct rtc_wkalrm *alrm) -{ - int ret = -EINVAL; - if (ops->set_alarm) - ret = ops->set_alarm(alrm); - return ret; -} - -void rtc_update(unsigned long num, unsigned long events) -{ - spin_lock(&rtc_lock); - rtc_irq_data = (rtc_irq_data + (num << 8)) | events; - spin_unlock(&rtc_lock); - - wake_up_interruptible(&rtc_wait); - kill_fasync(&rtc_async_queue, SIGIO, POLL_IN); -} -EXPORT_SYMBOL(rtc_update); - - -static ssize_t -rtc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) -{ - DECLARE_WAITQUEUE(wait, current); - unsigned long data; - ssize_t ret; - - if (count < sizeof(unsigned long)) - return -EINVAL; - - add_wait_queue(&rtc_wait, &wait); - do { - __set_current_state(TASK_INTERRUPTIBLE); - - spin_lock_irq(&rtc_lock); - data = rtc_irq_data; - rtc_irq_data = 0; - spin_unlock_irq(&rtc_lock); - - if (data != 0) { - ret = 0; - break; - } - if (file->f_flags & O_NONBLOCK) { - ret = -EAGAIN; - break; - } - if (signal_pending(current)) { - ret = -ERESTARTSYS; - break; - } - schedule(); - } while (1); - set_current_state(TASK_RUNNING); - remove_wait_queue(&rtc_wait, &wait); - - if (ret == 0) { - ret = put_user(data, (unsigned long __user *)buf); - if (ret == 0) - ret = sizeof(unsigned long); - } - return ret; -} - -static unsigned int rtc_poll(struct file *file, poll_table *wait) -{ - unsigned long data; - - poll_wait(file, &rtc_wait, wait); - - spin_lock_irq(&rtc_lock); - data = rtc_irq_data; - spin_unlock_irq(&rtc_lock); - - return data != 0 ? POLLIN | POLLRDNORM : 0; -} - -static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, - unsigned long arg) -{ - struct rtc_ops *ops = file->private_data; - struct rtc_time tm; - struct rtc_wkalrm alrm; - void __user *uarg = (void __user *)arg; - int ret = -EINVAL; - - switch (cmd) { - case RTC_ALM_READ: - ret = rtc_arm_read_alarm(ops, &alrm); - if (ret) - break; - ret = copy_to_user(uarg, &alrm.time, sizeof(tm)); - if (ret) - ret = -EFAULT; - break; - - case RTC_ALM_SET: - ret = copy_from_user(&alrm.time, uarg, sizeof(tm)); - if (ret) { - ret = -EFAULT; - break; - } - alrm.enabled = 0; - alrm.pending = 0; - alrm.time.tm_mday = -1; - alrm.time.tm_mon = -1; - alrm.time.tm_year = -1; - alrm.time.tm_wday = -1; - alrm.time.tm_yday = -1; - alrm.time.tm_isdst = -1; - ret = rtc_arm_set_alarm(ops, &alrm); - break; - - case RTC_RD_TIME: - ret = rtc_arm_read_time(ops, &tm); - if (ret) - break; - ret = copy_to_user(uarg, &tm, sizeof(tm)); - if (ret) - ret = -EFAULT; - break; - - case RTC_SET_TIME: - if (!capable(CAP_SYS_TIME)) { - ret = -EACCES; - break; - } - ret = copy_from_user(&tm, uarg, sizeof(tm)); - if (ret) { - ret = -EFAULT; - break; - } - ret = rtc_arm_set_time(ops, &tm); - break; - - case RTC_EPOCH_SET: -#ifndef rtc_epoch - /* - * There were no RTC clocks before 1900. - */ - if (arg < 1900) { - ret = -EINVAL; - break; - } - if (!capable(CAP_SYS_TIME)) { - ret = -EACCES; - break; - } - rtc_epoch = arg; - ret = 0; -#endif - break; - - case RTC_EPOCH_READ: - ret = put_user(rtc_epoch, (unsigned long __user *)uarg); - break; - - case RTC_WKALM_SET: - ret = copy_from_user(&alrm, uarg, sizeof(alrm)); - if (ret) { - ret = -EFAULT; - break; - } - ret = rtc_arm_set_alarm(ops, &alrm); - break; - - case RTC_WKALM_RD: - ret = rtc_arm_read_alarm(ops, &alrm); - if (ret) - break; - ret = copy_to_user(uarg, &alrm, sizeof(alrm)); - if (ret) - ret = -EFAULT; - break; - - default: - if (ops->ioctl) - ret = ops->ioctl(cmd, arg); - break; - } - return ret; -} - -static int rtc_open(struct inode *inode, struct file *file) -{ - int ret; - - mutex_lock(&rtc_mutex); - - if (rtc_inuse) { - ret = -EBUSY; - } else if (!rtc_ops || !try_module_get(rtc_ops->owner)) { - ret = -ENODEV; - } else { - file->private_data = rtc_ops; - - ret = rtc_ops->open ? rtc_ops->open() : 0; - if (ret == 0) { - spin_lock_irq(&rtc_lock); - rtc_irq_data = 0; - spin_unlock_irq(&rtc_lock); - - rtc_inuse = 1; - } - } - mutex_unlock(&rtc_mutex); - - return ret; -} - -static int rtc_release(struct inode *inode, struct file *file) -{ - struct rtc_ops *ops = file->private_data; - - if (ops->release) - ops->release(); - - spin_lock_irq(&rtc_lock); - rtc_irq_data = 0; - spin_unlock_irq(&rtc_lock); - - module_put(rtc_ops->owner); - rtc_inuse = 0; - - return 0; -} - -static int rtc_fasync(int fd, struct file *file, int on) -{ - return fasync_helper(fd, file, on, &rtc_async_queue); -} - -static const struct file_operations rtc_fops = { - .owner = THIS_MODULE, - .llseek = no_llseek, - .read = rtc_read, - .poll = rtc_poll, - .ioctl = rtc_ioctl, - .open = rtc_open, - .release = rtc_release, - .fasync = rtc_fasync, -}; - -static struct miscdevice rtc_miscdev = { - .minor = RTC_MINOR, - .name = "rtc", - .fops = &rtc_fops, -}; - - -static int rtc_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) -{ - struct rtc_ops *ops = data; - struct rtc_wkalrm alrm; - struct rtc_time tm; - char *p = page; - - if (rtc_arm_read_time(ops, &tm) == 0) { - p += sprintf(p, - "rtc_time\t: %02d:%02d:%02d\n" - "rtc_date\t: %04d-%02d-%02d\n" - "rtc_epoch\t: %04lu\n", - tm.tm_hour, tm.tm_min, tm.tm_sec, - tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, - rtc_epoch); - } - - if (rtc_arm_read_alarm(ops, &alrm) == 0) { - p += sprintf(p, "alrm_time\t: "); - if ((unsigned int)alrm.time.tm_hour <= 24) - p += sprintf(p, "%02d:", alrm.time.tm_hour); - else - p += sprintf(p, "**:"); - if ((unsigned int)alrm.time.tm_min <= 59) - p += sprintf(p, "%02d:", alrm.time.tm_min); - else - p += sprintf(p, "**:"); - if ((unsigned int)alrm.time.tm_sec <= 59) - p += sprintf(p, "%02d\n", alrm.time.tm_sec); - else - p += sprintf(p, "**\n"); - - p += sprintf(p, "alrm_date\t: "); - if ((unsigned int)alrm.time.tm_year <= 200) - p += sprintf(p, "%04d-", alrm.time.tm_year + 1900); - else - p += sprintf(p, "****-"); - if ((unsigned int)alrm.time.tm_mon <= 11) - p += sprintf(p, "%02d-", alrm.time.tm_mon + 1); - else - p += sprintf(p, "**-"); - if ((unsigned int)alrm.time.tm_mday <= 31) - p += sprintf(p, "%02d\n", alrm.time.tm_mday); - else - p += sprintf(p, "**\n"); - p += sprintf(p, "alrm_wakeup\t: %s\n", - alrm.enabled ? "yes" : "no"); - p += sprintf(p, "alrm_pending\t: %s\n", - alrm.pending ? "yes" : "no"); - } - - if (ops->proc) - p += ops->proc(p); - - return p - page; -} - -int register_rtc(struct rtc_ops *ops) -{ - int ret = -EBUSY; - - mutex_lock(&rtc_mutex); - if (rtc_ops == NULL) { - rtc_ops = ops; - - ret = misc_register(&rtc_miscdev); - if (ret == 0) - create_proc_read_entry("driver/rtc", 0, NULL, - rtc_read_proc, ops); - } - mutex_unlock(&rtc_mutex); - - return ret; -} -EXPORT_SYMBOL(register_rtc); - -void unregister_rtc(struct rtc_ops *rtc) -{ - mutex_lock(&rtc_mutex); - if (rtc == rtc_ops) { - remove_proc_entry("driver/rtc", NULL); - misc_deregister(&rtc_miscdev); - rtc_ops = NULL; - } - mutex_unlock(&rtc_mutex); -} -EXPORT_SYMBOL(unregister_rtc); diff -puN arch/arm/common/sa1111.c~linux-next arch/arm/common/sa1111.c --- a/arch/arm/common/sa1111.c~linux-next +++ a/arch/arm/common/sa1111.c @@ -550,9 +550,7 @@ sa1111_init_one_child(struct sa1111 *sac goto out; } - snprintf(dev->dev.bus_id, sizeof(dev->dev.bus_id), - "%4.4lx", info->offset); - + dev_set_name(&dev->dev, "%4.4lx", info->offset); dev->devid = info->devid; dev->dev.parent = sachip->dev; dev->dev.bus = &sa1111_bus_type; @@ -560,7 +558,7 @@ sa1111_init_one_child(struct sa1111 *sac dev->dev.coherent_dma_mask = sachip->dev->coherent_dma_mask; dev->res.start = sachip->phys + info->offset; dev->res.end = dev->res.start + 511; - dev->res.name = dev->dev.bus_id; + dev->res.name = dev_name(&dev->dev); dev->res.flags = IORESOURCE_MEM; dev->mapbase = sachip->base + info->offset; dev->skpcr_mask = info->skpcr_mask; @@ -570,6 +568,7 @@ sa1111_init_one_child(struct sa1111 *sac if (ret) { printk("SA1111: failed to allocate resource for %s\n", dev->res.name); + dev_set_name(&dev->dev, NULL); kfree(dev); goto out; } @@ -593,7 +592,8 @@ sa1111_init_one_child(struct sa1111 *sac if (dev->dma_mask != 0xffffffffUL) { ret = dmabounce_register_dev(&dev->dev, 1024, 4096); if (ret) { - printk("SA1111: Failed to register %s with dmabounce", dev->dev.bus_id); + dev_err(&dev->dev, "SA1111: Failed to register" + " with dmabounce\n"); device_unregister(&dev->dev); } } diff -puN arch/arm/common/scoop.c~linux-next arch/arm/common/scoop.c --- a/arch/arm/common/scoop.c~linux-next +++ a/arch/arm/common/scoop.c @@ -247,7 +247,7 @@ static int __devinit scoop_probe(struct devptr->gpio.base = -1; if (inf->gpio_base != 0) { - devptr->gpio.label = pdev->dev.bus_id; + devptr->gpio.label = dev_name(&pdev->dev); devptr->gpio.base = inf->gpio_base; devptr->gpio.ngpio = 12; /* PA11 = 0, PA12 = 1, etc. up to PA22 = 11 */ devptr->gpio.set = scoop_gpio_set; diff -puN arch/arm/common/sharpsl_pm.c~linux-next arch/arm/common/sharpsl_pm.c --- a/arch/arm/common/sharpsl_pm.c~linux-next +++ a/arch/arm/common/sharpsl_pm.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -157,6 +158,7 @@ static void sharpsl_battery_thread(struc dev_dbg(sharpsl_pm.dev, "Battery: voltage: %d, status: %d, percentage: %d, time: %ld\n", voltage, sharpsl_pm.battstat.mainbat_status, sharpsl_pm.battstat.mainbat_percent, jiffies); +#ifdef CONFIG_BACKLIGHT_CORGI /* If battery is low. limit backlight intensity to save power. */ if ((sharpsl_pm.battstat.ac_status != APM_AC_ONLINE) && ((sharpsl_pm.battstat.mainbat_status == APM_BATTERY_STATUS_LOW) || @@ -169,6 +171,7 @@ static void sharpsl_battery_thread(struc sharpsl_pm.machinfo->backlight_limit(0); sharpsl_pm.flags &= ~SHARPSL_BL_LIMIT; } +#endif /* Suspend if critical battery level */ if ((sharpsl_pm.battstat.ac_status != APM_AC_ONLINE) diff -puN arch/arm/configs/at91cap9adk_defconfig~linux-next arch/arm/configs/at91cap9adk_defconfig --- a/arch/arm/configs/at91cap9adk_defconfig~linux-next +++ a/arch/arm/configs/at91cap9adk_defconfig @@ -213,7 +213,6 @@ CONFIG_CPU_CP15_MMU=y # # CONFIG_TICK_ONESHOT is not set # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 CONFIG_AEABI=y CONFIG_OABI_COMPAT=y @@ -907,7 +906,32 @@ CONFIG_USB_MON=y # # USB Gadget Support # -# CONFIG_USB_GADGET is not set +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_AMD5536UDC is not set +CONFIG_USB_GADGET_ATMEL_USBA=y +CONFIG_USB_ATMEL_USBA=y +# CONFIG_USB_GADGET_FSL_USB2 is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_M66592 is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_S3C2410 is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_ZERO is not set +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +# CONFIG_USB_GADGETFS is not set +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set @@ -926,7 +950,59 @@ CONFIG_MMC_AT91=y # CONFIG_MMC_SPI is not set # CONFIG_NEW_LEDS is not set CONFIG_RTC_LIB=y -# CONFIG_RTC_CLASS is not set +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set + +# +# SPI RTC drivers +# +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_R9701 is not set +# CONFIG_RTC_DRV_RS5C348 is not set + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# +CONFIG_RTC_DRV_AT91SAM9=y +CONFIG_RTC_DRV_AT91SAM9_RTT=0 +CONFIG_RTC_DRV_AT91SAM9_GPBR=0 # # File systems diff -puN arch/arm/configs/at91rm9200dk_defconfig~linux-next arch/arm/configs/at91rm9200dk_defconfig --- a/arch/arm/configs/at91rm9200dk_defconfig~linux-next +++ a/arch/arm/configs/at91rm9200dk_defconfig @@ -169,7 +169,6 @@ CONFIG_AT91_CF=y # Kernel Features # # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y diff -puN arch/arm/configs/at91rm9200ek_defconfig~linux-next arch/arm/configs/at91rm9200ek_defconfig --- a/arch/arm/configs/at91rm9200ek_defconfig~linux-next +++ a/arch/arm/configs/at91rm9200ek_defconfig @@ -160,7 +160,6 @@ CONFIG_ISA_DMA_API=y # Kernel Features # # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y diff -puN arch/arm/configs/at91sam9260ek_defconfig~linux-next arch/arm/configs/at91sam9260ek_defconfig --- a/arch/arm/configs/at91sam9260ek_defconfig~linux-next +++ a/arch/arm/configs/at91sam9260ek_defconfig @@ -220,7 +220,6 @@ CONFIG_CPU_CP15_MMU=y # # CONFIG_TICK_ONESHOT is not set # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/at91sam9261ek_defconfig~linux-next arch/arm/configs/at91sam9261ek_defconfig --- a/arch/arm/configs/at91sam9261ek_defconfig~linux-next +++ a/arch/arm/configs/at91sam9261ek_defconfig @@ -213,7 +213,6 @@ CONFIG_CPU_CP15_MMU=y # # CONFIG_TICK_ONESHOT is not set # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/at91sam9263ek_defconfig~linux-next arch/arm/configs/at91sam9263ek_defconfig --- a/arch/arm/configs/at91sam9263ek_defconfig~linux-next +++ a/arch/arm/configs/at91sam9263ek_defconfig @@ -213,7 +213,6 @@ CONFIG_CPU_CP15_MMU=y # # CONFIG_TICK_ONESHOT is not set # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/at91sam9rlek_defconfig~linux-next arch/arm/configs/at91sam9rlek_defconfig --- a/arch/arm/configs/at91sam9rlek_defconfig~linux-next +++ a/arch/arm/configs/at91sam9rlek_defconfig @@ -211,7 +211,6 @@ CONFIG_CPU_CP15_MMU=y # # CONFIG_TICK_ONESHOT is not set # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/ateb9200_defconfig~linux-next arch/arm/configs/ateb9200_defconfig --- a/arch/arm/configs/ateb9200_defconfig~linux-next +++ a/arch/arm/configs/ateb9200_defconfig @@ -171,7 +171,6 @@ CONFIG_AT91_CF=m # Kernel Features # CONFIG_PREEMPT=y -CONFIG_NO_IDLE_HZ=y CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/cm_x270_defconfig~linux-next /dev/null --- a/arch/arm/configs/cm_x270_defconfig +++ /dev/null @@ -1,1410 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.22 -# Wed Jul 18 14:11:48 2007 -# -CONFIG_ARM=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_GENERIC_GPIO=y -CONFIG_GENERIC_TIME=y -# CONFIG_GENERIC_CLOCKEVENTS is not set -CONFIG_MMU=y -# CONFIG_NO_IOPORT is not set -CONFIG_GENERIC_HARDIRQS=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -# CONFIG_ARCH_HAS_ILOG2_U32 is not set -# CONFIG_ARCH_HAS_ILOG2_U64 is not set -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_ZONE_DMA=y -CONFIG_ARCH_MTD_XIP=y -CONFIG_VECTORS_BASE=0xffff0000 -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" - -# -# Code maturity level options -# -CONFIG_EXPERIMENTAL=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 - -# -# General setup -# -CONFIG_LOCALVERSION="" -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SWAP=y -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_TASKSTATS is not set -# CONFIG_USER_NS is not set -# CONFIG_AUDIT is not set -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y -CONFIG_LOG_BUF_SHIFT=17 -CONFIG_SYSFS_DEPRECATED=y -# CONFIG_RELAY is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_SYSCTL=y -CONFIG_EMBEDDED=y -CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set -CONFIG_HOTPLUG=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_ANON_INODES=y -# CONFIG_EPOLL is not set -# CONFIG_SIGNALFD is not set -# CONFIG_TIMERFD is not set -# CONFIG_EVENTFD is not set -CONFIG_SHMEM=y -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_SLAB=y -# CONFIG_SLUB is not set -# CONFIG_SLOB is not set -CONFIG_RT_MUTEXES=y -# CONFIG_TINY_SHMEM is not set -CONFIG_BASE_SMALL=0 -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_KMOD=y -CONFIG_BLOCK=y -# CONFIG_LBD is not set -# CONFIG_BLK_DEV_IO_TRACE is not set -# CONFIG_LSF is not set -# CONFIG_BLK_DEV_BSG is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -CONFIG_DEFAULT_AS=y -# CONFIG_DEFAULT_DEADLINE is not set -# CONFIG_DEFAULT_CFQ is not set -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="anticipatory" - -# -# System Type -# -# CONFIG_ARCH_AAEC2000 is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_CLPS7500 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CO285 is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_EP93XX is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_IOP13XX is not set -# CONFIG_ARCH_IOP32X is not set -# CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP23XX is not set -# CONFIG_ARCH_IXP2000 is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_L7200 is not set -# CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_NS9XXX is not set -# CONFIG_ARCH_PNX4008 is not set -CONFIG_ARCH_PXA=y -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_OMAP is not set -CONFIG_DMABOUNCE=y - -# -# Intel PXA2xx Implementations -# -# CONFIG_ARCH_LUBBOCK is not set -# CONFIG_MACH_LOGICPD_PXA270 is not set -# CONFIG_MACH_MAINSTONE is not set -# CONFIG_ARCH_PXA_IDP is not set -# CONFIG_PXA_SHARPSL is not set -# CONFIG_MACH_TRIZEPS4 is not set -CONFIG_MACH_ARMCORE=y -CONFIG_PXA27x=y - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_XSCALE=y -CONFIG_CPU_32v5=y -CONFIG_CPU_ABRT_EV5T=y -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_TLB_V4WBI=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y - -# -# Processor Features -# -CONFIG_ARM_THUMB=y -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_OUTER_CACHE is not set -CONFIG_IWMMXT=y -CONFIG_XSCALE_PMU=y - -# -# Bus support -# -CONFIG_PCI=y -CONFIG_PCI_SYSCALL=y -CONFIG_PCI_HOST_ITE8152=y -# CONFIG_ARCH_SUPPORTS_MSI is not set -# CONFIG_PCI_DEBUG is not set - -# -# PCCARD (PCMCIA/CardBus) support -# -# CONFIG_PCCARD is not set - -# -# Kernel Features -# -# CONFIG_TICK_ONESHOT is not set -# CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set -CONFIG_HZ=100 -# CONFIG_AEABI is not set -# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -# CONFIG_SPARSEMEM_STATIC is not set -CONFIG_SPLIT_PTLOCK_CPUS=4096 -# CONFIG_RESOURCES_64BIT is not set -CONFIG_ZONE_DMA_FLAG=1 -CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y -CONFIG_ALIGNMENT_TRAP=y - -# -# Boot options -# -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="" -# CONFIG_XIP_KERNEL is not set -# CONFIG_KEXEC is not set - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -# CONFIG_FPE_FASTFPE is not set - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set -# CONFIG_ARTHUR is not set - -# -# Power management options -# -CONFIG_PM=y -# CONFIG_PM_LEGACY is not set -# CONFIG_PM_DEBUG is not set -# CONFIG_PM_SYSFS_DEPRECATED is not set -# CONFIG_APM_EMULATION is not set - -# -# Networking -# -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -# CONFIG_PACKET_MMAP is not set -CONFIG_UNIX=y -CONFIG_XFRM=y -# CONFIG_XFRM_USER is not set -# CONFIG_XFRM_SUB_POLICY is not set -# CONFIG_XFRM_MIGRATE is not set -# CONFIG_NET_KEY is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_FIB_HASH=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -# CONFIG_IP_PNP_RARP is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE is not set -# CONFIG_ARPD is not set -# CONFIG_SYN_COOKIES is not set -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -# CONFIG_INET_XFRM_TUNNEL is not set -# CONFIG_INET_TUNNEL is not set -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y -# CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_CUBIC=y -CONFIG_DEFAULT_TCP_CONG="cubic" -# CONFIG_TCP_MD5SIG is not set -# CONFIG_IPV6 is not set -# CONFIG_INET6_XFRM_TUNNEL is not set -# CONFIG_INET6_TUNNEL is not set -# CONFIG_NETWORK_SECMARK is not set -# CONFIG_NETFILTER is not set -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_TIPC is not set -# CONFIG_ATM is not set -# CONFIG_BRIDGE is not set -# CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set - -# -# QoS and/or fair queueing -# -# CONFIG_NET_SCHED is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_IRDA is not set -# CONFIG_BT is not set -# CONFIG_AF_RXRPC is not set - -# -# Wireless -# -# CONFIG_CFG80211 is not set -CONFIG_WIRELESS_EXT=y -# CONFIG_MAC80211 is not set -CONFIG_IEEE80211=m -# CONFIG_IEEE80211_DEBUG is not set -CONFIG_IEEE80211_CRYPT_WEP=m -CONFIG_IEEE80211_CRYPT_CCMP=m -# CONFIG_IEEE80211_CRYPT_TKIP is not set -# CONFIG_IEEE80211_SOFTMAC is not set -# CONFIG_RFKILL is not set -# CONFIG_NET_9P is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=y -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_SYS_HYPERVISOR is not set -# CONFIG_CONNECTOR is not set -CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set -# CONFIG_MTD_CONCAT is not set -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_AFS_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_SHARP_SL is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -CONFIG_MTD_NAND=m -# CONFIG_MTD_NAND_VERIFY_WRITE is not set -# CONFIG_MTD_NAND_ECC_SMC is not set -# CONFIG_MTD_NAND_MUSEUM_IDS is not set -# CONFIG_MTD_NAND_H1900 is not set -CONFIG_MTD_NAND_IDS=m -# CONFIG_MTD_NAND_DISKONCHIP is not set -# CONFIG_MTD_NAND_SHARPSL is not set -# CONFIG_MTD_NAND_CAFE is not set -CONFIG_MTD_NAND_CM_X270=m -# CONFIG_MTD_NAND_NANDSIM is not set -# CONFIG_MTD_NAND_PLATFORM is not set -# CONFIG_MTD_ONENAND is not set - -# -# UBI - Unsorted block images -# -# CONFIG_MTD_UBI is not set -# CONFIG_PARPORT is not set -CONFIG_BLK_DEV=y -# CONFIG_BLK_CPQ_DA is not set -# CONFIG_BLK_CPQ_CISS_DA is not set -# CONFIG_BLK_DEV_DAC960 is not set -# CONFIG_BLK_DEV_UMEM is not set -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -# CONFIG_BLK_DEV_CRYPTOLOOP is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_SX8 is not set -# CONFIG_BLK_DEV_UB is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=12000 -CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -CONFIG_IDE=m -CONFIG_IDE_MAX_HWIFS=4 -CONFIG_BLK_DEV_IDE=m - -# -# Please see Documentation/ide.txt for help/info on IDE drives -# -# CONFIG_BLK_DEV_IDE_SATA is not set -CONFIG_BLK_DEV_IDEDISK=m -# CONFIG_IDEDISK_MULTI_MODE is not set -CONFIG_BLK_DEV_IDECD=m -# CONFIG_BLK_DEV_IDETAPE is not set -# CONFIG_BLK_DEV_IDEFLOPPY is not set -# CONFIG_BLK_DEV_IDESCSI is not set -# CONFIG_IDE_TASK_IOCTL is not set -CONFIG_IDE_PROC_FS=y - -# -# IDE chipset support/bugfixes -# -# CONFIG_IDE_GENERIC is not set -# CONFIG_BLK_DEV_IDEPCI is not set -# CONFIG_IDEPCI_PCIBUS_ORDER is not set -# CONFIG_IDE_ARM is not set -# CONFIG_BLK_DEV_IDEDMA is not set -# CONFIG_BLK_DEV_HD is not set - -# -# SCSI device support -# -# CONFIG_RAID_ATTRS is not set -CONFIG_SCSI=y -CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set -# CONFIG_SCSI_NETLINK is not set -# CONFIG_SCSI_PROC_FS is not set - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=y -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -# CONFIG_BLK_DEV_SR is not set -# CONFIG_CHR_DEV_SG is not set -# CONFIG_CHR_DEV_SCH is not set - -# -# Some SCSI devices (e.g. CD jukebox) support multiple LUNs -# -# CONFIG_SCSI_MULTI_LUN is not set -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m - -# -# SCSI Transports -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set -# CONFIG_SCSI_SAS_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set - -# -# SCSI low-level drivers -# -# CONFIG_ISCSI_TCP is not set -# CONFIG_BLK_DEV_3W_XXXX_RAID is not set -# CONFIG_SCSI_3W_9XXX is not set -# CONFIG_SCSI_ACARD is not set -# CONFIG_SCSI_AACRAID is not set -# CONFIG_SCSI_AIC7XXX is not set -# CONFIG_SCSI_AIC7XXX_OLD is not set -# CONFIG_SCSI_AIC79XX is not set -# CONFIG_SCSI_AIC94XX is not set -# CONFIG_SCSI_DPT_I2O is not set -# CONFIG_SCSI_ARCMSR is not set -# CONFIG_MEGARAID_NEWGEN is not set -# CONFIG_MEGARAID_LEGACY is not set -# CONFIG_MEGARAID_SAS is not set -# CONFIG_SCSI_HPTIOP is not set -# CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_FUTURE_DOMAIN is not set -# CONFIG_SCSI_IPS is not set -# CONFIG_SCSI_INITIO is not set -# CONFIG_SCSI_INIA100 is not set -# CONFIG_SCSI_STEX is not set -# CONFIG_SCSI_SYM53C8XX_2 is not set -# CONFIG_SCSI_QLOGIC_1280 is not set -# CONFIG_SCSI_QLA_FC is not set -# CONFIG_SCSI_QLA_ISCSI is not set -# CONFIG_SCSI_LPFC is not set -# CONFIG_SCSI_DC395x is not set -# CONFIG_SCSI_DC390T is not set -# CONFIG_SCSI_NSP32 is not set -# CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_SRP is not set -# CONFIG_ATA is not set -# CONFIG_MD is not set - -# -# Fusion MPT device support -# -# CONFIG_FUSION is not set -# CONFIG_FUSION_SPI is not set -# CONFIG_FUSION_FC is not set -# CONFIG_FUSION_SAS is not set - -# -# IEEE 1394 (FireWire) support -# -# CONFIG_FIREWIRE is not set -# CONFIG_IEEE1394 is not set -# CONFIG_I2O is not set -CONFIG_NETDEVICES=y -# CONFIG_NETDEVICES_MULTIQUEUE is not set -# CONFIG_DUMMY is not set -# CONFIG_BONDING is not set -# CONFIG_MACVLAN is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set -# CONFIG_ARCNET is not set -# CONFIG_PHYLIB is not set -CONFIG_NET_ETHERNET=y -CONFIG_MII=y -# CONFIG_AX88796 is not set -# CONFIG_HAPPYMEAL is not set -# CONFIG_SUNGEM is not set -# CONFIG_CASSINI is not set -# CONFIG_NET_VENDOR_3COM is not set -# CONFIG_SMC91X is not set -CONFIG_DM9000=y -# CONFIG_SMC911X is not set -# CONFIG_NET_TULIP is not set -# CONFIG_HP100 is not set -CONFIG_NET_PCI=y -# CONFIG_PCNET32 is not set -# CONFIG_AMD8111_ETH is not set -# CONFIG_ADAPTEC_STARFIRE is not set -# CONFIG_B44 is not set -# CONFIG_FORCEDETH is not set -# CONFIG_DGRS is not set -# CONFIG_EEPRO100 is not set -# CONFIG_E100 is not set -# CONFIG_FEALNX is not set -# CONFIG_NATSEMI is not set -# CONFIG_NE2K_PCI is not set -# CONFIG_8139CP is not set -CONFIG_8139TOO=m -# CONFIG_8139TOO_PIO is not set -# CONFIG_8139TOO_TUNE_TWISTER is not set -# CONFIG_8139TOO_8129 is not set -# CONFIG_8139_OLD_RX_RESET is not set -# CONFIG_SIS900 is not set -# CONFIG_EPIC100 is not set -# CONFIG_SUNDANCE is not set -# CONFIG_TLAN is not set -# CONFIG_VIA_RHINE is not set -# CONFIG_SC92031 is not set -CONFIG_NETDEV_1000=y -# CONFIG_ACENIC is not set -# CONFIG_DL2K is not set -# CONFIG_E1000 is not set -# CONFIG_NS83820 is not set -# CONFIG_HAMACHI is not set -# CONFIG_YELLOWFIN is not set -# CONFIG_R8169 is not set -# CONFIG_SIS190 is not set -# CONFIG_SKGE is not set -# CONFIG_SKY2 is not set -# CONFIG_VIA_VELOCITY is not set -# CONFIG_TIGON3 is not set -# CONFIG_BNX2 is not set -# CONFIG_QLA3XXX is not set -# CONFIG_ATL1 is not set -CONFIG_NETDEV_10000=y -# CONFIG_CHELSIO_T1 is not set -# CONFIG_CHELSIO_T3 is not set -# CONFIG_IXGB is not set -# CONFIG_S2IO is not set -# CONFIG_MYRI10GE is not set -# CONFIG_NETXEN_NIC is not set -# CONFIG_MLX4_CORE is not set -# CONFIG_TR is not set - -# -# Wireless LAN -# -# CONFIG_WLAN_PRE80211 is not set -# CONFIG_WLAN_80211 is not set - -# -# USB Network Adapters -# -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_USBNET_MII is not set -# CONFIG_USB_USBNET is not set -# CONFIG_WAN is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set -# CONFIG_NET_FC is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=y -# CONFIG_INPUT_FF_MEMLESS is not set -# CONFIG_INPUT_POLLDEV is not set - -# -# Userland interfaces -# -# CONFIG_INPUT_MOUSEDEV is not set -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_TSDEV is not set -CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set -CONFIG_INPUT_TOUCHSCREEN=y -# CONFIG_TOUCHSCREEN_GUNZE is not set -# CONFIG_TOUCHSCREEN_ELO is not set -# CONFIG_TOUCHSCREEN_MTOUCH is not set -# CONFIG_TOUCHSCREEN_MK712 is not set -# CONFIG_TOUCHSCREEN_PENMOUNT is not set -# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set -# CONFIG_TOUCHSCREEN_TOUCHWIN is not set -CONFIG_TOUCHSCREEN_UCB1400=m -# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set -# CONFIG_INPUT_MISC is not set - -# -# Hardware I/O ports -# -# CONFIG_SERIO is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -# CONFIG_SERIAL_8250 is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_PXA=y -CONFIG_SERIAL_PXA_CONSOLE=y -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set -CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 -# CONFIG_IPMI_HANDLER is not set -# CONFIG_WATCHDOG is not set -CONFIG_HW_RANDOM=m -# CONFIG_NVRAM is not set -# CONFIG_R3964 is not set -# CONFIG_APPLICOM is not set -# CONFIG_DRM is not set -# CONFIG_RAW_DRIVER is not set -# CONFIG_TCG_TPM is not set -CONFIG_DEVPORT=y -# CONFIG_I2C is not set - -# -# SPI support -# -# CONFIG_SPI is not set -# CONFIG_SPI_MASTER is not set -# CONFIG_W1 is not set -# CONFIG_HWMON is not set -CONFIG_MISC_DEVICES=y -# CONFIG_PHANTOM is not set -# CONFIG_EEPROM_93CX6 is not set -# CONFIG_SGI_IOC4 is not set -# CONFIG_TIFM_CORE is not set - -# -# Multifunction device drivers -# -# CONFIG_MFD_SM501 is not set - -# -# LED devices -# -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y - -# -# LED drivers -# -CONFIG_LEDS_CM_X270=y - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGERS=y -# CONFIG_LEDS_TRIGGER_TIMER is not set -# CONFIG_LEDS_TRIGGER_IDE_DISK is not set -CONFIG_LEDS_TRIGGER_HEARTBEAT=y - -# -# Multimedia devices -# -# CONFIG_VIDEO_DEV is not set -# CONFIG_DVB_CORE is not set -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set - -# -# Graphics support -# -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set - -# -# Display device support -# -# CONFIG_DISPLAY_SUPPORT is not set -# CONFIG_VGASTATE is not set -CONFIG_FB=y -# CONFIG_FIRMWARE_EDID is not set -# CONFIG_FB_DDC is not set -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_SYS_FILLRECT is not set -# CONFIG_FB_SYS_COPYAREA is not set -# CONFIG_FB_SYS_IMAGEBLIT is not set -# CONFIG_FB_SYS_FOPS is not set -CONFIG_FB_DEFERRED_IO=y -# CONFIG_FB_SVGALIB is not set -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_BACKLIGHT is not set -# CONFIG_FB_MODE_HELPERS is not set -# CONFIG_FB_TILEBLITTING is not set - -# -# Frame buffer hardware drivers -# -# CONFIG_FB_CIRRUS is not set -# CONFIG_FB_PM2 is not set -# CONFIG_FB_CYBER2000 is not set -# CONFIG_FB_ASILIANT is not set -# CONFIG_FB_IMSTT is not set -# CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_NVIDIA is not set -# CONFIG_FB_RIVA is not set -# CONFIG_FB_MATROX is not set -# CONFIG_FB_RADEON is not set -# CONFIG_FB_ATY128 is not set -# CONFIG_FB_ATY is not set -# CONFIG_FB_S3 is not set -# CONFIG_FB_SAVAGE is not set -# CONFIG_FB_SIS is not set -# CONFIG_FB_NEOMAGIC is not set -# CONFIG_FB_KYRO is not set -# CONFIG_FB_3DFX is not set -# CONFIG_FB_VOODOO1 is not set -# CONFIG_FB_VT8623 is not set -# CONFIG_FB_TRIDENT is not set -# CONFIG_FB_ARK is not set -# CONFIG_FB_PM3 is not set -CONFIG_FB_PXA=y -# CONFIG_FB_PXA_PARAMETERS is not set -CONFIG_FB_MBX=m -# CONFIG_FB_VIRTUAL is not set - -# -# Console display driver support -# -# CONFIG_VGA_CONSOLE is not set -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y - -# -# Sound -# -CONFIG_SOUND=m - -# -# Advanced Linux Sound Architecture -# -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m -# CONFIG_SND_SEQUENCER is not set -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -# CONFIG_SND_DYNAMIC_MINORS is not set -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set - -# -# Generic devices -# -CONFIG_SND_AC97_CODEC=m -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set - -# -# PCI devices -# -# CONFIG_SND_AD1889 is not set -# CONFIG_SND_ALS300 is not set -# CONFIG_SND_ALI5451 is not set -# CONFIG_SND_ATIIXP is not set -# CONFIG_SND_ATIIXP_MODEM is not set -# CONFIG_SND_AU8810 is not set -# CONFIG_SND_AU8820 is not set -# CONFIG_SND_AU8830 is not set -# CONFIG_SND_AZT3328 is not set -# CONFIG_SND_BT87X is not set -# CONFIG_SND_CA0106 is not set -# CONFIG_SND_CMIPCI is not set -# CONFIG_SND_CS4281 is not set -# CONFIG_SND_CS46XX is not set -# CONFIG_SND_DARLA20 is not set -# CONFIG_SND_GINA20 is not set -# CONFIG_SND_LAYLA20 is not set -# CONFIG_SND_DARLA24 is not set -# CONFIG_SND_GINA24 is not set -# CONFIG_SND_LAYLA24 is not set -# CONFIG_SND_MONA is not set -# CONFIG_SND_MIA is not set -# CONFIG_SND_ECHO3G is not set -# CONFIG_SND_INDIGO is not set -# CONFIG_SND_INDIGOIO is not set -# CONFIG_SND_INDIGODJ is not set -# CONFIG_SND_EMU10K1 is not set -# CONFIG_SND_EMU10K1X is not set -# CONFIG_SND_ENS1370 is not set -# CONFIG_SND_ENS1371 is not set -# CONFIG_SND_ES1938 is not set -# CONFIG_SND_ES1968 is not set -# CONFIG_SND_FM801 is not set -# CONFIG_SND_HDA_INTEL is not set -# CONFIG_SND_HDSP is not set -# CONFIG_SND_HDSPM is not set -# CONFIG_SND_ICE1712 is not set -# CONFIG_SND_ICE1724 is not set -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -# CONFIG_SND_KORG1212 is not set -# CONFIG_SND_MAESTRO3 is not set -# CONFIG_SND_MIXART is not set -# CONFIG_SND_NM256 is not set -# CONFIG_SND_PCXHR is not set -# CONFIG_SND_RIPTIDE is not set -# CONFIG_SND_RME32 is not set -# CONFIG_SND_RME96 is not set -# CONFIG_SND_RME9652 is not set -# CONFIG_SND_SONICVIBES is not set -# CONFIG_SND_TRIDENT is not set -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -# CONFIG_SND_VX222 is not set -# CONFIG_SND_YMFPCI is not set -# CONFIG_SND_AC97_POWER_SAVE is not set - -# -# ALSA ARM devices -# -CONFIG_SND_PXA2XX_PCM=m -CONFIG_SND_PXA2XX_AC97=m - -# -# USB devices -# -# CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_CAIAQ is not set - -# -# System on Chip audio support -# -# CONFIG_SND_SOC is not set - -# -# Open Sound System -# -# CONFIG_SOUND_PRIME is not set -CONFIG_AC97_BUS=m -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HID_DEBUG is not set - -# -# USB Input Devices -# -CONFIG_USB_HID=y -# CONFIG_USB_HIDINPUT_POWERBOOK is not set -# CONFIG_HID_FF is not set -# CONFIG_USB_HIDDEV is not set -CONFIG_USB_SUPPORT=y -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=y -# CONFIG_USB_DEBUG is not set - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -# CONFIG_USB_DEVICE_CLASS is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_SUSPEND is not set -# CONFIG_USB_PERSIST is not set -# CONFIG_USB_OTG is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_EHCI_HCD is not set -# CONFIG_USB_ISP116X_HCD is not set -CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -# CONFIG_USB_UHCI_HCD is not set -# CONFIG_USB_SL811_HCD is not set -# CONFIG_USB_R8A66597_HCD is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_ACM is not set -# CONFIG_USB_PRINTER is not set - -# -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' -# - -# -# may also be needed; see USB_STORAGE Help for more information -# -CONFIG_USB_STORAGE=y -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_DPCM is not set -# CONFIG_USB_STORAGE_USBAT is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set -# CONFIG_USB_STORAGE_ALAUDA is not set -# CONFIG_USB_STORAGE_KARMA is not set -# CONFIG_USB_LIBUSUAL is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set -CONFIG_USB_MON=y - -# -# USB port drivers -# - -# -# USB Serial Converter support -# -# CONFIG_USB_SERIAL is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_ADUTUX is not set -# CONFIG_USB_AUERSWALD is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_BERRY_CHARGE is not set -# CONFIG_USB_LED is not set -# CONFIG_USB_CYPRESS_CY7C63 is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGET is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_FTDI_ELAN is not set -# CONFIG_USB_APPLEDISPLAY is not set -# CONFIG_USB_LD is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -# CONFIG_USB_IOWARRIOR is not set -# CONFIG_USB_TEST is not set - -# -# USB DSL modem support -# - -# -# USB Gadget Support -# -# CONFIG_USB_GADGET is not set -CONFIG_MMC=m -# CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_UNSAFE_RESUME is not set - -# -# MMC/SD Card Drivers -# -CONFIG_MMC_BLOCK=m -CONFIG_MMC_BLOCK_BOUNCE=y - -# -# MMC/SD Host Controller Drivers -# -CONFIG_MMC_PXA=m -# CONFIG_MMC_SDHCI is not set -# CONFIG_MMC_TIFM_SD is not set - -# -# Real Time Clock -# -CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_HCTOSYS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -# CONFIG_RTC_DEBUG is not set - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -# CONFIG_RTC_DRV_TEST is not set - -# -# Platform RTC drivers -# -# CONFIG_RTC_DRV_CMOS is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_M48T86 is not set -# CONFIG_RTC_DRV_M48T59 is not set -CONFIG_RTC_DRV_V3020=y - -# -# on-CPU RTC drivers -# -CONFIG_RTC_DRV_SA1100=y - -# -# DMA Engine support -# -# CONFIG_DMA_ENGINE is not set - -# -# DMA Clients -# - -# -# DMA Devices -# - -# -# File systems -# -CONFIG_EXT2_FS=y -# CONFIG_EXT2_FS_XATTR is not set -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y -CONFIG_EXT3_FS_XATTR=y -# CONFIG_EXT3_FS_POSIX_ACL is not set -# CONFIG_EXT3_FS_SECURITY is not set -# CONFIG_EXT4DEV_FS is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set -CONFIG_FS_MBCACHE=y -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set -# CONFIG_XFS_FS is not set -# CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_ROMFS_FS is not set -CONFIG_INOTIFY=y -CONFIG_INOTIFY_USER=y -# CONFIG_QUOTA is not set -CONFIG_DNOTIFY=y -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_FUSE_FS is not set - -# -# CD-ROM/DVD Filesystems -# -# CONFIG_ISO9660_FS is not set -# CONFIG_UDF_FS is not set - -# -# DOS/FAT/NT Filesystems -# -CONFIG_FAT_FS=y -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_PROC_SYSCTL=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set -# CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y -# CONFIG_CONFIGFS_FS is not set - -# -# Miscellaneous filesystems -# -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -# CONFIG_JFFS2_FS is not set -# CONFIG_CRAMFS is not set -# CONFIG_VXFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set - -# -# Network File Systems -# -CONFIG_NFS_FS=y -CONFIG_NFS_V3=y -# CONFIG_NFS_V3_ACL is not set -# CONFIG_NFS_V4 is not set -# CONFIG_NFS_DIRECTIO is not set -# CONFIG_NFSD is not set -CONFIG_ROOT_NFS=y -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -# CONFIG_SUNRPC_BIND34 is not set -# CONFIG_RPCSEC_GSS_KRB5 is not set -# CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=y -# CONFIG_SMB_NLS_DEFAULT is not set -# CONFIG_CIFS is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y - -# -# Native Language Support -# -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_CODEPAGE_437=y -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -# CONFIG_NLS_CODEPAGE_850 is not set -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -# CONFIG_NLS_UTF8 is not set - -# -# Distributed Lock Manager -# -# CONFIG_DLM is not set - -# -# Profiling support -# -# CONFIG_PROFILING is not set - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_MAGIC_SYSRQ=y -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_DETECT_SOFTLOCKUP is not set -CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set -# CONFIG_TIMER_STATS is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_RT_MUTEX_TESTER is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set -CONFIG_DEBUG_INFO=y -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_LIST is not set -CONFIG_FRAME_POINTER=y -CONFIG_FORCED_INLINING=y -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_FAULT_INJECTION is not set -CONFIG_DEBUG_USER=y -CONFIG_DEBUG_ERRORS=y -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY is not set -CONFIG_CRYPTO=y -CONFIG_CRYPTO_ALGAPI=m -CONFIG_CRYPTO_BLKCIPHER=m -CONFIG_CRYPTO_MANAGER=m -# CONFIG_CRYPTO_HMAC is not set -# CONFIG_CRYPTO_XCBC is not set -# CONFIG_CRYPTO_NULL is not set -# CONFIG_CRYPTO_MD4 is not set -# CONFIG_CRYPTO_MD5 is not set -# CONFIG_CRYPTO_SHA1 is not set -# CONFIG_CRYPTO_SHA256 is not set -# CONFIG_CRYPTO_SHA512 is not set -# CONFIG_CRYPTO_WP512 is not set -# CONFIG_CRYPTO_TGR192 is not set -# CONFIG_CRYPTO_GF128MUL is not set -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_PCBC=m -# CONFIG_CRYPTO_LRW is not set -# CONFIG_CRYPTO_CRYPTD is not set -# CONFIG_CRYPTO_DES is not set -# CONFIG_CRYPTO_FCRYPT is not set -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_TWOFISH is not set -# CONFIG_CRYPTO_SERPENT is not set -CONFIG_CRYPTO_AES=m -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_TEA is not set -CONFIG_CRYPTO_ARC4=m -# CONFIG_CRYPTO_KHAZAD is not set -# CONFIG_CRYPTO_ANUBIS is not set -# CONFIG_CRYPTO_DEFLATE is not set -# CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_CRC32C is not set -# CONFIG_CRYPTO_CAMELLIA is not set -# CONFIG_CRYPTO_TEST is not set -CONFIG_CRYPTO_HW=y - -# -# Library routines -# -CONFIG_BITREVERSE=y -# CONFIG_CRC_CCITT is not set -# CONFIG_CRC16 is not set -# CONFIG_CRC_ITU_T is not set -CONFIG_CRC32=y -# CONFIG_CRC7 is not set -# CONFIG_LIBCRC32C is not set -CONFIG_PLIST=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y diff -puN arch/arm/configs/collie_defconfig~linux-next arch/arm/configs/collie_defconfig --- a/arch/arm/configs/collie_defconfig~linux-next +++ a/arch/arm/configs/collie_defconfig @@ -166,7 +166,6 @@ CONFIG_PCMCIA_SA1100=y # Kernel Features # # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set CONFIG_ARCH_DISCONTIGMEM_ENABLE=y diff -puN arch/arm/configs/corgi_defconfig~linux-next arch/arm/configs/corgi_defconfig --- a/arch/arm/configs/corgi_defconfig~linux-next +++ a/arch/arm/configs/corgi_defconfig @@ -165,7 +165,6 @@ CONFIG_PCMCIA_PXA2XX=y # Kernel Features # CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y diff -puN arch/arm/configs/ecbat91_defconfig~linux-next arch/arm/configs/ecbat91_defconfig --- a/arch/arm/configs/ecbat91_defconfig~linux-next +++ a/arch/arm/configs/ecbat91_defconfig @@ -230,7 +230,6 @@ CONFIG_AT91_CF=y # # CONFIG_TICK_ONESHOT is not set CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/em_x270_defconfig~linux-next /dev/null --- a/arch/arm/configs/em_x270_defconfig +++ /dev/null @@ -1,1265 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.22 -# Mon Jul 9 15:18:20 2007 -# -CONFIG_ARM=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_GENERIC_GPIO=y -CONFIG_GENERIC_TIME=y -# CONFIG_GENERIC_CLOCKEVENTS is not set -CONFIG_MMU=y -# CONFIG_NO_IOPORT is not set -CONFIG_GENERIC_HARDIRQS=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -# CONFIG_ARCH_HAS_ILOG2_U32 is not set -# CONFIG_ARCH_HAS_ILOG2_U64 is not set -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_ZONE_DMA=y -CONFIG_ARCH_MTD_XIP=y -CONFIG_VECTORS_BASE=0xffff0000 -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" - -# -# Code maturity level options -# -CONFIG_EXPERIMENTAL=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 - -# -# General setup -# -CONFIG_LOCALVERSION="-em-x270" -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SWAP=y -CONFIG_SYSVIPC=y -# CONFIG_IPC_NS is not set -CONFIG_SYSVIPC_SYSCTL=y -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_TASKSTATS is not set -# CONFIG_UTS_NS is not set -# CONFIG_AUDIT is not set -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y -CONFIG_LOG_BUF_SHIFT=17 -CONFIG_SYSFS_DEPRECATED=y -# CONFIG_RELAY is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_SYSCTL=y -CONFIG_EMBEDDED=y -CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set -CONFIG_HOTPLUG=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_ANON_INODES=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_SLAB=y -# CONFIG_SLUB is not set -# CONFIG_SLOB is not set -CONFIG_RT_MUTEXES=y -# CONFIG_TINY_SHMEM is not set -CONFIG_BASE_SMALL=0 - -# -# Loadable module support -# -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_KMOD=y - -# -# Block layer -# -CONFIG_BLOCK=y -# CONFIG_LBD is not set -# CONFIG_BLK_DEV_IO_TRACE is not set -# CONFIG_LSF is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -CONFIG_DEFAULT_AS=y -# CONFIG_DEFAULT_DEADLINE is not set -# CONFIG_DEFAULT_CFQ is not set -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="anticipatory" - -# -# System Type -# -# CONFIG_ARCH_AAEC2000 is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_CLPS7500 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CO285 is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_EP93XX is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_IOP13XX is not set -# CONFIG_ARCH_IOP32X is not set -# CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP23XX is not set -# CONFIG_ARCH_IXP2000 is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_L7200 is not set -# CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_NS9XXX is not set -# CONFIG_ARCH_PNX4008 is not set -CONFIG_ARCH_PXA=y -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_OMAP is not set - -# -# Intel PXA2xx Implementations -# -# CONFIG_ARCH_LUBBOCK is not set -# CONFIG_MACH_LOGICPD_PXA270 is not set -# CONFIG_MACH_MAINSTONE is not set -# CONFIG_ARCH_PXA_IDP is not set -# CONFIG_PXA_SHARPSL is not set -# CONFIG_MACH_TRIZEPS4 is not set -CONFIG_MACH_EM_X270=y -CONFIG_PXA27x=y - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_XSCALE=y -CONFIG_CPU_32v5=y -CONFIG_CPU_ABRT_EV5T=y -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_TLB_V4WBI=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y - -# -# Processor Features -# -CONFIG_ARM_THUMB=y -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_OUTER_CACHE is not set -CONFIG_IWMMXT=y -CONFIG_XSCALE_PMU=y - -# -# Bus support -# -# CONFIG_ARCH_SUPPORTS_MSI is not set - -# -# PCCARD (PCMCIA/CardBus) support -# -# CONFIG_PCCARD is not set - -# -# Kernel Features -# -# CONFIG_TICK_ONESHOT is not set -# CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set -CONFIG_HZ=100 -CONFIG_AEABI=y -CONFIG_OABI_COMPAT=y -# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -# CONFIG_SPARSEMEM_STATIC is not set -CONFIG_SPLIT_PTLOCK_CPUS=4096 -# CONFIG_RESOURCES_64BIT is not set -CONFIG_ZONE_DMA_FLAG=1 -CONFIG_ALIGNMENT_TRAP=y - -# -# Boot options -# -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="" -# CONFIG_XIP_KERNEL is not set -# CONFIG_KEXEC is not set - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -# CONFIG_FPE_FASTFPE is not set - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set - -# -# Power management options -# -CONFIG_PM=y -CONFIG_PM_LEGACY=y -# CONFIG_PM_DEBUG is not set -# CONFIG_PM_SYSFS_DEPRECATED is not set -CONFIG_APM_EMULATION=m - -# -# Networking -# -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -# CONFIG_PACKET_MMAP is not set -CONFIG_UNIX=y -CONFIG_XFRM=y -# CONFIG_XFRM_USER is not set -# CONFIG_XFRM_SUB_POLICY is not set -# CONFIG_XFRM_MIGRATE is not set -# CONFIG_NET_KEY is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_FIB_HASH=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -# CONFIG_IP_PNP_RARP is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE is not set -# CONFIG_ARPD is not set -# CONFIG_SYN_COOKIES is not set -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -# CONFIG_INET_XFRM_TUNNEL is not set -# CONFIG_INET_TUNNEL is not set -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y -# CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_CUBIC=y -CONFIG_DEFAULT_TCP_CONG="cubic" -# CONFIG_TCP_MD5SIG is not set -# CONFIG_IPV6 is not set -# CONFIG_INET6_XFRM_TUNNEL is not set -# CONFIG_INET6_TUNNEL is not set -# CONFIG_NETWORK_SECMARK is not set -# CONFIG_NETFILTER is not set -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_TIPC is not set -# CONFIG_ATM is not set -# CONFIG_BRIDGE is not set -# CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set - -# -# QoS and/or fair queueing -# -# CONFIG_NET_SCHED is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_IRDA is not set -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m -# CONFIG_BT_RFCOMM_TTY is not set -CONFIG_BT_BNEP=m -# CONFIG_BT_BNEP_MC_FILTER is not set -# CONFIG_BT_BNEP_PROTO_FILTER is not set -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIUSB=m -# CONFIG_BT_HCIUSB_SCO is not set -CONFIG_BT_HCIUART=m -# CONFIG_BT_HCIUART_H4 is not set -# CONFIG_BT_HCIUART_BCSP is not set -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBFUSB=m -# CONFIG_BT_HCIVHCI is not set -# CONFIG_AF_RXRPC is not set - -# -# Wireless -# -# CONFIG_CFG80211 is not set -# CONFIG_WIRELESS_EXT is not set -# CONFIG_MAC80211 is not set -CONFIG_IEEE80211=m -# CONFIG_IEEE80211_DEBUG is not set -CONFIG_IEEE80211_CRYPT_WEP=m -CONFIG_IEEE80211_CRYPT_CCMP=m -# CONFIG_IEEE80211_CRYPT_TKIP is not set -# CONFIG_IEEE80211_SOFTMAC is not set -# CONFIG_RFKILL is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=y -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_SYS_HYPERVISOR is not set - -# -# Connector - unified userspace <-> kernelspace linker -# -# CONFIG_CONNECTOR is not set -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_CONCAT=y -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_CMDLINE_PARTS is not set -# CONFIG_MTD_AFS_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLKDEVS=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -# CONFIG_MTD_CFI_NOSWAP is not set -# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set -# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_SHARP_SL is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -CONFIG_MTD_NAND=y -# CONFIG_MTD_NAND_VERIFY_WRITE is not set -# CONFIG_MTD_NAND_ECC_SMC is not set -# CONFIG_MTD_NAND_MUSEUM_IDS is not set -# CONFIG_MTD_NAND_H1900 is not set -CONFIG_MTD_NAND_IDS=y -# CONFIG_MTD_NAND_DISKONCHIP is not set -# CONFIG_MTD_NAND_SHARPSL is not set -# CONFIG_MTD_NAND_NANDSIM is not set -CONFIG_MTD_NAND_PLATFORM=y -# CONFIG_MTD_ONENAND is not set - -# -# UBI - Unsorted block images -# -# CONFIG_MTD_UBI is not set - -# -# Parallel port support -# -# CONFIG_PARPORT is not set - -# -# Plug and Play support -# -# CONFIG_PNPACPI is not set - -# -# Block devices -# -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -# CONFIG_BLK_DEV_CRYPTOLOOP is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_UB is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=12000 -CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -# CONFIG_IDE is not set - -# -# SCSI device support -# -# CONFIG_RAID_ATTRS is not set -CONFIG_SCSI=y -# CONFIG_SCSI_TGT is not set -# CONFIG_SCSI_NETLINK is not set -# CONFIG_SCSI_PROC_FS is not set - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=y -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -# CONFIG_BLK_DEV_SR is not set -# CONFIG_CHR_DEV_SG is not set -# CONFIG_CHR_DEV_SCH is not set - -# -# Some SCSI devices (e.g. CD jukebox) support multiple LUNs -# -# CONFIG_SCSI_MULTI_LUN is not set -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m - -# -# SCSI Transports -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set -# CONFIG_SCSI_SAS_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set - -# -# SCSI low-level drivers -# -# CONFIG_ISCSI_TCP is not set -# CONFIG_SCSI_DEBUG is not set -# CONFIG_ATA is not set - -# -# Multi-device support (RAID and LVM) -# -# CONFIG_MD is not set - -# -# Network device support -# -CONFIG_NETDEVICES=y -# CONFIG_DUMMY is not set -# CONFIG_BONDING is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set -# CONFIG_PHYLIB is not set - -# -# Ethernet (10 or 100Mbit) -# -CONFIG_NET_ETHERNET=y -CONFIG_MII=y -# CONFIG_SMC91X is not set -CONFIG_DM9000=y -# CONFIG_SMC911X is not set -# CONFIG_NETDEV_1000 is not set -# CONFIG_NETDEV_10000 is not set - -# -# Wireless LAN -# -# CONFIG_WLAN_PRE80211 is not set -# CONFIG_WLAN_80211 is not set - -# -# USB Network Adapters -# -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_USBNET_MII is not set -# CONFIG_USB_USBNET is not set -# CONFIG_WAN is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set - -# -# ISDN subsystem -# -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=y -# CONFIG_INPUT_FF_MEMLESS is not set -# CONFIG_INPUT_POLLDEV is not set - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_TSDEV is not set -CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -# CONFIG_KEYBOARD_ATKBD is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_XTKBD is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -CONFIG_KEYBOARD_PXA27x=m -# CONFIG_KEYBOARD_GPIO is not set -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set -CONFIG_INPUT_TOUCHSCREEN=y -# CONFIG_TOUCHSCREEN_GUNZE is not set -# CONFIG_TOUCHSCREEN_ELO is not set -# CONFIG_TOUCHSCREEN_MTOUCH is not set -# CONFIG_TOUCHSCREEN_MK712 is not set -# CONFIG_TOUCHSCREEN_PENMOUNT is not set -# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set -# CONFIG_TOUCHSCREEN_TOUCHWIN is not set -# CONFIG_TOUCHSCREEN_UCB1400 is not set -# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set -# CONFIG_INPUT_MISC is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -# CONFIG_SERIO_SERPORT is not set -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -# CONFIG_SERIAL_8250 is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_PXA=y -CONFIG_SERIAL_PXA_CONSOLE=y -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 - -# -# IPMI -# -# CONFIG_IPMI_HANDLER is not set -# CONFIG_WATCHDOG is not set -CONFIG_HW_RANDOM=m -# CONFIG_NVRAM is not set -# CONFIG_R3964 is not set -# CONFIG_RAW_DRIVER is not set - -# -# TPM devices -# -# CONFIG_TCG_TPM is not set -# CONFIG_I2C is not set - -# -# SPI support -# -# CONFIG_SPI is not set -# CONFIG_SPI_MASTER is not set - -# -# Dallas's 1-wire bus -# -# CONFIG_W1 is not set -# CONFIG_HWMON is not set - -# -# Misc devices -# - -# -# Multifunction device drivers -# -# CONFIG_MFD_SM501 is not set - -# -# LED devices -# -# CONFIG_NEW_LEDS is not set - -# -# LED drivers -# - -# -# LED Triggers -# - -# -# Multimedia devices -# -# CONFIG_VIDEO_DEV is not set -# CONFIG_DVB_CORE is not set -# CONFIG_DAB is not set - -# -# Graphics support -# -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set - -# -# Display device support -# -# CONFIG_DISPLAY_SUPPORT is not set -# CONFIG_VGASTATE is not set -CONFIG_FB=y -# CONFIG_FIRMWARE_EDID is not set -# CONFIG_FB_DDC is not set -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_SYS_FILLRECT is not set -# CONFIG_FB_SYS_COPYAREA is not set -# CONFIG_FB_SYS_IMAGEBLIT is not set -# CONFIG_FB_SYS_FOPS is not set -CONFIG_FB_DEFERRED_IO=y -# CONFIG_FB_SVGALIB is not set -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_BACKLIGHT is not set -# CONFIG_FB_MODE_HELPERS is not set -# CONFIG_FB_TILEBLITTING is not set - -# -# Frame buffer hardware drivers -# -# CONFIG_FB_S1D13XXX is not set -CONFIG_FB_PXA=y -# CONFIG_FB_PXA_PARAMETERS is not set -# CONFIG_FB_MBX is not set -# CONFIG_FB_VIRTUAL is not set - -# -# Console display driver support -# -# CONFIG_VGA_CONSOLE is not set -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y - -# -# Sound -# -CONFIG_SOUND=m - -# -# Advanced Linux Sound Architecture -# -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m -# CONFIG_SND_SEQUENCER is not set -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -# CONFIG_SND_DYNAMIC_MINORS is not set -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set - -# -# Generic devices -# -CONFIG_SND_AC97_CODEC=m -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set - -# -# ALSA ARM devices -# -CONFIG_SND_PXA2XX_PCM=m -CONFIG_SND_PXA2XX_AC97=m - -# -# USB devices -# -# CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_CAIAQ is not set - -# -# System on Chip audio support -# -# CONFIG_SND_SOC is not set - -# -# Open Sound System -# -# CONFIG_SOUND_PRIME is not set -CONFIG_AC97_BUS=m - -# -# HID Devices -# -CONFIG_HID=y -# CONFIG_HID_DEBUG is not set - -# -# USB Input Devices -# -CONFIG_USB_HID=y -# CONFIG_USB_HIDINPUT_POWERBOOK is not set -# CONFIG_HID_FF is not set -# CONFIG_USB_HIDDEV is not set - -# -# USB support -# -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -# CONFIG_USB_ARCH_HAS_EHCI is not set -CONFIG_USB=y -# CONFIG_USB_DEBUG is not set - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -# CONFIG_USB_DEVICE_CLASS is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_SUSPEND is not set -# CONFIG_USB_OTG is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_ISP116X_HCD is not set -CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -# CONFIG_USB_SL811_HCD is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_ACM is not set -# CONFIG_USB_PRINTER is not set - -# -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' -# - -# -# may also be needed; see USB_STORAGE Help for more information -# -CONFIG_USB_STORAGE=y -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_DPCM is not set -# CONFIG_USB_STORAGE_USBAT is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set -# CONFIG_USB_STORAGE_ALAUDA is not set -# CONFIG_USB_STORAGE_KARMA is not set -# CONFIG_USB_LIBUSUAL is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set -# CONFIG_USB_MON is not set - -# -# USB port drivers -# - -# -# USB Serial Converter support -# -# CONFIG_USB_SERIAL is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_ADUTUX is not set -# CONFIG_USB_AUERSWALD is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_BERRY_CHARGE is not set -# CONFIG_USB_LED is not set -# CONFIG_USB_CYPRESS_CY7C63 is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGET is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_FTDI_ELAN is not set -# CONFIG_USB_APPLEDISPLAY is not set -# CONFIG_USB_LD is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -# CONFIG_USB_IOWARRIOR is not set -# CONFIG_USB_TEST is not set - -# -# USB DSL modem support -# - -# -# USB Gadget Support -# -# CONFIG_USB_GADGET is not set -CONFIG_MMC=m -# CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_UNSAFE_RESUME is not set - -# -# MMC/SD Card Drivers -# -CONFIG_MMC_BLOCK=m - -# -# MMC/SD Host Controller Drivers -# -CONFIG_MMC_PXA=m - -# -# Real Time Clock -# -CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=m - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -# CONFIG_RTC_DRV_TEST is not set - -# -# I2C RTC drivers -# - -# -# SPI RTC drivers -# - -# -# Platform RTC drivers -# -# CONFIG_RTC_DRV_CMOS is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_M48T86 is not set -CONFIG_RTC_DRV_V3020=m - -# -# on-CPU RTC drivers -# -CONFIG_RTC_DRV_SA1100=m - -# -# File systems -# -CONFIG_EXT2_FS=y -# CONFIG_EXT2_FS_XATTR is not set -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y -CONFIG_EXT3_FS_XATTR=y -# CONFIG_EXT3_FS_POSIX_ACL is not set -# CONFIG_EXT3_FS_SECURITY is not set -# CONFIG_EXT4DEV_FS is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set -CONFIG_FS_MBCACHE=y -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set -# CONFIG_XFS_FS is not set -# CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_ROMFS_FS is not set -CONFIG_INOTIFY=y -CONFIG_INOTIFY_USER=y -# CONFIG_QUOTA is not set -CONFIG_DNOTIFY=y -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_FUSE_FS is not set - -# -# CD-ROM/DVD Filesystems -# -# CONFIG_ISO9660_FS is not set -# CONFIG_UDF_FS is not set - -# -# DOS/FAT/NT Filesystems -# -CONFIG_FAT_FS=y -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_PROC_SYSCTL=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set -# CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y -# CONFIG_CONFIGFS_FS is not set - -# -# Miscellaneous filesystems -# -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=y -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -CONFIG_JFFS2_SUMMARY=y -# CONFIG_JFFS2_FS_XATTR is not set -# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set -CONFIG_JFFS2_ZLIB=y -CONFIG_JFFS2_RTIME=y -# CONFIG_JFFS2_RUBIN is not set -# CONFIG_CRAMFS is not set -# CONFIG_VXFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set - -# -# Network File Systems -# -CONFIG_NFS_FS=y -CONFIG_NFS_V3=y -# CONFIG_NFS_V3_ACL is not set -# CONFIG_NFS_V4 is not set -# CONFIG_NFS_DIRECTIO is not set -# CONFIG_NFSD is not set -CONFIG_ROOT_NFS=y -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -# CONFIG_SUNRPC_BIND34 is not set -# CONFIG_RPCSEC_GSS_KRB5 is not set -# CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=y -# CONFIG_SMB_NLS_DEFAULT is not set -# CONFIG_CIFS is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set -# CONFIG_9P_FS is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y - -# -# Native Language Support -# -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_CODEPAGE_437=y -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -# CONFIG_NLS_CODEPAGE_850 is not set -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=y - -# -# Distributed Lock Manager -# -# CONFIG_DLM is not set - -# -# Profiling support -# -# CONFIG_PROFILING is not set - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_MAGIC_SYSRQ=y -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_DETECT_SOFTLOCKUP is not set -# CONFIG_SCHEDSTATS is not set -# CONFIG_TIMER_STATS is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_RT_MUTEX_TESTER is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set -CONFIG_DEBUG_INFO=y -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_LIST is not set -CONFIG_FRAME_POINTER=y -CONFIG_FORCED_INLINING=y -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_FAULT_INJECTION is not set -CONFIG_DEBUG_USER=y -CONFIG_DEBUG_ERRORS=y -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY is not set - -# -# Cryptographic options -# -CONFIG_CRYPTO=y -CONFIG_CRYPTO_ALGAPI=m -CONFIG_CRYPTO_BLKCIPHER=m -CONFIG_CRYPTO_MANAGER=m -# CONFIG_CRYPTO_HMAC is not set -# CONFIG_CRYPTO_XCBC is not set -# CONFIG_CRYPTO_NULL is not set -# CONFIG_CRYPTO_MD4 is not set -# CONFIG_CRYPTO_MD5 is not set -# CONFIG_CRYPTO_SHA1 is not set -# CONFIG_CRYPTO_SHA256 is not set -# CONFIG_CRYPTO_SHA512 is not set -# CONFIG_CRYPTO_WP512 is not set -# CONFIG_CRYPTO_TGR192 is not set -# CONFIG_CRYPTO_GF128MUL is not set -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_PCBC=m -# CONFIG_CRYPTO_LRW is not set -# CONFIG_CRYPTO_CRYPTD is not set -# CONFIG_CRYPTO_DES is not set -# CONFIG_CRYPTO_FCRYPT is not set -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_TWOFISH is not set -# CONFIG_CRYPTO_SERPENT is not set -CONFIG_CRYPTO_AES=m -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_TEA is not set -CONFIG_CRYPTO_ARC4=m -# CONFIG_CRYPTO_KHAZAD is not set -# CONFIG_CRYPTO_ANUBIS is not set -# CONFIG_CRYPTO_DEFLATE is not set -# CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_CRC32C is not set -# CONFIG_CRYPTO_CAMELLIA is not set -# CONFIG_CRYPTO_TEST is not set - -# -# Hardware crypto devices -# - -# -# Library routines -# -CONFIG_BITREVERSE=y -# CONFIG_CRC_CCITT is not set -# CONFIG_CRC16 is not set -# CONFIG_CRC_ITU_T is not set -CONFIG_CRC32=y -# CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_PLIST=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y diff -puN arch/arm/configs/ep93xx_defconfig~linux-next arch/arm/configs/ep93xx_defconfig --- a/arch/arm/configs/ep93xx_defconfig~linux-next +++ a/arch/arm/configs/ep93xx_defconfig @@ -184,7 +184,6 @@ CONFIG_ARM_AMBA=y # Kernel Features # # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/eseries_pxa_defconfig~linux-next arch/arm/configs/eseries_pxa_defconfig --- a/arch/arm/configs/eseries_pxa_defconfig~linux-next +++ a/arch/arm/configs/eseries_pxa_defconfig @@ -251,7 +251,6 @@ CONFIG_PCMCIA_PXA2XX=m # Kernel Features # # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 CONFIG_AEABI=y CONFIG_OABI_COMPAT=y diff -puN arch/arm/configs/iop13xx_defconfig~linux-next arch/arm/configs/iop13xx_defconfig --- a/arch/arm/configs/iop13xx_defconfig~linux-next +++ a/arch/arm/configs/iop13xx_defconfig @@ -197,7 +197,6 @@ CONFIG_PCI_LEGACY=y # # CONFIG_TICK_ONESHOT is not set # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/iop32x_defconfig~linux-next arch/arm/configs/iop32x_defconfig --- a/arch/arm/configs/iop32x_defconfig~linux-next +++ a/arch/arm/configs/iop32x_defconfig @@ -201,7 +201,6 @@ CONFIG_PCI_LEGACY=y # # CONFIG_TICK_ONESHOT is not set # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/iop33x_defconfig~linux-next arch/arm/configs/iop33x_defconfig --- a/arch/arm/configs/iop33x_defconfig~linux-next +++ a/arch/arm/configs/iop33x_defconfig @@ -197,7 +197,6 @@ CONFIG_PCI_LEGACY=y # # CONFIG_TICK_ONESHOT is not set # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/ixp2000_defconfig~linux-next arch/arm/configs/ixp2000_defconfig --- a/arch/arm/configs/ixp2000_defconfig~linux-next +++ a/arch/arm/configs/ixp2000_defconfig @@ -184,7 +184,6 @@ CONFIG_PCI=y # Kernel Features # # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/ixp23xx_defconfig~linux-next arch/arm/configs/ixp23xx_defconfig --- a/arch/arm/configs/ixp23xx_defconfig~linux-next +++ a/arch/arm/configs/ixp23xx_defconfig @@ -180,7 +180,6 @@ CONFIG_PCI=y # Kernel Features # # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/ixp4xx_defconfig~linux-next arch/arm/configs/ixp4xx_defconfig --- a/arch/arm/configs/ixp4xx_defconfig~linux-next +++ a/arch/arm/configs/ixp4xx_defconfig @@ -165,6 +165,7 @@ CONFIG_ARCH_PRPMC1100=y CONFIG_MACH_NAS100D=y CONFIG_MACH_DSMG600=y CONFIG_ARCH_IXDP4XX=y +CONFIG_MACH_FSG=y CONFIG_CPU_IXP46X=y CONFIG_CPU_IXP43X=y CONFIG_MACH_GTWX5715=y @@ -770,7 +771,7 @@ CONFIG_ATA=y # CONFIG_SATA_SIL24 is not set # CONFIG_SATA_SIS is not set # CONFIG_SATA_ULI is not set -# CONFIG_SATA_VIA is not set +CONFIG_SATA_VIA=y # CONFIG_SATA_VITESSE is not set # CONFIG_SATA_INIC162X is not set # CONFIG_PATA_ALI is not set @@ -1143,7 +1144,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_VT1211 is not set # CONFIG_SENSORS_VT8231 is not set -# CONFIG_SENSORS_W83781D is not set +CONFIG_SENSORS_W83781D=y # CONFIG_SENSORS_W83791D is not set # CONFIG_SENSORS_W83792D is not set # CONFIG_SENSORS_W83793 is not set @@ -1334,8 +1335,8 @@ CONFIG_LEDS_CLASS=y # # LED drivers # -# CONFIG_LEDS_IXP4XX is not set CONFIG_LEDS_GPIO=y +CONFIG_LEDS_FSG=y # # LED Triggers @@ -1367,7 +1368,7 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_DS1672 is not set # CONFIG_RTC_DRV_MAX6900 is not set # CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_ISL1208 is not set +CONFIG_RTC_DRV_ISL1208=y CONFIG_RTC_DRV_X1205=y CONFIG_RTC_DRV_PCF8563=y # CONFIG_RTC_DRV_PCF8583 is not set diff -puN arch/arm/configs/kafa_defconfig~linux-next arch/arm/configs/kafa_defconfig --- a/arch/arm/configs/kafa_defconfig~linux-next +++ a/arch/arm/configs/kafa_defconfig @@ -162,7 +162,6 @@ CONFIG_CPU_TLB_V4WBI=y # Kernel Features # CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/kb9202_defconfig~linux-next arch/arm/configs/kb9202_defconfig --- a/arch/arm/configs/kb9202_defconfig~linux-next +++ a/arch/arm/configs/kb9202_defconfig @@ -126,7 +126,6 @@ CONFIG_ISA_DMA_API=y # # Kernel Features # -# CONFIG_NO_IDLE_HZ is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y diff -puN arch/arm/configs/ks8695_defconfig~linux-next arch/arm/configs/ks8695_defconfig --- a/arch/arm/configs/ks8695_defconfig~linux-next +++ a/arch/arm/configs/ks8695_defconfig @@ -174,7 +174,6 @@ CONFIG_PCCARD_NONSTATIC=y # Kernel Features # # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/lpd270_defconfig~linux-next arch/arm/configs/lpd270_defconfig --- a/arch/arm/configs/lpd270_defconfig~linux-next +++ a/arch/arm/configs/lpd270_defconfig @@ -173,7 +173,6 @@ CONFIG_XSCALE_PMU=y # Kernel Features # # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/lpd7a404_defconfig~linux-next arch/arm/configs/lpd7a404_defconfig --- a/arch/arm/configs/lpd7a404_defconfig~linux-next +++ a/arch/arm/configs/lpd7a404_defconfig @@ -148,7 +148,6 @@ CONFIG_ARM_AMBA=y # Kernel Features # CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set # CONFIG_AEABI is not set CONFIG_ARCH_DISCONTIGMEM_ENABLE=y CONFIG_SELECT_MEMORY_MODEL=y diff -puN arch/arm/configs/netx_defconfig~linux-next arch/arm/configs/netx_defconfig --- a/arch/arm/configs/netx_defconfig~linux-next +++ a/arch/arm/configs/netx_defconfig @@ -154,7 +154,6 @@ CONFIG_ARM_AMBA=y # Kernel Features # CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/onearm_defconfig~linux-next arch/arm/configs/onearm_defconfig --- a/arch/arm/configs/onearm_defconfig~linux-next +++ a/arch/arm/configs/onearm_defconfig @@ -202,7 +202,6 @@ CONFIG_AT91_CF=y # Kernel Features # # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/picotux200_defconfig~linux-next arch/arm/configs/picotux200_defconfig --- a/arch/arm/configs/picotux200_defconfig~linux-next +++ a/arch/arm/configs/picotux200_defconfig @@ -201,7 +201,6 @@ CONFIG_ARM_THUMB=y # Kernel Features # # CONFIG_PREEMPT is not set -CONFIG_NO_IDLE_HZ=y CONFIG_HZ=100 CONFIG_AEABI=y CONFIG_OABI_COMPAT=y diff -puN arch/arm/configs/pnx4008_defconfig~linux-next arch/arm/configs/pnx4008_defconfig --- a/arch/arm/configs/pnx4008_defconfig~linux-next +++ a/arch/arm/configs/pnx4008_defconfig @@ -151,7 +151,6 @@ CONFIG_ARM_THUMB=y # Kernel Features # CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN /dev/null arch/arm/configs/qil-a9260_defconfig --- /dev/null +++ a/arch/arm/configs/qil-a9260_defconfig @@ -0,0 +1,1256 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.24 +# Tue Apr 15 12:28:38 2008 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_AUDIT is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_CGROUPS is not set +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FAIR_USER_SCHED=y +# CONFIG_FAIR_CGROUP_SCHED is not set +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_ANON_INODES=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set +# CONFIG_BLK_DEV_BSG is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +CONFIG_ARCH_AT91=y +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP is not set + +# +# Boot options +# + +# +# Power management +# + +# +# Atmel AT91 System-on-Chip +# +# CONFIG_ARCH_AT91RM9200 is not set +CONFIG_ARCH_AT91SAM9260=y +# CONFIG_ARCH_AT91SAM9261 is not set +# CONFIG_ARCH_AT91SAM9263 is not set +# CONFIG_ARCH_AT91SAM9RL is not set +# CONFIG_ARCH_AT91CAP9 is not set +# CONFIG_ARCH_AT91X40 is not set +CONFIG_AT91_PMC_UNIT=y + +# +# AT91SAM9260 Variants +# +# CONFIG_ARCH_AT91SAM9260_SAM9XE is not set + +# +# AT91SAM9260 / AT91SAM9XE Board Type +# +# CONFIG_MACH_AT91SAM9260EK is not set +# CONFIG_MACH_CAM60 is not set +# CONFIG_MACH_SAM9_L9260 is not set +# CONFIG_MACH_USB_A9260 is not set +CONFIG_MACH_QIL_A9260=y + +# +# AT91 Board Options +# + +# +# AT91 Feature Selections +# +# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set +CONFIG_AT91_SLOW_CLOCK=y +CONFIG_AT91_TIMER_HZ=100 +# CONFIG_AT91_EARLY_DBGU is not set +CONFIG_AT91_EARLY_USART0=y +# CONFIG_AT91_EARLY_USART1 is not set +# CONFIG_AT91_EARLY_USART2 is not set +# CONFIG_AT91_EARLY_USART3 is not set +# CONFIG_AT91_EARLY_USART4 is not set +# CONFIG_AT91_EARLY_USART5 is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_ARM926T=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5TJ=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_COPY_V4WB=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_ARM_THUMB is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set +# CONFIG_CPU_CACHE_ROUND_ROBIN is not set +# CONFIG_OUTER_CACHE is not set + +# +# Bus support +# +# CONFIG_PCI_SYSCALL is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +# CONFIG_TICK_ONESHOT is not set +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +# CONFIG_PREEMPT is not set +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="mem=64M console=ttyS1,115200" +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set +# CONFIG_VFP is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND_UP_POSSIBLE=y +CONFIG_SUSPEND=y +# CONFIG_APM_EMULATION is not set + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_MULTIPLE_TABLES is not set +# CONFIG_IP_ROUTE_MULTIPATH is not set +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set + +# +# Wireless +# +# CONFIG_CFG80211 is not set +# CONFIG_WIRELESS_EXT is not set +# CONFIG_MAC80211 is not set +# CONFIG_IEEE80211 is not set +# CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_FW_LOADER is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_CONNECTOR is not set +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_MTD_OOPS is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_DATAFLASH=y +# CONFIG_MTD_M25P80 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +CONFIG_MTD_NAND_AT91=y +CONFIG_MTD_NAND_AT91_ECC_SOFT=y +# CONFIG_MTD_NAND_AT91_ECC_HW is not set +# CONFIG_MTD_NAND_AT91_ECC_NONE is not set +# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_ALAUDA is not set +# CONFIG_MTD_ONENAND is not set + +# +# UBI - Unsorted block images +# +# CONFIG_MTD_UBI is not set +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MISC_DEVICES is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_ATA is not set +# CONFIG_MD is not set +CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE is not set +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_MACVLAN is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_VETH is not set +CONFIG_PHYLIB=y + +# +# MII PHY device drivers +# +# CONFIG_MARVELL_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_QSEMI_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_CICADA_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_BROADCOM_PHY is not set +# CONFIG_ICPLUS_PHY is not set +# CONFIG_FIXED_PHY is not set +# CONFIG_MDIO_BITBANG is not set +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +CONFIG_MACB=y +# CONFIG_AX88796 is not set +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_B44 is not set +CONFIG_NETDEV_1000=y +CONFIG_NETDEV_10000=y + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +# CONFIG_WLAN_80211 is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET is not set +# CONFIG_WAN is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=y + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +CONFIG_KEYBOARD_GPIO=y +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_ATMEL=y +CONFIG_SERIAL_ATMEL_CONSOLE=y +# CONFIG_SERIAL_ATMEL_TTYAT is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_NVRAM is not set +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=y + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_TINY_USB is not set +# CONFIG_I2C_PCA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_DS1682 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +CONFIG_SPI_ATMEL=y +# CONFIG_SPI_BITBANG is not set + +# +# SPI Protocol Masters +# +# CONFIG_SPI_AT25 is not set +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SPI_TLE62X0 is not set +# CONFIG_W1 is not set +# CONFIG_POWER_SUPPLY is not set +# CONFIG_HWMON is not set +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_NOWAYOUT=y + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +# CONFIG_AT91SAM9_WATCHDOG is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set + +# +# Sonics Silicon Backplane +# +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set +# CONFIG_DVB_CORE is not set +# CONFIG_DAB is not set + +# +# Graphics support +# +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +# CONFIG_FB is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y + +# +# Sound +# +# CONFIG_SOUND is not set +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set +# CONFIG_HIDRAW is not set + +# +# USB Input Devices +# +# CONFIG_USB_HID is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_ARCH_HAS_EHCI is not set +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_PERSIST is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_BERRY_CHARGE is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_AMD5536UDC is not set +# CONFIG_USB_GADGET_ATMEL_USBA is not set +# CONFIG_USB_GADGET_FSL_USB2 is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_M66592 is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_S3C2410 is not set +CONFIG_USB_GADGET_AT91=y +CONFIG_USB_AT91=y +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set +# CONFIG_USB_ZERO is not set +CONFIG_USB_ETH=y +CONFIG_USB_ETH_RNDIS=y +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FILE_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD Card Drivers +# +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_BOUNCE=y +# CONFIG_SDIO_UART is not set + +# +# MMC/SD Host Controller Drivers +# +CONFIG_MMC_AT91=y +# CONFIG_MMC_SPI is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_GPIO=y + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_TRIGGER_TIMER is not set +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set + +# +# SPI RTC drivers +# +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_MAX6902 is not set +CONFIG_RTC_DRV_M41T94=y + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# +# CONFIG_RTC_DRV_AT91SAM9 is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +CONFIG_FUSE_FS=m + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +# CONFIG_MSDOS_FS is not set +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +# CONFIG_SUNRPC_BIND34 is not set +CONFIG_RPCSEC_GSS_KRB5=y +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +CONFIG_NLS_CODEPAGE_850=y +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_UTF8 is not set +# CONFIG_DLM is not set +# CONFIG_INSTRUMENTATION is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_DETECT_SOFTLOCKUP=y +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set +CONFIG_FRAME_POINTER=y +CONFIG_FORCED_INLINING=y +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_SAMPLES is not set +CONFIG_DEBUG_USER=y +# CONFIG_DEBUG_ERRORS is not set +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_MANAGER=y +# CONFIG_CRYPTO_HMAC is not set +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +# CONFIG_CRYPTO_SHA1 is not set +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +# CONFIG_CRYPTO_ECB is not set +CONFIG_CRYPTO_CBC=y +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_CRYPTD is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_ARC4 is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_TEST is not set +# CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_HW is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +# CONFIG_CRC_CCITT is not set +# CONFIG_CRC16 is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC7 is not set +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y diff -puN arch/arm/configs/realview-smp_defconfig~linux-next arch/arm/configs/realview-smp_defconfig --- a/arch/arm/configs/realview-smp_defconfig~linux-next +++ a/arch/arm/configs/realview-smp_defconfig @@ -177,7 +177,6 @@ CONFIG_NR_CPUS=4 CONFIG_HOTPLUG_CPU=y CONFIG_LOCAL_TIMERS=y # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/realview_defconfig~linux-next arch/arm/configs/realview_defconfig --- a/arch/arm/configs/realview_defconfig~linux-next +++ a/arch/arm/configs/realview_defconfig @@ -126,7 +126,6 @@ CONFIG_ISA_DMA_API=y # # Kernel Features # -# CONFIG_NO_IDLE_HZ is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y diff -puN arch/arm/configs/rpc_defconfig~linux-next arch/arm/configs/rpc_defconfig --- a/arch/arm/configs/rpc_defconfig~linux-next +++ a/arch/arm/configs/rpc_defconfig @@ -190,7 +190,6 @@ CONFIG_ISA_DMA_API=y # # CONFIG_TICK_ONESHOT is not set # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/s3c2410_defconfig~linux-next arch/arm/configs/s3c2410_defconfig --- a/arch/arm/configs/s3c2410_defconfig~linux-next +++ a/arch/arm/configs/s3c2410_defconfig @@ -246,7 +246,6 @@ CONFIG_ISA=y # Kernel Features # # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=200 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/sam9_l9260_defconfig~linux-next arch/arm/configs/sam9_l9260_defconfig --- a/arch/arm/configs/sam9_l9260_defconfig~linux-next +++ a/arch/arm/configs/sam9_l9260_defconfig @@ -211,7 +211,6 @@ CONFIG_ARM_THUMB=y # # CONFIG_TICK_ONESHOT is not set CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/spitz_defconfig~linux-next arch/arm/configs/spitz_defconfig --- a/arch/arm/configs/spitz_defconfig~linux-next +++ a/arch/arm/configs/spitz_defconfig @@ -164,7 +164,6 @@ CONFIG_PCMCIA_PXA2XX=y # Kernel Features # CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y diff -puN arch/arm/configs/tct_hammer_defconfig~linux-next arch/arm/configs/tct_hammer_defconfig --- a/arch/arm/configs/tct_hammer_defconfig~linux-next +++ a/arch/arm/configs/tct_hammer_defconfig @@ -247,7 +247,6 @@ CONFIG_ARM_THUMB=y # # CONFIG_TICK_ONESHOT is not set # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=200 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN arch/arm/configs/trizeps4_defconfig~linux-next arch/arm/configs/trizeps4_defconfig --- a/arch/arm/configs/trizeps4_defconfig~linux-next +++ a/arch/arm/configs/trizeps4_defconfig @@ -195,7 +195,6 @@ CONFIG_PCMCIA_PXA2XX=y # Kernel Features # CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 CONFIG_AEABI=y CONFIG_OABI_COMPAT=y diff -puN /dev/null arch/arm/configs/usb-a9260_defconfig --- /dev/null +++ a/arch/arm/configs/usb-a9260_defconfig @@ -0,0 +1,1142 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.24 +# Tue Apr 15 11:39:35 2008 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_AUDIT is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_CGROUPS is not set +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FAIR_USER_SCHED=y +# CONFIG_FAIR_CGROUP_SCHED is not set +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_ANON_INODES=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set +# CONFIG_BLK_DEV_BSG is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +CONFIG_ARCH_AT91=y +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP is not set + +# +# Boot options +# + +# +# Power management +# + +# +# Atmel AT91 System-on-Chip +# +# CONFIG_ARCH_AT91RM9200 is not set +CONFIG_ARCH_AT91SAM9260=y +# CONFIG_ARCH_AT91SAM9261 is not set +# CONFIG_ARCH_AT91SAM9263 is not set +# CONFIG_ARCH_AT91SAM9RL is not set +# CONFIG_ARCH_AT91CAP9 is not set +# CONFIG_ARCH_AT91X40 is not set +CONFIG_AT91_PMC_UNIT=y + +# +# AT91SAM9260 Variants +# +# CONFIG_ARCH_AT91SAM9260_SAM9XE is not set + +# +# AT91SAM9260 / AT91SAM9XE Board Type +# +# CONFIG_MACH_AT91SAM9260EK is not set +# CONFIG_MACH_CAM60 is not set +# CONFIG_MACH_SAM9_L9260 is not set +CONFIG_MACH_USB_A9260=y +# CONFIG_MACH_QIL_A9260 is not set + +# +# AT91 Board Options +# + +# +# AT91 Feature Selections +# +# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set +CONFIG_AT91_SLOW_CLOCK=y +CONFIG_AT91_TIMER_HZ=100 +CONFIG_AT91_EARLY_DBGU=y +# CONFIG_AT91_EARLY_USART0 is not set +# CONFIG_AT91_EARLY_USART1 is not set +# CONFIG_AT91_EARLY_USART2 is not set +# CONFIG_AT91_EARLY_USART3 is not set +# CONFIG_AT91_EARLY_USART4 is not set +# CONFIG_AT91_EARLY_USART5 is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_ARM926T=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5TJ=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_COPY_V4WB=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_ARM_THUMB is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set +# CONFIG_CPU_CACHE_ROUND_ROBIN is not set +# CONFIG_OUTER_CACHE is not set + +# +# Bus support +# +# CONFIG_PCI_SYSCALL is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +# CONFIG_TICK_ONESHOT is not set +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +# CONFIG_PREEMPT is not set +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="mem=64M console=ttyS0,115200" +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set +# CONFIG_VFP is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND_UP_POSSIBLE=y +CONFIG_SUSPEND=y +# CONFIG_APM_EMULATION is not set + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_MULTIPLE_TABLES is not set +# CONFIG_IP_ROUTE_MULTIPATH is not set +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set + +# +# Wireless +# +# CONFIG_CFG80211 is not set +# CONFIG_WIRELESS_EXT is not set +# CONFIG_MAC80211 is not set +# CONFIG_IEEE80211 is not set +# CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_FW_LOADER is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_CONNECTOR is not set +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_MTD_OOPS is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_DATAFLASH=y +# CONFIG_MTD_M25P80 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +CONFIG_MTD_NAND_AT91=y +CONFIG_MTD_NAND_AT91_ECC_SOFT=y +# CONFIG_MTD_NAND_AT91_ECC_HW is not set +# CONFIG_MTD_NAND_AT91_ECC_NONE is not set +# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_ALAUDA is not set +# CONFIG_MTD_ONENAND is not set + +# +# UBI - Unsorted block images +# +# CONFIG_MTD_UBI is not set +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MISC_DEVICES is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_ATA is not set +# CONFIG_MD is not set +CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE is not set +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_MACVLAN is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_VETH is not set +CONFIG_PHYLIB=y + +# +# MII PHY device drivers +# +# CONFIG_MARVELL_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_QSEMI_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_CICADA_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_BROADCOM_PHY is not set +# CONFIG_ICPLUS_PHY is not set +# CONFIG_FIXED_PHY is not set +# CONFIG_MDIO_BITBANG is not set +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +CONFIG_MACB=y +# CONFIG_AX88796 is not set +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_B44 is not set +CONFIG_NETDEV_1000=y +CONFIG_NETDEV_10000=y + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +# CONFIG_WLAN_80211 is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET is not set +# CONFIG_WAN is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=y + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +CONFIG_KEYBOARD_GPIO=y +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_ATMEL=y +CONFIG_SERIAL_ATMEL_CONSOLE=y +# CONFIG_SERIAL_ATMEL_TTYAT is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_NVRAM is not set +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_I2C is not set + +# +# SPI support +# +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +CONFIG_SPI_ATMEL=y +# CONFIG_SPI_BITBANG is not set + +# +# SPI Protocol Masters +# +# CONFIG_SPI_AT25 is not set +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SPI_TLE62X0 is not set +# CONFIG_W1 is not set +# CONFIG_POWER_SUPPLY is not set +# CONFIG_HWMON is not set +# CONFIG_WATCHDOG is not set + +# +# Sonics Silicon Backplane +# +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set +# CONFIG_DVB_CORE is not set +# CONFIG_DAB is not set + +# +# Graphics support +# +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +# CONFIG_FB is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y + +# +# Sound +# +# CONFIG_SOUND is not set +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set +# CONFIG_HIDRAW is not set + +# +# USB Input Devices +# +# CONFIG_USB_HID is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_ARCH_HAS_EHCI is not set +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_PERSIST is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_BERRY_CHARGE is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_AMD5536UDC is not set +# CONFIG_USB_GADGET_ATMEL_USBA is not set +# CONFIG_USB_GADGET_FSL_USB2 is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_M66592 is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_S3C2410 is not set +CONFIG_USB_GADGET_AT91=y +CONFIG_USB_AT91=y +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set +# CONFIG_USB_ZERO is not set +CONFIG_USB_ETH=y +CONFIG_USB_ETH_RNDIS=y +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FILE_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_MMC is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_GPIO=y + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_TRIGGER_TIMER is not set +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_RTC_LIB=y +# CONFIG_RTC_CLASS is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +CONFIG_FUSE_FS=m + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +# CONFIG_MSDOS_FS is not set +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +# CONFIG_SUNRPC_BIND34 is not set +CONFIG_RPCSEC_GSS_KRB5=y +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +CONFIG_NLS_CODEPAGE_850=y +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_UTF8 is not set +# CONFIG_DLM is not set +# CONFIG_INSTRUMENTATION is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_DETECT_SOFTLOCKUP=y +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set +CONFIG_FRAME_POINTER=y +CONFIG_FORCED_INLINING=y +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_SAMPLES is not set +CONFIG_DEBUG_USER=y +# CONFIG_DEBUG_ERRORS is not set +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_MANAGER=y +# CONFIG_CRYPTO_HMAC is not set +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +# CONFIG_CRYPTO_SHA1 is not set +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +# CONFIG_CRYPTO_ECB is not set +CONFIG_CRYPTO_CBC=y +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_CRYPTD is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_ARC4 is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_TEST is not set +# CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_HW is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +# CONFIG_CRC_CCITT is not set +# CONFIG_CRC16 is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC7 is not set +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y diff -puN /dev/null arch/arm/configs/usb-a9263_defconfig --- /dev/null +++ a/arch/arm/configs/usb-a9263_defconfig @@ -0,0 +1,1134 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.24 +# Tue Apr 15 11:15:19 2008 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_AUDIT is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_CGROUPS is not set +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FAIR_USER_SCHED=y +# CONFIG_FAIR_CGROUP_SCHED is not set +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_ANON_INODES=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set +# CONFIG_BLK_DEV_BSG is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +CONFIG_ARCH_AT91=y +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP is not set + +# +# Boot options +# + +# +# Power management +# + +# +# Atmel AT91 System-on-Chip +# +# CONFIG_ARCH_AT91RM9200 is not set +# CONFIG_ARCH_AT91SAM9260 is not set +# CONFIG_ARCH_AT91SAM9261 is not set +CONFIG_ARCH_AT91SAM9263=y +# CONFIG_ARCH_AT91SAM9RL is not set +# CONFIG_ARCH_AT91CAP9 is not set +# CONFIG_ARCH_AT91X40 is not set +CONFIG_AT91_PMC_UNIT=y + +# +# AT91SAM9263 Board Type +# +# CONFIG_MACH_AT91SAM9263EK is not set +CONFIG_MACH_USB_A9263=y + +# +# AT91 Board Options +# + +# +# AT91 Feature Selections +# +# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set +CONFIG_AT91_SLOW_CLOCK=y +CONFIG_AT91_TIMER_HZ=100 +CONFIG_AT91_EARLY_DBGU=y +# CONFIG_AT91_EARLY_USART0 is not set +# CONFIG_AT91_EARLY_USART1 is not set +# CONFIG_AT91_EARLY_USART2 is not set +# CONFIG_AT91_EARLY_USART3 is not set +# CONFIG_AT91_EARLY_USART4 is not set +# CONFIG_AT91_EARLY_USART5 is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_ARM926T=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5TJ=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_COPY_V4WB=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_ARM_THUMB is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set +# CONFIG_CPU_CACHE_ROUND_ROBIN is not set +# CONFIG_OUTER_CACHE is not set + +# +# Bus support +# +# CONFIG_PCI_SYSCALL is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +# CONFIG_TICK_ONESHOT is not set +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +# CONFIG_PREEMPT is not set +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="mem=64M console=ttyS0,115200" +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set +# CONFIG_VFP is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND_UP_POSSIBLE=y +CONFIG_SUSPEND=y +# CONFIG_APM_EMULATION is not set + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_MULTIPLE_TABLES is not set +# CONFIG_IP_ROUTE_MULTIPATH is not set +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set + +# +# Wireless +# +# CONFIG_CFG80211 is not set +# CONFIG_WIRELESS_EXT is not set +# CONFIG_MAC80211 is not set +# CONFIG_IEEE80211 is not set +# CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_FW_LOADER is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_CONNECTOR is not set +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_MTD_OOPS is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_DATAFLASH=y +# CONFIG_MTD_M25P80 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +CONFIG_MTD_NAND_AT91=y +CONFIG_MTD_NAND_AT91_ECC_SOFT=y +# CONFIG_MTD_NAND_AT91_ECC_HW is not set +# CONFIG_MTD_NAND_AT91_ECC_NONE is not set +# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_ALAUDA is not set +# CONFIG_MTD_ONENAND is not set + +# +# UBI - Unsorted block images +# +# CONFIG_MTD_UBI is not set +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MISC_DEVICES is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_ATA is not set +# CONFIG_MD is not set +CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE is not set +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_MACVLAN is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_VETH is not set +CONFIG_PHYLIB=y + +# +# MII PHY device drivers +# +# CONFIG_MARVELL_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_QSEMI_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_CICADA_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_BROADCOM_PHY is not set +# CONFIG_ICPLUS_PHY is not set +# CONFIG_FIXED_PHY is not set +# CONFIG_MDIO_BITBANG is not set +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +CONFIG_MACB=y +# CONFIG_AX88796 is not set +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_B44 is not set +CONFIG_NETDEV_1000=y +CONFIG_NETDEV_10000=y + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +# CONFIG_WLAN_80211 is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET is not set +# CONFIG_WAN is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=y + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +CONFIG_KEYBOARD_GPIO=y +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_ATMEL=y +CONFIG_SERIAL_ATMEL_CONSOLE=y +# CONFIG_SERIAL_ATMEL_TTYAT is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_NVRAM is not set +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_I2C is not set + +# +# SPI support +# +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +CONFIG_SPI_ATMEL=y +# CONFIG_SPI_BITBANG is not set + +# +# SPI Protocol Masters +# +# CONFIG_SPI_AT25 is not set +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SPI_TLE62X0 is not set +# CONFIG_W1 is not set +# CONFIG_POWER_SUPPLY is not set +# CONFIG_HWMON is not set +# CONFIG_WATCHDOG is not set + +# +# Sonics Silicon Backplane +# +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set +# CONFIG_DVB_CORE is not set +# CONFIG_DAB is not set + +# +# Graphics support +# +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +# CONFIG_FB is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y + +# +# Sound +# +# CONFIG_SOUND is not set +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set +# CONFIG_HIDRAW is not set + +# +# USB Input Devices +# +# CONFIG_USB_HID is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_ARCH_HAS_EHCI is not set +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_PERSIST is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_BERRY_CHARGE is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_AMD5536UDC is not set +# CONFIG_USB_GADGET_ATMEL_USBA is not set +# CONFIG_USB_GADGET_FSL_USB2 is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_M66592 is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_S3C2410 is not set +CONFIG_USB_GADGET_AT91=y +CONFIG_USB_AT91=y +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set +# CONFIG_USB_ZERO is not set +CONFIG_USB_ETH=y +CONFIG_USB_ETH_RNDIS=y +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FILE_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_MMC is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_GPIO=y + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_TRIGGER_TIMER is not set +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_RTC_LIB=y +# CONFIG_RTC_CLASS is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +CONFIG_FUSE_FS=m + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +# CONFIG_MSDOS_FS is not set +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +# CONFIG_SUNRPC_BIND34 is not set +CONFIG_RPCSEC_GSS_KRB5=y +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +CONFIG_NLS_CODEPAGE_850=y +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_UTF8 is not set +# CONFIG_DLM is not set +# CONFIG_INSTRUMENTATION is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_DETECT_SOFTLOCKUP=y +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set +CONFIG_FRAME_POINTER=y +CONFIG_FORCED_INLINING=y +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_SAMPLES is not set +CONFIG_DEBUG_USER=y +# CONFIG_DEBUG_ERRORS is not set +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_MANAGER=y +# CONFIG_CRYPTO_HMAC is not set +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +# CONFIG_CRYPTO_SHA1 is not set +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +# CONFIG_CRYPTO_ECB is not set +CONFIG_CRYPTO_CBC=y +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_CRYPTD is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_ARC4 is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_TEST is not set +# CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_HW is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +# CONFIG_CRC_CCITT is not set +# CONFIG_CRC16 is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC7 is not set +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y diff -puN arch/arm/configs/versatile_defconfig~linux-next arch/arm/configs/versatile_defconfig --- a/arch/arm/configs/versatile_defconfig~linux-next +++ a/arch/arm/configs/versatile_defconfig @@ -151,7 +151,6 @@ CONFIG_ARM_AMBA=y # Kernel Features # # CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set diff -puN /dev/null arch/arm/configs/xm_x270_defconfig --- /dev/null +++ a/arch/arm/configs/xm_x270_defconfig @@ -0,0 +1,1741 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.25 +# Sun May 11 15:12:52 2008 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_SUPPORTS_AOUT=y +CONFIG_ZONE_DMA=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_AUDIT is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_CGROUPS is not set +CONFIG_GROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_USER_SCHED=y +# CONFIG_CGROUP_SCHED is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set +# CONFIG_NAMESPACES is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +# CONFIG_COMPAT_BRK is not set +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_ANON_INODES=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +# CONFIG_VM_EVENT_COUNTERS is not set +# CONFIG_SLUB_DEBUG is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +# CONFIG_PROFILING is not set +# CONFIG_MARKERS is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +# CONFIG_HAVE_DMA_ATTRS is not set +# CONFIG_PROC_PAGE_MONITOR is not set +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set +# CONFIG_BLK_DEV_BSG is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_CLASSIC_RCU=y + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_PNX4008 is not set +CONFIG_ARCH_PXA=y +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_ARCH_MSM7X00A is not set +CONFIG_DMABOUNCE=y + +# +# Intel PXA2xx/PXA3xx Implementations +# + +# +# Select target boards +# +# CONFIG_ARCH_GUMSTIX is not set +# CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set +# CONFIG_MACH_MAINSTONE is not set +# CONFIG_ARCH_PXA_IDP is not set +# CONFIG_PXA_SHARPSL is not set +# CONFIG_ARCH_PXA_ESERIES is not set +# CONFIG_MACH_TRIZEPS4 is not set +CONFIG_MACH_EM_X270=y +# CONFIG_MACH_COLIBRI is not set +# CONFIG_MACH_ZYLONITE is not set +# CONFIG_MACH_LITTLETON is not set +CONFIG_MACH_ARMCORE=y +# CONFIG_MACH_MAGICIAN is not set +# CONFIG_MACH_PCM027 is not set +CONFIG_PXA27x=y +# CONFIG_PXA_PWM is not set + +# +# Boot options +# + +# +# Power management +# + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_XSCALE=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y +CONFIG_CPU_PABRT_NOIFAR=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set +CONFIG_IWMMXT=y +CONFIG_XSCALE_PMU=y + +# +# Bus support +# +CONFIG_PCI=y +CONFIG_PCI_SYSCALL=y +CONFIG_PCI_HOST_ITE8152=y +# CONFIG_ARCH_SUPPORTS_MSI is not set +CONFIG_PCI_LEGACY=y +# CONFIG_PCI_DEBUG is not set +CONFIG_PCCARD=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y +CONFIG_CARDBUS=y + +# +# PC-card bridges +# +CONFIG_YENTA=m +# CONFIG_YENTA_O2 is not set +# CONFIG_YENTA_RICOH is not set +CONFIG_YENTA_TI=y +# CONFIG_YENTA_ENE_TUNE is not set +# CONFIG_YENTA_TOSHIBA is not set +# CONFIG_PD6729 is not set +# CONFIG_I82092 is not set +CONFIG_PCMCIA_PXA2XX=m +CONFIG_PCCARD_NONSTATIC=m + +# +# Kernel Features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +# CONFIG_PREEMPT is not set +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="root=1f03 mem=32M" +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set + +# +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_APM_EMULATION=m +CONFIG_ARCH_SUSPEND_POSSIBLE=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +# CONFIG_IPV6 is not set +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_IRDA is not set +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +# CONFIG_BT_RFCOMM_TTY is not set +CONFIG_BT_BNEP=m +# CONFIG_BT_BNEP_MC_FILTER is not set +# CONFIG_BT_BNEP_PROTO_FILTER is not set +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUSB=m +CONFIG_BT_HCIUSB_SCO=y +# CONFIG_BT_HCIBTSDIO is not set +# CONFIG_BT_HCIUART is not set +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +# CONFIG_BT_HCIDTL1 is not set +# CONFIG_BT_HCIBT3C is not set +# CONFIG_BT_HCIBLUECARD is not set +# CONFIG_BT_HCIBTUART is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_AF_RXRPC is not set + +# +# Wireless +# +# CONFIG_CFG80211 is not set +CONFIG_WIRELESS_EXT=y +# CONFIG_MAC80211 is not set +# CONFIG_IEEE80211 is not set +# CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=m +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_CONNECTOR is not set +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set +# CONFIG_MTD_AR7_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_MTD_OOPS is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_GEN_PROBE=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_GEOMETRY is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_OTP is not set +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_XIP is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_PHYSMAP_START=0x0 +CONFIG_MTD_PHYSMAP_LEN=0x400000 +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +CONFIG_MTD_PXA2XX=y +# CONFIG_MTD_ARM_INTEGRATOR is not set +# CONFIG_MTD_IMPA7 is not set +# CONFIG_MTD_SHARP_SL is not set +# CONFIG_MTD_INTEL_VR_NOR is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +# CONFIG_MTD_NAND_H1900 is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_SHARPSL is not set +# CONFIG_MTD_NAND_CAFE is not set +CONFIG_MTD_NAND_CM_X270=y +# CONFIG_MTD_NAND_NANDSIM is not set +CONFIG_MTD_NAND_PLATFORM=y +# CONFIG_MTD_ALAUDA is not set +# CONFIG_MTD_ONENAND is not set + +# +# UBI - Unsorted block images +# +# CONFIG_MTD_UBI is not set +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_SX8 is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +# CONFIG_BLK_DEV_XIP is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MISC_DEVICES is not set +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC94XX is not set +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_HPTIOP is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_MVSAS is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_FC is not set +# CONFIG_SCSI_QLA_ISCSI is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_SRP is not set +# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set +CONFIG_ATA=m +# CONFIG_ATA_NONSTANDARD is not set +# CONFIG_SATA_PMP is not set +# CONFIG_SATA_AHCI is not set +# CONFIG_SATA_SIL24 is not set +CONFIG_ATA_SFF=y +# CONFIG_SATA_SVW is not set +# CONFIG_ATA_PIIX is not set +# CONFIG_SATA_MV is not set +# CONFIG_SATA_NV is not set +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_SX4 is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set +# CONFIG_SATA_INIC162X is not set +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_ATA_GENERIC is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_JMICRON is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_MARVELL is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_OPTIDMA is not set +CONFIG_PATA_PCMCIA=m +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +# CONFIG_PATA_RZ1000 is not set +# CONFIG_PATA_SC1200 is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set +# CONFIG_PATA_PLATFORM is not set +# CONFIG_MD is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_IEEE1394 is not set +# CONFIG_I2O is not set +CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE is not set +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_MACVLAN is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_VETH is not set +# CONFIG_ARCNET is not set +# CONFIG_PHYLIB is not set +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +# CONFIG_AX88796 is not set +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_SMC91X is not set +CONFIG_DM9000=y +CONFIG_DM9000_DEBUGLEVEL=1 +# CONFIG_SMC911X is not set +# CONFIG_NET_TULIP is not set +# CONFIG_HP100 is not set +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +CONFIG_NET_PCI=y +# CONFIG_PCNET32 is not set +# CONFIG_AMD8111_ETH is not set +# CONFIG_ADAPTEC_STARFIRE is not set +# CONFIG_B44 is not set +# CONFIG_FORCEDETH is not set +# CONFIG_EEPRO100 is not set +# CONFIG_E100 is not set +# CONFIG_FEALNX is not set +# CONFIG_NATSEMI is not set +# CONFIG_NE2K_PCI is not set +# CONFIG_8139CP is not set +CONFIG_8139TOO=y +# CONFIG_8139TOO_PIO is not set +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139TOO_8129 is not set +# CONFIG_8139_OLD_RX_RESET is not set +# CONFIG_R6040 is not set +# CONFIG_SIS900 is not set +# CONFIG_EPIC100 is not set +# CONFIG_SUNDANCE is not set +# CONFIG_TLAN is not set +# CONFIG_VIA_RHINE is not set +# CONFIG_SC92031 is not set +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set +# CONFIG_TR is not set + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +CONFIG_WLAN_80211=y +# CONFIG_PCMCIA_RAYCS is not set +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +CONFIG_LIBERTAS=m +# CONFIG_LIBERTAS_USB is not set +# CONFIG_LIBERTAS_CS is not set +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +# CONFIG_HERMES is not set +# CONFIG_ATMEL is not set +# CONFIG_AIRO_CS is not set +# CONFIG_PCMCIA_WL3501 is not set +# CONFIG_PRISM54 is not set +# CONFIG_USB_ZD1201 is not set +# CONFIG_USB_NET_RNDIS_WLAN is not set +# CONFIG_IWLWIFI is not set +# CONFIG_IWLWIFI_LEDS is not set +# CONFIG_HOSTAP is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET is not set +# CONFIG_NET_PCMCIA is not set +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +# CONFIG_PPP_MPPE is not set +# CONFIG_PPPOE is not set +# CONFIG_PPPOL2TP is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_NET_FC is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set +# CONFIG_INPUT_APMPOWER is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +CONFIG_KEYBOARD_PXA27x=m +# CONFIG_KEYBOARD_GPIO is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_FUJITSU is not set +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +CONFIG_TOUCHSCREEN_UCB1400=m +CONFIG_TOUCHSCREEN_WM97XX=m +# CONFIG_TOUCHSCREEN_WM9705 is not set +CONFIG_TOUCHSCREEN_WM9712=y +# CONFIG_TOUCHSCREEN_WM9713 is not set +# CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE is not set +# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_DEVKMEM=y +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_NOZOMI is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_PXA=y +CONFIG_SERIAL_PXA_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=16 +# CONFIG_IPMI_HANDLER is not set +# CONFIG_HW_RANDOM is not set +# CONFIG_NVRAM is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# PCMCIA character devices +# +# CONFIG_SYNCLINK_CS is not set +# CONFIG_CARDMAN_4000 is not set +# CONFIG_CARDMAN_4040 is not set +# CONFIG_IPWIRELESS is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +CONFIG_DEVPORT=y +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=m + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_I810 is not set +CONFIG_I2C_PXA=y +# CONFIG_I2C_PXA_SLAVE is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_PROSAVAGE is not set +# CONFIG_I2C_SAVAGE4 is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_TINY_USB is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set +# CONFIG_I2C_VOODOO3 is not set +# CONFIG_I2C_PCA_PLATFORM is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_DS1682 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_PCF8575 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_TPS65010 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set +# CONFIG_SPI is not set +CONFIG_HAVE_GPIO_LIB=y + +# +# GPIO Support +# +# CONFIG_DEBUG_GPIO is not set + +# +# I2C GPIO expanders: +# +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCF857X is not set + +# +# SPI GPIO expanders: +# +# CONFIG_W1 is not set +# CONFIG_POWER_SUPPLY is not set +# CONFIG_HWMON is not set +# CONFIG_WATCHDOG is not set + +# +# Sonics Silicon Backplane +# +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_ASIC3 is not set +# CONFIG_HTC_EGPIO is not set +# CONFIG_HTC_PASIC3 is not set + +# +# Multimedia devices +# + +# +# Multimedia core support +# +# CONFIG_VIDEO_DEV is not set +# CONFIG_DVB_CORE is not set + +# +# Multimedia drivers +# +# CONFIG_DAB is not set + +# +# Graphics support +# +# CONFIG_DRM is not set +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +# CONFIG_FB_SYS_FILLRECT is not set +# CONFIG_FB_SYS_COPYAREA is not set +# CONFIG_FB_SYS_IMAGEBLIT is not set +# CONFIG_FB_FOREIGN_ENDIAN is not set +# CONFIG_FB_SYS_FOPS is not set +CONFIG_FB_DEFERRED_IO=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +CONFIG_FB_PXA=y +# CONFIG_FB_PXA_SMARTPANEL is not set +CONFIG_FB_PXA_PARAMETERS=y +CONFIG_FB_MBX=m +# CONFIG_FB_AM200EPD is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_MONO=y +CONFIG_LOGO_LINUX_VGA16=y +CONFIG_LOGO_LINUX_CLUT224=y + +# +# Sound +# +CONFIG_SOUND=m + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +CONFIG_SND_AC97_CODEC=m +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# PCI devices +# +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS300 is not set +# CONFIG_SND_ALI5451 is not set +# CONFIG_SND_ATIIXP is not set +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AW2 is not set +# CONFIG_SND_AZT3328 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_CMIPCI is not set +# CONFIG_SND_OXYGEN is not set +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +# CONFIG_SND_DARLA20 is not set +# CONFIG_SND_GINA20 is not set +# CONFIG_SND_LAYLA20 is not set +# CONFIG_SND_DARLA24 is not set +# CONFIG_SND_GINA24 is not set +# CONFIG_SND_LAYLA24 is not set +# CONFIG_SND_MONA is not set +# CONFIG_SND_MIA is not set +# CONFIG_SND_ECHO3G is not set +# CONFIG_SND_INDIGO is not set +# CONFIG_SND_INDIGOIO is not set +# CONFIG_SND_INDIGODJ is not set +# CONFIG_SND_EMU10K1 is not set +# CONFIG_SND_EMU10K1X is not set +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_ES1938 is not set +# CONFIG_SND_ES1968 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDA_INTEL is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +# CONFIG_SND_HIFIER is not set +# CONFIG_SND_ICE1712 is not set +# CONFIG_SND_ICE1724 is not set +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_MAESTRO3 is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_PCXHR is not set +# CONFIG_SND_RIPTIDE is not set +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_SONICVIBES is not set +# CONFIG_SND_TRIDENT is not set +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VIRTUOSO is not set +# CONFIG_SND_VX222 is not set +# CONFIG_SND_YMFPCI is not set +# CONFIG_SND_AC97_POWER_SAVE is not set + +# +# ALSA ARM devices +# +CONFIG_SND_PXA2XX_PCM=m +CONFIG_SND_PXA2XX_AC97=m + +# +# USB devices +# +# CONFIG_SND_USB_AUDIO is not set +# CONFIG_SND_USB_CAIAQ is not set + +# +# PCMCIA devices +# +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set + +# +# System on Chip audio support +# +# CONFIG_SND_SOC is not set + +# +# ALSA SoC audio for Freescale SOCs +# + +# +# SoC Audio for the Texas Instruments OMAP +# + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +CONFIG_HID_DEBUG=y +# CONFIG_HIDRAW is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=y +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +# CONFIG_USB_HIDDEV is not set +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_DEVICE_CLASS is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_EHCI_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_UHCI_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MON=y + +# +# USB port drivers +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_BERRY_CHARGE is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_GADGET is not set +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD Card Drivers +# +CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_BOUNCE=y +# CONFIG_SDIO_UART is not set + +# +# MMC/SD Host Controller Drivers +# +CONFIG_MMC_PXA=m +# CONFIG_MMC_SDHCI is not set +# CONFIG_MMC_TIFM_SD is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +# CONFIG_LEDS_GPIO is not set +CONFIG_LEDS_CM_X270=y + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_TRIGGER_TIMER is not set +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_S35390A is not set + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T59 is not set +CONFIG_RTC_DRV_V3020=y + +# +# on-CPU RTC drivers +# +CONFIG_RTC_DRV_SA1100=y +# CONFIG_UIO is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=y +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +# CONFIG_XFS_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_DNOTIFY=y +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +# CONFIG_MSDOS_FS is not set +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +CONFIG_JFFS2_SUMMARY=y +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_SUNRPC_BIND34 is not set +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +# CONFIG_EFI_PARTITION is not set +# CONFIG_SYSV68_PARTITION is not set +CONFIG_NLS=m +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=m +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=m +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=m +# CONFIG_DLM is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=0 +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_DETECT_SOFTLOCKUP is not set +# CONFIG_SCHED_DEBUG is not set +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set +CONFIG_FRAME_POINTER=y +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_SAMPLES is not set +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_ERRORS=y +# CONFIG_DEBUG_STACK_USAGE is not set +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +# CONFIG_CRYPTO_MANAGER is not set +# CONFIG_CRYPTO_GF128MUL is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_CRYPTD is not set +# CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_TEST is not set + +# +# Authenticated Encryption with Associated Data +# +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_SEQIV is not set + +# +# Block modes +# +# CONFIG_CRYPTO_CBC is not set +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +# CONFIG_CRYPTO_ECB is not set +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set + +# +# Hash modes +# +# CONFIG_CRYPTO_HMAC is not set +# CONFIG_CRYPTO_XCBC is not set + +# +# Digest +# +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_MD4 is not set +# CONFIG_CRYPTO_MD5 is not set +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_SHA1 is not set +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_ANUBIS is not set +# CONFIG_CRYPTO_ARC4 is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_DES is not set +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_TWOFISH is not set + +# +# Compression +# +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_LZO is not set +# CONFIG_CRYPTO_HW is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +# CONFIG_GENERIC_FIND_FIRST_BIT is not set +# CONFIG_GENERIC_FIND_NEXT_BIT is not set +CONFIG_CRC_CCITT=m +# CONFIG_CRC16 is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC7 is not set +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y diff -puN arch/arm/kernel/Makefile~linux-next arch/arm/kernel/Makefile --- a/arch/arm/kernel/Makefile~linux-next +++ a/arch/arm/kernel/Makefile @@ -4,6 +4,10 @@ AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET) +ifdef CONFIG_DYNAMIC_FTRACE +CFLAGS_REMOVE_ftrace.o = -pg +endif + # Object file lists. obj-y := compat.o entry-armv.o entry-common.o irq.o \ @@ -18,6 +22,7 @@ obj-$(CONFIG_ARTHUR) += arthur.o obj-$(CONFIG_ISA_DMA) += dma-isa.o obj-$(CONFIG_PCI) += bios32.o isa.o obj-$(CONFIG_SMP) += smp.o +obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o obj-$(CONFIG_KPROBES) += kprobes.o kprobes-decode.o obj-$(CONFIG_ATAGS_PROC) += atags.o diff -puN arch/arm/kernel/armksyms.c~linux-next arch/arm/kernel/armksyms.c --- a/arch/arm/kernel/armksyms.c~linux-next +++ a/arch/arm/kernel/armksyms.c @@ -48,6 +48,11 @@ extern void __aeabi_ulcmp(void); extern void fpundefinstr(void); extern void fp_enter(void); +#ifdef CONFIG_FTRACE +extern void mcount(void); +EXPORT_SYMBOL(mcount); +#endif + /* * This has a special calling convention; it doesn't * modify any of the usual registers, except for LR. diff -puN arch/arm/kernel/ecard.c~linux-next arch/arm/kernel/ecard.c --- a/arch/arm/kernel/ecard.c~linux-next +++ a/arch/arm/kernel/ecard.c @@ -680,7 +680,7 @@ static int __init ecard_probeirqhw(void) #define IO_EC_MEMC8_BASE 0 #endif -unsigned int __ecard_address(ecard_t *ec, card_type_t type, card_speed_t speed) +static unsigned int __ecard_address(ecard_t *ec, card_type_t type, card_speed_t speed) { unsigned long address = 0; int slot = ec->slot_no; @@ -783,7 +783,7 @@ static void ecard_proc_init(void) #define ec_set_resource(ec,nr,st,sz) \ do { \ - (ec)->resource[nr].name = ec->dev.bus_id; \ + (ec)->resource[nr].name = dev_name(&ec->dev); \ (ec)->resource[nr].start = st; \ (ec)->resource[nr].end = (st) + (sz) - 1; \ (ec)->resource[nr].flags = IORESOURCE_MEM; \ @@ -853,8 +853,7 @@ static struct expansion_card *__init eca for (i = 0; i < ECARD_NUM_RESOURCES; i++) { if (ec->resource[i].flags && request_resource(&iomem_resource, &ec->resource[i])) { - printk(KERN_ERR "%s: resource(s) not available\n", - ec->dev.bus_id); + dev_err(&ec->dev, "resource(s) not available\n"); ec->resource[i].end -= ec->resource[i].start; ec->resource[i].start = 0; ec->resource[i].flags = 0; @@ -1002,7 +1001,7 @@ ecard_probe(int slot, card_type_t type) } rc = -ENODEV; - if ((ec->podaddr = ecard_address(ec, type, ECARD_SYNC)) == 0) + if ((ec->podaddr = __ecard_address(ec, type, ECARD_SYNC)) == 0) goto nodev; cid.r_zero = 1; @@ -1141,10 +1140,10 @@ static int ecard_drv_probe(struct device id = ecard_match_device(drv->id_table, ec); - ecard_claim(ec); + ec->claimed = 1; ret = drv->probe(ec, id); if (ret) - ecard_release(ec); + ec->claimed = 0; return ret; } @@ -1154,7 +1153,7 @@ static int ecard_drv_remove(struct devic struct ecard_driver *drv = ECARD_DRV(dev->driver); drv->remove(ec); - ecard_release(ec); + ec->claimed = 0; /* * Restore the default operations. We ensure that the @@ -1182,7 +1181,7 @@ static void ecard_drv_shutdown(struct de if (dev->driver) { if (drv->shutdown) drv->shutdown(ec); - ecard_release(ec); + ec->claimed = 0; } /* @@ -1239,7 +1238,6 @@ static int ecard_bus_init(void) postcore_initcall(ecard_bus_init); EXPORT_SYMBOL(ecard_readchunk); -EXPORT_SYMBOL(__ecard_address); EXPORT_SYMBOL(ecard_register_driver); EXPORT_SYMBOL(ecard_remove_driver); EXPORT_SYMBOL(ecard_bus_type); diff -puN arch/arm/kernel/ecard.h~linux-next arch/arm/kernel/ecard.h --- a/arch/arm/kernel/ecard.h~linux-next +++ a/arch/arm/kernel/ecard.h @@ -54,3 +54,16 @@ struct ex_chunk_dir { #define c_len(x) ((x)->r_len[0]|((x)->r_len[1]<<8)|((x)->r_len[2]<<16)) #define c_start(x) ((x)->r_start) }; + +typedef enum ecard_type { /* Cards address space */ + ECARD_IOC, + ECARD_MEMC, + ECARD_EASI +} card_type_t; + +typedef enum { /* Speed for ECARD_IOC space */ + ECARD_SLOW = 0, + ECARD_MEDIUM = 1, + ECARD_FAST = 2, + ECARD_SYNC = 3 +} card_speed_t; diff -puN arch/arm/kernel/entry-common.S~linux-next arch/arm/kernel/entry-common.S --- a/arch/arm/kernel/entry-common.S~linux-next +++ a/arch/arm/kernel/entry-common.S @@ -99,6 +99,53 @@ ENTRY(ret_from_fork) #undef CALL #define CALL(x) .long x +#ifdef CONFIG_FTRACE +#ifdef CONFIG_DYNAMIC_FTRACE +ENTRY(mcount) + stmdb sp!, {r0-r3, lr} + mov r0, lr + + .globl mcount_call +mcount_call: + bl ftrace_stub + ldmia sp!, {r0-r3, pc} + +ENTRY(ftrace_caller) + stmdb sp!, {r0-r3, lr} + ldr r1, [fp, #-4] + mov r0, lr + + .globl ftrace_call +ftrace_call: + bl ftrace_stub + ldmia sp!, {r0-r3, pc} + +#else + +ENTRY(mcount) + stmdb sp!, {r0-r3, lr} + ldr r0, =ftrace_trace_function + ldr r2, [r0] + adr r0, ftrace_stub + cmp r0, r2 + bne trace + ldmia sp!, {r0-r3, pc} + +trace: + ldr r1, [fp, #-4] + mov r0, lr + mov lr, pc + mov pc, r2 + ldmia sp!, {r0-r3, pc} + +#endif /* CONFIG_DYNAMIC_FTRACE */ + + .globl ftrace_stub +ftrace_stub: + mov pc, lr + +#endif /* CONFIG_FTRACE */ + /*============================================================================= * SWI handler *----------------------------------------------------------------------------- diff -puN /dev/null arch/arm/kernel/ftrace.c --- /dev/null +++ a/arch/arm/kernel/ftrace.c @@ -0,0 +1,128 @@ +/* + * Dynamic function tracing support. + * + * Copyright (C) 2008 Abhishek Sagar + * + * For licencing details, see COPYING. + * + * Defines low-level handling of mcount calls when the kernel + * is compiled with the -pg flag. When using dynamic ftrace, the + * mcount call-sites get patched lazily with NOP till they are + * enabled. All code mutation routines here take effect atomically. + */ + +#include +#include + +#define INSN_SIZE 4 +#define PC_OFFSET 8 +#define BL_OPCODE 0xeb000000 +#define BL_OFFSET_MASK 0x00ffffff + +static unsigned long bl_insn; +static const unsigned long NOP = 0xe1a00000; /* mov r0, r0 */ + +/* return true if mcount call site is already patched/no-op'ed */ +int ftrace_ip_converted(unsigned long pc) +{ + unsigned long save; + + pc -= INSN_SIZE; + save = *(unsigned long *)pc; + return save == NOP; +} + +unsigned char *ftrace_nop_replace(void) +{ + return (char *)&NOP; +} + +/* construct a branch (BL) instruction to addr */ +unsigned char *ftrace_call_replace(unsigned long pc, unsigned long addr) +{ + long offset; + + offset = (long)addr - (long)(pc - INSN_SIZE + PC_OFFSET); + if (unlikely(offset < -33554432 || offset > 33554428)) { + /* Can't generate branches that far (from ARM ARM). Ftrace + * doesn't generate branches outside of core kernel text. + */ + WARN_ON_ONCE(1); + return NULL; + } + offset = (offset >> 2) & BL_OFFSET_MASK; + bl_insn = BL_OPCODE | offset; + return (unsigned char *)&bl_insn; +} + +int ftrace_modify_code(unsigned long pc, unsigned char *old_code, + unsigned char *new_code) +{ + unsigned long err = 0, replaced = 0, old, new; + + old = *(unsigned long *)old_code; + new = *(unsigned long *)new_code; + pc -= INSN_SIZE; + + __asm__ __volatile__ ( + "1: ldr %1, [%2] \n" + " cmp %1, %4 \n" + "2: streq %3, [%2] \n" + " cmpne %1, %3 \n" + " movne %0, #2 \n" + "3:\n" + + ".section .fixup, \"ax\"\n" + "4: mov %0, #1 \n" + " b 3b \n" + ".previous\n" + + ".section __ex_table, \"a\"\n" + " .long 1b, 4b \n" + " .long 2b, 4b \n" + ".previous\n" + + : "=r"(err), "=r"(replaced) + : "r"(pc), "r"(new), "r"(old), "0"(err), "1"(replaced) + : "memory"); + + if (!err && (replaced == old)) + flush_icache_range(pc, pc + INSN_SIZE); + + return err; +} + +int ftrace_update_ftrace_func(ftrace_func_t func) +{ + int ret; + unsigned long pc, old; + unsigned char *new; + + pc = (unsigned long)&ftrace_call; + pc += INSN_SIZE; + memcpy(&old, &ftrace_call, INSN_SIZE); + new = ftrace_call_replace(pc, (unsigned long)func); + ret = ftrace_modify_code(pc, (unsigned char *)&old, new); + return ret; +} + +int ftrace_mcount_set(unsigned long *data) +{ + unsigned long pc, old; + unsigned long *addr = data; + unsigned char *new; + + pc = (unsigned long)&mcount_call; + pc += INSN_SIZE; + memcpy(&old, &mcount_call, INSN_SIZE); + new = ftrace_call_replace(pc, *addr); + *addr = ftrace_modify_code(pc, (unsigned char *)&old, new); + return 0; +} + +/* run from kstop_machine */ +int __init ftrace_dyn_arch_init(void *data) +{ + ftrace_mcount_set(data); + return 0; +} diff -puN arch/arm/kernel/kprobes.c~linux-next arch/arm/kernel/kprobes.c --- a/arch/arm/kernel/kprobes.c~linux-next +++ a/arch/arm/kernel/kprobes.c @@ -274,7 +274,7 @@ int __kprobes kprobe_exceptions_notify(s * for kretprobe handlers which should normally be interested in r0 only * anyway. */ -static void __attribute__((naked)) __kprobes kretprobe_trampoline(void) +void __naked __kprobes kretprobe_trampoline(void) { __asm__ __volatile__ ( "stmdb sp!, {r0 - r11} \n\t" diff -puN arch/arm/kernel/process.c~linux-next arch/arm/kernel/process.c --- a/arch/arm/kernel/process.c~linux-next +++ a/arch/arm/kernel/process.c @@ -133,10 +133,8 @@ static void default_idle(void) cpu_relax(); else { local_irq_disable(); - if (!need_resched()) { - timer_dyn_reprogram(); + if (!need_resched()) arch_idle(); - } local_irq_enable(); } } diff -puN arch/arm/kernel/time.c~linux-next arch/arm/kernel/time.c --- a/arch/arm/kernel/time.c~linux-next +++ a/arch/arm/kernel/time.c @@ -365,108 +365,6 @@ static struct sysdev_class timer_sysclas .resume = timer_resume, }; -#ifdef CONFIG_NO_IDLE_HZ -static int timer_dyn_tick_enable(void) -{ - struct dyn_tick_timer *dyn_tick = system_timer->dyn_tick; - unsigned long flags; - int ret = -ENODEV; - - if (dyn_tick) { - spin_lock_irqsave(&dyn_tick->lock, flags); - ret = 0; - if (!(dyn_tick->state & DYN_TICK_ENABLED)) { - ret = dyn_tick->enable(); - - if (ret == 0) - dyn_tick->state |= DYN_TICK_ENABLED; - } - spin_unlock_irqrestore(&dyn_tick->lock, flags); - } - - return ret; -} - -static int timer_dyn_tick_disable(void) -{ - struct dyn_tick_timer *dyn_tick = system_timer->dyn_tick; - unsigned long flags; - int ret = -ENODEV; - - if (dyn_tick) { - spin_lock_irqsave(&dyn_tick->lock, flags); - ret = 0; - if (dyn_tick->state & DYN_TICK_ENABLED) { - ret = dyn_tick->disable(); - - if (ret == 0) - dyn_tick->state &= ~DYN_TICK_ENABLED; - } - spin_unlock_irqrestore(&dyn_tick->lock, flags); - } - - return ret; -} - -/* - * Reprogram the system timer for at least the calculated time interval. - * This function should be called from the idle thread with IRQs disabled, - * immediately before sleeping. - */ -void timer_dyn_reprogram(void) -{ - struct dyn_tick_timer *dyn_tick = system_timer->dyn_tick; - unsigned long next, seq, flags; - - if (!dyn_tick) - return; - - spin_lock_irqsave(&dyn_tick->lock, flags); - if (dyn_tick->state & DYN_TICK_ENABLED) { - next = next_timer_interrupt(); - do { - seq = read_seqbegin(&xtime_lock); - dyn_tick->reprogram(next - jiffies); - } while (read_seqretry(&xtime_lock, seq)); - } - spin_unlock_irqrestore(&dyn_tick->lock, flags); -} - -static ssize_t timer_show_dyn_tick(struct sys_device *dev, char *buf) -{ - return sprintf(buf, "%i\n", - (system_timer->dyn_tick->state & DYN_TICK_ENABLED) >> 1); -} - -static ssize_t timer_set_dyn_tick(struct sys_device *dev, const char *buf, - size_t count) -{ - unsigned int enable = simple_strtoul(buf, NULL, 2); - - if (enable) - timer_dyn_tick_enable(); - else - timer_dyn_tick_disable(); - - return count; -} -static SYSDEV_ATTR(dyn_tick, 0644, timer_show_dyn_tick, timer_set_dyn_tick); - -/* - * dyntick=enable|disable - */ -static char dyntick_str[4] __initdata = ""; - -static int __init dyntick_setup(char *str) -{ - if (str) - strlcpy(dyntick_str, str, sizeof(dyntick_str)); - return 1; -} - -__setup("dyntick=", dyntick_setup); -#endif - static int __init timer_init_sysfs(void) { int ret = sysdev_class_register(&timer_sysclass); @@ -475,19 +373,6 @@ static int __init timer_init_sysfs(void) ret = sysdev_register(&system_timer->dev); } -#ifdef CONFIG_NO_IDLE_HZ - if (ret == 0 && system_timer->dyn_tick) { - ret = sysdev_create_file(&system_timer->dev, &attr_dyn_tick); - - /* - * Turn on dynamic tick after calibrate delay - * for correct bogomips - */ - if (ret == 0 && dyntick_str[0] == 'e') - ret = timer_dyn_tick_enable(); - } -#endif - return ret; } @@ -500,10 +385,5 @@ void __init time_init(void) system_timer->offset = dummy_gettimeoffset; #endif system_timer->init(); - -#ifdef CONFIG_NO_IDLE_HZ - if (system_timer->dyn_tick) - spin_lock_init(&system_timer->dyn_tick->lock); -#endif } diff -puN arch/arm/mach-at91/Kconfig~linux-next arch/arm/mach-at91/Kconfig --- a/arch/arm/mach-at91/Kconfig~linux-next +++ a/arch/arm/mach-at91/Kconfig @@ -126,6 +126,12 @@ config MACH_ECBAT91 Select this if you are using emQbit's ECB_AT91 board. +config MACH_YL9200 + bool "ucDragon YL-9200" + depends on ARCH_AT91RM9200 + help + Select this if you are using the ucDragon YL-9200 board. + endif # ---------------------------------------------------------- @@ -164,6 +170,20 @@ config MACH_SAM9_L9260 Select this if you are using Olimex's SAM9-L9260 board based on the Atmel AT91SAM9260. +config MACH_USB_A9260 + bool "CALAO USB-A9260" + depends on ARCH_AT91SAM9260 + help + Select this if you are using a Calao Systems USB-A9260. + + +config MACH_QIL_A9260 + bool "CALAO QIL-A9260 board" + depends on ARCH_AT91SAM9260 + help + Select this if you are using a Calao Systems QIL-A9260 Board. + + endif # ---------------------------------------------------------- @@ -194,6 +214,13 @@ config MACH_AT91SAM9263EK Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit. +config MACH_USB_A9263 + bool "CALAO USB-A9263" + depends on ARCH_AT91SAM9263 + help + Select this if you are using a Calao Systems USB-A9263. + + endif # ---------------------------------------------------------- diff -puN arch/arm/mach-at91/Makefile~linux-next arch/arm/mach-at91/Makefile --- a/arch/arm/mach-at91/Makefile~linux-next +++ a/arch/arm/mach-at91/Makefile @@ -30,17 +30,21 @@ obj-$(CONFIG_MACH_ATEB9200) += board-eb9 obj-$(CONFIG_MACH_KAFA) += board-kafa.o obj-$(CONFIG_MACH_PICOTUX2XX) += board-picotux200.o obj-$(CONFIG_MACH_ECBAT91) += board-ecbat91.o +obj-$(CONFIG_MACH_YL9200) += board-yl-9200.o # AT91SAM9260 board-specific support obj-$(CONFIG_MACH_AT91SAM9260EK) += board-sam9260ek.o obj-$(CONFIG_MACH_CAM60) += board-cam60.o obj-$(CONFIG_MACH_SAM9_L9260) += board-sam9-l9260.o +obj-$(CONFIG_MACH_USB_A9260) += board-usb-a9260.o +obj-$(CONFIG_MACH_QIL_A9260) += board-qil-a9260.o # AT91SAM9261 board-specific support obj-$(CONFIG_MACH_AT91SAM9261EK) += board-sam9261ek.o # AT91SAM9263 board-specific support obj-$(CONFIG_MACH_AT91SAM9263EK) += board-sam9263ek.o +obj-$(CONFIG_MACH_USB_A9263) += board-usb-a9263.o # AT91SAM9RL board-specific support obj-$(CONFIG_MACH_AT91SAM9RLEK) += board-sam9rlek.o diff -puN arch/arm/mach-at91/at91cap9_devices.c~linux-next arch/arm/mach-at91/at91cap9_devices.c --- a/arch/arm/mach-at91/at91cap9_devices.c~linux-next +++ a/arch/arm/mach-at91/at91cap9_devices.c @@ -84,6 +84,105 @@ void __init at91_add_device_usbh(struct /* -------------------------------------------------------------------- + * USB HS Device (Gadget) + * -------------------------------------------------------------------- */ + +#if defined(CONFIG_USB_GADGET_ATMEL_USBA) || defined(CONFIG_USB_GADGET_ATMEL_USBA_MODULE) + +static struct resource usba_udc_resources[] = { + [0] = { + .start = AT91CAP9_UDPHS_FIFO, + .end = AT91CAP9_UDPHS_FIFO + SZ_512K - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = AT91CAP9_BASE_UDPHS, + .end = AT91CAP9_BASE_UDPHS + SZ_1K - 1, + .flags = IORESOURCE_MEM, + }, + [2] = { + .start = AT91CAP9_ID_UDPHS, + .end = AT91CAP9_ID_UDPHS, + .flags = IORESOURCE_IRQ, + }, +}; + +#define EP(nam, idx, maxpkt, maxbk, dma, isoc) \ + [idx] = { \ + .name = nam, \ + .index = idx, \ + .fifo_size = maxpkt, \ + .nr_banks = maxbk, \ + .can_dma = dma, \ + .can_isoc = isoc, \ + } + +static struct usba_ep_data usba_udc_ep[] = { + EP("ep0", 0, 64, 1, 0, 0), + EP("ep1", 1, 1024, 3, 1, 1), + EP("ep2", 2, 1024, 3, 1, 1), + EP("ep3", 3, 1024, 2, 1, 1), + EP("ep4", 4, 1024, 2, 1, 1), + EP("ep5", 5, 1024, 2, 1, 0), + EP("ep6", 6, 1024, 2, 1, 0), + EP("ep7", 7, 1024, 2, 0, 0), +}; + +#undef EP + +/* + * pdata doesn't have room for any endpoints, so we need to + * append room for the ones we need right after it. + */ +static struct { + struct usba_platform_data pdata; + struct usba_ep_data ep[8]; +} usba_udc_data; + +static struct platform_device at91_usba_udc_device = { + .name = "atmel_usba_udc", + .id = -1, + .dev = { + .platform_data = &usba_udc_data.pdata, + }, + .resource = usba_udc_resources, + .num_resources = ARRAY_SIZE(usba_udc_resources), +}; + +void __init at91_add_device_usba(struct usba_platform_data *data) +{ + at91_sys_write(AT91_MATRIX_UDPHS, AT91_MATRIX_SELECT_UDPHS | + AT91_MATRIX_UDPHS_BYPASS_LOCK); + + /* + * Invalid pins are 0 on AT91, but the usba driver is shared + * with AVR32, which use negative values instead. Once/if + * gpio_is_valid() is ported to AT91, revisit this code. + */ + usba_udc_data.pdata.vbus_pin = -EINVAL; + usba_udc_data.pdata.num_ep = ARRAY_SIZE(usba_udc_ep); + memcpy(usba_udc_data.ep, usba_udc_ep, sizeof(usba_udc_ep));; + + if (data && data->vbus_pin > 0) { + at91_set_gpio_input(data->vbus_pin, 0); + at91_set_deglitch(data->vbus_pin, 1); + usba_udc_data.pdata.vbus_pin = data->vbus_pin; + } + + /* Pullup pin is handled internally by USB device peripheral */ + + /* Clocks */ + at91_clock_associate("utmi_clk", &at91_usba_udc_device.dev, "hclk"); + at91_clock_associate("udphs_clk", &at91_usba_udc_device.dev, "pclk"); + + platform_device_register(&at91_usba_udc_device); +} +#else +void __init at91_add_device_usba(struct usba_platform_data *data) {} +#endif + + +/* -------------------------------------------------------------------- * Ethernet * -------------------------------------------------------------------- */ diff -puN arch/arm/mach-at91/at91sam9rl_devices.c~linux-next arch/arm/mach-at91/at91sam9rl_devices.c --- a/arch/arm/mach-at91/at91sam9rl_devices.c~linux-next +++ a/arch/arm/mach-at91/at91sam9rl_devices.c @@ -26,6 +26,101 @@ /* -------------------------------------------------------------------- + * USB HS Device (Gadget) + * -------------------------------------------------------------------- */ + +#if defined(CONFIG_USB_GADGET_ATMEL_USBA) || defined(CONFIG_USB_GADGET_ATMEL_USBA_MODULE) + +static struct resource usba_udc_resources[] = { + [0] = { + .start = AT91SAM9RL_UDPHS_FIFO, + .end = AT91SAM9RL_UDPHS_FIFO + SZ_512K - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = AT91SAM9RL_BASE_UDPHS, + .end = AT91SAM9RL_BASE_UDPHS + SZ_1K - 1, + .flags = IORESOURCE_MEM, + }, + [2] = { + .start = AT91SAM9RL_ID_UDPHS, + .end = AT91SAM9RL_ID_UDPHS, + .flags = IORESOURCE_IRQ, + }, +}; + +#define EP(nam, idx, maxpkt, maxbk, dma, isoc) \ + [idx] = { \ + .name = nam, \ + .index = idx, \ + .fifo_size = maxpkt, \ + .nr_banks = maxbk, \ + .can_dma = dma, \ + .can_isoc = isoc, \ + } + +static struct usba_ep_data usba_udc_ep[] __initdata = { + EP("ep0", 0, 64, 1, 0, 0), + EP("ep1", 1, 1024, 2, 1, 1), + EP("ep2", 2, 1024, 2, 1, 1), + EP("ep3", 3, 1024, 3, 1, 0), + EP("ep4", 4, 1024, 3, 1, 0), + EP("ep5", 5, 1024, 3, 1, 1), + EP("ep6", 6, 1024, 3, 1, 1), +}; + +#undef EP + +/* + * pdata doesn't have room for any endpoints, so we need to + * append room for the ones we need right after it. + */ +static struct { + struct usba_platform_data pdata; + struct usba_ep_data ep[7]; +} usba_udc_data; + +static struct platform_device at91_usba_udc_device = { + .name = "atmel_usba_udc", + .id = -1, + .dev = { + .platform_data = &usba_udc_data.pdata, + }, + .resource = usba_udc_resources, + .num_resources = ARRAY_SIZE(usba_udc_resources), +}; + +void __init at91_add_device_usba(struct usba_platform_data *data) +{ + /* + * Invalid pins are 0 on AT91, but the usba driver is shared + * with AVR32, which use negative values instead. Once/if + * gpio_is_valid() is ported to AT91, revisit this code. + */ + usba_udc_data.pdata.vbus_pin = -EINVAL; + usba_udc_data.pdata.num_ep = ARRAY_SIZE(usba_udc_ep); + memcpy(usba_udc_data.ep, usba_udc_ep, sizeof(usba_udc_ep));; + + if (data && data->vbus_pin > 0) { + at91_set_gpio_input(data->vbus_pin, 0); + at91_set_deglitch(data->vbus_pin, 1); + usba_udc_data.pdata.vbus_pin = data->vbus_pin; + } + + /* Pullup pin is handled internally by USB device peripheral */ + + /* Clocks */ + at91_clock_associate("utmi_clk", &at91_usba_udc_device.dev, "hclk"); + at91_clock_associate("udphs_clk", &at91_usba_udc_device.dev, "pclk"); + + platform_device_register(&at91_usba_udc_device); +} +#else +void __init at91_add_device_usba(struct usba_platform_data *data) {} +#endif + + +/* -------------------------------------------------------------------- * MMC / SD * -------------------------------------------------------------------- */ diff -puN arch/arm/mach-at91/board-cap9adk.c~linux-next arch/arm/mach-at91/board-cap9adk.c --- a/arch/arm/mach-at91/board-cap9adk.c~linux-next +++ a/arch/arm/mach-at91/board-cap9adk.c @@ -78,6 +78,12 @@ static struct at91_usbh_data __initdata .ports = 2, }; +/* + * USB HS Device port + */ +static struct usba_platform_data __initdata cap9adk_usba_udc_data = { + .vbus_pin = AT91_PIN_PB31, +}; /* * ADS7846 Touchscreen @@ -326,6 +332,9 @@ static void __init cap9adk_board_init(vo /* USB Host */ set_irq_type(AT91CAP9_ID_UHP, IRQT_HIGH); at91_add_device_usbh(&cap9adk_usbh_data); + /* USB HS */ + set_irq_type(AT91CAP9_ID_UDPHS, IRQT_HIGH); + at91_add_device_usba(&cap9adk_usba_udc_data); /* SPI */ at91_add_device_spi(cap9adk_spi_devices, ARRAY_SIZE(cap9adk_spi_devices)); /* Touchscreen */ diff -puN arch/arm/mach-at91/board-carmeva.c~linux-next arch/arm/mach-at91/board-carmeva.c --- a/arch/arm/mach-at91/board-carmeva.c~linux-next +++ a/arch/arm/mach-at91/board-carmeva.c @@ -40,24 +40,21 @@ #include "generic.h" -/* - * Serial port configuration. - * 0 .. 3 = USART0 .. USART3 - * 4 = DBGU - */ -static struct at91_uart_config __initdata carmeva_uart_config = { - .console_tty = 0, /* ttyS0 */ - .nr_tty = 2, - .tty_map = { 4, 1, -1, -1, -1 } /* ttyS0, ..., ttyS4 */ -}; - static void __init carmeva_map_io(void) { /* Initialize processor: 20.000 MHz crystal */ at91rm9200_initialize(20000000, AT91RM9200_BGA); - /* Setup the serial ports and console */ - at91_init_serial(&carmeva_uart_config); + /* DBGU on ttyS0. (Rx & Tx only) */ + at91_register_uart(0, 0, 0); + + /* USART1 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */ + at91_register_uart(AT91RM9200_ID_US1, 1, ATMEL_UART_CTS | ATMEL_UART_RTS + | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD + | ATMEL_UART_RI); + + /* set serial console to ttyS0 (ie, DBGU) */ + at91_set_serial_console(0); } static void __init carmeva_init_irq(void) diff -puN arch/arm/mach-at91/board-csb637.c~linux-next arch/arm/mach-at91/board-csb637.c --- a/arch/arm/mach-at91/board-csb637.c~linux-next +++ a/arch/arm/mach-at91/board-csb637.c @@ -45,10 +45,10 @@ static void __init csb637_map_io(void) /* Initialize processor: 3.6864 MHz crystal */ at91rm9200_initialize(3686400, AT91RM9200_BGA); - /* DBGU on ttyS0 */ + /* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart(0, 0, 0); - /* make console=ttyS0 the default */ + /* make console=ttyS0 (ie, DBGU) the default */ at91_set_serial_console(0); } diff -puN arch/arm/mach-at91/board-dk.c~linux-next arch/arm/mach-at91/board-dk.c --- a/arch/arm/mach-at91/board-dk.c~linux-next +++ a/arch/arm/mach-at91/board-dk.c @@ -45,17 +45,6 @@ #include "generic.h" -/* - * Serial port configuration. - * 0 .. 3 = USART0 .. USART3 - * 4 = DBGU - */ -static struct at91_uart_config __initdata dk_uart_config = { - .console_tty = 0, /* ttyS0 */ - .nr_tty = 2, - .tty_map = { 4, 1, -1, -1, -1 } /* ttyS0, ..., ttyS4 */ -}; - static void __init dk_map_io(void) { /* Initialize processor: 18.432 MHz crystal */ @@ -64,8 +53,16 @@ static void __init dk_map_io(void) /* Setup the LEDs */ at91_init_leds(AT91_PIN_PB2, AT91_PIN_PB2); - /* Setup the serial ports and console */ - at91_init_serial(&dk_uart_config); + /* DBGU on ttyS0. (Rx & Tx only) */ + at91_register_uart(0, 0, 0); + + /* USART1 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */ + at91_register_uart(AT91RM9200_ID_US1, 1, ATMEL_UART_CTS | ATMEL_UART_RTS + | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD + | ATMEL_UART_RI); + + /* set serial console to ttyS0 (ie, DBGU) */ + at91_set_serial_console(0); } static void __init dk_init_irq(void) @@ -163,7 +160,7 @@ static struct at91_nand_data __initdata #define DK_FLASH_SIZE 0x200000 static struct physmap_flash_data dk_flash_data = { - .width = 2, + .width = 2, }; static struct resource dk_flash_resource = { diff -puN arch/arm/mach-at91/board-eb9200.c~linux-next arch/arm/mach-at91/board-eb9200.c --- a/arch/arm/mach-at91/board-eb9200.c~linux-next +++ a/arch/arm/mach-at91/board-eb9200.c @@ -40,24 +40,24 @@ #include "generic.h" -/* - * Serial port configuration. - * 0 .. 3 = USART0 .. USART3 - * 4 = DBGU - */ -static struct at91_uart_config __initdata eb9200_uart_config = { - .console_tty = 0, /* ttyS0 */ - .nr_tty = 2, - .tty_map = { 4, 1, -1, -1, -1 } /* ttyS0, ..., ttyS4 */ -}; - static void __init eb9200_map_io(void) { /* Initialize processor: 18.432 MHz crystal */ at91rm9200_initialize(18432000, AT91RM9200_BGA); - /* Setup the serial ports and console */ - at91_init_serial(&eb9200_uart_config); + /* DBGU on ttyS0. (Rx & Tx only) */ + at91_register_uart(0, 0, 0); + + /* USART1 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */ + at91_register_uart(AT91RM9200_ID_US1, 1, ATMEL_UART_CTS | ATMEL_UART_RTS + | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD + | ATMEL_UART_RI); + + /* USART2 on ttyS2. (Rx, Tx) - IRDA */ + at91_register_uart(AT91RM9200_ID_US2, 2, 0); + + /* set serial console to ttyS0 (ie, DBGU) */ + at91_set_serial_console(0); } static void __init eb9200_init_irq(void) diff -puN arch/arm/mach-at91/board-ek.c~linux-next arch/arm/mach-at91/board-ek.c --- a/arch/arm/mach-at91/board-ek.c~linux-next +++ a/arch/arm/mach-at91/board-ek.c @@ -45,17 +45,6 @@ #include "generic.h" -/* - * Serial port configuration. - * 0 .. 3 = USART0 .. USART3 - * 4 = DBGU - */ -static struct at91_uart_config __initdata ek_uart_config = { - .console_tty = 0, /* ttyS0 */ - .nr_tty = 2, - .tty_map = { 4, 1, -1, -1, -1 } /* ttyS0, ..., ttyS4 */ -}; - static void __init ek_map_io(void) { /* Initialize processor: 18.432 MHz crystal */ @@ -64,8 +53,16 @@ static void __init ek_map_io(void) /* Setup the LEDs */ at91_init_leds(AT91_PIN_PB1, AT91_PIN_PB2); - /* Setup the serial ports and console */ - at91_init_serial(&ek_uart_config); + /* DBGU on ttyS0. (Rx & Tx only) */ + at91_register_uart(0, 0, 0); + + /* USART1 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */ + at91_register_uart(AT91RM9200_ID_US1, 1, ATMEL_UART_CTS | ATMEL_UART_RTS + | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD + | ATMEL_UART_RI); + + /* set serial console to ttyS0 (ie, DBGU) */ + at91_set_serial_console(0); } static void __init ek_init_irq(void) @@ -122,7 +119,7 @@ static struct i2c_board_info __initdata #define EK_FLASH_SIZE 0x200000 static struct physmap_flash_data ek_flash_data = { - .width = 2, + .width = 2, }; static struct resource ek_flash_resource = { diff -puN arch/arm/mach-at91/board-kb9202.c~linux-next arch/arm/mach-at91/board-kb9202.c --- a/arch/arm/mach-at91/board-kb9202.c~linux-next +++ a/arch/arm/mach-at91/board-kb9202.c @@ -37,19 +37,10 @@ #include #include -#include "generic.h" +#include +#include "generic.h" -/* - * Serial port configuration. - * 0 .. 3 = USART0 .. USART3 - * 4 = DBGU - */ -static struct at91_uart_config __initdata kb9202_uart_config = { - .console_tty = 0, /* ttyS0 */ - .nr_tty = 3, - .tty_map = { 4, 0, 1, -1, -1 } /* ttyS0, ..., ttyS4 */ -}; static void __init kb9202_map_io(void) { @@ -59,8 +50,20 @@ static void __init kb9202_map_io(void) /* Set up the LEDs */ at91_init_leds(AT91_PIN_PC19, AT91_PIN_PC18); - /* Setup the serial ports and console */ - at91_init_serial(&kb9202_uart_config); + /* DBGU on ttyS0. (Rx & Tx only) */ + at91_register_uart(0, 0, 0); + + /* USART0 on ttyS1 (Rx & Tx only) */ + at91_register_uart(AT91RM9200_ID_US0, 1, 0); + + /* USART1 on ttyS2 (Rx & Tx only) - IRDA (optional) */ + at91_register_uart(AT91RM9200_ID_US1, 2, 0); + + /* USART3 on ttyS3 (Rx, Tx, CTS, RTS) - RS485 (optional) */ + at91_register_uart(AT91RM9200_ID_US3, 3, ATMEL_UART_CTS | ATMEL_UART_RTS); + + /* set serial console to ttyS0 (ie, DBGU) */ + at91_set_serial_console(0); } static void __init kb9202_init_irq(void) diff -puN /dev/null arch/arm/mach-at91/board-qil-a9260.c --- /dev/null +++ a/arch/arm/mach-at91/board-qil-a9260.c @@ -0,0 +1,255 @@ +/* + * linux/arch/arm/mach-at91/board-qil-a9260.c + * + * Copyright (C) 2005 SAN People + * Copyright (C) 2006 Atmel + * Copyright (C) 2007 Calao-systems + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include + +#include "generic.h" + + +static void __init ek_map_io(void) +{ + /* Initialize processor: 12.000 MHz crystal */ + at91sam9260_initialize(12000000); + + /* DGBU on ttyS0. (Rx & Tx only) */ + at91_register_uart(0, 0, 0); + + /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */ + at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS + | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD + | ATMEL_UART_RI); + + /* USART1 on ttyS2. (Rx, Tx, CTS, RTS) */ + at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS); + + /* USART2 on ttyS3. (Rx, Tx, CTS, RTS) */ + at91_register_uart(AT91SAM9260_ID_US2, 3, ATMEL_UART_CTS | ATMEL_UART_RTS); + + /* set serial console to ttyS1 (ie, USART0) */ + at91_set_serial_console(1); + +} + +static void __init ek_init_irq(void) +{ + at91sam9260_init_interrupts(NULL); +} + + +/* + * USB Host port + */ +static struct at91_usbh_data __initdata ek_usbh_data = { + .ports = 2, +}; + +/* + * USB Device port + */ +static struct at91_udc_data __initdata ek_udc_data = { + .vbus_pin = AT91_PIN_PC5, + .pullup_pin = 0, /* pull-up driven by UDC */ +}; + +/* + * SPI devices. + */ +static struct spi_board_info ek_spi_devices[] = { +#if defined(CONFIG_RTC_DRV_M41T94) + { /* M41T94 RTC */ + .modalias = "m41t94", + .chip_select = 0, + .max_speed_hz = 1 * 1000 * 1000, + .bus_num = 0, + } +#endif +}; + +/* + * MACB Ethernet device + */ +static struct at91_eth_data __initdata ek_macb_data = { + .phy_irq_pin = AT91_PIN_PA31, + .is_rmii = 1, +}; + +/* + * NAND flash + */ +static struct mtd_partition __initdata ek_nand_partition[] = { + { + .name = "Uboot & Kernel", + .offset = 0x00000000, + .size = 16 * 1024 * 1024, + }, + { + .name = "Root FS", + .offset = 0x01000000, + .size = 120 * 1024 * 1024, + }, + { + .name = "FS", + .offset = 0x08800000, + .size = 120 * 1024 * 1024, + }, +}; + +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(ek_nand_partition); + return ek_nand_partition; +} + +static struct at91_nand_data __initdata ek_nand_data = { + .ale = 21, + .cle = 22, +// .det_pin = ... not connected + .rdy_pin = AT91_PIN_PC13, + .enable_pin = AT91_PIN_PC14, + .partition_info = nand_partitions, +#if defined(CONFIG_MTD_NAND_AT91_BUSWIDTH_16) + .bus_width_16 = 1, +#else + .bus_width_16 = 0, +#endif +}; + +/* + * MCI (SD/MMC) + */ +static struct at91_mmc_data __initdata ek_mmc_data = { + .slot_b = 0, + .wire4 = 1, +// .det_pin = ... not connected +// .wp_pin = ... not connected +// .vcc_pin = ... not connected +}; + +/* + * GPIO Buttons + */ +#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) +static struct gpio_keys_button ek_buttons[] = { + { /* USER PUSH BUTTON */ + .code = KEY_ENTER, + .gpio = AT91_PIN_PB10, + .active_low = 1, + .desc = "user_pb", + .wakeup = 1, + } +}; + +static struct gpio_keys_platform_data ek_button_data = { + .buttons = ek_buttons, + .nbuttons = ARRAY_SIZE(ek_buttons), +}; + +static struct platform_device ek_button_device = { + .name = "gpio-keys", + .id = -1, + .num_resources = 0, + .dev = { + .platform_data = &ek_button_data, + } +}; + +static void __init ek_add_device_buttons(void) +{ + at91_set_GPIO_periph(AT91_PIN_PB10, 1); /* user push button, pull up enabled */ + at91_set_deglitch(AT91_PIN_PB10, 1); + + platform_device_register(&ek_button_device); +} +#else +static void __init ek_add_device_buttons(void) {} +#endif + +/* + * LEDs + */ +static struct gpio_led ek_leds[] = { + { /* user_led (green) */ + .name = "user_led", + .gpio = AT91_PIN_PB21, + .active_low = 0, + .default_trigger = "heartbeat", + } +}; + +static void __init ek_board_init(void) +{ + /* Serial */ + at91_add_device_serial(); + /* USB Host */ + at91_add_device_usbh(&ek_usbh_data); + /* USB Device */ + at91_add_device_udc(&ek_udc_data); + /* SPI */ + at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices)); + /* NAND */ + at91_add_device_nand(&ek_nand_data); + /* I2C */ + at91_add_device_i2c(NULL, 0); + /* Ethernet */ + at91_add_device_eth(&ek_macb_data); + /* MMC */ + at91_add_device_mmc(0, &ek_mmc_data); + /* Push Buttons */ + ek_add_device_buttons(); + /* LEDs */ + at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds)); + /* shutdown controller, wakeup button (5 msec low) */ + at91_sys_write(AT91_SHDW_MR, AT91_SHDW_CPTWK0_(10) | AT91_SHDW_WKMODE0_LOW + | AT91_SHDW_RTTWKEN); +} + +MACHINE_START(QIL_A9260, "CALAO QIL_A9260") + /* Maintainer: calao-systems */ + .phys_io = AT91_BASE_SYS, + .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc, + .boot_params = AT91_SDRAM_BASE + 0x100, + .timer = &at91sam926x_timer, + .map_io = ek_map_io, + .init_irq = ek_init_irq, + .init_machine = ek_board_init, +MACHINE_END diff -puN arch/arm/mach-at91/board-sam9rlek.c~linux-next arch/arm/mach-at91/board-sam9rlek.c --- a/arch/arm/mach-at91/board-sam9rlek.c~linux-next +++ a/arch/arm/mach-at91/board-sam9rlek.c @@ -56,6 +56,14 @@ static void __init ek_init_irq(void) /* + * USB HS Device port + */ +static struct usba_platform_data __initdata ek_usba_udc_data = { + .vbus_pin = AT91_PIN_PA8, +}; + + +/* * MCI (SD/MMC) */ static struct at91_mmc_data __initdata ek_mmc_data = { @@ -175,6 +183,8 @@ static void __init ek_board_init(void) { /* Serial */ at91_add_device_serial(); + /* USB HS */ + at91_add_device_usba(&ek_usba_udc_data); /* I2C */ at91_add_device_i2c(NULL, 0); /* NAND */ diff -puN /dev/null arch/arm/mach-at91/board-usb-a9260.c --- /dev/null +++ a/arch/arm/mach-at91/board-usb-a9260.c @@ -0,0 +1,215 @@ +/* + * linux/arch/arm/mach-at91/board-usb-a9260.c + * + * Copyright (C) 2005 SAN People + * Copyright (C) 2006 Atmel + * Copyright (C) 2007 Calao-systems + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include + +#include "generic.h" + + +static void __init ek_map_io(void) +{ + /* Initialize processor: 12.000 MHz crystal */ + at91sam9260_initialize(12000000); + + /* DGBU on ttyS0. (Rx & Tx only) */ + at91_register_uart(0, 0, 0); + + /* set serial console to ttyS0 (ie, DBGU) */ + at91_set_serial_console(0); +} + +static void __init ek_init_irq(void) +{ + at91sam9260_init_interrupts(NULL); +} + + +/* + * USB Host port + */ +static struct at91_usbh_data __initdata ek_usbh_data = { + .ports = 2, +}; + +/* + * USB Device port + */ +static struct at91_udc_data __initdata ek_udc_data = { + .vbus_pin = AT91_PIN_PC5, + .pullup_pin = 0, /* pull-up driven by UDC */ +}; + +/* + * MACB Ethernet device + */ +static struct at91_eth_data __initdata ek_macb_data = { + .phy_irq_pin = AT91_PIN_PA31, + .is_rmii = 1, +}; + +/* + * NAND flash + */ +static struct mtd_partition __initdata ek_nand_partition[] = { + { + .name = "Uboot & Kernel", + .offset = 0x00000000, + .size = 16 * 1024 * 1024, + }, + { + .name = "Root FS", + .offset = 0x01000000, + .size = 120 * 1024 * 1024, + }, + { + .name = "FS", + .offset = 0x08800000, + .size = 120 * 1024 * 1024, + } +}; + +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(ek_nand_partition); + return ek_nand_partition; +} + +static struct at91_nand_data __initdata ek_nand_data = { + .ale = 21, + .cle = 22, +// .det_pin = ... not connected + .rdy_pin = AT91_PIN_PC13, + .enable_pin = AT91_PIN_PC14, + .partition_info = nand_partitions, +#if defined(CONFIG_MTD_NAND_AT91_BUSWIDTH_16) + .bus_width_16 = 1, +#else + .bus_width_16 = 0, +#endif +}; + +/* + * GPIO Buttons + */ + +#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) +static struct gpio_keys_button ek_buttons[] = { + { /* USER PUSH BUTTON */ + .code = KEY_ENTER, + .gpio = AT91_PIN_PB10, + .active_low = 1, + .desc = "user_pb", + .wakeup = 1, + } +}; + +static struct gpio_keys_platform_data ek_button_data = { + .buttons = ek_buttons, + .nbuttons = ARRAY_SIZE(ek_buttons), +}; + +static struct platform_device ek_button_device = { + .name = "gpio-keys", + .id = -1, + .num_resources = 0, + .dev = { + .platform_data = &ek_button_data, + } +}; + +static void __init ek_add_device_buttons(void) +{ + at91_set_GPIO_periph(AT91_PIN_PB10, 1); /* user push button, pull up enabled */ + at91_set_deglitch(AT91_PIN_PB10, 1); + + platform_device_register(&ek_button_device); +} +#else +static void __init ek_add_device_buttons(void) {} +#endif + +/* + * LEDs + */ +static struct gpio_led ek_leds[] = { + { /* user_led (green) */ + .name = "user_led", + .gpio = AT91_PIN_PB21, + .active_low = 0, + .default_trigger = "heartbeat", + } +}; + +static void __init ek_board_init(void) +{ + /* Serial */ + at91_add_device_serial(); + /* USB Host */ + at91_add_device_usbh(&ek_usbh_data); + /* USB Device */ + at91_add_device_udc(&ek_udc_data); + /* NAND */ + at91_add_device_nand(&ek_nand_data); + /* I2C */ + at91_add_device_i2c(NULL, 0); + /* Ethernet */ + at91_add_device_eth(&ek_macb_data); + /* Push Buttons */ + ek_add_device_buttons(); + /* LEDs */ + at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds)); + /* shutdown controller, wakeup button (5 msec low) */ + at91_sys_write(AT91_SHDW_MR, AT91_SHDW_CPTWK0_(10) | AT91_SHDW_WKMODE0_LOW + | AT91_SHDW_RTTWKEN); +} + +MACHINE_START(USB_A9260, "CALAO USB_A9260") + /* Maintainer: calao-systems */ + .phys_io = AT91_BASE_SYS, + .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc, + .boot_params = AT91_SDRAM_BASE + 0x100, + .timer = &at91sam926x_timer, + .map_io = ek_map_io, + .init_irq = ek_init_irq, + .init_machine = ek_board_init, +MACHINE_END diff -puN /dev/null arch/arm/mach-at91/board-usb-a9263.c --- /dev/null +++ a/arch/arm/mach-at91/board-usb-a9263.c @@ -0,0 +1,230 @@ +/* + * linux/arch/arm/mach-at91/board-usb-a9263.c + * + * Copyright (C) 2005 SAN People + * Copyright (C) 2007 Atmel Corporation. + * Copyright (C) 2007 Calao-systems + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include + +#include "generic.h" + + +static void __init ek_map_io(void) +{ + /* Initialize processor: 12.00 MHz crystal */ + at91sam9263_initialize(12000000); + + /* DGBU on ttyS0. (Rx & Tx only) */ + at91_register_uart(0, 0, 0); + + /* set serial console to ttyS0 (ie, DBGU) */ + at91_set_serial_console(0); +} + +static void __init ek_init_irq(void) +{ + at91sam9263_init_interrupts(NULL); +} + + +/* + * USB Host port + */ +static struct at91_usbh_data __initdata ek_usbh_data = { + .ports = 2, +}; + +/* + * USB Device port + */ +static struct at91_udc_data __initdata ek_udc_data = { + .vbus_pin = AT91_PIN_PB11, + .pullup_pin = 0, /* pull-up driven by UDC */ +}; + +/* + * SPI devices. + */ +static struct spi_board_info ek_spi_devices[] = { +#if !defined(CONFIG_MMC_AT91) + { /* DataFlash chip */ + .modalias = "mtd_dataflash", + .chip_select = 0, + .max_speed_hz = 15 * 1000 * 1000, + .bus_num = 0, + } +#endif +}; + +/* + * MACB Ethernet device + */ +static struct at91_eth_data __initdata ek_macb_data = { + .phy_irq_pin = AT91_PIN_PE31, + .is_rmii = 1, +}; + +/* + * NAND flash + */ +static struct mtd_partition __initdata ek_nand_partition[] = { + { + .name = "Linux Kernel", + .offset = 0x00000000, + .size = 16 * 1024 * 1024, + }, + { + .name = "Root FS", + .offset = 0x01000000, + .size = 120 * 1024 * 1024, + }, + { + .name = "FS", + .offset = 0x08800000, + .size = 120 * 1024 * 1024, + } +}; + +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(ek_nand_partition); + return ek_nand_partition; +} + +static struct at91_nand_data __initdata ek_nand_data = { + .ale = 21, + .cle = 22, +// .det_pin = ... not connected + .rdy_pin = AT91_PIN_PA22, + .enable_pin = AT91_PIN_PD15, + .partition_info = nand_partitions, +#if defined(CONFIG_MTD_NAND_AT91_BUSWIDTH_16) + .bus_width_16 = 1, +#else + .bus_width_16 = 0, +#endif +}; + +/* + * GPIO Buttons + */ +#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) +static struct gpio_keys_button ek_buttons[] = { + { /* USER PUSH BUTTON */ + .code = KEY_ENTER, + .gpio = AT91_PIN_PB10, + .active_low = 1, + .desc = "user_pb", + .wakeup = 1, + } +}; + +static struct gpio_keys_platform_data ek_button_data = { + .buttons = ek_buttons, + .nbuttons = ARRAY_SIZE(ek_buttons), +}; + +static struct platform_device ek_button_device = { + .name = "gpio-keys", + .id = -1, + .num_resources = 0, + .dev = { + .platform_data = &ek_button_data, + } +}; + +static void __init ek_add_device_buttons(void) +{ + at91_set_GPIO_periph(AT91_PIN_PB10, 1); /* user push button, pull up enabled */ + at91_set_deglitch(AT91_PIN_PB10, 1); + + platform_device_register(&ek_button_device); +} +#else +static void __init ek_add_device_buttons(void) {} +#endif + +/* + * LEDs + */ +static struct gpio_led ek_leds[] = { + { /* user_led (green) */ + .name = "user_led", + .gpio = AT91_PIN_PB21, + .active_low = 1, + .default_trigger = "heartbeat", + } +}; + + +static void __init ek_board_init(void) +{ + /* Serial */ + at91_add_device_serial(); + /* USB Host */ + at91_add_device_usbh(&ek_usbh_data); + /* USB Device */ + at91_add_device_udc(&ek_udc_data); + /* SPI */ + at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices)); + /* Ethernet */ + at91_add_device_eth(&ek_macb_data); + /* NAND */ + at91_add_device_nand(&ek_nand_data); + /* I2C */ + at91_add_device_i2c(NULL, 0); + /* Push Buttons */ + ek_add_device_buttons(); + /* LEDs */ + at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds)); + /* shutdown controller, wakeup button (5 msec low) */ + at91_sys_write(AT91_SHDW_MR, AT91_SHDW_CPTWK0_(10) | AT91_SHDW_WKMODE0_LOW + | AT91_SHDW_RTTWKEN); +} + +MACHINE_START(USB_A9263, "CALAO USB_A9263") + /* Maintainer: calao-systems */ + .phys_io = AT91_BASE_SYS, + .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc, + .boot_params = AT91_SDRAM_BASE + 0x100, + .timer = &at91sam926x_timer, + .map_io = ek_map_io, + .init_irq = ek_init_irq, + .init_machine = ek_board_init, +MACHINE_END diff -puN arch/arm/mach-at91/board-yl-9200.c~linux-next arch/arm/mach-at91/board-yl-9200.c --- a/arch/arm/mach-at91/board-yl-9200.c~linux-next +++ a/arch/arm/mach-at91/board-yl-9200.c @@ -1,11 +1,10 @@ /* * linux/arch/arm/mach-at91/board-yl-9200.c * - * Adapted from: - *various board files in - * /arch/arm/mach-at91 - * modifications to convert to YL-9200 platform - * Copyright (C) 2007 S.Birtles + * Adapted from various board files in arch/arm/mach-at91 + * + * Modifications for YL-9200 platform: + * Copyright (C) 2007 S. Birtles * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,13 +25,14 @@ #include #include #include +#include #include #include -/*#include */ #include #include +#include +#include -/*#include */ #include #include #include @@ -45,179 +45,108 @@ #include #include #include -#include -#include #include "generic.h" -#include -#define YL_9200_FLASH_BASE AT91_CHIPSELECT_0 -#define YL_9200_FLASH_SIZE 0x800000 -/* - * Serial port configuration. - * 0 .. 3 = USART0 .. USART3 - * 4 = DBGU - *atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL - *atmel_usart.1: ttyS1 at MMIO 0xfffc0000 (irq = 6) is a ATMEL_SERIAL - *atmel_usart.2: ttyS2 at MMIO 0xfffc4000 (irq = 7) is a ATMEL_SERIAL - *atmel_usart.3: ttyS3 at MMIO 0xfffc8000 (irq = 8) is a ATMEL_SERIAL - *atmel_usart.4: ttyS4 at MMIO 0xfffcc000 (irq = 9) is a ATMEL_SERIAL - * on the YL-9200 we are sitting at the following - *ttyS0 at MMIO 0xfefff200 (irq = 1) is a AT91_SERIAL - *ttyS1 at MMIO 0xfefc4000 (irq = 7) is a AT91_SERIAL - */ +static void __init yl9200_map_io(void) +{ + /* Initialize processor: 18.432 MHz crystal */ + at91rm9200_initialize(18432000, AT91RM9200_PQFP); -/* extern void __init yl_9200_add_device_sounder(struct gpio_sounder *sounders, int nr);*/ + /* Setup the LEDs D2=PB17 (timer), D3=PB16 (cpu) */ + at91_init_leds(AT91_PIN_PB16, AT91_PIN_PB17); -static struct at91_uart_config __initdata yl_9200_uart_config = { - .console_tty = 0, /* ttyS0 */ - .nr_tty = 3, - .tty_map = { 4, 1, 0, -1, -1 } /* ttyS0, ..., ttyS4 */ -}; + /* DBGU on ttyS0. (Rx & Tx only) */ + at91_register_uart(0, 0, 0); -static void __init yl_9200_map_io(void) -{ - /* Initialize processor: 18.432 MHz crystal */ - /*Also initialises register clocks & gpio*/ - at91rm9200_initialize(18432000, AT91RM9200_PQFP); /*we have a 3 bank system*/ + /* USART1 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */ + at91_register_uart(AT91RM9200_ID_US1, 1, ATMEL_UART_CTS | ATMEL_UART_RTS + | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD + | ATMEL_UART_RI); - /* Setup the serial ports and console */ - at91_init_serial(&yl_9200_uart_config); + /* USART0 on ttyS2. (Rx & Tx only to JP3) */ + at91_register_uart(AT91RM9200_ID_US0, 2, 0); - /* Setup the LEDs D2=PB17,D3=PB16 */ - at91_init_leds(AT91_PIN_PB16,AT91_PIN_PB17); /*cpu-led,timer-led*/ + /* USART3 on ttyS3. (Rx, Tx, RTS - RS485 interface) */ + at91_register_uart(AT91RM9200_ID_US3, 3, ATMEL_UART_RTS); + + /* set serial console to ttyS0 (ie, DBGU) */ + at91_set_serial_console(0); } -static void __init yl_9200_init_irq(void) +static void __init yl9200_init_irq(void) { at91rm9200_init_interrupts(NULL); } -static struct at91_eth_data __initdata yl_9200_eth_data = { - .phy_irq_pin = AT91_PIN_PB28, - .is_rmii = 1, -}; -static struct at91_usbh_data __initdata yl_9200_usbh_data = { - .ports = 1, /* this should be 1 not 2 for the Yl9200*/ +/* + * LEDs + */ +static struct gpio_led yl9200_leds[] = { + { /* D2 */ + .name = "led2", + .gpio = AT91_PIN_PB17, + .active_low = 1, + .default_trigger = "timer", + }, + { /* D3 */ + .name = "led3", + .gpio = AT91_PIN_PB16, + .active_low = 1, + .default_trigger = "heartbeat", + }, + { /* D4 */ + .name = "led4", + .gpio = AT91_PIN_PB15, + .active_low = 1, + }, + { /* D5 */ + .name = "led5", + .gpio = AT91_PIN_PB8, + .active_low = 1, + } }; -static struct at91_udc_data __initdata yl_9200_udc_data = { -/*on sheet 7 Schemitic rev 1.0*/ - .pullup_pin = AT91_PIN_PC4, - .vbus_pin= AT91_PIN_PC5, - .pullup_active_low = 1, /*ACTIVE LOW!! due to PNP transistor on page 7*/ - -}; /* -static struct at91_cf_data __initdata yl_9200_cf_data = { -TODO S.BIRTLES - .det_pin = AT91_PIN_xxx, - .rst_pin = AT91_PIN_xxx, - .irq_pin = ... not connected - .vcc_pin = ... always powered - + * Ethernet + */ +static struct at91_eth_data __initdata yl9200_eth_data = { + .phy_irq_pin = AT91_PIN_PB28, + .is_rmii = 1, }; -*/ -static struct at91_mmc_data __initdata yl_9200_mmc_data = { - .det_pin = AT91_PIN_PB9, /*THIS LOOKS CORRECT SHEET7*/ -/* .wp_pin = ... not connected SHEET7*/ - .slot_b = 0, - .wire4 = 1, +/* + * USB Host + */ +static struct at91_usbh_data __initdata yl9200_usbh_data = { + .ports = 1, /* PQFP version of AT91RM9200 */ }; -/* -------------------------------------------------------------------- - * Touch screen - * -------------------------------------------------------------------- */ -#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE) -static int ads7843_pendown_state(void) -{ - return !at91_get_gpio_value(AT91_PIN_PB11); /* Touchscreen PENIRQ */ -} - -static void __init at91_init_device_ts(void) -{ -/*IMPORTANT NOTE THE SPI INTERFACE IS ALREADY CONFIGURED BY XXX_DEVICES.C -THAT IS TO SAY THAT MISO,MOSI,SPCK AND CS are already configured -we only need to enable the other datapins which are: -PB10/RK1 BUSY -*/ -/* Touchscreen BUSY signal , pin,use pullup ( TODO not currently used in the ADS7843/6.c driver)*/ -at91_set_gpio_input(AT91_PIN_PB10, 1); -} - -#else -static void __init at91_init_device_ts(void) {} -#endif - -static struct ads7846_platform_data ads_info = { - .model = 7843, - .x_min = 150, - .x_max = 3830, - .y_min = 190, - .y_max = 3830, - .vref_delay_usecs = 100, -/* for a 8" touch screen*/ - //.x_plate_ohms = 603, //= 450, S.Birtles TODO - //.y_plate_ohms = 332, //= 250, S.Birtles TODO -/*for a 10.4" touch screen*/ - //.x_plate_ohms =611, - //.y_plate_ohms =325, - - .x_plate_ohms = 576, - .y_plate_ohms = 366, - // - .pressure_max = 15000, /*generally nonsense on the 7843*/ - /*number of times to send query to chip in a given run 0 equals one time (do not set to 0!! ,there is a bug in ADS 7846 code)*/ - .debounce_max = 1, - .debounce_rep = 0, - .debounce_tol = (~0), - .get_pendown_state = ads7843_pendown_state, -}; +/* + * USB Device + */ +static struct at91_udc_data __initdata yl9200_udc_data = { + .pullup_pin = AT91_PIN_PC4, + .vbus_pin = AT91_PIN_PC5, + .pullup_active_low = 1, /* Active Low due to PNP transistor (pg 7) */ -/*static struct canbus_platform_data can_info = { - .model = 2510, }; -*/ - -static struct spi_board_info yl_9200_spi_devices[] = { -/*this sticks it at: - /sys/devices/platform/atmel_spi.0/spi0.0 - /sys/bus/platform/devices/ -Documentation/spi IIRC*/ -#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE) - /*(this IS correct 04-NOV-2007)*/ - { - .modalias = "ads7846", /* because the driver is called ads7846*/ - .chip_select = 0, /*THIS MUST BE AN INDEX INTO AN ARRAY OF pins */ -/*this is ONLY TO BE USED if chipselect above is not used, it passes a pin directly for the chip select*/ - /*.controller_data =AT91_PIN_PA3 ,*/ - .max_speed_hz = 5000*26, /*(4700 * 26)-125000 * 26, (max sample rate @ 3V) * (cmd + data + overhead) */ - .bus_num = 0, - .platform_data = &ads_info, - .irq = AT91_PIN_PB11, - }, -#endif -/*we need to put our CAN driver data here!!*/ -/*THIS IS ALL DUMMY DATA*/ -/* { - .modalias = "mcp2510", //DUMMY for MCP2510 chip - .chip_select = 1,*/ /*THIS MUST BE AN INDEX INTO AN ARRAY OF pins */ - /*this is ONLY TO BE USED if chipselect above is not used, it passes a pin directly for the chip select */ - /* .controller_data =AT91_PIN_PA4 , - .max_speed_hz = 25000 * 26, - .bus_num = 0, - .platform_data = &can_info, - .irq = AT91_PIN_PC0, - }, - */ - //max SPI chip needs to go here +/* + * MMC + */ +static struct at91_mmc_data __initdata yl9200_mmc_data = { + .det_pin = AT91_PIN_PB9, + // .wp_pin = ... not connected + .wire4 = 1, }; -static struct mtd_partition __initdata yl_9200_nand_partition[] = { +/* + * NAND Flash + */ +static struct mtd_partition __initdata yl9200_nand_partition[] = { { .name = "AT91 NAND partition 1, boot", .offset = 0, @@ -242,442 +171,434 @@ static struct mtd_partition __initdata y .name = "AT91 NAND partition 5, ext-fs", .offset = 32 * SZ_1M, .size = 32 * SZ_1M - }, + } }; static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) { - *num_partitions = ARRAY_SIZE(yl_9200_nand_partition); - return yl_9200_nand_partition; + *num_partitions = ARRAY_SIZE(yl9200_nand_partition); + return yl9200_nand_partition; } -static struct at91_nand_data __initdata yl_9200_nand_data = { - .ale= 6, - .cle= 7, - /*.det_pin = AT91_PIN_PCxx,*/ /*we don't have a det pin because NandFlash is fixed to board*/ - .rdy_pin = AT91_PIN_PC14, /*R/!B Sheet10*/ - .enable_pin = AT91_PIN_PC15, /*!CE Sheet10 */ +static struct at91_nand_data __initdata yl9200_nand_data = { + .ale = 6, + .cle = 7, + // .det_pin = ... not connected + .rdy_pin = AT91_PIN_PC14, /* R/!B (Sheet10) */ + .enable_pin = AT91_PIN_PC15, /* !CE (Sheet10) */ .partition_info = nand_partitions, }; - - /* -TODO S.Birtles -potentially a problem with the size above -physmap platform flash device: 00800000 at 10000000 -physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank -NOR chip too large to fit in mapping. Attempting to cope... - Intel/Sharp Extended Query Table at 0x0031 -Using buffer write method -cfi_cmdset_0001: Erase suspend on write enabled -Reducing visibility of 16384KiB chip to 8192KiB -*/ + * NOR Flash + */ +#define YL9200_FLASH_BASE AT91_CHIPSELECT_0 +#define YL9200_FLASH_SIZE 0x1000000 -static struct mtd_partition yl_9200_flash_partitions[] = { +static struct mtd_partition yl9200_flash_partitions[] = { + { + .name = "Bootloader", + .size = 0x00040000, + .offset = 0, + .mask_flags = MTD_WRITEABLE, /* force read-only */ + }, { - .name = "Bootloader", - .size = 0x00040000, - .offset = 0, - .mask_flags = MTD_WRITEABLE /* force read-only */ - },{ - .name = "Kernel", - .size = 0x001C0000, - .offset = 0x00040000, - },{ - .name = "Filesystem", - .size = MTDPART_SIZ_FULL, - .offset = 0x00200000 + .name = "Kernel", + .size = 0x001C0000, + .offset = 0x00040000, + }, + { + .name = "Filesystem", + .size = MTDPART_SIZ_FULL, + .offset = 0x00200000 } - }; -static struct physmap_flash_data yl_9200_flash_data = { - .width = 2, - .parts = yl_9200_flash_partitions, - .nr_parts = ARRAY_SIZE(yl_9200_flash_partitions), +static struct physmap_flash_data yl9200_flash_data = { + .width = 2, + .parts = yl9200_flash_partitions, + .nr_parts = ARRAY_SIZE(yl9200_flash_partitions), }; -static struct resource yl_9200_flash_resources[] = { -{ - .start = YL_9200_FLASH_BASE, - .end = YL_9200_FLASH_BASE + YL_9200_FLASH_SIZE - 1, - .flags = IORESOURCE_MEM, +static struct resource yl9200_flash_resources[] = { + { + .start = YL9200_FLASH_BASE, + .end = YL9200_FLASH_BASE + YL9200_FLASH_SIZE - 1, + .flags = IORESOURCE_MEM, } }; -static struct platform_device yl_9200_flash = { +static struct platform_device yl9200_flash = { .name = "physmap-flash", .id = 0, .dev = { - .platform_data = &yl_9200_flash_data, + .platform_data = &yl9200_flash_data, }, - .resource = yl_9200_flash_resources, - .num_resources = ARRAY_SIZE(yl_9200_flash_resources), + .resource = yl9200_flash_resources, + .num_resources = ARRAY_SIZE(yl9200_flash_resources), }; - -static struct gpio_led yl_9200_leds[] = { -/*D2 &D3 are passed directly in via at91_init_leds*/ - { - .name = "led4", /*D4*/ - .gpio = AT91_PIN_PB15, - .active_low = 1, - .default_trigger = "heartbeat", - /*.default_trigger = "timer",*/ - }, - { - .name = "led5", /*D5*/ - .gpio = AT91_PIN_PB8, - .active_low = 1, - .default_trigger = "heartbeat", - } -}; - -//static struct gpio_sounder yl_9200_sounder[] = {*/ -/*This is a simple speaker attached to a gpo line*/ - -// { -// .name = "Speaker", /*LS1*/ -// .gpio = AT91_PIN_PA22, -// .active_low = 0, -// .default_trigger = "heartbeat", - /*.default_trigger = "timer",*/ -// }, -//}; - - - -static struct i2c_board_info __initdata yl_9200_i2c_devices[] = { - { - /*TODO*/ - I2C_BOARD_INFO("CS4334", 0x00), +/* + * I2C (TWI) + */ +static struct i2c_board_info __initdata yl9200_i2c_devices[] = { + { /* EEPROM */ + I2C_BOARD_INFO("24c128", 0x50), } }; - - /* +/* * GPIO Buttons - */ +*/ #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) -static struct gpio_keys_button yl_9200_buttons[] = { +static struct gpio_keys_button yl9200_buttons[] = { { .gpio = AT91_PIN_PA24, - .code = BTN_2, + .code = BTN_2, .desc = "SW2", .active_low = 1, .wakeup = 1, }, { .gpio = AT91_PIN_PB1, - .code = BTN_3, + .code = BTN_3, .desc = "SW3", .active_low = 1, .wakeup = 1, }, { .gpio = AT91_PIN_PB2, - .code = BTN_4, + .code = BTN_4, .desc = "SW4", .active_low = 1, .wakeup = 1, }, { .gpio = AT91_PIN_PB6, - .code = BTN_5, + .code = BTN_5, .desc = "SW5", .active_low = 1, .wakeup = 1, - }, - + } }; -static struct gpio_keys_platform_data yl_9200_button_data = { - .buttons = yl_9200_buttons, - .nbuttons = ARRAY_SIZE(yl_9200_buttons), +static struct gpio_keys_platform_data yl9200_button_data = { + .buttons = yl9200_buttons, + .nbuttons = ARRAY_SIZE(yl9200_buttons), }; -static struct platform_device yl_9200_button_device = { +static struct platform_device yl9200_button_device = { .name = "gpio-keys", .id = -1, .num_resources = 0, .dev = { - .platform_data = &yl_9200_button_data, + .platform_data = &yl9200_button_data, } }; -static void __init yl_9200_add_device_buttons(void) +static void __init yl9200_add_device_buttons(void) { - //SW2 - at91_set_gpio_input(AT91_PIN_PA24, 0); + at91_set_gpio_input(AT91_PIN_PA24, 1); /* SW2 */ at91_set_deglitch(AT91_PIN_PA24, 1); - - //SW3 - at91_set_gpio_input(AT91_PIN_PB1, 0); + at91_set_gpio_input(AT91_PIN_PB1, 1); /* SW3 */ at91_set_deglitch(AT91_PIN_PB1, 1); - //SW4 - at91_set_gpio_input(AT91_PIN_PB2, 0); + at91_set_gpio_input(AT91_PIN_PB2, 1); /* SW4 */ at91_set_deglitch(AT91_PIN_PB2, 1); - - //SW5 - at91_set_gpio_input(AT91_PIN_PB6, 0); + at91_set_gpio_input(AT91_PIN_PB6, 1); /* SW5 */ at91_set_deglitch(AT91_PIN_PB6, 1); + /* Enable buttons (Sheet 5) */ + at91_set_gpio_output(AT91_PIN_PB7, 1); - at91_set_gpio_output(AT91_PIN_PB7, 1); /* #TURN BUTTONS ON, SHEET 5 of schematics */ - platform_device_register(&yl_9200_button_device); + platform_device_register(&yl9200_button_device); } #else -static void __init yl_9200_add_device_buttons(void) {} +static void __init yl9200_add_device_buttons(void) {} #endif +/* + * Touchscreen + */ +#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE) +static int ads7843_pendown_state(void) +{ + return !at91_get_gpio_value(AT91_PIN_PB11); /* Touchscreen PENIRQ */ +} + +static struct ads7846_platform_data ads_info = { + .model = 7843, + .x_min = 150, + .x_max = 3830, + .y_min = 190, + .y_max = 3830, + .vref_delay_usecs = 100, + + /* For a 8" touch-screen */ + // .x_plate_ohms = 603, + // .y_plate_ohms = 332, + + /* For a 10.4" touch-screen */ + // .x_plate_ohms = 611, + // .y_plate_ohms = 325, + + .x_plate_ohms = 576, + .y_plate_ohms = 366, + + .pressure_max = 15000, /* generally nonsense on the 7843 */ + .debounce_max = 1, + .debounce_rep = 0, + .debounce_tol = (~0), + .get_pendown_state = ads7843_pendown_state, +}; + +static void __init yl9200_add_device_ts(void) +{ + at91_set_gpio_input(AT91_PIN_PB11, 1); /* Touchscreen interrupt pin */ + at91_set_gpio_input(AT91_PIN_PB10, 1); /* Touchscreen BUSY signal - not used! */ +} +#else +static void __init yl9200_add_device_ts(void) {} +#endif + +/* + * SPI devices + */ +static struct spi_board_info yl9200_spi_devices[] = { +#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE) + { /* Touchscreen */ + .modalias = "ads7846", + .chip_select = 0, + .max_speed_hz = 5000 * 26, + .platform_data = &ads_info, + .irq = AT91_PIN_PB11, + }, +#endif + { /* CAN */ + .modalias = "mcp2510", + .chip_select = 1, + .max_speed_hz = 25000 * 26, + .irq = AT91_PIN_PC0, + } +}; + +/* + * LCD / VGA + * + * EPSON S1D13806 FB (discontinued chip) + * EPSON S1D13506 FB + */ #if defined(CONFIG_FB_S1D135XX) || defined(CONFIG_FB_S1D13XXX_MODULE) #include