/// Device node iterators put the previous value of the index variable, so an /// explicit put causes a double put. /// // Confidence: High // Copyright: (C) 2015 Julia Lawall, Inria. GPLv2. // URL: http://coccinelle.lip6.fr/ // Options: --no-includes --include-headers // Requires: 1.0.4 // Keywords: for_each_child_of_node, etc. // This uses a conjunction, which requires at least coccinelle >= 1.0.4 virtual patch virtual context virtual org virtual report @r exists@ expression e1,e2; local idexpression n; iterator name for_each_node_by_name, for_each_node_by_type, for_each_compatible_node, for_each_matching_node, for_each_matching_node_and_match, for_each_child_of_node, for_each_available_child_of_node, for_each_node_with_property; iterator i; position p1,p2; statement S; @@ ( ( for_each_node_by_name(n,e1) S | for_each_node_by_type(n,e1) S | for_each_compatible_node(n,e1,e2) S | for_each_matching_node(n,e1) S | for_each_matching_node_and_match(n,e1,e2) S | for_each_child_of_node(e1,n) S | for_each_available_child_of_node(e1,n) S | for_each_node_with_property(n,e1) S ) & i@p1(...) { ... when != of_node_get(n) when any of_node_put@p2(n); ... when any } ) @s exists@ local idexpression r.n; statement S; position r.p1,r.p2; iterator i; @@ of_node_put@p2(n); ... when any i@p1(..., n, ...) S @t depends on s && patch && !context && !org && !report@ local idexpression n; position r.p2; @@ - of_node_put@p2(n); // ---------------------------------------------------------------------------- @t_context depends on s && !patch && (context || org || report)@ local idexpression n; position r.p2; position j0; @@ * of_node_put@j0@p2(n); // ---------------------------------------------------------------------------- @script:python t_org depends on org@ j0 << t_context.j0; @@ msg = "ERROR: probable double put." coccilib.org.print_todo(j0[0], msg) // ---------------------------------------------------------------------------- @script:python t_report depends on report@ j0 << t_context.j0; @@ msg = "ERROR: probable double put." coccilib.report.print_report(j0[0], msg) c786cc6f87852693227fb0b1f124f807'>diff
path: root/include/uapi/drm/qxl_drm.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-12-25 14:30:04 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2016-12-25 14:30:04 -0800
commit3ddc76dfc786cc6f87852693227fb0b1f124f807 (patch)
tree8192b4721e05cf6823087f9696db8c0c8f144b02 /include/uapi/drm/qxl_drm.h
parentb272f732f888d4cf43c943a40c9aaa836f9b7431 (diff)
parent1f3a8e49d8f28f498b8694464623ac20aebfe62a (diff)
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer type cleanups from Thomas Gleixner: "This series does a tree wide cleanup of types related to timers/timekeeping. - Get rid of cycles_t and use a plain u64. The type is not really helpful and caused more confusion than clarity - Get rid of the ktime union. The union has become useless as we use the scalar nanoseconds storage unconditionally now. The 32bit timespec alike storage got removed due to the Y2038 limitations some time ago. That leaves the odd union access around for no reason. Clean it up. Both changes have been done with coccinelle and a small amount of manual mopping up" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: ktime: Get rid of ktime_equal() ktime: Cleanup ktime_set() usage ktime: Get rid of the union clocksource: Use a plain u64 instead of cycle_t
Diffstat (limited to 'include/uapi/drm/qxl_drm.h')