From mboxrd@z Thu Jan 1 00:00:00 1970 From: xuyang2018.jy@fujitsu.com Date: Mon, 19 Apr 2021 01:42:51 +0000 Subject: [LTP] [PATCH v4 1/3] tst_safe_sysv_ipc.c: Add SAFE_SEMOP macro In-Reply-To: <1618215614-24840-1-git-send-email-xuyang2018.jy@fujitsu.com> References: <1618215614-24840-1-git-send-email-xuyang2018.jy@fujitsu.com> Message-ID: <607CEE48.80408@fujitsu.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: ltp@lists.linux.it Hi Alexey Thanks for your review. I have merged this patchset. Best Regards Yang Xu > Reviewed-by: Alexey Kodanev > Signed-off-by: Yang Xu > --- > include/tst_safe_sysv_ipc.h | 4 ++++ > lib/tst_safe_sysv_ipc.c | 18 ++++++++++++++++++ > 2 files changed, 22 insertions(+) > > diff --git a/include/tst_safe_sysv_ipc.h b/include/tst_safe_sysv_ipc.h > index bb6532662..7804ce192 100644 > --- a/include/tst_safe_sysv_ipc.h > +++ b/include/tst_safe_sysv_ipc.h > @@ -65,4 +65,8 @@ int safe_semctl(const char *file, const int lineno, int semid, int semnum, > (semid) = ((cmd) == IPC_RMID ? -1 : (semid)); \ > tst_ret_; }) > > +int safe_semop(const char *file, const int lineno, int semid, struct sembuf *sops, > + size_t nsops); > +#define SAFE_SEMOP(semid, sops, nsops) \ > + safe_semop(__FILE__, __LINE__, (semid), (sops), (nsops)) > #endif /* TST_SAFE_SYSV_IPC_H__ */ > diff --git a/lib/tst_safe_sysv_ipc.c b/lib/tst_safe_sysv_ipc.c > index e72985d61..012f5ba38 100644 > --- a/lib/tst_safe_sysv_ipc.c > +++ b/lib/tst_safe_sysv_ipc.c > @@ -227,3 +227,21 @@ int safe_semctl(const char *file, const int lineno, int semid, int semnum, > > return rval; > } > + > +int safe_semop(const char *file, const int lineno, int semid, struct sembuf *sops, > + size_t nsops) > +{ > + int rval; > + > + rval = semop(semid, sops, nsops); > + if (rval == -1) { > + tst_brk_(file, lineno, TBROK | TERRNO, > + "semop(%d, %p, %zu) failed", semid, sops, nsops); > + } else if (rval< 0) { > + tst_brk_(file, lineno, TBROK | TERRNO, > + "Invalid semop(%d, %p, %zu) return value %d", > + semid, sops, nsops, rval); > + } > + > + return rval; > +}