[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: Build problems in kdd.c with xen-4.14.0-rc4
> -----Original Message----- > From: Xen-devel <xen-devel-bounces@xxxxxxxxxxxxxxxxxxxx> On Behalf Of Olaf > Hering > Sent: 02 July 2020 19:38 > To: Michael Young <m.a.young@xxxxxxxxxxxx> > Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx; Tim Deegan <tim@xxxxxxx> > Subject: Re: Build problems in kdd.c with xen-4.14.0-rc4 > > On Tue, Jun 30, Michael Young wrote: > > > I get the following errors when trying to build xen-4.14.0-rc4 > > This happens to work for me. > > Olaf > > --- > tools/debugger/kdd/kdd.c | 8 ++++---- > 1 file changed, 3 insertions(+), 3 deletions(-) > > --- a/tools/debugger/kdd/kdd.c > +++ b/tools/debugger/kdd/kdd.c > @@ -742,25 +742,25 @@ static void kdd_tx(kdd_state *s) > int i; > > /* Fix up the checksum before we send */ > for (i = 0; i < s->txp.h.len; i++) > sum += s->txp.payload[i]; > s->txp.h.sum = sum; > > kdd_log_pkt(s, "TX", &s->txp); > > len = s->txp.h.len + sizeof (kdd_hdr); > if (s->txp.h.dir == KDD_DIR_PKT) > /* Append the mysterious 0xaa byte to each packet */ > - s->txb[len++] = 0xaa; > + s->txp.payload[len++] = 0xaa; That doesn't look quite right. I think you need [len++ - sizeof(kdd_hdr)] there. > > (void) blocking_write(s->fd, s->txb, len); > } > > > /* Send an acknowledgement to the client */ > static void kdd_send_ack(kdd_state *s, uint32_t id, uint16_t type) > { > s->txp.h.dir = KDD_DIR_ACK; > s->txp.h.type = type; > s->txp.h.len = 0; > s->txp.h.id = id; > @@ -775,25 +775,25 @@ static void kdd_send_cmd(kdd_state *s, uint32_t > subtype, size_t extra) > s->txp.h.type = KDD_PKT_CMD; > s->txp.h.len = sizeof (kdd_cmd) + extra; > s->txp.h.id = (s->next_id ^= 1); > s->txp.h.sum = 0; > s->txp.cmd.subtype = subtype; > kdd_tx(s); > } > > /* Cause the client to print a string */ > static void kdd_send_string(kdd_state *s, char *fmt, ...) > { > uint32_t len = 0xffff - sizeof (kdd_msg); > - char *buf = (char *) s->txb + sizeof (kdd_hdr) + sizeof (kdd_msg); > + char *buf = (char *) &s->txp + sizeof (kdd_hdr) + sizeof (kdd_msg); > va_list ap; > > va_start(ap, fmt); > len = vsnprintf(buf, len, fmt, ap); > va_end(ap); > > s->txp.h.dir = KDD_DIR_PKT; > s->txp.h.type = KDD_PKT_MSG; > s->txp.h.len = sizeof (kdd_msg) + len; > s->txp.h.id = (s->next_id ^= 1); > s->txp.h.sum = 0; > s->txp.msg.subtype = KDD_MSG_PRINT; > @@ -807,25 +807,25 @@ static void kdd_break(kdd_state *s) > { > uint16_t ilen; > KDD_LOG(s, "Break\n"); > > if (s->running) > kdd_halt(s->guest); > s->running = 0; > > { > unsigned int i; > /* XXX debug pattern */ > for (i = 0; i < 0x100 ; i++) > - s->txb[sizeof (kdd_hdr) + i] = i; > + s->txp.payload[sizeof (kdd_hdr) + i] = i; Again, drop the sizeof(kdd_hdr) here I think. Paul > } > > /* Send a state-change message to the client so it knows we've stopped */ > s->txp.h.dir = KDD_DIR_PKT; > s->txp.h.type = KDD_PKT_STC; > s->txp.h.len = sizeof (kdd_stc); > s->txp.h.id = (s->next_id ^= 1); > s->txp.stc.subtype = KDD_STC_STOP; > s->txp.stc.stop.cpu = s->cpuid; > s->txp.stc.stop.ncpus = kdd_count_cpus(s->guest); > s->txp.stc.stop.kthread = 0; /* Let the debugger figure it out */ > s->txp.stc.stop.status = KDD_STC_STATUS_BREAKPOINT;
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |