There is a definition in include/asm/processor.h:
/*
* Default implementation of macro that returns current
* instruction pointer ("program counter").
*/
#define current_text_addr() ({ __label__ _l; _l: &&_l;})
Its role is to take the value of the current PC, but this line of statements will cause an error under VDSP:
../../security/commoncap.c
"../../include/linux/skbuff.h", line 897: cc1454: error: taking the address
of a label is not a supported feature
skb_over_panic(skb, len, current_text_addr());
^
"../../include/linux/skbuff.h", line 922: cc1454: error: taking the address
of a label is not a supported feature
skb_under_panic(skb, len, current_text_addr());
^
2 errors detected in the compilation of "../../security/commoncap.c".
cc3089: fatal error: Compilation failed
Tool failed with exit/exception code: 1.
Build was unsuccessful.
Make the following modifications to it:
static inline unsigned long current_text_addr(void)
{
unsigned long pc;
__asm__ __volatile__("%0 = rets;/n/t":"=d"(pc));
return pc;
}