Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH 05/51] DMA-API: net: intel/igbvf: fix 32-bit DMA mask handling
From: Russell King @ 2013-09-19 21:29 UTC (permalink / raw)
  To: alsa-devel, b43-dev, devel, devicetree, dri-devel, e1000-devel,
	linux-arm-kernel, linux-crypto, linux-doc, linux-fbdev, linux-ide,
	linux-media, linux-mmc, linux-nvme, linux-omap, linuxppc-dev,
	linux-samsung-soc, linux-scsi, linux-tegra, linux-usb,
	linux-wireless, netdev, Solarflare linux maintainers,
	uclinux-dist-devel
  Cc: Jeff Kirsher, Jesse Brandeburg, Bruce Allan, Carolyn Wyborny,
	Don Skidmore, Greg Rose, Peter P Waskiewicz Jr, Alex Duyck,
	John Ronciak, Tushar Dave
In-Reply-To: <20130919212235.GD12758@n2100.arm.linux.org.uk>

The fallback to 32-bit DMA mask is rather odd:
	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
	if (!err) {
		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
		if (!err)
			pci_using_dac = 1;
	} else {
		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
		if (err) {
			err = dma_set_coherent_mask(&pdev->dev,
						    DMA_BIT_MASK(32));
			if (err) {
				dev_err(&pdev->dev, "No usable DMA "
					"configuration, aborting\n");
				goto err_dma;
			}
		}
	}
This means we only set the coherent DMA mask in the fallback path if
the DMA mask set failed, which is silly.  This fixes it to set the
coherent DMA mask only if dma_set_mask() succeeded, and to error out
if either fails.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 drivers/net/ethernet/intel/igbvf/netdev.c |   18 ++++++------------
 1 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c
index 93eb7ee..4e6b02f 100644
--- a/drivers/net/ethernet/intel/igbvf/netdev.c
+++ b/drivers/net/ethernet/intel/igbvf/netdev.c
@@ -2638,21 +2638,15 @@ static int igbvf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 		return err;
 
 	pci_using_dac = 0;
-	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
+	err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
 	if (!err) {
-		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
-		if (!err)
-			pci_using_dac = 1;
+		pci_using_dac = 1;
 	} else {
-		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
+		err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
 		if (err) {
-			err = dma_set_coherent_mask(&pdev->dev,
-						    DMA_BIT_MASK(32));
-			if (err) {
-				dev_err(&pdev->dev, "No usable DMA "
-				        "configuration, aborting\n");
-				goto err_dma;
-			}
+			dev_err(&pdev->dev, "No usable DMA "
+			        "configuration, aborting\n");
+			goto err_dma;
 		}
 	}
 
-- 
1.7.4.4


^ permalink raw reply related

* [PATCH 04/51] DMA-API: net: intel/igb: fix 32-bit DMA mask handling
From: Russell King @ 2013-09-19 21:28 UTC (permalink / raw)
  To: alsa-devel, b43-dev, devel, devicetree, dri-devel, e1000-devel,
	linux-arm-kernel, linux-crypto, linux-doc, linux-fbdev, linux-ide,
	linux-media, linux-mmc, linux-nvme, linux-omap, linuxppc-dev,
	linux-samsung-soc, linux-scsi, linux-tegra, linux-usb,
	linux-wireless, netdev, Solarflare linux maintainers,
	uclinux-dist-devel
  Cc: Jeff Kirsher, Jesse Brandeburg, Bruce Allan, Carolyn Wyborny,
	Don Skidmore, Greg Rose, Peter P Waskiewicz Jr, Alex Duyck,
	John Ronciak, Tushar Dave
In-Reply-To: <20130919212235.GD12758@n2100.arm.linux.org.uk>

The fallback to 32-bit DMA mask is rather odd:
	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
	if (!err) {
		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
		if (!err)
			pci_using_dac = 1;
	} else {
		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
		if (err) {
			err = dma_set_coherent_mask(&pdev->dev,
						    DMA_BIT_MASK(32));
			if (err) {
				dev_err(&pdev->dev,
					"No usable DMA configuration, aborting\n");
				goto err_dma;
			}
		}
	}
This means we only set the coherent DMA mask in the fallback path if
the DMA mask set failed, which is silly.  This fixes it to set the
coherent DMA mask only if dma_set_mask() succeeded, and to error out
if either fails.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 drivers/net/ethernet/intel/igb/igb_main.c |   18 ++++++------------
 1 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 8cf44f2..7579383 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -2034,21 +2034,15 @@ static int igb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 		return err;
 
 	pci_using_dac = 0;
-	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
+	err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
 	if (!err) {
-		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
-		if (!err)
-			pci_using_dac = 1;
+		pci_using_dac = 1;
 	} else {
-		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
+		err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
 		if (err) {
-			err = dma_set_coherent_mask(&pdev->dev,
-						    DMA_BIT_MASK(32));
-			if (err) {
-				dev_err(&pdev->dev,
-					"No usable DMA configuration, aborting\n");
-				goto err_dma;
-			}
+			dev_err(&pdev->dev,
+				"No usable DMA configuration, aborting\n");
+			goto err_dma;
 		}
 	}
 
-- 
1.7.4.4


^ permalink raw reply related

* [PATCH 03/51] DMA-API: net: intel/e1000e: fix 32-bit DMA mask handling
From: Russell King @ 2013-09-19 21:27 UTC (permalink / raw)
  To: alsa-devel, b43-dev, devel, devicetree, dri-devel, e1000-devel,
	linux-arm-kernel, linux-crypto, linux-doc, linux-fbdev, linux-ide,
	linux-media, linux-mmc, linux-nvme, linux-omap, linuxppc-dev,
	linux-samsung-soc, linux-scsi, linux-tegra, linux-usb,
	linux-wireless, netdev, Solarflare linux maintainers,
	uclinux-dist-devel
  Cc: Jeff Kirsher, Jesse Brandeburg, Bruce Allan, Carolyn Wyborny,
	Don Skidmore, Greg Rose, Peter P Waskiewicz Jr, Alex Duyck,
	John Ronciak, Tushar Dave
In-Reply-To: <20130919212235.GD12758@n2100.arm.linux.org.uk>

The fallback to 32-bit DMA mask is rather odd:
	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
	if (!err) {
		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
		if (!err)
			pci_using_dac = 1;
	} else {
		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
		if (err) {
			err = dma_set_coherent_mask(&pdev->dev,
						    DMA_BIT_MASK(32));
			if (err) {
				dev_err(&pdev->dev,
					"No usable DMA configuration, aborting\n");
				goto err_dma;
			}
		}
	}
This means we only set the coherent DMA mask in the fallback path if
the DMA mask set failed, which is silly.  This fixes it to set the
coherent DMA mask only if dma_set_mask() succeeded, and to error out
if either fails.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 drivers/net/ethernet/intel/e1000e/netdev.c |   18 ++++++------------
 1 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index e87e9b0..519e293 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -6553,21 +6553,15 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 		return err;
 
 	pci_using_dac = 0;
-	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
+	err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
 	if (!err) {
-		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
-		if (!err)
-			pci_using_dac = 1;
+		pci_using_dac = 1;
 	} else {
-		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
+		err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
 		if (err) {
-			err = dma_set_coherent_mask(&pdev->dev,
-						    DMA_BIT_MASK(32));
-			if (err) {
-				dev_err(&pdev->dev,
-					"No usable DMA configuration, aborting\n");
-				goto err_dma;
-			}
+			dev_err(&pdev->dev,
+				"No usable DMA configuration, aborting\n");
+			goto err_dma;
 		}
 	}
 
-- 
1.7.4.4


^ permalink raw reply related

* [PATCH 01/51] DMA-API: provide a helper to set both DMA and coherent DMA masks
From: Russell King @ 2013-09-19 21:25 UTC (permalink / raw)
  To: alsa-devel, b43-dev, devel, devicetree, dri-devel, e1000-devel,
	linux-arm-kernel, linux-crypto, linux-doc, linux-fbdev, linux-ide,
	linux-media, linux-mmc, linux-nvme, linux-omap, linuxppc-dev,
	linux-samsung-soc, linux-scsi, linux-tegra, linux-usb,
	linux-wireless, netdev, Solarflare linux maintainers,
	uclinux-dist-devel
  Cc: Rob Landley, Vinod Koul, Dan Williams
In-Reply-To: <20130919212235.GD12758@n2100.arm.linux.org.uk>

Provide a helper to set both the DMA and coherent DMA masks to the
same value - this avoids duplicated code in a number of drivers,
sometimes with buggy error handling, and also allows us identify
which drivers do things differently.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 Documentation/DMA-API-HOWTO.txt |   37 ++++++++++++++++++++++---------------
 Documentation/DMA-API.txt       |    8 ++++++++
 include/linux/dma-mapping.h     |   14 ++++++++++++++
 3 files changed, 44 insertions(+), 15 deletions(-)

diff --git a/Documentation/DMA-API-HOWTO.txt b/Documentation/DMA-API-HOWTO.txt
index 14129f1..5e98303 100644
--- a/Documentation/DMA-API-HOWTO.txt
+++ b/Documentation/DMA-API-HOWTO.txt
@@ -101,14 +101,23 @@ style to do this even if your device holds the default setting,
 because this shows that you did think about these issues wrt. your
 device.
 
-The query is performed via a call to dma_set_mask():
+The query is performed via a call to dma_set_mask_and_coherent():
 
-	int dma_set_mask(struct device *dev, u64 mask);
+	int dma_set_mask_and_coherent(struct device *dev, u64 mask);
 
-The query for consistent allocations is performed via a call to
-dma_set_coherent_mask():
+which will query the mask for both streaming and coherent APIs together.
+If you have some special requirements, then the following two separate
+queries can be used instead:
 
-	int dma_set_coherent_mask(struct device *dev, u64 mask);
+	The query for streaming mappings is performed via a call to
+	dma_set_mask():
+
+		int dma_set_mask(struct device *dev, u64 mask);
+
+	The query for consistent allocations is performed via a call
+	to dma_set_coherent_mask():
+
+		int dma_set_coherent_mask(struct device *dev, u64 mask);
 
 Here, dev is a pointer to the device struct of your device, and mask
 is a bit mask describing which bits of an address your device
@@ -137,7 +146,7 @@ exactly why.
 
 The standard 32-bit addressing device would do something like this:
 
-	if (dma_set_mask(dev, DMA_BIT_MASK(32))) {
+	if (dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32))) {
 		printk(KERN_WARNING
 		       "mydev: No suitable DMA available.\n");
 		goto ignore_this_device;
@@ -171,22 +180,20 @@ If a card is capable of using 64-bit consistent allocations as well,
 
 	int using_dac, consistent_using_dac;
 
-	if (!dma_set_mask(dev, DMA_BIT_MASK(64))) {
+	if (!dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64))) {
 		using_dac = 1;
 	   	consistent_using_dac = 1;
-		dma_set_coherent_mask(dev, DMA_BIT_MASK(64));
-	} else if (!dma_set_mask(dev, DMA_BIT_MASK(32))) {
+	} else if (!dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32))) {
 		using_dac = 0;
 		consistent_using_dac = 0;
-		dma_set_coherent_mask(dev, DMA_BIT_MASK(32));
 	} else {
 		printk(KERN_WARNING
 		       "mydev: No suitable DMA available.\n");
 		goto ignore_this_device;
 	}
 
-dma_set_coherent_mask() will always be able to set the same or a
-smaller mask as dma_set_mask(). However for the rare case that a
+The coherent coherent mask will always be able to set the same or a
+smaller mask as the streaming mask. However for the rare case that a
 device driver only uses consistent allocations, one would have to
 check the return value from dma_set_coherent_mask().
 
