[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH 18/26] Refactor Inquiry 0x83 handle
From: Owen Smith <owen.smith@xxxxxxxxxx> Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx> --- src/xenvbd/target.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/xenvbd/target.c b/src/xenvbd/target.c index 22193a9..7c93a1c 100644 --- a/src/xenvbd/target.c +++ b/src/xenvbd/target.c @@ -998,15 +998,19 @@ TargetInquiry83( PVPD_IDENTIFICATION_DESCRIPTOR Descr; Srb->SrbStatus = SRB_STATUS_DATA_OVERRUN; - if (Srb->DataTransferLength < sizeof(VPD_IDENTIFICATION_PAGE) - 1 + - sizeof(VPD_IDENTIFICATION_DESCRIPTOR) + 16) + if (Srb->DataTransferLength < sizeof(VPD_IDENTIFICATION_PAGE) - 1) return; RtlZeroMemory(Data, Srb->DataTransferLength); Data->PageCode = 0x83; - Data->PageLength = sizeof(VPD_IDENTIFICATION_DESCRIPTOR) + 16; + Data->PageLength = 0; - Descr = (PVPD_IDENTIFICATION_DESCRIPTOR)Data->Descriptors; + // Try VpdIdentifierTypeVendorId:VpdCodeSetAscii (String Identifier) + if (Srb->DataTransferLength < sizeof(VPD_IDENTIFICATION_PAGE) - 1 + + sizeof(VPD_IDENTIFICATION_DESCRIPTOR) + 16) + goto done; + + Descr = (PVPD_IDENTIFICATION_DESCRIPTOR)((PUCHAR)Data->Descriptors); Descr->CodeSet = VpdCodeSetAscii; Descr->IdentifierType = VpdIdentifierTypeVendorId; Descr->IdentifierLength = 16; @@ -1015,9 +1019,13 @@ TargetInquiry83( "XEN:%u:%u", Target->DeviceId, Target->TargetId); + Data->PageLength += sizeof(VPD_IDENTIFICATION_DESCRIPTOR) + Descr->IdentifierLength; + + // Append other identifiers as required +done: Srb->DataTransferLength = sizeof(VPD_IDENTIFICATION_PAGE) - 1 + - sizeof(VPD_IDENTIFICATION_DESCRIPTOR) + 16; + Data->PageLength; Srb->SrbStatus = SRB_STATUS_SUCCESS; } @@ -1592,7 +1600,7 @@ TargetStoreReadFeatures( &Target->StoreInterface, NULL, Target->BackendPath, - "discard-secure", + "discard-granularity", &Buffer); if (NT_SUCCESS(status)) { Target->DiscardGranularity = strtoul(Buffer, NULL, 10); -- 2.8.3 _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |