[oe] [meta-networking][PATCH] iscsi-initiator-utils: fix invoking 32bit "iscsiadm -m node" failed in 64bit kernel

Hongxu Jia hongxu.jia at windriver.com
Mon Dec 5 07:55:05 UTC 2016


On 04/12/16 16:34, Hongxu Jia wrote:
> Take struct iscsi_uevent *ev for example:
> In 64bit kernel : sizeof(ev->u): 24, sizeof(ev->r): 16,
> but in 32bit iscsid: sizeof(ev->u): 20, sizeof(ev->r): 16.
>
> While invoking 32bit "iscsiadm -m node" in 64bit kernel,
> we should force ev->u 8byte aligned.
>
> For "64bit iscsiadm + 64bit kernel" or "32bit iscsiadm + 32bit kernel",
> they do not need the fix, so conditionally apply the fix patch.
> (MLPREFIX is not NULL means multilib).
>
> Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
> ---
>   ...g-32bit-iscsiadm-m-node-failed-in-64bit-k.patch | 34 ++++++++++++++++++++++
>   .../iscsi-initiator-utils_2.0-873.bb               |  2 ++
>   2 files changed, 36 insertions(+)
>   create mode 100644 meta-networking/recipes-daemons/iscsi-initiator-utils/files/fix-invoking-32bit-iscsiadm-m-node-failed-in-64bit-k.patch
>
> diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/fix-invoking-32bit-iscsiadm-m-node-failed-in-64bit-k.patch b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/fix-invoking-32bit-iscsiadm-m-node-failed-in-64bit-k.patch
> new file mode 100644
> index 0000000..acb5c80
> --- /dev/null
> +++ b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/fix-invoking-32bit-iscsiadm-m-node-failed-in-64bit-k.patch
> @@ -0,0 +1,34 @@
> +From 03d6feb19ddaa46f54808a5d327c61bff248a228 Mon Sep 17 00:00:00 2001
> +From: Hongxu Jia <hongxu.jia at windriver.com>
> +Date: Sun, 4 Dec 2016 01:15:03 -0500
> +Subject: [PATCH] fix invoking 32bit "iscsiadm -m node" failed in 64bit kernel
> +
> +In 64bit kernel : sizeof(ev->u): 24, sizeof(ev->r): 16,
> +but in 32bit iscsid: sizeof(ev->u): 20, sizeof(ev->r): 16.
> +
> +While invoking 32bit "iscsiadm -m node" in 64bit kernel,
> +we should force ev->u 8byte aligned.
> +
> +Upstream-Status: Inappropriate [upstream does not support multilib]
> +
> +Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
> +---
> + include/iscsi_if.h | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/include/iscsi_if.h b/include/iscsi_if.h
> +index dad9fd8..17b6c3d 100644
> +--- a/include/iscsi_if.h
> ++++ b/include/iscsi_if.h
> +@@ -219,7 +219,7 @@ struct iscsi_uevent {
> + 			uint32_t	host_no;
> + 			uint16_t	chap_tbl_idx;
> + 		} delete_chap;
> +-	} u;
> ++	} __attribute__ ((aligned (sizeof(uint64_t)))) u;
> + 	union {
> + 		/* messages k -> u */
> + 		int			retcode;
> +--
> +2.8.1
> +
> diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb b/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb
> index 4b13155..d3724da 100644
> --- a/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb
> +++ b/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb
> @@ -22,7 +22,9 @@ SRC_URI = "http://www.open-iscsi.org/bits/open-iscsi-${PV}.tar.gz \
>              file://iscsi-initiator.service \
>              file://iscsi-initiator-targets.service \
>              file://set_initiatorname \
> +           ${@base_conditional('MLPREFIX', '', '','file://fix-invoking-32bit-iscsiadm-m-node-failed-in-64bit-k.patch', d)} \
>   "

Conditional patches is not good, we should keep one source code.

//Hongxu

> +
>   SRC_URI[md5sum] = "8b8316d7c9469149a6cc6234478347f7"
>   SRC_URI[sha256sum] = "7dd9f2f97da417560349a8da44ea4fcfe98bfd5ef284240a2cc4ff8e88ac7cd9"
>   





More information about the Openembedded-devel mailing list