<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/include/asm-generic/atomic.h, branch v3.0-rc3</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>Merge git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic</title>
<updated>2010-10-22T18:17:06+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-10-22T18:17:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=db08bf0877f3464fb0c2c37dcdd9f9683192ea26'/>
<id>db08bf0877f3464fb0c2c37dcdd9f9683192ea26</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
  asm-generic/io.h: allow people to override individual funcs
  bitops: remove duplicated extern declarations
  bitops: make asm-generic/bitops/find.h more generic
  asm-generic: kdebug.h: Checkpatch cleanup
  asm-generic: fcntl: make exported headers use strict posix types
  asm-generic: cmpxchg does not handle non-long arguments
  asm-generic: make atomic_add_unless a function
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
  asm-generic/io.h: allow people to override individual funcs
  bitops: remove duplicated extern declarations
  bitops: make asm-generic/bitops/find.h more generic
  asm-generic: kdebug.h: Checkpatch cleanup
  asm-generic: fcntl: make exported headers use strict posix types
  asm-generic: cmpxchg does not handle non-long arguments
  asm-generic: make atomic_add_unless a function
</pre>
</div>
</content>
</entry>
<entry>
<title>asm-generic: make atomic_add_unless a function</title>
<updated>2010-10-09T19:36:35+00:00</updated>
<author>
<name>Mathieu Lacage</name>
<email>mathieu.lacage@sophia.inria.fr</email>
</author>
<published>2010-06-27T10:26:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8b9d40691e8f5e7e0c8fb839c2bad29c5e0888ce'/>
<id>8b9d40691e8f5e7e0c8fb839c2bad29c5e0888ce</id>
<content type='text'>
atomic_add_unless is a macro so, bad things happen if the caller defines
a local variable named c, just like like the local variable c defined by
the macro. Thus, convert atomic_add_unless to a function. (bug triggered
by net/ipv4/netfilter/ipt_CLUSTERIP.c: clusterip_config_find_get calls
atomic_inc_not_zero)

Signed-off-by: Mathieu Lacage &lt;mathieu.lacage@inria.fr&gt;
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
atomic_add_unless is a macro so, bad things happen if the caller defines
a local variable named c, just like like the local variable c defined by
the macro. Thus, convert atomic_add_unless to a function. (bug triggered
by net/ipv4/netfilter/ipt_CLUSTERIP.c: clusterip_config_find_get calls
atomic_inc_not_zero)

Signed-off-by: Mathieu Lacage &lt;mathieu.lacage@inria.fr&gt;
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix IRQ flag handling naming</title>
<updated>2010-10-07T13:08:55+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2010-10-07T13:08:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=df9ee29270c11dba7d0fe0b83ce47a4d8e8d2101'/>
<id>df9ee29270c11dba7d0fe0b83ce47a4d8e8d2101</id>
<content type='text'>
Fix the IRQ flag handling naming.  In linux/irqflags.h under one configuration,
it maps:

	local_irq_enable() -&gt; raw_local_irq_enable()
	local_irq_disable() -&gt; raw_local_irq_disable()
	local_irq_save() -&gt; raw_local_irq_save()
	...

and under the other configuration, it maps:

	raw_local_irq_enable() -&gt; local_irq_enable()
	raw_local_irq_disable() -&gt; local_irq_disable()
	raw_local_irq_save() -&gt; local_irq_save()
	...

This is quite confusing.  There should be one set of names expected of the
arch, and this should be wrapped to give another set of names that are expected
by users of this facility.

Change this to have the arch provide:

	flags = arch_local_save_flags()
	flags = arch_local_irq_save()
	arch_local_irq_restore(flags)
	arch_local_irq_disable()
	arch_local_irq_enable()
	arch_irqs_disabled_flags(flags)
	arch_irqs_disabled()
	arch_safe_halt()

Then linux/irqflags.h wraps these to provide:

	raw_local_save_flags(flags)
	raw_local_irq_save(flags)
	raw_local_irq_restore(flags)
	raw_local_irq_disable()
	raw_local_irq_enable()
	raw_irqs_disabled_flags(flags)
	raw_irqs_disabled()
	raw_safe_halt()

