Skip to content

0002 dtrace: fix fbt regression for aarch64#8

Closed
ihoro wants to merge 1 commit intomainfrom
0002-dtrace-fbt-regression-aarch64
Closed

0002 dtrace: fix fbt regression for aarch64#8
ihoro wants to merge 1 commit intomainfrom
0002-dtrace-fbt-regression-aarch64

Conversation

@ihoro
Copy link
Copy Markdown
Owner

@ihoro ihoro commented Nov 1, 2023

fbt computes incorrect instruction position for AArch64 kernel module symbol.

The issue is with the for loop, it does an extra increment of instr pointer after the required instruction is found. Hence, a wrong instruction is targeted for patching.

Fixes: 980746e ("fbt: simplify arm64 function-prologue parsing")
Pull-request: freebsd#855

fbt computes incorrect instruction position for AArch64 kernel module symbol.

The issue is with the for loop, it does an extra increment of instr pointer
after the required instruction is found. Hence, a wrong instruction is
targeted for patching.

Fixes:          980746e ("fbt: simplify arm64 function-prologue parsing")
Pull-request:   freebsd#855
Signed-off-by:  Igor Ostapenko <pm@igoro.pro>
@ihoro ihoro closed this Nov 1, 2023
@ihoro ihoro added the Landed Committed to the official repo label Nov 20, 2023
ihoro pushed a commit that referenced this pull request Nov 15, 2024
Avoid calling _callout_stop_safe with a non-sleepable lock held when
detaching by initializing callout_init_rw() with CALLOUT_SHAREDLOCK.

It avoids the following WITNESS warning when stopping the service:

    # service ipfilter stop
    calling _callout_stop_safe with the following non-sleepable locks held:
    shared rw ipf filter load/unload mutex (ipf filter load/unload mutex) r = 0 (0xffff0000417c7530) locked @ /usr/src/sys/netpfil/ipfilter/netinet/fil.c:7926
    stack backtrace:
    #0 0xffff00000052d394 at witness_debugger+0x60
    #1 0xffff00000052e620 at witness_warn+0x404
    #2 0xffff0000004d4ffc at _callout_stop_safe+0x8c
    #3 0xffff0000f7236674 at ipfdetach+0x3c
    #4 0xffff0000f723fa4c at ipf_ipf_ioctl+0x788
    #5 0xffff0000f72367e0 at ipfioctl+0x144
    #6 0xffff00000034abd8 at devfs_ioctl+0x100
    #7 0xffff0000005c66a0 at vn_ioctl+0xbc
    #8 0xffff00000034b2cc at devfs_ioctl_f+0x24
    #9 0xffff0000005331ec at kern_ioctl+0x2e0
    #10 0xffff000000532eb4 at sys_ioctl+0x140
    #11 0xffff000000880480 at do_el0_sync+0x604
    #12 0xffff0000008579ac at handle_el0_sync+0x4c

PR:		282478
Suggested by:	markj
Reviewed by:	cy
Approved by:	emaste (mentor)
MFC after:	1 week
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Landed Committed to the official repo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant