<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/arc/kernel/entry.S, branch v3.18</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v3.18</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v3.18'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2014-05-05T08:52:12Z</updated>
<entry>
<title>ARC: Fixed spelling errors within comments</title>
<updated>2014-05-05T08:52:12Z</updated>
<author>
<name>Terence Eden</name>
<email>github.com@shkspr.mobi</email>
</author>
<published>2014-04-20T12:33:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f63f98ea253c493a514b5f5748480336ad1d9dbf'/>
<id>urn:sha1:f63f98ea253c493a514b5f5748480336ad1d9dbf</id>
<content type='text'>
[vgupta: fixed changelong + added Randy's suggestion]
Signed-off-by: Terence Eden &lt;github.com@shkspr.mobi&gt;
Acked-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: !PREEMPT: Ensure Return to kernel mode is IRQ safe</title>
<updated>2014-04-30T15:21:43Z</updated>
<author>
<name>Vineet Gupta</name>
<email>Vineet.Gupta1@synopsys.com</email>
</author>
<published>2014-04-30T09:56:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=8aa9e85adac609588eeec356e5a85059b3b819ba'/>
<id>urn:sha1:8aa9e85adac609588eeec356e5a85059b3b819ba</id>
<content type='text'>
There was a very small race window where resume to kernel mode from a
Exception Path (or pure kernel mode which is true for most of ARC
exceptions anyways), was not disabling interrupts in restore_regs,
clobbering the exception regs

Anton found the culprit call flow (after many sleepless nights)

| 1. we got a Trap from user land
| 2. started to service it.
| 3. While doing some stuff on user-land memory (I think it is padzero()),
|     we got a DataTlbMiss
| 4. On return from it we are taking "resume_kernel_mode" path
| 5. NEED_RESHED is not set, so we go to "return from exception" path in
|     restore regs.
| 6. there seems to be IRQ happening

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;   #3.10, 3.12, 3.13, 3.14
Cc: Anton Kolesov &lt;Anton.Kolesov@synopsys.com&gt;
Cc: Francois Bedard &lt;Francois.Bedard@synopsys.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ARC: switch to generic ENTRY/END assembler annotations</title>
<updated>2014-03-26T09:01:28Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2014-02-07T08:17:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ec7ac6afd07b2d958aab9dfc0a686300b856922a'/>
<id>urn:sha1:ec7ac6afd07b2d958aab9dfc0a686300b856922a</id>
<content type='text'>
With commit 9df62f054406 "arch: use ASM_NL instead of ';'" the generic
macros can handle the arch specific newline quirk. Hence we can get rid
of ARC asm macros and use the "C" style macros.

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Add support for irqflags tracing and lockdep</title>
<updated>2013-11-06T05:11:40Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-09-06T08:48:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0dafafc3ef42bad34fd446725cb9778c3bdd83a8'/>
<id>urn:sha1:0dafafc3ef42bad34fd446725cb9778c3bdd83a8</id>
<content type='text'>
Lockdep required a small fix to stacktrace API which was incorrectly
unwindign out of __switch_to for the current call frame.

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Reduce #ifdef'ery for unaligned access emulation</title>
<updated>2013-11-06T05:11:39Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-09-18T12:38:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=07ba69a46c3394fe6675483275337e5a79a959e0'/>
<id>urn:sha1:07ba69a46c3394fe6675483275337e5a79a959e0</id>
<content type='text'>
Emulation not enabled is treated as if the fixup failed, so no need for
special #ifdef checks.

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Change calling convention of do_page_fault()</title>
<updated>2013-11-06T05:11:39Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-09-18T10:55:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=21a63b56044706aa37637315dd27d9d465bbd5c4'/>
<id>urn:sha1:21a63b56044706aa37637315dd27d9d465bbd5c4</id>
<content type='text'>
switch the args (address, pt_regs) to match with all the other "C"
exception handlers.

This removes the awkwardness in EV_ProtV for page fault vs. unaligned
access.

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Entry Handler tweaks: Optimize away redundant IRQ_DISABLE_SAVE</title>
<updated>2013-08-26T04:10:25Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-07-09T11:36:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=fce16bc35ae4a45634f3dc348d8d297a25c277cf'/>
<id>urn:sha1:fce16bc35ae4a45634f3dc348d8d297a25c277cf</id>
<content type='text'>
In the exception return path, for both U/K cases, intr are already
disabled (for various existing reasons). So when we drop down to
@restore_regs, we need not redo that.

There was subtle issue - when intr were NOT being disabled for
ret-to-kernel-but-no-preemption case - now fixed by moving the
IRQ_DISABLE further up in @resume_kernel_mode.

So what do we gain:

* Shaves off a few insn in return path.

* Eliminates the need for IRQ_DISABLE_SAVE assembler macro for ARCv2
  hence allows for entry code sharing.

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Exception Handlers Code consolidation</title>
<updated>2013-08-26T04:10:25Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-07-09T09:37:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=37f3ac498c988536f0d42b4659fb5d2c050b2f96'/>
<id>urn:sha1:37f3ac498c988536f0d42b4659fb5d2c050b2f96</id>
<content type='text'>
After the recent cleanups, all the exception handlers now have same
boilerplate prologue code. Move that into common macro.

This reduces readability but helps greatly with sharing / duplicating
entry code with ARCv2 ISA where the handlers are pretty much the same,
just the entry prologue is different (due to hardware assist).

Also while at it, add the missing FAKE_RET_FROM_EXCPN calls in couple of
places to drop down to pure kernel mode (from exception mode) before
jumping off into "C" code.

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Remove explicit passing around of ECR</title>
<updated>2013-06-26T10:00:50Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-06-12T09:43:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=38a9ff6d247cf9afcbe55ea245b650b8955029fd'/>
<id>urn:sha1:38a9ff6d247cf9afcbe55ea245b650b8955029fd</id>
<content type='text'>
With ECR now part of pt_regs

* No need to propagate from lowest asm handlers as arg
* No need to save it in tsk-&gt;thread.cause_code
* Avoid bit chopping to access the bit-fields

More code consolidation, cleanup

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: pt_regs update #5: Use real ECR for pt_regs-&gt;event vs. synth values</title>
<updated>2013-06-26T08:34:48Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-06-11T13:26:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=502a0c775c7f0a01065e0d078e06c0440b86a11a'/>
<id>urn:sha1:502a0c775c7f0a01065e0d078e06c0440b86a11a</id>
<content type='text'>
pt_regs-&gt;event was set with artificial values to identify the low level
system event (syscall trap / breakpoint trap / exceptions / interrupts)

With r8 saving out of the way, the full word can be used to save real
ECR (Exception Cause Register) which helps idenify the event naturally,
including additional info such as cause code, param.
Only for Interrupts, where ECR is not applicable, do we resort to
synthetic non ECR values.

SAVE_ALL_TRAP/EXCEPTIONS can now be merged as they both use ECR with
different runtime values.

The ptrace helpers now use the sub-fields of ECR to distinguish the
events (e.g. vector 0x25 is trap, param 0 is syscall...)

The following benefits will follow:

(1) This centralizes the location of where ECR is saved and will allow
    the cleanup of task-&gt;thread.cause_code ECR placeholder which is set
    in non-uniform way. Then ARC VM code can safely rely on it being
    there for purpose of finer grained VM_EXEC dcache flush (based on
    exec fault: I-TLB Miss)

(2) Further, ECR being passed around from low level handlers as arg can
    be eliminated as it is part of standard reg-file in pt_regs

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
</feed>