@@ -199,9 +206,9 @@ Finally, if your device can only drive the low 24-bits of
 		goto ignore_this_device;
 	}
 
-When dma_set_mask() is successful, and returns zero, the kernel saves
-away this mask you have provided.  The kernel will use this
-information later when you make DMA mappings.
+When dma_set_mask() or dma_set_mask_and_coherent() is successful, and
+returns zero, the kernel saves away this mask you have provided.  The
+kernel will use this information later when you make DMA mappings.
 
 There is a case which we are aware of at this time, which is worth
 mentioning in this documentation.  If your device supports multiple
diff --git a/Documentation/DMA-API.txt b/Documentation/DMA-API.txt
index 78a6c56..e865279 100644
--- a/Documentation/DMA-API.txt
+++ b/Documentation/DMA-API.txt
@@ -142,6 +142,14 @@ internal API for use by the platform than an external API for use by
 driver writers.
 
 int
+dma_set_mask_and_coherent(struct device *dev, u64 mask)
+
+Checks to see if the mask is possible and updates the device
+streaming and coherent DMA mask parameters if it is.
+
+Returns: 0 if successful and a negative error if not.
+
+int
 dma_set_mask(struct device *dev, u64 mask)
 
 Checks to see if the mask is possible and updates the device
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index 3a8d0a2..ec951f9 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -97,6 +97,20 @@ static inline int dma_set_coherent_mask(struct device *dev, u64 mask)
 }
 #endif
 
+/*
+ * Set both the DMA mask and the coherent DMA mask to the same thing.
+ * Note that we don't check the return value from dma_set_coherent_mask()
+ * as the DMA API guarantees that the coherent DMA mask can be set to
+ * the same or smaller than the streaming DMA mask.
+ */
+static inline int dma_set_mask_and_coherent(struct device *dev, u64 mask)
+{
+	int rc = dma_set_mask(dev, mask);
+	if (rc == 0)
+		dma_set_coherent_mask(dev, mask);
+	return rc;
+}
+
 extern u64 dma_get_required_mask(struct device *dev);
 
 static inline unsigned int dma_get_max_seg_size(struct device *dev)
-- 
1.7.4.4


^ permalink raw reply related

* [PATCH 02/51] DMA-API: net: brocade/bna/bnad.c: fix 32-bit DMA mask handling
From: Russell King @ 2013-09-19 21:26 UTC (permalink / raw)
  To: alsa-devel, b43-dev, devel, devicetree, dri-devel, e1000-devel,
	linux-arm-kernel, linux-crypto, linux-doc, linux-fbdev, linux-ide,
	linux-media, linux-mmc, linux-nvme, linux-omap, linuxppc-dev,
	linux-samsung-soc, linux-scsi, linux-tegra, linux-usb,
	linux-wireless, netdev, Solarflare linux maintainers,
	uclinux-dist-devel
  Cc: Rasesh Mody
In-Reply-To: <20130919212235.GD12758@n2100.arm.linux.org.uk>

