mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xg_main: If XEN_DOMCTL_gdbsx_guestmemio fails then force error.
Without this gdb does not report an error. With this patch and using a 1G hvm domU: (gdb) x/1xh 0x6ae9168b 0x6ae9168b: Cannot access memory at address 0x6ae9168b Drop output of iop->remain because it most likely will be zero. This leads to a strange message: ERROR: failed to read 0 bytes. errno:14 rc:-1 Add address to write error because it may be the only message displayed. Note: currently XEN_DOMCTL_gdbsx_guestmemio does not change 'iop' on error and so iop->remain will be zero. Signed-off-by: Don Slutz <dslutz@verizon.com> Acked-by: Mukesh Rathor <mukesh.rathor@oracle.com>
This commit is contained in:
1 parent
dfbd3d62cd
commit
f91dc2000a
1 file changed
+9
-4
@@ -787,8 +787,10 @@ xg_read_mem(uint64_t guestva, char *tobuf, int tobuf_len, uint64_t pgd3val)
|
||||
iop->gwr = 0; /* not writing to guest */
|
||||
|
||||
if ( (rc = _domctl_hcall(XEN_DOMCTL_gdbsx_guestmemio, tobuf, tobuf_len)) )
|
||||
XGTRC("ERROR: failed to read %d bytes. errno:%d rc:%d\n",
|
||||
iop->remain, errno, rc);
|
||||
{
|
||||
XGTRC("ERROR: failed to read bytes. errno:%d rc:%d\n", errno, rc);
|
||||
return tobuf_len;
|
||||
}
|
||||
|
||||
for(i=0; i < XGMIN(8, tobuf_len); u.buf8[i]=tobuf[i], i++);
|
||||
XGTRC("X:remain:%d buf8:0x%llx\n", iop->remain, u.llbuf8);
|
||||
@@ -818,8 +820,11 @@ xg_write_mem(uint64_t guestva, char *frombuf, int buflen, uint64_t pgd3val)
|
||||
iop->gwr = 1; /* writing to guest */
|
||||
|
||||
if ((rc=_domctl_hcall(XEN_DOMCTL_gdbsx_guestmemio, frombuf, buflen)))
|
||||
XGERR("ERROR: failed to write %d bytes. errno:%d rc:%d\n",
|
||||
iop->remain, errno, rc);
|
||||
{
|
||||
XGERR("ERROR: failed to write bytes to %llx. errno:%d rc:%d\n",
|
||||
guestva, errno, rc);
|
||||
return buflen;
|
||||
}
|
||||
return iop->remain;
|
||||
}
|
||||
|
||||
|
||||