diff options
author | Pierre Riteau <Pierre.Riteau@irisa.fr> | 2009-11-25 18:49:35 +0000 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-12-03 09:41:35 -0600 |
commit | 2e50326c44c802ca9b9d591341085e49208927be (patch) | |
tree | 24b82990a051e7552f02b07dcc4bcd8d85650d4b /net | |
parent | 6720b35b8186e9c6a9f137c02f8c2c1e7c98085f (diff) | |
download | qemu-2e50326c44c802ca9b9d591341085e49208927be.zip qemu-2e50326c44c802ca9b9d591341085e49208927be.tar.gz qemu-2e50326c44c802ca9b9d591341085e49208927be.tar.bz2 |
net: check for TUNSETOFFLOAD support before trying to enable offload features
This avoids the "TUNSETOFFLOAD ioctl() failed: Invalid argument" message
on kernels without TUNSETOFFLOAD support.
Signed-off-by: Pierre Riteau <Pierre.Riteau@irisa.fr>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/tap-linux.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/tap-linux.c b/net/tap-linux.c index e4f7e27..6af9e82 100644 --- a/net/tap-linux.c +++ b/net/tap-linux.c @@ -131,6 +131,11 @@ void tap_fd_set_offload(int fd, int csum, int tso4, { unsigned int offload = 0; + /* Check if our kernel supports TUNSETOFFLOAD */ + if (ioctl(fd, TUNSETOFFLOAD, 0) != 0 && errno == EINVAL) { + return; + } + if (csum) { offload |= TUN_F_CSUM; if (tso4) |