.. | .. |
---|
94 | 94 | } |
---|
95 | 95 | |
---|
96 | 96 | static bool probe_list(struct pci_dev *pdev, unsigned short vendor, |
---|
97 | | - const unsigned char *rom_list) |
---|
| 97 | + const void *rom_list) |
---|
98 | 98 | { |
---|
99 | 99 | unsigned short device; |
---|
100 | 100 | |
---|
101 | 101 | do { |
---|
102 | | - if (probe_kernel_address(rom_list, device) != 0) |
---|
| 102 | + if (get_kernel_nofault(device, rom_list) != 0) |
---|
103 | 103 | device = 0; |
---|
104 | 104 | |
---|
105 | 105 | if (device && match_id(pdev, vendor, device)) |
---|
.. | .. |
---|
119 | 119 | for (i = 0; i < ARRAY_SIZE(adapter_rom_resources); i++) { |
---|
120 | 120 | struct resource *res = &adapter_rom_resources[i]; |
---|
121 | 121 | unsigned short offset, vendor, device, list, rev; |
---|
122 | | - const unsigned char *rom; |
---|
| 122 | + const void *rom; |
---|
123 | 123 | |
---|
124 | 124 | if (res->end == 0) |
---|
125 | 125 | break; |
---|
126 | 126 | |
---|
127 | 127 | rom = isa_bus_to_virt(res->start); |
---|
128 | | - if (probe_kernel_address(rom + 0x18, offset) != 0) |
---|
| 128 | + if (get_kernel_nofault(offset, rom + 0x18) != 0) |
---|
129 | 129 | continue; |
---|
130 | 130 | |
---|
131 | | - if (probe_kernel_address(rom + offset + 0x4, vendor) != 0) |
---|
| 131 | + if (get_kernel_nofault(vendor, rom + offset + 0x4) != 0) |
---|
132 | 132 | continue; |
---|
133 | 133 | |
---|
134 | | - if (probe_kernel_address(rom + offset + 0x6, device) != 0) |
---|
| 134 | + if (get_kernel_nofault(device, rom + offset + 0x6) != 0) |
---|
135 | 135 | continue; |
---|
136 | 136 | |
---|
137 | 137 | if (match_id(pdev, vendor, device)) { |
---|
.. | .. |
---|
139 | 139 | break; |
---|
140 | 140 | } |
---|
141 | 141 | |
---|
142 | | - if (probe_kernel_address(rom + offset + 0x8, list) == 0 && |
---|
143 | | - probe_kernel_address(rom + offset + 0xc, rev) == 0 && |
---|
| 142 | + if (get_kernel_nofault(list, rom + offset + 0x8) == 0 && |
---|
| 143 | + get_kernel_nofault(rev, rom + offset + 0xc) == 0 && |
---|
144 | 144 | rev >= 3 && list && |
---|
145 | 145 | probe_list(pdev, vendor, rom + offset + list)) { |
---|
146 | 146 | oprom = res; |
---|
.. | .. |
---|
183 | 183 | const unsigned short * const ptr = (const unsigned short *)rom; |
---|
184 | 184 | unsigned short sig; |
---|
185 | 185 | |
---|
186 | | - return probe_kernel_address(ptr, sig) == 0 && sig == ROMSIGNATURE; |
---|
| 186 | + return get_kernel_nofault(sig, ptr) == 0 && sig == ROMSIGNATURE; |
---|
187 | 187 | } |
---|
188 | 188 | |
---|
189 | 189 | static int __init romchecksum(const unsigned char *rom, unsigned long length) |
---|
190 | 190 | { |
---|
191 | 191 | unsigned char sum, c; |
---|
192 | 192 | |
---|
193 | | - for (sum = 0; length && probe_kernel_address(rom++, c) == 0; length--) |
---|
| 193 | + for (sum = 0; length && get_kernel_nofault(c, rom++) == 0; length--) |
---|
194 | 194 | sum += c; |
---|
195 | 195 | return !length && !sum; |
---|
196 | 196 | } |
---|
.. | .. |
---|
211 | 211 | |
---|
212 | 212 | video_rom_resource.start = start; |
---|
213 | 213 | |
---|
214 | | - if (probe_kernel_address(rom + 2, c) != 0) |
---|
| 214 | + if (get_kernel_nofault(c, rom + 2) != 0) |
---|
215 | 215 | continue; |
---|
216 | 216 | |
---|
217 | 217 | /* 0 < length <= 0x7f * 512, historically */ |
---|
.. | .. |
---|
249 | 249 | if (!romsignature(rom)) |
---|
250 | 250 | continue; |
---|
251 | 251 | |
---|
252 | | - if (probe_kernel_address(rom + 2, c) != 0) |
---|
| 252 | + if (get_kernel_nofault(c, rom + 2) != 0) |
---|
253 | 253 | continue; |
---|
254 | 254 | |
---|
255 | 255 | /* 0 < length <= 0x7f * 512, historically */ |
---|