Author: fireball
Date: Tue Jul 17 10:31:03 2012
New Revision: 56907
URL: http://svn.reactos.org/svn/reactos?rev=56907&view=rev
Log:
[SCSIPORT]
- Fix a regression from r56863. New logic is: the requested data size is sizeof(ULONG), so if the result read is less than that - continue to the next slot. Thanks to SomeGuy for pointing out the problem.
See issue #7147 for more details.
Modified:
trunk/reactos/drivers/storage/scsiport/scsiport.c
Modified: trunk/reactos/drivers/storage/scsiport/scsiport.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/scsiport/s…
==============================================================================
--- trunk/reactos/drivers/storage/scsiport/scsiport.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/storage/scsiport/scsiport.c [iso-8859-1] Tue Jul 17 10:31:03 2012
@@ -2351,7 +2351,7 @@
return FALSE;
/* Check if result is PCI_INVALID_VENDORID or too small */
- if ((DataSize < (ULONG)PCI_COMMON_HDR_LENGTH) ||
+ if ((DataSize < sizeof(ULONG)) ||
(PciConfig.VendorID == PCI_INVALID_VENDORID))
{
/* Continue to try the next function */
Author: tkreuzer
Date: Sun Jul 15 21:18:43 2012
New Revision: 56903
URL: http://svn.reactos.org/svn/reactos?rev=56903&view=rev
Log:
[FREELDR]
Don't set the ebp register when doing INTs. We only need the output after the int and since the REGS structure is usually not fully initialized before calling Int386, we would load random values. This can cause crashes on VPC.
Thanks to hbelusca fo testing.
Modified:
trunk/reactos/boot/freeldr/freeldr/arch/realmode/int386.inc
Modified: trunk/reactos/boot/freeldr/freeldr/arch/realmode/int386.inc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/arch/realmode/int386.inc [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/arch/realmode/int386.inc [iso-8859-1] Sun Jul 15 21:18:43 2012
@@ -47,7 +47,7 @@
mov edx, dword ptr cs:[BSS_RegisterSet + REGS_EDX]
mov esi, dword ptr cs:[BSS_RegisterSet + REGS_ESI]
mov edi, dword ptr cs:[BSS_RegisterSet + REGS_EDI]
- mov ebp, dword ptr cs:[BSS_RegisterSet + REGS_EBP]
+ // Don't setup ebp, we only use it as output!
/* Call the interrupt vector */
/*int Int386_vector*/