| .. | .. |
|---|
| 94 | 94 | void set_fiq_handler(void *start, unsigned int length) |
|---|
| 95 | 95 | { |
|---|
| 96 | 96 | void *base = vectors_page; |
|---|
| 97 | | - unsigned offset = FIQ_OFFSET; |
|---|
| 97 | + unsigned int volatile offset = FIQ_OFFSET; |
|---|
| 98 | 98 | |
|---|
| 99 | + offset &= 0xfffffffc; |
|---|
| 99 | 100 | memcpy(base + offset, start, length); |
|---|
| 100 | 101 | if (!cache_is_vipt_nonaliasing()) |
|---|
| 101 | | - flush_icache_range((unsigned long)base + offset, offset + |
|---|
| 102 | | - length); |
|---|
| 102 | + flush_icache_range((unsigned long)base + offset, |
|---|
| 103 | + (unsigned long)base + offset + length); |
|---|
| 103 | 104 | flush_icache_range(0xffff0000 + offset, 0xffff0000 + offset + length); |
|---|
| 104 | 105 | } |
|---|
| 105 | 106 | |
|---|