Hello,
Running the command (semantic patch is attached)
$ spatch --sp-file macro-err.cocci --dir drivers/staging/octeon-usb/octeon-hcd.c
from the root dir of linux-next-20140721, yields the following error:
init_defs_builtins: /usr/local/share/coccinelle/standard.h
HANDLING: drivers/staging/octeon-usb/octeon-hcd.c
Fatal error: exception Failure("drivers/staging/octeon-usb/octeon-hcd.c: 429:
try to delete an expanded token: {")
The code around where the exception happens (--->) reads:
/* This macro spins on a field waiting for it to reach a value */
#define CVMX_WAIT_FOR_FIELD32(address, type, field, op, value, timeout_usec)\
---> ({int result; \
do { \
uint64_t done = cvmx_get_cycle() + (uint64_t)timeout_usec * \
octeon_get_clock_rate() / 1000000; \
type c; \
while (1) { \
c.u32 = __cvmx_usb_read_csr32(usb, address); \
if (c.s.field op (value)) { \
result = 0; \
break; \
} else if (cvmx_get_cycle() > done) { \
result = -1; \
break; \
} else \
cvmx_wait(100); \
} \
} while (0); \
result; })
Should I change something in my invocation to deal with this macro ?
Thanks,
riccardo
@@
identifier func;
expression e;
identifier x;
statement S;
@@
func(...) {
<...
* if (<+... (x = e) ...+>) S
...>
}
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci