linux_dsm_epyc7002/drivers/scsi/isci
Dan Williams fe9a643157 isci: pad stp and smp request sizes
Ross says:
 "The memory allocation for these requests doesn’t take into account the
  additional memory needed when the code in
  scic_sds_s[mst]p_request_assign_buffers() shifts the struct
  scu_task_context so that it is cache line aligned:

  In an example from my machine, total buffer that I’ve given to SCIC goes
  from 0x410024566f84 to 0x410024567308.  From this same example, this
  call shifts my task_context_buffer from 0x410024567208 to
  0x410024567240.

  This means that the task_context_buffer that used to range from
  0x410024567208 to 0x410024567308 instead now goes from 0x410024567240 to
  0x410024567340.

  When the memset() call at the end of scic_task_request_construct()
  clears out this task_context_buffer, it does so from 0x410024567240 to
  0x410024567340, effectively killing whatever buffer follows this
  allocation in memory."

djbw:
Use the kernel's PTR_ALIGN instead of
scic_sds_request_align_task_context_buffer() and SMP_CACHE_BYTES instead of
the local CACHE_LINE_SIZE definition.

TODO: These allocations really want to be better defined in a union rather
than opaque buffers carved up by macros.

Reported-by: Ross Zwisler <ross.zwisler@intel.com>
Signed-off-by: Jacek Danecki <Jacek.Danecki@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2011-07-03 03:55:29 -07:00
..
core isci: pad stp and smp request sizes 2011-07-03 03:55:29 -07:00
firmware isci: Intel(R) C600 Series Chipset Storage Control Unit Driver 2011-07-02 22:56:22 -07:00
events.c isci: rework timer api 2011-07-03 03:55:28 -07:00
events.h isci: rework timer api 2011-07-03 03:55:28 -07:00
host.c isci: workaround port task scheduler starvation issue 2011-07-03 03:55:28 -07:00
host.h isci: rework timer api 2011-07-03 03:55:28 -07:00
init.c isci: fix sas address reporting 2011-07-03 03:55:28 -07:00
isci.h isci: Removing deprecated functions 2011-07-03 03:55:28 -07:00
Makefile isci: Removing deprecated functions 2011-07-03 03:55:28 -07:00
phy.c isci: Adding support for phy enable and disable 2011-07-03 03:55:29 -07:00
phy.h isci: Intel(R) C600 Series Chipset Storage Control Unit Driver 2011-07-02 22:56:22 -07:00
port.c isci: fix sas address reporting 2011-07-03 03:55:28 -07:00
port.h isci: Intel(R) C600 Series Chipset Storage Control Unit Driver 2011-07-02 22:56:22 -07:00
remote_device.c isci: Cleanup warning messages for phy resets 2011-07-03 03:55:29 -07:00
remote_device.h isci: Removing deprecated functions 2011-07-03 03:55:28 -07:00
request.c isci: debug fixes 2011-07-03 03:55:27 -07:00
request.h isci: kill SCI_IO_REQUEST_DATA_DIRECTION 2011-07-03 00:36:31 -07:00
sata.c isci: Removing deprecated functions 2011-07-03 03:55:28 -07:00
sata.h isci: Intel(R) C600 Series Chipset Storage Control Unit Driver 2011-07-02 22:56:22 -07:00
sci_environment.h isci: clean up remaining silicon revision ifdefs in phy init 2011-07-03 03:55:28 -07:00
task.c isci: rework timer api 2011-07-03 03:55:28 -07:00
task.h isci: Intel(R) C600 Series Chipset Storage Control Unit Driver 2011-07-02 22:56:22 -07:00
timers.c isci: rework timer api 2011-07-03 03:55:28 -07:00
timers.h isci: rework timer api 2011-07-03 03:55:28 -07:00