.. | .. |
---|
47 | 47 | }; |
---|
48 | 48 | |
---|
49 | 49 | /* Convert the perf index to an offset within the ETR buffer */ |
---|
50 | | -#define PERF_IDX2OFF(idx, buf) ((idx) % ((buf)->nr_pages << PAGE_SHIFT)) |
---|
| 50 | +#define PERF_IDX2OFF(idx, buf) \ |
---|
| 51 | + ((idx) % ((unsigned long)(buf)->nr_pages << PAGE_SHIFT)) |
---|
51 | 52 | |
---|
52 | 53 | /* Lower limit for ETR hardware buffer */ |
---|
53 | 54 | #define TMC_ETR_PERF_MIN_BUF_SIZE SZ_1M |
---|
.. | .. |
---|
944 | 945 | |
---|
945 | 946 | len = tmc_etr_buf_get_data(etr_buf, offset, |
---|
946 | 947 | CORESIGHT_BARRIER_PKT_SIZE, &bufp); |
---|
947 | | - if (WARN_ON(len < CORESIGHT_BARRIER_PKT_SIZE)) |
---|
| 948 | + if (WARN_ON(len < 0 || len < CORESIGHT_BARRIER_PKT_SIZE)) |
---|
948 | 949 | return -EINVAL; |
---|
949 | 950 | coresight_insert_barrier_packet(bufp); |
---|
950 | 951 | return offset + CORESIGHT_BARRIER_PKT_SIZE; |
---|
.. | .. |
---|
1250 | 1251 | * than the size requested via sysfs. |
---|
1251 | 1252 | */ |
---|
1252 | 1253 | if ((nr_pages << PAGE_SHIFT) > drvdata->size) { |
---|
1253 | | - etr_buf = tmc_alloc_etr_buf(drvdata, (nr_pages << PAGE_SHIFT), |
---|
| 1254 | + etr_buf = tmc_alloc_etr_buf(drvdata, ((ssize_t)nr_pages << PAGE_SHIFT), |
---|
1254 | 1255 | 0, node, NULL); |
---|
1255 | 1256 | if (!IS_ERR(etr_buf)) |
---|
1256 | 1257 | goto done; |
---|