diff options
| author | Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com> | 2015-07-27 08:55:16 +0300 | 
|---|---|---|
| committer | Corey Minyard <cminyard@mvista.com> | 2015-09-03 23:02:28 +0300 | 
| commit | 82802f968bd3118af04eaeb3814c21d9813be527 (patch) | |
| tree | dd26a8d2a0d96b013938814083144654bf30db71 /tools/perf/scripts/python/futex-contention.py | |
| parent | e45361d733d0a1432b0f6307375045e66ac02489 (diff) | |
| download | linux-82802f968bd3118af04eaeb3814c21d9813be527.tar.xz | |
ipmi: Don't flush messages in sender() in run-to-completion mode
When flushing queued messages in run-to-completion mode,
smi_event_handler() is recursively called.
flush_messages()
 smi_event_handler()
  handle_transaction_done()
   deliver_recv_msg()
    ipmi_smi_msg_received()
     smi_recv_tasklet()
      sender()
       flush_messages()
        smi_event_handler()
         ...
The depth of the recursive call depends on the number of queued
messages, so it can cause a stack overflow if many messages have
been queued.
To solve this problem, this patch removes flush_messages()
from sender()@ipmi_si_intf.c.  Instead, add flush_messages() to
caller side of sender() if needed.  Additionally, to implement this,
add new handler flush_messages to struct ipmi_smi_handlers.
Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
Fixed up a comment and some spacing issues.
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Diffstat (limited to 'tools/perf/scripts/python/futex-contention.py')
0 files changed, 0 insertions, 0 deletions
