[haiku-bugs] [Haiku] #6922: OpenSound-232d0de71550 KDL's on boot (possible mtrr issue?)

  • From: "mmadia" <trac@xxxxxxxxxxxx>
  • Date: Fri, 26 Nov 2010 22:20:35 -0000

#6922: OpenSound-232d0de71550 KDL's on boot  (possible mtrr issue?)
-----------------------------+-----------------------------
   Reporter:  mmadia         |       Owner:  korli
       Type:  bug            |      Status:  new
   Priority:  normal         |   Milestone:  R1
  Component:  Drivers/Audio  |     Version:  R1/Development
   Keywords:                 |  Blocked By:
Has a Patch:  0              |    Platform:  All
   Blocking:                 |
-----------------------------+-----------------------------
 This ticket is being split off from my comments made in #6849, as there
 may be possible confusion between the various OpenSound packages (which
 are not part of build/jam/OptionalPackages, due to concerns of known
 issues).

 This package of
 [http://www.haiku-files.org/files/optional-packages/opensound-
 232d0de71550-x86-gcc4-2010-11-26-built_on_r39567-with_extra_dprintf.zip
 opensound-232d0de71550]
 was built on r39567 with GCC4. It contains extra dprintf()'s to help
 pinpoint the exact location of failure.

 The failure occurs when
  1. The above OpenSound package is installed
  1. /boot/system/add-ons/kernel/drivers/dev/audio/* is archived and the
 original files are removed
  1. On reboot, oss detects the hd audio chipset and triggers a KDL.

 The failure is in
 
[http://opensound.hg.sourceforge.net/hgweb/opensound/opensound/file/232d0de71550/kernel/OS/BeOS/os_beos.c#l601
 os_beos.c oss_map_pci_mem()]
 {{{
 caddr_t
 oss_map_pci_mem (oss_device_t * osdev, int nr, int phaddr, int size)
 {
   status_t err;
   void *va = NULL;
   FENTRYA("%p,%d,%u,%d", osdev, nr, phaddr, size);
   //XXX:align phaddr ?
   /* round up to page size */
   size += B_PAGE_SIZE - 1;
   size &= ~(B_PAGE_SIZE - 1);
   dprintf("oss_map_pci_mem()\n");
   err = map_physical_memory(OSS_PCI_AREA_NAME, (void *)phaddr, size,
                             B_ANY_KERNEL_BLOCK_ADDRESS, 0, &va);
   dprintf("oss_map_pci_mem() -- past map_physical_memory\n");
   if (err < B_OK)
     va = NULL;
   FEXITR((uint32)va);
   return (caddr_t)va;
 }
 }}}


 Serial output snippet (full log is attached)
 {{{
 Could not load kernel add-on "/boot/system/add-
 ons/kernel/drivers/dev/audio/hmulti.zip": Not an executable
 oss_load_options(): oss_core
 oss_load_options(): oss_core -- past load_driver_settings()
 exiting oss_load_options(): oss_core
 oss_common_init
 oss_register_device
 oss_register_device() OSS core services
 oss_register_device() OSS core services -- exiting
 past oss_register_device
 oss:init_osscore: 0x00000000
 oss:init_driver():      calling gOSSCore->oss_load_drivers()
 oss_load_drivers()
 Last message repeated 13 times.
 oss: matching pci 10de,03f0
 oss_load_options(): oss_hdaudio
 oss_load_options(): oss_hdaudio -- past load_driver_settings()
 exiting oss_load_options(): oss_hdaudio
 oss_hdaudio_attach()
 oss_map_pci_mem()
 add_memory_type_range(3636, 0xffffffffdde78000, 0x4000, 0)
 PANIC: Unexpected exception "General Protection Exception" occurred in
 kernel mode! Error code: 0x0

 Welcome to Kernel Debugging Land...
 Thread 145 "media_addon_server" running on CPU 1
 stack trace for thread 145 "media_addon_server"
     kernel stack: 0x818f7000 to 0x818fb000
       user stack: 0x7efef000 to 0x7ffef000
 }}}

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/6922>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: