Fix SIGBUS on aarch64 26/7226/3
authorChristophe Fontaine <christophe.fontaine@enea.com>
Tue, 20 Jun 2017 11:57:47 +0000 (13:57 +0200)
committerDamjan Marion <dmarion.lists@gmail.com>
Thu, 29 Jun 2017 11:40:45 +0000 (11:40 +0000)
A call to 'clib_smp_swap (&((dq)->interrupt_pending), 0)' was creating
a SIGBUS.
Instead of making dq->interrupt_pending aligned on 64bits, we reduce the size
from uword (u64) to u32, as the number of pending interrupts will never
go above max of u32.

Change-Id: Ifa5a6d3b7adee222329a671be01305cf50853b33
Signed-off-by: Christophe Fontaine <christophe.fontaine@enea.com>
src/vnet/devices/devices.h

index f1f7e77..b74e371 100644 (file)
@@ -61,7 +61,7 @@ typedef struct
   u32 dev_instance;
   u16 queue_id;
   vnet_hw_interface_rx_mode mode;
-  uword interrupt_pending;
+  u32 interrupt_pending;
 } vnet_device_and_queue_t;
 
 typedef struct