<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/b44.c, branch linux-2.6.30.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.30.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.30.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2009-04-07T15:31:11Z</updated>
<entry>
<title>dma-mapping: replace all DMA_30BIT_MASK macro with DMA_BIT_MASK(30)</title>
<updated>2009-04-07T15:31:11Z</updated>
<author>
<name>Yang Hongyang</name>
</author>
<published>2009-04-07T02:01:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=28b767967763835d8526f6baedc25a8a86052640'/>
<id>urn:sha1:28b767967763835d8526f6baedc25a8a86052640</id>
<content type='text'>
Replace all DMA_30BIT_MASK macro with DMA_BIT_MASK(30)

Signed-off-by: Yang Hongyang&lt;yanghy@cn.fujitsu.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>b44: Use kernel DMA addresses for the kernel DMA API</title>
<updated>2009-04-07T00:51:29Z</updated>
<author>
<name>Michael Buesch</name>
</author>
<published>2009-04-06T09:52:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=37efa239901493694a48f1d6f59f8de17c2c4509'/>
<id>urn:sha1:37efa239901493694a48f1d6f59f8de17c2c4509</id>
<content type='text'>
We must not use the device DMA addresses for the kernel DMA API, because
device DMA addresses have an additional offset added for the SSB translation.

Use the original dma_addr_t for the sync operation.

Cc: stable@kernel.org
Signed-off-by: Michael Buesch &lt;mb@bu3sch.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>b44: Fix sizes passed to b44_sync_dma_desc_for_{device,cpu}()</title>
<updated>2009-04-04T23:48:17Z</updated>
<author>
<name>Michael Buesch</name>
</author>
<published>2009-04-03T00:01:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5d4d9e8ad6c646c4811bf0049df761dee6affc3d'/>
<id>urn:sha1:5d4d9e8ad6c646c4811bf0049df761dee6affc3d</id>
<content type='text'>
&gt; &gt; ------------[ cut here ]------------
&gt; &gt; WARNING: at lib/dma-debug.c:539 check_sync+0xe9/0x341() (Not tainted)
&gt; &gt; Hardware name: HP Compaq nx6110 (PY501EA#AB9)
&gt; &gt; b44 0000:02:0e.0: DMA-API: device driver tries to sync DMA memory it has not
&gt; &gt; allocated [device address=0x0000000075941040] [size=1566 bytes]
&gt; &gt; Modules linked in: llc bnep l2cap bluetooth autofs4 lm90 hwmon i2c_i801 sunrpc
&gt; &gt; ipv6 cpufreq_ondemand acpi_cpufreq uinput snd_intel8x0m snd_intel8x0
&gt; &gt; snd_ac97_codec snd_seq_dummy ac97_bus snd_seq_oss snd_seq_midi_event snd_seq
&gt; &gt; snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm b44 ssb firewire_ohci
&gt; &gt; snd_timer ipw2200 iTCO_wdt mii firewire_core snd iTCO_vendor_support libipw
&gt; &gt; yenta_socket crc_itu_t lib80211 rsrc_nonstatic soundcore snd_page_alloc joydev
&gt; &gt; pcspkr wmi serio_raw ata_generic pata_acpi i915 drm i2c_algo_bit i2c_core video
&gt; &gt; output [last unloaded: scsi_wait_scan]
&gt; &gt; Pid: 2418, comm: S58ntpd Not tainted 2.6.29-16.fc10.i686.PAE #1
&gt; &gt; Call Trace:
&gt; &gt;  [&lt;c04396d1&gt;] warn_slowpath+0x7c/0xbd
&gt; &gt;  [&lt;c0457fe1&gt;] ? register_lock_class+0x17/0x290
&gt; &gt;  [&lt;c0458d61&gt;] ? mark_lock+0x1e/0x349
&gt; &gt;  [&lt;c0556448&gt;] ? _raw_spin_unlock+0x74/0x78
&gt; &gt;  [&lt;c0458d61&gt;] ? mark_lock+0x1e/0x349
&gt; &gt;  [&lt;c055a060&gt;] ? check_sync+0x37/0x341
&gt; &gt;  [&lt;c055a112&gt;] check_sync+0xe9/0x341
&gt; &gt;  [&lt;c0711245&gt;] ? _spin_unlock_irqrestore+0x45/0x55
&gt; &gt;  [&lt;c04592db&gt;] ? trace_hardirqs_on+0xb/0xd
&gt; &gt;  [&lt;c055a4d1&gt;] debug_dma_sync_single_for_device+0x2f/0x39
&gt; &gt;  [&lt;f828f722&gt;] dma_sync_single_for_device+0x4a/0x59 [b44]
&gt; &gt;  [&lt;f828f76f&gt;] ssb_dma_sync_single_for_device+0x3e/0x48 [b44]
&gt; &gt;  [&lt;f8291d1e&gt;] b44_recycle_rx+0x18c/0x196 [b44]
&gt; &gt;  [&lt;f8291f9f&gt;] b44_poll+0x277/0x3c0 [b44]
&gt; &gt;  [&lt;c0687bb9&gt;] net_rx_action+0xa1/0x1ca
&gt; &gt;  [&lt;c043e30a&gt;] __do_softirq+0x9d/0x154
&gt; &gt;  [&lt;c043e413&gt;] do_softirq+0x52/0x7e
&gt; &gt;  [&lt;c043e56f&gt;] irq_exit+0x49/0x77
&gt; &gt;  [&lt;c040b22e&gt;] do_IRQ+0x97/0xad
&gt; &gt;  [&lt;c0409dac&gt;] common_interrupt+0x2c/0x34

I don't know if this is related, but the following patch seems to fix some DMA
mapping bug. Can somebody comment who does understand the code better than me?

(completely untested)

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2009-03-02T05:35:16Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2009-03-02T05:35:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=aa4abc9bcce0d2a7ec189e897f8f8c58ca04643b'/>
<id>urn:sha1:aa4abc9bcce0d2a7ec189e897f8f8c58ca04643b</id>
<content type='text'>
Conflicts:
	drivers/net/wireless/iwlwifi/iwl-tx.c
	net/8021q/vlan_core.c
	net/core/dev.c
</content>
</entry>
<entry>
<title>b44: Disable device on shutdown</title>
<updated>2009-02-27T06:35:02Z</updated>
<author>
<name>Michael Buesch</name>
</author>
<published>2009-02-27T06:35:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e92aa634a33739478958f4109d6bd35b36d13532'/>
<id>urn:sha1:e92aa634a33739478958f4109d6bd35b36d13532</id>
<content type='text'>
Disable the SSB core on device shutdown.
This has two advantages:
1) A clean device shutdown is always desired here, because we disable
  the device's global crystal in the next statement.
2) This fixes a bug where the device will come up with the enable-bit
  set on the next initialization (without a reboot inbetween).
  This causes breakage on the second initialization due to code that
  checks this bit (ssb_device_is_enabled() checks).

Reported-by: Pantelis Koukousoulas &lt;pktoss@gmail.com&gt;
Signed-off-by: Michael Buesch &lt;mb@bu3sch.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>b44: Unconditionally enable interrupt routing on reset</title>
<updated>2009-02-27T06:33:00Z</updated>
<author>
<name>Michael Buesch</name>
</author>
<published>2009-02-27T06:33:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f8af11af85fecbfa7b95fd79c043b16ae0ee0d55'/>
<id>urn:sha1:f8af11af85fecbfa7b95fd79c043b16ae0ee0d55</id>
<content type='text'>
Unconditionally setup the IRQ routing on chip reset.
It's safe to call ssb_pcicore_dev_irqvecs_enable() unconditionally, because
it has internal checks for redundant calls.

This fixes problems where hardware will not come up properly
due to quirks in the enable-bit hardware.

Reported-by: Pantelis Koukousoulas &lt;pktoss@gmail.com&gt;
Signed-off-by: Michael Buesch &lt;mb@bu3sch.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>netdev: Use __netdev_alloc_skb() instead of __dev_alloc_skb().</title>
<updated>2009-02-10T09:56:45Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2009-02-10T09:56:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9034f77bad1e86c4b43e5f5739eb3b8f4878e947'/>
<id>urn:sha1:9034f77bad1e86c4b43e5f5739eb3b8f4878e947</id>
<content type='text'>
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Remove redundant NAPI functions</title>
<updated>2009-01-21T22:33:50Z</updated>
<author>
<name>Ben Hutchings</name>
</author>
<published>2009-01-20T00:43:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=288379f050284087578b77e04f040b57db3db3f8'/>
<id>urn:sha1:288379f050284087578b77e04f040b57db3db3f8</id>
<content type='text'>
Following the removal of the unused struct net_device * parameter from
the NAPI functions named *netif_rx_* in commit 908a7a1, they are
exactly equivalent to the corresponding *napi_* functions and are
therefore redundant.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Acked-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>b44: GFP_DMA skb should not escape from driver</title>
<updated>2009-01-15T23:29:35Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2009-01-15T23:29:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a58c891a53aca81c78f9cbe0572a301042470e96'/>
<id>urn:sha1:a58c891a53aca81c78f9cbe0572a301042470e96</id>
<content type='text'>
b44 chip has some hardware limitations, that need GFP_DMA bounce
buffers in some situations.

In order to not deplete DMA zone, we should keep allocated GFP_DMA skb
only for driver use. At rx time, we copy such skb to newly allocated
skb, reusing existing copybreak infrastructure.

On machines with low amount of memory, all skb meet the hardware limitation,
so no copy is needed. We detect this situation using a new device flag, set
to one if one GFP_DMA skb was ever allocated by b44_alloc_rx_skb().

Previously allocated skb, even outside from DMA zone will then be recycled,
to have minimal impact on DMA zone use.

Signed-off-by: Eric Dumazet &lt;dada1@cosmosbay.com&gt;
Tested-by: Ionut Leonte &lt;ionut.leonte@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>b44: fix misalignment and wasted space in rx handling</title>
<updated>2009-01-11T08:04:12Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2009-01-09T02:39:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4ca857958c129781b46870ec1d2d13c50aafb8c5'/>
<id>urn:sha1:4ca857958c129781b46870ec1d2d13c50aafb8c5</id>
<content type='text'>
Broadcom 4400 puts a header of configurable size (apparently needs
to be at least 28 bytes) in front of received packets. When handling
this, the previous code accidentally added the offset 30 *twice* for
the software and once for the hardware, thereby cancelling out the
IP alignment effect of the 30 byte padding and wasting an additional
30 bytes of memory per packet.

This patch fixes this problem and improves routing throughput by
about 30% on MIPS, where unaligned access is expensive.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
