<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net, branch v2.6.28.1</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>ath5k: ignore the return value of ath5k_hw_noise_floor_calibration</title>
<updated>2009-01-18T18:44:05+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2008-11-03T10:27:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9e48dd3dd3a746e3daa6835da088d89d1921c6fb'/>
<id>9e48dd3dd3a746e3daa6835da088d89d1921c6fb</id>
<content type='text'>
commit 8b0162a3dc5c30e862b7a73da29e32de3170f5e4 upstream.

Noise floor calibration occasionally fails on Atheros hardware.
This is not fatal and can happen if there's simply too much
noise on the air. Ignoring the calibration error is the right
thing to do here, because when the error is ignored, the hardware
will still work, whereas if the error causes the driver to bail out
of a bigger configuration function and does not configure the tx
queues or the IMR (as is the case in reset.c), the hw no longer
works properly until the next reset.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Cc: Bob Copeland &lt;me@bobcopeland.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 8b0162a3dc5c30e862b7a73da29e32de3170f5e4 upstream.

Noise floor calibration occasionally fails on Atheros hardware.
This is not fatal and can happen if there's simply too much
noise on the air. Ignoring the calibration error is the right
thing to do here, because when the error is ignored, the hardware
will still work, whereas if the error causes the driver to bail out
of a bigger configuration function and does not configure the tx
queues or the IMR (as is the case in reset.c), the hw no longer
works properly until the next reset.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Cc: Bob Copeland &lt;me@bobcopeland.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: enable RXing of beacons on STA/IBSS</title>
<updated>2009-01-18T18:44:04+00:00</updated>
<author>
<name>Luis R. Rodriguez</name>
<email>lrodriguez@atheros.com</email>
</author>
<published>2008-11-03T22:43:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f03b6a5feda314415ba0c1b53b44e57e59fab11f'/>
<id>f03b6a5feda314415ba0c1b53b44e57e59fab11f</id>
<content type='text'>
commit ffb826767bffda61426d964a8fc24a216a14b0bd upstream.

This enables beacons to come through on STA/IBSS.
It should fix sporadic connection issues. Right now
mac80211 expect beacons so give it beacons.

Signed-off-by: Luis R. Rodriguez &lt;lrodriguez@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit ffb826767bffda61426d964a8fc24a216a14b0bd upstream.

This enables beacons to come through on STA/IBSS.
It should fix sporadic connection issues. Right now
mac80211 expect beacons so give it beacons.

Signed-off-by: Luis R. Rodriguez &lt;lrodriguez@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iwlwifi: use GFP_KERNEL to allocate Rx SKB memory</title>
<updated>2009-01-18T18:43:45+00:00</updated>
<author>
<name>Zhu Yi</name>
<email>yi.zhu@intel.com</email>
</author>
<published>2008-12-17T08:52:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=35843973c7b58622abd97f11a8658ab4134698f9'/>
<id>35843973c7b58622abd97f11a8658ab4134698f9</id>
<content type='text'>
commit f1bc4ac61f2c08515afd80c6dc3962aa6d0b138b upstream.

Previously we allocate Rx SKB with GFP_ATOMIC flag. This is because we need
to hold a spinlock to protect the two rx_used and rx_free lists operation
in the rxq.

	spin_lock();
	...
	element = rxq-&gt;rx_used.next;
	element-&gt;skb = alloc_skb(..., GFP_ATOMIC);
	list_del(element);
	list_add_tail(&amp;element-&gt;list, &amp;rxq-&gt;rx_free);
	...
	spin_unlock();

After spliting the rx_used delete and rx_free insert into two operations,
we don't require the skb allocation in an atomic context any more (the
function itself is scheduled in a workqueue).

	spin_lock();
	...
	element = rxq-&gt;rx_used.next;
	list_del(element);
	...
	spin_unlock();
	...
	element-&gt;skb = alloc_skb(..., GFP_KERNEL);
	...
	spin_lock()
	...
	list_add_tail(&amp;element-&gt;list, &amp;rxq-&gt;rx_free);
	...
	spin_unlock();

This patch should fix the "iwlagn: Can not allocate SKB buffers" warning
we see recently.

Signed-off-by: Zhu Yi &lt;yi.zhu@intel.com&gt;
Acked-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit f1bc4ac61f2c08515afd80c6dc3962aa6d0b138b upstream.

Previously we allocate Rx SKB with GFP_ATOMIC flag. This is because we need
to hold a spinlock to protect the two rx_used and rx_free lists operation
in the rxq.

	spin_lock();
	...
	element = rxq-&gt;rx_used.next;
	element-&gt;skb = alloc_skb(..., GFP_ATOMIC);
	list_del(element);
	list_add_tail(&amp;element-&gt;list, &amp;rxq-&gt;rx_free);
	...
	spin_unlock();

