The variable virq_port of type uint32_t was compared to being greater than
-1. This check always results in false for unsigned data types, resulting
in never cleaning up the memory. Furthermore, the initialization with a
negative variable for an unsigned type has been fixed.
Signed-off-by: Norbert Manthey <nmanthey@amazon.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
#include <stdlib.h>
#include <string.h>
-static evtchn_port_t virq_port = -1;
+static evtchn_port_t virq_port = ~0;
static xenevtchn_handle *xce_handle = NULL;
static xc_interface *xch = NULL;
static struct xs_handle *xs_handle = NULL;
void cleanup(void)
{
- if (virq_port > -1)
+ if (virq_port != ~0)
xenevtchn_unbind(xce_handle, virq_port);
if (xce_handle)
xenevtchn_close(xce_handle);