James Bottomley
2441500a41
Merge branch 'fixes' into misc
2017-09-07 12:12:43 -07:00
Hannes Reinecke
6d415342ad
scsi: megaraid_mbox: drop duplicate bus reset and device reset function
...
megaraid_mbox only has one reset function, and that is a host reset. So
drop the duplicate bus reset and device reset functions.
Signed-off-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-25 17:21:12 -04:00
Shivasharan S
6ac385df94
scsi: megaraid_sas: driver version upgrade
...
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:17 -04:00
Shivasharan S
5dd977e3bd
scsi: megaraid_sas: call megasas_dump_frame with correct IO frame size
...
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:16 -04:00
Shivasharan S
2d2c233167
scsi: megaraid_sas: modified few prints in OCR and IOC INIT path
...
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:16 -04:00
Shivasharan S
ba1477aa70
scsi: megaraid_sas: replace internal FALSE/TRUE definitions with false/true
...
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:15 -04:00
Shivasharan S
eb3fe263a4
scsi: megaraid_sas: Return pended IOCTLs with cmd_status MFI_STAT_WRONG_STATE in case adapter is dead
...
After a kill adapter, since the cmd_status is not set, the IOCTLs will
be hung in driver resulting in application hang. Set cmd_status
MFI_STAT_WRONG_STATE when completing pended IOCTLs.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Cc: stable@vger.kernel.org
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:14 -04:00
Shivasharan S
def3e8dfe9
scsi: megaraid_sas: use vmalloc for crash dump buffers and driver's local RAID map
...
Driver's local RAID map is accessed frequently. We will first try to get
memory from __get_free_pages. If this fails, fall back to using vmalloc.
For crash dump buffers always prefer vmalloc.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:14 -04:00
Shivasharan S
28661c885c
scsi: megaraid_sas: Use SMID for Task abort case only
...
In TM code, smid_task is valid only in case of task aborts.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:13 -04:00
Shivasharan S
91b3d9f006
scsi: megaraid_sas: Check valid aen class range to avoid kernel panic
...
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Cc: stable@vger.kernel.org
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:13 -04:00
Shivasharan S
8823abeddb
scsi: megaraid_sas: Fix endianness issues in DCMD handling
...
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:12 -04:00
Shivasharan S
690e9c3885
scsi: megaraid_sas: Do not re-fire shutdown DCMD after OCR
...
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:12 -04:00
Shivasharan S
14298cf320
scsi: megaraid_sas: Call megasas_complete_cmd_dpc_fusion every 1 second while there are pending commands
...
megasas_wait_for_outstanding_fusion checks for pending commands every 1
second. But megasas_complete_cmd_dpc_fusion is only called every 5
seconds. If the commands are already completed by firmware, there is an
additional delay of 5 seconds before driver will process completion for
these commands.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:11 -04:00
Shivasharan S
bdb5c55fff
scsi: megaraid_sas: Use synchronize_irq in target reset case
...
Similar to task abort case, use synchronize_irq API in target reset
case. Also, remove redundant call to megasas_complete_cmd_dpc_fusion
after calling megasas_sync_irqs in task abort case.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:11 -04:00
Shivasharan S
e636a7a430
scsi: megaraid_sas: set minimum value of resetwaittime to be 1 secs
...
Setting resetwaittime to 0 during a FW fault will result in driver not
calling the OCR.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Cc: stable@vger.kernel.org
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:10 -04:00
Shivasharan S
ed2983f458
scsi: megaraid_sas: mismatch of allocated MFI frame size and length exposed in MFI MPT pass through command
...
Driver allocated 256 byte MFI frames bytes but while sending MFI frame
(embedded inside chain frame of MPT frame) to firmware, driver sets the
length as 4k. This results in DMA read error messages during boot.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Cc: stable@vger.kernel.org
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-24 22:29:10 -04:00
weiping zhang
61f0c3c7a0
scsi: megaraid_sas: fix error handle in megasas_probe_one
...
megasas_mgmt_info.max_index has increased by 1 before megasas_io_attach,
if megasas_io_attach return error, then goto fail_io_attach,
megasas_mgmt_info.instance has a wrong index here. So first reduce
max_index and then set that instance to NULL.
Signed-off-by: weiping zhang <zhangweiping@didichuxing.com >
Acked-by: Sumit Saxena <sumit.saxena@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-16 20:01:30 -04:00
weiping
3b8328e2e0
scsi: megaraid_sas: fix allocate instance->pd_info twice
...
fix allocate instance->pd_info twice which was introduced by 96188a89cc .
Signed-off-by: weiping zhang <zhangweiping@didichuxing.com >
Acked-by: Sumit Saxena <sumit.saxena@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-10 19:55:35 -04:00
Greg Kroah-Hartman
e14a396772
scsi: remove DRIVER_ATTR() usage
...
It's better to use the DRIVER_ATTR_RW() and DRIVER_ATTR_RO() macros to
explicitly show that this is a read/write or read/only sysfs file. So
convert the remaining SCSI drivers that use the old style to use the
newer macros.
Bonus is that this removes some checkpatch.pl warnings :)
This is part of a series to drop DRIVER_ATTR() from the tree entirely.
Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com >
Cc: "Martin K. Petersen" <martin.petersen@oracle.com >
Cc: Kashyap Desai <kashyap.desai@broadcom.com >
Cc: Sumit Saxena <sumit.saxena@broadcom.com >
Cc: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Cc: Willem Riede <osst@riede.org >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-07 14:04:02 -04:00
Romain Perier
fc69d86dcb
scsi: megaraid: Replace PCI pool old API
...
The PCI pool API is deprecated. This commit replaces the PCI pool old
API by the appropriate function with the DMA pool API.
Signed-off-by: Romain Perier <romain.perier@collabora.com >
Reviewed-by: Peter Senna Tschudin <peter.senna@collabora.com >
Acked-by: Sumit Saxena <sumit.saxena@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-08-07 14:04:01 -04:00
Shu Wang
70c54e210e
scsi: megaraid_sas: fix memleak in megasas_alloc_cmdlist_fusion
...
Found this issue by kmemleak, a few kb mem was leaked in
megasas_alloc_cmdlist_fusion when kzalloc failed for one
megasas_cmd_fusion allocation.
unreferenced object 0xffff88045dbd2000 (size 8192):
comm "systemd-udevd", pid 323, jiffies 4294671759 (age 49.008s)
backtrace:
[<ffffffff8176166a>] kmemleak_alloc+0x4a/0xa0
[<ffffffff812186a8>] __kmalloc+0xe8/0x220
[<ffffffffc0060594>] megasas_alloc_cmdlist_fusion+0x34/0xe0 [megaraid_sas]
(gdb) list *megasas_alloc_cmdlist_fusion+0x34
0xd5c4 is in megasas_alloc_cmdlist_fusion
(drivers/scsi/megaraid/megaraid_sas_fusion.c:443).
[<ffffffffc0060ca5>] megasas_alloc_cmds_fusion+0x25/0x410 [megaraid_sas]
[<ffffffffc0061edf>] megasas_init_adapter_fusion+0x21f/0x640 [megaraid_sas]
[<ffffffffc005df17>] megasas_init_fw+0x357/0xd30 [megaraid_sas]
[<ffffffffc005ef26>] megasas_probe_one.part.33+0x636/0x1100 [megaraid_sas]
[<ffffffffc005fa36>] megasas_probe_one+0x46/0xc0 [megaraid_sas]
[<ffffffff813d2ca5>] local_pci_probe+0x45/0xa0
[<ffffffff813d4222>] pci_device_probe+0x192/0x1b0
[<ffffffff814e3658>] driver_probe_device+0x2a8/0x460
[<ffffffff814e38ed>] __driver_attach+0xdd/0xe0
[<ffffffff814e124c>] bus_for_each_dev+0x6c/0xc0
[<ffffffff814e2dde>] driver_attach+0x1e/0x20
[<ffffffff814e2775>] bus_add_driver+0x45/0x270
[<ffffffff814e4400>] driver_register+0x60/0xe0
unreferenced object 0xffff880454ce3600 (size 192):
backtrace:
[<ffffffff8176166a>] kmemleak_alloc+0x4a/0xa0
[<ffffffff8121801a>] kmem_cache_alloc_trace+0xca/0x1d0
[<ffffffffc00605d7>] megasas_alloc_cmdlist_fusion+0x77/0xe0 [megaraid_sas]
(gdb) list *megasas_alloc_cmdlist_fusion+0x77
0xd607 is in megasas_alloc_cmdlist_fusion
(drivers/scsi/megaraid/megaraid_sas_fusion.c:450).
[<ffffffffc0060ca5>] megasas_alloc_cmds_fusion+0x25/0x410 [megaraid_sas]
[<ffffffffc0061edf>] megasas_init_adapter_fusion+0x21f/0x640 [megaraid_sas]
[<ffffffffc005df17>] megasas_init_fw+0x357/0xd30 [megaraid_sas]
[<ffffffffc005ef26>] megasas_probe_one.part.33+0x636/0x1100 [megaraid_sas]
[<ffffffffc005fa36>] megasas_probe_one+0x46/0xc0 [megaraid_sas]
[<ffffffff813d2ca5>] local_pci_probe+0x45/0xa0
[<ffffffff813d4222>] pci_device_probe+0x192/0x1b0
[<ffffffff814e3658>] driver_probe_device+0x2a8/0x460
[<ffffffff814e38ed>] __driver_attach+0xdd/0xe0
[<ffffffff814e124c>] bus_for_each_dev+0x6c/0xc0
[<ffffffff814e2dde>] driver_attach+0x1e/0x20
[<ffffffff814e2775>] bus_add_driver+0x45/0x270
[<ffffffff814e4400>] driver_register+0x60/0xe0
Signed-off-by: Shu Wang <shuwang@redhat.com >
Acked-by: Sumit Saxena <sumit.saxena@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-07-24 22:06:35 -04:00
Jia-Ju Bai
896f6966fc
scsi: megaraid: Fix a sleep-in-atomic bug
...
The driver may sleep under a spin lock, and the function call path is:
mraid_mm_attach_buf (acquire the lock by spin_lock_irqsave)
pci_pool_alloc(GFP_KERNEL) --> may sleep
To fix it, the "GFP_KERNEL" is replaced with "GFP_ATOMIC".
[mkp: fixed whitespace]
Signed-off-by: Jia-Ju Bai <baijiaju1990@163.com >
Acked-by: Sumit Saxena <sumit.saxena@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-06-12 20:48:08 -04:00
Andi Kleen
68b43744c1
drivers/scsi/megaraid: remove expensive inline from megasas_return_cmd
...
Remove an inline from a fairly big function that is used often. It's
unlikely that calling or not calling it makes a lot of difference.
Saves around 8k text in my kernel.
text data bss dec hex filename
9047801 5367568 11116544 25531913 1859609 vmlinux-before-megasas
9039417 5367568 11116544 25523529 1857549 vmlinux-megasas
Link: http://lkml.kernel.org/r/20170315021431.13107-7-andi@firstfloor.org
Signed-off-by: Andi Kleen <ak@linux.intel.com >
Cc: Kashyap Desai <kashyap.desai@avagotech.com >
Cc: Sumit Saxena <sumit.saxena@avagotech.com >
Cc: James Bottomley <James.Bottomley@HansenPartnership.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2017-05-08 17:15:14 -07:00
Shivasharan S
22487b6659
scsi: megaraid_sas: Driver version upgrade
...
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-03-13 22:59:53 -04:00
Shivasharan S
874d025da6
scsi: megaraid_sas: raid6 also require cpuSel check same as raid5
...
Without this fix, raid6 performance will not be optimal.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-03-13 22:59:53 -04:00
Shivasharan S
49524b3c6e
scsi: megaraid_sas: add correct return type check for ldio hint logic for raid1
...
Return value check of atomic_dec_if_positive is required as it returns
old value minus one. Without this fix, driver will send small ios to
firmware path and that will be a performance issue.
Not critical, but good to have r1_ldio_hint as default value in sdev
private.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-03-13 22:59:53 -04:00
Shivasharan S
64ff64b90e
scsi: megaraid_sas: enable intx only if msix request fails
...
Without this fix, driver will enable INTx Interrupt pin even though
MSI-x vectors are enabled. See below lspci output. DisINTx is unset for
MSIx setup.
lspci -s 85:00.0 -vvv |grep INT |grep Control
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B- DisINTx-
After applying this fix, driver will enable INTx Interrupt pin only if
Legacy interrupt method is required. See below lspci output. DisINTx is
set for MSIx setup. lspci -s 85:00.0 -vvv |grep INT |grep Control
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B- DisINTx+
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-03-13 22:59:52 -04:00
Arnd Bergmann
d1da522fb8
scsi: megaraid_sas: handle dma_addr_t right on 32-bit
...
When building with a dma_addr_t that is different from pointer size, we
get this warning:
drivers/scsi/megaraid/megaraid_sas_fusion.c: In function 'megasas_make_prp_nvme':
drivers/scsi/megaraid/megaraid_sas_fusion.c:1654:17: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
It's better to not pretend that the dma address is a pointer and instead
use a dma_addr_t consistently.
Fixes: 33203bc4d6 ("scsi: megaraid_sas: NVME fast path io support")
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Acked-by: Sumit Saxena <sumit.saxena@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-15 21:39:45 -05:00
Dan Carpenter
40a4c2c392
scsi: megaraid_sas: array overflow in megasas_dump_frame()
...
The "sz" variable is in terms of bytes, but we're treating the buffer as
an array of __le32 so we have to divide by 4.
Fixes: def0eab3af ("scsi: megaraid_sas: enhance debug logs in OCR context")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com >
Acked-by: Sumit Saxena <sumit.saxena@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-15 21:37:35 -05:00
Shivasharan S
156f8759bb
scsi: megaraid_sas: driver version upgrade
...
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:23 -05:00
Shivasharan S
a73b0a4b5d
scsi: megaraid_sas: Change RAID_1_10_RMW_CMDS to RAID_1_PEER_CMDS and set value to 2
...
For RAID1 FastPath writes, driver needs to allocate extra commands
internally to accommodate for the extra peer command being sent.
Currently driver is allocating 2 extra commands for each but only one
extra command is necessary. Set RAID_1_10_RMW_CMDS to 2 and also change
macro name to RAID_1_PEER_CMDS.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:23 -05:00
Shivasharan S
41064f1bf8
scsi: megaraid_sas: Indentation and smatch warning fixes
...
Fix indentation issues and smatch warning reported by Dan Carpenter
for previous series as discussed below.
http://www.spinics.net/lists/linux-scsi/msg103635.html
http://www.spinics.net/lists/linux-scsi/msg103603.html
Reported-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Sasikumar Chandrasekaran <sasikumar.pc@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:23 -05:00
Shivasharan S
e00731bc5a
scsi: megaraid_sas: Cleanup VD_EXT_DEBUG and SPAN_DEBUG related debug prints
...
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:23 -05:00
Shivasharan S
ec77959515
scsi: megaraid_sas: Increase internal command pool
...
Fix - increase internal command pool to 8.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:23 -05:00
Shivasharan S
29206da149
scsi: megaraid_sas: Use synchronize_irq to wait for IRQs to complete
...
FIX - Do not use random delay to synchronize with IRQ. Use kernel API.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:23 -05:00
Shivasharan S
72bff2d1d0
scsi: megaraid_sas: Bail out the driver load if ld_list_query fails
...
Error handling: Bail out the driver load if key FW cmds (LD_LIST) are
not return successful. Clean up error handling in megasas_init_fw.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:23 -05:00
Shivasharan S
7a7ae4f192
scsi: megaraid_sas: Change build_mpt_mfi_pass_thru to return void
...
Code refactoring to build_mpt_mfi_pass_thru to return void.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:23 -05:00
Shivasharan S
a6821ca39e
scsi: megaraid_sas: During OCR, if get_ctrl_info fails do not continue with OCR
...
Error handling: If controller reset is not able to recover, kill HBA and
quit immediately.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:23 -05:00
Shivasharan S
1d6dbd1752
scsi: megaraid_sas: Do not set fp_possible if TM capable for non-RW syspdIO, change fp_possible to bool
...
FIX - firmware wants non-RW SYS PD IOs to avoid FastPath for better
tracking and other functionalities if the device is task management
capable.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:23 -05:00
Shivasharan S
25fb13dd2d
scsi: megaraid_sas: Remove unused pd_index from megasas_build_ld_nonrw_fusion
...
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:22 -05:00
Shivasharan S
21c34006dc
scsi: megaraid_sas: megasas_return_cmd does not memset IO frame to zero
...
Memset the IO frame to zero after release.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:22 -05:00
Shivasharan S
cf4e55e7be
scsi: megaraid_sas: max_fw_cmds are decremented twice, remove duplicate
...
Fix to account for the reply_q_sz not exceeding the maximum commands
that the firmware can support, instance->max_fw_cmds is already
decremented in megasas_fusion_update_can_queue(). Remove the extra
decrement logic in code.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:22 -05:00
Shivasharan S
013aec66af
scsi: megaraid_sas: update can_queue only if the new value is less
...
Minor Optimization: No need to update HBA can_queue value if the current
max FW commands is equal to earlier value.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:22 -05:00
Shivasharan S
50b7f5a2d0
scsi: megaraid_sas: Change max_cmd from u32 to u16 in all functions
...
Since maximum supported FW commands are all defined as u16, change
all local variables referring to max_cmd from u32 to u16.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:22 -05:00
Shivasharan S
b41c0a4aa7
scsi: megaraid_sas: set pd_after_lb from MR_BuildRaidContext and initialize pDevHandle to MR_DEVHANDLE_INVALID
...
Issue is limited for Syncro firmware where pd_after_lb is not set but is
accidentally used. Not a functional issue, but results in low
performance due to improper load balancing between two LUNs.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:22 -05:00
Shivasharan S
95c060869e
scsi: megaraid_sas: latest controller OCR capability from FW before sending shutdown DCMD
...
Fetch the latest controller OCR capability from FW before sending
MR_DCMD_CTRL_SHUTDOWN When application sends a shutdown DCMD
(MR_DCMD_CTRL_SHUTDOWN), driver will fetch latest controller information
from firmware. This is to ensure that driver always has latest OCR
capability of controller before sending the DCMD.
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:22 -05:00
Shivasharan S
318aaef883
scsi: megaraid_sas: avoid unaligned access in ioctl path
...
Fix kernel warning for accessing unaligned memory access in driver.
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:22 -05:00
Shivasharan S
a174118b7a
scsi: megaraid_sas: big endian support changes
...
Fix endiannes fixes for Ventura specific.
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:22 -05:00
Shivasharan S
ff96f92517
scsi: megaraid_sas: Big endian RDPQ mode fix
...
Fix if RDPQ mode enabled MR FW is deployed on big endian host machine,
driver does not setup reply address correctly.
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:22 -05:00
Shivasharan S
d2d0358bcd
scsi: megaraid_sas: MR_TargetIdToLdGet u8 to u16 and avoid invalid raid-map access
...
Change MR_TargetIdToLdGet return type from u8 to u16.
ld id range check is added at two places in this patch -
@megasas_build_ldio_fusion and @megasas_build_ld_nonrw_fusion. Previous
driver code used different data type for lds TargetId returned from
MR_TargetIdToLdGet. Prior to this change, above two functions was
safeguarded due to function always return u8 and maximum value of ld id
returned was 255.
In below check, fw_supported_vd_count as of today is 64 or 256 and valid
range to support is either 0-63 or 0-255. Ideally want to filter
accessing raid map for ld ids which are not valid. With the u16 change,
invalid ld id value is 0xFFFF and we will see kernel panic due to random
memory access in MR_LdRaidGet. The changes will ensure we do not call
MR_LdRaidGet if ld id is beyond size of ldSpanMap array.
if (ld < instance->fw_supported_vd_count)
>From firmware perspective,ld id 0xFF is invalid and even though current
driver code forward such command, firmware fails with target not
available.
ld target id issue occurs mainly whenever driver loops to populate raid
map (ea. MR_ValidateMapInfo). These are the only two places where we
may see out of range target ids and wants to protect raid map access
based on range provided by Firmware API.
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com >
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2017-02-13 07:26:22 -05:00