[meta-intel] [meta-intel LMS][PATCHV3] Added 0003-Fix-device-file-referance-to-dev-mei0-remove-select.patch patch.

Wold, Saul saul.wold at intel.com
Sat Jul 8 16:49:27 PDT 2017


Anand,

I am sorry, I am going to have to reject this again, you did not
provide a properly formatted main commit message to the patch.

Again, please review: https://www.openembedded.org/wiki/Commit_Patch_Me
ssage_Guidelines

The commit message subject is poorly formatted and a one-line commit
message is not acceptable, please say WHY this patch is needed, this
can be a summary of the LMS patch commit message below.

Thanks

Sau!



On Fri, 2017-07-07 at 17:22 -0700, Anand Vastrad wrote:
> Signed-off-by: Anand Vastrad <anand.vastrad at intel.com>
> ---
>  ...-file-referance-to-dev-mei0-remove-select.patch | 91
> ++++++++++++++++++++++
>  common/recipes-bsp/amt/lms8_8.0.0-7.bb             |  1 +
>  2 files changed, 92 insertions(+)
>  create mode 100644 common/recipes-bsp/amt/lms/0003-Fix-device-file-
> referance-to-dev-mei0-remove-select.patch
> 
> diff --git a/common/recipes-bsp/amt/lms/0003-Fix-device-file-
> referance-to-dev-mei0-remove-select.patch b/common/recipes-
> bsp/amt/lms/0003-Fix-device-file-referance-to-dev-mei0-remove-
> select.patch
> new file mode 100644
> index 0000000..433d301
> --- /dev/null
> +++ b/common/recipes-bsp/amt/lms/0003-Fix-device-file-referance-to-
> dev-mei0-remove-select.patch
> @@ -0,0 +1,91 @@
> +Fix device file referance to /dev/mei0, remove select post write.
> +
> +LMS uses /dev/mei character device which is absent on current kernel
> versions causing LMS fail to initialize. LMS sends messages to MEI
> with a post select timeout. Select timeout causes SendMessage to fail
> causing LMS to not to communicate properly with MEI.
> +
> +Adding /dev/mei0 device file reference to check first and then
> /dev/mei sucessfully initializes LMS. Rely on write return length and
> remove select with timeout to fix communication with MEI.
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Anand Vastrad <anand.vastrad at intel.com>
> +---
> + src/mei/MEILinux.cpp | 43 +++++++--------------------------------
> ----
> + 1 file changed, 7 insertions(+), 36 deletions(-)
> +
> +diff --git a/src/mei/MEILinux.cpp b/src/mei/MEILinux.cpp
> +index 1e9d28f..6d23f54 100755
> +--- a/src/mei/MEILinux.cpp
> ++++ b/src/mei/MEILinux.cpp
> +@@ -94,13 +94,17 @@ bool MEILinux::Init(unsigned char
> reqProtocolVersion)
> + 		Deinit();
> + 	}
>> +-	_fd = open("/dev/mei", O_RDWR);
> ++	_fd = open("/dev/mei0", O_RDWR);
>> + 	if (_fd == -1 ) {
> + 		if (_verbose) {
> +-			fprintf(stderr, "Error: Cannot establish a
> handle to the MEI driver\n");
> ++			fprintf(stderr, "Warning: Cannot establish
> a handle to the MEI driver mei0, retrying with mei \n");
> ++		}
> ++		_fd = open("/dev/mei", O_RDWR);
> ++		if (_fd == -1 ) {
> ++			fprintf(stderr, "Error: Cannot establish a
> handle to the MEI driver mei\n");
> ++			return false;
> + 		}
> +-		return false;
> + 	}
> + 	_initialized = true;
>> +@@ -181,13 +185,7 @@ int MEILinux::ReceiveMessage(unsigned char
> *buffer, int len, unsigned long timeo
> + int MEILinux::SendMessage(const unsigned char *buffer, int len,
> unsigned long timeout)
> + {
> + 	int rv = 0;
> +-	int return_length =0;
> + 	int error = 0;
> +-	fd_set set;
> +-	struct timeval tv;
> +-
> +-	tv.tv_sec =  timeout / 1000;
> +-	tv.tv_usec =(timeout % 1000) * 1000000;
>> + 	if (_verbose) {
> + 		fprintf(stdout, "call write length = %d\n", len);
> +@@ -198,35 +196,8 @@ int MEILinux::SendMessage(const unsigned char
> *buffer, int len, unsigned long ti
> + 		if (_verbose) {
> + 			fprintf(stderr,"write failed with status %d
> %d\n", rv, error);
> + 		}
> +-		goto out;
> +-	}
> +-
> +-	return_length = rv;
> +-
> +-	FD_ZERO(&set);
> +-	FD_SET(_fd, &set);
> +-	rv = select(_fd+1 ,&set, NULL, NULL, &tv);
> +-	if (rv > 0 && FD_ISSET(_fd, &set)) {
> +-		if (_verbose) {
> +-			fprintf(stderr, "write success\n");
> +-		}
> + 	}
> +-	else if (rv == 0) {
> +-		if (_verbose) {
> +-			fprintf(stderr, "write failed on timeout
> with status\n");
> +-		}
> +-		goto out;
> +-	}
> +-	else { //rv<0
> +-		if (_verbose) {
> +-			fprintf(stderr, "write failed on select
> with status %d\n", rv);
> +-		}
> +-		goto out;
> +-	}
> +-
> +-	rv = return_length;
>> +-out:
> + 	if (rv < 0) {
> + 		Deinit();
> + 	}
> +-- 
> +2.7.4
> +
> diff --git a/common/recipes-bsp/amt/lms8_8.0.0-7.bb b/common/recipes-
> bsp/amt/lms8_8.0.0-7.bb
> index 842e34a..145b307 100644
> --- a/common/recipes-bsp/amt/lms8_8.0.0-7.bb
> +++ b/common/recipes-bsp/amt/lms8_8.0.0-7.bb
> @@ -12,6 +12,7 @@ SRC_URI = "http://software.intel.com/sites/default/
> files/${BPN}-${PV}.tar.gz \
>             file://0001-Protocol.cpp-Add-whitespace-for-gcc6-compile-
> error.patch \
>             file://0001-Include-sys-select.h-for-fd_set.patch \
>             file://0002-Use-proper-netinet-in.h-API.patch \
> +           file://0003-Fix-device-file-referance-to-dev-mei0-remove-
> select.patch \
>             "
>  
>  COMPATIBLE_HOST = '(i.86|x86_64).*-linux'


More information about the meta-intel mailing list