[CLASSPNP] Fix SLIST_ENTRY vs SINGLE_LIST_ENTRY issues
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Tue, 8 Jan 2019 04:17:19 +0000 (05:17 +0100)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 4 Mar 2019 20:58:42 +0000 (21:58 +0100)
drivers/storage/classpnp/class.c
drivers/storage/classpnp/classp.h
drivers/storage/classpnp/xferpkt.c

index f89fa32..a1ff1cf 100644 (file)
@@ -2254,8 +2254,8 @@ VOID NTAPI ServiceTransferRequest(PDEVICE_OBJECT Fdo, PIRP Irp)
     PUCHAR bufPtr = MmGetMdlVirtualAddress(Irp->MdlAddress);
     LARGE_INTEGER targetLocation = currentSp->Parameters.Read.ByteOffset;
     PTRANSFER_PACKET pkt;
-    SINGLE_LIST_ENTRY pktList;
-    PSINGLE_LIST_ENTRY slistEntry;
+    SLIST_ENTRY pktList;
+    PSLIST_ENTRY slistEntry;
     ULONG numPackets;
     //KIRQL oldIrql;
     ULONG i;
index d758827..9db5754 100644 (file)
@@ -283,8 +283,8 @@ typedef struct _CLASS_ERROR_LOG_DATA {
 
 typedef struct _TRANSFER_PACKET {
 
+        SLIST_ENTRY SlistEntry;   // for when in free list (use fast slist)
         LIST_ENTRY AllPktsListEntry;    // entry in fdoData's static AllTransferPacketsList
-        SINGLE_LIST_ENTRY SlistEntry;   // for when in free list (use fast slist)
 
         PIRP Irp;
         PDEVICE_OBJECT Fdo;
@@ -475,25 +475,25 @@ struct _CLASS_PRIVATE_FDO_DATA {
 /*
  *  Simple singly-linked-list queuing macros, with no synchronization.
  */
-static inline VOID SimpleInitSlistHdr(SINGLE_LIST_ENTRY *SListHdr)
+static inline VOID SimpleInitSlistHdr(SLIST_ENTRY *SListHdr)
 {
     SListHdr->Next = NULL;
 }
-static inline VOID SimplePushSlist(SINGLE_LIST_ENTRY *SListHdr, SINGLE_LIST_ENTRY *SListEntry)
+static inline VOID SimplePushSlist(SLIST_ENTRY *SListHdr, SLIST_ENTRY *SListEntry)
 {
     SListEntry->Next = SListHdr->Next;
     SListHdr->Next = SListEntry;
 }
-static inline SINGLE_LIST_ENTRY *SimplePopSlist(SINGLE_LIST_ENTRY *SListHdr)
+static inline SLIST_ENTRY *SimplePopSlist(SLIST_ENTRY *SListHdr)
 {
-    SINGLE_LIST_ENTRY *sListEntry = SListHdr->Next;
+    SLIST_ENTRY *sListEntry = SListHdr->Next;
     if (sListEntry){
         SListHdr->Next = sListEntry->Next;
         sListEntry->Next = NULL;
     }
     return sListEntry;
 }
-static inline BOOLEAN SimpleIsSlistEmpty(SINGLE_LIST_ENTRY *SListHdr)
+static inline BOOLEAN SimpleIsSlistEmpty(SLIST_ENTRY *SListHdr)
 {
     return (SListHdr->Next == NULL);
 }
index 390afe7..865ae7f 100644 (file)
@@ -240,8 +240,8 @@ VOID NTAPI EnqueueFreeTransferPacket(PDEVICE_OBJECT Fdo, PTRANSFER_PACKET Pkt)
          *  1.  Immediately snap down to our UPPER threshold.
          */
         if (fdoData->NumTotalTransferPackets > MaxWorkingSetTransferPackets){
-            SINGLE_LIST_ENTRY pktList;
-            PSINGLE_LIST_ENTRY slistEntry;
+            SLIST_ENTRY pktList;
+            PSLIST_ENTRY slistEntry;
             PTRANSFER_PACKET pktToDelete;
 
             DBGTRACE(ClassDebugTrace, ("Exiting stress, block freeing (%d-%d) packets.", fdoData->NumTotalTransferPackets, MaxWorkingSetTransferPackets));
@@ -324,7 +324,7 @@ PTRANSFER_PACKET NTAPI DequeueFreeTransferPacket(PDEVICE_OBJECT Fdo, BOOLEAN All
     PFUNCTIONAL_DEVICE_EXTENSION fdoExt = Fdo->DeviceExtension;
     PCLASS_PRIVATE_FDO_DATA fdoData = fdoExt->PrivateFdoData;
     PTRANSFER_PACKET pkt;
-    PSINGLE_LIST_ENTRY slistEntry;
+    PSLIST_ENTRY slistEntry;
     //KIRQL oldIrql;
 
     slistEntry = InterlockedPopEntrySList(&fdoData->FreeTransferPacketsList);