All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Buesch <mb@bu3sch.de>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: Jiri Benc <jbenc@suse.cz>,
	"John W. Linville" <linville@tuxdriver.com>,
	Simon Barber <simon@devicescape.com>,
	Jouni Malinen <jkm@devicescape.com>,
	Hong Liu <hong.liu@intel.com>,
	David Kimdon <david.kimdon@devicescape.com>,
	Michael Wu <flamingice@sourmilk.net>,
	Ivo van Doorn <ivdoorn@gmail.com>,
	netdev@vger.kernel.org
Subject: Re: [PATCH] d80211: fix scan issues with new ops
Date: Sun, 19 Nov 2006 17:15:33 +0100	[thread overview]
Message-ID: <200611191715.34225.mb@bu3sch.de> (raw)
In-Reply-To: <1163895673.15473.11.camel@johannes.berg>

On Sunday 19 November 2006 01:21, Johannes Berg wrote:
> If hardware shall do scanning, the hw_scan operation must be set. However,
> if the driver is for multiple cards that may or may not do hardware
> scanning, it'll need a flag.
> 
> Similar issues arise with passive_scan().
> 
> This patch introduces flags to fix these issues.
> 
> Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
> 
> ---
> more fallout from my earlier patches... this time it's the scanning ops
> that were still used as flags as well as ops.
> 
> --- wireless-dev.orig/include/net/d80211.h	2006-11-19 01:08:12.439520302 +0100
> +++ wireless-dev/include/net/d80211.h	2006-11-19 01:14:14.859520302 +0100
> @@ -504,6 +504,12 @@ struct ieee80211_wiphy {
>  	/* do hardware fragmentation */
>  #define IEEE80211_HW_FRAG (1<<15)
>  
> +	/* hardware does scanning instead of software */
> +#define IEEE80211_HW_PASSIVE_SCAN (1<<16)
> +
> +	/* hardware does scanning instead of software */
> +#define IEEE80211_HW_SCAN (1<<17)
> +
>  	u32 flags;			/* hardware flags defined above */
>  
>  	/* Set to the size of a needed device specific skb headroom for TX skbs. */
> @@ -627,7 +633,8 @@ struct ieee80211_ops {
>                              struct ieee80211_scan_conf *conf);
>  
>  	/* Ask the hardware to service the scan request, no need to start
> -	 * the scan state machine in stack. */
> +	 * the scan state machine in stack.
> +	 * This callback goes along with the IEEE80211_HW_SCAN flag */
>  	int (*hw_scan)(struct ieee80211_wiphy *wiphy, u8 *ssid,
>  		       size_t len);
>  
> --- wireless-dev.orig/net/d80211/ieee80211_sta.c	2006-11-19 01:07:49.509520302 +0100
> +++ wireless-dev/net/d80211/ieee80211_sta.c	2006-11-19 01:18:49.879520302 +0100
> @@ -2552,7 +2552,7 @@ int ieee80211_sta_req_scan(struct net_de
>  
>  	printk(KERN_DEBUG "%s: starting scan\n", dev->name);
>  
> -	if (local->ops->hw_scan) {
> +	if (local->ops->hw_scan && local->wiphy.flags & IEEE80211_HW_SCAN) {

Please wrap this into ()

(Hm, actually, the compiler should complain on this...)

>  		int rc = local->ops->hw_scan(local_to_wiphy(local),
>  					    ssid, ssid_len);
>  		if (!rc) {
> --- wireless-dev.orig/net/d80211/ieee80211_scan.c	2006-11-19 01:18:19.249520302 +0100
> +++ wireless-dev/net/d80211/ieee80211_scan.c	2006-11-19 01:18:22.599520302 +0100
> @@ -114,7 +114,8 @@ static void ieee80211_scan_start(struct 
>  	struct ieee80211_channel *chan = NULL;
>  	int ret;
>  
> -	if (!local->hw->passive_scan) {
> +	if (!local->ops->passive_scan ||
> +	    !(local->wiphy.flags & IEEE80211_HW_PASSIVE_SCAN)) {
>  		printk(KERN_DEBUG "%s: Scan handler called, yet the hardware "
>  		       "does not support passive scanning. Disabled.\n",
>  		       local->mdev->name);
> 
> 
> 

-- 
Greetings Michael.

  parent reply	other threads:[~2006-11-19 16:17 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-17 22:27 [PATCH 0/10] d80211: move away from wmaster towards wiphy Johannes Berg
2006-11-17 22:50 ` [PATCH] d80211: remove useless driver name field Johannes Berg
2006-11-20 18:32   ` Jouni Malinen
2006-11-20 18:40     ` Johannes Berg
2006-11-20 22:21       ` Christoph Hellwig
2006-11-20 22:33         ` Johannes Berg
2006-11-20 18:44     ` Michael Wu
2006-11-17 23:24 ` [PATCH 0/10] d80211: move away from wmaster towards wiphy Pavel Roskin
2006-11-18  0:16 ` Johannes Berg
2006-11-18 23:53 ` [PATCH] d80211: remove IEEE80211_CONF_SW_{EN,DE}CRYPT Johannes Berg
2006-11-19 16:16   ` Michael Buesch
2006-11-19  0:04 ` [PATCH] d80211: remove calib_int Johannes Berg
2006-11-19  0:21 ` [PATCH] d80211: fix scan issues with new ops Johannes Berg
2006-11-19 15:56   ` David Kimdon
2006-11-19 16:34     ` Johannes Berg
2006-11-19 16:50       ` Johannes Berg
2006-11-19 16:55       ` David Kimdon
2006-11-19 16:57         ` Johannes Berg
2006-11-19 17:25           ` David Kimdon
2006-11-19 17:54             ` Johannes Berg
2006-11-19 16:15   ` Michael Buesch [this message]
2006-11-19 16:35     ` Johannes Berg
2006-11-19 19:18 ` [PATCH 0/13] move d80211 away from netdev towards wiphy Johannes Berg
2006-11-19 19:22   ` [PATCH 1/13] d80211: clean up some stupid list and loop code Johannes Berg
2006-11-20 11:01     ` Jiri Benc
2006-11-20 11:58       ` Johannes Berg
2006-11-20 18:55         ` Johannes Berg
2006-11-19 19:23   ` [PATCH 2/13] d80211: reduce mdev usage Johannes Berg
2006-11-19 19:23   ` [PATCH 3/13] " Johannes Berg
2006-11-19 19:26   ` [PATCH 4/13] d80211: reduce mdev usage, change ieee80211_rx_mgmt Johannes Berg
2006-11-20 12:08     ` Jiri Benc
2006-11-20 12:25       ` Johannes Berg
2006-11-19 19:27   ` [PATCH 5/13] d80211: reduce master ieee80211_ptr deref in scan routines Johannes Berg
2006-11-19 19:28   ` [PATCH 6/13] d80211: change the identifier netdev to ieee80211_hw Johannes Berg
2006-11-20 17:57     ` Jiri Benc
2006-11-20 18:04       ` Johannes Berg
2006-11-20 18:52       ` Johannes Berg
2006-11-20 22:45     ` Johannes Berg
2006-11-21 17:48       ` [PATCH] d80211: use ieee80211_hw.dev Johannes Berg
2006-11-19 19:29   ` [PATCH 7/13] d80211: add a perm_addr hardware property Johannes Berg
2006-11-19 23:20     ` Johannes Berg
2006-11-20 18:54       ` Johannes Berg
2006-11-19 19:29   ` [PATCH 8/13] d80211: introduce IEEE80211_HW_FRAG flag Johannes Berg
2006-11-19 19:30   ` [PATCH 9/13] d80211: remove useless driver name field Johannes Berg
2006-11-19 19:31   ` [PATCH 10/13] bcm43xx: update to new d80211 driver API Johannes Berg
2006-11-19 19:43     ` Michael Buesch
2006-11-19 19:52       ` Johannes Berg
2006-11-19 19:31   ` [PATCH 11/13] d80211: remove IEEE80211_CONF_SW_{EN,DE}CRYPT Johannes Berg
2006-11-19 19:32   ` [PATCH 12/13] d80211: remove calib_int Johannes Berg
2006-11-19 19:33   ` [PATCH 13/13] d80211: fix scan issues with new ops Johannes Berg
2006-11-19 23:32   ` [PATCH 0/13] move d80211 away from netdev towards wiphy Johannes Berg
2006-11-20 19:14     ` Jiri Benc
2006-11-22 19:18       ` [RFC 0/3] more power to cfg80211 Johannes Berg
2006-11-22 19:22         ` [RFC 1/3] cfg80211: handle wiphy, use wiphy in netdev, do wiphy sysfs Johannes Berg
2006-11-22 19:24         ` [RFC 2/3] d80211: use new wiphy stuff from cfg80211 Johannes Berg
2006-11-22 19:25         ` [RFC 3/3] bcm43xx: API update Johannes Berg
2006-12-11 13:03         ` [RFC 0/3] more power to cfg80211 Jiri Benc

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200611191715.34225.mb@bu3sch.de \
    --to=mb@bu3sch.de \
    --cc=david.kimdon@devicescape.com \
    --cc=flamingice@sourmilk.net \
    --cc=hong.liu@intel.com \
    --cc=ivdoorn@gmail.com \
    --cc=jbenc@suse.cz \
    --cc=jkm@devicescape.com \
    --cc=johannes@sipsolutions.net \
    --cc=linville@tuxdriver.com \
    --cc=netdev@vger.kernel.org \
    --cc=simon@devicescape.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.