with type checking on the flags 'arguments', and then wraps those to provide:

	local_save_flags(flags)
	local_irq_save(flags)
	local_irq_restore(flags)
	local_irq_disable()
	local_irq_enable()
	irqs_disabled_flags(flags)
	irqs_disabled()
	safe_halt()

with tracing included if enabled.

The arch functions can now all be inline functions rather than some of them
having to be macros.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt; [X86, FRV, MN10300]
Signed-off-by: Chris Metcalf &lt;cmetcalf@tilera.com&gt; [Tile]
Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt; [Microblaze]
Tested-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt; [ARM]
Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: Haavard Skinnemoen &lt;haavard.skinnemoen@atmel.com&gt; [AVR]
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt; [IA-64]
Acked-by: Hirokazu Takata &lt;takata@linux-m32r.org&gt; [M32R]
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt; [M68K/M68KNOMMU]
Acked-by: Ralf Baechle &lt;ralf@linux-mips.org&gt; [MIPS]
Acked-by: Kyle McMartin &lt;kyle@mcmartin.ca&gt; [PA-RISC]
Acked-by: Paul Mackerras &lt;paulus@samba.org&gt; [PowerPC]
Acked-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt; [S390]
Acked-by: Chen Liqin &lt;liqin.chen@sunplusct.com&gt; [Score]
Acked-by: Matt Fleming &lt;matt@console-pimps.org&gt; [SH]
Acked-by: David S. Miller &lt;davem@davemloft.net&gt; [Sparc]
Acked-by: Chris Zankel &lt;chris@zankel.net&gt; [Xtensa]
Reviewed-by: Richard Henderson &lt;rth@twiddle.net&gt; [Alpha]
Reviewed-by: Yoshinori Sato &lt;ysato@users.sourceforge.jp&gt; [H8300]
Cc: starvik@axis.com [CRIS]
Cc: jesper.nilsson@axis.com [CRIS]
Cc: linux-cris-kernel@axis.com
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix the IRQ flag handling naming.  In linux/irqflags.h under one configuration,
it maps:

	local_irq_enable() -&gt; raw_local_irq_enable()
	local_irq_disable() -&gt; raw_local_irq_disable()
	local_irq_save() -&gt; raw_local_irq_save()
	...

and under the other configuration, it maps:

	raw_local_irq_enable() -&gt; local_irq_enable()
	raw_local_irq_disable() -&gt; local_irq_disable()
	raw_local_irq_save() -&gt; local_irq_save()
	...

This is quite confusing.  There should be one set of names expected of the
arch, and this should be wrapped to give another set of names that are expected
by users of this facility.

Change this to have the arch provide:

	flags = arch_local_save_flags()
	flags = arch_local_irq_save()
	arch_local_irq_restore(flags)
	arch_local_irq_disable()
	arch_local_irq_enable()
	arch_irqs_disabled_flags(flags)
	arch_irqs_disabled()
	arch_safe_halt()

Then linux/irqflags.h wraps these to provide:

	raw_local_save_flags(flags)
	raw_local_irq_save(flags)
	raw_local_irq_restore(flags)
	raw_local_irq_disable()
	raw_local_irq_enable()
	raw_irqs_disabled_flags(flags)
	raw_irqs_disabled()
	raw_safe_halt()

with type checking on the flags 'arguments', and then wraps those to provide:

	local_save_flags(flags)
	local_irq_save(flags)
	local_irq_restore(flags)
	local_irq_disable()
	local_irq_enable()
	irqs_disabled_flags(flags)
	irqs_disabled()
	safe_halt()

with tracing included if enabled.

