Re: [PATCH] parisc: Fix syscall restarts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 20.12.2015 20:46, John David Anglin wrote:
> On 2015-12-20, at 2:32 PM, Helge Deller wrote:
> 
>>> in a LDO "copy" instruction.
>>
>> Actually it's the "OR,cond r1,r2,t" instruction.
>> https://parisc.wiki.kernel.org/images-parisc/6/68/Pa11_acd.pdf
>> page 5-105
>>
>> if ((opcode & 0xff00ffff) == 0x08000254)
>>
>> The mask should be 0xffe0ffff, so that some bits of r2 (which needs to be 0) are not missed.

This is actually not the full truth.
I missed the point, that "r2" is a register and not an immediate value.
My code just checks that "r2" means %r0, while it could be any other register as well,
which either has a null-value, or even worse, if someone decides to "calculate" the syscall number.

> There are multiple instructions that could be used.  The PA 2.0 arch says LDO  on page 7-83.

True.
But luckily it seems gas converts "copy" to the "or" syntax mentioned above.
In any case, keeping my kernel patch will report any cases (which might by mistake get added)
in the future so that we can fix userspace then (or enhance the kernel workaround).

Helge
--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux