diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-02-17 20:51:27 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-02-17 20:51:27 -0500 |
| commit | a0aeccdc694d5db3b4310a6ed1ce4f88974cf7b4 (patch) | |
| tree | 2a4e8f8a2641eccd96d5d2aa58d9cf5aa6546c4c | |
| parent | fa7ea87a057958a8b7926c1a60a3ca6d696328ed (diff) | |
| parent | b62818e5ff78cab4daf04fc0c12f86475dbc4b69 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
sparc64: Fix NMI startup bug which also breaks perf.
sparc: fix size argument to find_next_zero_bit()
sparc: use bitmap_set()
sparc32: unaligned memory access (MNA) trap handler bug
| -rw-r--r-- | arch/sparc/include/asm/pcr.h | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/iommu.c | 5 | ||||
| -rw-r--r-- | arch/sparc/kernel/pcr.c | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/smp_64.c | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/una_asm_32.S | 4 | ||||
| -rw-r--r-- | arch/sparc/lib/bitext.c | 5 |
6 files changed, 10 insertions, 10 deletions
diff --git a/arch/sparc/include/asm/pcr.h b/arch/sparc/include/asm/pcr.h index a2f5c61f924e..843e4faf6a50 100644 --- a/arch/sparc/include/asm/pcr.h +++ b/arch/sparc/include/asm/pcr.h | |||
| @@ -43,4 +43,6 @@ static inline u64 picl_value(unsigned int nmi_hz) | |||
| 43 | 43 | ||
| 44 | extern u64 pcr_enable; | 44 | extern u64 pcr_enable; |
| 45 | 45 | ||
| 46 | extern int pcr_arch_init(void); | ||
| 47 | |||
| 46 | #endif /* __PCR_H */ | 48 | #endif /* __PCR_H */ |
diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c index 47977a77f6c6..72509d0e34be 100644 --- a/arch/sparc/kernel/iommu.c +++ b/arch/sparc/kernel/iommu.c | |||
| @@ -255,10 +255,9 @@ static inline iopte_t *alloc_npages(struct device *dev, struct iommu *iommu, | |||
| 255 | static int iommu_alloc_ctx(struct iommu *iommu) | 255 | static int iommu_alloc_ctx(struct iommu *iommu) |
| 256 | { | 256 | { |
| 257 | int lowest = iommu->ctx_lowest_free; | 257 | int lowest = iommu->ctx_lowest_free; |
| 258 | int sz = IOMMU_NUM_CTXS - lowest; | 258 | int n = find_next_zero_bit(iommu->ctx_bitmap, IOMMU_NUM_CTXS, lowest); |
| 259 | int n = find_next_zero_bit(iommu->ctx_bitmap, sz, lowest); | ||
| 260 | 259 | ||
| 261 | if (unlikely(n == sz)) { | 260 | if (unlikely(n == IOMMU_NUM_CTXS)) { |
| 262 | n = find_next_zero_bit(iommu->ctx_bitmap, lowest, 1); | 261 | n = find_next_zero_bit(iommu->ctx_bitmap, lowest, 1); |
| 263 | if (unlikely(n == lowest)) { | 262 | if (unlikely(n == lowest)) { |
| 264 | printk(KERN_WARNING "IOMMU: Ran out of contexts.\n"); | 263 | printk(KERN_WARNING "IOMMU: Ran out of contexts.\n"); |
diff --git a/arch/sparc/kernel/pcr.c b/arch/sparc/kernel/pcr.c index ae96cf52a955..7c2ced612b8f 100644 --- a/arch/sparc/kernel/pcr.c +++ b/arch/sparc/kernel/pcr.c | |||
| @@ -167,5 +167,3 @@ out_unregister: | |||
| 167 | unregister_perf_hsvc(); | 167 | unregister_perf_hsvc(); |
| 168 | return err; | 168 | return err; |
| 169 | } | 169 | } |
| 170 | |||
| 171 | early_initcall(pcr_arch_init); | ||
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c index b6a2b8f47040..555a76d1f4a1 100644 --- a/arch/sparc/kernel/smp_64.c +++ b/arch/sparc/kernel/smp_64.c | |||
| @@ -49,6 +49,7 @@ | |||
| 49 | #include <asm/mdesc.h> | 49 | #include <asm/mdesc.h> |
| 50 | #include <asm/ldc.h> | 50 | #include <asm/ldc.h> |
| 51 | #include <asm/hypervisor.h> | 51 | #include <asm/hypervisor.h> |
| 52 | #include <asm/pcr.h> | ||
| 52 | 53 | ||
| 53 | #include "cpumap.h" | 54 | #include "cpumap.h" |
| 54 | 55 | ||
| @@ -1358,6 +1359,7 @@ void __cpu_die(unsigned int cpu) | |||
| 1358 | 1359 | ||
| 1359 | void __init smp_cpus_done(unsigned int max_cpus) | 1360 | void __init smp_cpus_done(unsigned int max_cpus) |
| 1360 | { | 1361 | { |
| 1362 | pcr_arch_init(); | ||
| 1361 | } | 1363 | } |
| 1362 | 1364 | ||
| 1363 | void smp_send_reschedule(int cpu) | 1365 | void smp_send_reschedule(int cpu) |
diff --git a/arch/sparc/kernel/una_asm_32.S b/arch/sparc/kernel/una_asm_32.S index 8cc03458eb7e..8f096e84a937 100644 --- a/arch/sparc/kernel/una_asm_32.S +++ b/arch/sparc/kernel/una_asm_32.S | |||
| @@ -24,9 +24,9 @@ retl_efault: | |||
| 24 | .globl __do_int_store | 24 | .globl __do_int_store |
| 25 | __do_int_store: | 25 | __do_int_store: |
| 26 | ld [%o2], %g1 | 26 | ld [%o2], %g1 |
| 27 | cmp %1, 2 | 27 | cmp %o1, 2 |
| 28 | be 2f | 28 | be 2f |
| 29 | cmp %1, 4 | 29 | cmp %o1, 4 |
| 30 | be 1f | 30 | be 1f |
| 31 | srl %g1, 24, %g2 | 31 | srl %g1, 24, %g2 |
| 32 | srl %g1, 16, %g7 | 32 | srl %g1, 16, %g7 |
diff --git a/arch/sparc/lib/bitext.c b/arch/sparc/lib/bitext.c index 764b3eb7b604..48d00e72ce15 100644 --- a/arch/sparc/lib/bitext.c +++ b/arch/sparc/lib/bitext.c | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | #include <linux/string.h> | 12 | #include <linux/string.h> |
| 13 | #include <linux/bitops.h> | 13 | #include <linux/bitmap.h> |
| 14 | 14 | ||
| 15 | #include <asm/bitext.h> | 15 | #include <asm/bitext.h> |
| 16 | 16 | ||
| @@ -80,8 +80,7 @@ int bit_map_string_get(struct bit_map *t, int len, int align) | |||
| 80 | while (test_bit(offset + i, t->map) == 0) { | 80 | while (test_bit(offset + i, t->map) == 0) { |
| 81 | i++; | 81 | i++; |
| 82 | if (i == len) { | 82 | if (i == len) { |
| 83 | for (i = 0; i < len; i++) | 83 | bitmap_set(t->map, offset, len); |
| 84 | __set_bit(offset + i, t->map); | ||
| 85 | if (offset == t->first_free) | 84 | if (offset == t->first_free) |
| 86 | t->first_free = find_next_zero_bit | 85 | t->first_free = find_next_zero_bit |
| 87 | (t->map, t->size, | 86 | (t->map, t->size, |