After spliting the rx_used delete and rx_free insert into two operations,
we don't require the skb allocation in an atomic context any more (the
function itself is scheduled in a workqueue).

	spin_lock();
	...
	element = rxq-&gt;rx_used.next;
	list_del(element);
	...
	spin_unlock();
	...
	element-&gt;skb = alloc_skb(..., GFP_KERNEL);
	...
	spin_lock()
	...
	list_add_tail(&amp;element-&gt;list, &amp;rxq-&gt;rx_free);
	...
	spin_unlock();

This patch should fix the "iwlagn: Can not allocate SKB buffers" warning
we see recently.

Signed-off-by: Zhu Yi &lt;yi.zhu@intel.com&gt;
Acked-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ppp: fix segfaults introduced by netdev_priv changes</title>
<updated>2008-12-19T03:41:42+00:00</updated>
<author>
<name>James Chapman</name>
<email>jchapman@katalix.com</email>
</author>
<published>2008-12-17T12:02:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=739840d529eb7505d3cbfe9d468bf1440c9a8e27'/>
<id>739840d529eb7505d3cbfe9d468bf1440c9a8e27</id>
<content type='text'>
This patch fixes a segfault in ppp_shutdown_interface() and
ppp_destroy_interface() when a PPP connection is closed. I bisected
the problem to the following commit:

  commit c8019bf3aff653cceb64f66489fc299ee5957b57
  Author: Wang Chen &lt;wangchen@cn.fujitsu.com&gt;
  Date:   Thu Nov 20 04:24:17 2008 -0800

    netdevice ppp: Convert directly reference of netdev-&gt;priv

    1. Use netdev_priv(dev) to replace dev-&gt;priv.
    2. Alloc netdev's private data by alloc_netdev().

    Signed-off-by: Wang Chen &lt;wangchen@cn.fujitsu.com&gt;
    Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

The original ppp_generic code treated the netdev and struct ppp as
independent data structures which were freed separately. In moving the
ppp struct into the netdev, it is now possible for the private data to
be freed before the call to ppp_shutdown_interface(), which is bad.

The kfree(ppp) in ppp_destroy_interface() is also wrong; presumably
ppp hasn't worked since the above commit.

The following patch fixes both problems.

Signed-off-by: James Chapman &lt;jchapman@katalix.com&gt;
Reviewed-by: Wang Chen &lt;wangchen@cn.fujitsu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes a segfault in ppp_shutdown_interface() and
ppp_destroy_interface() when a PPP connection is closed. I bisected
the problem to the following commit:

  commit c8019bf3aff653cceb64f66489fc299ee5957b57
  Author: Wang Chen &lt;wangchen@cn.fujitsu.com&gt;
  Date:   Thu Nov 20 04:24:17 2008 -0800

    netdevice ppp: Convert directly reference of netdev-&gt;priv

    1. Use netdev_priv(dev) to replace dev-&gt;priv.
    2. Alloc netdev's private data by alloc_netdev().

    Signed-off-by: Wang Chen &lt;wangchen@cn.fujitsu.com&gt;
    Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

The original ppp_generic code treated the netdev and struct ppp as
independent data structures which were freed separately. In moving the
ppp struct into the netdev, it is now possible for the private data to
be freed before the call to ppp_shutdown_interface(), which is bad.

The kfree(ppp) in ppp_destroy_interface() is also wrong; presumably
ppp hasn't worked since the above commit.

The following patch fixes both problems.

Signed-off-by: James Chapman &lt;jchapman@katalix.com&gt;
Reviewed-by: Wang Chen &lt;wangchen@cn.fujitsu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bnx2: Fix bug in bnx2_free_rx_mem().</title>
<updated>2008-12-18T03:06:08+00:00</updated>
<author>
<name>Michael Chan</name>
<email>mchan@broadcom.com</email>
</author>
<published>2008-12-18T03:06:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3298a7388c00227e736d1037328788073c80c7b4'/>
<id>3298a7388c00227e736d1037328788073c80c7b4</id>
<content type='text'>
DMA memory for the jumbo rx page rings was freed incorrectly using the
wrong local variable as the array index.

Signed-off-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
DMA memory for the jumbo rx page rings was freed incorrectly using the
wrong local variable as the array index.

Signed-off-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>jme: Fixed a typo</title>
<updated>2008-12-17T08:26:37+00:00</updated>
<author>
<name>cwm97m</name>
<email>cwm97m@cse.nsysu.edu.tw</email>
</author>
<published>2008-12-16T20:28:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2fccd2814f8ebc8f1bd325dc46e11c333fc76ab3'/>
<id>2fccd2814f8ebc8f1bd325dc46e11c333fc76ab3</id>
<content type='text'>
Found a typo.

Signed-off-by: Wei-Min Chen &lt;cwm97m@cse.nsysu.edu.tw&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Found a typo.

Signed-off-by: Wei-Min Chen &lt;cwm97m@cse.nsysu.edu.tw&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: kernel BUG at drivers/net/phy/mdio_bus.c:165!</title>
<updated>2008-12-17T08:24:13+00:00</updated>
<author>
<name>Krzysztof Halasa</name>
<email>khc@pm.waw.pl</email>
</author>
<published>2008-12-17T08:24:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e8e5752dc0a56a01527055b0c37510b1d6b6b861'/>
<id>e8e5752dc0a56a01527055b0c37510b1d6b6b861</id>
<content type='text'>
kernel BUG at drivers/net/phy/mdio_bus.c:165!
Unable to handle kernel NULL pointer dereference at virtual address 00000000

How?

mdiobus_alloc() sets bus-&gt;state = MDIOBUS_ALLOCATED.

mdiobus_register() sets bus-&gt;state = MDIOBUS_REGISTERED but then can
   fail (mdiobus_scan()) returning an error to the caller.

The caller aborts correctly with mdiobus_free() which does:
        if (bus-&gt;state == MDIOBUS_ALLOCATED) {
                kfree(bus);
                return;
        }

        BUG_ON(bus-&gt;state != MDIOBUS_UNREGISTERED);

Signed-off-by: Krzysztof Halasa &lt;khc@pm.waw.pl&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
kernel BUG at drivers/net/phy/mdio_bus.c:165!
Unable to handle kernel NULL pointer dereference at virtual address 00000000

How?

mdiobus_alloc() sets bus-&gt;state = MDIOBUS_ALLOCATED.

mdiobus_register() sets bus-&gt;state = MDIOBUS_REGISTERED but then can
   fail (mdiobus_scan()) returning an error to the caller.

The caller aborts correctly with mdiobus_free() which does:
        if (bus-&gt;state == MDIOBUS_ALLOCATED) {
                kfree(bus);
                return;
        }

        BUG_ON(bus-&gt;state != MDIOBUS_UNREGISTERED);

Signed-off-by: Krzysztof Halasa &lt;khc@pm.waw.pl&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers/net: starfire: Fix napi -&gt;poll() weight handling</title>
<updated>2008-12-16T23:42:20+00:00</updated>
<author>
<name>Jarek Poplawski</name>
<email>jarkao2@gmail.com</email>
</author>
<published>2008-12-16T23:42:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9a3de25544dadab1971847f28f33b1cd0d1770a6'/>
<id>9a3de25544dadab1971847f28f33b1cd0d1770a6</id>
<content type='text'>
starfire napi -&gt;poll() handler can return work == weight after calling
netif_rx_complete() (if there is no more work). It is illegal and this
patch fixes it.

Reported-by: Alexander Huemer &lt;alexander.huemer@sbg.ac.at&gt;
Tested-by: Alexander Huemer &lt;alexander.huemer@sbg.ac.at&gt;
Signed-off-by: Jarek Poplawski &lt;jarkao2@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
starfire napi -&gt;poll() handler can return work == weight after calling
netif_rx_complete() (if there is no more work). It is illegal and this
patch fixes it.

Reported-by: Alexander Huemer &lt;alexander.huemer@sbg.ac.at&gt;
Tested-by: Alexander Huemer &lt;alexander.huemer@sbg.ac.at&gt;
Signed-off-by: Jarek Poplawski &lt;jarkao2@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tlan: Fix pci memory unmapping</title>
<updated>2008-12-16T23:22:41+00:00</updated>
<author>
<name>Sakari Ailus</name>
<email>sakari.ailus@iki.fi</email>
</author>
<published>2008-12-16T23:22:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=bb5f133dbc4f04b6388715d364ae5865455166c2'/>
<id>bb5f133dbc4f04b6388715d364ae5865455166c2</id>
<content type='text'>
Fix pci unmapping problem introduced by commit id
8953f1282793882a5444924f7a273dc72a43d0a3 "tlan: Fix small (&lt; 64 bytes)
datagram transmissions".

Signed-off-by: Sakari Ailus &lt;sakari.ailus@iki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix pci unmapping problem introduced by commit id
8953f1282793882a5444924f7a273dc72a43d0a3 "tlan: Fix small (&lt; 64 bytes)
datagram transmissions".

Signed-off-by: Sakari Ailus &lt;sakari.ailus@iki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>enc28j60: use netif_rx_ni() to deliver RX packets</title>
<updated>2008-12-16T09:48:29+00:00</updated>
<author>
<name>Baruch Siach</name>
<email>baruch@tkos.co.il</email>
</author>
<published>2008-12-15T20:18:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2c413a6434dca02387a263dc4ca8009692421998'/>
<id>2c413a6434dca02387a263dc4ca8009692421998</id>
<content type='text'>
The enc28j60 driver reads incoming packets in the process (workqueue) context,
not in a tasklet or the interrupt context.  Thus, we should use netif_rx_ni()
to deliver those packets to the networking layer, instead of netif_rx(). This
way incoming packets don't wait in the incoming queue for the next IRQ to be
serviced.

Signed-off-by: Baruch Siach &lt;baruch@tkos.co.il&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The enc28j60 driver reads incoming packets in the process (workqueue) context,
not in a tasklet or the interrupt context.  Thus, we should use netif_rx_ni()
to deliver those packets to the networking layer, instead of netif_rx(). This
way incoming packets don't wait in the incoming queue for the next IRQ to be
serviced.

Signed-off-by: Baruch Siach &lt;baruch@tkos.co.il&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
