<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/kernel, branch imx-android-r12</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 branch 'imx_2.6.38' into imx_2.6.38_android</title>
<updated>2011-08-05T06:19:31+00:00</updated>
<author>
<name>Xinyu Chen</name>
<email>b03824@freescale.com</email>
</author>
<published>2011-08-05T06:19:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cd9856c350ab43dca3bec25b34e2298a212c8a29'/>
<id>cd9856c350ab43dca3bec25b34e2298a212c8a29</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>futex: Sanitize cmpxchg_futex_value_locked API</title>
<updated>2011-08-03T22:40:50+00:00</updated>
<author>
<name>Michel Lespinasse</name>
<email>walken@google.com</email>
</author>
<published>2011-03-11T02:48:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fe094e6fbfc7745d5240d8672cc7d0be4ebc21ee'/>
<id>fe094e6fbfc7745d5240d8672cc7d0be4ebc21ee</id>
<content type='text'>
The cmpxchg_futex_value_locked API was funny in that it returned either
the original, user-exposed futex value OR an error code such as -EFAULT.
This was confusing at best, and could be a source of livelocks in places
that retry the cmpxchg_futex_value_locked after trying to fix the issue
by running fault_in_user_writeable().

This change makes the cmpxchg_futex_value_locked API more similar to the
get_futex_value_locked one, returning an error code and updating the
original value through a reference argument.

Signed-off-by: Michel Lespinasse &lt;walken@google.com&gt;
Acked-by: Chris Metcalf &lt;cmetcalf@tilera.com&gt;  [tile]
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;  [ia64]
Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Tested-by: Michal Simek &lt;monstr@monstr.eu&gt;  [microblaze]
Acked-by: David Howells &lt;dhowells@redhat.com&gt; [frv]
Cc: Darren Hart &lt;darren@dvhart.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Matt Turner &lt;mattst88@gmail.com&gt;
Cc: Russell King &lt;linux@arm.linux.org.uk&gt;
Cc: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Cc: "James E.J. Bottomley" &lt;jejb@parisc-linux.org&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: "David S. Miller" &lt;davem@davemloft.net&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
LKML-Reference: &lt;20110311024851.GC26122@google.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The cmpxchg_futex_value_locked API was funny in that it returned either
the original, user-exposed futex value OR an error code such as -EFAULT.
This was confusing at best, and could be a source of livelocks in places
that retry the cmpxchg_futex_value_locked after trying to fix the issue
by running fault_in_user_writeable().

This change makes the cmpxchg_futex_value_locked API more similar to the
get_futex_value_locked one, returning an error code and updating the
original value through a reference argument.