The arch functions can now all be inline functions rather than some of them
having to be macros.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt; [X86, FRV, MN10300]
Signed-off-by: Chris Metcalf &lt;cmetcalf@tilera.com&gt; [Tile]
Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt; [Microblaze]
Tested-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt; [ARM]
Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: Haavard Skinnemoen &lt;haavard.skinnemoen@atmel.com&gt; [AVR]
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt; [IA-64]
Acked-by: Hirokazu Takata &lt;takata@linux-m32r.org&gt; [M32R]
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt; [M68K/M68KNOMMU]
Acked-by: Ralf Baechle &lt;ralf@linux-mips.org&gt; [MIPS]
Acked-by: Kyle McMartin &lt;kyle@mcmartin.ca&gt; [PA-RISC]
Acked-by: Paul Mackerras &lt;paulus@samba.org&gt; [PowerPC]
Acked-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt; [S390]
Acked-by: Chen Liqin &lt;liqin.chen@sunplusct.com&gt; [Score]
Acked-by: Matt Fleming &lt;matt@console-pimps.org&gt; [SH]
Acked-by: David S. Miller &lt;davem@davemloft.net&gt; [Sparc]
Acked-by: Chris Zankel &lt;chris@zankel.net&gt; [Xtensa]
Reviewed-by: Richard Henderson &lt;rth@twiddle.net&gt; [Alpha]
Reviewed-by: Yoshinori Sato &lt;ysato@users.sourceforge.jp&gt; [H8300]
Cc: starvik@axis.com [CRIS]
Cc: jesper.nilsson@axis.com [CRIS]
Cc: linux-cris-kernel@axis.com
</pre>
</div>
</content>
</entry>
<entry>
<title>asm-generic: use raw_local_irq_save/restore instead local_irq_save/restore</title>
<updated>2010-08-10T03:44:54+00:00</updated>
<author>
<name>Michal Simek</name>
<email>monstr@monstr.eu</email>
</author>
<published>2010-08-10T00:18:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9e58143dc08123c22c5b9f782b2913bd3a07a03d'/>
<id>9e58143dc08123c22c5b9f782b2913bd3a07a03d</id>
<content type='text'>
The start/stop_critical_timing functions for preemptirqsoff, preemptoff
and irqsoff tracers contain atomic_inc() and atomic_dec() operations.

Atomic operations use local_irq_save/restore macros to ensure atomic
access but they are traced by the same function which is causing recursion
problem.

The reason is when these tracers are turn ON then the
local_irq_save/restore macros are changed in include/linux/irqflags.h to
call trace_hardirqs_on/off which call start/stop_critical_timing.

Microblaze was affected because it uses generic atomic implementation.

Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
Acked-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The start/stop_critical_timing functions for preemptirqsoff, preemptoff
and irqsoff tracers contain atomic_inc() and atomic_dec() operations.

Atomic operations use local_irq_save/restore macros to ensure atomic
access but they are traced by the same function which is causing recursion
problem.

The reason is when these tracers are turn ON then the
local_irq_save/restore macros are changed in include/linux/irqflags.h to
call trace_hardirqs_on/off which call start/stop_critical_timing.

Microblaze was affected because it uses generic atomic implementation.

Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
Acked-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>asm-generic: don't warn that atomic_t is only 24 bit</title>
<updated>2010-05-25T15:07:03+00:00</updated>
<author>
<name>Peter Fritzsche</name>
<email>peter.fritzsche@gmx.de</email>
</author>
<published>2010-05-24T21:33:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=37682177af68478fa83429b735fa16913c2fbb2b'/>
<id>37682177af68478fa83429b735fa16913c2fbb2b</id>
<content type='text'>
32-bit Sparc used to only allow usage of 24-bit of it's atomic_t type.
This was corrected with linux 2.6.3 when Keith M Wesolowski changed the
implementation to use the parisc approach of having an array of spinlocks
to protect the atomic_t.

These warnings were also removed from the sparc implementation when the
new implementation was merged in BKrev:402e4949VThdc6D3iaosSFUgabMfvw, but
the warning still remained in some other places without any 24-bit-only
atomic_t implementation inside the kernel.

We should remove these warnings to allow users to rely on the full 32-bit
range of atomic_t.

Signed-off-by: Peter Fritzsche &lt;peter.fritzsche@gmx.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
32-bit Sparc used to only allow usage of 24-bit of it's atomic_t type.
This was corrected with linux 2.6.3 when Keith M Wesolowski changed the
implementation to use the parisc approach of having an array of spinlocks
to protect the atomic_t.

These warnings were also removed from the sparc implementation when the
new implementation was merged in BKrev:402e4949VThdc6D3iaosSFUgabMfvw, but
the warning still remained in some other places without any 24-bit-only
atomic_t implementation inside the kernel.

We should remove these warnings to allow users to rely on the full 32-bit
range of atomic_t.

