aboutsummaryrefslogtreecommitdiff
path: root/tools/perf/util/scripting-engines/trace-event-python.c
diff options
context:
space:
mode:
authorStefan Agner <[email protected]>2019-04-19 09:47:17 +0200
committerMiquel Raynal <[email protected]>2019-06-27 20:05:22 +0200
commit2099920ebeca38584d645969cb3a8698ca6c3450 (patch)
treef8dea6f4c981958fea2891a039d3eec1344920e6 /tools/perf/util/scripting-engines/trace-event-python.c
parentf2c7c76c5d0a443053e94adb9f0918fa2fb85c3a (diff)
mtd: rawnand: use longest matching pattern
Sometimes the exec_op parser does not choose the optimal pattern if multiple patterns with optional elements are available. Since the stack automatically splits operations in multiple exec_op calls, a non-optimal pattern gets broken up into multiple calls. E.g. an OOB read using the vf610 driver: nand: executing subop: nand: ->CMD [0x00] nand: ->ADDR [5 cyc: 00 08 ea 94 02] nand: ->CMD [0x30] nand: ->WAITRDY [max 200000 ms] nand: DATA_IN [64 B] nand: executing subop: nand: CMD [0x00] nand: ADDR [5 cyc: 00 08 ea 94 02] nand: CMD [0x30] nand: WAITRDY [max 200000 ms] nand: ->DATA_IN [64 B] However, the vf610 driver has a pattern which can execute the complete command in a single go... This patch makes sure that the longest matching pattern is chosen instead of the first (potentially only partial) match. With this change the vf610 reads the OOB in a single exec_op call: nand: executing subop: nand: ->CMD [0x00] nand: ->ADDR [5 cyc: 00 08 c0 1d 00] nand: ->CMD [0x30] nand: ->WAITRDY [max 200000 ms] nand: ->DATA_IN [64 B] Reported-by: Sascha Hauer <[email protected]> Suggested-by: Boris Brezillon <[email protected]> Tested-by: Stefan Agner <[email protected]> Signed-off-by: Stefan Agner <[email protected]> Signed-off-by: Miquel Raynal <[email protected]>
Diffstat (limited to 'tools/perf/util/scripting-engines/trace-event-python.c')
0 files changed, 0 insertions, 0 deletions