Page MenuHomeFreeBSD

[aacraid] Add missing aac_unmap_command() call for SYNC mode
ClosedPublic

Authored by luporl on Feb 13 2020, 6:12 PM.
Referenced Files
F156837890: D23668.id68261.diff
Sat, May 16, 7:54 PM
F156837869: D23668.id69152.diff
Sat, May 16, 7:54 PM
F156837751: D23668.diff
Sat, May 16, 7:53 PM
F156837708: D23668.diff
Sat, May 16, 7:53 PM
Unknown Object (File)
Fri, May 15, 4:57 PM
Unknown Object (File)
Tue, Apr 28, 4:30 PM
Unknown Object (File)
Tue, Apr 28, 8:59 AM
Unknown Object (File)
Fri, Apr 24, 2:15 PM

Details

Summary

On a PowerPC64 with an Adaptec RAID Controller with PCI device ID 0x028d, after several read/write operations, the kernel was panic'ing in bus_dmamap_sync().
This was due to a missing aac_unmap_command() in the SYNC path.

There is a work in progress (PR 237463) to make aacraid driver compatible with big-endian/PowerPC, in which this issue was found.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Yes, the similar path in aac.c has

			aac_remove_busy(cm);
 			aac_unmap_command(cm);

Yes, the similar path in aac.c has

			aac_remove_busy(cm);
 			aac_unmap_command(cm);

Right, but as in aacraid.c sync commands don't call aac_enqueue_busy(cm), aac_remove_busy(cm) should not be called when they complete.

This revision is now accepted and ready to land.Mar 3 2020, 5:47 PM
This revision was automatically updated to reflect the committed changes.