aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/orinoco/wext.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/orinoco/wext.c')
-rw-r--r--drivers/net/wireless/orinoco/wext.c23
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