The fallback to 32-bit DMA mask is rather odd:
	if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)) &&
	    !dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) {
		*using_dac = true;
	} else {
		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
		if (err) {
			err = dma_set_coherent_mask(&pdev->dev,
						    DMA_BIT_MASK(32));
			if (err)
				goto release_regions;
		}

This means we only try and set the coherent DMA mask if we failed to
set a 32-bit DMA mask, and only if both fail do we fail the driver.
Adjust this so that if either setting fails, we fail the driver - and
thereby end up properly setting both the DMA mask and the coherent
DMA mask in the fallback case.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 drivers/net/ethernet/brocade/bna/bnad.c |   13 ++++---------
 1 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c
index b78e69e..45ce6e2 100644
--- a/drivers/net/ethernet/brocade/bna/bnad.c
+++ b/drivers/net/ethernet/brocade/bna/bnad.c
@@ -3300,17 +3300,12 @@ bnad_pci_init(struct bnad *bnad,
 	err = pci_request_regions(pdev, BNAD_NAME);
 	if (err)
 		goto disable_device;
-	if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)) &&
-	    !dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) {
+	if (!dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
 		*using_dac = true;
 	} else {
-		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
-		if (err) {
-			err = dma_set_coherent_mask(&pdev->dev,
-						    DMA_BIT_MASK(32));
-			if (err)
-				goto release_regions;
-		}
+		err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+		if (err)
+			goto release_regions;
 		*using_dac = false;
 	}
 	pci_set_master(pdev);
-- 
1.7.4.4


^ permalink raw reply related

* [PATCH 00/51] DMA mask changes
From: Russell King - ARM Linux @ 2013-09-19 21:22 UTC (permalink / raw)
  To: alsa-devel, b43-dev, devel, devicetree, dri-devel, e1000-devel,
	linux-arm-kernel, linux-crypto, linux-doc, linux-fbdev, linux-ide,
	linux-media, linux-mmc, linux-nvme, linux-omap, linuxppc-dev,
	linux-samsung-soc, linux-scsi, linux-tegra, linux-usb,
	linux-wireless, netdev, Solarflare linux maintainers,
	uclinux-dist-devel

This started out as a request to look at the DMA mask situation, and how
to solve the issues which we have on ARM - notably how the DMA mask
should be setup.

However, I started off reviewing how the dma_mask and coherent_dma_mask
was being used, and what I found was rather messy, and in some cases
rather buggy.  I tried to get some of the bug fixes in before the last
merge window, but it seems that the maintainers preferred to have the
full solution rather than a simple -rc suitable bug fix.

So, this is an attempt to clean things up.

The first point here is that drivers performing DMA should be calling
dma_set_mask()/dma_set_coherent_mask() in their probe function to verify
that DMA can be performed.  Lots of ARM drivers omit this step; please
refer to the DMA API documentation on this subject.

What this means is that the DMA mask provided by bus code is a default
value - nothing more.  It doesn't have to accurately reflect what the
device is actually capable of.  Apart from the storage for dev->dma_mask
being initialised for any device which is DMA capable, there is no other
initialisation which is strictly necessary at device creation time.

Now, these cleanups address two major areas:
1. The setting of DMA masks, particularly when both the coherent and
   streaming DMA masks are set together.

2. The initialisation of DMA masks by drivers - this seems to be becoming
   a popular habbit, one which may not be entirely the right solution.
   Rather than having this scattered throughout the tree, I've pulled
   that into a central location (and called it coercing the DMA mask -
   because it really is about forcing the DMA mask to be that value.)

3. Finally, addressing the long held misbelief that DMA masks somehow
   correspond with physical addresses.  We already have established
   long ago that dma_addr_t values returned from the DMA API are the
   values which you program into the DMA controller, and so are the
   bus addresses.  It is _only_ sane that DMA masks are also bus
   related too, and not related to physical address spaces.

(3) is a very important point for LPAE systems, which may still have
less than 4GB of memory, but this memory is all located above the 4GB
physical boundary.  This means with the current model, any device
using a 32-bit DMA mask fails - even though the DMA controller is
still only a 32-bit DMA controller but the 32-bit bus addresses map
to system memory.  To put it another way, the bus addresses have a
4GB physical offset on them.

This email is only being sent to the mailing lists in question, not to
anyone personally.  The list of individuals is far to great to do that.
I'm hoping no mailing lists reject the patches based on the number of
recipients.

Patches based on v3.12-rc1.

 Documentation/DMA-API-HOWTO.txt                   |   37 +++++++++------
 Documentation/DMA-API.txt                         |    8 +++
 arch/arm/include/asm/dma-mapping.h                |    8 +++
 arch/arm/mm/dma-mapping.c                         |   49 ++++++++++++++++++--
 arch/arm/mm/init.c                                |   12 +++---
 arch/arm/mm/mm.h                                  |    2 +
 arch/powerpc/kernel/vio.c                         |    3 +-
 block/blk-settings.c                              |    8 ++--
 drivers/amba/bus.c                                |    6 +--
 drivers/ata/pata_ixp4xx_cf.c                      |    5 ++-
 drivers/ata/pata_octeon_cf.c                      |    5 +-
 drivers/block/nvme-core.c                         |   10 ++---
 drivers/crypto/ixp4xx_crypto.c                    |   48 ++++++++++----------
 drivers/dma/amba-pl08x.c                          |    5 ++
 drivers/dma/dw/platform.c                         |    8 +--
 drivers/dma/edma.c                                |    6 +--
 drivers/dma/pl330.c                               |    4 ++
 drivers/firmware/dcdbas.c                         |   23 +++++-----
 drivers/firmware/google/gsmi.c                    |   13 +++--
 drivers/gpu/drm/exynos/exynos_drm_drv.c           |    6 ++-
 drivers/gpu/drm/omapdrm/omap_dmm_tiler.c          |    5 +-
 drivers/media/platform/omap3isp/isp.c             |    6 +-
 drivers/media/platform/omap3isp/isp.h             |    3 -
 drivers/mmc/card/queue.c                          |    3 +-
 drivers/mmc/host/sdhci-acpi.c                     |    5 +-
 drivers/net/ethernet/broadcom/b44.c               |    3 +-
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c  |    8 +---
 drivers/net/ethernet/brocade/bna/bnad.c           |   13 ++----
 drivers/net/ethernet/emulex/benet/be_main.c       |   12 +----
 drivers/net/ethernet/intel/e1000/e1000_main.c     |    9 +---
 drivers/net/ethernet/intel/e1000e/netdev.c        |   18 +++-----
 drivers/net/ethernet/intel/igb/igb_main.c         |   18 +++-----
 drivers/net/ethernet/intel/igbvf/netdev.c         |   18 +++-----
 drivers/net/ethernet/intel/ixgb/ixgb_main.c       |   16 ++-----
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c     |   15 ++----
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |   15 ++----
 drivers/net/ethernet/nxp/lpc_eth.c                |    6 ++-
 drivers/net/ethernet/octeon/octeon_mgmt.c         |    5 +-
 drivers/net/ethernet/sfc/efx.c                    |   12 +-----
 drivers/net/wireless/b43/dma.c                    |    9 +---
 drivers/net/wireless/b43legacy/dma.c              |    9 +---
 drivers/of/platform.c                             |    3 -
 drivers/parport/parport_pc.c                      |    8 +++-
 drivers/scsi/scsi_lib.c                           |    2 +-
 drivers/staging/dwc2/platform.c                   |    5 +-
 drivers/staging/et131x/et131x.c                   |   17 +------
 drivers/staging/imx-drm/imx-drm-core.c            |    8 +++-
 drivers/staging/imx-drm/ipuv3-crtc.c              |    4 +-
 drivers/staging/media/dt3155v4l/dt3155v4l.c       |    5 +--
 drivers/usb/chipidea/ci_hdrc_imx.c                |    7 +--
 drivers/usb/dwc3/dwc3-exynos.c                    |    7 +--
 drivers/usb/gadget/lpc32xx_udc.c                  |    4 +-
 drivers/usb/host/bcma-hcd.c                       |    3 +-
 drivers/usb/host/ehci-atmel.c                     |    7 +--
 drivers/usb/host/ehci-octeon.c                    |    4 +-
 drivers/usb/host/ehci-omap.c                      |   10 ++--
 drivers/usb/host/ehci-orion.c                     |    7 +--
 drivers/usb/host/ehci-platform.c                  |   10 ++--
 drivers/usb/host/ehci-s5p.c                       |    7 +--
 drivers/usb/host/ehci-spear.c                     |    7 +--
 drivers/usb/host/ehci-tegra.c                     |    7 +--
 drivers/usb/host/ohci-at91.c                      |    9 ++--
 drivers/usb/host/ohci-exynos.c                    |    7 +--
 drivers/usb/host/ohci-nxp.c                       |    5 +-
 drivers/usb/host/ohci-octeon.c                    |    5 +-
 drivers/usb/host/ohci-omap3.c                     |   10 ++--
 drivers/usb/host/ohci-pxa27x.c                    |    8 ++--
 drivers/usb/host/ohci-sa1111.c                    |    6 +++
 drivers/usb/host/ohci-spear.c                     |    7 +--
 drivers/usb/host/ssb-hcd.c                        |    3 +-
 drivers/usb/host/uhci-platform.c                  |    7 +--
 drivers/usb/musb/am35x.c                          |   50 +++++++--------------
 drivers/usb/musb/da8xx.c                          |   49 +++++++-------------
 drivers/usb/musb/davinci.c                        |   48 +++++++-------------
 drivers/usb/musb/tusb6010.c                       |   49 +++++++-------------
 drivers/video/amba-clcd.c                         |    5 ++
 include/linux/amba/bus.h                          |    2 -
 include/linux/dma-mapping.h                       |   31 +++++++++++++
 sound/arm/pxa2xx-pcm.c                            |    9 +---
 sound/soc/atmel/atmel-pcm.c                       |   11 ++---
 sound/soc/blackfin/bf5xx-ac97-pcm.c               |   11 ++---
 sound/soc/blackfin/bf5xx-i2s-pcm.c                |   10 ++---
 sound/soc/davinci/davinci-pcm.c                   |    9 +---
 sound/soc/fsl/fsl_dma.c                           |    9 +---
 sound/soc/fsl/mpc5200_dma.c                       |   10 ++---
 sound/soc/jz4740/jz4740-pcm.c                     |   12 ++---
 sound/soc/kirkwood/kirkwood-dma.c                 |    9 +---
 sound/soc/nuc900/nuc900-pcm.c                     |    9 ++--
 sound/soc/omap/omap-pcm.c                         |   11 ++---
 sound/soc/pxa/pxa2xx-pcm.c                        |   11 ++---
 sound/soc/s6000/s6000-pcm.c                       |    9 +---
 sound/soc/samsung/dma.c                           |   11 ++---
 sound/soc/samsung/idma.c                          |   11 ++---
 93 files changed, 493 insertions(+), 566 deletions(-)


^ permalink raw reply

* Kernel panic in ieee80211_calculate_rx_timestamp
From: Thomas Lindroth @ 2013-09-19 18:01 UTC (permalink / raw)
  To: linux-wireless

I recently got a ath9k_htc based dongle and running kismet for a few
hours results in a kernel panic (divide error) in
ieee80211_calculate_rx_timestamp with kernel 3.11.0.

The problem seems to occur when the call to cfg80211_calculate_bitrate
returns 0. I've used this patch to temporarily works around the problem.

diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 2265445..037b737 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -2156,6 +2156,9 @@ u64 ieee80211_calculate_rx_timestamp(struct
ieee80211_local *local,

        rate = cfg80211_calculate_bitrate(&ri);

+       if (WARN_ON(!rate))
+               return 0;
+
        /* rewind from end of MPDU */
        if (status->flag & RX_FLAG_MACTIME_END)
                ts -= mpdu_len * 8 * 10 / rate;


http://i.imgur.com/BrpaCgI.jpg here is the output of the panic.

/Thomas Lindroth

^ permalink raw reply related

* [PATCH 4/4] ath: add support for proper dynamic regulatory hints
From: Luis R. Rodriguez @ 2013-09-19 16:18 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, Luis R. Rodriguez
In-Reply-To: <1379607490-18972-1-git-send-email-mcgrof@do-not-panic.com>

From: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>

This enables support for dynamic user regulatory hints.
This is enabled only when CFG80211_CERTIFICATION_ONUS
is selected. For US and JP this is explicitly disabled
unless the systems are being used for strict controlled
testing.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 drivers/net/wireless/ath/Kconfig |   17 ++++++++
 drivers/net/wireless/ath/regd.c  |   84 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 101 insertions(+)

diff --git a/drivers/net/wireless/ath/Kconfig b/drivers/net/wireless/ath/Kconfig
index 1abf1d4..6515e85 100644
--- a/drivers/net/wireless/ath/Kconfig
+++ b/drivers/net/wireless/ath/Kconfig
@@ -25,6 +25,23 @@ config ATH_DEBUG
 	  Say Y, if you want to debug atheros wireless drivers.
 	  Right now only ath9k makes use of this.
 
+config ATH_REG_DYNAMIC_USER_REG_HINTS
+	bool "Atheros dynamic user regulatory hints"
+	depends on CFG80211_CERTIFICATION_ONUS
+	default n
+	---help---
+	  Say N. This should only be enabled in countries where
+	  this feature is explicitly allowed and only on cards that
+	  specifically have been tested for this.
+
+config ATH_REG_DYNAMIC_USER_CERT_TESTING
+	bool "Atheros dynamic user regulatory testing"
+	depends on ATH_REG_DYNAMIC_USER_REG_HINTS && CFG80211_CERTIFICATION_ONUS
+	default n
+	---help---
+	  Say N. This should only be enabled on systems
+	  undergoing certification testing.
+
 source "drivers/net/wireless/ath/ath5k/Kconfig"
 source "drivers/net/wireless/ath/ath9k/Kconfig"
 source "drivers/net/wireless/ath/carl9170/Kconfig"
diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
index 7222eeb..c00687e 100644
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
@@ -392,6 +392,89 @@ static void ath_reg_dyn_country(struct wiphy *wiphy,
 	       reg_initiator_name(request->initiator));
 }
 
+static bool dynamic_country_user_possible(struct ath_regulatory *reg)
+{
+	if (config_enabled(CONFIG_ATH_REG_DYNAMIC_USER_CERT_TESTING))
+		return true;
+
+	switch (reg->country_code) {
+	case CTRY_UNITED_STATES:
+	case CTRY_JAPAN1:
+	case CTRY_JAPAN2:
+	case CTRY_JAPAN3:
+	case CTRY_JAPAN4:
+	case CTRY_JAPAN5:
+	case CTRY_JAPAN6:
+	case CTRY_JAPAN7:
+	case CTRY_JAPAN8:
+	case CTRY_JAPAN9:
+	case CTRY_JAPAN10:
+	case CTRY_JAPAN11:
+	case CTRY_JAPAN12:
+	case CTRY_JAPAN13:
+	case CTRY_JAPAN14:
+	case CTRY_JAPAN15:
+	case CTRY_JAPAN16:
+	case CTRY_JAPAN17:
+	case CTRY_JAPAN18:
+	case CTRY_JAPAN19:
+	case CTRY_JAPAN20:
+	case CTRY_JAPAN21:
+	case CTRY_JAPAN22:
+	case CTRY_JAPAN23:
+	case CTRY_JAPAN24:
+	case CTRY_JAPAN25:
+	case CTRY_JAPAN26:
+	case CTRY_JAPAN27:
+	case CTRY_JAPAN28:
+	case CTRY_JAPAN29:
+	case CTRY_JAPAN30:
+	case CTRY_JAPAN31:
+	case CTRY_JAPAN32:
+	case CTRY_JAPAN33:
+	case CTRY_JAPAN34:
+	case CTRY_JAPAN35:
+	case CTRY_JAPAN36:
+	case CTRY_JAPAN37:
+	case CTRY_JAPAN38:
+	case CTRY_JAPAN39:
+	case CTRY_JAPAN40:
+	case CTRY_JAPAN41:
+	case CTRY_JAPAN42:
+	case CTRY_JAPAN43:
+	case CTRY_JAPAN44:
+	case CTRY_JAPAN45:
+	case CTRY_JAPAN46:
+	case CTRY_JAPAN47:
+	case CTRY_JAPAN48:
+	case CTRY_JAPAN49:
+	case CTRY_JAPAN50:
+	case CTRY_JAPAN51:
+	case CTRY_JAPAN52:
+	case CTRY_JAPAN53:
+	case CTRY_JAPAN54:
+	case CTRY_JAPAN55:
+	case CTRY_JAPAN56:
+	case CTRY_JAPAN57:
+	case CTRY_JAPAN58:
+	case CTRY_JAPAN59:
+		return false;
+	}
+
+	return true;
+}
+
+static void ath_reg_dyn_country_user(struct wiphy *wiphy,
+				     struct ath_regulatory *reg,
+				     struct regulatory_request *request)
+{
+	if (!config_enabled(CONFIG_ATH_REG_DYNAMIC_USER_REG_HINTS))
+		return;
+	if (!dynamic_country_user_possible(reg))
+		return;
+	ath_reg_dyn_country(wiphy, reg, request);
+}
+
 void ath_reg_notifier_apply(struct wiphy *wiphy,
 			    struct regulatory_request *request,
 			    struct ath_regulatory *reg)
@@ -424,6 +507,7 @@ void ath_reg_notifier_apply(struct wiphy *wiphy,
 	case NL80211_REGDOM_SET_BY_DRIVER:
 		break;
 	case NL80211_REGDOM_SET_BY_USER:
+		ath_reg_dyn_country_user(wiphy, reg, request);
 		break;
 	case NL80211_REGDOM_SET_BY_COUNTRY_IE:
 		ath_reg_dyn_country(wiphy, reg, request);
-- 
1.7.10.4


^ permalink raw reply related

* [PATCH 3/4] ath: split user and driver reguluatory hint parsing
From: Luis R. Rodriguez @ 2013-09-19 16:18 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, Luis R. Rodriguez
In-Reply-To: <1379607490-18972-1-git-send-email-mcgrof@do-not-panic.com>

From: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>

On the regulatory notifier split up the parsing of the
hints coming from drivers or user. We'll treat these
separately.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 drivers/net/wireless/ath/regd.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
index 8373650..7222eeb 100644
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
@@ -422,6 +422,7 @@ void ath_reg_notifier_apply(struct wiphy *wiphy,
 		       sizeof(struct ath_regulatory));
 		break;
 	case NL80211_REGDOM_SET_BY_DRIVER:
+		break;
 	case NL80211_REGDOM_SET_BY_USER:
 		break;
 	case NL80211_REGDOM_SET_BY_COUNTRY_IE:
-- 
1.7.10.4


^ permalink raw reply related

* [PATCH 2/4] ath: move common dynamic regulatory domain setting to a helper
From: Luis R. Rodriguez @ 2013-09-19 16:18 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, Luis R. Rodriguez
In-Reply-To: <1379607490-18972-1-git-send-email-mcgrof@do-not-panic.com>

From: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>

This moves the dynamic regulatory domain selection code into
a helper.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 drivers/net/wireless/ath/regd.c |   55 ++++++++++++++++++++++++++-------------
 1 file changed, 37 insertions(+), 18 deletions(-)

diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
index 7d077c7..8373650 100644
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
@@ -356,14 +356,48 @@ static u16 ath_regd_find_country_by_name(char *alpha2)
 	return -1;
 }
 
+static int __ath_reg_dyn_country(struct wiphy *wiphy,
+				 struct ath_regulatory *reg,
+				 struct regulatory_request *request)
+{
+	u16 country_code;
+
+	if (!ath_is_world_regd(reg))
+		return -EINVAL;
+
+	country_code = ath_regd_find_country_by_name(request->alpha2);
+	if (country_code == (u16) -1)
+		return -EINVAL;
+
+	reg->current_rd = COUNTRY_ERD_FLAG;
+	reg->current_rd |= country_code;
+
+	__ath_regd_init(reg);
+
+	ath_reg_apply_world_flags(wiphy, request->initiator, reg);
+
+	return 0;
+}
+
+static void ath_reg_dyn_country(struct wiphy *wiphy,
+				struct ath_regulatory *reg,
+				struct regulatory_request *request)
+{
+	if (__ath_reg_dyn_country(wiphy, reg, request))
+		return;
+
+	printk(KERN_DEBUG "ath: regdomain 0x%0x "
+			  "dynamically updated by %s\n",
+	       reg->current_rd,
+	       reg_initiator_name(request->initiator));
+}
+
 void ath_reg_notifier_apply(struct wiphy *wiphy,
 			    struct regulatory_request *request,
 			    struct ath_regulatory *reg)
 {
 	struct ath_common *common = container_of(reg, struct ath_common,
 						 regulatory);
-	u16 country_code;
-
 	/* We always apply this */
 	ath_reg_apply_radar_flags(wiphy);
 
@@ -391,22 +425,7 @@ void ath_reg_notifier_apply(struct wiphy *wiphy,
 	case NL80211_REGDOM_SET_BY_USER:
 		break;
 	case NL80211_REGDOM_SET_BY_COUNTRY_IE:
-		if (!ath_is_world_regd(reg))
-			break;
-
-		country_code = ath_regd_find_country_by_name(request->alpha2);
-		if (country_code == (u16) -1)
-			break;
-
-		reg->current_rd = COUNTRY_ERD_FLAG;
-		reg->current_rd |= country_code;
-
-		printk(KERN_DEBUG "ath: regdomain 0x%0x updated by CountryIE\n",
-			reg->current_rd);
-		__ath_regd_init(reg);
-
-		ath_reg_apply_world_flags(wiphy, request->initiator, reg);
-
+		ath_reg_dyn_country(wiphy, reg, request);
 		break;
 	}
 }
-- 
1.7.10.4


^ permalink raw reply related

* [PATCH 1/4] cfg80211: export reg_initiator_name()
From: Luis R. Rodriguez @ 2013-09-19 16:18 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, Luis R. Rodriguez
In-Reply-To: <1379607490-18972-1-git-send-email-mcgrof@do-not-panic.com>

From: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>

Drivers can now use this to parse the regulatory request and
be more verbose when needed.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 include/net/cfg80211.h |    9 +++++++++
 net/wireless/reg.c     |   27 +++++++++++++++++----------
 2 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index d530c54..afb2323 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -3474,6 +3474,15 @@ extern void wiphy_apply_custom_regulatory(
 const struct ieee80211_reg_rule *freq_reg_info(struct wiphy *wiphy,
 					       u32 center_freq);
 
+/**
+ * reg_initiator_name - map regulatory request initiator enum to name
+ * @initiator: the regulatory request initiator
+ *
+ * You can use this to map the regulatory request initiator enum to a
+ * proper string representation.
+ */
+const char *reg_initiator_name(enum nl80211_reg_initiator initiator);
+
 /*
  * callbacks for asynchronous cfg80211 methods, notification
  * functions and BSS handling helpers
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index de06d5d..5164716 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -758,23 +758,25 @@ const struct ieee80211_reg_rule *freq_reg_info(struct wiphy *wiphy,
 }
 EXPORT_SYMBOL(freq_reg_info);
 
-#ifdef CONFIG_CFG80211_REG_DEBUG
-static const char *reg_initiator_name(enum nl80211_reg_initiator initiator)
+const char *reg_initiator_name(enum nl80211_reg_initiator initiator)
 {
 	switch (initiator) {
 	case NL80211_REGDOM_SET_BY_CORE:
-		return "Set by core";
+		return "core";
 	case NL80211_REGDOM_SET_BY_USER:
-		return "Set by user";
+		return "user";
 	case NL80211_REGDOM_SET_BY_DRIVER:
-		return "Set by driver";
+		return "driver";
 	case NL80211_REGDOM_SET_BY_COUNTRY_IE:
-		return "Set by country IE";
+		return "country IE";
 	default:
 		WARN_ON(1);
-		return "Set by bug";
+		return "bug";
 	}
 }
+EXPORT_SYMBOL(reg_initiator_name);
+
+#ifdef CONFIG_CFG80211_REG_DEBUG
 
 static void chan_reg_rule_print_dbg(struct ieee80211_channel *chan,
 				    const struct ieee80211_reg_rule *reg_rule)
@@ -969,14 +971,17 @@ static bool ignore_reg_update(struct wiphy *wiphy,
 	struct regulatory_request *lr = get_last_request();
 
 	if (!lr) {
-		REG_DBG_PRINT("Ignoring regulatory request %s since last_request is not set\n",
+		REG_DBG_PRINT("Ignoring regulatory request set by %s "
+			      "since last_request is not set\n",
 			      reg_initiator_name(initiator));
 		return true;
 	}
 
 	if (initiator == NL80211_REGDOM_SET_BY_CORE &&
 	    wiphy->flags & WIPHY_FLAG_CUSTOM_REGULATORY) {
-		REG_DBG_PRINT("Ignoring regulatory request %s since the driver uses its own custom regulatory domain\n",
+		REG_DBG_PRINT("Ignoring regulatory request set by %s "
+			      "since the driver uses its own custom "
+			      "regulatory domain\n",
 			      reg_initiator_name(initiator));
 		return true;
 	}
@@ -988,7 +993,9 @@ static bool ignore_reg_update(struct wiphy *wiphy,
 	if (wiphy->flags & WIPHY_FLAG_STRICT_REGULATORY && !wiphy->regd &&
 	    initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE &&
 	    !is_world_regdom(lr->alpha2)) {
-		REG_DBG_PRINT("Ignoring regulatory request %s since the driver requires its own regulatory domain to be set first\n",
+		REG_DBG_PRINT("Ignoring regulatory request set by %s "
+			      "since the driver requires its own regulatory "
+			      "domain to be set first\n",
 			      reg_initiator_name(initiator));
 		return true;
 	}
-- 
1.7.10.4


^ permalink raw reply related

* [PATCH 0/4] ath: add dynamic user regulatory setting support
From: Luis R. Rodriguez @ 2013-09-19 16:18 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, Luis R. Rodriguez

From: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>

This adds dynamic user regulatory domain support for the shared ath
module.

Luis R. Rodriguez (4):
  cfg80211: export reg_initiator_name()
  ath: move common dynamic regulatory domain setting to a helper
  ath: split user and driver reguluatory hint parsing
  ath: add support for proper dynamic regulatory hints

 drivers/net/wireless/ath/Kconfig |   17 +++++
 drivers/net/wireless/ath/regd.c  |  140 +++++++++++++++++++++++++++++++++-----
 include/net/cfg80211.h           |    9 +++
 net/wireless/reg.c               |   27 +++++---
 4 files changed, 165 insertions(+), 28 deletions(-)

-- 
1.7.10.4


^ permalink raw reply

* Re: [ath9k-devel] ath9k WPA2-PEAP MSCHAPV2 Connectivity issue
From: Oleksij Rempel @ 2013-09-19 15:48 UTC (permalink / raw)
  To: James Hogan
  Cc: Sujith Manoharan, ath9k-devel@lists.ath9k.org,
	linux-wireless@vger.kernel.org
In-Reply-To: <523B11E0.4070504@gmail.com>

Am 19.09.2013 17:01, schrieb James Hogan:
> I think I have stumbled on to the real issue. I'm sorry if I have been
> wasting your time at all. Apparently, the network is having problems
> with all wireless-n mode cards.
> The network doesn't like how wireless-n is roaming to the different AP's
> and is registering as me disconnecting when the wireless card tries to
> connect to roam to the other AP.
> It's not just ath9k though, Ra-Link and other cards are having these
> issues as well. Is there a way to disable or to make it possible to
> disable the wireless-n mode of the card and just
> use wireless abg? On a note, I noticed when I passed to the command line
> "iw event -r" that at about the time my card would scan, that is when I
> would stop receiving service even though
> my cards never registered as being disconnected. After the scan, the
> card just continues to reissue scans. Sometimes however, it will try to
> reconnect me to the network.  I was talking to one of the IT employees
> in my class today and he said that they have been having this issue with
> all of the newer higher-end cards.
>
> This is the scan output:
> wlan0 (phy #0): scan started
> wlan0 (phy #0): scan finished: 2412 2417 2422 2427 2432 2437 2442 2447
> 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260 5280 5300 5320 5745
> 5765 5785 5805 5825, ""

At the scan time the card will switch channel and will stop to receive 
packets. Normally it will do lots of jumps. For example, if you 
connected on channel 2437, it will jump like: 2437->2412; 2412->2437; 
2437->2417; ... and so on. Jump back to primer channel is needed to 
check if there is some thing new to receive or send.
In case of dualband hardware, the scan will be extra long. Because there 
is more channels and some hardware need longer to switch between 2G and 5G.
Next problem is bus delay. In case if you use usb adapter a channel 
switch may take terribly long time. Mostly it depends on usb host 
controller on other usb related bugs. Currently I fight with one of this 
problems. In my case, with unoptimised driver, usb wifi adapter need 
1second!!!! to change a channel. It mean 26seconds for scan on one band 
adapter and almost 40 sends on dualband.

May be we should try to do less intensive scan with bigger delays 
between channel switches?

-- 
Regards,
Oleksij

^ permalink raw reply

* Re: RTL8192CU continually reconnecting
From: Larry Finger @ 2013-09-19 14:24 UTC (permalink / raw)
  To: Timothy Rundle; +Cc: Mark Cave-Ayland, linux-wireless
In-Reply-To: <CALa3VXZ0B=CcbJDX5epB7Me9tLcsuiTqjpoSX2RW6dWsPxKxEQ@mail.gmail.com>

On 09/19/2013 05:45 AM, Timothy Rundle wrote:
> @Larry,
>
> The patch/firmware seemed to help a little with the range (increased
> from 12 to about 20), but I still can't connect to the mail router
> about 30 feet away.
>
> @Mike,
>
> Yes my routers are 802.11b/g only.  Been meaning to upgrade, but
> things have been working well so I have been putting off.
>
> Timothy
>
> On Thu, Sep 19, 2013 at 2:48 AM, Mark Cave-Ayland
> <mark.cave-ayland@ilande.co.uk> wrote:
>> On 19/09/13 01:42, Timothy Rundle wrote:
>>
>>> I found that if I setup a old wireless router as a repeater and keep
>>> it within 10-12 feet I have a stable connection.  If I move it back to
>>> 12-15 the connection becomes less reliable.  Anything past 15 feet is
>>> unusable.
>>>
>>> I see there have been lots of conversations on the topic and you are
>>> working on some power management changes.  If you need me to do any
>>> testing let me know.
>>
>>
>> Hi Timothy,
>>
>> Thanks for the information. It's just a hunch at the moment, but is your
>> wireless router 802.11b/g only, i.e. it either doesn't have 802.11n enabled
>> or doesn't support 802.11n at all?

My device connects equally well with 802.11n and 802.11b/g routers.

Mark: 802.11b is restricted to the CCK rates, which are 1, 2, 5.5, and 11 Mbps. 
In 802.11g, rates 6, 12, 18, 24, 36, and 54 Mbps are all OFDM encoded.

Larry



^ permalink raw reply

* Re: Zyxel NWD2705 testing
From: Xose Vazquez Perez @ 2013-09-19 13:21 UTC (permalink / raw)
  To: linux-wireless, users@rt2x00.serialmonkey.com, fheinonen

Felix Heinonen wrote:

> Hello, I have a Zyxel NWD2705 3x3 and according to my syslog based on
> rt3593 (0x0586, 0x3421). It is erroneously listed as rt3573 in the latest
> backports dev release. Is there a way I could help testing the rt3593
> chipset?

RT3573 and RT3593 devices are identified as 3593 because they use
the same chip.
But RT3573 brings a USB interface. And RT3593 is PCIe, still unsupported
by rt2x00.

^ permalink raw reply

* Re: RTL8192CU continually reconnecting
From: Timothy Rundle @ 2013-09-19 10:45 UTC (permalink / raw)
  To: Mark Cave-Ayland; +Cc: Larry Finger, linux-wireless
In-Reply-To: <523A9E4A.5060309@ilande.co.uk>

@Larry,

The patch/firmware seemed to help a little with the range (increased
from 12 to about 20), but I still can't connect to the mail router
about 30 feet away.

@Mike,

Yes my routers are 802.11b/g only.  Been meaning to upgrade, but
things have been working well so I have been putting off.

Timothy

On Thu, Sep 19, 2013 at 2:48 AM, Mark Cave-Ayland
<mark.cave-ayland@ilande.co.uk> wrote:
> On 19/09/13 01:42, Timothy Rundle wrote:
>
>> I found that if I setup a old wireless router as a repeater and keep
>> it within 10-12 feet I have a stable connection.  If I move it back to
>> 12-15 the connection becomes less reliable.  Anything past 15 feet is
>> unusable.
>>
>> I see there have been lots of conversations on the topic and you are
>> working on some power management changes.  If you need me to do any
>> testing let me know.
>
>
> Hi Timothy,
>
> Thanks for the information. It's just a hunch at the moment, but is your
> wireless router 802.11b/g only, i.e. it either doesn't have 802.11n enabled
> or doesn't support 802.11n at all?
>
>
> ATB,
>
> Mark.

^ permalink raw reply

* Re: [rt2x00-users] RT3573 wpa_supplicant: "nl80211: Delete station $my_ap" after "SME: Send 20/40 BSS Coexistence to $my_ap"
From: Peter Stuge @ 2013-09-19  9:05 UTC (permalink / raw)
  To: users; +Cc: Xose Vazquez Perez, linux-wireless
In-Reply-To: <20130918154233.31983.qmail@stuge.se>

Peter Stuge wrote:
> I am on linux.git commit d8efd82eece89f8a5790b0febf17522affe9e1f1
> which contains commit f212781, current wireless-next/master HEAD.
..
> Do you suspect that my problem (as described briefly in the email
> subject and with more detail after the part of my email which you
> quoted) is related to the device driver rather than higher-up parts
> of the stack?
..
> > You can also try latest fw(v0.33):
> > http://rt2x00.serialmonkey.com/pipermail/users_rt2x00.serialmonkey.com/attachments/20130111/f8ebe4d3/attachment.bin
> 
> Thanks! Will try this and get back to you.

With the above firmware the problem described briefly in Subject and
in more detail in my original email occurs much more easily, even as
I am actively generating traffic over the interface. It happened
twice while I was composing this very short email.


//Peter

^ permalink raw reply

* [PATCH] ath10k: fix tracing of ath10k_wmi_cmd
From: Michal Kazior @ 2013-09-19  7:44 UTC (permalink / raw)
  To: ath10k; +Cc: linux-wireless, Michal Kazior

One of my recent patches broke tracing. kbuild
test robot reported this issue.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
---
 drivers/net/wireless/ath/ath10k/trace.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath10k/trace.h b/drivers/net/wireless/ath/ath10k/trace.h
index fd53130..90817dd 100644
--- a/drivers/net/wireless/ath/ath10k/trace.h
+++ b/drivers/net/wireless/ath/ath10k/trace.h
@@ -119,7 +119,7 @@ TRACE_EVENT(ath10k_wmi_cmd,
 		__field(unsigned int, id)
 		__field(size_t, buf_len)
 		__dynamic_array(u8, buf, buf_len)
-		__field(int ret)
+		__field(int, ret)
 	),
 
 	TP_fast_assign(
-- 
1.7.9.5


^ permalink raw reply related

* Re: RTL8192CU continually reconnecting
From: Mark Cave-Ayland @ 2013-09-19  6:48 UTC (permalink / raw)
  To: Timothy Rundle; +Cc: Larry Finger, linux-wireless
In-Reply-To: <CALa3VXZ2+7v-0xrWgoPsAjaaybfMUDONZae8bSx4XhAc6h7wUw@mail.gmail.com>

On 19/09/13 01:42, Timothy Rundle wrote:

> I found that if I setup a old wireless router as a repeater and keep
> it within 10-12 feet I have a stable connection.  If I move it back to
> 12-15 the connection becomes less reliable.  Anything past 15 feet is
> unusable.
>
> I see there have been lots of conversations on the topic and you are
> working on some power management changes.  If you need me to do any
> testing let me know.

Hi Timothy,

Thanks for the information. It's just a hunch at the moment, but is your 
wireless router 802.11b/g only, i.e. it either doesn't have 802.11n 
enabled or doesn't support 802.11n at all?


ATB,

Mark.

^ permalink raw reply

* Re: NetworkManager not listing access points
From: Detlev Casanova @ 2013-09-19  5:58 UTC (permalink / raw)
  To: Dan Williams; +Cc: linux-wireless, Johannes Berg, laurent.pinchart
In-Reply-To: <1379564168.13091.6.camel@dcbw.foobar.com>

[-- Attachment #1: Type: text/plain, Size: 1512 bytes --]

Le mercredi 18 septembre 2013 23:16:08 Dan Williams a écrit :
> On Wed, 2013-09-18 at 22:47 +0200, Detlev Casanova wrote:
> > Hello,
> > 
> > After a bisection on the kernel, it seems that a patch is causing 
a
> > problem with NetworkManager:
> > 
> > commit 0172bb75073e11a5aa9d8a953bdaefb8709f00c8 
("cfg80211:
> > use DS or HT operation IEs to determine BSS channel")
> > 
> > The Wifi access points are not listed in the KDE plasma widget 
and it
> > won't even connect to the saved ones even if they are in range.
> > 
> > There is a fix though: running "iwlist wlan0 scan" twice as root 
(which
> > properly lists APs in reach) and the second time must be run 
about two
> > seconds after the first time.
> > 
> > Then NetworkManager lists the access points and connects to 
the
> > prefered one if possible (normal behavior).
> > 
> > This also happens with nm-applet in Gnome.
> > 
> > The hardware is: 14e4:4315 (Network controller: Broadcom 
Corporation
> > BCM4312 802.11b/g LP-PHY (rev 01)) on an Intel Core i3 M370 
CPU (64
> > bits) computer.
> > 
> > The abnormal behaviour is not random, it happens every time.
> 
> Can you run wpa_supplicant with debugging output?  The quick 
and dirty
> way is to:
> 
> mv /usr/sbin/wpa_supplicant /
> killall -TERM wpa_supplicant
> /wpa_supplicant -dddtu
> 
> and then wait for the problem to happen, and grab the log output 
for us
> to analyze.
> 
> Dan

Here is the output (attached file for formatting)

[-- Attachment #2: output --]
[-- Type: text/plain, Size: 25412 bytes --]

1379569812.462808: dbus: Register D-Bus object '/fi/w1/wpa_supplicant1'
1379569812.463387: Providing DBus service 'fi.w1.wpa_supplicant1'.
1379569812.463961: Providing DBus service 'fi.epitest.hostap.WPASupplicant'.
1379569812.464204: dbus: fi.w1.wpa_supplicant1.CreateInterface (/fi/w1/wpa_supplicant1)
1379569812.464274: Initializing interface 'wlan0' conf 'N/A' driver 'nl80211,wext' ctrl_interface 'N/A' bridge 'N/A'
1379569812.465509: netlink: Operstate: linkmode=1, operstate=5
1379569812.473709: Own MAC address: 00:16:44:f1:d3:07
1379569812.473746: wpa_driver_nl80211_set_key: ifindex=6 alg=0 addr=0x45ca89 key_idx=0 set_tx=0 seq_len=0 key_len=0
1379569812.473803: wpa_driver_nl80211_set_key: ifindex=6 alg=0 addr=0x45ca89 key_idx=1 set_tx=0 seq_len=0 key_len=0
1379569812.473840: wpa_driver_nl80211_set_key: ifindex=6 alg=0 addr=0x45ca89 key_idx=2 set_tx=0 seq_len=0 key_len=0
1379569812.473872: wpa_driver_nl80211_set_key: ifindex=6 alg=0 addr=0x45ca89 key_idx=3 set_tx=0 seq_len=0 key_len=0
1379569812.473889: RSN: flushing PMKID list in the driver
1379569812.473894: State: DISCONNECTED -> INACTIVE
1379569812.477830: EAPOL: SUPP_PAE entering state DISCONNECTED
1379569812.477840: EAPOL: Supplicant port status: Unauthorized
1379569812.477876: EAPOL: KEY_RX entering state NO_KEY_RECEIVE
1379569812.477881: EAPOL: SUPP_BE entering state INITIALIZE
1379569812.477884: EAP: EAP entering state DISABLED
1379569812.477887: EAPOL: Supplicant port status: Unauthorized
1379569812.477903: EAPOL: Supplicant port status: Unauthorized
1379569812.477929: dbus: Register interface object '/fi/w1/wpa_supplicant1/Interfaces/1'
1379569812.478202: Added interface wlan0
1379569812.478284: dbus: org.freedesktop.DBus.Properties.GetAll (/fi/w1/wpa_supplicant1)
1379569812.479406: dbus: org.freedesktop.DBus.Properties.GetAll (/fi/w1/wpa_supplicant1/Interfaces/1)
1379569812.479828: dbus: fi.w1.wpa_supplicant1.Interface.NetworkReply (/fi/w1/wpa_supplicant1/Interfaces/1)
1379569812.479848: no method handler for fi.w1.wpa_supplicant1.Interface.NetworkReply on /fi/w1/wpa_supplicant1/Interfaces/1
1379569812.479985: dbus: org.freedesktop.DBus.Introspectable.Introspect (/fi/w1/wpa_supplicant1/Interfaces/1)
1379569812.480838: dbus: org.freedesktop.DBus.Properties.GetAll (/fi/w1/wpa_supplicant1/Interfaces/1)
1379569812.482196: dbus: fi.w1.wpa_supplicant1.Interface.Scan (/fi/w1/wpa_supplicant1/Interfaces/1)
1379569812.482692: Scan requested (ret=0) - scan timeout 10 seconds
1379569812.482872: dbus: fi.w1.wpa_supplicant1.Interface.Scan (/fi/w1/wpa_supplicant1/Interfaces/1)
1379569812.482915: nl80211: Scan trigger failed: ret=-16 (Device or resource busy)
1379569812.483555: nl80211: Event message available
1379569812.483581: nl80211: Scan trigger
1379569813.478983: EAPOL: disable timer tick
1379569813.479019: EAPOL: Supplicant port status: Unauthorized
1379569814.163044: nl80211: Event message available
1379569814.163106: nl80211: New scan results available
1379569814.163159: Received scan results (0 BSSes)
1379569814.163173: BSS: Start scan result update 1
1379569814.163178: New scan results available
1379569814.163450: No suitable network found
1379569814.163457: State: INACTIVE -> INACTIVE
1379569814.163471: RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
1379569814.163480: RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added
1379569835.357239: dbus: fi.w1.wpa_supplicant1.Interface.Scan (/fi/w1/wpa_supplicant1/Interfaces/1)
1379569835.357744: Scan requested (ret=0) - scan timeout 30 seconds
1379569835.357880: nl80211: Event message available
1379569835.357914: nl80211: Scan trigger
1379569837.039966: nl80211: Event message available
1379569837.040031: nl80211: New scan results available
1379569837.040140: Received scan results (0 BSSes)
1379569837.040149: BSS: Start scan result update 2
1379569837.040154: New scan results available
1379569837.040186: No suitable network found
1379569837.040193: State: INACTIVE -> INACTIVE
1379569837.040409: RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
1379569837.040426: RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added
1379569837.045232: dbus: flush_object_timeout_handler: Timeout - sending changed properties of object /fi/w1/wpa_supplicant1/Interfaces/1
1379569868.358662: dbus: fi.w1.wpa_supplicant1.Interface.Scan (/fi/w1/wpa_supplicant1/Interfaces/1)
1379569868.359106: Scan requested (ret=0) - scan timeout 30 seconds
1379569868.359206: nl80211: Event message available
1379569868.359224: nl80211: Scan trigger
1379569870.038738: nl80211: Event message available
1379569870.038808: nl80211: New scan results available
1379569870.038915: Received scan results (0 BSSes)
1379569870.038925: BSS: Start scan result update 3
1379569870.038928: New scan results available
1379569870.038947: No suitable network found
1379569870.038953: State: INACTIVE -> INACTIVE
1379569870.038964: RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
1379569870.038969: RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added
1379569870.044029: dbus: flush_object_timeout_handler: Timeout - sending changed properties of object /fi/w1/wpa_supplicant1/Interfaces/1
1379569883.691230: nl80211: Event message available
1379569883.691292: nl80211: Scan trigger
1379569884.810881: nl80211: Event message available
1379569884.810949: nl80211: New scan results available
1379569884.810989: Received scan results (0 BSSes)
1379569884.810996: BSS: Start scan result update 4
1379569884.811000: New scan results available
1379569884.811064: No suitable network found
1379569884.811070: State: INACTIVE -> INACTIVE
1379569884.811381: RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
1379569884.811393: RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added
1379569889.035023: nl80211: Event message available
1379569889.035086: nl80211: Scan trigger
1379569890.153956: nl80211: Event message available
1379569890.154007: nl80211: New scan results available
1379569890.154073: Received scan results (2 BSSes)
1379569890.154082: BSS: Start scan result update 5
1379569890.154087: BSS: Add new id 0 BSSID 78:54:2e:a6:e3:80 SSID 'Maison'
1379569890.154096: dbus: Register BSS object '/fi/w1/wpa_supplicant1/Interfaces/1/BSSs/0'
1379569890.154310: BSS: Add new id 1 BSSID 9c:d3:6d:98:2a:7c SSID 'VOO-264889'
1379569890.154317: dbus: Register BSS object '/fi/w1/wpa_supplicant1/Interfaces/1/BSSs/1'
1379569890.154450: New scan results available
1379569890.154477: No suitable network found
1379569890.154483: State: INACTIVE -> INACTIVE
1379569890.154498: RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
1379569890.154505: RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added
1379569890.159375: dbus: flush_object_timeout_handler: Timeout - sending changed properties of object /fi/w1/wpa_supplicant1/Interfaces/1
1379569890.358936: dbus: org.freedesktop.DBus.Properties.Set (/fi/w1/wpa_supplicant1/Interfaces/1)
1379569890.360391: dbus: fi.w1.wpa_supplicant1.Interface.AddNetwork (/fi/w1/wpa_supplicant1/Interfaces/1)
1379569890.360437: dbus: Register network object '/fi/w1/wpa_supplicant1/Interfaces/1/Networks/0'
1379569890.360557: scan_ssid=1 (0x1)
1379569890.360569: ssid - hexdump_ascii(len=6):
     4d 61 69 73 6f 6e                                 Maison          
1379569890.360584: key_mgmt: 0x2
1379569890.360594: PSK (ASCII passphrase) - hexdump_ascii(len=10): [REMOVED]
1379569890.372592: PSK (from passphrase) - hexdump(len=32): [REMOVED]
1379569890.373053: dbus: fi.w1.wpa_supplicant1.Interface.SelectNetwork (/fi/w1/wpa_supplicant1/Interfaces/1)
1379569890.373104: Setting scan request: 0 sec 0 usec
1379569890.373198: State: INACTIVE -> SCANNING
1379569890.373240: Scan SSID - hexdump_ascii(len=6):
     4d 61 69 73 6f 6e                                 Maison          
1379569890.373264: Starting AP scan for wildcard SSID
1379569890.373306: nl80211: Scan SSID - hexdump_ascii(len=6):
     4d 61 69 73 6f 6e                                 Maison          
1379569890.373340: nl80211: Scan SSID - hexdump_ascii(len=0): [NULL]
1379569890.374211: Scan requested (ret=0) - scan timeout 30 seconds
1379569890.374231: nl80211: Event message available
1379569890.374252: nl80211: Scan trigger
1379569890.378304: dbus: flush_object_timeout_handler: Timeout - sending changed properties of object /fi/w1/wpa_supplicant1/Interfaces/1
1379569891.493950: nl80211: Event message available
1379569891.494003: nl80211: New scan results available
1379569891.494124: Received scan results (2 BSSes)
1379569891.494133: BSS: Start scan result update 6
1379569891.494150: New scan results available
1379569891.494170: Selecting BSS from priority group 0
1379569891.494173: Try to find WPA-enabled AP
1379569891.494176: 0: 78:54:2e:a6:e3:80 ssid='Maison' wpa_ie_len=26 rsn_ie_len=24 caps=0x431
1379569891.494182:    selected based on RSN IE
1379569891.494184:    selected WPA AP 78:54:2e:a6:e3:80 ssid='Maison'
1379569891.494190: Automatic auth_alg selection: 0x1
1379569891.494195: RSN: using IEEE 802.11i/D9.0
1379569891.494198: WPA: Selected cipher suites: group 8 pairwise 24 key_mgmt 2 proto 2
1379569891.494201: WPA: set AP WPA IE - hexdump(len=28): dd 1a 00 50 f2 01 01 00 00 50 f2 02 02 00 00 50 f2 02 00 50 f2 04 01 00 00 50 f2 02
1379569891.494209: WPA: set AP RSN IE - hexdump(len=26): 30 18 01 00 00 0f ac 02 02 00 00 0f ac 02 00 0f ac 04 01 00 00 0f ac 02 00 00
1379569891.494216: WPA: using GTK TKIP
1379569891.494218: WPA: using PTK CCMP
1379569891.494220: WPA: using KEY_MGMT WPA-PSK
1379569891.494223: WPA: Set own WPA IE default - hexdump(len=22): 30 14 01 00 00 0f ac 02 01 00 00 0f ac 04 01 00 00 0f ac 02 00 00
1379569891.494230: Cancelling scan request
1379569891.494233: Trying to authenticate with 78:54:2e:a6:e3:80 (SSID='Maison' freq=2447 MHz)
1379569891.494236: No keys have been configured - skip key clearing
1379569891.494239: State: SCANNING -> AUTHENTICATING
1379569891.494259: EAPOL: External notification - EAP success=0
1379569891.494264: EAPOL: Supplicant port status: Unauthorized
1379569891.494309: EAPOL: External notification - EAP fail=0
1379569891.494312: EAPOL: Supplicant port status: Unauthorized
1379569891.494327: EAPOL: External notification - portControl=Auto
1379569891.494330: EAPOL: Supplicant port status: Unauthorized
1379569891.494353: nl80211: Authenticate (ifindex=6)
1379569891.494357:   * bssid=78:54:2e:a6:e3:80
1379569891.494360:   * freq=2447
1379569891.494362:   * SSID - hexdump_ascii(len=6):
     4d 61 69 73 6f 6e                                 Maison          
1379569891.494368:   * IEs - hexdump(len=0): [NULL]
1379569891.494370:   * Auth Type 0
1379569891.503619: nl80211: Authentication request send successfully
1379569891.503677: dbus: flush_object_timeout_handler: Timeout - sending changed properties of object /fi/w1/wpa_supplicant1/Interfaces/1
1379569891.503763: nl80211: Event message available
1379569891.503778: nl80211: Ignored unknown event (cmd=19)
1379569891.503786: RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
1379569891.503792: RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added
1379569891.503800: dbus: flush_object_timeout_handler: Timeout - sending changed properties of object /fi/w1/wpa_supplicant1/Interfaces/1/BSSs/0
1379569891.503829: dbus: flush_object_timeout_handler: Timeout - sending changed properties of object /fi/w1/wpa_supplicant1/Interfaces/1/BSSs/1
1379569891.505465: nl80211: Event message available
1379569891.505482: nl80211: MLME event 37
1379569891.505485: nl80211: MLME event frame - hexdump(len=30): b0 00 3a 01 00 16 44 f1 d3 07 78 54 2e a6 e3 80 78 54 2e a6 e3 80 50 a1 00 00 02 00 00 00
1379569891.505494: SME: Authentication response: peer=78:54:2e:a6:e3:80 auth_type=0 status_code=0
1379569891.505497: SME: Authentication response IEs - hexdump(len=0): [NULL]
1379569891.505502: Trying to associate with 78:54:2e:a6:e3:80 (SSID='Maison' freq=2447 MHz)
1379569891.505505: State: AUTHENTICATING -> ASSOCIATING
1379569891.505507: wpa_driver_nl80211_set_operstate: operstate 0->0 (DORMANT)
1379569891.505511: netlink: Operstate: linkmode=-1, operstate=5
1379569891.505548: WPA: set own WPA/RSN IE - hexdump(len=22): 30 14 01 00 00 0f ac 02 01 00 00 0f ac 04 01 00 00 0f ac 02 00 00
1379569891.505561: nl80211: Associate (ifindex=6)
1379569891.505567:   * bssid=78:54:2e:a6:e3:80
1379569891.505571:   * freq=2447
1379569891.505574:   * SSID - hexdump_ascii(len=6):
     4d 61 69 73 6f 6e                                 Maison          
1379569891.505583:   * IEs - hexdump(len=22): 30 14 01 00 00 0f ac 02 01 00 00 0f ac 04 01 00 00 0f ac 02 00 00
1379569891.505611: nl80211: Association request send successfully
1379569891.510618: dbus: flush_object_timeout_handler: Timeout - sending changed properties of object /fi/w1/wpa_supplicant1/Interfaces/1
1379569891.512395: RX EAPOL from 78:54:2e:a6:e3:80
1379569891.512418: RX EAPOL - hexdump(len=121): 01 03 00 75 02 00 8a 00 10 00 00 00 00 00 00 00 01 38 95 71 ca a5 53 62 64 60 94 a9 0a 02 fe 5b 0e 0e c5 26 3f 76 43 50 d8 90 d4 06 b4 df fa d1 a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 dd 14 00 0f ac 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1379569891.512515: Not associated - Delay processing of received EAPOL frame
1379569891.512541: RTM_NEWLINK: operstate=0 ifi_flags=0x11003 ([UP][LOWER_UP])
1379569891.512546: RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added
1379569891.512684: nl80211: Event message available
1379569891.512913: nl80211: MLME event 38
1379569891.512918: nl80211: MLME event frame - hexdump(len=106): 10 00 3a 01 00 16 44 f1 d3 07 78 54 2e a6 e3 80 78 54 2e a6 e3 80 60 a1 31 04 00 00 03 c0 01 08 82 84 8b 96 0c 12 18 24 32 04 30 48 60 6c dd 18 00 50 f2 02 01 01 80 00 03 a4 00 00 27 a4 00 00 42 43 5e 00 62 32 2f 00 dd 18 00 50 f2 04 10 4a 00 01 10 10 3b 00 01 03 10 49 00 06 00 37 2a 00 01 20 dd 06 00 e0 4c 02 01 60
1379569891.512949: Association info event
1379569891.512952: resp_ies - hexdump(len=76): 01 08 82 84 8b 96 0c 12 18 24 32 04 30 48 60 6c dd 18 00 50 f2 02 01 01 80 00 03 a4 00 00 27 a4 00 00 42 43 5e 00 62 32 2f 00 dd 18 00 50 f2 04 10 4a 00 01 10 10 3b 00 01 03 10 49 00 06 00 37 2a 00 01 20 dd 06 00 e0 4c 02 01 60
1379569891.512986: freq=2447 MHz
1379569891.512998: State: ASSOCIATING -> ASSOCIATED
1379569891.513008: wpa_driver_nl80211_set_operstate: operstate 0->0 (DORMANT)
1379569891.513018: netlink: Operstate: linkmode=-1, operstate=5
1379569891.513137: Associated to a new BSS: BSSID=78:54:2e:a6:e3:80
1379569891.513159: No keys have been configured - skip key clearing
1379569891.513173: Associated with 78:54:2e:a6:e3:80
1379569891.513181: WPA: Association event - clear replay counter
1379569891.513198: WPA: Clear old PTK
1379569891.513207: EAPOL: External notification - portEnabled=0
1379569891.513215: EAPOL: Supplicant port status: Unauthorized
1379569891.513309: EAPOL: External notification - portValid=0
1379569891.513323: EAPOL: Supplicant port status: Unauthorized
1379569891.513381: EAPOL: External notification - EAP success=0
1379569891.513394: EAPOL: Supplicant port status: Unauthorized
1379569891.513437: EAPOL: External notification - portEnabled=1
1379569891.513445: EAPOL: SUPP_PAE entering state CONNECTING
1379569891.513450: EAPOL: enable timer tick
1379569891.513456: EAPOL: SUPP_BE entering state IDLE
1379569891.513464: Setting authentication timeout: 10 sec 0 usec
1379569891.513471: Cancelling scan request
1379569891.513477: Process pending EAPOL frame that was received just before association notification
1379569891.513482: RX EAPOL from 78:54:2e:a6:e3:80
1379569891.513488: RX EAPOL - hexdump(len=121): 01 03 00 75 02 00 8a 00 10 00 00 00 00 00 00 00 01 38 95 71 ca a5 53 62 64 60 94 a9 0a 02 fe 5b 0e 0e c5 26 3f 76 43 50 d8 90 d4 06 b4 df fa d1 a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 dd 14 00 0f ac 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1379569891.513543: Setting authentication timeout: 10 sec 0 usec
1379569891.513551: IEEE 802.1X RX: version=1 type=3 length=117
1379569891.513557:   EAPOL-Key type=2
1379569891.513562:   key_info 0x8a (ver=2 keyidx=0 rsvd=0 Pairwise Ack)
1379569891.513569:   key_length=16 key_data_length=22
1379569891.513575:   replay_counter - hexdump(len=8): 00 00 00 00 00 00 00 01
1379569891.513583:   key_nonce - hexdump(len=32): 38 95 71 ca a5 53 62 64 60 94 a9 0a 02 fe 5b 0e 0e c5 26 3f 76 43 50 d8 90 d4 06 b4 df fa d1 a0
1379569891.513600:   key_iv - hexdump(len=16): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1379569891.513611:   key_rsc - hexdump(len=8): 00 00 00 00 00 00 00 00
1379569891.513620:   key_id (reserved) - hexdump(len=8): 00 00 00 00 00 00 00 00
1379569891.513628:   key_mic - hexdump(len=16): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1379569891.513687: WPA: RX EAPOL-Key - hexdump(len=121): 01 03 00 75 02 00 8a 00 10 00 00 00 00 00 00 00 01 38 95 71 ca a5 53 62 64 60 94 a9 0a 02 fe 5b 0e 0e c5 26 3f 76 43 50 d8 90 d4 06 b4 df fa d1 a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 dd 14 00 0f ac 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1379569891.513763: State: ASSOCIATED -> 4WAY_HANDSHAKE
1379569891.513818: WPA: RX message 1 of 4-Way Handshake from 78:54:2e:a6:e3:80 (ver=2)
1379569891.513824: RSN: msg 1/4 key data - hexdump(len=22): dd 14 00 0f ac 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1379569891.513834: WPA: PMKID in EAPOL-Key - hexdump(len=22): dd 14 00 0f ac 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1379569891.513844: RSN: PMKID from Authenticator - hexdump(len=16): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1379569891.513852: RSN: no matching PMKID found
1379569891.514277: WPA: Renewed SNonce - hexdump(len=32): 9b 1d 73 09 5a c7 3a 2c b3 91 4d 52 d1 02 08 4b d0 ad da 74 b0 0c 76 f6 3c 1f dc b2 7b 50 29 c1
1379569891.514303: WPA: PTK derivation - A1=00:16:44:f1:d3:07 A2=78:54:2e:a6:e3:80
1379569891.514307: WPA: PMK - hexdump(len=32): [REMOVED]
1379569891.514309: WPA: PTK - hexdump(len=48): [REMOVED]
1379569891.514313: WPA: WPA IE for msg 2/4 - hexdump(len=22): 30 14 01 00 00 0f ac 02 01 00 00 0f ac 04 01 00 00 0f ac 02 00 00
1379569891.514321: WPA: Sending EAPOL-Key 2/4
1379569891.514326: WPA: TX EAPOL-Key - hexdump(len=121): 01 03 00 75 02 01 0a 00 00 00 00 00 00 00 00 00 01 9b 1d 73 09 5a c7 3a 2c b3 91 4d 52 d1 02 08 4b d0 ad da 74 b0 0c 76 f6 3c 1f dc b2 7b 50 29 c1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b2 27 2b b9 d1 57 b8 ca 94 d0 00 47 ad b5 3d 08 00 16 30 14 01 00 00 0f ac 02 01 00 00 0f ac 04 01 00 00 0f ac 02 00 00
1379569891.514373: nl80211: Event message available
1379569891.514577: nl80211: Ignore connect event (cmd=46) when using userspace SME
1379569891.514583: RTM_NEWLINK: operstate=0 ifi_flags=0x11003 ([UP][LOWER_UP])
1379569891.514587: RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added
1379569891.514591: RTM_NEWLINK: operstate=0 ifi_flags=0x11003 ([UP][LOWER_UP])
1379569891.514593: RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added
1379569891.518190: dbus: flush_object_timeout_handler: Timeout - sending changed properties of object /fi/w1/wpa_supplicant1/Interfaces/1
1379569891.518547: RX EAPOL from 78:54:2e:a6:e3:80
1379569891.518568: RX EAPOL - hexdump(len=179): 01 03 00 af 02 13 ca 00 10 00 00 00 00 00 00 00 02 38 95 71 ca a5 53 62 64 60 94 a9 0a 02 fe 5b 0e 0e c5 26 3f 76 43 50 d8 90 d4 06 b4 df fa d1 a0 38 95 71 ca a5 53 62 64 60 94 a9 0a 02 fe 5b 0e 13 62 07 00 00 00 00 00 00 00 00 00 00 00 00 00 b8 d4 c6 fa 60 3e c7 57 bb 19 33 00 4e 6b 1a 9d 00 50 9d 0f 44 b0 9e 21 3b f3 3f 17 32 3d 92 45 cd 84 b3 56 07 af d1 81 44 22 8e d4 1d fc 16 cb a3 a3 0b 24 7c 04 95 f7 b7 c4 54 0e 56 6a 31 d6 61 c3 2d 56 84 04 a8 99 78 07 22 0e 4a 61 7f a1 6b 3d 19 c8 7d 22 de 5d 96 e9 93 be 90 ce 66 9c d6 02
1379569891.518677: IEEE 802.1X RX: version=1 type=3 length=175
1379569891.518682:   EAPOL-Key type=2
1379569891.518685:   key_info 0x13ca (ver=2 keyidx=0 rsvd=0 Pairwise Install Ack MIC Secure Encr)
1379569891.518690:   key_length=16 key_data_length=80
1379569891.518693:   replay_counter - hexdump(len=8): 00 00 00 00 00 00 00 02
1379569891.518698:   key_nonce - hexdump(len=32): 38 95 71 ca a5 53 62 64 60 94 a9 0a 02 fe 5b 0e 0e c5 26 3f 76 43 50 d8 90 d4 06 b4 df fa d1 a0
1379569891.518705:   key_iv - hexdump(len=16): 38 95 71 ca a5 53 62 64 60 94 a9 0a 02 fe 5b 0e
1379569891.518709:   key_rsc - hexdump(len=8): 13 62 07 00 00 00 00 00
1379569891.518712:   key_id (reserved) - hexdump(len=8): 00 00 00 00 00 00 00 00
1379569891.518715:   key_mic - hexdump(len=16): b8 d4 c6 fa 60 3e c7 57 bb 19 33 00 4e 6b 1a 9d
1379569891.518721: WPA: RX EAPOL-Key - hexdump(len=179): 01 03 00 af 02 13 ca 00 10 00 00 00 00 00 00 00 02 38 95 71 ca a5 53 62 64 60 94 a9 0a 02 fe 5b 0e 0e c5 26 3f 76 43 50 d8 90 d4 06 b4 df fa d1 a0 38 95 71 ca a5 53 62 64 60 94 a9 0a 02 fe 5b 0e 13 62 07 00 00 00 00 00 00 00 00 00 00 00 00 00 b8 d4 c6 fa 60 3e c7 57 bb 19 33 00 4e 6b 1a 9d 00 50 9d 0f 44 b0 9e 21 3b f3 3f 17 32 3d 92 45 cd 84 b3 56 07 af d1 81 44 22 8e d4 1d fc 16 cb a3 a3 0b 24 7c 04 95 f7 b7 c4 54 0e 56 6a 31 d6 61 c3 2d 56 84 04 a8 99 78 07 22 0e 4a 61 7f a1 6b 3d 19 c8 7d 22 de 5d 96 e9 93 be 90 ce 66 9c d6 02
1379569891.518768: RSN: encrypted key data - hexdump(len=80): 9d 0f 44 b0 9e 21 3b f3 3f 17 32 3d 92 45 cd 84 b3 56 07 af d1 81 44 22 8e d4 1d fc 16 cb a3 a3 0b 24 7c 04 95 f7 b7 c4 54 0e 56 6a 31 d6 61 c3 2d 56 84 04 a8 99 78 07 22 0e 4a 61 7f a1 6b 3d 19 c8 7d 22 de 5d 96 e9 93 be 90 ce 66 9c d6 02
1379569891.518825: WPA: decrypted EAPOL-Key key data - hexdump(len=72): [REMOVED]
1379569891.518830: State: 4WAY_HANDSHAKE -> 4WAY_HANDSHAKE
1379569891.518832: WPA: RX message 3 of 4-Way Handshake from 78:54:2e:a6:e3:80 (ver=2)
1379569891.518835: WPA: IE KeyData - hexdump(len=72): 30 18 01 00 00 0f ac 02 02 00 00 0f ac 02 00 0f ac 04 01 00 00 0f ac 02 00 00 dd 26 00 0f ac 01 01 00 e7 67 6b e9 f6 cd 28 01 26 73 14 61 45 d8 db 44 90 79 47 6b 3c df f4 85 55 4a 5e 5b 87 37 69 8b dd 00 00 00 00 00
1379569891.518848: WPA: RSN IE in EAPOL-Key - hexdump(len=26): 30 18 01 00 00 0f ac 02 02 00 00 0f ac 02 00 0f ac 04 01 00 00 0f ac 02 00 00
1379569891.518855: WPA: GTK in EAPOL-Key - hexdump(len=40): [REMOVED]
1379569891.518858: WPA: Sending EAPOL-Key 4/4
1379569891.518863: WPA: TX EAPOL-Key - hexdump(len=99): 01 03 00 5f 02 03 0a 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 da 41 37 9d fa e7 2a 6c 88 9d 37 e1 e5 fd b2 d3 00 00
1379569891.518890: WPA: Installing PTK to the driver.
1379569891.518916: wpa_driver_nl80211_set_key: ifindex=6 alg=3 addr=0xbcec60 key_idx=0 set_tx=1 seq_len=6 key_len=16
1379569891.518924:    addr=78:54:2e:a6:e3:80
1379569891.519171: EAPOL: External notification - portValid=1
1379569891.519180: State: 4WAY_HANDSHAKE -> GROUP_HANDSHAKE
1379569891.519219: RSN: received GTK in pairwise handshake - hexdump(len=34): [REMOVED]
1379569891.519226: WPA: Group Key - hexdump(len=32): [REMOVED]
1379569891.519229: WPA: Installing GTK to the driver (keyidx=1 tx=0 len=32).
1379569891.519233: WPA: RSC - hexdump(len=6): 13 62 07 00 00 00
1379569891.519247: wpa_driver_nl80211_set_key: ifindex=6 alg=2 addr=0x45ca89 key_idx=1 set_tx=0 seq_len=6 key_len=32
1379569891.519272: WPA: Key negotiation completed with 78:54:2e:a6:e3:80 [PTK=CCMP GTK=TKIP]
1379569891.519278: Cancelling authentication timeout
1379569891.519282: State: GROUP_HANDSHAKE -> COMPLETED
1379569891.519287: CTRL-EVENT-CONNECTED - Connection to 78:54:2e:a6:e3:80 completed (auth) [id=0 id_str=]
1379569891.519291: wpa_driver_nl80211_set_operstate: operstate 0->1 (UP)
1379569891.519295: netlink: Operstate: linkmode=-1, operstate=6
1379569891.519355: EAPOL: External notification - portValid=1
1379569891.519361: EAPOL: External notification - EAP success=1
1379569891.519365: EAPOL: SUPP_PAE entering state AUTHENTICATING
1379569891.519368: EAPOL: SUPP_BE entering state SUCCESS
1379569891.519371: EAP: EAP entering state DISABLED
1379569891.519374: EAPOL: SUPP_PAE entering state AUTHENTICATED
1379569891.519377: EAPOL: Supplicant port status: Authorized
1379569891.519406: EAPOL: SUPP_BE entering state IDLE
1379569891.519411: EAPOL authentication completed successfully
1379569891.519421: RTM_NEWLINK: operstate=1 ifi_flags=0x11043 ([UP][RUNNING][LOWER_UP])
1379569891.519427: RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added
1379569891.524282: dbus: flush_object_timeout_handler: Timeout - sending changed properties of object /fi/w1/wpa_supplicant1/Interfaces/1
1379569893.049791: nl80211: Event message available
1379569894.059793: nl80211: Event message available
1379569894.515643: EAPOL: startWhen --> 0
1379569894.515671: EAPOL: disable timer tick
1379569895.059803: nl80211: Event message available
1379569896.049785: nl80211: Event message available
1379569897.059991: nl80211: Event message available
1379569898.059787: nl80211: Event message available
1379569899.059786: nl80211: Event message available
1379569900.049789: nl80211: Event message available
1379569901.059764: nl80211: Event message available
1379569902.053868: nl80211: Event message available

^ permalink raw reply

* Re: NetworkManager not listing access points
From: Dan Williams @ 2013-09-19  4:16 UTC (permalink / raw)
  To: Detlev Casanova; +Cc: linux-wireless, Johannes Berg, laurent.pinchart
In-Reply-To: <31357461.i5mG9q5IfA@naboo>

On Wed, 2013-09-18 at 22:47 +0200, Detlev Casanova wrote:
> Hello,
> 
> After a bisection on the kernel, it seems that a patch is causing a 
> problem with NetworkManager: 
> 
> commit 0172bb75073e11a5aa9d8a953bdaefb8709f00c8 ("cfg80211: 
> use DS or HT operation IEs to determine BSS channel")
> 
> The Wifi access points are not listed in the KDE plasma widget and it 
> won't even connect to the saved ones even if they are in range.
> 
> There is a fix though: running "iwlist wlan0 scan" twice as root (which 
> properly lists APs in reach) and the second time must be run about two 
> seconds after the first time.
> 
> Then NetworkManager lists the access points and connects to the 
> prefered one if possible (normal behavior).
> 
> This also happens with nm-applet in Gnome.
> 
> The hardware is: 14e4:4315 (Network controller: Broadcom Corporation 
> BCM4312 802.11b/g LP-PHY (rev 01)) on an Intel Core i3 M370 CPU (64 
> bits) computer.
> 
> The abnormal behaviour is not random, it happens every time.

Can you run wpa_supplicant with debugging output?  The quick and dirty
way is to:

mv /usr/sbin/wpa_supplicant /
killall -TERM wpa_supplicant
/wpa_supplicant -dddtu

and then wait for the problem to happen, and grab the log output for us
to analyze.

Dan


^ permalink raw reply

* [PATCH] rtlwifi: Align private space in rtl_priv struct
From: Larry Finger @ 2013-09-19  2:21 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, Larry Finger, netdev, Stable

The private array at the end of the rtl_priv struct is not aligned.
On ARM architecture, this causes an alignment trap and is fixed by aligning
that array with __align(sizeof(void *)). That should properly align that
space according to the requirements of all architectures.

Reported-by: Jason Andrews <jasona@cadence.com>
Tested-by: Jason Andrews <jasona@cadence.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Stable <stable@vger.kernel.org>
---
 drivers/net/wireless/rtlwifi/wifi.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/rtlwifi/wifi.h b/drivers/net/wireless/rtlwifi/wifi.h
index cc03e7c..7032587 100644
--- a/drivers/net/wireless/rtlwifi/wifi.h
+++ b/drivers/net/wireless/rtlwifi/wifi.h
@@ -2057,7 +2057,7 @@ struct rtl_priv {
 	   that it points to the data allocated
 	   beyond  this structure like:
 	   rtl_pci_priv or rtl_usb_priv */
-	u8 priv[0];
+	u8 priv[0] __aligned(sizeof(void *));
 };
 
 #define rtl_priv(hw)		(((struct rtl_priv *)(hw)->priv))
-- 
1.8.1.4


^ permalink raw reply related

* Re: RTL8192CU continually reconnecting
From: Timothy Rundle @ 2013-09-19  0:42 UTC (permalink / raw)
  To: Larry Finger; +Cc: Mark Cave-Ayland, linux-wireless
In-Reply-To: <523350DC.5050905@lwfinger.net>

I found that if I setup a old wireless router as a repeater and keep
it within 10-12 feet I have a stable connection.  If I move it back to
12-15 the connection becomes less reliable.  Anything past 15 feet is
unusable.

I see there have been lots of conversations on the topic and you are
working on some power management changes.  If you need me to do any
testing let me know.

Timothy

On Fri, Sep 13, 2013 at 1:52 PM, Larry Finger <Larry.Finger@lwfinger.net> wrote:
> On 09/12/2013 05:24 PM, Timothy Rundle wrote:
>>
>>
>> I finally got some free time to go through all the patches. My results
>> were
>> similar to Mark's, but I do not get the watchdog messages, though I am
>> pretty
>> sure watchdog is disabled on my PC. I did even try installing openSUSE
>> 12.3, but
>> did not have any success.  It didn't even find my wireless network. I
>> manually
>> configured the network via network-manager, but still no luck.
>>
>> Let me know if you need anything else from me.
>
>
> The watchdog in rtl8192cu has nothing to do with any kernel watchdog timers.
> They are totally separate.
>
> Larry
>
>

^ permalink raw reply

* NetworkManager not listing access points
From: Detlev Casanova @ 2013-09-18 20:47 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg, laurent.pinchart

Hello,

After a bisection on the kernel, it seems that a patch is causing a 
problem with NetworkManager: 

commit 0172bb75073e11a5aa9d8a953bdaefb8709f00c8 ("cfg80211: 
use DS or HT operation IEs to determine BSS channel")

The Wifi access points are not listed in the KDE plasma widget and it 
won't even connect to the saved ones even if they are in range.

There is a fix though: running "iwlist wlan0 scan" twice as root (which 
properly lists APs in reach) and the second time must be run about two 
seconds after the first time.

Then NetworkManager lists the access points and connects to the 
prefered one if possible (normal behavior).

This also happens with nm-applet in Gnome.

The hardware is: 14e4:4315 (Network controller: Broadcom Corporation 
BCM4312 802.11b/g LP-PHY (rev 01)) on an Intel Core i3 M370 CPU (64 
bits) computer.

The abnormal behaviour is not random, it happens every time.

Detlev Casanova

^ permalink raw reply

* [PATCH 8/8 V3] rtlwifi: Remove all remaining references to variable 'noise' in rtl_stats struct
From: Larry Finger @ 2013-09-18 19:58 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, Larry Finger, netdev
In-Reply-To: <1379534339-14895-5-git-send-email-Larry.Finger@lwfinger.net>

This completes removal of all places that reference variable 'noise'
in the rtl_stats struct. The definition of the struct is unchanged.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
 drivers/net/wireless/rtlwifi/rtl8188ee/trx.c | 1 -
 drivers/net/wireless/rtlwifi/rtl8192ce/trx.c | 1 -
 drivers/net/wireless/rtlwifi/rtl8192se/trx.c | 1 -
 drivers/net/wireless/rtlwifi/rtl8723ae/trx.c | 1 -
 4 files changed, 4 deletions(-)

Index: wireless-testing-save/drivers/net/wireless/rtlwifi/rtl8188ee/trx.c
===================================================================
--- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/rtl8188ee/trx.c
+++ wireless-testing-save/drivers/net/wireless/rtlwifi/rtl8188ee/trx.c
@@ -477,7 +477,6 @@ bool rtl88ee_rx_query_desc(struct ieee80
 
 	/*rx_status->qual = status->signal; */
 	rx_status->signal = status->recvsignalpower + 10;
-	/*rx_status->noise = -status->noise; */
 	if (status->packet_report_type == TX_REPORT2) {
 		status->macid_valid_entry[0] =
 			 GET_RX_RPT2_DESC_MACID_VALID_1(pdesc);
Index: wireless-testing-save/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
===================================================================
--- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
+++ wireless-testing-save/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
@@ -420,7 +420,6 @@ bool rtl92ce_rx_query_desc(struct ieee80
 
 	/*rx_status->qual = stats->signal; */
 	rx_status->signal = stats->recvsignalpower + 10;
-	/*rx_status->noise = -stats->noise; */
 
 	return true;
 }
Index: wireless-testing-save/drivers/net/wireless/rtlwifi/rtl8192se/trx.c
===================================================================
--- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/rtl8192se/trx.c
+++ wireless-testing-save/drivers/net/wireless/rtlwifi/rtl8192se/trx.c
@@ -330,7 +330,6 @@ bool rtl92se_rx_query_desc(struct ieee80
 
 	/*rx_status->qual = stats->signal; */
 	rx_status->signal = stats->rssi + 10;
-	/*rx_status->noise = -stats->noise; */
 
 	return true;
 }
Index: wireless-testing-save/drivers/net/wireless/rtlwifi/rtl8723ae/trx.c
===================================================================
--- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/rtl8723ae/trx.c
+++ wireless-testing-save/drivers/net/wireless/rtlwifi/rtl8723ae/trx.c
@@ -359,7 +359,6 @@ bool rtl8723ae_rx_query_desc(struct ieee
 
 	/*rx_status->qual = status->signal; */
 	rx_status->signal = status->recvsignalpower + 10;
-	/*rx_status->noise = -status->noise; */
 
 	return true;
 }

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox