Messages in this thread Patch in this message |  | | From | Zong Li <> | Subject | [PATCH] net: Change the layout of structure trace_event_raw_fib_table_lookup | Date | Mon, 13 Aug 2018 10:26:52 +0800 |
| |
There is an unalignment access about the structure 'trace_event_raw_fib_table_lookup'.
In include/trace/events/fib.h, there is a memory operation which casting the 'src' data member to a pointer, and then store a value to this pointer point to.
p32 = (__be32 *) __entry->src; *p32 = flp->saddr;
The offset of 'src' in structure trace_event_raw_fib_table_lookup is not four bytes alignment. On some architectures, they don't permit the unalignment access, it need to pay the price to handle this situation in exception handler.
Adjust the layout of structure to avoid this case.
Signed-off-by: Zong Li <zong@andestech.com> --- include/trace/events/fib.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/trace/events/fib.h b/include/trace/events/fib.h index 9763cddd0594..6271bab63bfb 100644 --- a/include/trace/events/fib.h +++ b/include/trace/events/fib.h @@ -22,6 +22,7 @@ TRACE_EVENT(fib_table_lookup, __field( int, err ) __field( int, oif ) __field( int, iif ) + __field( u8, proto ) __field( __u8, tos ) __field( __u8, scope ) __field( __u8, flags ) @@ -31,7 +32,6 @@ TRACE_EVENT(fib_table_lookup, __array( __u8, saddr, 4 ) __field( u16, sport ) __field( u16, dport ) - __field( u8, proto ) __dynamic_array(char, name, IFNAMSIZ ) ), -- 2.16.1
|  |