summaryrefslogtreecommitdiffstats
path: root/lib/libthr/arch
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>2003-12-02 12:36:00 +0000
committerbde <bde@FreeBSD.org>2003-12-02 12:36:00 +0000
commit68eb4e63a382af4e61862b702bf07805e988f30c (patch)
treece7ecba2fa1f8e3a071025c81902f0430df0e786 /lib/libthr/arch
parent3a0af1aae72ca3322637a9d2f7f8b765835748c7 (diff)
downloadFreeBSD-src-68eb4e63a382af4e61862b702bf07805e988f30c.zip
FreeBSD-src-68eb4e63a382af4e61862b702bf07805e988f30c.tar.gz
Fixed breakage of the pci case of the cy driver by the new interrupt
code. Both the driver and the new code were wrong. Driver interrupt handlers are supposed to take "void *vsc" arg, but some including all COMPAT_ISA drivers and the pci part of the cy driver want an "int unit" arg. They got this using bogus casts of function pointers which should have kept working despite their bogusness. However, the new interrupt code doesn't honor requests to pass an arg of ((void *)0), so things are very broken if the arg is actually a representation of unit 0. The fix is to use a normal "void *vsc" arg for the pci case and a wrapper for the COMPAT_ISA case (of the cy driver). This cleans up new-busification of the pci case but takes the COMPAT_ISA case a little further from new-bus. The corresponding bug for the COMPAT_ISA case has already been fixed similarly using a wrapper in compat_isa.c and we need another wrapper just to undo that. Fixed some directly related style bugs (mainly by removing compatibility cruft). cy.c: Fixed an indirectly related old bug in cyattach_common(). A wrong status was returned in the unlikely event that malloc() failed. Approved by: re (scottl)
Diffstat (limited to 'lib/libthr/arch')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud