eal/linux: fix Rx interrupt read error management
authorCunming Liang <cunming.liang@intel.com>
Fri, 11 Dec 2015 01:48:57 +0000 (09:48 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Sat, 12 Dec 2015 21:34:43 +0000 (22:34 +0100)
commit246750eb96551ff4bb538b641e166f9516c8649a
tree7a2a7ff6d3639e82fa033efcbde80627c85d3b7c
parent248f9319f7b49540392b193cbf0c79f74d1afe0e
eal/linux: fix Rx interrupt read error management

In eal_intr_proc_rxtx_intr, negative value may be used as argument to
a function expecting a positive value. If 'read' returns EAGAIN as
example, the bytes_read updates to a negative value which continue
be passed as argument for the next 'read'.

Coverity issue: 107115

Function read(fd, &buf, bytes_read) returns a negative number.
Assigning: signed variable bytes_read = read.
CID 107115 (#1 of 1): Argument cannot be negative
(NEGATIVE_RETURNS) bytes_read is passed to a parameter
that cannot be negative.
    bytes_read = read(fd, &buf, bytes_read);

Fixes: c9f3ec1a0f3f ("eal/linux: add Rx interrupt control function")

Signed-off-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: David Marchand <david.marchand@6wind.com>
lib/librte_eal/linuxapp/eal/eal_interrupts.c