Commit d811bcee authored by Stefano Stabellini's avatar Stefano Stabellini Committed by Juergen Gross

pvcalls-front: 64-bit align flags

We are using test_and_* operations on the status and flag fields of
struct sock_mapping. However, these functions require the operand to be
64-bit aligned on arm64. Currently, only status is 64-bit aligned.

Make status and flags explicitly 64-bit aligned.
Signed-off-by: default avatarStefano Stabellini <stefano@aporeto.com>
Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
parent 47b02f4c
...@@ -73,20 +73,25 @@ struct sock_mapping { ...@@ -73,20 +73,25 @@ struct sock_mapping {
wait_queue_head_t inflight_conn_req; wait_queue_head_t inflight_conn_req;
} active; } active;
struct { struct {
/* Socket status */ /*
* Socket status, needs to be 64-bit aligned due to the
* test_and_* functions which have this requirement on arm64.
*/
#define PVCALLS_STATUS_UNINITALIZED 0 #define PVCALLS_STATUS_UNINITALIZED 0
#define PVCALLS_STATUS_BIND 1 #define PVCALLS_STATUS_BIND 1
#define PVCALLS_STATUS_LISTEN 2 #define PVCALLS_STATUS_LISTEN 2
uint8_t status; uint8_t status __attribute__((aligned(8)));
/* /*
* Internal state-machine flags. * Internal state-machine flags.
* Only one accept operation can be inflight for a socket. * Only one accept operation can be inflight for a socket.
* Only one poll operation can be inflight for a given socket. * Only one poll operation can be inflight for a given socket.
* flags needs to be 64-bit aligned due to the test_and_*
* functions which have this requirement on arm64.
*/ */
#define PVCALLS_FLAG_ACCEPT_INFLIGHT 0 #define PVCALLS_FLAG_ACCEPT_INFLIGHT 0
#define PVCALLS_FLAG_POLL_INFLIGHT 1 #define PVCALLS_FLAG_POLL_INFLIGHT 1
#define PVCALLS_FLAG_POLL_RET 2 #define PVCALLS_FLAG_POLL_RET 2
uint8_t flags; uint8_t flags __attribute__((aligned(8)));
uint32_t inflight_req_id; uint32_t inflight_req_id;
struct sock_mapping *accept_map; struct sock_mapping *accept_map;
wait_queue_head_t inflight_accept_req; wait_queue_head_t inflight_accept_req;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment