|
[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 |