Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-4510

PATCH - Page fault on UHCI initialization

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • None
    • Drivers: Other
    • None
    • Operating System: ReactOS
      Platform: x86 Hardware

    Description

      Created an attachment (id=4321)
      Reset the UHCI controller before enabling its interrupt

      Running revision r43337

      Getting this when rebooting from NetBSD (which seems to initialize the UHCI for itself). Does not happen on cold boots to ReactOS:

      wood_uhci: Entering DriverEntry(), RegistryPath=
      \Registry\Machine\System\CurrentControlSet\Services\usbdriver
      uhci_alloc(): reg_path=FB3B19DC,
      uhci_alloc(): PCIBus=0x5, bus=0x0, bus_addr=0x3a
      uhci_alloc(): slot_num=0x47, &res_list=FFB5C354
      uhci_alloc(): about to assign slot res
      uhci_alloc(): address space=0x1
      , reg_base=0x2000
      uhci_alloc(): the int=0x3b
      uhci_isr(): host system error, PCI problems?
      uhci_isr(): host controller halted. very bad
      (ntoskrnl/mm/mmfault.c:159) Page fault at high IRQL was 2, address 0
      Entered debugger on last-chance exception (Exception Code: 0xc0000006) (Unknown/User defined exception)
      kdb:> bt
      Eip:
      <00000000>
      Frames:
      <ntoskrnl.exe:bd8c2 (ntoskrnl/ke/i386/trap.s:2431 (KiDispatchInterrupt@0))>
      <hal.dll:50a2 (hal/halx86/generic/irq.S:493 (@KfLowerIrql@4))>
      <ntoskrnl.exe:32f0 (ntoskrnl/ke/i386/irqobj.c:307 (KeConnectInterrupt@4))>
      <ntoskrnl.exe:5717b (ntoskrnl/io/iomgr/irq.c:100 (IoConnectInterrupt@44))>
      <usbdriver.sys:1070a (drivers/usb/nt4compat/usbdriver/uhci.c:845 (uhci_alloc))>
      <usbdriver.sys:108c1 (drivers/usb/nt4compat/usbdriver/uhci.c:659 (uhci_probe))>
      <usbdriver.sys:10982 (drivers/usb/nt4compat/usbdriver/uhci.c:3880 (DriverEntry@8))>
      <ntoskrnl.exe:4b27b (ntoskrnl/io/iomgr/driver.c:1390 (IopCreateDriver@24))>
      <ntoskrnl.exe:4a57b (ntoskrnl/io/iomgr/driver.c:467 (@IopInitializeDriverModule@20))>
      <ntoskrnl.exe:4b7c8 (ntoskrnl/io/iomgr/driver.c:1766 (IopLoadUnloadDriver@4))>
      <ntoskrnl.exe:4b95e (ntoskrnl/io/iomgr/driver.c:1858 (NtLoadDriver@4))>
      <ntoskrnl.exe:ba590 (ntoskrnl/ke/i386/trap.s:244 (KiFastCallEntry))>
      <ntoskrnl.exe:bef35 (obj-i386/ntoskrnl/ex/zw.S:929 (ZwLoadDriver))>
      <ntoskrnl.exe:4bf0b (ntoskrnl/io/iomgr/drvrlist.c:540 (@IopInitializeSystemDrivers@0))>
      <ntoskrnl.exe:da798 (ntoskrnl/io/iomgr/iomgr.c:529 (IoInitSystem@4))>
      <ntoskrnl.exe:36cab (ntoskrnl/ex/init.c:1698 (Phase1InitializationDiscard@4))>
      <ntoskrnl.exe:37856 (ntoskrnl/ex/init.c:1908 (Phase1Initialization@4))>
      <ntoskrnl.exe:afdc1 (ntoskrnl/ps/thread.c:158 (PspSystemThreadStartup@8))>
      <ntoskrnl.exe:b9d8a (ntoskrnl/ke/i386/ctxswitch.S:306 (KiThreadStartup@156))>
      kdb:>

      I can not see a uhci_isr() frame where the page fault occurs, it obviously happens just after being hooked. Resetting the UHCI before enabling the interrupt prevented this from triggering (though I am not sure if that's a correct fix for the potential page fault).

      Attachments

        Activity

          People

            fireball fireball
            lkundrak Lubomir Rintel
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: