[oe-commits] Koen Kooi : hal: apply gentoo patch to fix phy80211 problems with 2.6.27+ ( https://bugs.gentoo.org/show_bug.cgi?id=246026)

GIT User account git at amethyst.openembedded.net
Mon Feb 2 20:27:10 UTC 2009


Module: openembedded.git
Branch: org.openembedded.dev
Commit: dac353e6032fbdd944a3fcacb85c91ad746d5f1f
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=dac353e6032fbdd944a3fcacb85c91ad746d5f1f

Author: Koen Kooi <koen at openembedded.org>
Date:   Mon Feb  2 21:23:20 2009 +0100

hal: apply gentoo patch to fix phy80211 problems with 2.6.27+ (https://bugs.gentoo.org/show_bug.cgi?id=246026)

---

 packages/hal/hal-0.5.11/wifi-2.6.27.diff |   64 ++++++++++++++++++++++++++++++
 packages/hal/hal_0.5.11.bb               |    5 +-
 2 files changed, 67 insertions(+), 2 deletions(-)

diff --git a/packages/hal/hal-0.5.11/wifi-2.6.27.diff b/packages/hal/hal-0.5.11/wifi-2.6.27.diff
new file mode 100644
index 0000000..4b41c28
--- /dev/null
+++ b/packages/hal/hal-0.5.11/wifi-2.6.27.diff
@@ -0,0 +1,64 @@
+Index: hal-0.5.11/hald/linux/device.c
+===================================================================
+--- hal-0.5.11.orig/hald/linux/device.c
++++ hal-0.5.11/hald/linux/device.c
+@@ -45,6 +45,10 @@
+   #include <linux/input.h>
+ #endif
+ 
++/* for wireless extensions */
++#include <linux/if.h>
++#include <linux/wireless.h>
++
+ #include <dbus/dbus.h>
+ #include <dbus/dbus-glib.h>
+ 
+@@ -532,10 +536,14 @@ net_add (const gchar *sysfs_path, const 
+ 		const char *addr;
+ 		const char *parent_subsys;
+ 		char bridge_path[HAL_PATH_MAX];
+-		char wireless_path[HAL_PATH_MAX];
+-		char wiphy_path[HAL_PATH_MAX];
++		char phy80211_path[HAL_PATH_MAX];
+ 		struct stat s;
+ 		dbus_uint64_t mac_address = 0;
++		int ioctl_fd;
++		struct iwreq iwr;
++
++		ioctl_fd = socket (PF_INET, SOCK_DGRAM, 0);
++		strncpy (iwr.ifr_ifrn.ifrn_name, ifname, IFNAMSIZ);
+ 
+ 		addr = hal_device_property_get_string (d, "net.address");
+ 		if (addr != NULL) {
+@@ -554,9 +562,8 @@ net_add (const gchar *sysfs_path, const 
+ 		}
+ 
+ 		snprintf (bridge_path, HAL_PATH_MAX, "%s/bridge", sysfs_path);
+-		snprintf (wireless_path, HAL_PATH_MAX, "%s/wireless", sysfs_path);
+-		/* wireless dscape stack e.g. from rt2500pci driver*/
+-		snprintf (wiphy_path, HAL_PATH_MAX, "%s/wiphy", sysfs_path);
++		/* cfg80211 */
++		snprintf (phy80211_path, HAL_PATH_MAX, "%s/phy80211", sysfs_path);
+ 		parent_subsys = hal_device_property_get_string (parent_dev, "info.subsystem");
+ 
+ 		if (parent_subsys && strcmp(parent_subsys, "bluetooth") == 0) {
+@@ -564,8 +571,8 @@ net_add (const gchar *sysfs_path, const 
+ 			hal_device_property_set_string (d, "info.category", "net.bluetooth");
+ 			hal_device_add_capability (d, "net.bluetooth");
+ 			hal_device_property_set_uint64 (d, "net.bluetooth.mac_address", mac_address);
+-		} else if ((stat (wireless_path, &s) == 0 && (s.st_mode & S_IFDIR)) ||
+-			(stat (wiphy_path, &s) == 0 && (s.st_mode & S_IFDIR))) {
++		} else if ((ioctl (ioctl_fd, SIOCGIWNAME, &iwr) == 0) ||
++			(stat (phy80211_path, &s) == 0 && (s.st_mode & S_IFDIR))) {
+ 			hal_device_property_set_string (d, "info.product", "WLAN Interface");
+ 			hal_device_property_set_string (d, "info.category", "net.80211");
+ 			hal_device_add_capability (d, "net.80211");
+@@ -581,6 +588,8 @@ net_add (const gchar *sysfs_path, const 
+ 			hal_device_add_capability (d, "net.80203");
+ 			hal_device_property_set_uint64 (d, "net.80203.mac_address", mac_address);
+ 		}
++
++		close (ioctl_fd);
+ 	} else if (media_type == ARPHRD_IRDA) {
+ 		hal_device_property_set_string (d, "info.product", "Networking Interface");
+ 		hal_device_property_set_string (d, "info.category", "net.irda");
diff --git a/packages/hal/hal_0.5.11.bb b/packages/hal/hal_0.5.11.bb
index 419cf05..3b5888a 100644
--- a/packages/hal/hal_0.5.11.bb
+++ b/packages/hal/hal_0.5.11.bb
@@ -1,9 +1,10 @@
 require hal.inc
 
-PR = "r4"
+PR = "r5"
 
 SRC_URI += " file://hal-right-input-h.patch;patch=1 \
-             file://fix-configure.diff;patch=1"
+             file://fix-configure.diff;patch=1 \
+             file://wifi-2.6.27.diff;patch=1"
 
 # The following code finds the right linux/input.h,
 # which also works with external-toolchain/SDK





More information about the Openembedded-commits mailing list