summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* arch/tile: fix bug in loading kernels larger than 16 MBChris Metcalf2012-04-021-6/+15
| | | | | | | Previously we only handled kernels up to a single huge page in size. Now we create additional PTEs appropriately. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile: don't enable irqs unconditionally in page fault handlerChris Metcalf2012-04-021-2/+5
| | | | | | | If we took a page fault while we had interrupts disabled, we shouldn't enable them in the page fault handler. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile: don't set the homecache of a PTE unless appropriateChris Metcalf2012-04-021-4/+12
| | | | | | | We make sure not to try to set the home for an MMIO PTE (on tilegx) or a PTE that isn't referencing memory managed by Linux. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile: don't wait for migrating PTEs in an NMI handlerChris Metcalf2012-04-021-3/+10
| | | | | | | | Doing so raises the possibility of self-deadlock if we are waiting for a backtrace for an oprofile or perf interrupt while we are in the middle of migrating our own stack page. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile/Makefile: use KCFLAGS when figuring out the libgcc path.Chris Metcalf2012-04-021-1/+2
| | | | Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile: fix a couple of comments that needed updatingChris Metcalf2012-04-022-3/+10
| | | | | | | Not associated with any code changes, so I'm just lumping these comment changes into a commit by themselves. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile: fix up some minor trap handling issuesChris Metcalf2012-04-022-3/+8
| | | | | | | | | | We now respond to MEM_ERROR traps (e.g. an atomic instruction to non-cacheable memory) with a SIGBUS. We also no longer generate a console crash message if a user process die due to a SIGTRAP. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile: work around a hardware issue with the return-address stackChris Metcalf2012-04-023-2/+22
| | | | | | | In certain circumstances we need to do a bunch of jump-and-link instructions to fill the hardware return-address stack with nonzero values. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile: various bugs in stack backtracerChris Metcalf2012-04-022-120/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a long-standing bug in the stack backtracer where we would print garbage to the console instead of kernel function names, if the kernel wasn't built with symbol support (e.g. mboot). Make sure to tag every line of userspace backtrace output if we actually have the mmap_sem, since that way if there's no tag, we know that it's because we couldn't trylock the semaphore. Stop doing a TLB flush and examining page tables during backtrace. Instead, just trust that __copy_from_user_inatomic() will properly fault and return a failure, which it should do in all cases. Fix a latent bug where the backtracer would directly examine a signal context in user space, rather than copying it safely to kernel memory first. This meant that a race with another thread could potentially have caused a kernel panic. Guard against unaligned sp when trying to restart backtrace at an interrupt or signal handler point in the kernel backtracer. Report kernel symbolic information for the call instruction rather than for the following instruction. We still report the actual numeric address corresponding to the instruction after the call, for the sake of consistency with the normal expectations for stack backtracers. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile: make sure to build memcpy_user_64 without frame pointerChris Metcalf2012-04-022-1/+8
| | | | | | | Add a comment explaining why this is important, and add a CFLAGS_REMOVE clause to the Makefile to make sure it happens. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile: avoid false corrupt frame warning in early bootChris Metcalf2012-04-021-1/+1
| | | | | | | | With lockstat we can end up trying to get a backtrace before "high_memory" is initialized, so don't worry about range testing if it is zero. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile: use 0 for IRQ_RESCHEDULE instead of 1Chris Metcalf2012-04-021-1/+1
| | | | | | | This avoids assigning IRQ 0 to PCI devices, because we've seen that doesn't always work well. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile: fix gcc 4.6 warnings in <asm/bitops_64.h>Chris Metcalf2012-04-021-4/+4
| | | | | | | Fix some signedness and variable usage warnings in change_bit() and test_and_change_bit(). Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile: revert comment for atomic64_add_unless().Chris Metcalf2012-04-021-1/+1
| | | | | | | | It still returns whether @v was not @u, not the old value, unlike __atomic_add_unless(). Signed-off-by: Chris Metcalf <cmetcalf@tilera.com> Acked-by: Arun Sharma <asharma@fb.com>
* arch/tile: fix typo in <arch/spr_def.h>Chris Metcalf2012-04-021-2/+2
| | | | | | | We aren't yet using this definition in the kernel, but fix it up before someone goes looking for it. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile/Kconfig: don't specify CONFIG_PAGE_OFFSET for 64-bit buildsChris Metcalf2012-04-021-0/+1
| | | | | | It's fixed at half the VA space and there's no point in configuring it. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile/Kconfig: rename tile_defconfig to tilepro_defconfigChris Metcalf2012-04-021-1/+4
| | | | | | | We switched to using "tilepro" for the 32-bit stuff a while ago, but missed this one usage. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* arch/tile/Kconfig: remove pointless "!M386" test.Chris Metcalf2012-04-021-1/+1
| | | | | | Looks like a cut and paste bug from the x86 version. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* tile: fix multiple build failures from system.h dismantlePaul Gortmaker2012-04-024-48/+77
| | | | | | | | | | | | | | | | | | | | | Commit bd119c69239322caafdb64517a806037d0d0c70a "Disintegrate asm/system.h for Tile" created the asm/switch_to.h file, but did not add an include of it to all its users. Also, commit b4816afa3986704d1404fc48e931da5135820472 "Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h" introduced the concept of asm/cmpxchg.h but the tile arch never got one. Fork the cmpxchg content out of the asm/atomic.h file to create one. Acked-by: David Howells <dhowells@redhat.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
* Linux 3.4-rc1v3.4-rc1Linus Torvalds2012-04-011-2/+2
|
* Merge branch 's3-for-3.4' of ↵Linus Torvalds2012-04-013-81/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/amit/virtio-console Pull virtio S3 support patches from Amit Shah: "Turns out S3 is not different from S4 for virtio devices: the device is assumed to be reset, so the host and guest state are to be assumed to be out of sync upon resume. We handle the S4 case with exactly the same scenario, so just point the suspend/resume routines to the freeze/restore ones. Once that is done, we also use the PM API's macro to initialise the sleep functions. A couple of cleanups are included: there's no need for special thaw processing in the balloon driver, so that's addressed in patches 1 and 2. Testing: both S3 and S4 support have been tested using these patches using a similar method used earlier during S4 patch development: a guest is started with virtio-blk as the only disk, a virtio network card, a virtio-serial port and a virtio balloon device. Ping from guest to host, dd /dev/zero to a file on the disk, and IO from the host on the virtio-serial port, all at once, while exercising S4 and S3 (separately) were tested. They all continue to work fine after resume. virtio balloon values too were tested by inflating and deflating the balloon." Pulling from Amit, since Rusty is off getting married (and presumably shaving people). * 's3-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/amit/virtio-console: virtio-pci: switch to PM ops macro to initialise PM functions virtio-pci: S3 support virtio-pci: drop restore_common() virtio: drop thaw PM operation virtio: balloon: Allow stats update after restore from S4
| * virtio-pci: switch to PM ops macro to initialise PM functionsAmit Shah2012-03-311-6/+1
| | | | | | | | | | | | | | Use the SET_SYSTEM_SLEEP_PM_OPS macro to initialise the suspend/resume functions in the new PM API. Signed-off-by: Amit Shah <amit.shah@redhat.com>
| * virtio-pci: S3 supportAmit Shah2012-03-311-21/+3
| | | | | | | | | | | | | | | | | | There's no difference in supporting S3 and S4 for virtio devices: the vqs have to be re-created as the device has to be assumed to be reset at restore-time. Since S4 already handles this situation, we can directly use the same code and callbacks for S3 support. Signed-off-by: Amit Shah <amit.shah@redhat.com>
| * virtio-pci: drop restore_common()Amit Shah2012-03-311-16/+7
| | | | | | | | | | | | | | restore_common() was shared between restore and thaw callbacks. With thaw gone, we don't need restore_common() anymore. Signed-off-by: Amit Shah <amit.shah@redhat.com>
| * virtio: drop thaw PM operationAmit Shah2012-03-313-34/+1
| | | | | | | | | | | | | | The thaw operation was used by the balloon driver, but after the last commit there's no reason to have separate thaw and restore callbacks. Signed-off-by: Amit Shah <amit.shah@redhat.com>
| * virtio: balloon: Allow stats update after restore from S4Amit Shah2012-03-311-8/+0
| | | | | | | | | | | | | | | | | | There's no reason stats update after restore can't work. If a host requested for stats, and before servicing the request, the guest entered S4, upon restore, the stats request can still be processed and sent off to the host. Signed-off-by: Amit Shah <amit.shah@redhat.com>
* | Merge branch 'for-linus' of ↵Linus Torvalds2012-03-3141-1640/+1249
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull second try at vfs part d#2 from Al Viro: "Miklos' first series (with do_lookup() rewrite split into edible chunks) + assorted bits and pieces. The 'untangling of do_lookup()' series is is a splitup of what used to be a monolithic patch from Miklos, so this series is basically "how do I convince myself that his patch is correct (or find a hole in it)". No holes found and I like the resulting cleanup, so in it went..." Changes from try 1: Fix a boot problem with selinux, and commit messages prettied up a bit. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (24 commits) vfs: fix out-of-date dentry_unhash() comment vfs: split __lookup_hash untangling do_lookup() - take __lookup_hash()-calling case out of line. untangling do_lookup() - switch to calling __lookup_hash() untangling do_lookup() - merge d_alloc_and_lookup() callers untangling do_lookup() - merge failure exits in !dentry case untangling do_lookup() - massage !dentry case towards __lookup_hash() untangling do_lookup() - get rid of need_reval in !dentry case untangling do_lookup() - eliminate a loop. untangling do_lookup() - expand the area under ->i_mutex untangling do_lookup() - isolate !dentry stuff from the rest of it. vfs: move MAY_EXEC check from __lookup_hash() vfs: don't revalidate just looked up dentry vfs: fix d_need_lookup/d_revalidate order in do_lookup ext3: move headers to fs/ext3/ migrate ext2_fs.h guts to fs/ext2/ext2.h new helper: ext2_image_size() get rid of pointless includes of ext2_fs.h ext2: No longer export ext2_fs.h to user space mtdchar: kill persistently held vfsmount ...
| * | vfs: fix out-of-date dentry_unhash() commentJ. Bruce Fields2012-03-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | 64252c75a2196a0cf1e0d3777143ecfe0e3ae650 "vfs: remove dget() from dentry_unhash()" changed the implementation but not the comment. Cc: Sage Weil <sage@newdream.net> Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | vfs: split __lookup_hashMiklos Szeredi2012-03-311-64/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Split __lookup_hash into two component functions: lookup_dcache - tries cached lookup, returns whether real lookup is needed lookup_real - calls i_op->lookup This eliminates code duplication between d_alloc_and_lookup() and d_inode_lookup(). Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | untangling do_lookup() - take __lookup_hash()-calling case out of line.Al Viro2012-03-311-15/+16
| | | | | | | | | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | untangling do_lookup() - switch to calling __lookup_hash()Al Viro2012-03-311-67/+46
| | | | | | | | | | | | | | | | | | | | | now we have __lookup_hash() open-coded if !dentry case; just call the damn thing instead... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | untangling do_lookup() - merge d_alloc_and_lookup() callersAl Viro2012-03-311-3/+3
| | | | | | | | | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | untangling do_lookup() - merge failure exits in !dentry caseAl Viro2012-03-311-15/+8
| | | | | | | | | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | untangling do_lookup() - massage !dentry case towards __lookup_hash()Al Viro2012-03-311-25/+20
| | | | | | | | | | | | | | | | | | Reorder if-else cases for starters... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | untangling do_lookup() - get rid of need_reval in !dentry caseAl Viro2012-03-311-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Everything arriving into if (!dentry) will have need_reval = 1. Indeed, the only way to get there with need_reval reset to 0 would be via if (unlikely(d_need_lookup(dentry))) goto unlazy; if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) { status = d_revalidate(dentry, nd); if (unlikely(status <= 0)) { if (status != -ECHILD) need_reval = 0; goto unlazy; ... unlazy: /* no assignments to dentry */ if (dentry && unlikely(d_need_lookup(dentry))) { dput(dentry); dentry = NULL; } and if d_need_lookup() had already been false the first time around, it will remain false on the second call as well. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | untangling do_lookup() - eliminate a loop.Al Viro2012-03-311-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | d_lookup() *will* fail after successful d_invalidate(), if we are holding i_mutex all along. IOW, we don't need to jump back to l: - we know what path will be taken there and can do that (i.e. d_alloc_and_lookup()) directly. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | untangling do_lookup() - expand the area under ->i_mutexAl Viro2012-03-311-2/+4
| | | | | | | | | | | | | | | | | | keep holding ->i_mutex over revalidation parts Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | untangling do_lookup() - isolate !dentry stuff from the rest of it.Al Viro2012-03-311-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Duplicate the revalidation-related parts into if (!dentry) branch. Next step will be to pull them under i_mutex. This and the next 8 commits are more or less a splitup of patch by Miklos; folks, when you are working with something that convoluted, carve your patches up into easily reviewed steps, especially when a lot of codepaths involved are rarely hit... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | vfs: move MAY_EXEC check from __lookup_hash()Miklos Szeredi2012-03-311-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only caller of __lookup_hash() that needs the exec permission check on parent is lookup_one_len(). All lookup_hash() callers already checked permission in LOOKUP_PARENT walk. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | vfs: don't revalidate just looked up dentryMiklos Szeredi2012-03-311-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | __lookup_hash() calls ->lookup() if the dentry needs lookup and on success revalidates the dentry (all under dir->i_mutex). While this is harmless it doesn't make a lot of sense. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | vfs: fix d_need_lookup/d_revalidate order in do_lookupMiklos Szeredi2012-03-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Doing revalidate on a dentry which has not yet been looked up makes no sense. Move the d_need_lookup() check before d_revalidate(). Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | ext3: move headers to fs/ext3/Al Viro2012-03-3123-668/+437
| | | | | | | | | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | migrate ext2_fs.h guts to fs/ext2/ext2.hAl Viro2012-03-316-656/+634
| | | | | | | | | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | new helper: ext2_image_size()Al Viro2012-03-313-8/+30
| | | | | | | | | | | | | | | | | | | | | | | | ... implemented that way since the next commit will leave it almost alone in ext2_fs.h - most of the file (including struct ext2_super_block) is going to move to fs/ext2/ext2.h. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | get rid of pointless includes of ext2_fs.hAl Viro2012-03-314-9/+4
| | | | | | | | | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | ext2: No longer export ext2_fs.h to user spaceThierry Reding2012-03-312-63/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the on-disk format has been stable for quite some time, users should either use the headers provided by libext2fs or keep a private copy of this header. For the full discussion, see this thread: https://lkml.org/lkml/2012/3/21/516 While at it, this commit removes all __KERNEL__ guards, which are now unnecessary. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Jan Kara <jack@suse.cz> Cc: Ted Ts'o <tytso@mit.edu> Cc: Artem Bityutskiy <dedekind1@gmail.com> Cc: Andreas Dilger <aedilger@gmail.com> Cc: linux-ext4@vger.kernel.org
| * | mtdchar: kill persistently held vfsmountAl Viro2012-03-311-37/+16
| | | | | | | | | | | | | | | | | | | | | | | | ... and mtdchar_notifier along with it; just have ->drop_inode() that will unconditionally get evict them instead of dances on mtd device removal and use simple_pin_fs() instead of kern_mount() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | pstore: trim pstore_get_inode()Al Viro2012-03-311-18/+8
| | | | | | | | | | | | | | | | | | move mode-dependent parts to callers, kill unused arguments Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | aio: take final put_ioctx() into callers of io_destroy()Al Viro2012-03-311-6/+4
| | | | | | | | | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| * | aio: merge aio_cancel_all() with wait_for_all_aios()Al Viro2012-03-311-15/+7
| | | | | | | | | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>