Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(141)

Side by Side Diff: chromeos/compat-wireless/net/wireless/nl80211.c

Issue 5326002: Update compat-wireless to 2.6.36-5-spn (Closed) Base URL: http://git.chromium.org/git/kernel.git@master
Patch Set: Fixes for !ACK handling, missing local changes, log message fixes Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * This is the new netlink-based wireless configuration interface. 2 * This is the new netlink-based wireless configuration interface.
3 * 3 *
4 * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net> 4 * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
5 */ 5 */
6 6
7 #include <linux/if.h> 7 #include <linux/if.h>
8 #include <linux/module.h> 8 #include <linux/module.h>
9 #include <linux/err.h> 9 #include <linux/err.h>
10 #include <linux/slab.h> 10 #include <linux/slab.h>
(...skipping 745 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 static int nl80211_set_channel(struct sk_buff *skb, struct genl_info *info) 756 static int nl80211_set_channel(struct sk_buff *skb, struct genl_info *info)
757 { 757 {
758 struct cfg80211_registered_device *rdev; 758 struct cfg80211_registered_device *rdev;
759 struct net_device *netdev; 759 struct net_device *netdev;
760 int result; 760 int result;
761 761
762 rtnl_lock(); 762 rtnl_lock();
763 763
764 result = get_rdev_dev_by_info_ifindex(info, &rdev, &netdev); 764 result = get_rdev_dev_by_info_ifindex(info, &rdev, &netdev);
765 if (result) 765 if (result)
766 » » goto unlock; 766 » » goto unlock_rtnl;
767 767
768 result = __nl80211_set_channel(rdev, netdev->ieee80211_ptr, info); 768 result = __nl80211_set_channel(rdev, netdev->ieee80211_ptr, info);
769 769
770 unlock: 770 » dev_put(netdev);
771 » cfg80211_unlock_rdev(rdev);
772 unlock_rtnl:
771 rtnl_unlock(); 773 rtnl_unlock();
772 774
773 return result; 775 return result;
774 } 776 }
775 777
776 static int nl80211_set_wiphy(struct sk_buff *skb, struct genl_info *info) 778 static int nl80211_set_wiphy(struct sk_buff *skb, struct genl_info *info)
777 { 779 {
778 struct cfg80211_registered_device *rdev; 780 struct cfg80211_registered_device *rdev;
779 struct net_device *netdev = NULL; 781 struct net_device *netdev = NULL;
780 struct wireless_dev *wdev; 782 struct wireless_dev *wdev;
(...skipping 4214 matching lines...) Expand 10 before | Expand all | Expand 10 after
4995 struct net_device *dev; 4997 struct net_device *dev;
4996 int err; 4998 int err;
4997 4999
4998 if (threshold > 0) 5000 if (threshold > 0)
4999 return -EINVAL; 5001 return -EINVAL;
5000 5002
5001 rtnl_lock(); 5003 rtnl_lock();
5002 5004
5003 err = get_rdev_dev_by_info_ifindex(info, &rdev, &dev); 5005 err = get_rdev_dev_by_info_ifindex(info, &rdev, &dev);
5004 if (err) 5006 if (err)
5005 » » goto unlock_rdev; 5007 » » goto unlock_rtnl;
5006 5008
5007 wdev = dev->ieee80211_ptr; 5009 wdev = dev->ieee80211_ptr;
5008 5010
5009 if (!rdev->ops->set_cqm_rssi_config) { 5011 if (!rdev->ops->set_cqm_rssi_config) {
5010 err = -EOPNOTSUPP; 5012 err = -EOPNOTSUPP;
5011 goto unlock_rdev; 5013 goto unlock_rdev;
5012 } 5014 }
5013 5015
5014 if (wdev->iftype != NL80211_IFTYPE_STATION) { 5016 if (wdev->iftype != NL80211_IFTYPE_STATION) {
5015 err = -EOPNOTSUPP; 5017 err = -EOPNOTSUPP;
5016 goto unlock_rdev; 5018 goto unlock_rdev;
5017 } 5019 }
5018 5020
5019 err = rdev->ops->set_cqm_rssi_config(wdev->wiphy, dev, 5021 err = rdev->ops->set_cqm_rssi_config(wdev->wiphy, dev,
5020 threshold, hysteresis); 5022 threshold, hysteresis);
5021 5023
5022 unlock_rdev: 5024 unlock_rdev:
5023 cfg80211_unlock_rdev(rdev); 5025 cfg80211_unlock_rdev(rdev);
5024 dev_put(dev); 5026 dev_put(dev);
5027 unlock_rtnl:
5025 rtnl_unlock(); 5028 rtnl_unlock();
5026 5029
5027 return err; 5030 return err;
5028 } 5031 }
5029 5032
5030 static int nl80211_set_cqm_bitrate(struct genl_info *info, 5033 static int nl80211_set_cqm_bitrate(struct genl_info *info,
5031 u32 trigger_rate) 5034 u32 trigger_rate)
5032 { 5035 {
5033 struct cfg80211_registered_device *rdev; 5036 struct cfg80211_registered_device *rdev;
5034 struct wireless_dev *wdev; 5037 struct wireless_dev *wdev;
(...skipping 1298 matching lines...) Expand 10 before | Expand all | Expand 10 after
6333 err_out: 6336 err_out:
6334 genl_unregister_family(&nl80211_fam); 6337 genl_unregister_family(&nl80211_fam);
6335 return err; 6338 return err;
6336 } 6339 }
6337 6340
6338 void nl80211_exit(void) 6341 void nl80211_exit(void)
6339 { 6342 {
6340 netlink_unregister_notifier(&nl80211_netlink_notifier); 6343 netlink_unregister_notifier(&nl80211_netlink_notifier);
6341 genl_unregister_family(&nl80211_fam); 6344 genl_unregister_family(&nl80211_fam);
6342 } 6345 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698