diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/char/random.c | 2 | ||||
| -rw-r--r-- | drivers/char/tpm/tpm_bios.c | 3 | ||||
| -rw-r--r-- | drivers/crypto/ixp4xx_crypto.c | 33 | ||||
| -rw-r--r-- | drivers/crypto/padlock-aes.c | 2 | ||||
| -rw-r--r-- | drivers/mtd/devices/mtd_dataflash.c | 2 | ||||
| -rw-r--r-- | drivers/regulator/da903x.c | 2 | ||||
| -rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 9 |
7 files changed, 39 insertions, 14 deletions
diff --git a/drivers/char/random.c b/drivers/char/random.c index b2ced39d76b2..8c7444857a4b 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c | |||
| @@ -1673,7 +1673,7 @@ unsigned int get_random_int(void) | |||
| 1673 | int ret; | 1673 | int ret; |
| 1674 | 1674 | ||
| 1675 | keyptr = get_keyptr(); | 1675 | keyptr = get_keyptr(); |
| 1676 | hash[0] += current->pid + jiffies + get_cycles() + (int)(long)&ret; | 1676 | hash[0] += current->pid + jiffies + get_cycles(); |
| 1677 | 1677 | ||
| 1678 | ret = half_md4_transform(hash, keyptr->secret); | 1678 | ret = half_md4_transform(hash, keyptr->secret); |
| 1679 | put_cpu_var(get_random_int_hash); | 1679 | put_cpu_var(get_random_int_hash); |
diff --git a/drivers/char/tpm/tpm_bios.c b/drivers/char/tpm/tpm_bios.c index ed306eb1057f..0c2f55a38b95 100644 --- a/drivers/char/tpm/tpm_bios.c +++ b/drivers/char/tpm/tpm_bios.c | |||
| @@ -212,7 +212,8 @@ static int get_event_name(char *dest, struct tcpa_event *event, | |||
| 212 | unsigned char * event_entry) | 212 | unsigned char * event_entry) |
| 213 | { | 213 | { |
| 214 | const char *name = ""; | 214 | const char *name = ""; |
| 215 | char data[40] = ""; | 215 | /* 41 so there is room for 40 data and 1 nul */ |
| 216 | char data[41] = ""; | ||
| 216 | int i, n_len = 0, d_len = 0; | 217 | int i, n_len = 0, d_len = 0; |
| 217 | struct tcpa_pc_event *pc_event; | 218 | struct tcpa_pc_event *pc_event; |
| 218 | 219 | ||
diff --git a/drivers/crypto/ixp4xx_crypto.c b/drivers/crypto/ixp4xx_crypto.c index f9f05d7a707d..6c6656d3b1e2 100644 --- a/drivers/crypto/ixp4xx_crypto.c +++ b/drivers/crypto/ixp4xx_crypto.c | |||
| @@ -415,6 +415,7 @@ static void crypto_done_action(unsigned long arg) | |||
| 415 | static int init_ixp_crypto(void) | 415 | static int init_ixp_crypto(void) |
| 416 | { | 416 | { |
| 417 | int ret = -ENODEV; | 417 | int ret = -ENODEV; |
| 418 | u32 msg[2] = { 0, 0 }; | ||
| 418 | 419 | ||
| 419 | if (! ( ~(*IXP4XX_EXP_CFG2) & (IXP4XX_FEATURE_HASH | | 420 | if (! ( ~(*IXP4XX_EXP_CFG2) & (IXP4XX_FEATURE_HASH | |
| 420 | IXP4XX_FEATURE_AES | IXP4XX_FEATURE_DES))) { | 421 | IXP4XX_FEATURE_AES | IXP4XX_FEATURE_DES))) { |
| @@ -426,9 +427,35 @@ static int init_ixp_crypto(void) | |||
| 426 | return ret; | 427 | return ret; |
| 427 | 428 | ||
| 428 | if (!npe_running(npe_c)) { | 429 | if (!npe_running(npe_c)) { |
| 429 | npe_load_firmware(npe_c, npe_name(npe_c), dev); | 430 | ret = npe_load_firmware(npe_c, npe_name(npe_c), dev); |
| 431 | if (ret) { | ||
| 432 | return ret; | ||
| 433 | } | ||
| 434 | if (npe_recv_message(npe_c, msg, "STATUS_MSG")) | ||
| 435 | goto npe_error; | ||
| 436 | } else { | ||
| 437 | if (npe_send_message(npe_c, msg, "STATUS_MSG")) | ||
| 438 | goto npe_error; | ||
| 439 | |||
| 440 | if (npe_recv_message(npe_c, msg, "STATUS_MSG")) | ||
| 441 | goto npe_error; | ||
| 430 | } | 442 | } |
| 431 | 443 | ||
| 444 | switch ((msg[1]>>16) & 0xff) { | ||
| 445 | case 3: | ||
| 446 | printk(KERN_WARNING "Firmware of %s lacks AES support\n", | ||
| 447 | npe_name(npe_c)); | ||
| 448 | support_aes = 0; | ||
| 449 | break; | ||
| 450 | case 4: | ||
| 451 | case 5: | ||
| 452 | support_aes = 1; | ||
| 453 | break; | ||
| 454 | default: | ||
| 455 | printk(KERN_ERR "Firmware of %s lacks crypto support\n", | ||
| 456 | npe_name(npe_c)); | ||
| 457 | return -ENODEV; | ||
| 458 | } | ||
| 432 | /* buffer_pool will also be used to sometimes store the hmac, | 459 | /* buffer_pool will also be used to sometimes store the hmac, |
| 433 | * so assure it is large enough | 460 | * so assure it is large enough |
| 434 | */ | 461 | */ |
| @@ -459,6 +486,10 @@ static int init_ixp_crypto(void) | |||
| 459 | 486 | ||
| 460 | qmgr_enable_irq(RECV_QID); | 487 | qmgr_enable_irq(RECV_QID); |
| 461 | return 0; | 488 | return 0; |
| 489 | |||
| 490 | npe_error: | ||
| 491 | printk(KERN_ERR "%s not responding\n", npe_name(npe_c)); | ||
| 492 | ret = -EIO; | ||
| 462 | err: | 493 | err: |
| 463 | if (ctx_pool) | 494 | if (ctx_pool) |
| 464 | dma_pool_destroy(ctx_pool); | 495 | dma_pool_destroy(ctx_pool); |
diff --git a/drivers/crypto/padlock-aes.c b/drivers/crypto/padlock-aes.c index 3f0fdd18255d..856b3cc25583 100644 --- a/drivers/crypto/padlock-aes.c +++ b/drivers/crypto/padlock-aes.c | |||
| @@ -489,4 +489,4 @@ MODULE_DESCRIPTION("VIA PadLock AES algorithm support"); | |||
| 489 | MODULE_LICENSE("GPL"); | 489 | MODULE_LICENSE("GPL"); |
| 490 | MODULE_AUTHOR("Michal Ludvig"); | 490 | MODULE_AUTHOR("Michal Ludvig"); |
| 491 | 491 | ||
| 492 | MODULE_ALIAS("aes-all"); | 492 | MODULE_ALIAS("aes"); |
diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c index 62dee54af0a5..43976aa4dbb1 100644 --- a/drivers/mtd/devices/mtd_dataflash.c +++ b/drivers/mtd/devices/mtd_dataflash.c | |||
| @@ -178,7 +178,7 @@ static int dataflash_erase(struct mtd_info *mtd, struct erase_info *instr) | |||
| 178 | /* Calculate flash page address; use block erase (for speed) if | 178 | /* Calculate flash page address; use block erase (for speed) if |
| 179 | * we're at a block boundary and need to erase the whole block. | 179 | * we're at a block boundary and need to erase the whole block. |
| 180 | */ | 180 | */ |
| 181 | pageaddr = div_u64(instr->len, priv->page_size); | 181 | pageaddr = div_u64(instr->addr, priv->page_size); |
| 182 | do_block = (pageaddr & 0x7) == 0 && instr->len >= blocksize; | 182 | do_block = (pageaddr & 0x7) == 0 && instr->len >= blocksize; |
| 183 | pageaddr = pageaddr << priv->page_offset; | 183 | pageaddr = pageaddr << priv->page_offset; |
| 184 | 184 | ||
diff --git a/drivers/regulator/da903x.c b/drivers/regulator/da903x.c index 72b15495183c..c6628f5a0af7 100644 --- a/drivers/regulator/da903x.c +++ b/drivers/regulator/da903x.c | |||
| @@ -497,7 +497,7 @@ static struct platform_driver da903x_regulator_driver = { | |||
| 497 | .owner = THIS_MODULE, | 497 | .owner = THIS_MODULE, |
| 498 | }, | 498 | }, |
| 499 | .probe = da903x_regulator_probe, | 499 | .probe = da903x_regulator_probe, |
| 500 | .remove = da903x_regulator_remove, | 500 | .remove = __devexit_p(da903x_regulator_remove), |
| 501 | }; | 501 | }; |
| 502 | 502 | ||
| 503 | static int __init da903x_regulator_init(void) | 503 | static int __init da903x_regulator_init(void) |
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index 0ab8474b00cb..d9fcdaedf389 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
| @@ -1487,14 +1487,7 @@ static int ftdi_sio_port_remove(struct usb_serial_port *port) | |||
| 1487 | 1487 | ||
| 1488 | remove_sysfs_attrs(port); | 1488 | remove_sysfs_attrs(port); |
| 1489 | 1489 | ||
| 1490 | /* all open ports are closed at this point | 1490 | kref_put(&priv->kref, ftdi_sio_priv_release); |
| 1491 | * (by usbserial.c:__serial_close, which calls ftdi_close) | ||
| 1492 | */ | ||
| 1493 | |||
| 1494 | if (priv) { | ||
| 1495 | usb_set_serial_port_data(port, NULL); | ||
| 1496 | kref_put(&priv->kref, ftdi_sio_priv_release); | ||
| 1497 | } | ||
| 1498 | 1491 | ||
| 1499 | return 0; | 1492 | return 0; |
| 1500 | } | 1493 | } |
