Commit Graph

7 Commits

Author SHA1 Message Date
Jan Friesse
b93d75abc4 schedwrk: Cleanup and make it work on PPC BE
Schedwrk is passing hdb handle (64-bit) to
totempg_callback_token_create as a context. Context is defined to be
pointer, so there is conversion function which stores 64-bit hdb_handle
into pointer. Potentially, pointer can be 32-bit. This means, check
part of hdb is discarded (and have to get special no_check value in
schedwrk_do) later. This works quite well on 32-bit Little-Endian
system. Sadly on Big-Endian system, check partition of hdb is stored
instead of value. Result is error of hdb_handle_get call.

Proposed solution is to pass handle pointer to
totempg_callback_token_create as context. This means full hdb (check +
value) can be used in schedwrk_do (easier detection of memory
corruption).

Main reason for this patch is to remove usage of pointer as integer
value.

Small drawback of given solution is that handle pointer must be memory
allocated on heap or static memory, making API more bug-prone. Current
usage of schedwrk API across corosync always use memory in .text
section (safe), so it's not a problem.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2016-05-17 16:29:25 +02:00
Steven Dake
2ad0cdc832 Update copyright header dates in exec directory
Signed-off-by: Steven Dake <sdake@redhat.com>
Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
2012-02-13 17:05:04 -07:00
Jan Friesse
f4a644c711 Add schedwrk_create_nolock function
This patch adds schedwrk_create_nolock, which will not call
serialize_lock before execution of callback.


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2649 fd59a12c-fef9-0310-b244-a6a79926bd2f
2010-01-22 09:45:29 +00:00
Jim Meyering
62c2186d29 exec/schedwrk.c: include <config.h>
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2190 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-05-18 16:41:21 +00:00
Steven Dake
1beb0c1fbd Remove saHandleXXX and friends and use hdb instead.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2125 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-22 17:43:54 +00:00
Jim Meyering
7c312c6f62 schedwrk.c: avoid two int-pointer cast conversion warnings
* exec/schedwrk.c (void2handle, handle2void): New functions.
(schedwrk_do): Use void2handle rather than an unportable cast.
(schedwrk_create): Use handle2void rather than an unportable cast.

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2098 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-20 15:50:23 +00:00
Steven Dake
35b073a7f2 Add missing schedwrk files.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2090 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-18 14:42:09 +00:00