rpms/kernel/devel kernel.spec, 1.718, 1.719 linux-2.6-wireless-pending.patch, 1.56, 1.57

John W. Linville (linville) fedora-extras-commits at redhat.com
Fri Jun 27 18:13:16 UTC 2008


Author: linville

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv29133

Modified Files:
	kernel.spec linux-2.6-wireless-pending.patch 
Log Message:
Upstream wireless updates from 2008-06-27


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.718
retrieving revision 1.719
diff -u -r1.718 -r1.719
--- kernel.spec	27 Jun 2008 15:12:40 -0000	1.718
+++ kernel.spec	27 Jun 2008 18:12:26 -0000	1.719
@@ -1787,6 +1787,10 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL}.xen -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.xen.conf %{with_xen} xen
 
 %changelog
+* Fri Jun 27 2008 John W. Linville <linville at redhat.com>
+- Upstream wireless updates from 2008-06-27
+  (http://marc.info/?l=linux-wireless&m=121458164930953&w=2)
+
 * Thu Jun 26 2008 Dave Jones <davej at redhat.com>
 - Print out modules list when we hit soft lockup.
 

linux-2.6-wireless-pending.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.56 -r 1.57 linux-2.6-wireless-pending.patch
Index: linux-2.6-wireless-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless-pending.patch,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- linux-2.6-wireless-pending.patch	25 Jun 2008 20:02:57 -0000	1.56
+++ linux-2.6-wireless-pending.patch	27 Jun 2008 18:12:26 -0000	1.57
@@ -1,3 +1,1105 @@
+commit ff28bd94e307c67abb1bccda5d3a9018bd798e08
+Author: John W. Linville <linville at tuxdriver.com>
+Date:   Fri Jun 27 10:27:47 2008 -0400
+
+    wireless: remove RFKILL_STATE_HARD_BLOCKED warnings
+    
+      CC [M]  drivers/net/wireless/b43/rfkill.o
+    drivers/net/wireless/b43/rfkill.c: In function ‘b43_rfkill_soft_toggle’:
+    drivers/net/wireless/b43/rfkill.c:90: warning: enumeration value ‘RFKILL_STATE_HARD_BLOCKED’ not handled in switch
+    
+      CC [M]  drivers/net/wireless/b43legacy/rfkill.o
+    drivers/net/wireless/b43legacy/rfkill.c: In function ‘b43legacy_rfkill_soft_toggle’:
+    drivers/net/wireless/b43legacy/rfkill.c:92: warning: enumeration value ‘RFKILL_STATE_HARD_BLOCKED’ not handled in switch
+    
+      CC [M]  drivers/net/wireless/iwlwifi/iwl-rfkill.o
+    drivers/net/wireless/iwlwifi/iwl-rfkill.c: In function ‘iwl_rfkill_soft_rf_kill’:
+    drivers/net/wireless/iwlwifi/iwl-rfkill.c:56: warning: enumeration value ‘RFKILL_STATE_HARD_BLOCKED’ not handled in switch
+    
+    Also handle RFKILL_STATE_{ON,OFF} -> RFKILL_STATE_{UNBLOCKED,SOFT_BLOCKED}
+    conversion since I'm already here...
+    
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit d195a2ca46ec50e3b5c045a36d1defb6e04cc6b7
+Author: John W. Linville <linville at tuxdriver.com>
+Date:   Fri Jun 27 09:31:29 2008 -0400
+
+    ath5k: remove now unused variable declared in ath5k_tx
+    
+      CC [M]  drivers/net/wireless/ath5k/base.o
+    drivers/net/wireless/ath5k/base.c: In function ‘ath5k_tx’:
+    drivers/net/wireless/ath5k/base.c:2598: warning: unused variable ‘info’
+    
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 03f93c3d4c8aa9ed2e2b0a949ece658053527d71
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Wed Jun 25 14:36:27 2008 +0300
+
+    mac80211: fix tx fragmentation
+    
+    This patch fixes TX fragmentation caused by
+    tx handlers reordering and 'tx info to cb' patches
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 59959a6150c8af737898e83f727e824dbed7b0fa
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Thu Jun 26 19:59:56 2008 +0200
+
+    mac80211: make workqueue freezable
+    
+    This patch makes the mac80211 workqueue freezable making it
+    interact a bit better with system suspend and not try to ping
+    the AP while the hardware is down.
+    
+    This doesn't really help with implementing proper suspend in
+    any way but makes some bad things trigger less.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit e292c737fc57d3ca718056f3308c725c8e541729
+Author: Pavel Machek <pavel at suse.cz>
+Date:   Wed Jun 25 12:25:53 2008 +0200
+
+    wireless: Small cleanups
+    
+    Small whitespace cleanups for wireless drivers
+    
+    Signed-off-by: Pavel Machek <pavel at suse.cz>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit b973e42eb25036a2672db7f7749f6989ab10479c
+Author: Randy Dunlap <randy.dunlap at oracle.com>
+Date:   Tue Jun 24 21:02:46 2008 -0700
+
+    iwlwifi: fix build for CONFIG_INPUT=n
+    
+    Fix iwlwifi so that it builds cleanly with CONFIG_INPUT=n.
+    Also free the input device on exit.
+    
+    drivers/built-in.o: In function `iwl_rfkill_unregister':
+    (.text+0xbf430): undefined reference to `input_unregister_device'
+    drivers/built-in.o: In function `iwl_rfkill_init':
+    (.text+0xbf51c): undefined reference to `input_allocate_device'
+    drivers/built-in.o: In function `iwl_rfkill_init':
+    (.text+0xbf5bf): undefined reference to `input_register_device'
+    drivers/built-in.o: In function `iwl_rfkill_init':
+    (.text+0xbf5e9): undefined reference to `input_free_device'
+    net/built-in.o: In function `rfkill_disconnect':
+    rfkill-input.c:(.text+0xe71e1): undefined reference to `input_close_device'
+    rfkill-input.c:(.text+0xe71e9): undefined reference to `input_unregister_handle'
+    net/built-in.o: In function `rfkill_connect':
+    rfkill-input.c:(.text+0xe723e): undefined reference to `input_register_handle'
+    rfkill-input.c:(.text+0xe724d): undefined reference to `input_open_device'
+    rfkill-input.c:(.text+0xe725c): undefined reference to `input_unregister_handle'
+    net/built-in.o: In function `rfkill_handler_init':
+    rfkill-input.c:(.init.text+0x36ec): undefined reference to `input_register_handler'
+    net/built-in.o: In function `rfkill_handler_exit':
+    rfkill-input.c:(.exit.text+0x112c): undefined reference to `input_unregister_handler'
+    make[1]: *** [.tmp_vmlinux1] Error 1
+    
+    Signed-off-by: Randy Dunlap <randy.dunlap at oracle.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 428da76523e4a9c08bdfadc25a05b520f19b9133
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Tue Jun 24 19:23:36 2008 +0200
+
+    mac80211: Add RTNL warning for workqueue
+    
+    The workqueue provided by mac80211 should not be used for
+    scheduled tasks that acquire the RTNL lock. This could be done
+    when the driver uses the function ieee80211_iterate_active_interfaces()
+    within the scheduled work. Such behavior will end in locking
+    dependencies problems when an interface is being removed.
+    
+    This patch will add a notification about the RTNL locking and
+    the mac80211 workqueue to prevent driver developers from
+    blindly using it.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Acked-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit f37d08bddc5cb8de18e55f2b0a401b3eb6269af4
+Author: Tomas Winkler <tomas.winkler at intel.com>
+Date:   Tue Jun 24 15:50:17 2008 +0300
+
+    mac80211: add phy information to giwname
+    
+    This patch add phy information to giwname.
+    
+    Quoting:
+    It's not useless, it's supposed to tell you about the protocol
+    capability of the device, like "IEEE 802.11b" or "IEEE 802.11abg"
+    
+    Jean
+    
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit b9fcc4f2987a757acb3af43aa31dc860bb957970
+Author: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
+Date:   Tue Jun 24 13:37:59 2008 +0300
+
+    mac80211: update the authentication method
+    
+    This patch updates the authentication method upon giwencode ioctl.
+    
+    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Acked-by: Johannes Berg <johannes at sipsolutions.net>
+    Acked-by: Dan Williams <dcbw at redhat.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit fa6adfe9e625a6a843a1abed5f4e7a000c11952c
+Author: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
+Date:   Tue Jun 24 13:37:58 2008 +0300
+
+    mac80211: don't return -EINVAL upon iwconfig wlan0 rts auto
+    
+    This patch avoids returning -EINVAL upon iwconfig wlan0 rts auto. If
+    rts->fixed is 0, then we should choose a default value instead of failing.
+    
+    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Acked-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 14a7dd6f6c1e0b361a37b6df52d4dc2ea36757d2
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Tue Jun 24 12:22:05 2008 +0200
+
+    b43: Fix PIO skb clobber
+    
+    This fixes a clobber of the skb that was introduced by the
+    tx_control->cb conversion patches.
+    This bug causes a crash when the skb destructor is invoked. That happens
+    on skb_orphan or skb_kfree.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 40af48ce501ea9ad9c485504a6fa0740801fa051
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Mon Jun 23 19:56:50 2008 +0200
+
[...19481 lines suppressed...]
++				  wext_ioctl_func private)
+ {
++	struct iwreq *iwr = (struct iwreq *) ifr;
+ 	struct net_device *dev;
+ 	iw_handler	handler;
+ 
+@@ -1019,12 +1034,12 @@ static int wireless_process_ioctl(struct
+ 	 * Note that 'cmd' is already filtered in dev_ioctl() with
+ 	 * (cmd >= SIOCIWFIRST && cmd <= SIOCIWLAST) */
+ 	if (cmd == SIOCGIWSTATS)
+-		return ioctl_standard_call(dev, ifr, cmd,
+-					   &iw_handler_get_iwstats);
++		return standard(dev, iwr, cmd, info,
++				&iw_handler_get_iwstats);
+ 
+ 	if (cmd == SIOCGIWPRIV && dev->wireless_handlers)
+-		return ioctl_standard_call(dev, ifr, cmd,
+-					   &iw_handler_get_private);
++		return standard(dev, iwr, cmd, info,
++				&iw_handler_get_private);
+ 
+ 	/* Basic check */
+ 	if (!netif_device_present(dev))
+@@ -1035,9 +1050,9 @@ static int wireless_process_ioctl(struct
+ 	if (handler) {
+ 		/* Standard and private are not the same */
+ 		if (cmd < SIOCIWFIRSTPRIV)
+-			return ioctl_standard_call(dev, ifr, cmd, handler);
++			return standard(dev, iwr, cmd, info, handler);
+ 		else
+-			return ioctl_private_call(dev, ifr, cmd, handler);
++			return private(dev, iwr, cmd, info, handler);
+ 	}
+ 	/* Old driver API : call driver ioctl handler */
+ 	if (dev->do_ioctl)
+@@ -1045,27 +1060,154 @@ static int wireless_process_ioctl(struct
+ 	return -EOPNOTSUPP;
+ }
+ 
+-/* entry point from dev ioctl */
+-int wext_handle_ioctl(struct net *net, struct ifreq *ifr, unsigned int cmd,
+-		      void __user *arg)
++/* If command is `set a parameter', or `get the encoding parameters',
++ * check if the user has the right to do it.
++ */
++static int wext_permission_check(unsigned int cmd)
+ {
+-	int ret;
+-
+-	/* If command is `set a parameter', or
+-	 * `get the encoding parameters', check if
+-	 * the user has the right to do it */
+ 	if ((IW_IS_SET(cmd) || cmd == SIOCGIWENCODE || cmd == SIOCGIWENCODEEXT)
+ 	    && !capable(CAP_NET_ADMIN))
+ 		return -EPERM;
+ 
++	return 0;
++}
++
++/* entry point from dev ioctl */
++static int wext_ioctl_dispatch(struct net *net, struct ifreq *ifr,
++			       unsigned int cmd, struct iw_request_info *info,
++			       wext_ioctl_func standard,
++			       wext_ioctl_func private)
++{
++	int ret = wext_permission_check(cmd);
++
++	if (ret)
++		return ret;
++
+ 	dev_load(net, ifr->ifr_name);
+ 	rtnl_lock();
+-	ret = wireless_process_ioctl(net, ifr, cmd);
++	ret = wireless_process_ioctl(net, ifr, cmd, info, standard, private);
+ 	rtnl_unlock();
+-	if (IW_IS_GET(cmd) && copy_to_user(arg, ifr, sizeof(struct iwreq)))
++
++	return ret;
++}
++
++int wext_handle_ioctl(struct net *net, struct ifreq *ifr, unsigned int cmd,
++		      void __user *arg)
++{
++	struct iw_request_info info = { .cmd = cmd, .flags = 0 };
++	int ret;
++
++	ret = wext_ioctl_dispatch(net, ifr, cmd, &info,
++				  ioctl_standard_call,
++				  ioctl_private_call);
++	if (ret >= 0 &&
++	    IW_IS_GET(cmd) &&
++	    copy_to_user(arg, ifr, sizeof(struct iwreq)))
++		return -EFAULT;
++
++	return ret;
++}
++
++#ifdef CONFIG_COMPAT
++static int compat_standard_call(struct net_device	*dev,
++				struct iwreq		*iwr,
++				unsigned int		cmd,
++				struct iw_request_info	*info,
++				iw_handler		handler)
++{
++	const struct iw_ioctl_description *descr;
++	struct compat_iw_point *iwp_compat;
++	struct iw_point iwp;
++	int err;
++
++	descr = standard_ioctl + (cmd - SIOCIWFIRST);
++
++	if (descr->header_type != IW_HEADER_TYPE_POINT)
++		return ioctl_standard_call(dev, iwr, cmd, info, handler);
++
++	iwp_compat = (struct compat_iw_point *) &iwr->u.data;
++	iwp.pointer = compat_ptr(iwp_compat->pointer);
++	iwp.length = iwp_compat->length;
++	iwp.flags = iwp_compat->flags;
++
++	err = ioctl_standard_iw_point(&iwp, cmd, descr, handler, dev, info);
++
++	iwp_compat->pointer = ptr_to_compat(iwp.pointer);
++	iwp_compat->length = iwp.length;
++	iwp_compat->flags = iwp.flags;
++
++	return err;
++}
++
++static int compat_private_call(struct net_device *dev, struct iwreq *iwr,
++			       unsigned int cmd, struct iw_request_info *info,
++			       iw_handler handler)
++{
++	const struct iw_priv_args *descr;
++	int ret, extra_size;
++
++	extra_size = get_priv_descr_and_size(dev, cmd, &descr);
++
++	/* Check if we have a pointer to user space data or not. */
++	if (extra_size == 0) {
++		/* No extra arguments. Trivial to handle */
++		ret = handler(dev, info, &(iwr->u), (char *) &(iwr->u));
++	} else {
++		struct compat_iw_point *iwp_compat;
++		struct iw_point iwp;
++
++		iwp_compat = (struct compat_iw_point *) &iwr->u.data;
++		iwp.pointer = compat_ptr(iwp_compat->pointer);
++		iwp.length = iwp_compat->length;
++		iwp.flags = iwp_compat->flags;
++
++		ret = ioctl_private_iw_point(&iwp, cmd, descr,
++					     handler, dev, info, extra_size);
++
++		iwp_compat->pointer = ptr_to_compat(iwp.pointer);
++		iwp_compat->length = iwp.length;
++		iwp_compat->flags = iwp.flags;
++	}
++
++	/* Call commit handler if needed and defined */
++	if (ret == -EIWCOMMIT)
++		ret = call_commit_handler(dev);
++
++	return ret;
++}
++
++int compat_wext_handle_ioctl(struct net *net, unsigned int cmd,
++			     unsigned long arg)
++{
++	void __user *argp = (void __user *)arg;
++	struct iw_request_info info;
++	struct iwreq iwr;
++	char *colon;
++	int ret;
++
++	if (copy_from_user(&iwr, argp, sizeof(struct iwreq)))
++		return -EFAULT;
++
++	iwr.ifr_name[IFNAMSIZ-1] = 0;
++	colon = strchr(iwr.ifr_name, ':');
++	if (colon)
++		*colon = 0;
++
++	info.cmd = cmd;
++	info.flags = IW_REQUEST_FLAG_COMPAT;
++
++	ret = wext_ioctl_dispatch(net, (struct ifreq *) &iwr, cmd, &info,
++				  compat_standard_call,
++				  compat_private_call);
++
++	if (ret >= 0 &&
++	    IW_IS_GET(cmd) &&
++	    copy_to_user(argp, &iwr, sizeof(struct iwreq)))
+ 		return -EFAULT;
++
+ 	return ret;
+ }
++#endif
+ 
+ /************************* EVENT PROCESSING *************************/
+ /*




More information about the fedora-extras-commits mailing list