24 lines
		
	
	
		
			601 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			601 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/arch/arm/mach-omap2/serial.c
 | |
| +++ b/arch/arm/mach-omap2/serial.c
 | |
| @@ -258,6 +258,8 @@ char *cmdline_find_option(char *str)
 | |
|  	return strstr(saved_command_line, str);
 | |
|  }
 | |
|  
 | |
| +static struct omap_uart_state statebuf[4];
 | |
| +
 | |
|  static int __init omap_serial_early_init(void)
 | |
|  {
 | |
|  	do {
 | |
| @@ -272,9 +274,9 @@ static int __init omap_serial_early_init
 | |
|  		if (!oh)
 | |
|  			break;
 | |
|  
 | |
| -		uart = kzalloc(sizeof(struct omap_uart_state), GFP_KERNEL);
 | |
| -		if (WARN_ON(!uart))
 | |
| +		if (WARN_ON(num_uarts >= ARRAY_SIZE(statebuf)))
 | |
|  			return -ENODEV;
 | |
| +		uart = &statebuf[num_uarts];
 | |
|  
 | |
|  		uart->oh = oh;
 | |
|  		uart->num = num_uarts++;
 | 
