@@ -544,6 +544,8 @@ print_graph_irq(struct trace_iterator *iter, unsigned long addr,
544
544
struct trace_seq * s = & iter -> seq ;
545
545
struct trace_entry * ent = iter -> ent ;
546
546
547
+ addr += iter -> tr -> text_delta ;
548
+
547
549
if (addr < (unsigned long )__irqentry_text_start ||
548
550
addr >= (unsigned long )__irqentry_text_end )
549
551
return ;
@@ -710,13 +712,16 @@ print_graph_entry_leaf(struct trace_iterator *iter,
710
712
struct ftrace_graph_ret * graph_ret ;
711
713
struct ftrace_graph_ent * call ;
712
714
unsigned long long duration ;
715
+ unsigned long func ;
713
716
int cpu = iter -> cpu ;
714
717
int i ;
715
718
716
719
graph_ret = & ret_entry -> ret ;
717
720
call = & entry -> graph_ent ;
718
721
duration = graph_ret -> rettime - graph_ret -> calltime ;
719
722
723
+ func = call -> func + iter -> tr -> text_delta ;
724
+
720
725
if (data ) {
721
726
struct fgraph_cpu_data * cpu_data ;
722
727
@@ -747,10 +752,10 @@ print_graph_entry_leaf(struct trace_iterator *iter,
747
752
* enabled.
748
753
*/
749
754
if (flags & __TRACE_GRAPH_PRINT_RETVAL )
750
- print_graph_retval (s , graph_ret -> retval , true, (void * )call -> func ,
755
+ print_graph_retval (s , graph_ret -> retval , true, (void * )func ,
751
756
!!(flags & TRACE_GRAPH_PRINT_RETVAL_HEX ));
752
757
else
753
- trace_seq_printf (s , "%ps();\n" , (void * )call -> func );
758
+ trace_seq_printf (s , "%ps();\n" , (void * )func );
754
759
755
760
print_graph_irq (iter , graph_ret -> func , TRACE_GRAPH_RET ,
756
761
cpu , iter -> ent -> pid , flags );
@@ -766,6 +771,7 @@ print_graph_entry_nested(struct trace_iterator *iter,
766
771
struct ftrace_graph_ent * call = & entry -> graph_ent ;
767
772
struct fgraph_data * data = iter -> private ;
768
773
struct trace_array * tr = iter -> tr ;
774
+ unsigned long func ;
769
775
int i ;
770
776
771
777
if (data ) {
@@ -788,7 +794,9 @@ print_graph_entry_nested(struct trace_iterator *iter,
788
794
for (i = 0 ; i < call -> depth * TRACE_GRAPH_INDENT ; i ++ )
789
795
trace_seq_putc (s , ' ' );
790
796
791
- trace_seq_printf (s , "%ps() {\n" , (void * )call -> func );
797
+ func = call -> func + iter -> tr -> text_delta ;
798
+
799
+ trace_seq_printf (s , "%ps() {\n" , (void * )func );
792
800
793
801
if (trace_seq_has_overflowed (s ))
794
802
return TRACE_TYPE_PARTIAL_LINE ;
@@ -863,6 +871,8 @@ check_irq_entry(struct trace_iterator *iter, u32 flags,
863
871
int * depth_irq ;
864
872
struct fgraph_data * data = iter -> private ;
865
873
874
+ addr += iter -> tr -> text_delta ;
875
+
866
876
/*
867
877
* If we are either displaying irqs, or we got called as
868
878
* a graph event and private data does not exist,
@@ -990,11 +1000,14 @@ print_graph_return(struct ftrace_graph_ret *trace, struct trace_seq *s,
990
1000
unsigned long long duration = trace -> rettime - trace -> calltime ;
991
1001
struct fgraph_data * data = iter -> private ;
992
1002
struct trace_array * tr = iter -> tr ;
1003
+ unsigned long func ;
993
1004
pid_t pid = ent -> pid ;
994
1005
int cpu = iter -> cpu ;
995
1006
int func_match = 1 ;
996
1007
int i ;
997
1008
1009
+ func = trace -> func + iter -> tr -> text_delta ;
1010
+
998
1011
if (check_irq_return (iter , flags , trace -> depth ))
999
1012
return TRACE_TYPE_HANDLED ;
1000
1013
@@ -1033,7 +1046,7 @@ print_graph_return(struct ftrace_graph_ret *trace, struct trace_seq *s,
1033
1046
* function-retval option is enabled.
1034
1047
*/
1035
1048
if (flags & __TRACE_GRAPH_PRINT_RETVAL ) {
1036
- print_graph_retval (s , trace -> retval , false, (void * )trace -> func ,
1049
+ print_graph_retval (s , trace -> retval , false, (void * )func ,
1037
1050
!!(flags & TRACE_GRAPH_PRINT_RETVAL_HEX ));
1038
1051
} else {
1039
1052
/*
@@ -1046,7 +1059,7 @@ print_graph_return(struct ftrace_graph_ret *trace, struct trace_seq *s,
1046
1059
if (func_match && !(flags & TRACE_GRAPH_PRINT_TAIL ))
1047
1060
trace_seq_puts (s , "}\n" );
1048
1061
else
1049
- trace_seq_printf (s , "} /* %ps */\n" , (void * )trace -> func );
1062
+ trace_seq_printf (s , "} /* %ps */\n" , (void * )func );
1050
1063
}
1051
1064
1052
1065
/* Overrun */
0 commit comments