debuggers.hg

changeset 21113:18f4db5f72d7

VT-d: should not disable VT-d when find unknown DMAR structure type

Now 4 DMAR structure types are supported (type value 0 ~ 3). Type
values > 3 are reserved for future use. Current implementation
disables VT-d when find unknown DMAR structure type, this may lead to
VT-d disabling on future platforms before supporting new types on
Xen. For forward compatibility, just skip unknown structures by
skipping the appropriate number of bytes indicated by the Length
field, and then VT-d still can be used.

Signed-off-by: Weidong Han <weidong.han@intel.com>
author Keir Fraser <keir.fraser@citrix.com>
date Thu Mar 25 10:01:05 2010 +0000 (2010-03-25)
parents f42ff98a2cdc
children 71dddee38e65
files xen/drivers/passthrough/vtd/dmar.c
line diff
     1.1 --- a/xen/drivers/passthrough/vtd/dmar.c	Thu Mar 25 09:32:21 2010 +0000
     1.2 +++ b/xen/drivers/passthrough/vtd/dmar.c	Thu Mar 25 10:01:05 2010 +0000
     1.3 @@ -713,7 +713,6 @@ static int __init acpi_parse_dmar(struct
     1.4              dprintk(XENLOG_WARNING VTDPREFIX,
     1.5                      "Unknown DMAR structure type %x\n",
     1.6                      entry_header->type);
     1.7 -            ret = -EINVAL;
     1.8              break;
     1.9          }
    1.10          if ( ret )