Opened 6 months ago

Closed 4 months ago

#14190 closed bug (fixed)

KDL: SMAP violation (intel_extreme)

Reported by: waddlesplash Owned by: korli
Priority: high Milestone: Unscheduled
Component: Drivers/Graphics/intel_extreme Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

Yes, the driver in the screenshot is in non-packaged, but it was "just built" before rebooting.

I guess radeon_hd probably will have the same issue?

Attachments (2)

intel_extreme_KDL.png (1.1 MB) - added by waddlesplash 6 months ago.
intel_extreme_accelerant_KDL.jpg (502.5 KB) - added by waddlesplash 6 months ago.

Download all attachments as: .zip

Change History (12)

Changed 6 months ago by waddlesplash

Attachment: intel_extreme_KDL.png added

comment:3 Changed 6 months ago by waddlesplash

With that change, the intel_extreme driver gets farther, but then there is another KDL upon reaching accelerant init.

Changed 6 months ago by waddlesplash

comment:4 Changed 6 months ago by korli

Please try to change at https://git.haiku-os.org/haiku/tree/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme.cpp#n319 0 => B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | B_USER_CLONEABLE_AREA

radeon_hd https://git.haiku-os.org/haiku/tree/src/add-ons/kernel/drivers/graphics/radeon_hd/radeon_hd.cpp#n543 0 => B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | B_USER_CLONEABLE_AREA

comment:5 Changed 6 months ago by waddlesplash

Didn't help. Same KDL, same location (+ 0xe0, memset.)

comment:6 Changed 6 months ago by waddlesplash

With all of the changes, I can successfully boot to desktop with SMAP disabled, so at least they don't hurt. Applied the first one in hrev52002, since that one seems like an obvious fix.

comment:8 Changed 6 months ago by waddlesplash

Some more fixes done in hrev52032. The culprit behind the attached KDL, however, is the agp_gart bus. The patch for that is:

--- a/src/add-ons/kernel/busses/agp_gart/intel_gart.cpp
+++ b/src/add-ons/kernel/busses/agp_gart/intel_gart.cpp
@@ -542,14 +542,16 @@ intel_map(intel_info &info)
        info.aperture_area = apertureMapper.Map("intel graphics aperture",
                info.aperture_physical_base, info.aperture_size,
                B_ANY_KERNEL_BLOCK_ADDRESS | B_MTR_WC,
-               B_READ_AREA | B_WRITE_AREA, (void**)&info.aperture_base);
+               B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | B_USER_CLONEABLE_AREA,
+               (void**)&info.aperture_base);
        if (apertureMapper.InitCheck() < B_OK) {
                // try again without write combining
                ERROR("enabling write combined mode failed.\n");
 
                info.aperture_area = apertureMapper.Map("intel graphics aperture",
                        info.aperture_physical_base, info.aperture_size,
-                       B_ANY_KERNEL_BLOCK_ADDRESS, B_READ_AREA | B_WRITE_AREA,
+                       B_ANY_KERNEL_BLOCK_ADDRESS,
+                       B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA | B_USER_CLONEABLE_AREA,
                        (void**)&info.aperture_base);
        }
        if (apertureMapper.InitCheck() < B_OK) {

However with this, the screen goes black after the rocket icon, so it seems the accelerant expects these areas to be writeable, not cloneable. I haven't looked into that yet.

comment:9 Changed 5 months ago by korli

Please try again with hrev52052. Works for me (even if the display output is broken).

comment:10 Changed 4 months ago by korli

Resolution: fixed
Status: assignedclosed

No feedback.

Note: See TracTickets for help on using tickets.