On Tue, May 29, 2012 at 01:51:15PM +0200, Hannes Reinecke wrote: > This is an updated patchset for megasas. Upon popular demand > I've split it into three parts, the header file, the emulation > itself, and a patch adding trace events to the emulation. > > Paolo, can you merge it via your tree? Or should I ask > someone else? > > Changes since v17: > - Fix crash when booting without Option ROM, > reported by Alex Graf > > Changes since v16: > - Codingstyle fixes, reported by Alex Graf > > Changes since v15: > - Move to new SCSI API > - Use generic trace functions for DCMDs > - Replace bitfields with defines > - Implement CFG_READ > - Fix enclosure ID reporting > > Changes since v14: > - Rename MPTState to MegasasState > - Use bool type > - Enable 64 bit PCI accesses > - Replace raid mode string handling > - Use common function for requests handling > > Changes since v13: > - Remove separate MSI-X BAR > - Simplify BAR allocation > > Changes since v12: > - Fixup flag setting via properties > - Fixup MSI-X handling > - Disable MSI-X per default > > Changes since v11: > - Remove unneeded variables > > Changes since v10: > - Port to new device type API > - Include suggestion from Alex Graf: > - Remove 'inline' function declaration > - Queue setup and interrupt enablement needs to be treated > independently > - Always read in 64 bit context and just mask out the top > bits if required > > Changes since v9: > - Split off trace events into a separate patch > - Do not check for max_luns in PD Info > - Update trace events > - Clarify license statement > - Fixup coding style issues > > Changes since v8: > - Remove 'disable' keyword from trace definitions > - Convert hand-crafted debugging statements with trace > definitions > - Treat 'context' tag as little endian > Changes since v7: > - Port to new memory API > - Port to new PCI infrastructure > - Use fixed buffers for sense processing > - Update to updated SCSI infrastructure > > Changes since v6: > - Preliminary patches pushed to Kevins block tree > - Implement 64bit contexts, required for Windows7 > - Use iovecs for DCMD processing > - Add MSI-X support > Latest Linux driver now happily uses MSI-X. > - Static iovec allocation > We have a fixed upper number of iovecs, so we can > save us the allocation. Suggested by Alex Graf. > - Update MFI header > Latest Linux driver has some more definitions, > add them > - Fixup AEN handling > - Update tracing details > - Remove sdev pointer from megasas_cmd_t > > Changes since v5: > - megasas: Use tracing infrastructure instead of DPRINTF > - megasas: Use new PCI infrastructure > - megasas: Check for iovec mapping failure > cpu_map_physical_memory() might fail, so we need to check for > it when mapping iovecs. > - megasas: Trace scsi buffer overflow > The transfer length as specified in the SCSI command might > disagree with the length of the iovec. We should be tracing > these issues. > - megasas: Reset frames after init firmware > When receiving an INIT FIRMWARE command we need reset all > frames, otherwise some frames might point to invalid memory. > > Chances since v4: > - megasas: checkpatch.pl fixes and update to work with the > changed interface in scsi_req_new(). Also included the > suggested fixes from Alex. > > Hannes Reinecke (3): > megasas: Add header file > megasas: LSI Megaraid SAS HBA emulation > megasas: Add trace events > > Makefile.objs | 1 + > default-configs/pci.mak | 1 + > hw/megasas.c | 2198 > +++++++++++++++++++++++++++++++++++++++++++++++ > hw/mfi.h | 1248 +++++++++++++++++++++++++++ > hw/pci_ids.h | 3 +- > trace-events | 79 ++ > 6 files changed, 3529 insertions(+), 1 deletions(-) > create mode 100644 hw/megasas.c > create mode 100644 hw/mfi.h
Not a line-by-line review but overall it looks okay. I also tested that a RHEL 6 guest sees a SCSI disk. Tested-by: Stefan Hajnoczi <stefa...@linux.vnet.ibm.com>