diff options
Diffstat (limited to 'drivers/net/wireless/orinoco/wext.c')
-rw-r--r-- | drivers/net/wireless/orinoco/wext.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/drivers/net/wireless/orinoco/wext.c b/drivers/net/wireless/orinoco/wext.c index cf7be1eb6124..e793679e2e19 100644 --- a/drivers/net/wireless/orinoco/wext.c +++ b/drivers/net/wireless/orinoco/wext.c | |||
@@ -589,8 +589,15 @@ static int orinoco_ioctl_getrate(struct net_device *dev, | |||
589 | 589 | ||
590 | /* If the interface is running we try to find more about the | 590 | /* If the interface is running we try to find more about the |
591 | current mode */ | 591 | current mode */ |
592 | if (netif_running(dev)) | 592 | if (netif_running(dev)) { |
593 | err = orinoco_hw_get_act_bitrate(priv, &bitrate); | 593 | int act_bitrate; |
594 | int lerr; | ||
595 | |||
596 | /* Ignore errors if we can't get the actual bitrate */ | ||
597 | lerr = orinoco_hw_get_act_bitrate(priv, &act_bitrate); | ||
598 | if (!lerr) | ||
599 | bitrate = act_bitrate; | ||
600 | } | ||
594 | 601 | ||
595 | orinoco_unlock(priv, &flags); | 602 | orinoco_unlock(priv, &flags); |
596 | 603 | ||
@@ -886,6 +893,14 @@ static int orinoco_ioctl_set_auth(struct net_device *dev, | |||
886 | */ | 893 | */ |
887 | break; | 894 | break; |
888 | 895 | ||
896 | case IW_AUTH_MFP: | ||
897 | /* Management Frame Protection not supported. | ||
898 | * Only fail if set to required. | ||
899 | */ | ||
900 | if (param->value == IW_AUTH_MFP_REQUIRED) | ||
901 | ret = -EINVAL; | ||
902 | break; | ||
903 | |||
889 | case IW_AUTH_KEY_MGMT: | 904 | case IW_AUTH_KEY_MGMT: |
890 | /* wl_lkm implies value 2 == PSK for Hermes I | 905 | /* wl_lkm implies value 2 == PSK for Hermes I |
891 | * which ties in with WEXT | 906 | * which ties in with WEXT |
@@ -904,10 +919,10 @@ static int orinoco_ioctl_set_auth(struct net_device *dev, | |||
904 | */ | 919 | */ |
905 | if (param->value) { | 920 | if (param->value) { |
906 | priv->tkip_cm_active = 1; | 921 | priv->tkip_cm_active = 1; |
907 | ret = hermes_enable_port(hw, 0); | 922 | ret = hermes_disable_port(hw, 0); |
908 | } else { | 923 | } else { |
909 | priv->tkip_cm_active = 0; | 924 | priv->tkip_cm_active = 0; |
910 | ret = hermes_disable_port(hw, 0); | 925 | ret = hermes_enable_port(hw, 0); |
911 | } | 926 | } |
912 | break; | 927 | break; |
913 | 928 | ||