<div dir="ltr"><div dir="ltr"><div dir="ltr"><br><div class="gmail_quote"><div dir="ltr">On Fri, Nov 9, 2018 at 2:45 PM Eric Engestrom <<a href="mailto:eric.engestrom@intel.com">eric.engestrom@intel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Tuesday, 2018-09-11 15:42:04 +0300, <a href="mailto:asimiklit.work@gmail.com" target="_blank">asimiklit.work@gmail.com</a> wrote:<br>
> From: Andrii Simiklit <<a href="mailto:andrii.simiklit@globallogic.com" target="_blank">andrii.simiklit@globallogic.com</a>><br>
> <br>
> 1. tools/i965_disasm.c:58:4: warning:<br>
> ignoring return value of ‘fread’,<br>
> declared with attribute warn_unused_result<br>
> fread(assembly, *end, 1, fp);<br>
> <br>
> 2. tools/aub_read.c:271:31: warning: unused variable ‘end’<br>
> const uint32_t *p = data, *end = data + data_len, *next;<br>
> <br>
> 3. tools/aub_mem.c:292:13: warning: unused variable ‘res’<br>
> void *res = mmap((uint8_t *)bo.map + map_offset, 4096, PROT_READ,<br>
> tools/aub_mem.c:357:13: warning: unused variable ‘res’<br>
> void *res = mmap((uint8_t *)bo.map + (page - bo.addr), 4096, PROT_READ,<br>
> <br>
> Signed-off-by: Andrii Simiklit <<a href="mailto:andrii.simiklit@globallogic.com" target="_blank">andrii.simiklit@globallogic.com</a>><br>
> ---<br>
> src/intel/tools/aub_mem.c | 10 ++++++----<br>
> src/intel/tools/aub_read.c | 2 +-<br>
> src/intel/tools/i965_disasm.c | 3 ++-<br>
> 3 files changed, 9 insertions(+), 6 deletions(-)<br>
> <br>
> diff --git a/src/intel/tools/aub_mem.c b/src/intel/tools/aub_mem.c<br>
> index 58b51b7..98e1421 100644<br>
> --- a/src/intel/tools/aub_mem.c<br>
> +++ b/src/intel/tools/aub_mem.c<br>
> @@ -289,8 +289,9 @@ aub_mem_get_ggtt_bo(void *_mem, uint64_t address)<br>
> continue;<br>
> <br>
> uint32_t map_offset = i->virt_addr - address;<br>
> - void *res = mmap((uint8_t *)bo.map + map_offset, 4096, PROT_READ,<br>
> - MAP_SHARED | MAP_FIXED, mem->mem_fd, phys_mem->fd_offset);<br>
> + MAYBE_UNUSED void *res =<br>
> + mmap((uint8_t *)bo.map + map_offset, 4096, PROT_READ,<br>
> + MAP_SHARED | MAP_FIXED, mem->mem_fd, phys_mem->fd_offset);<br>
> assert(res != MAP_FAILED);<br>
> }<br>
> <br>
> @@ -354,8 +355,9 @@ aub_mem_get_ppgtt_bo(void *_mem, uint64_t address)<br>
> for (uint64_t page = address; page < end; page += 4096) {<br>
> struct phys_mem *phys_mem = ppgtt_walk(mem, mem->pml4, page);<br>
> <br>
> - void *res = mmap((uint8_t *)bo.map + (page - bo.addr), 4096, PROT_READ,<br>
> - MAP_SHARED | MAP_FIXED, mem->mem_fd, phys_mem->fd_offset);<br>
> + MAYBE_UNUSED void *res =<br>
> + mmap((uint8_t *)bo.map + (page - bo.addr), 4096, PROT_READ,<br>
> + MAP_SHARED | MAP_FIXED, mem->mem_fd, phys_mem->fd_offset);<br>
> assert(res != MAP_FAILED);<br>
> }<br>
> <br>
<br>
R-b on the above <br></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> diff --git a/src/intel/tools/aub_read.c b/src/intel/tools/aub_read.c<br>
> index 5b704e8..0a1f84a 100644<br>
> --- a/src/intel/tools/aub_read.c<br>
> +++ b/src/intel/tools/aub_read.c<br>
> @@ -268,7 +268,7 @@ handle_memtrace_mem_write(struct aub_read *read, const uint32_t *p)<br>
> int<br>
> aub_read_command(struct aub_read *read, const void *data, uint32_t data_len)<br>
> {<br>
> - const uint32_t *p = data, *end = data + data_len, *next;<br>
> + MAYBE_UNUSED const uint32_t *p = data, *end = data + data_len, *next;<br>
<br>
You're flagging all of them as MAYBE_UNUSED; please split out the one<br>
variable for which it applies?<br></blockquote><div><br></div><div>I agree, will fix.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> uint32_t h, header_length, bias;<br>
> <br>
> assert(data_len >= 4);<br>
> diff --git a/src/intel/tools/i965_disasm.c b/src/intel/tools/i965_disasm.c<br>
> index 73a6760..e207def 100644<br>
> --- a/src/intel/tools/i965_disasm.c<br>
> +++ b/src/intel/tools/i965_disasm.c<br>
> @@ -55,7 +55,8 @@ i965_disasm_read_binary(FILE *fp, size_t *end)<br>
> if (assembly == NULL)<br>
> return NULL;<br>
> <br>
> - fread(assembly, *end, 1, fp);<br>
> + MAYBE_UNUSED size_t size = fread(assembly, *end, 1, fp);<br>
> + assert((size == *end) && "error: unable to read all elements!");<br>
<br>
Please split this out in a separate patch, and I don't think this<br>
`size == *end` is right<br>
<br>
>From `man 3 fread`:<br>
> On success, fread() and fwrite() return the number of items read or<br>
> written. This number equals the number of bytes transferred only when<br>
> size is 1.<br>
<br>
but here, size is `*end` and nmemb is `1`, so I would expect fread to<br>
return 1 on success and 0 on failure.<br>
Have you tested this? What value did you see?<br>
<br>
You can test the complete EOF failure path by adding this just before<br>
fread():<br>
fseek(fp, 0, SEEK_END);<br>
<br>
And the more insidious "just a bit too short" failure path with:<br>
fseek(fp, 1, SEEK_CUR);<br></blockquote><div> </div>Ops, I didn't notice that they are swapped. Thanks a lot :)<br>I will test it before fix :)<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> fclose(fp);<br>
> <br>
> return assembly;<br>
> -- <br>
> 2.7.4<br>
> <br>
> _______________________________________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div></div></div></div>