Fix compilation of netmap backend
v3 cover Fix compilation of netmap backend
This patch series adds some fixes to the netmap net backend. It contains two changes:
(1) Fix compilation issue of netmap.c introduced by the reorganization of struct NetClientOptions
(2) Address the FIXME comment that was asking to use error_setg() variants in place of error_report()
CHANGELOG:
- removed dead return and use error_setg_file_open() in place of error_setg_errno()
- I noticed that net_init_netmap() has to return int, so I restored the return statements in that function
Vincenzo Maffione (2):
net: netmap: Fix compilation issue
net: netmap: use error_setg() helpers in place of error_report()
net/netmap.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)
Signature · 1 line
2.6.2
PATCH v3 1/2 net: netmap: Fix compilation issue
Reorganization of struct NetClientOptions (commit e4ba22b) caused a compilation failure of the netmap backend. This patch fixes the issue by properly accessing the union field.
--- net/netmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/netmap.c +1 -1
@@ -439,7 +439,7 @@ int net_init_netmap(const NetClientOptions *opts, const char *name, NetClientState *peer, Error **errp) { /* FIXME error_setg(errp, ...) on failure */ - const NetdevNetmapOptions *netmap_opts = opts->netmap; + const NetdevNetmapOptions *netmap_opts = opts->u.netmap;NetClientState *nc;NetmapPriv me;NetmapState *s;
Signature · 1 line
2.6.2
PATCH v3 2/2 net: netmap: use error_setg() helpers in place of error_report()
In reply to Vincenzo MaffioneThis update was required to align error reporting of netmap backend initialization to the modifications introduced by commit a30ecde.
--- net/netmap.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
net/netmap.c +11 -11
@@ -90,7 +90,7 @@ pkt_copy(const void *_src, void *_dst, int l)* Open a netmap device. We assume there is only one queue * (which is the case for the VALE bridge). */ -static int netmap_open (NetmapPriv *me) +static void netmap_open (NetmapPriv *me,Error **errp) {int fd;int err;
@@ -99,9 +99,8 @@ static int netmap_open(NetmapPriv *me) me->fd = fd =open (me->fdname,O_RDWR );if (fd <0 ) { -error_report ("Unable to open netmap device '%s' (%s)" , - me->fdname,strerror (errno)); -return -1 ; +error_setg_file_open (errp, errno, me->fdname); +return ; }memset (&req,0 ,sizeof (req));pstrcpy (req.nr_name,sizeof (req.nr_name), me->ifname);
@@ -109,15 +108,14 @@ static int netmap_open(NetmapPriv *me) req.nr_version =NETMAP_API ; err =ioctl (fd,NIOCREGIF , &req);if (err) { -error_report ("Unable to register %s: %s" , me->ifname,strerror (errno)); +error_setg_errno (errp, errno,"Unable to register %s" , me->ifname); goto error; } l = me->memsize = req.nr_memsize; me->mem =mmap (0 , l,PROT_WRITE |PROT_READ ,MAP_SHARED , fd,0 );if (me->mem ==MAP_FAILED ) { -error_report ("Unable to mmap netmap shared memory: %s" , -strerror (errno)); +error_setg_errno (errp, errno,"Unable to mmap netmap shared memory" ); me->mem =NULL ; goto error; }
@@ -125,11 +123,11 @@ static int netmap_open(NetmapPriv *me) me->nifp =NETMAP_IF (me->mem, req.nr_offset); me->tx =NETMAP_TXRING (me->nifp,0 ); me->rx =NETMAP_RXRING (me->nifp,0 ); -return 0 ; + +return ; error:close (me->fd); -return -1 ; }static void netmap_send (void *opaque);
@@ -438,9 +436,9 @@ static NetClientInfo net_netmap_info = {int net_init_netmap (const NetClientOptions *opts,const char *name,NetClientState *peer,Error **errp) { -/* FIXME error_setg(errp, ...) on failure */ const NetdevNetmapOptions *netmap_opts = opts->u.netmap;NetClientState *nc; +Error *err =NULL ;NetmapPriv me;NetmapState *s;
@@ -448,7 +446,9 @@ int net_init_netmap(const NetClientOptions *opts, netmap_opts->has_devname ? netmap_opts->devname : "/dev/netmap");/* Set default name for the port if not supplied. */ pstrcpy (me.ifname,sizeof (me.ifname), netmap_opts->ifname); -if (netmap_open (&me)) { +netmap_open (&me, &err); +if (err) { +error_propagate (errp, err);return -1 ; }/* Create the object. */
Signature · 1 line
2.6.2
Quoted 13 lines · Vincenzo Maffione
This patch series adds some fixes to the netmap net backend. It contains two changes:
(1) Fix compilation issue ofnetmap.cintroduced by the reorganization of struct NetClientOptions
(2) Address the FIXME comment that was asking to useerror_setg()variants in place oferror_report()CHANGELOG:
- removed dead return and useerror_setg_file_open()in place oferror_setg_errno()
- I noticed thatnet_init_netmap()has to return int, so I restored the return statements in that function
Quoted 3 lines
Vincenzo Maffione (2):
net: netmap: Fix compilation issue
net: netmap: useerror_setg()helpers in place oferror_report()
Series belongs in 2.5.
Signature · 2 lines
Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Quoted 6 lines · Vincenzo Maffione
This patch series adds some fixes to the netmap net backend. It contains two changes:
(1) Fix compilation issue ofnetmap.cintroduced by the reorganization of struct NetClientOptions
(2) Address the FIXME comment that was asking to useerror_setg()variants in place oferror_report()
Series
Quoted 13 lines · Vincenzo Maffione
This patch series adds some fixes to the netmap net backend. It contains two changes:
(1) Fix compilation issue ofnetmap.cintroduced by the reorganization of struct NetClientOptions
(2) Address the FIXME comment that was asking to useerror_setg()variants in place oferror_report()CHANGELOG:
- removed dead return and useerror_setg_file_open()in place oferror_setg_errno()
- I noticed thatnet_init_netmap()has to return int, so I restored the return statements in that function
Quoted 7 lines
Vincenzo Maffione (2):
net: netmap: Fix compilation issue
net: netmap: useerror_setg()helpers in place oferror_report()net/netmap.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)
I've picked this series in https://github.com/jasowang/qemu/commits/net
Thanks