mirror of https://gitee.com/openkylin/linux.git
Staging/IIO driver fixes for 5.13-rc2
Here are some small IIO driver fixes and one Staging driver fix for 5.13-rc2. Nothing major, just some resolutions for reported problems: - gcc11 bogus warning fix for rtl8723bs - iio driver tiny fixes All of these have been in linux-next for many days with no reported issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCYKDcQA8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+yk8hQCg0+YRIUZfhBm1qUiq9JuTBr62kM8An2qYpr9Q 8iiAoBETOYo5P5HByG52 =Dyx9 -----END PGP SIGNATURE----- Merge tag 'staging-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging and IIO driver fixes from Greg KH: "Here are some small IIO driver fixes and one Staging driver fix for 5.13-rc2. Nothing major, just some resolutions for reported problems: - gcc-11 bogus warning fix for rtl8723bs - iio driver tiny fixes All of these have been in linux-next for many days with no reported issues" * tag 'staging-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: iio: tsl2583: Fix division by a zero lux_val iio: core: return ENODEV if ioctl is unknown iio: core: fix ioctl handlers removal iio: gyro: mpu3050: Fix reported temperature value iio: hid-sensors: select IIO_TRIGGERED_BUFFER under HID_SENSOR_IIO_TRIGGER iio: proximity: pulsedlight: Fix rumtime PM imbalance on error iio: light: gp2ap002: Fix rumtime PM imbalance on error staging: rtl8723bs: avoid bogus gcc warning
This commit is contained in:
commit
6942d81a8f
|
@ -229,7 +229,6 @@ config DMARD10
|
|||
config HID_SENSOR_ACCEL_3D
|
||||
depends on HID_SENSOR_HUB
|
||||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
tristate "HID Accelerometers 3D"
|
||||
|
|
|
@ -19,6 +19,7 @@ config HID_SENSOR_IIO_TRIGGER
|
|||
tristate "Common module (trigger) for all HID Sensor IIO drivers"
|
||||
depends on HID_SENSOR_HUB && HID_SENSOR_IIO_COMMON && IIO_BUFFER
|
||||
select IIO_TRIGGER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
help
|
||||
Say yes here to build trigger support for HID sensors.
|
||||
Triggers will be send if all requested attributes were read.
|
||||
|
|
|
@ -111,7 +111,6 @@ config FXAS21002C_SPI
|
|||
config HID_SENSOR_GYRO_3D
|
||||
depends on HID_SENSOR_HUB
|
||||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
tristate "HID Gyroscope 3D"
|
||||
|
|
|
@ -272,7 +272,16 @@ static int mpu3050_read_raw(struct iio_dev *indio_dev,
|
|||
case IIO_CHAN_INFO_OFFSET:
|
||||
switch (chan->type) {
|
||||
case IIO_TEMP:
|
||||
/* The temperature scaling is (x+23000)/280 Celsius */
|
||||
/*
|
||||
* The temperature scaling is (x+23000)/280 Celsius
|
||||
* for the "best fit straight line" temperature range
|
||||
* of -30C..85C. The 23000 includes room temperature
|
||||
* offset of +35C, 280 is the precision scale and x is
|
||||
* the 16-bit signed integer reported by hardware.
|
||||
*
|
||||
* Temperature value itself represents temperature of
|
||||
* the sensor die.
|
||||
*/
|
||||
*val = 23000;
|
||||
return IIO_VAL_INT;
|
||||
default:
|
||||
|
@ -329,7 +338,7 @@ static int mpu3050_read_raw(struct iio_dev *indio_dev,
|
|||
goto out_read_raw_unlock;
|
||||
}
|
||||
|
||||
*val = be16_to_cpu(raw_val);
|
||||
*val = (s16)be16_to_cpu(raw_val);
|
||||
ret = IIO_VAL_INT;
|
||||
|
||||
goto out_read_raw_unlock;
|
||||
|
|
|
@ -52,7 +52,6 @@ config HID_SENSOR_HUMIDITY
|
|||
tristate "HID Environmental humidity sensor"
|
||||
depends on HID_SENSOR_HUB
|
||||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
help
|
||||
|
|
|
@ -1778,7 +1778,6 @@ static long iio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
|||
if (!indio_dev->info)
|
||||
goto out_unlock;
|
||||
|
||||
ret = -EINVAL;
|
||||
list_for_each_entry(h, &iio_dev_opaque->ioctl_handlers, entry) {
|
||||
ret = h->ioctl(indio_dev, filp, cmd, arg);
|
||||
if (ret != IIO_IOCTL_UNHANDLED)
|
||||
|
@ -1786,7 +1785,7 @@ static long iio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
|||
}
|
||||
|
||||
if (ret == IIO_IOCTL_UNHANDLED)
|
||||
ret = -EINVAL;
|
||||
ret = -ENODEV;
|
||||
|
||||
out_unlock:
|
||||
mutex_unlock(&indio_dev->info_exist_lock);
|
||||
|
@ -1926,9 +1925,6 @@ EXPORT_SYMBOL(__iio_device_register);
|
|||
**/
|
||||
void iio_device_unregister(struct iio_dev *indio_dev)
|
||||
{
|
||||
struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(indio_dev);
|
||||
struct iio_ioctl_handler *h, *t;
|
||||
|
||||
cdev_device_del(&indio_dev->chrdev, &indio_dev->dev);
|
||||
|
||||
mutex_lock(&indio_dev->info_exist_lock);
|
||||
|
@ -1939,9 +1935,6 @@ void iio_device_unregister(struct iio_dev *indio_dev)
|
|||
|
||||
indio_dev->info = NULL;
|
||||
|
||||
list_for_each_entry_safe(h, t, &iio_dev_opaque->ioctl_handlers, entry)
|
||||
list_del(&h->entry);
|
||||
|
||||
iio_device_wakeup_eventset(indio_dev);
|
||||
iio_buffer_wakeup_poll(indio_dev);
|
||||
|
||||
|
|
|
@ -256,7 +256,6 @@ config ISL29125
|
|||
config HID_SENSOR_ALS
|
||||
depends on HID_SENSOR_HUB
|
||||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
tristate "HID ALS"
|
||||
|
@ -270,7 +269,6 @@ config HID_SENSOR_ALS
|
|||
config HID_SENSOR_PROX
|
||||
depends on HID_SENSOR_HUB
|
||||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
tristate "HID PROX"
|
||||
|
|
|
@ -582,7 +582,7 @@ static int gp2ap002_probe(struct i2c_client *client,
|
|||
"gp2ap002", indio_dev);
|
||||
if (ret) {
|
||||
dev_err(dev, "unable to request IRQ\n");
|
||||
goto out_disable_vio;
|
||||
goto out_put_pm;
|
||||
}
|
||||
gp2ap002->irq = client->irq;
|
||||
|
||||
|
@ -612,8 +612,9 @@ static int gp2ap002_probe(struct i2c_client *client,
|
|||
|
||||
return 0;
|
||||
|
||||
out_disable_pm:
|
||||
out_put_pm:
|
||||
pm_runtime_put_noidle(dev);
|
||||
out_disable_pm:
|
||||
pm_runtime_disable(dev);
|
||||
out_disable_vio:
|
||||
regulator_disable(gp2ap002->vio);
|
||||
|
|
|
@ -341,6 +341,14 @@ static int tsl2583_als_calibrate(struct iio_dev *indio_dev)
|
|||
return lux_val;
|
||||
}
|
||||
|
||||
/* Avoid division by zero of lux_value later on */
|
||||
if (lux_val == 0) {
|
||||
dev_err(&chip->client->dev,
|
||||
"%s: lux_val of 0 will produce out of range trim_value\n",
|
||||
__func__);
|
||||
return -ENODATA;
|
||||
}
|
||||
|
||||
gain_trim_val = (unsigned int)(((chip->als_settings.als_cal_target)
|
||||
* chip->als_settings.als_gain_trim) / lux_val);
|
||||
if ((gain_trim_val < 250) || (gain_trim_val > 4000)) {
|
||||
|
|
|
@ -95,7 +95,6 @@ config MAG3110
|
|||
config HID_SENSOR_MAGNETOMETER_3D
|
||||
depends on HID_SENSOR_HUB
|
||||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
tristate "HID Magenetometer 3D"
|
||||
|
|
|
@ -9,7 +9,6 @@ menu "Inclinometer sensors"
|
|||
config HID_SENSOR_INCLINOMETER_3D
|
||||
depends on HID_SENSOR_HUB
|
||||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
tristate "HID Inclinometer 3D"
|
||||
|
@ -20,7 +19,6 @@ config HID_SENSOR_INCLINOMETER_3D
|
|||
config HID_SENSOR_DEVICE_ROTATION
|
||||
depends on HID_SENSOR_HUB
|
||||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
tristate "HID Device Rotation"
|
||||
|
|
|
@ -79,7 +79,6 @@ config DPS310
|
|||
config HID_SENSOR_PRESS
|
||||
depends on HID_SENSOR_HUB
|
||||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
tristate "HID PRESS"
|
||||
|
|
|
@ -160,6 +160,7 @@ static int lidar_get_measurement(struct lidar_data *data, u16 *reg)
|
|||
ret = lidar_write_control(data, LIDAR_REG_CONTROL_ACQUIRE);
|
||||
if (ret < 0) {
|
||||
dev_err(&client->dev, "cannot send start measurement command");
|
||||
pm_runtime_put_noidle(&client->dev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -45,7 +45,6 @@ config HID_SENSOR_TEMP
|
|||
tristate "HID Environmental temperature sensor"
|
||||
depends on HID_SENSOR_HUB
|
||||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
help
|
||||
|
|
|
@ -527,6 +527,9 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
|
|||
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
||||
struct security_priv *psecuritypriv = &(padapter->securitypriv);
|
||||
struct sta_priv *pstapriv = &padapter->stapriv;
|
||||
char *grpkey = padapter->securitypriv.dot118021XGrpKey[param->u.crypt.idx].skey;
|
||||
char *txkey = padapter->securitypriv.dot118021XGrptxmickey[param->u.crypt.idx].skey;
|
||||
char *rxkey = padapter->securitypriv.dot118021XGrprxmickey[param->u.crypt.idx].skey;
|
||||
|
||||
param->u.crypt.err = 0;
|
||||
param->u.crypt.alg[IEEE_CRYPT_ALG_NAME_LEN - 1] = '\0';
|
||||
|
@ -609,7 +612,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
|
|||
{
|
||||
if (strcmp(param->u.crypt.alg, "WEP") == 0)
|
||||
{
|
||||
memcpy(psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
memcpy(grpkey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
|
||||
psecuritypriv->dot118021XGrpPrivacy = _WEP40_;
|
||||
if (param->u.crypt.key_len == 13)
|
||||
|
@ -622,12 +625,12 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
|
|||
{
|
||||
psecuritypriv->dot118021XGrpPrivacy = _TKIP_;
|
||||
|
||||
memcpy(psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
memcpy(grpkey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
|
||||
/* DEBUG_ERR("set key length :param->u.crypt.key_len =%d\n", param->u.crypt.key_len); */
|
||||
/* set mic key */
|
||||
memcpy(psecuritypriv->dot118021XGrptxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[16]), 8);
|
||||
memcpy(psecuritypriv->dot118021XGrprxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[24]), 8);
|
||||
memcpy(txkey, &(param->u.crypt.key[16]), 8);
|
||||
memcpy(rxkey, &(param->u.crypt.key[24]), 8);
|
||||
|
||||
psecuritypriv->busetkipkey = true;
|
||||
|
||||
|
@ -636,7 +639,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
|
|||
{
|
||||
psecuritypriv->dot118021XGrpPrivacy = _AES_;
|
||||
|
||||
memcpy(psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
memcpy(grpkey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -713,7 +716,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
|
|||
{
|
||||
if (strcmp(param->u.crypt.alg, "WEP") == 0)
|
||||
{
|
||||
memcpy(psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
memcpy(grpkey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
|
||||
psecuritypriv->dot118021XGrpPrivacy = _WEP40_;
|
||||
if (param->u.crypt.key_len == 13)
|
||||
|
@ -725,12 +728,12 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
|
|||
{
|
||||
psecuritypriv->dot118021XGrpPrivacy = _TKIP_;
|
||||
|
||||
memcpy(psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
memcpy(grpkey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
|
||||
/* DEBUG_ERR("set key length :param->u.crypt.key_len =%d\n", param->u.crypt.key_len); */
|
||||
/* set mic key */
|
||||
memcpy(psecuritypriv->dot118021XGrptxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[16]), 8);
|
||||
memcpy(psecuritypriv->dot118021XGrprxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[24]), 8);
|
||||
memcpy(txkey, &(param->u.crypt.key[16]), 8);
|
||||
memcpy(rxkey, &(param->u.crypt.key[24]), 8);
|
||||
|
||||
psecuritypriv->busetkipkey = true;
|
||||
|
||||
|
@ -739,7 +742,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
|
|||
{
|
||||
psecuritypriv->dot118021XGrpPrivacy = _AES_;
|
||||
|
||||
memcpy(psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
memcpy(grpkey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -2963,6 +2963,9 @@ static int rtw_set_encryption(struct net_device *dev, struct ieee_param *param,
|
|||
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
||||
struct security_priv *psecuritypriv = &(padapter->securitypriv);
|
||||
struct sta_priv *pstapriv = &padapter->stapriv;
|
||||
char *txkey = padapter->securitypriv.dot118021XGrptxmickey[param->u.crypt.idx].skey;
|
||||
char *rxkey = padapter->securitypriv.dot118021XGrprxmickey[param->u.crypt.idx].skey;
|
||||
char *grpkey = psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey;
|
||||
|
||||
param->u.crypt.err = 0;
|
||||
param->u.crypt.alg[IEEE_CRYPT_ALG_NAME_LEN - 1] = '\0';
|
||||
|
@ -3064,7 +3067,7 @@ static int rtw_set_encryption(struct net_device *dev, struct ieee_param *param,
|
|||
if (!psta && check_fwstate(pmlmepriv, WIFI_AP_STATE)) { /* group key */
|
||||
if (param->u.crypt.set_tx == 1) {
|
||||
if (strcmp(param->u.crypt.alg, "WEP") == 0) {
|
||||
memcpy(psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
memcpy(grpkey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
|
||||
psecuritypriv->dot118021XGrpPrivacy = _WEP40_;
|
||||
if (param->u.crypt.key_len == 13)
|
||||
|
@ -3073,11 +3076,11 @@ static int rtw_set_encryption(struct net_device *dev, struct ieee_param *param,
|
|||
} else if (strcmp(param->u.crypt.alg, "TKIP") == 0) {
|
||||
psecuritypriv->dot118021XGrpPrivacy = _TKIP_;
|
||||
|
||||
memcpy(psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
memcpy(grpkey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
|
||||
/* DEBUG_ERR("set key length :param->u.crypt.key_len =%d\n", param->u.crypt.key_len); */
|
||||
/* set mic key */
|
||||
memcpy(psecuritypriv->dot118021XGrptxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[16]), 8);
|
||||
memcpy(txkey, &(param->u.crypt.key[16]), 8);
|
||||
memcpy(psecuritypriv->dot118021XGrprxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[24]), 8);
|
||||
|
||||
psecuritypriv->busetkipkey = true;
|
||||
|
@ -3086,7 +3089,7 @@ static int rtw_set_encryption(struct net_device *dev, struct ieee_param *param,
|
|||
else if (strcmp(param->u.crypt.alg, "CCMP") == 0) {
|
||||
psecuritypriv->dot118021XGrpPrivacy = _AES_;
|
||||
|
||||
memcpy(psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
memcpy(grpkey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
} else {
|
||||
psecuritypriv->dot118021XGrpPrivacy = _NO_PRIVACY_;
|
||||
}
|
||||
|
@ -3142,7 +3145,7 @@ static int rtw_set_encryption(struct net_device *dev, struct ieee_param *param,
|
|||
|
||||
} else { /* group key??? */
|
||||
if (strcmp(param->u.crypt.alg, "WEP") == 0) {
|
||||
memcpy(psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
memcpy(grpkey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
|
||||
psecuritypriv->dot118021XGrpPrivacy = _WEP40_;
|
||||
if (param->u.crypt.key_len == 13)
|
||||
|
@ -3150,19 +3153,19 @@ static int rtw_set_encryption(struct net_device *dev, struct ieee_param *param,
|
|||
} else if (strcmp(param->u.crypt.alg, "TKIP") == 0) {
|
||||
psecuritypriv->dot118021XGrpPrivacy = _TKIP_;
|
||||
|
||||
memcpy(psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
memcpy(grpkey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
|
||||
/* DEBUG_ERR("set key length :param->u.crypt.key_len =%d\n", param->u.crypt.key_len); */
|
||||
/* set mic key */
|
||||
memcpy(psecuritypriv->dot118021XGrptxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[16]), 8);
|
||||
memcpy(psecuritypriv->dot118021XGrprxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[24]), 8);
|
||||
memcpy(txkey, &(param->u.crypt.key[16]), 8);
|
||||
memcpy(rxkey, &(param->u.crypt.key[24]), 8);
|
||||
|
||||
psecuritypriv->busetkipkey = true;
|
||||
|
||||
} else if (strcmp(param->u.crypt.alg, "CCMP") == 0) {
|
||||
psecuritypriv->dot118021XGrpPrivacy = _AES_;
|
||||
|
||||
memcpy(psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
memcpy(grpkey, param->u.crypt.key, (param->u.crypt.key_len > 16 ? 16 : param->u.crypt.key_len));
|
||||
} else {
|
||||
psecuritypriv->dot118021XGrpPrivacy = _NO_PRIVACY_;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue