lto, wan/sbni: Make inline assembler symbols visible and assembler global
Subsystems (2)
PATCH 1/1 lto, wan/sbni: Make inline assembler symbols visible and assembler global
From: Andi Kleen <[email protected]>
- Inline assembler defining C callable code has to be global
- The function has to be visible
Do this in wan/sbni
--- drivers/net/wan/sbni.c | 6 +++--- drivers/net/wan/sbni.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-)
drivers/net/wan/sbni.c +3 -3
@@ -160,7 +160,7 @@ static int scandone __initdata = 0;static int num__initdata =0 ;static unsigned char rxl_tab[]; -static u32 crc32tab[]; +__visible u32 sbni_crc32tab[];/* A list of all installed devices, for removing the driver module. */ static struct net_device *sbni_cards[SBNI_MAX_NUM_CARDS ];
@@ -1563,7 +1563,7 @@ calc_crc32( u32 crc, u8 *p, u32 len )"xorl %%ebx, %%ebx\n" "movl %2, %%esi\n" "movl %3, %%ecx\n" -"movl $crc32tab, %%edi\n" +"movl $sbni_crc32tab, %%edi\n" "shrl $2, %%ecx\n" "jz 1f\n"
@@ -1645,7 +1645,7 @@ calc_crc32( u32 crc, u8 *p, u32 len )#endif /* ASM_CRC */ -static u32 crc32tab[] __attribute__ ((aligned(8))) = { +__visible u32 sbni_crc32tab[] __attribute__ ((aligned(8))) = {0xD202EF8D ,0xA505DF1B ,0x3C0C8EA1 ,0x4B0BBE37 ,0xD56F2B94 ,0xA2681B02 ,0x3B614AB8 ,0x4C667A2E , 0xDCD967BF, 0xABDE5729, 0x32D70693, 0x45D03605,
drivers/net/wan/sbni.h +1 -1
@@ -132,7 +132,7 @@ struct sbni_flags {/* * CRC-32 stuff */ -#define CRC32 (c,crc) (crc32tab[((size_t)(crc) ^ (c)) & 0xff] ^ (((crc) >> 8) & 0x00FFFFFF)) +#define CRC32 (c,crc) (sbni_crc32tab[((size_t)(crc) ^ (c)) & 0xff] ^ (((crc) >> 8) & 0x00FFFFFF))/* CRC generator 0xEDB88320 */ /* CRC remainder 0x2144DF1C */ /* CRC initial value 0x00000000 */
Signature · 1 line
1.8.3.1
David Miller
maintainerFrom: Andi Kleen <[email protected]>
Date: Mon, 5 Aug 2013 15:18:14 -0700
Quoted 8 lines
From: Andi Kleen <[email protected]>
- Inline assembler defining C callable code has to be global
- The function has to be visibleDo this in wan/sbni
Signed-off-by Andi Kleen <[email protected]>
Please just make it use the standard lib/ CRC routines instead.
Thanks.
Quoted 5 lines · David Miller
From: Andi Kleen <[email protected]>
Date: Mon, 5 Aug 2013 15:18:14 -0700Quoted 2 lines
From: Andi Kleen <[email protected]>
Quoted 8 lines
Quoted 6 lines
- Inline assembler defining C callable code has to be global
- The function has to be visibleDo this in wan/sbni
Signed-off-by Andi Kleen <[email protected]>Please just make it use the standard
lib/CRC routines instead.
The problem is I don't have this hardware, and I don't think I can do such a change without testing it.
FWIW my main interest here is to avoid this thing breaking my allyesconfig build.
Could you please consider adding it?
If not I'll have to disable the driver in the LTO patchkit.
-Andi
David Miller
maintainerFrom: Andi Kleen <[email protected]>
Date: Tue, 6 Aug 2013 01:05:35 +0200
Quoted 9 lines · David Miller
Quoted 8 lines
From: Andi Kleen <[email protected]>
Date: Mon, 5 Aug 2013 15:18:14 -0700Quoted 5 lines
From: Andi Kleen <[email protected]>
- Inline assembler defining C callable code has to be global
- The function has to be visible
Quoted 8 lines
Quoted 5 lines
Quoted 3 lines
Do this in wan/sbni
Signed-off-by Andi Kleen <[email protected]>Please just make it use the standard
lib/CRC routines instead.The problem is I don't have this hardware, and I don't think I can do such a change without testing it.
I say you can, having assembly in here for something as fundamental as this is pointless.