Signed-off-by: Michel Lespinasse &lt;walken@google.com&gt;
Acked-by: Chris Metcalf &lt;cmetcalf@tilera.com&gt;  [tile]
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;  [ia64]
Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Tested-by: Michal Simek &lt;monstr@monstr.eu&gt;  [microblaze]
Acked-by: David Howells &lt;dhowells@redhat.com&gt; [frv]
Cc: Darren Hart &lt;darren@dvhart.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Matt Turner &lt;mattst88@gmail.com&gt;
Cc: Russell King &lt;linux@arm.linux.org.uk&gt;
Cc: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Cc: "James E.J. Bottomley" &lt;jejb@parisc-linux.org&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: "David S. Miller" &lt;davem@davemloft.net&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
LKML-Reference: &lt;20110311024851.GC26122@google.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fix build error</title>
<updated>2011-07-27T03:02:57+00:00</updated>
<author>
<name>Xinyu Chen</name>
<email>xinyu.chen@freescale.com</email>
</author>
<published>2011-07-27T03:02:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=59f0065eac34ec8fe4e3efd6e353af5644d2d89e'/>
<id>59f0065eac34ec8fe4e3efd6e353af5644d2d89e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove unused codes</title>
<updated>2011-07-27T03:02:02+00:00</updated>
<author>
<name>Xinyu Chen</name>
<email>xinyu.chen@freescale.com</email>
</author>
<published>2011-07-27T03:02:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cfe731612588f664038829b59e67dc69795cac9a'/>
<id>cfe731612588f664038829b59e67dc69795cac9a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Android: fix android build error.</title>
<updated>2011-07-26T08:27:13+00:00</updated>
<author>
<name>Zhang Jiejing</name>
<email>jiejing.zhang@freescale.com</email>
</author>
<published>2011-07-26T08:27:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5528884c8dd1a801bbd16b91e8c008c125387af6'/>
<id>5528884c8dd1a801bbd16b91e8c008c125387af6</id>
<content type='text'>
Signed-off-by: Zhang Jiejing &lt;jiejing.zhang@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Zhang Jiejing &lt;jiejing.zhang@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge remote branch 'android/android-2.6.38' into imx_2.6.38</title>
<updated>2011-07-26T05:26:08+00:00</updated>
<author>
<name>Zhang Jiejing</name>
<email>jiejing.zhang@freescale.com</email>
</author>
<published>2011-07-26T05:26:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2e4eaa38676a115a943d164eacf7e3557b77fa0f'/>
<id>2e4eaa38676a115a943d164eacf7e3557b77fa0f</id>
<content type='text'>
Conflicts:
	drivers/misc/Kconfig
	drivers/misc/Makefile
	drivers/net/wireless/Makefile
	include/linux/mmc/mmc.h
	kernel/power/main.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	drivers/misc/Kconfig
	drivers/misc/Makefile
	drivers/net/wireless/Makefile
	include/linux/mmc/mmc.h
	kernel/power/main.c
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00133978 PM: add time sensitive debug function to suspend &amp; resume</title>
<updated>2011-04-01T03:33:50+00:00</updated>
<author>
<name>Zhang Jiejing</name>
<email>jiejing.zhang@freescale.com</email>
</author>
<published>2010-11-22T09:14:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8f74d2555c1643591d234d607af60583df4e29a0'/>
<id>8f74d2555c1643591d234d607af60583df4e29a0</id>
<content type='text'>
There was some driver is slow on suspend/resume,
but some embeded system like eReader,Cellphone
are time sensitive,this commit will report the slow
driver on suspend/resume, the default value is 500us(0.5ms)

Also, the threshold can be change by modify
'/sys/power/device_suspend_time_threshold' to change the threshold,
it is in microsecond.

The output is like:

PM: device platform:soc-audio.2 suspend too slow, takes          606.696 msecs
PM: device platform:mxc_sdc_fb.1 suspend too slow, takes         7.708 msecs

the default state of suspend driver is default off,
if you want to debug the suspend time, echo time in
microsecond(u Second) to /sys/powe/device_suspend_time_threshold

eg: I want to know which driver suspend &amp; resume takes
more that 0.5 ms (500 us), you can just :

ehco 500 &gt; /sys/power/device_suspend_time_threshold

Signed-off-by: Zhang Jiejing &lt;jiejing.zhang@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There was some driver is slow on suspend/resume,
but some embeded system like eReader,Cellphone
are time sensitive,this commit will report the slow
driver on suspend/resume, the default value is 500us(0.5ms)

Also, the threshold can be change by modify
'/sys/power/device_suspend_time_threshold' to change the threshold,
it is in microsecond.

The output is like:

PM: device platform:soc-audio.2 suspend too slow, takes          606.696 msecs
PM: device platform:mxc_sdc_fb.1 suspend too slow, takes         7.708 msecs

the default state of suspend driver is default off,
if you want to debug the suspend time, echo time in
microsecond(u Second) to /sys/powe/device_suspend_time_threshold

eg: I want to know which driver suspend &amp; resume takes
more that 0.5 ms (500 us), you can just :

ehco 500 &gt; /sys/power/device_suspend_time_threshold

Signed-off-by: Zhang Jiejing &lt;jiejing.zhang@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Print pending wakeup IRQ preventing suspend to dmesg</title>
<updated>2011-03-29T20:58:03+00:00</updated>
<author>
<name>Todd Poynor</name>
<email>toddpoynor@google.com</email>
</author>
<published>2011-01-24T22:36:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0124c6088d3b9d8e1a5e4d261220be44bcc00727'/>
<id>0124c6088d3b9d8e1a5e4d261220be44bcc00727</id>
<content type='text'>
Change-Id: I36f90735c75fb7c7ab1084775ec0d0ab02336e6e
Signed-off-by: Todd Poynor &lt;toddpoynor@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I36f90735c75fb7c7ab1084775ec0d0ab02336e6e
Signed-off-by: Todd Poynor &lt;toddpoynor@google.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cgroup: leave cg_list valid upon cgroup_exit</title>
<updated>2011-03-29T20:58:02+00:00</updated>
<author>
<name>Simon Wilson</name>
<email>simonwilson@google.com</email>
</author>
<published>2011-01-08T02:46:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7214242794fa95e80154a34c35ca87c231372ec9'/>
<id>7214242794fa95e80154a34c35ca87c231372ec9</id>
<content type='text'>
A thread/process in cgroup_attach_task() could have called
list_del(&amp;tsk-&gt;cg_list) after cgroup_exit() had already called
list_del() on the same list. Since it only checked for
!list_empty(&amp;tsk-&gt;cg_list) before doing this, the list_del()
call would thus be made twice.

