From e50645ce9bd0a1e84cf261c54f2ef868348e0022 Mon Sep 17 00:00:00 2001 From: Michal Wasiak <michal.wasiak@gmail.com> Date: Tue, 20 Oct 2020 12:56:44 +0200 Subject: [PATCH] RTU: check rtu shmem version on restart Check rtu shmem version on restart and make it populated earlier on regular start. Signed-off-by: Michal Wasiak <michal.wasiak@gmail.com> --- userspace/wrsw_rtud/rtu_fd.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/userspace/wrsw_rtud/rtu_fd.c b/userspace/wrsw_rtud/rtu_fd.c index c9e4a61ff..fe962979f 100644 --- a/userspace/wrsw_rtud/rtu_fd.c +++ b/userspace/wrsw_rtud/rtu_fd.c @@ -152,7 +152,15 @@ int rtu_fd_init(uint16_t poly, unsigned long aging) /* for first RTUd run */ pr_debug("Alloc rtu_hdr\n"); rtu_hdr = wrs_shm_alloc(rtu_shmem_p, sizeof(*rtu_hdr)); + /* add version info */ + rtu_shmem_p->version = RTU_SHMEM_VERSION; } else { + if (rtu_shmem_p->version != RTU_SHMEM_VERSION) { + pr_error("%s: Wrong shmem version %d, expected %d\n", + __func__, rtu_shmem_p->version, RTU_SHMEM_VERSION); + return -1; + } + /* rtu_hdr was created at header->offset */ rtu_hdr = (void *)rtu_shmem_p + rtu_shmem_p->data_off; } @@ -238,8 +246,6 @@ int rtu_fd_init(uint16_t poly, unsigned long aging) pr_error("%s: Cannot allocate mem in shmem\n", __func__); return -1; } - /* add version info */ - rtu_shmem_p->version = RTU_SHMEM_VERSION; pr_debug("clean aging map.\n"); rtu_read_aging_bitmap(bitmap); // clean aging registers -- GitLab