<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/arch/ia64/kernel/process.c, branch linux-3.7.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>vfs: define struct filename and have getname() return it</title>
<updated>2012-10-13T00:14:55+00:00</updated>
<author>
<name>Jeff Layton</name>
<email>jlayton@redhat.com</email>
</author>
<published>2012-10-10T19:25:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=91a27b2a756784714e924e5e854b919273082d26'/>
<id>91a27b2a756784714e924e5e854b919273082d26</id>
<content type='text'>
getname() is intended to copy pathname strings from userspace into a
kernel buffer. The result is just a string in kernel space. It would
however be quite helpful to be able to attach some ancillary info to
the string.

For instance, we could attach some audit-related info to reduce the
amount of audit-related processing needed. When auditing is enabled,
we could also call getname() on the string more than once and not
need to recopy it from userspace.

This patchset converts the getname()/putname() interfaces to return
a struct instead of a string. For now, the struct just tracks the
string in kernel space and the original userland pointer for it.

Later, we'll add other information to the struct as it becomes
convenient.

Signed-off-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
getname() is intended to copy pathname strings from userspace into a
kernel buffer. The result is just a string in kernel space. It would
however be quite helpful to be able to attach some ancillary info to
the string.

For instance, we could attach some audit-related info to reduce the
amount of audit-related processing needed. When auditing is enabled,
we could also call getname() on the string more than once and not
need to recopy it from userspace.

This patchset converts the getname()/putname() interfaces to return
a struct instead of a string. For now, the struct just tracks the
string in kernel space and the original userland pointer for it.

Later, we'll add other information to the struct as it becomes
convenient.

Signed-off-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'please-pull-ia64-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux</title>
<updated>2012-10-01T20:56:35+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-10-01T20:56:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a57d985e378ca69f430b85852e4187db3698a89e'/>
<id>a57d985e378ca69f430b85852e4187db3698a89e</id>
<content type='text'>
Pull ia64 update from Tony Luck:
 "Usual mish-mash of ia64 fixes for next merge window"

* tag 'please-pull-ia64-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
  [IA64] xen: Fix return value check in xencomm_vtop()
  [IA64] Must enable interrupts in do_notify_resume_user before calling tracehook_notify_resume()
  [IA64] kexec: Move the dereference below the NULL test
  [IA64] Fix a node distance bug
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull ia64 update from Tony Luck:
 "Usual mish-mash of ia64 fixes for next merge window"

* tag 'please-pull-ia64-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
  [IA64] xen: Fix return value check in xencomm_vtop()
  [IA64] Must enable interrupts in do_notify_resume_user before calling tracehook_notify_resume()
  [IA64] kexec: Move the dereference below the NULL test
  [IA64] Fix a node distance bug
</pre>
</div>
</content>
</entry>
<entry>
<title>ia64: Add missing RCU idle APIs on idle loop</title>
<updated>2012-09-23T14:44:52+00:00</updated>
<author>
<name>Paul E. McKenney</name>
<email>paul.mckenney@linaro.org</email>
</author>
<published>2012-08-24T20:22:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=93482f4ef1093f5961a63359a34612183d6beea0'/>
<id>93482f4ef1093f5961a63359a34612183d6beea0</id>
<content type='text'>
Traditionally, the entire idle task served as an RCU quiescent state.
But when RCU read side critical sections started appearing within the
idle loop, this traditional strategy became untenable.  The fix was to
create new RCU APIs named rcu_idle_enter() and rcu_idle_exit(), which
must be called by each architecture's idle loop so that RCU can tell
when it is safe to ignore a given idle CPU.

Unfortunately, this fix was never applied to ia64, a shortcoming remedied
by this commit.

Reported by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Paul E. McKenney &lt;paul.mckenney@linaro.org&gt;
Cc: &lt;stable@vger.kernel.org&gt; # 3.3+
Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Tested by: Tony Luck &lt;tony.luck@intel.com&gt;
Reviewed-by: Josh Triplett &lt;josh@joshtriplett.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Traditionally, the entire idle task served as an RCU quiescent state.
But when RCU read side critical sections started appearing within the
idle loop, this traditional strategy became untenable.  The fix was to
create new RCU APIs named rcu_idle_enter() and rcu_idle_exit(), which
must be called by each architecture's idle loop so that RCU can tell
when it is safe to ignore a given idle CPU.

Unfortunately, this fix was never applied to ia64, a shortcoming remedied
by this commit.

Reported by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Paul E. McKenney &lt;paul.mckenney@linaro.org&gt;
Cc: &lt;stable@vger.kernel.org&gt; # 3.3+
Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Tested by: Tony Luck &lt;tony.luck@intel.com&gt;
Reviewed-by: Josh Triplett &lt;josh@joshtriplett.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[IA64] Must enable interrupts in do_notify_resume_user before calling tracehook_notify_resume()</title>
<updated>2012-09-20T18:47:13+00:00</updated>
<author>
<name>Tony Luck</name>
<email>tony.luck@intel.com</email>
</author>
<published>2012-09-20T18:47:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=0967237ca6521c63822340138e4d62ecf8a3d173'/>
<id>0967237ca6521c63822340138e4d62ecf8a3d173</id>
<content type='text'>
If we call with interrupts disabled, we'll be hit with:

WARNING: at kernel/softirq.c:160 local_bh_enable_ip+0x150/0x180() and a stack
trace like this:

Call Trace:
 [&lt;a000000100015480&gt;] show_stack+0x80/0xa0
 [&lt;a000000100d9a520&gt;] dump_stack+0x30/0x50
 [&lt;a000000100072fc0&gt;] warn_slowpath_common+0xc0/0x100
 [&lt;a000000100073040&gt;] warn_slowpath_null+0x40/0x60
 [&lt;a0000001000884d0&gt;] local_bh_enable_ip+0x150/0x180
 [&lt;a000000100da2960&gt;] _raw_write_unlock_bh+0x40/0x60
 [&lt;a000000100cf03c0&gt;] unix_release_sock+0x120/0x5a0
 [&lt;a000000100cf0880&gt;] unix_release+0x40/0x60
 [&lt;a000000100b84400&gt;] sock_release+0x60/0x1a0
 [&lt;a000000100b84b70&gt;] sock_close+0x30/0xa0
 [&lt;a0000001001d10f0&gt;] __fput+0x190/0x500
 [&lt;a0000001001d1580&gt;] ____fput+0x20/0x40
 [&lt;a0000001000b6570&gt;] task_work_run+0x1b0/0x260
 [&lt;a000000100015190&gt;] do_notify_resume_user+0x110/0x2a0
 [&lt;a00000010000c5a0&gt;] notify_resume_user+0x40/0x60
 [&lt;a00000010000c4d0&gt;] skip_rbs_switch+0xe0/0xf0
 [&lt;a000000000040720&gt;] ia64_ivt+0xffffffff00040720/0x400

Fix-suggested-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If we call with interrupts disabled, we'll be hit with:

WARNING: at kernel/softirq.c:160 local_bh_enable_ip+0x150/0x180() and a stack
trace like this:

Call Trace:
 [&lt;a000000100015480&gt;] show_stack+0x80/0xa0
 [&lt;a000000100d9a520&gt;] dump_stack+0x30/0x50
 [&lt;a000000100072fc0&gt;] warn_slowpath_common+0xc0/0x100
 [&lt;a000000100073040&gt;] warn_slowpath_null+0x40/0x60
 [&lt;a0000001000884d0&gt;] local_bh_enable_ip+0x150/0x180
 [&lt;a000000100da2960&gt;] _raw_write_unlock_bh+0x40/0x60
 [&lt;a000000100cf03c0&gt;] unix_release_sock+0x120/0x5a0
 [&lt;a000000100cf0880&gt;] unix_release+0x40/0x60
 [&lt;a000000100b84400&gt;] sock_release+0x60/0x1a0
 [&lt;a000000100b84b70&gt;] sock_close+0x30/0xa0
 [&lt;a0000001001d10f0&gt;] __fput+0x190/0x500
 [&lt;a0000001001d1580&gt;] ____fput+0x20/0x40
 [&lt;a0000001000b6570&gt;] task_work_run+0x1b0/0x260
 [&lt;a000000100015190&gt;] do_notify_resume_user+0x110/0x2a0
 [&lt;a00000010000c5a0&gt;] notify_resume_user+0x40/0x60
 [&lt;a00000010000c4d0&gt;] skip_rbs_switch+0xe0/0xf0
 [&lt;a000000000040720&gt;] ia64_ivt+0xffffffff00040720/0x400

Fix-suggested-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>move key_repace_session_keyring() into tracehook_notify_resume()</title>
<updated>2012-05-24T02:09:20+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2012-05-23T18:44:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a42c6ded827dbd396d2efde7530620be029a72d1'/>
<id>a42c6ded827dbd396d2efde7530620be029a72d1</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ia64: Remove unused cpu_idle_wait()</title>
<updated>2012-05-08T10:35:06+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2012-05-07T17:59:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=bbe78cbd729f85c4da6e04f45c8b2de43c3573f1'/>
<id>bbe78cbd729f85c4da6e04f45c8b2de43c3573f1</id>
<content type='text'>
IA64 does not set CONFIG_ARCH_HAVE_IDLE_WAIT and cpuidle uses a
generic function now. Remove the unused code.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Link: http://lkml.kernel.org/r/20120507175652.392394511@linutronix.de
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
IA64 does not set CONFIG_ARCH_HAVE_IDLE_WAIT and cpuidle uses a
generic function now. Remove the unused code.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Link: http://lkml.kernel.org/r/20120507175652.392394511@linutronix.de
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix ia64 build errors (fallout from system.h disintegration)</title>
<updated>2012-03-29T21:16:06+00:00</updated>
<author>
<name>Luck, Tony</name>
<email>tony.luck@intel.com</email>
</author>
<published>2012-03-29T20:35:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=93f378883cecb9dcb2cf5b51d9d24175906659da'/>
<id>93f378883cecb9dcb2cf5b51d9d24175906659da</id>
<content type='text'>
Fix this build error on ia64:

  In file included from include/linux/sched.h:92,
                  from arch/ia64/kernel/asm-offsets.c:9:
  include/linux/llist.h:59:25: error: asm/cmpxchg.h: No such file or directory
  make[1]: *** [arch/ia64/kernel/asm-offsets.s] Error 1

Right now we don't seem to need any actual contents for the
asm/cmpxchg.h to make the build work ...  so leave the migration of
xchg() and cmpxchg() to this new header file for a future patch.

Also process.c needs &lt;asm/switch_to.h&gt; (for definition of pfm_syst_info).

Signed-off-by: Tony Luck &lt;tony.luck@intel.com&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>
Fix this build error on ia64:

  In file included from include/linux/sched.h:92,
                  from arch/ia64/kernel/asm-offsets.c:9:
  include/linux/llist.h:59:25: error: asm/cmpxchg.h: No such file or directory
  make[1]: *** [arch/ia64/kernel/asm-offsets.s] Error 1

Right now we don't seem to need any actual contents for the
asm/cmpxchg.h to make the build work ...  so leave the migration of
xchg() and cmpxchg() to this new header file for a future patch.

Also process.c needs &lt;asm/switch_to.h&gt; (for definition of pfm_syst_info).

Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>sched/rt: Use schedule_preempt_disabled()</title>
<updated>2012-03-01T09:28:03+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-03-21T11:33:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=bd2f55361f18347e890d52ff9cfd8895455ec11b'/>
<id>bd2f55361f18347e890d52ff9cfd8895455ec11b</id>
<content type='text'>
Coccinelle based conversion.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Link: http://lkml.kernel.org/n/tip-24swm5zut3h9c4a6s46x8rws@git.kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Coccinelle based conversion.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Link: http://lkml.kernel.org/n/tip-24swm5zut3h9c4a6s46x8rws@git.kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ACPI, intel_idle: Cleanup idle= internal variables</title>
<updated>2011-01-12T17:47:30+00:00</updated>
<author>
<name>Thomas Renninger</name>
<email>trenn@suse.de</email>
</author>
<published>2010-11-03T16:06:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d18960494f65ca4fa0d67c865aaca99452070d15'/>
<id>d18960494f65ca4fa0d67c865aaca99452070d15</id>
<content type='text'>
Having four variables for the same thing:
  idle_halt, idle_nomwait, force_mwait and boot_option_idle_overrides