The solution is to leave tsk-&gt;cg_list in a valid state in
cgroup_exit() with list_del_init(&amp;tsk-&gt;cg_list), which leaves
an empty list.

Change-Id: I4e7c1d0665fced629f5ca033c18dd98afe080e0c
Signed-off-by: Simon Wilson &lt;simonwilson@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A thread/process in cgroup_attach_task() could have called
list_del(&amp;tsk-&gt;cg_list) after cgroup_exit() had already called
list_del() on the same list. Since it only checked for
!list_empty(&amp;tsk-&gt;cg_list) before doing this, the list_del()
call would thus be made twice.

The solution is to leave tsk-&gt;cg_list in a valid state in
cgroup_exit() with list_del_init(&amp;tsk-&gt;cg_list), which leaves
an empty list.

Change-Id: I4e7c1d0665fced629f5ca033c18dd98afe080e0c
Signed-off-by: Simon Wilson &lt;simonwilson@google.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cgroup: Remove call to synchronize_rcu in cgroup_attach_task</title>
<updated>2011-03-29T20:58:01+00:00</updated>
<author>
<name>Colin Cross</name>
<email>ccross@android.com</email>
</author>
<published>2010-11-24T05:37:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=77f956f1042713117f81440ed7b939360ffb993d'/>
<id>77f956f1042713117f81440ed7b939360ffb993d</id>
<content type='text'>
synchronize_rcu can be very expensive, averaging 100 ms in
some cases.  In cgroup_attach_task, it is used to prevent
a task-&gt;cgroups pointer dereferenced in an RCU read side
critical section from being invalidated, by delaying the
call to put_css_set until after an RCU grace period.

To avoid the call to synchronize_rcu, make the put_css_set
call rcu-safe by moving the deletion of the css_set links
into free_css_set_work, scheduled by the rcu callback
free_css_set_rcu.

The decrement of the cgroup refcount is no longer
synchronous with the call to put_css_set, which can result
in the cgroup refcount staying positive after the last call
to cgroup_attach_task returns.  To allow the cgroup to be
deleted with cgroup_rmdir synchronously after
cgroup_attach_task, have rmdir check the refcount of all
associated css_sets.  If cgroup_rmdir is called on a cgroup
for which the css_sets all have refcount zero but the
cgroup refcount is nonzero, reuse the rmdir waitqueue to
block the rmdir until free_css_set_work is called.

Signed-off-by: Colin Cross &lt;ccross@android.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
synchronize_rcu can be very expensive, averaging 100 ms in
some cases.  In cgroup_attach_task, it is used to prevent
a task-&gt;cgroups pointer dereferenced in an RCU read side
critical section from being invalidated, by delaying the
call to put_css_set until after an RCU grace period.

To avoid the call to synchronize_rcu, make the put_css_set
call rcu-safe by moving the deletion of the css_set links
into free_css_set_work, scheduled by the rcu callback
free_css_set_rcu.

The decrement of the cgroup refcount is no longer
synchronous with the call to put_css_set, which can result
in the cgroup refcount staying positive after the last call
to cgroup_attach_task returns.  To allow the cgroup to be
deleted with cgroup_rmdir synchronously after
cgroup_attach_task, have rmdir check the refcount of all
associated css_sets.  If cgroup_rmdir is called on a cgroup
for which the css_sets all have refcount zero but the
cgroup refcount is nonzero, reuse the rmdir waitqueue to
block the rmdir until free_css_set_work is called.

Signed-off-by: Colin Cross &lt;ccross@android.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
