Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm

Pull ARM fixes from Russell King:
"Last set of ARM fixes for 5.19:

- fix for MAX_DMA_ADDRESS overflow

- fix for find_*_bit performing an out of bounds memory access"

* tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
ARM: findbit: fix overflowing offset
ARM: 9216/1: Fix MAX_DMA_ADDRESS overflow

Changed files
+9 -9
arch
arm
include
asm
lib
+1 -1
arch/arm/include/asm/dma.h
··· 10 10 #else 11 11 #define MAX_DMA_ADDRESS ({ \ 12 12 extern phys_addr_t arm_dma_zone_size; \ 13 - arm_dma_zone_size && arm_dma_zone_size < (0x10000000 - PAGE_OFFSET) ? \ 13 + arm_dma_zone_size && arm_dma_zone_size < (0x100000000ULL - PAGE_OFFSET) ? \ 14 14 (PAGE_OFFSET + arm_dma_zone_size) : 0xffffffffUL; }) 15 15 #endif 16 16
+8 -8
arch/arm/lib/findbit.S
··· 40 40 * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset) 41 41 */ 42 42 ENTRY(_find_next_zero_bit_le) 43 - teq r1, #0 44 - beq 3b 43 + cmp r2, r1 44 + bhs 3b 45 45 ands ip, r2, #7 46 46 beq 1b @ If new byte, goto old routine 47 47 ARM( ldrb r3, [r0, r2, lsr #3] ) ··· 81 81 * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset) 82 82 */ 83 83 ENTRY(_find_next_bit_le) 84 - teq r1, #0 85 - beq 3b 84 + cmp r2, r1 85 + bhs 3b 86 86 ands ip, r2, #7 87 87 beq 1b @ If new byte, goto old routine 88 88 ARM( ldrb r3, [r0, r2, lsr #3] ) ··· 115 115 ENDPROC(_find_first_zero_bit_be) 116 116 117 117 ENTRY(_find_next_zero_bit_be) 118 - teq r1, #0 119 - beq 3b 118 + cmp r2, r1 119 + bhs 3b 120 120 ands ip, r2, #7 121 121 beq 1b @ If new byte, goto old routine 122 122 eor r3, r2, #0x18 @ big endian byte ordering ··· 149 149 ENDPROC(_find_first_bit_be) 150 150 151 151 ENTRY(_find_next_bit_be) 152 - teq r1, #0 153 - beq 3b 152 + cmp r2, r1 153 + bhs 3b 154 154 ands ip, r2, #7 155 155 beq 1b @ If new byte, goto old routine 156 156 eor r3, r2, #0x18 @ big endian byte ordering