is rather confusing and unnecessary complex.

if idle= boot param is passed, only set up one variable:
boot_option_idle_overrides

Introduces following functional changes/fixes:
  - intel_idle driver does not register if any idle=xy
    boot param is passed.
  - processor_idle.c will also not register a cpuidle driver
    and get active if idle=halt is passed.
    Before a cpuidle driver with one (C1, halt) state got registered
    Now the default_idle function will be used which finally uses
    the same idle call to enter sleep state (safe_halt()), but
    without registering a whole cpuidle driver.

That means idle= param will always avoid cpuidle drivers to register
with one exception (same behavior as before):
idle=nomwait
may still register acpi_idle cpuidle driver, but C1 will not use
mwait, but hlt. This can be a workaround for IO based deeper sleep
states where C1 mwait causes problems.

Signed-off-by: Thomas Renninger &lt;trenn@suse.de&gt;
cc: x86@kernel.org
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Having four variables for the same thing:
  idle_halt, idle_nomwait, force_mwait and boot_option_idle_overrides
is rather confusing and unnecessary complex.

if idle= boot param is passed, only set up one variable:
boot_option_idle_overrides

Introduces following functional changes/fixes:
  - intel_idle driver does not register if any idle=xy
    boot param is passed.
  - processor_idle.c will also not register a cpuidle driver
    and get active if idle=halt is passed.
    Before a cpuidle driver with one (C1, halt) state got registered
    Now the default_idle function will be used which finally uses
    the same idle call to enter sleep state (safe_halt()), but
    without registering a whole cpuidle driver.

That means idle= param will always avoid cpuidle drivers to register
with one exception (same behavior as before):
idle=nomwait
may still register acpi_idle cpuidle driver, but C1 will not use
mwait, but hlt. This can be a workaround for IO based deeper sleep
states where C1 mwait causes problems.

Signed-off-by: Thomas Renninger &lt;trenn@suse.de&gt;
cc: x86@kernel.org
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Make do_execve() take a const filename pointer</title>
<updated>2010-08-18T01:07:43+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2010-08-17T22:52:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d7627467b7a8dd6944885290a03a07ceb28c10eb'/>
<id>d7627467b7a8dd6944885290a03a07ceb28c10eb</id>
<content type='text'>
Make do_execve() take a const filename pointer so that kernel_execve() compiles
correctly on ARM:

arch/arm/kernel/sys_arm.c:88: warning: passing argument 1 of 'do_execve' discards qualifiers from pointer target type

This also requires the argv and envp arguments to be consted twice, once for
the pointer array and once for the strings the array points to.  This is
because do_execve() passes a pointer to the filename (now const) to
copy_strings_kernel().  A simpler alternative would be to cast the filename
pointer in do_execve() when it's passed to copy_strings_kernel().

do_execve() may not change any of the strings it is passed as part of the argv
or envp lists as they are some of them in .rodata, so marking these strings as
const should be fine.

Further kernel_execve() and sys_execve() need to be changed to match.

This has been test built on x86_64, frv, arm and mips.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Tested-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Acked-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&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>
Make do_execve() take a const filename pointer so that kernel_execve() compiles
correctly on ARM:

arch/arm/kernel/sys_arm.c:88: warning: passing argument 1 of 'do_execve' discards qualifiers from pointer target type

This also requires the argv and envp arguments to be consted twice, once for
the pointer array and once for the strings the array points to.  This is
because do_execve() passes a pointer to the filename (now const) to
copy_strings_kernel().  A simpler alternative would be to cast the filename
pointer in do_execve() when it's passed to copy_strings_kernel().

do_execve() may not change any of the strings it is passed as part of the argv
or envp lists as they are some of them in .rodata, so marking these strings as
const should be fine.

Further kernel_execve() and sys_execve() need to be changed to match.

This has been test built on x86_64, frv, arm and mips.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Tested-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Acked-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
