mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto fixes from Herbert Xu:
"This fixes the following issues:
API:
- A large number of bug fixes for the af_alg interface, credit goes
to Dmitry Vyukov for discovering and reporting these issues.
Algorithms:
- sw842 needs to select crc32.
- The soft dependency on crc32c is now in the correct spot.
Drivers:
- The atmel AES driver needs HAS_DMA.
- The atmel AES driver was a missing break statement, fortunately
it's only a debug function.
- A number of bug fixes for the Intel qat driver"
* 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (24 commits)
crypto: algif_skcipher - sendmsg SG marking is off by one
crypto: crc32c - Fix crc32c soft dependency
crypto: algif_skcipher - Load TX SG list after waiting
crypto: atmel-aes - Add missing break to atmel_aes_reg_name
crypto: algif_skcipher - Fix race condition in skcipher_check_key
crypto: algif_hash - Fix race condition in hash_check_key
crypto: CRYPTO_DEV_ATMEL_AES should depend on HAS_DMA
lib: sw842: select crc32
crypto: af_alg - Forbid bind(2) when nokey child sockets are present
crypto: algif_skcipher - Remove custom release parent function
crypto: algif_hash - Remove custom release parent function
crypto: af_alg - Allow af_af_alg_release_parent to be called on nokey path
crypto: qat - update init_esram for C3xxx dev type
crypto: qat - fix timeout issues
crypto: qat - remove to call get_sram_bar_id for qat_c3xxx
crypto: algif_skcipher - Add key check exception for cipher_null
crypto: skcipher - Add crypto_skcipher_has_setkey
crypto: algif_hash - Require setkey before accept(2)
crypto: hash - Add crypto_ahash_has_setkey
crypto: algif_skcipher - Add nokey compatibility path
...
This commit is contained in:
commit
48162a203e
15 changed files with 411 additions and 45 deletions
|
|
@ -381,6 +381,7 @@ config CRYPTO_DEV_BFIN_CRC
|
|||
|
||||
config CRYPTO_DEV_ATMEL_AES
|
||||
tristate "Support for Atmel AES hw accelerator"
|
||||
depends on HAS_DMA
|
||||
depends on AT_XDMAC || AT_HDMAC || COMPILE_TEST
|
||||
select CRYPTO_AES
|
||||
select CRYPTO_AEAD
|
||||
|
|
|
|||
|
|
@ -280,6 +280,7 @@ static const char *atmel_aes_reg_name(u32 offset, char *tmp, size_t sz)
|
|||
case AES_GCMHR(2):
|
||||
case AES_GCMHR(3):
|
||||
snprintf(tmp, sz, "GCMHR[%u]", (offset - AES_GCMHR(0)) >> 2);
|
||||
break;
|
||||
|
||||
default:
|
||||
snprintf(tmp, sz, "0x%02x", offset);
|
||||
|
|
|
|||
|
|
@ -389,7 +389,7 @@ static int qat_hal_check_ae_alive(struct icp_qat_fw_loader_handle *handle)
|
|||
{
|
||||
unsigned int base_cnt, cur_cnt;
|
||||
unsigned char ae;
|
||||
unsigned int times = MAX_RETRY_TIMES;
|
||||
int times = MAX_RETRY_TIMES;
|
||||
|
||||
for (ae = 0; ae < handle->hal_handle->ae_max_num; ae++) {
|
||||
qat_hal_rd_ae_csr(handle, ae, PROFILE_COUNT,
|
||||
|
|
@ -402,7 +402,7 @@ static int qat_hal_check_ae_alive(struct icp_qat_fw_loader_handle *handle)
|
|||
cur_cnt &= 0xffff;
|
||||
} while (times-- && (cur_cnt == base_cnt));
|
||||
|
||||
if (!times) {
|
||||
if (times < 0) {
|
||||
pr_err("QAT: AE%d is inactive!!\n", ae);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
|
@ -453,7 +453,11 @@ static int qat_hal_init_esram(struct icp_qat_fw_loader_handle *handle)
|
|||
void __iomem *csr_addr =
|
||||
(void __iomem *)((uintptr_t)handle->hal_ep_csr_addr_v +
|
||||
ESRAM_AUTO_INIT_CSR_OFFSET);
|
||||
unsigned int csr_val, times = 30;
|
||||
unsigned int csr_val;
|
||||
int times = 30;
|
||||
|
||||
if (handle->pci_dev->device == ADF_C3XXX_PCI_DEVICE_ID)
|
||||
return 0;
|
||||
|
||||
csr_val = ADF_CSR_RD(csr_addr, 0);
|
||||
if ((csr_val & ESRAM_AUTO_TINIT) && (csr_val & ESRAM_AUTO_TINIT_DONE))
|
||||
|
|
@ -467,7 +471,7 @@ static int qat_hal_init_esram(struct icp_qat_fw_loader_handle *handle)
|
|||
qat_hal_wait_cycles(handle, 0, ESRAM_AUTO_INIT_USED_CYCLES, 0);
|
||||
csr_val = ADF_CSR_RD(csr_addr, 0);
|
||||
} while (!(csr_val & ESRAM_AUTO_TINIT_DONE) && times--);
|
||||
if ((!times)) {
|
||||
if ((times < 0)) {
|
||||
pr_err("QAT: Fail to init eSram!\n");
|
||||
return -EFAULT;
|
||||
}
|
||||
|
|
@ -658,7 +662,7 @@ static int qat_hal_clear_gpr(struct icp_qat_fw_loader_handle *handle)
|
|||
ret = qat_hal_wait_cycles(handle, ae, 20, 1);
|
||||
} while (ret && times--);
|
||||
|
||||
if (!times) {
|
||||
if (times < 0) {
|
||||
pr_err("QAT: clear GPR of AE %d failed", ae);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
@ -693,14 +697,12 @@ int qat_hal_init(struct adf_accel_dev *accel_dev)
|
|||
struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
||||
struct adf_bar *misc_bar =
|
||||
&pci_info->pci_bars[hw_data->get_misc_bar_id(hw_data)];
|
||||
struct adf_bar *sram_bar =
|
||||
&pci_info->pci_bars[hw_data->get_sram_bar_id(hw_data)];
|
||||
struct adf_bar *sram_bar;
|
||||
|
||||
handle = kzalloc(sizeof(*handle), GFP_KERNEL);
|
||||
if (!handle)
|
||||
return -ENOMEM;
|
||||
|
||||
handle->hal_sram_addr_v = sram_bar->virt_addr;
|
||||
handle->hal_cap_g_ctl_csr_addr_v =
|
||||
(void __iomem *)((uintptr_t)misc_bar->virt_addr +
|
||||
ICP_QAT_CAP_OFFSET);
|
||||
|
|
@ -714,6 +716,11 @@ int qat_hal_init(struct adf_accel_dev *accel_dev)
|
|||
(void __iomem *)((uintptr_t)handle->hal_cap_ae_xfer_csr_addr_v +
|
||||
LOCAL_TO_XFER_REG_OFFSET);
|
||||
handle->pci_dev = pci_info->pci_dev;
|
||||
if (handle->pci_dev->device != ADF_C3XXX_PCI_DEVICE_ID) {
|
||||
sram_bar =
|
||||
&pci_info->pci_bars[hw_data->get_sram_bar_id(hw_data)];
|
||||
handle->hal_sram_addr_v = sram_bar->virt_addr;
|
||||
}
|
||||
handle->fw_auth = (handle->pci_dev->device ==
|
||||
ADF_DH895XCC_PCI_DEVICE_ID) ? false : true;
|
||||
handle->hal_handle = kzalloc(sizeof(*handle->hal_handle), GFP_KERNEL);
|
||||
|
|
|
|||
Loading…
Reference in a new issue