Hi Dave, I have updated the patch to use + eu = (struct eu_state *)&buf[i * dh.per_thread_scratch]; and I think + eu = (struct eu_state *)(buf + i*dh.per_thread_scratch); is better. So I attach the patch in the attachment. Thanks for reviewing. On Thu, Apr 30, 2015 at 7:15 AM, Dave Gordon <david.s.gordon@xxxxxxxxx> wrote: > On 27/04/15 17:20, Yunlian Jiang wrote: >> Thomas, >> Thanks for the review. This time I put the patch in the attachment so >> it should be applied cleanly. >> I added Signed-off-by line too. >> Thanks >> >> From c2f6ecc1c8837abd87aa2da5510281a4833b2a27 Mon Sep 17 00:00:00 2001 >> From: Yunlian Jiang <yunlian@xxxxxxxxxxxx> >> Date: Mon, 27 Apr 2015 09:14:33 -0700 >> Subject: [PATCH 3432/3432] Remove struct per_thread_data to make it compile >> with clang. >> >> The bug enty is https://code.google.com/p/chromium/issues/detail?id=476001 >> This patch makes clang happy. >> >> Cc:Benjamin Widawsky <benjamin.widawsky at intel.com> >> Cc:Thomas Wood <thomas.wood at intel.com> >> Signed-off-by: Yunlian Jiang <yunlian at chromium.org> >> --- >> debugger/eudb.c | 6 +----- >> 1 file changed, 1 insertion(+), 5 deletions(-) >> >> diff --git a/debugger/eudb.c b/debugger/eudb.c >> index 0e810db..21405ef 100644 >> --- a/debugger/eudb.c >> +++ b/debugger/eudb.c >> @@ -207,15 +207,11 @@ wait_for_attn(int timeout, int *out_bits) { >> #define eu_tid(bit) eu_info->debuggees[bit].tid >> static struct eu_state * >> find_eu_shmem(int bit, volatile uint8_t *buf) { >> - struct per_thread_data { >> - uint8_t ____[dh.per_thread_scratch]; >> - }__attribute__((packed)) *data; >> struct eu_state *eu; >> int mem_tid, mem_euid, i; >> >> - data = (struct per_thread_data *)buf; >> for(i = 0; i < eu_info->num_threads; i++) { >> - eu = (struct eu_state *)&data[i]; >> + eu = (struct eu_state *)&data[i * dh.per_thread_scratc]; > > This line can't be right! AFAICS, you don't have anything called 'data' > in scope now (you deleted the declaration); also, there's an 'h' missing > right at the end, just before the closing ']' :( > > Perhaps it should say: > > + eu = (struct eu_state *)&buf[i * dh.per_thread_scratch]; > > or even: > > + eu = (struct eu_state *)(buf + i*dh.per_thread_scratch); > > .Dave. > >> mem_tid = eu->sr0 & 0x7; >> mem_euid = (eu->sr0 >> 8) & 0xf; >> if (mem_tid == eu_tid(bit) && mem_euid == eu_id(bit)) >> -- 2.2.0.rc0.207.ga3a616c > > >
From bdfb2390a1f819b091043bb30284b1b961fdb07a Mon Sep 17 00:00:00 2001 From: Yunlian Jiang <yunlian@xxxxxxxxxx> Date: Mon, 27 Apr 2015 12:45:09 -0700 Subject: [PATCH 3442/3442] Remove struct per_thread_data to make it compile with clang. The bug enty is https://code.google.com/p/chromium/issues/detail?id=476001 This patch makes clang happy. Cc:Benjamin Widawsky <benjamin.widawsky at intel.com> Cc:Thomas Wood <thomas.wood at intel.com> Signed-off-by: Yunlian Jiang <yunlian at chromium.org> --- debugger/eudb.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/debugger/eudb.c b/debugger/eudb.c index 0e810db..39c5cca 100644 --- a/debugger/eudb.c +++ b/debugger/eudb.c @@ -207,15 +207,11 @@ wait_for_attn(int timeout, int *out_bits) { #define eu_tid(bit) eu_info->debuggees[bit].tid static struct eu_state * find_eu_shmem(int bit, volatile uint8_t *buf) { - struct per_thread_data { - uint8_t ____[dh.per_thread_scratch]; - }__attribute__((packed)) *data; struct eu_state *eu; int mem_tid, mem_euid, i; - data = (struct per_thread_data *)buf; for(i = 0; i < eu_info->num_threads; i++) { - eu = (struct eu_state *)&data[i]; + eu = (struct eu_state *)(buf + i * dh.per_thread_scratch); mem_tid = eu->sr0 & 0x7; mem_euid = (eu->sr0 >> 8) & 0xf; if (mem_tid == eu_tid(bit) && mem_euid == eu_id(bit)) -- 2.2.0.rc0.207.ga3a616c
_______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx