diff options
Diffstat (limited to 'drivers/staging/android/ram_console.c')
-rw-r--r-- | drivers/staging/android/ram_console.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/staging/android/ram_console.c b/drivers/staging/android/ram_console.c index bf006857a87..643ac5ce381 100644 --- a/drivers/staging/android/ram_console.c +++ b/drivers/staging/android/ram_console.c | |||
@@ -224,9 +224,23 @@ static int __init ram_console_init(struct ram_console_buffer *buffer, | |||
224 | ram_console_buffer_size = | 224 | ram_console_buffer_size = |
225 | buffer_size - sizeof(struct ram_console_buffer); | 225 | buffer_size - sizeof(struct ram_console_buffer); |
226 | 226 | ||
227 | if (ram_console_buffer_size > buffer_size) { | ||
228 | pr_err("ram_console: buffer %p, invalid size %d, datasize %d\n", | ||
229 | buffer, buffer_size, ram_console_buffer_size); | ||
230 | return 0; | ||
231 | } | ||
232 | |||
227 | #ifdef CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION | 233 | #ifdef CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION |
228 | ram_console_buffer_size -= (DIV_ROUND_UP(ram_console_buffer_size, | 234 | ram_console_buffer_size -= (DIV_ROUND_UP(ram_console_buffer_size, |
229 | ECC_BLOCK_SIZE) + 1) * ECC_SIZE; | 235 | ECC_BLOCK_SIZE) + 1) * ECC_SIZE; |
236 | |||
237 | if (ram_console_buffer_size > buffer_size) { | ||
238 | pr_err("ram_console: buffer %p, invalid size %d, " | ||
239 | "non-ecc datasize %d\n", | ||
240 | buffer, buffer_size, ram_console_buffer_size); | ||
241 | return 0; | ||
242 | } | ||
243 | |||
230 | ram_console_par_buffer = buffer->data + ram_console_buffer_size; | 244 | ram_console_par_buffer = buffer->data + ram_console_buffer_size; |
231 | 245 | ||
232 | 246 | ||