aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincenzo Maffione <vmaffione@FreeBSD.org>2020-10-03 09:33:29 +0000
committerVincenzo Maffione <vmaffione@FreeBSD.org>2020-10-03 09:33:29 +0000
commitadf41f0788ffb9094e35fce67891765ef04b4849 (patch)
treeedf2c566f1ffcf6e4596386bcde40d8fb78de388
parented188a7eceda02b272d5415da40ae793172d1a82 (diff)
Notes
-rw-r--r--sys/net/netmap_user.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/net/netmap_user.h b/sys/net/netmap_user.h
index 93cd450e77e7..de9b1ed3077e 100644
--- a/sys/net/netmap_user.h
+++ b/sys/net/netmap_user.h
@@ -290,7 +290,7 @@ struct nm_desc {
* when the descriptor is open correctly, d->self == d
* Eventually we should also use some magic number.
*/
-#define P2NMD(p) ((struct nm_desc *)(p))
+#define P2NMD(p) ((const struct nm_desc *)(p))
#define IS_NETMAP_DESC(d) ((d) && P2NMD(d)->self == P2NMD(d))
#define NETMAP_FD(d) (P2NMD(d)->fd)
@@ -616,7 +616,7 @@ nm_parse(const char *ifname, struct nm_desc *d, char *err)
const char *vpname = NULL;
u_int namelen;
uint32_t nr_ringid = 0, nr_flags;
- char errmsg[MAXERRMSG] = "";
+ char errmsg[MAXERRMSG] = "", *tmp;
long num;
uint16_t nr_arg2 = 0;
enum { P_START, P_RNGSFXOK, P_GETNUM, P_FLAGS, P_FLAGSOK, P_MEMID } p_state;
@@ -713,12 +713,13 @@ nm_parse(const char *ifname, struct nm_desc *d, char *err)
port++;
break;
case P_GETNUM:
- num = strtol(port, (char **)&port, 10);
+ num = strtol(port, &tmp, 10);
if (num < 0 || num >= NETMAP_RING_MASK) {
snprintf(errmsg, MAXERRMSG, "'%ld' out of range [0, %d)",
num, NETMAP_RING_MASK);
goto fail;
}
+ port = tmp;
nr_ringid = num & NETMAP_RING_MASK;
p_state = P_RNGSFXOK;
break;
@@ -760,11 +761,12 @@ nm_parse(const char *ifname, struct nm_desc *d, char *err)
snprintf(errmsg, MAXERRMSG, "double setting of memid");
goto fail;
}
- num = strtol(port, (char **)&port, 10);
+ num = strtol(port, &tmp, 10);
if (num <= 0) {
snprintf(errmsg, MAXERRMSG, "invalid memid %ld, must be >0", num);
goto fail;
}
+ port = tmp;
nr_arg2 = num;
p_state = P_RNGSFXOK;
break;
@@ -1044,7 +1046,7 @@ nm_inject(struct nm_desc *d, const void *buf, size_t size)
ring->slot[i].flags = NS_MOREFRAG;
nm_pkt_copy(buf, NETMAP_BUF(ring, idx), ring->nr_buf_size);
i = nm_ring_next(ring, i);
- buf = (char *)buf + ring->nr_buf_size;
+ buf = (const char *)buf + ring->nr_buf_size;
}
idx = ring->slot[i].buf_idx;
ring->slot[i].len = rem;