Signed-off-by: Peter Fritzsche &lt;peter.fritzsche@gmx.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>atomic_t: Cast to volatile when accessing atomic variables</title>
<updated>2010-05-17T14:57:27+00:00</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2010-05-17T04:33:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f3d46f9d3194e0329216002a8724d4c0957abc79'/>
<id>f3d46f9d3194e0329216002a8724d4c0957abc79</id>
<content type='text'>
In preparation for removing volatile from the atomic_t definition, this
patch adds a volatile cast to all the atomic read functions.

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In preparation for removing volatile from the atomic_t definition, this
patch adds a volatile cast to all the atomic read functions.

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>asm-generic: add generic atomic.h and io.h</title>
<updated>2009-06-11T19:02:49+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2009-05-13T22:56:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3f7e212df82ca0459d44c91d9e019efd1b5f936c'/>
<id>3f7e212df82ca0459d44c91d9e019efd1b5f936c</id>
<content type='text'>
atomic.h and io.h are based on the mn10300 architecture,
which is already pretty generic and can be used by
other architectures that do not have hardware support
for atomic operations or out-of-order I/O access.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
atomic.h and io.h are based on the mn10300 architecture,
which is already pretty generic and can be used by
other architectures that do not have hardware support
for atomic operations or out-of-order I/O access.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>asm-generic: rename atomic.h to atomic-long.h</title>
<updated>2009-06-11T19:02:17+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2009-05-13T22:56:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=72099ed2719fc5829bd79c6ca9d1783ed026eb37'/>
<id>72099ed2719fc5829bd79c6ca9d1783ed026eb37</id>
<content type='text'>
The existing asm-generic/atomic.h only defines the
atomic_long type. This renames it to atomic-long.h
so we have a place to add a truly generic atomic.h
that can be used on all non-SMP systems.

Signed-off-by: Remis Lima Baima &lt;remis.developer@googlemail.com&gt;
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The existing asm-generic/atomic.h only defines the
atomic_long type. This renames it to atomic-long.h
so we have a place to add a truly generic atomic.h
that can be used on all non-SMP systems.

Signed-off-by: Remis Lima Baima &lt;remis.developer@googlemail.com&gt;
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>atomic: fix atomic_long_cmpxchg/xchg for 64 bit architectures</title>
<updated>2009-05-02T22:36:09+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2009-04-30T22:08:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a5fc1abe438b87a9d128beebc377f78e2681a76d'/>
<id>a5fc1abe438b87a9d128beebc377f78e2681a76d</id>
<content type='text'>
On a linux-next allyesconfig build:

kernel/trace/ring_buffer.c:1726:
	warning: passing argument 1 of 'atomic_cmpxchg' from incompatible pointer type
linux-next/arch/s390/include/asm/atomic.h:112:
	note: expected 'struct atomic_t *' but argument is of type 'struct atomic64_t *'

atomic_long_cmpxchg and atomic_long_xchg are incorrectly defined for 64
bit architectures.  They should be mapped to the atomic64_* variants.

Acked-by: Mathieu Desnoyers &lt;mathieu.desnoyers@polymtl.ca&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On a linux-next allyesconfig build:

kernel/trace/ring_buffer.c:1726:
	warning: passing argument 1 of 'atomic_cmpxchg' from incompatible pointer type
linux-next/arch/s390/include/asm/atomic.h:112:
	note: expected 'struct atomic_t *' but argument is of type 'struct atomic64_t *'

atomic_long_cmpxchg and atomic_long_xchg are incorrectly defined for 64
bit architectures.  They should be mapped to the atomic64_* variants.

Acked-by: Mathieu Desnoyers &lt;mathieu.desnoyers@polymtl.ca&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>atomic: fix a typo in atomic_long_xchg()</title>
<updated>2008-12-10T16:01:53+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>dada1@cosmosbay.com</email>
</author>
<published>2008-12-09T21:14:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=aa6f14796630c8b03c11e782484aec2aee05e671'/>
<id>aa6f14796630c8b03c11e782484aec2aee05e671</id>
<content type='text'>
atomic_long_xchg() is not correctly defined for 32bit arches.

Signed-off-by: Eric Dumazet &lt;dada1@cosmosbay.com&gt;
Cc: Mathieu Desnoyers &lt;mathieu.desnoyers@polymtl.ca&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
atomic_long_xchg() is not correctly defined for 32bit arches.

Signed-off-by: Eric Dumazet &lt;dada1@cosmosbay.com&gt;
Cc: Mathieu Desnoyers &lt;mathieu.desnoyers@polymtl.ca&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
