|
@@ -264,13 +264,13 @@ static void octeon_irq_ciu_enable_local(struct irq_data *data)
|
|
|
unsigned long *pen;
|
|
|
unsigned long flags;
|
|
|
union octeon_ciu_chip_data cd;
|
|
|
- raw_spinlock_t *lock = &__get_cpu_var(octeon_irq_ciu_spinlock);
|
|
|
+ raw_spinlock_t *lock = this_cpu_ptr(&octeon_irq_ciu_spinlock);
|
|
|
|
|
|
cd.p = irq_data_get_irq_chip_data(data);
|
|
|
|
|
|
raw_spin_lock_irqsave(lock, flags);
|
|
|
if (cd.s.line == 0) {
|
|
|
- pen = &__get_cpu_var(octeon_irq_ciu0_en_mirror);
|
|
|
+ pen = this_cpu_ptr(&octeon_irq_ciu0_en_mirror);
|
|
|
__set_bit(cd.s.bit, pen);
|
|
|
/*
|
|
|
* Must be visible to octeon_irq_ip{2,3}_ciu() before
|
|
@@ -279,7 +279,7 @@ static void octeon_irq_ciu_enable_local(struct irq_data *data)
|
|
|
wmb();
|
|
|
cvmx_write_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2), *pen);
|
|
|
} else {
|
|
|
- pen = &__get_cpu_var(octeon_irq_ciu1_en_mirror);
|
|
|
+ pen = this_cpu_ptr(&octeon_irq_ciu1_en_mirror);
|
|
|
__set_bit(cd.s.bit, pen);
|
|
|
/*
|
|
|
* Must be visible to octeon_irq_ip{2,3}_ciu() before
|
|
@@ -296,13 +296,13 @@ static void octeon_irq_ciu_disable_local(struct irq_data *data)
|
|
|
unsigned long *pen;
|
|
|
unsigned long flags;
|
|
|
union octeon_ciu_chip_data cd;
|
|
|
- raw_spinlock_t *lock = &__get_cpu_var(octeon_irq_ciu_spinlock);
|
|
|
+ raw_spinlock_t *lock = this_cpu_ptr(&octeon_irq_ciu_spinlock);
|
|
|
|
|
|
cd.p = irq_data_get_irq_chip_data(data);
|
|
|
|
|
|
raw_spin_lock_irqsave(lock, flags);
|
|
|
if (cd.s.line == 0) {
|
|
|
- pen = &__get_cpu_var(octeon_irq_ciu0_en_mirror);
|
|
|
+ pen = this_cpu_ptr(&octeon_irq_ciu0_en_mirror);
|
|
|
__clear_bit(cd.s.bit, pen);
|
|
|
/*
|
|
|
* Must be visible to octeon_irq_ip{2,3}_ciu() before
|
|
@@ -311,7 +311,7 @@ static void octeon_irq_ciu_disable_local(struct irq_data *data)
|
|
|
wmb();
|
|
|
cvmx_write_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2), *pen);
|
|
|
} else {
|
|
|
- pen = &__get_cpu_var(octeon_irq_ciu1_en_mirror);
|
|
|
+ pen = this_cpu_ptr(&octeon_irq_ciu1_en_mirror);
|
|
|
__clear_bit(cd.s.bit, pen);
|
|
|
/*
|
|
|
* Must be visible to octeon_irq_ip{2,3}_ciu() before
|
|
@@ -431,11 +431,11 @@ static void octeon_irq_ciu_enable_local_v2(struct irq_data *data)
|
|
|
|
|
|
if (cd.s.line == 0) {
|
|
|
int index = cvmx_get_core_num() * 2;
|
|
|
- set_bit(cd.s.bit, &__get_cpu_var(octeon_irq_ciu0_en_mirror));
|
|
|
+ set_bit(cd.s.bit, this_cpu_ptr(&octeon_irq_ciu0_en_mirror));
|
|
|
cvmx_write_csr(CVMX_CIU_INTX_EN0_W1S(index), mask);
|
|
|
} else {
|
|
|
int index = cvmx_get_core_num() * 2 + 1;
|
|
|
- set_bit(cd.s.bit, &__get_cpu_var(octeon_irq_ciu1_en_mirror));
|
|
|
+ set_bit(cd.s.bit, this_cpu_ptr(&octeon_irq_ciu1_en_mirror));
|
|
|
cvmx_write_csr(CVMX_CIU_INTX_EN1_W1S(index), mask);
|
|
|
}
|
|
|
}
|
|
@@ -450,11 +450,11 @@ static void octeon_irq_ciu_disable_local_v2(struct irq_data *data)
|
|
|
|
|
|
if (cd.s.line == 0) {
|
|
|
int index = cvmx_get_core_num() * 2;
|
|
|
- clear_bit(cd.s.bit, &__get_cpu_var(octeon_irq_ciu0_en_mirror));
|
|
|
+ clear_bit(cd.s.bit, this_cpu_ptr(&octeon_irq_ciu0_en_mirror));
|
|
|
cvmx_write_csr(CVMX_CIU_INTX_EN0_W1C(index), mask);
|
|
|
} else {
|
|
|
int index = cvmx_get_core_num() * 2 + 1;
|
|
|
- clear_bit(cd.s.bit, &__get_cpu_var(octeon_irq_ciu1_en_mirror));
|
|
|
+ clear_bit(cd.s.bit, this_cpu_ptr(&octeon_irq_ciu1_en_mirror));
|
|
|
cvmx_write_csr(CVMX_CIU_INTX_EN1_W1C(index), mask);
|
|
|
}
|
|
|
}
|
|
@@ -1063,7 +1063,7 @@ static void octeon_irq_ip2_ciu(void)
|
|
|
const unsigned long core_id = cvmx_get_core_num();
|
|
|
u64 ciu_sum = cvmx_read_csr(CVMX_CIU_INTX_SUM0(core_id * 2));
|
|
|
|
|
|
- ciu_sum &= __get_cpu_var(octeon_irq_ciu0_en_mirror);
|
|
|
+ ciu_sum &= __this_cpu_read(octeon_irq_ciu0_en_mirror);
|
|
|
if (likely(ciu_sum)) {
|
|
|
int bit = fls64(ciu_sum) - 1;
|
|
|
int irq = octeon_irq_ciu_to_irq[0][bit];
|
|
@@ -1080,7 +1080,7 @@ static void octeon_irq_ip3_ciu(void)
|
|
|
{
|
|
|
u64 ciu_sum = cvmx_read_csr(CVMX_CIU_INT_SUM1);
|
|
|
|
|
|
- ciu_sum &= __get_cpu_var(octeon_irq_ciu1_en_mirror);
|
|
|
+ ciu_sum &= __this_cpu_read(octeon_irq_ciu1_en_mirror);
|
|
|
if (likely(ciu_sum)) {
|
|
|
int bit = fls64(ciu_sum) - 1;
|
|
|
int irq = octeon_irq_ciu_to_irq[1][bit];
|
|
@@ -1129,10 +1129,10 @@ static void octeon_irq_init_ciu_percpu(void)
|
|
|
int coreid = cvmx_get_core_num();
|
|
|
|
|
|
|
|
|
- __get_cpu_var(octeon_irq_ciu0_en_mirror) = 0;
|
|
|
- __get_cpu_var(octeon_irq_ciu1_en_mirror) = 0;
|
|
|
+ __this_cpu_write(octeon_irq_ciu0_en_mirror, 0);
|
|
|
+ __this_cpu_write(octeon_irq_ciu1_en_mirror, 0);
|
|
|
wmb();
|
|
|
- raw_spin_lock_init(&__get_cpu_var(octeon_irq_ciu_spinlock));
|
|
|
+ raw_spin_lock_init(this_cpu_ptr(&octeon_irq_ciu_spinlock));
|
|
|
/*
|
|
|
* Disable All CIU Interrupts. The ones we need will be
|
|
|
* enabled later. Read the SUM register so we know the write
|