diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-25 18:59:38 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-25 18:59:38 -0400 |
commit | fa2af6e4fe0c4d2f8875d42625b25675e8584010 (patch) | |
tree | ef9a92949858ab763aa1bfda7cb11a5f7b84d123 /arch/tile/kernel/process.c | |
parent | 109b9b0408e5f1dd327a44f446841a9fbe0bcd83 (diff) | |
parent | 1fcb78e9da714d96f65edd37b29dae3b1f7df508 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
Pull tile updates from Chris Metcalf:
"These changes cover a range of new arch/tile features and
optimizations. They've been through LKML review and on linux-next for
a month or so. There's also one bug-fix that just missed 3.4, which
I've marked for stable."
Fixed up trivial conflict in arch/tile/Kconfig (new added tile Kconfig
entries clashing with the generic timer/clockevents changes).
* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
tile: default to tilegx_defconfig for ARCH=tile
tile: fix bug where fls(0) was not returning 0
arch/tile: mark TILEGX as not EXPERIMENTAL
tile/mm/fault.c: Port OOM changes to handle_page_fault
arch/tile: add descriptive text if the kernel reports a bad trap
arch/tile: allow querying cpu module information from the hypervisor
arch/tile: fix hardwall for tilegx and generalize for idn and ipi
arch/tile: support multiple huge page sizes dynamically
mm: add new arch_make_huge_pte() method for tile support
arch/tile: support kexec() for tilegx
arch/tile: support <asm/cachectl.h> header for cacheflush() syscall
arch/tile: Allow tilegx to build with either 16K or 64K page size
arch/tile: optimize get_user/put_user and friends
arch/tile: support building big-endian kernel
arch/tile: allow building Linux with transparent huge pages enabled
arch/tile: use interrupt critical sections less
Diffstat (limited to 'arch/tile/kernel/process.c')
-rw-r--r-- | arch/tile/kernel/process.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/arch/tile/kernel/process.c b/arch/tile/kernel/process.c index f572c19c4082..ba1023d8a021 100644 --- a/arch/tile/kernel/process.c +++ b/arch/tile/kernel/process.c | |||
@@ -128,10 +128,10 @@ void arch_release_thread_info(struct thread_info *info) | |||
128 | * Calling deactivate here just frees up the data structures. | 128 | * Calling deactivate here just frees up the data structures. |
129 | * If the task we're freeing held the last reference to a | 129 | * If the task we're freeing held the last reference to a |
130 | * hardwall fd, it would have been released prior to this point | 130 | * hardwall fd, it would have been released prior to this point |
131 | * anyway via exit_files(), and "hardwall" would be NULL by now. | 131 | * anyway via exit_files(), and the hardwall_task.info pointers |
132 | * would be NULL by now. | ||
132 | */ | 133 | */ |
133 | if (info->task->thread.hardwall) | 134 | hardwall_deactivate_all(info->task); |
134 | hardwall_deactivate(info->task); | ||
135 | #endif | 135 | #endif |
136 | 136 | ||
137 | if (step_state) { | 137 | if (step_state) { |
@@ -245,7 +245,8 @@ int copy_thread(unsigned long clone_flags, unsigned long sp, | |||
245 | 245 | ||
246 | #ifdef CONFIG_HARDWALL | 246 | #ifdef CONFIG_HARDWALL |
247 | /* New thread does not own any networks. */ | 247 | /* New thread does not own any networks. */ |
248 | p->thread.hardwall = NULL; | 248 | memset(&p->thread.hardwall[0], 0, |
249 | sizeof(struct hardwall_task) * HARDWALL_TYPES); | ||
249 | #endif | 250 | #endif |
250 | 251 | ||
251 | 252 | ||
@@ -515,12 +516,7 @@ struct task_struct *__sched _switch_to(struct task_struct *prev, | |||
515 | 516 | ||
516 | #ifdef CONFIG_HARDWALL | 517 | #ifdef CONFIG_HARDWALL |
517 | /* Enable or disable access to the network registers appropriately. */ | 518 | /* Enable or disable access to the network registers appropriately. */ |
518 | if (prev->thread.hardwall != NULL) { | 519 | hardwall_switch_tasks(prev, next); |
519 | if (next->thread.hardwall == NULL) | ||
520 | restrict_network_mpls(); | ||
521 | } else if (next->thread.hardwall != NULL) { | ||
522 | grant_network_mpls(); | ||
523 | } | ||
524 | #endif | 520 | #endif |
525 | 521 | ||
526 | /* | 522 | /* |