Fix horrible bug where Queued Threads were treated like Threads on the
Ready list. I was aware of this bug for months and it's fixed in my new
scheduler but now that tinus has seen it happen, I'm comitting the fix
temporarly in trunk.
Modified: trunk/reactos/ntoskrnl/ke/kthread.c
_____
Modified: trunk/reactos/ntoskrnl/ke/kthread.c
--- trunk/reactos/ntoskrnl/ke/kthread.c 2005-05-03 23:18:21 UTC (rev
14965)
+++ trunk/reactos/ntoskrnl/ke/kthread.c 2005-05-03 23:24:26 UTC (rev
14966)
@@ -54,7 +54,7 @@
KEBUGCHECK(0);
}
- InsertTailList(&PriorityListHead[Priority],
&Thread->QueueListEntry);
+ InsertTailList(&PriorityListHead[Priority],
&Thread->WaitListEntry);
PriorityListMask |= (1 << Priority);
}
@@ -63,7 +63,7 @@
KiRemoveFromThreadList(PKTHREAD Thread)
{
ASSERT(Ready == Thread->State);
- RemoveEntryList(&Thread->QueueListEntry);
+ RemoveEntryList(&Thread->WaitListEntry);
if (IsListEmpty(&PriorityListHead[(ULONG)Thread->Priority])) {
PriorityListMask &= ~(1 << Thread->Priority);
@@ -87,7 +87,7 @@
while (current_entry != &PriorityListHead[Priority]) {
- current = CONTAINING_RECORD(current_entry, KTHREAD,
QueueListEntry);
+ current = CONTAINING_RECORD(current_entry, KTHREAD,
WaitListEntry);
if (current->State != Ready) {
bugfix from, tinus mailto:o112w8r02@sneakemail.com
fixining http://reactos.com/bugzilla/show_bug.cgi?id=616#c1
bug in mozila
There's a small bug in usetup/bootsup.c which makes it fail formatting
the disk.
It tries to read the bootsector image on the cdrom for write access
(which
succeeds), then tries to read from the handle (which fails).
Modified: trunk/reactos/subsys/system/usetup/bootsup.c
_____
Modified: trunk/reactos/subsys/system/usetup/bootsup.c
--- trunk/reactos/subsys/system/usetup/bootsup.c 2005-05-03
21:42:35 UTC (rev 14964)
+++ trunk/reactos/subsys/system/usetup/bootsup.c 2005-05-03
23:18:21 UTC (rev 14965)
@@ -1244,7 +1244,7 @@
NULL);
Status = NtOpenFile(&FileHandle,
- GENERIC_WRITE,
+ GENERIC_READ,
&ObjectAttributes,
&IoStatusBlock,
0,
Do always set the UserIosb of an irp in IoSecondStageCompletion.
Modified: trunk/reactos/ntoskrnl/io/irp.c
_____
Modified: trunk/reactos/ntoskrnl/io/irp.c
--- trunk/reactos/ntoskrnl/io/irp.c 2005-05-03 21:25:41 UTC (rev
14963)
+++ trunk/reactos/ntoskrnl/io/irp.c 2005-05-03 21:42:35 UTC (rev
14964)
@@ -1265,14 +1265,18 @@
}
Irp->MdlAddress = NULL;
+ if (Irp->UserIosb)
+ {
+ /* Save the IOSB Information */
+ *Irp->UserIosb = Irp->IoStatus;
+ }
+
/* Check for Success but allow failure for Async IRPs */
if (NT_SUCCESS(Irp->IoStatus.Status) ||
(Irp->PendingReturned &&
!(Irp->Flags & IRP_SYNCHRONOUS_API) &&
(FileObject == NULL || FileObject->Flags & FO_SYNCHRONOUS_IO)))
{
- /* Save the IOSB Information */
- *Irp->UserIosb = Irp->IoStatus;
/* Check if there's an event */
if (Irp->UserEvent)
@@ -1361,9 +1365,7 @@
/* Check for SYNC IRP */
if (Irp->Flags & IRP_SYNCHRONOUS_API)
{
- /* Set the status in this case only */
- *Irp->UserIosb = Irp->IoStatus;
-
+
/* Signal our event if we have one */
if (Irp->UserEvent)
{
Remove Disk driver for Bochs.
It doesn't compile and shouldn't be usefull as we have a normal disk
driver in drivers/storage/disk
Deleted: trunk/reactos/drivers/dd/sdisk/