@@ -1598,9 +1598,6 @@ static int record_event_consumer(struct ppm_consumer_t *consumer,
15981598 ASSERT (event_datap -> event_info .context_data .sched_next != NULL );
15991599 ring_info -> n_context_switches ++ ;
16001600 }
1601- } else if (event_datap -> category == PPMC_SIGNAL ) {
1602- if (event_type == PPME_SIGNALDELIVER_E )
1603- ASSERT (event_datap -> event_info .signal_data .info != NULL );
16041601 }
16051602
16061603 /*
@@ -1737,8 +1734,9 @@ static int record_event_consumer(struct ppm_consumer_t *consumer,
17371734
17381735 if (event_datap -> category == PPMC_SIGNAL ) {
17391736 args .signo = event_datap -> event_info .signal_data .sig ;
1740-
1741- if (args .signo == SIGKILL ) {
1737+ if (event_datap -> event_info .signal_data .info == NULL ) {
1738+ args .spid = (__kernel_pid_t ) 0 ;
1739+ } else if (args .signo == SIGKILL ) {
17421740 args .spid = event_datap -> event_info .signal_data .info -> _sifields ._kill ._pid ;
17431741 } else if (args .signo == SIGTERM || args .signo == SIGHUP || args .signo == SIGINT ||
17441742 args .signo == SIGTSTP || args .signo == SIGQUIT ) {
@@ -2095,7 +2093,10 @@ TRACEPOINT_PROBE(signal_deliver_probe, int sig, struct siginfo *info, struct k_s
20952093
20962094 event_data .category = PPMC_SIGNAL ;
20972095 event_data .event_info .signal_data .sig = sig ;
2098- event_data .event_info .signal_data .info = info ;
2096+ if (info == SEND_SIG_NOINFO || info == SEND_SIG_PRIV )
2097+ event_data .event_info .signal_data .info = NULL ;
2098+ else
2099+ event_data .event_info .signal_data .info = info ;
20992100 event_data .event_info .signal_data .ka = ka ;
21002101
21012102 record_event_all_consumers (PPME_SIGNALDELIVER_E , UF_USED | UF_ALWAYS_DROP , & event_data );
0 commit comments