Re: [PATCH] drop superfluous .align 16

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

 



On Mon, Aug 25, 2008 at 02:31:40PM +0200, Helge Deller wrote:
> James Bottomley wrote:
>> On Sun, 2008-08-24 at 20:51 +0200, Helge Deller wrote:
>>> This .align 16 is misplaced and should be in front of the 
>>> ENTRY(lws_lock_start).
>>> Works because of pure luck since we have a .align PAGE_SIZE before it 
>>> instead.
>>>
>>> Signed-off-by: Helge Deller <deller@xxxxxx>
>>>
>>> diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S
>>> index 69b6eeb..c6ff81f 100644
>>> --- a/arch/parisc/kernel/syscall.S
>>> +++ b/arch/parisc/kernel/syscall.S
>>> @@ -640,7 +640,6 @@ END(sys_call_table64)
>>>  	.align	PAGE_SIZE
>>>  ENTRY(lws_lock_start)
>>>  	/* lws locks */
>>> -	.align 16
>>>  	.rept 16
>>>  	/* Keep locks aligned at 16-bytes */
>>>  	.word 1
>> I think I'd really rather keep this.  It may be technically superfluous
>> because of the .align PAGE_SIZE above it, but that belongs to the
>> syscall table.  
>
>> If anyone ever moved this section in head.S, the align
>> 16 ensures nothing goes wrong.
>
> Hi James,
>
> If the block is moved, then that's exactly what this .align does not 
> ensure.
> We had this discussion already here on the list. Please read the full 
> thread: http://marc.info/?t=121554765000005&r=1&w=2

Helge,
Thanks for tracking and resubmitting this...Carlos already ACK'd and I think
it would be good if kyle added it to his patch queue.

But I liked two other things proposed in this thread.
1) jejb's preference to document the alignement requirement 
2) jda's proposal for ENTRY_ALIGN() (which accomplishes (1))

So I've hacked your patch to include those two things.

I've only build-tested this for 64-bit builds.

thanks,
grant

Signed-off-by: Helge Deller <deller@xxxxxx>
Signed-off-by: Grant Grundler <grundler@xxxxxxxxxxxxxxxx>


diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S
index 69b6eeb..faf8b37 100644
--- a/arch/parisc/kernel/syscall.S
+++ b/arch/parisc/kernel/syscall.S
@@ -638,11 +638,10 @@ END(sys_call_table64)
 	*/
 	.section .data
 	.align	PAGE_SIZE
-ENTRY(lws_lock_start)
+
+ENTRY_ALIGN(lws_lock_start,16)
 	/* lws locks */
-	.align 16
 	.rept 16
-	/* Keep locks aligned at 16-bytes */
 	.word 1
 	.word 0 
 	.word 0
diff --git a/include/asm-parisc/linkage.h b/include/asm-parisc/linkage.h
index 0b19a72..2c6cbe2 100644
--- a/include/asm-parisc/linkage.h
+++ b/include/asm-parisc/linkage.h
@@ -17,6 +17,11 @@
 	ALIGN !\
 name:
 
+#define ENTRY_ALIGN(name,alignval) \
+	.export name !\
+	.align alignval !\
+name:
+
 #ifdef CONFIG_64BIT
 #define ENDPROC(name) \
 	END(name)
--
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