Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

char/mwave: make some arrays static const to make object code smaller

Don't populate arrays on the stack but make them static. Makes
the object code smaller. Also remove temporary variables that
have hard coded array sizes and just use ARRAY_SIZE instead and
wrap some lines that are wider than 80 chars to clean up some
checkpatch warnings.

Before:
text data bss dec hex filename
11141 2008 64 13213 339d drivers/char/mwave/smapi.o

After:
text data bss dec hex filename
10697 2352 64 13113 3339 drivers/char/mwave/smapi.o

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Colin Ian King and committed by
Greg Kroah-Hartman
caa97be1 2dee584b

+24 -22
+24 -22
drivers/char/mwave/smapi.c
··· 128 128 { 129 129 int bRC = -EIO; 130 130 unsigned short usAX, usBX, usCX, usDX, usDI, usSI; 131 - unsigned short ausDspBases[] = { 0x0030, 0x4E30, 0x8E30, 0xCE30, 0x0130, 0x0350, 0x0070, 0x0DB0 }; 132 - unsigned short ausUartBases[] = { 0x03F8, 0x02F8, 0x03E8, 0x02E8 }; 133 - unsigned short numDspBases = 8; 134 - unsigned short numUartBases = 4; 131 + static const unsigned short ausDspBases[] = { 132 + 0x0030, 0x4E30, 0x8E30, 0xCE30, 133 + 0x0130, 0x0350, 0x0070, 0x0DB0 }; 134 + static const unsigned short ausUartBases[] = { 135 + 0x03F8, 0x02F8, 0x03E8, 0x02E8 }; 135 136 136 137 PRINTK_1(TRACE_SMAPI, "smapi::smapi_query_DSP_cfg entry\n"); 137 138 ··· 149 148 pSettings->bDSPEnabled = ((usCX & 0x0001) != 0); 150 149 pSettings->usDspIRQ = usSI & 0x00FF; 151 150 pSettings->usDspDMA = (usSI & 0xFF00) >> 8; 152 - if ((usDI & 0x00FF) < numDspBases) { 151 + if ((usDI & 0x00FF) < ARRAY_SIZE(ausDspBases)) { 153 152 pSettings->usDspBaseIO = ausDspBases[usDI & 0x00FF]; 154 153 } else { 155 154 pSettings->usDspBaseIO = 0; ··· 177 176 178 177 pSettings->bModemEnabled = ((usCX & 0x0001) != 0); 179 178 pSettings->usUartIRQ = usSI & 0x000F; 180 - if (((usSI & 0xFF00) >> 8) < numUartBases) { 179 + if (((usSI & 0xFF00) >> 8) < ARRAY_SIZE(ausUartBases)) { 181 180 pSettings->usUartBaseIO = ausUartBases[(usSI & 0xFF00) >> 8]; 182 181 } else { 183 182 pSettings->usUartBaseIO = 0; ··· 206 205 int bRC = -EIO; 207 206 int i; 208 207 unsigned short usAX, usBX, usCX, usDX, usDI, usSI; 209 - unsigned short ausDspBases[] = { 0x0030, 0x4E30, 0x8E30, 0xCE30, 0x0130, 0x0350, 0x0070, 0x0DB0 }; 210 - unsigned short ausUartBases[] = { 0x03F8, 0x02F8, 0x03E8, 0x02E8 }; 211 - unsigned short ausDspIrqs[] = { 5, 7, 10, 11, 15 }; 212 - unsigned short ausUartIrqs[] = { 3, 4 }; 208 + static const unsigned short ausDspBases[] = { 209 + 0x0030, 0x4E30, 0x8E30, 0xCE30, 210 + 0x0130, 0x0350, 0x0070, 0x0DB0 }; 211 + static const unsigned short ausUartBases[] = { 212 + 0x03F8, 0x02F8, 0x03E8, 0x02E8 }; 213 + static const unsigned short ausDspIrqs[] = { 214 + 5, 7, 10, 11, 15 }; 215 + static const unsigned short ausUartIrqs[] = { 216 + 3, 4 }; 213 217 214 - unsigned short numDspBases = 8; 215 - unsigned short numUartBases = 4; 216 - unsigned short numDspIrqs = 5; 217 - unsigned short numUartIrqs = 2; 218 218 unsigned short dspio_index = 0, uartio_index = 0; 219 219 220 220 PRINTK_5(TRACE_SMAPI, ··· 223 221 mwave_3780i_irq, mwave_3780i_io, mwave_uart_irq, mwave_uart_io); 224 222 225 223 if (mwave_3780i_io) { 226 - for (i = 0; i < numDspBases; i++) { 224 + for (i = 0; i < ARRAY_SIZE(ausDspBases); i++) { 227 225 if (mwave_3780i_io == ausDspBases[i]) 228 226 break; 229 227 } 230 - if (i == numDspBases) { 228 + if (i == ARRAY_SIZE(ausDspBases)) { 231 229 PRINTK_ERROR(KERN_ERR_MWAVE "smapi::smapi_set_DSP_cfg: Error: Invalid mwave_3780i_io address %x. Aborting.\n", mwave_3780i_io); 232 230 return bRC; 233 231 } ··· 235 233 } 236 234 237 235 if (mwave_3780i_irq) { 238 - for (i = 0; i < numDspIrqs; i++) { 236 + for (i = 0; i < ARRAY_SIZE(ausDspIrqs); i++) { 239 237 if (mwave_3780i_irq == ausDspIrqs[i]) 240 238 break; 241 239 } 242 - if (i == numDspIrqs) { 240 + if (i == ARRAY_SIZE(ausDspIrqs)) { 243 241 PRINTK_ERROR(KERN_ERR_MWAVE "smapi::smapi_set_DSP_cfg: Error: Invalid mwave_3780i_irq %x. Aborting.\n", mwave_3780i_irq); 244 242 return bRC; 245 243 } 246 244 } 247 245 248 246 if (mwave_uart_io) { 249 - for (i = 0; i < numUartBases; i++) { 247 + for (i = 0; i < ARRAY_SIZE(ausUartBases); i++) { 250 248 if (mwave_uart_io == ausUartBases[i]) 251 249 break; 252 250 } 253 - if (i == numUartBases) { 251 + if (i == ARRAY_SIZE(ausUartBases)) { 254 252 PRINTK_ERROR(KERN_ERR_MWAVE "smapi::smapi_set_DSP_cfg: Error: Invalid mwave_uart_io address %x. Aborting.\n", mwave_uart_io); 255 253 return bRC; 256 254 } ··· 259 257 260 258 261 259 if (mwave_uart_irq) { 262 - for (i = 0; i < numUartIrqs; i++) { 260 + for (i = 0; i < ARRAY_SIZE(ausUartIrqs); i++) { 263 261 if (mwave_uart_irq == ausUartIrqs[i]) 264 262 break; 265 263 } 266 - if (i == numUartIrqs) { 264 + if (i == ARRAY_SIZE(ausUartIrqs)) { 267 265 PRINTK_ERROR(KERN_ERR_MWAVE "smapi::smapi_set_DSP_cfg: Error: Invalid mwave_uart_irq %x. Aborting.\n", mwave_uart_irq); 268 266 return bRC; 269 267 }