[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

rpms/kernel/devel jwltest-bcm43xx_mac80211-phy-rev-1.patch, NONE, 1.1.2.1 jwltest-git-wireless-dev.patch, NONE, 1.1.12.1 jwltest-mac80211-wpa-fix.patch, NONE, 1.1.2.1 kernel-2.6.spec, 1.3048, 1.3048.2.1



Author: linville

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv32407

Modified Files:
      Tag: private-linville-jwltest-fc7-7-branch
	kernel-2.6.spec 
Added Files:
      Tag: private-linville-jwltest-fc7-7-branch
	jwltest-bcm43xx_mac80211-phy-rev-1.patch 
	jwltest-git-wireless-dev.patch jwltest-mac80211-wpa-fix.patch 
Log Message:


jwltest-bcm43xx_mac80211-phy-rev-1.patch:
 bcm43xx_phy.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

--- NEW FILE jwltest-bcm43xx_mac80211-phy-rev-1.patch ---
--- linux-2.6.20.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c.orig	2007-04-05 16:34:09.000000000 -0400
+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c	2007-04-05 16:35:00.000000000 -0400
@@ -1140,7 +1140,7 @@ static void bcm43xx_phy_initb5(struct bc
 	if (phy->radio_ver == 0x2050)
 		bcm43xx_phy_write(dev, 0x0038, 0x0667);
 
-	if (phy->type == BCM43xx_PHYTYPE_G) {
+	if (phy->gmode) {
 		if (phy->radio_ver == 0x2050) {
 			bcm43xx_radio_write16(dev, 0x007A,
 					      bcm43xx_radio_read16(dev, 0x007A)
@@ -1576,7 +1576,7 @@ static void bcm43xx_phy_initg(struct bcm
 		bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVER, 0x400);
 		bcm43xx_phy_write(dev, BCM43xx_PHY_PGACTL, 0xC0);
 	}
-	if (phy->gmode) {
+	if (phy->rev >= 2 && phy->gmode) {
 		tmp = bcm43xx_phy_read(dev, BCM43xx_PHY_VERSION_OFDM);
 		tmp &= BCM43xx_PHYVER_VERSION;
 		if (tmp == 3 || tmp == 5) {

jwltest-git-wireless-dev.patch:
 CREDITS                                                 |   31 
 MAINTAINERS                                             |   54 
 drivers/Kconfig                                         |    2 
 drivers/Makefile                                        |    1 
 drivers/net/Makefile                                    |    2 
 drivers/net/wireless/Kconfig                            |  120 
 drivers/net/wireless/Makefile                           |    3 
 drivers/net/wireless/bcm43xx/Kconfig                    |    3 
 drivers/net/wireless/hostap/Kconfig                     |    3 
 drivers/net/wireless/mac80211/Kconfig                   |    6 
 drivers/net/wireless/mac80211/Makefile                  |    6 
 drivers/net/wireless/mac80211/README                    |    2 
 drivers/net/wireless/mac80211/adm8211/Kconfig           |   25 
 drivers/net/wireless/mac80211/adm8211/Makefile          |    1 
 drivers/net/wireless/mac80211/adm8211/adm8211.c         | 2188 +++++++
 drivers/net/wireless/mac80211/adm8211/adm8211.h         |  622 ++
 drivers/net/wireless/mac80211/bcm43xx/Kconfig           |  100 
 drivers/net/wireless/mac80211/bcm43xx/Makefile          |   16 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx.h         |  870 ++
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_debugfs.c |  433 +
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_debugfs.h |  110 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_dma.c     | 1297 ++++
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_dma.h     |  361 +
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_leds.c    |  300 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_leds.h    |   56 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_lo.c      | 1081 +++
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_lo.h      |   92 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_main.c    | 3988 ++++++++++++
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_main.h    |  156 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_pcmcia.c  |  163 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_pcmcia.h  |   22 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c     | 4235 +++++++++++++
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.h     |  309 +
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_pio.c     |  671 ++
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_pio.h     |  170 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_power.c   |   82 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_power.h   |   41 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_sysfs.c   |  232 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_sysfs.h   |    9 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_tables.c  |  376 +
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_tables.h  |   28 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_vstack.c  |  202 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_vstack.h  |   83 
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_xmit.c    |  615 +
 drivers/net/wireless/mac80211/bcm43xx/bcm43xx_xmit.h    |  215 
 drivers/net/wireless/mac80211/p54/Kconfig               |   10 
 drivers/net/wireless/mac80211/p54/Makefile              |    4 
 drivers/net/wireless/mac80211/p54/net2280.h             |  452 +
 drivers/net/wireless/mac80211/p54/prism54.h             |   77 
 drivers/net/wireless/mac80211/p54/prism54common.c       |  807 ++
 drivers/net/wireless/mac80211/p54/prism54common.h       |  304 
 drivers/net/wireless/mac80211/p54/prism54magic.h        |   77 
 drivers/net/wireless/mac80211/p54/prism54pci.c          |  698 ++
 drivers/net/wireless/mac80211/p54/prism54pci.h          |  106 
 drivers/net/wireless/mac80211/p54/prism54usb.c          |  946 +++
 drivers/net/wireless/mac80211/p54/prism54usb.h          |  133 
 drivers/net/wireless/mac80211/rt2x00/Kconfig            |   86 
 drivers/net/wireless/mac80211/rt2x00/Makefile           |    9 
 drivers/net/wireless/mac80211/rt2x00/rt2400pci.c        | 2586 ++++++++
 drivers/net/wireless/mac80211/rt2x00/rt2400pci.h        |  931 +++
 drivers/net/wireless/mac80211/rt2x00/rt2500pci.c        | 2883 +++++++++
 drivers/net/wireless/mac80211/rt2x00/rt2500pci.h        | 1198 +++
 drivers/net/wireless/mac80211/rt2x00/rt2500usb.c        | 2718 ++++++++
 drivers/net/wireless/mac80211/rt2x00/rt2500usb.h        |  746 ++
 drivers/net/wireless/mac80211/rt2x00/rt2x00.h           | 1069 +++
 drivers/net/wireless/mac80211/rt2x00/rt2x00debug.c      |  380 +
 drivers/net/wireless/mac80211/rt2x00/rt2x00debug.h      |   70 
 drivers/net/wireless/mac80211/rt2x00/rt2x00dev.c        |  231 
 drivers/net/wireless/mac80211/rt2x00/rt2x00lib.h        |   74 
 drivers/net/wireless/mac80211/rt2x00/rt2x00mac.c        |  540 +
 drivers/net/wireless/mac80211/rt2x00/rt2x00pci.h        |   39 
 drivers/net/wireless/mac80211/rt2x00/rt2x00usb.h        |   82 
 drivers/net/wireless/mac80211/rt2x00/rt61pci.c          | 3364 ++++++++++
 drivers/net/wireless/mac80211/rt2x00/rt61pci.h          | 1361 ++++
 drivers/net/wireless/mac80211/rt2x00/rt73usb.c          | 3024 +++++++++
 drivers/net/wireless/mac80211/rt2x00/rt73usb.h          |  945 +++
 drivers/net/wireless/mac80211/rtl818x/Kconfig           |    9 
 drivers/net/wireless/mac80211/rtl818x/Makefile          |    2 
 drivers/net/wireless/mac80211/rtl818x/rtl8187.h         |  126 
 drivers/net/wireless/mac80211/rtl818x/rtl8187_dev.c     |  720 ++
 drivers/net/wireless/mac80211/rtl818x/rtl8187_rtl8225.c |  747 ++
 drivers/net/wireless/mac80211/rtl818x/rtl8187_rtl8225.h |   30 
 drivers/net/wireless/mac80211/rtl818x/rtl818x.h         |  177 
 drivers/net/wireless/mac80211/zd1211rw/Kconfig          |   19 
 drivers/net/wireless/mac80211/zd1211rw/Makefile         |   11 
 drivers/net/wireless/mac80211/zd1211rw/zd_chip.c        | 1676 +++++
 drivers/net/wireless/mac80211/zd1211rw/zd_chip.h        |  909 ++
 drivers/net/wireless/mac80211/zd1211rw/zd_def.h         |   57 
 drivers/net/wireless/mac80211/zd1211rw/zd_ieee80211.h   |   67 
 drivers/net/wireless/mac80211/zd1211rw/zd_mac.c         |  705 ++
 drivers/net/wireless/mac80211/zd1211rw/zd_mac.h         |  250 
 drivers/net/wireless/mac80211/zd1211rw/zd_rf.c          |  156 
 drivers/net/wireless/mac80211/zd1211rw/zd_rf.h          |   81 
 drivers/net/wireless/mac80211/zd1211rw/zd_rf_al2230.c   |  436 +
 drivers/net/wireless/mac80211/zd1211rw/zd_rf_al7230b.c  |  274 
 drivers/net/wireless/mac80211/zd1211rw/zd_rf_rf2959.c   |  279 
 drivers/net/wireless/mac80211/zd1211rw/zd_usb.c         | 1327 ++++
 drivers/net/wireless/mac80211/zd1211rw/zd_usb.h         |  241 
 drivers/net/wireless/mac80211/zd1211rw/zd_util.c        |   82 
 drivers/net/wireless/mac80211/zd1211rw/zd_util.h        |   29 
 drivers/net/wireless/zd1211rw/Kconfig                   |    3 
 drivers/ssb/Kconfig                                     |   93 
 drivers/ssb/Makefile                                    |   11 
 drivers/ssb/driver_chipcommon.c                         |  402 +
 drivers/ssb/driver_mipscore.c                           |  258 
 drivers/ssb/driver_pcicore.c                            |  556 +
 drivers/ssb/main.c                                      | 1042 +++
 drivers/ssb/pci.c                                       |  667 ++
 drivers/ssb/pcihost_wrapper.c                           |  104 
 drivers/ssb/pcmcia.c                                    |  256 
 drivers/ssb/scan.c                                      |  407 +
 drivers/ssb/ssb_private.h                               |  151 
 drivers/usb/host/Kconfig                                |   13 
 drivers/usb/host/ohci-hcd.c                             |   21 
 drivers/usb/host/ohci-ssb.c                             |  254 
 include/linux/Kbuild                                    |    2 
 include/linux/crc-itu-t.h                               |   27 
 include/linux/eeprom_93cx6.h                            |   77 
 include/linux/ieee80211.h                               |  330 +
 include/linux/netdevice.h                               |    7 
 include/linux/nl80211.h                                 |  275 
 include/linux/ssb/ssb.h                                 |  403 +
 include/linux/ssb/ssb_driver_chipcommon.h               |  387 +
 include/linux/ssb/ssb_driver_extif.h                    |  163 
 include/linux/ssb/ssb_driver_mips.h                     |   47 
 include/linux/ssb/ssb_driver_pci.h                      |  108 
 include/linux/ssb/ssb_regs.h                            |  294 
 include/net/cfg80211.h                                  |  169 
 include/net/iw_handler.h                                |    3 
 include/net/mac80211.h                                  | 1074 +++
 include/net/wireless.h                                  |  160 
 lib/Kconfig                                             |   16 
 lib/Makefile                                            |    3 
 lib/crc-itu-t.c                                         |   64 
 lib/eeprom_93cx6.c                                      |  344 +
 net/Kconfig                                             |   12 
 net/Makefile                                            |    2 
 net/core/Makefile                                       |    1 
 net/core/dev.c                                          |   33 
 net/core/wireless.c                                     | 2371 -------
 net/ieee80211/Kconfig                                   |    3 
 net/mac80211/Kconfig                                    |   71 
 net/mac80211/Makefile                                   |   26 
 net/mac80211/aes_ccm.c                                  |  155 
 net/mac80211/aes_ccm.h                                  |   26 
 net/mac80211/fifo_qdisc.c                               |  102 
 net/mac80211/hostapd_ioctl.h                            |  347 +
 net/mac80211/ieee80211.c                                | 4940 ++++++++++++++++
 net/mac80211/ieee80211_cfg.c                            |   90 
 net/mac80211/ieee80211_cfg.h                            |    9 
 net/mac80211/ieee80211_common.h                         |   98 
 net/mac80211/ieee80211_i.h                              |  720 ++
 net/mac80211/ieee80211_iface.c                          |  372 +
 net/mac80211/ieee80211_ioctl.c                          | 3304 ++++++++++
 net/mac80211/ieee80211_key.h                            |   89 
 net/mac80211/ieee80211_led.c                            |   91 
 net/mac80211/ieee80211_led.h                            |   32 
 net/mac80211/ieee80211_rate.c                           |  140 
 net/mac80211/ieee80211_rate.h                           |  161 
 net/mac80211/ieee80211_scan.c                           |  344 +
 net/mac80211/ieee80211_sta.c                            | 3013 +++++++++
 net/mac80211/ieee80211_sysfs.c                          |  718 ++
 net/mac80211/ieee80211_sysfs.h                          |   12 
 net/mac80211/ieee80211_sysfs_sta.c                      |  438 +
 net/mac80211/michael.c                                  |  104 
 net/mac80211/michael.h                                  |   20 
 net/mac80211/rc80211_simple.c                           |  399 +
 net/mac80211/sta_info.c                                 |  461 +
 net/mac80211/sta_info.h                                 |  150 
 net/mac80211/tkip.c                                     |  341 +
 net/mac80211/tkip.h                                     |   36 
 net/mac80211/wep.c                                      |  328 +
 net/mac80211/wep.h                                      |   40 
 net/mac80211/wme.c                                      |  679 ++
 net/mac80211/wme.h                                      |   38 
 net/mac80211/wpa.c                                      |  846 ++
 net/mac80211/wpa.h                                      |   31 
 net/wireless/Kconfig                                    |   46 
 net/wireless/Makefile                                   |   17 
 net/wireless/core.c                                     |  323 +
 net/wireless/core.h                                     |   77 
 net/wireless/nl80211.c                                  | 1051 +++
 net/wireless/nl80211.h                                  |   17 
 net/wireless/sysfs.c                                    |  125 
 net/wireless/sysfs.h                                    |    9 
 net/wireless/wext-common.c                              |  663 ++
 net/wireless/wext-compat.c                              |  819 ++
 net/wireless/wext-export.c                              |   29 
 net/wireless/wext-mod.c                                 |   20 
 net/wireless/wext-old.c                                 | 1461 ++++
 net/wireless/wext.h                                     |   51 
 191 files changed, 85347 insertions(+), 2487 deletions(-)

--- NEW FILE jwltest-git-wireless-dev.patch ---
--- /dev/null	2007-03-09 11:47:32.684268720 -0500
+++ linux-2.6.20.noarch/include/net/wireless.h	2007-04-05 17:31:39.000000000 -0400
@@ -0,0 +1,160 @@
+#ifndef __NET_WIRELESS_H
+#define __NET_WIRELESS_H
+
+/*
+ * 802.11 device management
+ *
+ * Copyright 2007	Johannes Berg <johannes sipsolutions net>
+ */
+
+#include <linux/netdevice.h>
+#include <linux/debugfs.h>
+#include <linux/list.h>
+#include <net/cfg80211.h>
+
+/**
+ * struct wiphy - wireless hardware description
+ * @idx: the wiphy index assigned to this item
+ * @class_dev: the class device representing /sys/class/ieee80211/<wiphy-name>
+ */
+struct wiphy {
+	/* assign these fields before you register the wiphy */
+
+	/* permanent MAC address */
+	u8 perm_addr[ETH_ALEN];
+
+	/* If multiple wiphys are registered and you're handed e.g.
+	 * a regular netdev with assigned ieee80211_ptr, you won't
+	 * know whether it points to a wiphy your driver has registered
+	 * or not. Assign this to something global to your driver to
+	 * help determine whether you own this wiphy or not. */
+	void *privid;
+
+	/* fields below are read-only, assigned by cfg80211 */
+
+	/* the item in /sys/class/ieee80211/ points to this,
+	 * you need use set_wiphy_dev() (see below) */
+	struct device dev;
+
+	/* dir in debugfs: ieee80211/<wiphyname> */
+	struct dentry *debugfsdir;
+
+	char priv[0] __attribute__((__aligned__(NETDEV_ALIGN)));
+};
+
+/** struct wireless_dev - wireless per-netdev state
+ *
+ * This structure must be allocated by the driver/stack
+ * that uses the ieee80211_ptr field in struct net_device
+ * (this is intentional so it can be allocated along with
+ * the netdev.)
+ *
+ * @wiphy: pointer to hardware description
+ */
+struct wireless_dev {
+	struct wiphy *wiphy;
+
+	/* private to the generic wireless code */
+	struct cfg80211_config pending_config;
+	struct list_head list;
+	struct net_device *netdev;
+};
+
+/**
+ * wiphy_priv - return priv from wiphy
+ */
+static inline void *wiphy_priv(struct wiphy *wiphy)
+{
+	BUG_ON(!wiphy);
+	return &wiphy->priv;
+}
+
+/**
+ * set_wiphy_dev - set device pointer for wiphy
+ */
+static inline void set_wiphy_dev(struct wiphy *wiphy, struct device *dev)
+{
+	wiphy->dev.parent = dev;
+}
+
+/**
+ * wiphy_dev - get wiphy dev pointer
+ */
+static inline struct device *wiphy_dev(struct wiphy *wiphy)
+{
+	return wiphy->dev.parent;
+}
+
+/**
+ * wiphy_name - get wiphy name
+ */
+static inline char *wiphy_name(struct wiphy *wiphy)
+{
+	return wiphy->dev.bus_id;
+}
+
+/**
+ * wdev_priv - return wiphy priv from wireless_dev
+ */
+static inline void *wdev_priv(struct wireless_dev *wdev)
+{
+	BUG_ON(!wdev);
+	return wiphy_priv(wdev->wiphy);
+}
+
+/**
+ * wiphy_new - create a new wiphy for use with cfg80211
+ *
+ * create a new wiphy and associate the given operations with it.
+ * @sizeof_priv bytes are allocated for private use.
+ *
+ * the returned pointer must be assigned to each netdev's
+ * ieee80211_ptr for proper operation.
+ */
+struct wiphy *wiphy_new(struct cfg80211_ops *ops, int sizeof_priv);
+
+/**
+ * wiphy_register - register a wiphy with cfg80211
+ *
+ * register the given wiphy
+ *
+ * Returns a non-negative wiphy index or a negative error code.
+ */
+extern int wiphy_register(struct wiphy *wiphy);
+
+/**
+ * wiphy_unregister - deregister a wiphy from cfg80211
+ *
+ * unregister a device with the given priv pointer.
+ * After this call, no more requests can be made with this priv
+ * pointer, but the call may sleep to wait for an outstanding
+ * request that is being handled.
+ */
+extern void wiphy_unregister(struct wiphy *wiphy);
+
+/**
+ * wiphy_free - free wiphy
+ */
+extern void wiphy_free(struct wiphy *wiphy);
+
+
+/*
+ * internal definitions for wireless
+ */
+
+#if defined(CONFIG_CFG80211_WEXT_COMPAT) || defined(CONFIG_WIRELESS_EXT)
+int wext_ioctl(unsigned int cmd, struct ifreq *ifreq, void __user *arg);
+int wireless_proc_init(void);
+#else
+static inline
+int wext_ioctl(unsigned int cmd, struct ifreq *ifreq, void __user *arg)
+{
+	return -EINVAL;
+}
+static inline int wireless_proc_init(void)
+{
+	return 0;
+}
+#endif
+
+#endif /* __NET_WIRELESS_H */
--- /dev/null	2007-03-09 11:47:32.684268720 -0500
+++ linux-2.6.20.noarch/include/net/mac80211.h	2007-04-05 17:31:39.000000000 -0400
@@ -0,0 +1,1074 @@
+/*
+ * Low-level hardware driver -- IEEE 802.11 driver (80211.o) interface
+ * Copyright 2002-2005, Devicescape Software, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#ifndef MAC80211_H
+#define MAC80211_H
+
+#include <linux/kernel.h>
+#include <linux/if_ether.h>
+#include <linux/skbuff.h>
+#include <linux/wireless.h>
+#include <linux/device.h>
+#include <linux/ieee80211.h>
+#include <net/wireless.h>
+#include <net/cfg80211.h>
+
+/* Note! Only ieee80211_tx_status_irqsafe() and ieee80211_rx_irqsafe() can be
+ * called in hardware interrupt context. The low-level driver must not call any
+ * other functions in hardware interrupt context. If there is a need for such
+ * call, the low-level driver should first ACK the interrupt and perform the
+ * IEEE 802.11 code call after this, e.g., from a scheduled tasklet (in
+ * software interrupt context).
+ */
+
+/*
+ * Frame format used when passing frame between low-level hardware drivers
+ * and IEEE 802.11 driver the same as used in the wireless media, i.e.,
+ * buffers start with IEEE 802.11 header and include the same octets that
[...88476 lines suppressed...]
+			break;
+
+		buf = kmalloc(100, GFP_ATOMIC);
+		if (!buf)
+			break;
+
+		memset(&iwe, 0, sizeof(iwe));
+		iwe.cmd = IWEVCUSTOM;
+		sprintf(buf, "bcn_int=%d", bss->beacon_int);
+		iwe.u.data.length = strlen(buf);
+		current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe,
+						  buf);
+
+		memset(&iwe, 0, sizeof(iwe));
+		iwe.cmd = IWEVCUSTOM;
+		sprintf(buf, "rssi=%d", bss->rssi);
+		iwe.u.data.length = strlen(buf);
+		current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe,
+						  buf);
+
+		memset(&iwe, 0, sizeof(iwe));
+		iwe.cmd = IWEVCUSTOM;
+		sprintf(buf, "capab=0x%04x", bss->capability);
+		iwe.u.data.length = strlen(buf);
+		current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe,
+						  buf);
+
+		/* dispaly all support rates in readable format */
+		p = current_ev + IW_EV_LCP_LEN;
+		iwe.cmd = SIOCGIWRATE;
+		/* Those two flags are ignored... */
+		iwe.u.bitrate.fixed = iwe.u.bitrate.disabled = 0;
+
+		for (i = 0; i < bss->supp_rates_len; i++) {
+			iwe.u.bitrate.value = ((bss->supp_rates[i] &
+							0x7f) * 500000);
+			p = iwe_stream_add_value(current_ev, p,
+					end_buf, &iwe, IW_EV_PARAM_LEN);
+		}
+		/* Check if we added any rate */
+		if((p - current_ev) > IW_EV_LCP_LEN)
+			current_ev = p;
+
+		kfree(buf);
+		break;
+	} while (0);
+
+	return current_ev;
+}
+
+
+int ieee80211_sta_scan_results(struct net_device *dev, char *buf, size_t len)
+{
+	struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
+	char *current_ev = buf;
+	char *end_buf = buf + len;
+	struct ieee80211_sta_bss *bss;
+
+	spin_lock_bh(&local->sta_bss_lock);
+	list_for_each_entry(bss, &local->sta_bss_list, list) {
+		if (buf + len - current_ev <= IW_EV_ADDR_LEN) {
+			spin_unlock_bh(&local->sta_bss_lock);
+			return -E2BIG;
+		}
+		current_ev = ieee80211_sta_scan_result(dev, bss, current_ev,
+						       end_buf);
+	}
+	spin_unlock_bh(&local->sta_bss_lock);
+	return current_ev - buf;
+}
+
+
+int ieee80211_sta_set_extra_ie(struct net_device *dev, char *ie, size_t len)
+{
+	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+	struct ieee80211_if_sta *ifsta = &sdata->u.sta;
+	kfree(ifsta->extra_ie);
+	if (len == 0) {
+		ifsta->extra_ie = NULL;
+		ifsta->extra_ie_len = 0;
+		return 0;
+	}
+	ifsta->extra_ie = kmalloc(len, GFP_KERNEL);
+	if (!ifsta->extra_ie) {
+		ifsta->extra_ie_len = 0;
+		return -ENOMEM;
+	}
+	memcpy(ifsta->extra_ie, ie, len);
+	ifsta->extra_ie_len = len;
+	return 0;
+}
+
+
+struct sta_info * ieee80211_ibss_add_sta(struct net_device *dev,
+					 struct sk_buff *skb, u8 *bssid,
+					 u8 *addr)
+{
+	struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
+	struct sta_info *sta;
+	struct ieee80211_sub_if_data *sdata = NULL;
+	struct net_device *sta_dev = NULL;
+
+	/* TODO: Could consider removing the least recently used entry and
+	 * allow new one to be added. */
+	if (local->num_sta >= IEEE80211_IBSS_MAX_STA_ENTRIES) {
+		if (net_ratelimit()) {
+			printk(KERN_DEBUG "%s: No room for a new IBSS STA "
+			       "entry " MAC_FMT "\n", dev->name, MAC_ARG(addr));
+		}
+		return NULL;
+	}
+
+	spin_lock_bh(&local->sub_if_lock);
+	list_for_each_entry(sdata, &local->sub_if_list, list)
+		if (sdata->type == IEEE80211_IF_TYPE_IBSS &&
+		    memcmp(bssid, sdata->u.sta.bssid, ETH_ALEN) == 0) {
+			sta_dev = sdata->dev;
+			break;
+		}
+	spin_unlock_bh(&local->sub_if_lock);
+
+	if (!sta_dev)
+		return NULL;
+
+	printk(KERN_DEBUG "%s: Adding new IBSS station " MAC_FMT " (dev=%s)\n",
+	       dev->name, MAC_ARG(addr), sta_dev->name);
+
+	sta = sta_info_add(local, dev, addr, GFP_ATOMIC);
+	if (!sta)
+		return NULL;
+
+	sta->dev = sta_dev;
+	sta->supp_rates = sdata->u.sta.supp_rates_bits;
+
+	rate_control_rate_init(sta, local);
+
+	return sta; /* caller will call sta_info_put() */
+}
+
+
+int ieee80211_sta_deauthenticate(struct net_device *dev, u16 reason)
+{
+	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+	struct ieee80211_if_sta *ifsta = &sdata->u.sta;
+
+	printk(KERN_DEBUG "%s: deauthenticate(reason=%d)\n",
+	       dev->name, reason);
+
+	if (sdata->type != IEEE80211_IF_TYPE_STA &&
+	    sdata->type != IEEE80211_IF_TYPE_IBSS)
+		return -EINVAL;
+
+	ieee80211_send_deauth(dev, ifsta, reason);
+	ieee80211_set_disassoc(dev, ifsta, 1);
+	return 0;
+}
+
+
+int ieee80211_sta_disassociate(struct net_device *dev, u16 reason)
+{
+	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+	struct ieee80211_if_sta *ifsta = &sdata->u.sta;
+
+	printk(KERN_DEBUG "%s: disassociate(reason=%d)\n",
+	       dev->name, reason);
+
+	if (sdata->type != IEEE80211_IF_TYPE_STA)
+		return -EINVAL;
+
+	if (!ifsta->associated)
+		return -1;
+
+	ieee80211_send_disassoc(dev, ifsta, reason);
+	ieee80211_set_disassoc(dev, ifsta, 0);
+	return 0;
+}
--- /dev/null	2007-03-09 11:47:32.684268720 -0500
+++ linux-2.6.20.noarch/net/mac80211/ieee80211_cfg.h	2007-04-05 17:31:43.000000000 -0400
@@ -0,0 +1,9 @@
+/*
+ * mac80211 configuration hooks for cfg80211
+ */
+#ifndef __IEEE80211_CFG_H
+#define __IEEE80211_CFG_H
+
+extern struct cfg80211_ops mac80211_config_ops;
+
+#endif /* __IEEE80211_CFG_H */
--- linux-2.6.20.noarch/net/ieee80211/Kconfig.orig	2007-04-05 17:30:32.000000000 -0400
+++ linux-2.6.20.noarch/net/ieee80211/Kconfig	2007-04-05 17:31:43.000000000 -0400
@@ -56,7 +56,8 @@ config IEEE80211_CRYPT_CCMP
 
 config IEEE80211_CRYPT_TKIP
 	tristate "IEEE 802.11i TKIP encryption"
-	depends on IEEE80211 && NET_RADIO
+	depends on IEEE80211
+	select WIRELESS_EXT
 	select CRYPTO
 	select CRYPTO_MICHAEL_MIC
 	select CRYPTO_ECB

jwltest-mac80211-wpa-fix.patch:
 ieee80211_ioctl.c |    5 ++++-
 ieee80211_sta.c   |   40 ++++++++++------------------------------
 2 files changed, 14 insertions(+), 31 deletions(-)

--- NEW FILE jwltest-mac80211-wpa-fix.patch ---
--- linux-2.6.20.noarch/net/mac80211/ieee80211_ioctl.c.orig	2007-04-05 16:55:15.000000000 -0400
+++ linux-2.6.20.noarch/net/mac80211/ieee80211_ioctl.c	2007-04-05 17:09:38.000000000 -0400
@@ -1585,7 +1585,7 @@ static int ieee80211_ioctl_giwrange(stru
 	memset(range, 0, sizeof(struct iw_range));
 
 	range->we_version_compiled = WIRELESS_EXT;
-	range->we_version_source = 14;
+	range->we_version_source = 21;
 	range->retry_capa = IW_RETRY_LIMIT;
 	range->retry_flags = IW_RETRY_LIMIT;
 	range->min_retry = 0;
@@ -1605,6 +1605,9 @@ static int ieee80211_ioctl_giwrange(stru
 	range->avg_qual.noise = 0;
 	range->avg_qual.updated = local->wstats_flags;
 
+	range->enc_capa = IW_ENC_CAPA_WPA | IW_ENC_CAPA_WPA2 |
+			  IW_ENC_CAPA_CIPHER_TKIP | IW_ENC_CAPA_CIPHER_CCMP;
+
 	return 0;
 }
 
--- linux-2.6.20.noarch/net/mac80211/ieee80211_sta.c.orig	2007-04-05 16:55:16.000000000 -0400
+++ linux-2.6.20.noarch/net/mac80211/ieee80211_sta.c	2007-04-05 17:09:17.000000000 -0400
@@ -2781,39 +2781,19 @@ ieee80211_sta_scan_result(struct net_dev
 	current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, "");
 
 	if (bss && bss->wpa_ie) {
-		char *buf, *p;
-		int i;
-		buf = kmalloc(30 + bss->wpa_ie_len * 2, GFP_ATOMIC);
-		if (buf) {
-			p = buf;
-			p += sprintf(p, "wpa_ie=");
-			for (i = 0; i < bss->wpa_ie_len; i++)
-				p+= sprintf(p, "%02x", bss->wpa_ie[i]);
-			memset(&iwe, 0, sizeof(iwe));
-			iwe.cmd = IWEVCUSTOM;
-			iwe.u.data.length = strlen(buf);
-			current_ev = iwe_stream_add_point(current_ev, end_buf,
-							  &iwe, buf);
-			kfree(buf);
-		}
+		memset(&iwe, 0, sizeof(iwe));
+		iwe.cmd = IWEVGENIE;
+		iwe.u.data.length = bss->wpa_ie_len;
+		current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe,
+						  bss->wpa_ie);
 	}
 
 	if (bss && bss->rsn_ie) {
-		char *buf, *p;
-		int i;
-		buf = kmalloc(30 + bss->rsn_ie_len * 2, GFP_ATOMIC);
-		if (buf) {
-			p = buf;
-			p += sprintf(p, "rsn_ie=");
-			for (i = 0; i < bss->rsn_ie_len; i++)
-				p+= sprintf(p, "%02x", bss->rsn_ie[i]);
-			memset(&iwe, 0, sizeof(iwe));
-			iwe.cmd = IWEVCUSTOM;
-			iwe.u.data.length = strlen(buf);
-			current_ev = iwe_stream_add_point(current_ev, end_buf,
-							  &iwe, buf);
-			kfree(buf);
-		}
+		memset(&iwe, 0, sizeof(iwe));
+		iwe.cmd = IWEVGENIE;
+		iwe.u.data.length = bss->rsn_ie_len;
+		current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe,
+						  bss->rsn_ie);
 	}
 
 	if (bss) {


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.3048
retrieving revision 1.3048.2.1
diff -u -r1.3048 -r1.3048.2.1
--- kernel-2.6.spec	5 Apr 2007 20:02:09 -0000	1.3048
+++ kernel-2.6.spec	5 Apr 2007 21:34:25 -0000	1.3048.2.1
@@ -60,7 +60,7 @@
 %define sublevel 20
 %define kversion 2.6.%{sublevel}
 %define rpmversion 2.6.%{sublevel}
-%define release %(R="$Revision$"; RR="${R##: }"; echo ${RR%%?})%{?dist}%{?buildid}
+%define release %(R="$Revision$"; RR="${R##: }"; echo ${RR%%?})%{?dist}%{?buildid}.jwltest.7
 
 %define make_target bzImage
 %define kernel_image x86
@@ -377,7 +377,8 @@
 # Patches 10 through 99 are for things that are going upstream really soon.
 Patch10: linux-2.6-utrace.patch
 Patch11: nouveau-drm.patch
-Patch12: git-wireless-dev.patch
+#Patch12: git-wireless-dev.patch
+Patch12: jwltest-git-wireless-dev.patch
 Patch13: git-iwlwifi.patch
 Patch14: git-iwlwifi-fixes.patch
 Patch15: linux-2.6-rt2x00-scan-fix.patch
@@ -390,6 +391,9 @@
 # enable sysrq-c on all kernels, not only kexec
 Patch20: linux-2.6-sysrq-c.patch
 
+Patch30: jwltest-bcm43xx_mac80211-phy-rev-1.patch
+Patch31: jwltest-mac80211-wpa-fix.patch
+
 # Patches 100 through 500 are meant for architecture patches
 
 # 200 - 299   x86(-64)
@@ -987,6 +991,11 @@
 # sysrq works always
 %patch20 -p1
 
+# Try reverting some spec-related changes to fix bcm43xx w/ phy rev 1 for PPC
+%patch30 -p1
+# Fix mac80211 for WPA
+%patch31 -p1
+
 # Architecture patches
 
 #


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]