commit ebd1f645bd4a284022c7d449a63fe48a3fc5a86e Author: Hannes Reinecke Date: Wed Aug 24 10:51:19 2011 +0200 [SCSI] scsi_dh_alua: Decrease retry interval The alua device handler starts the first retry after 10 seconds, and increases it times 10 for each round. This leads to an unnecessary delay. This patch modifies it to start after one second, and increase by a factor of two. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley commit cfde3fa166c7367258ab32c8a092ae787b2bc8af Author: Hannes Reinecke Date: Wed Aug 24 10:51:18 2011 +0200 [SCSI] scsi_dh_alua: Fix Erroneous TPG ID check For Target Portal Group IDs occupying the full 2 bytes in the RTPG response, the following group_id check in the alua_rtpg routine always fails in scsi_dh_alua.c: if (h->group_id == (ucp[2] << 8) + ucp[3]) { This causes the ALUA handler to wrongly identify the AAS of a specified device as well as incorrectly interpreting the supported AAS of the target as seen by the following entries in the /var/log/messages: "alua: port group 3ea state A supports tousna" "alua: port group 3e9 state A supports tousna" This is because 'ucp' is wrongly declared in alua_rtpg as a character pointer instead of an unsigned character pointer. Signed-off-by: Martin George Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley commit 6bc8d2a0c6bb3e52f0c66e6cde6799d1b90b42ba Author: Hannes Reinecke Date: Wed Aug 24 10:51:17 2011 +0200 [SCSI] scsi_dh: Check for sdev state in store_dh_state() Avoid attaching a hardware handler to a device which is already scheduled for deletion. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley commit 46ccf6b55bfa9fff7d0a9da761f186e98cf2f660 Author: Hannes Reinecke Date: Wed Aug 24 10:51:16 2011 +0200 [SCSI] scsi_dh_alua: always update TPGS status on activate When activating a patch we should always update the TPGS state as it might have changed in between. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley commit 6c3633d08acf514e2e89aa95d2346ce9d64d719a Author: Hannes Reinecke Date: Wed Aug 24 10:51:15 2011 +0200 [SCSI] scsi_dh: Implement match callback function Some device handler types are not tied to the vendor/model but rather to a specific capability. Eg ALUA is supported if the 'TPGS' setting in the standard inquiry is set. This patch implements a 'match' callback for device handler which supersedes the original vendor/model lookup and implements the callback for the ALUA handler. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley commit 2a9ab40f74eb22cdf02e8f687bef7f3eac7f6cfa Author: Hannes Reinecke Date: Wed Aug 24 10:51:14 2011 +0200 [SCSI] scsi_dh: Fixup kernel-doc comments Fixup some kernel-doc comments to reference to the correct function name. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley commit d7c48feb38a5cb6d863d69fd5ef6c309971ebe31 Author: Hannes Reinecke Date: Wed Aug 24 10:51:13 2011 +0200 [SCSI] scsi_dh_alua: Evaluate TPGS setting from inquiry data Instead of issuing a standard inquiry from within the alua device handler we can evaluate the TPGS setting from the existing inquiry data of the sdev and save us the I/O. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley commit ac81c6a832a8769d1cc7ffda361aa3dc3d8f06dc Author: Christoph Hellwig Date: Sat Jul 16 15:00:35 2011 -0400 [SCSI] libsas: fix sas_queuecommand return values ->queuecommand must return either 0, or one of the SCSI_MLQUEUE_* return values. Non-transient errors are indicated by setting cmd->result before calling ->scsi_done and returning 0. Fix libsas to adhere to this calling convention. Note that the DID_ERROR for returns from the low-level driver might not be correct for all cases, but it's the best we can do with the current layering in libsas. I also suspect that the pre-existing handling of -SAS_QUEUE_FULL should really be SCSI_MLQUEUE_HOST_BUSY, but I'll leave that for a separate change. Signed-off-by: Christoph Hellwig Signed-off-by: James Bottomley commit a923f756be07aae690ec3dd2e4a25967658cf893 Author: Christoph Hellwig Date: Mon Jul 11 14:49:24 2011 -0400 [SCSI] libsas: reindent sas_queuecommand Switch sas_queuecommand to a normal indentation and goto based error handling. Signed-off-by: Christoph Hellwig Signed-off-by: James Bottomley commit 92bd401ba7248946a4215d65ae9b1993ae66db2c Author: Christoph Hellwig Date: Mon Jul 11 14:49:23 2011 -0400 [SCSI] libsas: sas_queuecommand doesnt need host_lock Signed-off-by: Christoph Hellwig Signed-off-by: James Bottomley commit fe2d1851e9dc69da8de5dfe3fc748d041c31e25a Author: Nao Nishijima Date: Thu Aug 25 18:04:14 2011 +0900 [SCSI] sd: Use sd_printk() instead of printk() sd_ioctl() still use printk() for log output. It should use sd_printk() instead of printk(), as well as other sd_*. All SCSI messages should output via s*_printk() instead of printk(). Signed-off-by: Nao Nishijima Signed-off-by: James Bottomley commit a72c5e5eb738033938ab30d6a634b74d1d060f10 Author: Nao Nishijima Date: Thu Aug 25 18:04:06 2011 +0900 [SCSI] genhd: add a new attribute "alias" in gendisk This patch allows the user to set an "alias" of the disk via sysfs interface. This patch only adds a new attribute "alias" in gendisk structure. To show the alias instead of the device name in kernel messages, we need to revise printk messages and use alias_name() in them. Example: (current) printk("disk name is %s\n", disk->disk_name); (new) printk("disk name is %s\n", alias_name(disk)); Users can use alphabets, numbers, '-' and '_' in "alias" attribute. A disk can have an "alias" which length is up to 255 bytes. This attribute is write-once. Suggested-by: James Bottomley Suggested-by: Jon Masters Signed-off-by: Nao Nishijima Signed-off-by: James Bottomley commit 76e4e12ff2b3ef86773989fd897b194eb38016e6 Author: Mike Christie Date: Thu Aug 25 00:36:38 2011 -0500 [SCSI] scsi scan: don't fail scans when host is in recovery The problem is that if we are doing a scsi scan then the device goes into recovery then we will wait for the recovery to complete. It waits because scsi-ml will send inquiries or report luns and the queueing code will have been blocked due to the host not being ready. However, if we are in recovery and then a scan is started the scan will silently fail and some devices will not be added. It is easy to hit the problem where devices do not show up with FC where we are doing tests that disrupt the target controllers. When the controller is disruprted (reboot, or setting firmware, etc), and we cause the dev loss tmo to fire then devices will be removed Then when the problem has been fixed, the rport will be scanned and devices should be added back. But if we cause another disruption before scanning has started then devices will not get added back. If the problem is not started until the scan is started then the devices will be added back. This patch fixes that problem by not failing scans when the host is in recovery. We will let scsi-ml send the IO and let the queueing and scsi error handling deal with it like is done if we went into recovery while scanning. For recovery cases where the host is being torn down then with the patch we will still fail the scan since there is not point in scanning. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit eccdcd026ae7359e22b70444b8a45f712f05cc37 Author: Bhanu Prakash Gollapudi Date: Wed Aug 24 18:56:42 2011 -0700 [SCSI] bnx2fc: Need not schedule destroy_work from __bnx2fc_destroy Since it is already called in the right context with rtnl_lock and dev_mutex held. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit 1dbf5a370606284aa2ed8ba54848631201121638 Author: James Smart Date: Sun Aug 21 21:49:49 2011 -0400 [SCSI] lpfc 8.3.26: Change driver version to 8.3.26 Signed-off-by: Alex Iannicelli Signed-off-by: James Smart Signed-off-by: James Bottomley commit f7a919b4cd048f345c07c2235d0fb8ac93d24cca Author: James Smart Date: Sun Aug 21 21:49:16 2011 -0400 [SCSI] lpfc 8.3.26: Fix SYSFS interface issues Fix SYSFS interface issues. - In the lpfc_sli4_pdev_status_reg_wait() routine, after initial 100ms delay following write to PHYSDEV_CONTROL register for the firmware reaction, check the RN bit and ERR bit of the SLIPORT_STATUS register. If none of them became 1, the previous PHYSDEV_CONTROL register should be considered failed due to lack of privilege and error for no permission should be returned immediately without getting into the wait for RDY bits on the SLIPORT_STATUS register. - Remove the driver check on dev->is_physfn before proceed to perform the PHYSDEV_CONTROL register write, and let the PCI function's privilege setting and driver handling of PHYSDEV_CONTROL register write failure to handle the reset-ability through the SLI port. - Added key to ctlreg_write to prevent unauthorized or unexpected write to the control register. - Change return to EACCES for sysfs access that are failed because hba_reset is disabled. Signed-off-by: Alex Iannicelli Signed-off-by: James Smart Signed-off-by: James Bottomley commit 079b5c916d19e7533c060b32d4a31ce45c3552d2 Author: James Smart Date: Sun Aug 21 21:48:49 2011 -0400 [SCSI] lpfc 8.3.26: Fix HBA initialization issues Fix HBA initialization issues - Swap all values that come from the firmware image on little endian systems. Created a new bf_get_be macro that does the same as the bf_get_le macro but for big endian data instead of little endian data. - Moved the incrementing of temp_offset after the copy fixed the write object loop to use temp_offset to figure out where the end of the image is instead of offset. - Added the necessary codes for properly bringing the driver instance offline and then trying to bring the port back online with the PCI function IP reset. If it fails to bring the SLI port back online, it will fall through to bringing the SLI port to HBA error offline. - Add a call in the probe_one_s3 and probe_one_s4 routines to get the Modeldesc - Change OCe50100 to OCe15100 - Made the error log also include the PCI BAR bitmap returned from kernel call pci_select_bars(). Signed-off-by: Alex Iannicelli Signed-off-by: James Smart Signed-off-by: James Bottomley commit bf08611bcc461d83199a8449930b176823017f58 Author: James Smart Date: Sun Aug 21 21:48:13 2011 -0400 [SCSI] lpfc 8.3.26: Fix issues pertaining to SCSI/FC protocol. Fix issues pertaining to SCSI/FC protocol. - Allow frames destined to 0xFFFFFE to be processed by the driver by matching that DID with the physical port. - Call lpfc_sli_issue_iocb with context1 set to ndlp - In echo command accept function, adjust memcpy to limit memcpy to 1K - Set LPFC_SLI3_BG_ENABLED properly upon completion. - Skip the INIT_VFI call in lpfc_register_fcf if the FCF is already registered and go immediately to initial flogi. - use "status" variable instead of "ret" variable to hold the return of the fc_block_scsi_eh. Signed-off-by: Alex Iannicelli Signed-off-by: James Smart Signed-off-by: James Bottomley commit 8dce69ff481a8d17a7d1027f23595083f28b4556 Author: Jayamohan Kallickal Date: Mon Aug 22 10:08:29 2011 -0700 [SCSI] be2iscsi: Add pci_disable device This patch adds call to pci_disable_device during rmmod and shutdown. The lack of this call was causing hang in insmod - rmmod loop test Signed-off-by: Jayamohan Kallickal Signed-off-by: James Bottomley commit 25602c97f50e4b7fea84d2c81326dc5e372ca868 Author: Jayamohan Kallickal Date: Mon Aug 22 10:08:28 2011 -0700 [SCSI] be2iscsi: Adding a shutdown Routine This patch adds a shutdown routine. It fixes a bug where when be2net and be2iscsi are both used be2iscsi was not cleaning up its resources properly causing be2net to fail to get loaded when the system is rebooted. Signed-off-by: Jayamohan Kallickal Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 8fcfb21073ea4f4261c8ee3ccd2fde8e281a4f28 Author: Jayamohan Kallickal Date: Wed Aug 24 16:05:30 2011 -0700 [SCSI] be2iscsi: Fixing the /proc/interrupts problem V3 Fix be2iscsi driver to use a separate pointer for each irq action->name field and avoid display corruption in /proc/interrupts. The be2iscsi driver was using a single static array in a function for the irq action->name field. This results in garbage output from /proc/interrupts The pointer for action->name is garbage and scribbles the output on the screen. This patch fixes the problem: 156: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-X beiscsi_msix_0017 This patch is based on Prarit's patch here: http://www.spinics.net/lists/linux-scsi/msg52325.html but I have fixed up the failure paths and removed redundant check for !i suggested by Eike. Signed-off-by: Jayamohan Kallickal Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit e5fdae5583e30bbc730e2035d0b6da33e7d8e4ee Author: Chad Dupuis Date: Tue Aug 16 11:31:55 2011 -0700 [SCSI] qla2xxx: Fix "active_mask" may be used uninitialized warning. Since active_mask is first assigned in an "else" block, the compiler throws a warning saying that the active_mask variable may be used uninitialized in a print statement later. Initialize active_mask to 0 in the declaration to stop the warning. Signed-off-by: Chad Dupuis Signed-off-by: James Bottomley commit 3173167f015b779e549e1be04707316cce1b57f1 Author: Giridhar Malavali Date: Tue Aug 16 11:31:54 2011 -0700 [SCSI] qla2xxx: Issue mailbox command only when firmware hung bit is reset for ISP82xx. Signed-off-by: Giridhar Malavali Signed-off-by: Chad Dupuis Signed-off-by: James Bottomley commit b668ae37f10e5cefe65303150867e3fa2e631b93 Author: Joe Carnuccio Date: Tue Aug 16 11:31:53 2011 -0700 [SCSI] qla2xxx: Return sysfs error codes appropriate to conditions. Return sysfs error codes that match the conditions encountered. This prevents sysfs from retrying a request which is conditioned to fail under the current circumstance. Signed-off-by: Joe Carnuccio Signed-off-by: Chad Dupuis Signed-off-by: James Bottomley commit 697a4bc69159c3396035b0506ffa55c4b2d0b1f4 Author: Joe Carnuccio Date: Tue Aug 16 11:31:52 2011 -0700 [SCSI] qla2xxx: Provide method for updating I2C attached VPD. Provide bsg interface for updating VPD attached on the I2C serial bus. Signed-off-by: Joe Carnuccio Signed-off-by: Chad Dupuis Signed-off-by: James Bottomley commit 1fedd80f9c2e1da9e6c2fa6a1b75ad077c70f291 Author: Joe Carnuccio Date: Tue Aug 16 11:31:51 2011 -0700 [SCSI] qla2xxx: Correction to sysfs edc interface. Corrects the return value for the cases where read/write edc fails; this prevents sysfs from retrying the operation until forever. Corrects the printk width specifier for the first byte of buf. Signed-off-by: Joe Carnuccio Signed-off-by: Chad Dupuis Signed-off-by: James Bottomley commit 491118dff9aeb207408bd42aa4897bc2c145747f Author: Saurav Kashyap Date: Tue Aug 16 11:31:50 2011 -0700 [SCSI] qla2xxx: During loopdown perform Diagnostic loopback. Signed-off-by: Saurav Kashyap Signed-off-by: Chad Dupuis Signed-off-by: James Bottomley commit 63d92d3e2e211660b1dff155e98e924d560e8163 Author: Saurav Kashyap Date: Tue Aug 16 11:31:49 2011 -0700 [SCSI] qla2xxx: Fix array out of bound warning. Signed-off-by: Saurav Kashyap Signed-off-by: Chad Dupuis Signed-off-by: James Bottomley commit 54883291ffdcffbe5c077ede7ec1cf8e5d5e22b6 Author: Saurav Kashyap Date: Tue Aug 16 11:31:48 2011 -0700 [SCSI] qla2xxx: check for marker IOCB during response queue processing. Signed-off-by: Saurav Kashyap Signed-off-by: Chad Dupuis Signed-off-by: James Bottomley commit 86e45bf66fd871bbc69a03c4f9f76ac57e72a2aa Author: Chad Dupuis Date: Tue Aug 16 11:31:47 2011 -0700 [SCSI] qla2xxx: Enable write permission to some debug related module parameters to be changed dynamically. Signed-off-by: Chad Dupuis Signed-off-by: James Bottomley commit c8582ad95bcbdf46f799d310d7dfee73d941c2f4 Author: Saurav Kashyap Date: Tue Aug 16 11:31:46 2011 -0700 [SCSI] qla2xxx: Prevent CPU lockups when "ql2xdontresethba" module param is set. Driver is not releasing the lock if ql2xdontresethba is set, this might lead to a lockup. Signed-off-by: Saurav Kashyap Signed-off-by: Chad Dupuis Signed-off-by: James Bottomley commit 999916dc59dc2fb0de221ad607d58cdc88fcbbe4 Author: Saurav Kashyap Date: Tue Aug 16 11:31:45 2011 -0700 [SCSI] qla2xxx: Implemeted beacon on/off for ISP82XX. [jejb: fix up checkpatch.pl errors] Signed-off-by: Saurav Kashyap Signed-off-by: Chad Dupuis Signed-off-by: James Bottomley commit 08de2844c626511cfd1db9c36e5e7d126707f780 Author: Giridhar Malavali Date: Tue Aug 16 11:31:44 2011 -0700 [SCSI] qla2xxx: Add support for ISP82xx to capture dump (minidump) on failure. Minidump allows us to catpure a snapshot of the firmware/hardware states at the time of failure for further analysis. [jejb: added missing #include Reported-by: Stephen Rothwell ] Signed-off-by: Giridhar Malavali Signed-off-by: Chad Dupuis Signed-off-by: James Bottomley commit 86a9668a8d29ea711613e1cb37efa68e7c4db564 Author: Swen Schillig Date: Mon Aug 15 14:40:32 2011 +0200 [SCSI] zfcp: support for hardware data router FICON Express8S supports hardware data router, which requires an adapted qdio request format. This part 2/2 exploits the functionality in zfcp. Signed-off-by: Swen Schillig Signed-off-by: Steffen Maier Signed-off-by: James Bottomley commit dfe5bb506172307e43287b8962348fb85801c0f4 Author: Swen Schillig Date: Mon Aug 15 14:40:31 2011 +0200 [SCSI] qdio: base support for hardware data router with zfcp FICON Express8S supports hardware data router, which requires an adapted qdio request format. This part 1/2 provides the qdio base required for exploitation in zfcp. Signed-off-by: Swen Schillig Signed-off-by: Steffen Maier Signed-off-by: James Bottomley commit cc405acee244310cc87ddc5e3f4bc61342ec8161 Author: Steffen Maier Date: Mon Aug 15 14:40:30 2011 +0200 [SCSI] zfcp: non-experimental support for DIF/DIX DIF/DIX support for zfcp is no longer experimental, and config option is no longer necessary. Return error from queuecommand for unsupported data directions. Signed-off-by: Steffen Maier Signed-off-by: James Bottomley commit f0c568a478f03536602b1730b9473ee86d61d836 Author: Jianyun Li Date: Wed May 11 23:22:44 2011 +0800 [SCSI] mvumi: Add Marvell UMI driver The Marvell Universal Message Interface (UMI) defines a messaging interface between host and Marvell products (Plato, for example). It considers situations of limited system resource and optimized system performance. UMI driver translates host request to message and sends message to FW via UMI, FW receives message and processes it, then sends response to UMI driver. FW generates an interrupt when it needs to send information or response to UMI driver Signed-off-by: Jianyun Li Signed-off-by: James Bottomley commit de37920b87a78e5e4a5e40e65548f1bf1cfb2f5c Author: Mike Christie Date: Sun Aug 14 20:42:56 2011 -0500 [SCSI] qla4xxx: export iface name Export the name of iface session is attached to. This is needed so tools like iscsiadm/iscsistart can match the sessions to userspace ifaces when rebuilding iscsid's state during boot. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 95d31262b3c1ba5b945a6e7b4f679532db622a27 Author: Vikas Chaudhary Date: Fri Aug 12 02:51:29 2011 -0700 [SCSI] qla4xxx: Added support for adapter and firmware reset Signed-off-by: Vikas Chaudhary Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 2944369144548432f3a5ffce7a2926bfb4ce4f0a Author: Vikas Chaudhary Date: Fri Aug 12 02:51:28 2011 -0700 [SCSI] scsi: Added support for adapter and firmware reset Added new sysfs attr 'host_reset' in scsi_sysfs.c to perform adapter or firmware reset as suggested by Mike Christie here: http://marc.info/?l=linux-scsi&m=127359347111167&w=2 user/application can write "adapter" or "firmware" on this attr and it will call newly added function hook in scsi_host_template to call LDD adapter or firmware reset implementation. Signed-off-by: Vikas Chaudhary Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 6085491c34b37fa806f70ccd3fb2bf08416e9e98 Author: Harish Zunjarrao Date: Fri Aug 12 02:51:27 2011 -0700 [SCSI] qla4xxx: Added Get ACB support using BSG This command is used to read ACB params from firmware Signed-off-by: Harish Zunjarrao Signed-off-by: Vikas Chaudhary Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 5232f801bd0cfb4122e9a28ff942965c3c485fa7 Author: Harish Zunjarrao Date: Fri Aug 12 02:51:26 2011 -0700 [SCSI] qla4xxx: Added restore factory defaults support using BSG This command will causes the firmware to update all configurations to pre-defined factory default settings. Signed-off-by: Harish Zunjarrao Signed-off-by: Vikas Chaudhary Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit dfcf7775815504d13a1d273073810058caf84b9d Author: TARUISI Hiroaki Date: Thu Aug 11 20:25:20 2011 +0900 [SCSI] Fix out of spec CD-ROM problem with media change Some CD-ROMs fail to report a media change correctly. The specific one for this patch simply fails to respond to commands, then gives a UNIT ATTENTION after being reset which returns ASC/ASCQ 28/00. This is out of spec behaviour, but add a check in the eat CC/UA on reset path to catch this case so the CD-ROM will function somewhat properly. [jejb: fixed up white space and accepted without signoff] Signed-off-by: James Bottomley commit 2ada7fc5d4c4ddeb15bb624045fa3b36ddc025e6 Author: Vikas Chaudhary Date: Mon Aug 1 03:26:19 2011 -0700 [SCSI] qla4xxx: added support to update initiator iscsi port Signed-off-by: Vikas Chaudhary Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit fcb5124e03c8158cfe06cb204e1633149edc5f88 Author: Vikas Chaudhary Date: Mon Aug 1 03:26:18 2011 -0700 [SCSI] scsi_transport_iscsi: Added support to update initiator iscsi port Signed-off-by: Vikas Chaudhary Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 91ec7cec4acf0d6b7de34009fc49c8c3353b8035 Author: Vikas Chaudhary Date: Mon Aug 1 03:26:17 2011 -0700 [SCSI] qla4xxx: Added vendor specific sysfs attributes Added board_id, fw_state, phy_port_cnt, phy_port_num, iscsi_func_cnt, hba_model Signed-off-by: Harish Zunjarrao Signed-off-by: Vikas Chaudhary Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 7c07d139cfec3172e813b468a8a173ad73bb5da9 Author: Harish Zunjarrao Date: Mon Aug 1 03:26:16 2011 -0700 [SCSI] qla4xxx: Add read/update NVRAM support for 40xx adapters using BSG Signed-off-by: Harish Zunjarrao Signed-off-by: Vikas Chaudhary Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 8b0402e1383cd51121f05a1d249cde0212c28c99 Author: Harish Zunjarrao Date: Mon Aug 1 03:26:15 2011 -0700 [SCSI] qla4xxx: Add get ACB state support using BSG Signed-off-by: Harish Zunjarrao Signed-off-by: Vikas Chaudhary Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit ef7830bb62c9edf34fc4e849a53d7e87bf51de4a Author: Harish Zunjarrao Date: Mon Aug 1 03:26:14 2011 -0700 [SCSI] qla4xxx: Code cleanup for read/update flash using BSG - Corrected return status - Added reset active check - Removed unused dma_map_sg calls - Added debug prints on failure Signed-off-by: Harish Zunjarrao Signed-off-by: Vikas Chaudhary Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 943c157b7934a3b9fcf5290328be3b84d1a1a104 Author: Vikas Chaudhary Date: Mon Aug 1 03:26:13 2011 -0700 [SCSI] qla4xxx: Added support to update mtu Signed-off-by: Vikas Chaudhary Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 8c7d40fb6b51ef37df64af0e6add35baaf48896c Author: Vikas Chaudhary Date: Mon Aug 1 03:26:12 2011 -0700 [SCSI] scsi_transport_iscsi: Added support to update mtu Signed-off-by: Vikas Chaudhary Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 2a991c2159782b8d318ac9f88a36c22dda3e7185 Author: Manish Rangankar Date: Mon Jul 25 13:48:55 2011 -0500 [SCSI] qla4xxx: Boot from SAN support for open-iscsi Hook qla4xxx in fw boot sysfs interface so iscsi tools can use the info to create boot sessions. Signed-off-by: Manish Rangankar Signed-off-by: Vikas Chaudhary Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 0e7e85019c2709131b10c5f34b602cc6b94fe782 Author: Manish Rangankar Date: Mon Jul 25 13:48:54 2011 -0500 [SCSI] qla4xxx: Remove reduandant code after open-iscsi integration. 1. Remove device database entry (ddb) state. 2. Remove device database (DDB) list building. With open-iscsi integration the logins to the target devices are handled by the user space. So the information of target is now maintained in the iscsi_session object. This is handled at libiscsi level so there is no need to maintain a list of DDBs in the qla4xxx LLD. 3. qla4xxx: Remove add_device_dynamically. Since autologin in FW is disabled with open-iscsi integration, driver will never get an AEN for which driver has not requested a DDB index. So remove the add_device_dynamically function. 4. Remove qla4xxx_tgt_dscvr Since firmware autologin is disabled this function will not work. Now user has the ability to do the target discovery and login to each target individually. Firwmare will not do the login on its own. 5. Remove relogin related code All relogin is handled by userspace now. qla4xxx just need to notify userspace of a connection failure, this triggers the relogin. 6. Remove add_session and alloc_session Now qla4xxx uses iscsi_session_setup that would do the necessary allocations for session and ddb_entry. Signed-off-by: Manish Rangankar Signed-off-by: Lalit Chandivade Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit b3a271a94d0034dd3bab10b8d8cd432843be629e Author: Manish Rangankar Date: Mon Jul 25 13:48:53 2011 -0500 [SCSI] qla4xxx: support iscsiadm session mgmt Add scsi_transport_iscsi hooks in qla4xxx to support iSCSI session management using iscsiadm. This patch is based on discussion here http://groups.google.com/group/open-iscsi/browse_thread/thread/e89fd888baf656a0# Now users can use iscsiadm to do target discovery and do login/logout to individual targets using the qla4xxx iSCSI class interface. This patch leaves some dead code, but to make it easier to review we are leaving and in the next patch we will remove that old code. V2 - NOTE: Added code to avoid waiting for AEN during login/logout in the driver, instead added a kernel to user event to notify iscsid about login status. Because of this iscsid will not get blocked. Signed-off-by: Manish Rangankar Signed-off-by: Lalit Chandivade Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 17fa575eec7254fb089f858cae135d64cd015440 Author: Manish Rangankar Date: Mon Jul 25 13:48:52 2011 -0500 [SCSI] scsi_transport_iscsi: Add conn login, kernel to user, event to support offload session login. Offload drivers like qla4xxx will offload the sending of the login/logout pdus still, so this patch adds iscsi_conn_login_event which is used by these types of drivers to notify userspace that the connection has changed state. It also adds a iscsi_is_session_online helper so the lld can query the sessions state field. Signed-off-by: Manish Rangankar Signed-off-by: Lalit Chandivade Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit a355943ca847ca3a264d468e408217562234d019 Author: Vikas Chaudhary Date: Mon Jul 25 13:48:51 2011 -0500 [SCSI] qla4xxx: add bsg support This patch adds bsg support to qla4xxx. Signed-off-by: Vikas Chaudhary Signed-off-by: Harish Zunjarrao Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 90eeb01a038e5fec0efdea4df008f3c18f67b82c Author: Mike Christie Date: Mon Jul 25 13:48:50 2011 -0500 [SCSI] iscsi class: add bsg support to iscsi class This patch adds bsg support to the iscsi class. There is only 1 request, the host vendor one, supported. It is expected that this would be used for things like flash updates. This patch is made over this one http://marc.info/?l=linux-scsi&m=131149780020992&w=2 Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 6ac73e8cb02e65abeb2f8d43f0fe48e485444b44 Author: Vikas Chaudhary Date: Mon Jul 25 13:48:49 2011 -0500 [SCSI] qla4xxx: Add VLAN support Add support to set VLAN and show vlan settings in sysfs Signed-off-by: Vikas Chaudhary Signed-off-by: Harish Zunjarrao [Patch updated to new defines] Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 5431ae267ab20464cea3e1c1d1bc34d259f3973c Author: Mike Christie Date: Mon Jul 25 13:48:48 2011 -0500 [SCSI] libiscsi: don't bugon when if user sets markers libiscsi does not support markers and if someone tries to set them the driver does a BUG(). There is not need to be that extreme. Just return -ENOSYS. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 4223b9e919761ba1405a8505bda0b4efa17e8f0e Author: Mike Christie Date: Mon Jul 25 13:48:47 2011 -0500 [SCSI] iscsi class: expand vlan support Add support to set vlan priority and enable/disble a vlan. Patch based on code from Vikas Chaudhary. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 3093b0484d77ea774d74dfd7f5419831a716a9aa Author: Mike Christie Date: Mon Jul 25 13:48:46 2011 -0500 [SCSI] be2iscsi: remove host and session casts iscsi_session_to_shost is a macro around dev_to_shost which returns a Scsi_Host so there is no need to cast. iscsi_session_to_shost is a macro around shost_priv which returns a void pointer so no need to cast. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit f27fb2ef7bd88c9c5f67befe4d85e2155aa0e1a8 Author: Mike Christie Date: Mon Jul 25 13:48:45 2011 -0500 [SCSI] iscsi class: sysfs group is_visible callout for iscsi host attrs The iscsi class currently does not support writable sysfs attrs for LLD sysfs settings. This patch converts the iscsi class and driver's host attrs to use the attribute container sysfs group and the sysfs group's is_visible callout to be able to support readable or writable sysfs attrs. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit b78dbba0053c6f14384d55b929d21b85d03c38bb Author: Mike Christie Date: Mon Jul 25 13:48:44 2011 -0500 [SCSI] iscsi class: remove iface param mask We can replace the iface param mask with the attr_is_visible callback. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 1d063c17298d7cd26cfe350f1e93e1727b4aa53f Author: Mike Christie Date: Mon Jul 25 13:48:43 2011 -0500 [SCSI] iscsi class: sysfs group is_visible callout for session attrs The iscsi class currently does not support writable sysfs attrs for LLD sysfs settings. This patch converts the iscsi class and driver's session attrs to use the attribute container sysfs group and the sysfs group's is_visible callout to be able to support readable or writable sysfs attrs. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 3128c6c73cdf3df92c3165bfb785ae50114d18bf Author: Mike Christie Date: Mon Jul 25 13:48:42 2011 -0500 [SCSI] iscsi cls: sysfs group is_visible callout for conn attrs The iscsi class currently does not support writable sysfs attrs for LLD sysfs settings. This patch converts the iscsi class and drivers to use the attribute container sysfs group and the sysfs group's is_visible callout to be able to support readable or writable sysfs attrs. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit ed1086e041b4870313dd0c0755f4bbc3b62d0d08 Author: Vikas Chaudhary Date: Mon Jul 25 13:48:41 2011 -0500 [SCSI] qla4xxx: added support to show multiple iface in sysfs Add support for default ipv4 and ipv6 ifaces in qla4xxx. Signed-off-by: Vikas Chaudhary Reviewed-by: Lalit Chandivade Reviewed-by: Harish Zunjarrao [make iface creation dynamic] Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 8d07913dbe79568eafe5bb73806a08aac294d4e6 Author: Mike Christie Date: Mon Jul 25 13:48:40 2011 -0500 [SCSI] iscsi class: add iface representation A iscsi host can have multiple interfaces. This patch adds a new iface iscsi class for this. It exports the network settings now, and will be extended to also export iscsi initiator port settings like the isid and initiator name for drivers that can support multiple initiator ports. Based on patch from Lalit Chandivade. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 2bab08fc770ccd6c56859371356a4a905e8c0bd4 Author: Vikas Chaudhary Date: Mon Jul 25 13:48:39 2011 -0500 [SCSI] qla4xxx: Added new "struct ipaddress_config" - Move all ipaddress related param to "struct ipaddress_config" from "struct scsi_qla_host" - update function - qla4xxx_update_local_ip() - Rename IPOPT_IPv4_PROTOCOL_ENABLE to IPOPT_IPV4_PROTOCOL_ENABLE Signed-off-by: Vikas Chaudhary [update for new ISCSI_IFACE values] Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit d00efe3fa87fdf1df3635ba57ef3f14d03bc3ac8 Author: Mike Christie Date: Mon Jul 25 13:48:38 2011 -0500 [SCSI] qla4xxx: add support for set_net_config Allows user space (iscsiadm) to send down network configuration parameters for LLD to set private network configuration on the iSCSI adapters. Based on patches from Vikas Chaudhary. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 56c155b5ca427c9a6312bb0e31865f1c8ab10b2b Author: Mike Christie Date: Mon Jul 25 13:48:37 2011 -0500 [SCSI] iscsi_transport: add support for net settings Allows user space (iscsiadm) to send down network configuration parameters for LLD to set private network configuration on the iSCSI adapters. Based on patch from Lalit Chandivade. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 5d7c20b7fa5c6ca19e871b4050e321c99d32bd43 Author: Anton Blanchard Date: Mon Aug 1 19:43:45 2011 +1000 [SCSI] ipr: Always initiate hard reset in kdump kernel During kdump testing I noticed timeouts when initialising each IPR adapter. While the driver has logic to detect an adapter in an indeterminate state, it wasn't triggering and each adapter went through a 5 minute timeout before finally going operational. Some analysis showed the needs_hard_reset flag wasn't getting set. We can check the reset_devices kernel parameter which is set by kdump and force a full reset. This fixes the problem. Signed-off-by: Anton Blanchard Cc: Acked-by: Brian King Signed-off-by: James Bottomley commit 98cbe371fd373f13806595835b79da07f3a2f934 Author: kashyap.desai@lsi.com Date: Fri Aug 5 11:04:37 2011 +0530 [SCSI] mptfusion: Fix for device offline while doing aggressive HBA reset [Resend patch as per Bernd Schubert comment ] Issue: Device goes offline while doing aggressive HBA reset along with IO using some utility. Root cause: FW goes into bad state due to aggressive reset. Softreset does not help to recover FW. And also aggressive reset open up the window for Error handling thread to kicked off at the same time HBA will be in constant RESET loop as part of aggressive reset test case can lead Device to goes offline. Changes: 1. Added extra check as below inside eh_timed_out call back as below. if(ioc->ioc_reset_in_progress) Rc = EH_TIMER_RESET 2. Removed " DOORBELL_ACTIVE" check for SAS controller from task management context. Since SAS controller uses high priority queue for task management. This check is not required for SAS controller. 3. Moved SoftReset call to HardReset from Task Mgmt context. Signed-off-by: Kashyap Desai Signed-off-by: James Bottomley commit 55a3a35dd4fe616301450c85a77e2d5b5f4bb7bf Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:52 2011 -0700 [SCSI] bnx2fc: Bump version to 1.0.5 Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit 861efc547ce517e3d75a507ebc2268e6a0dfa767 Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:51 2011 -0700 [SCSI] bnx2fc: Prevent creating of NPIV port with duplicate WWN This patch adds a validation step before allowing creation of a new NPIV port. It checks whether the WWPN passed for the new NPIV port to be created is unique for the given physical port. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit 5243960777a8d5f0dfabd0e67035d13ac6eaf304 Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:50 2011 -0700 [SCSI] bnx2fc: Obtain WWNN/WWPN from the shared memory bnx2x driver would obtain the WWNN/WWPN from the shared memory and can be obtained by the bnx2fc driver via ndo_fcoe_get_wwn. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit d834895c41d34b64a1923fa631e6a64f763ed31c Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:49 2011 -0700 [SCSI] fcoe: Move common functions to fcoe_transport library Export fcoe_get_wwn, fcoe_validate_vport_create and fcoe_wwn_to_str so that all LLDs can use these common function. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit 3f8744d147375aca902de7a9f2632a89872565f4 Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:48 2011 -0700 [SCSI] bnx2fc: Drop incoming ABTS As an initiator, driver need not handle incoming ABTS. It initiates an ABTS if any IO requests time out. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit 5fb8fd0dbc0f7e3bc3ea594223e5d4b50c2092d9 Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:47 2011 -0700 [SCSI] bnx2fc: code cleanup in bnx2fc_offload_session - Free session resources before rport logoff - Do not free session resources in bnx2fc_alloc_session_resc() as it is handled in caller's error handling path. - Do not call bnx2fc_free_session_resc() if bnx2fc_init_tgt() fails as cq_lock is not yet initialized. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit b338c785c5c945383046ff39092e3021ea5b1d95 Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:46 2011 -0700 [SCSI] bnx2fc: Fix NULL pointer deref during arm_cq. There exists a race condition between CQ doorbell unmap and IO completion path that arms the CQ which causes a NULL dereference. Protect the ctx_base with cq_lock to avoid this. Also, wait for the CQ doorbell to be successfully mapped before arming the CQ. Also, do not count uncolicited CQ completions for free_sqes. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit 81214013130cd24142f6465f7f5a256fed530c17 Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:45 2011 -0700 [SCSI] bnx2fc: IO errors when receiving unsolicited LOGO During the unsolicited LOGO processing, the session is uploaded and offloaded after the relogin is complete. In between any new IOs are errored back as the upload completion flag is set. Upon exhausting the retry count, the application fails the IOs. Return target busy for all the cases when session is not ready. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit 291fbe138f820f880b3e70852d200c0f2527430c Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:44 2011 -0700 [SCSI] bnx2fc: Do not reuse the fcoe connection id immediately CFC_DELETE is issued 2 secs after CONN_TERM is completed. If the session is uploaded and offloaded immediately, it has to wait for the connection id to be available. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit cd703ae790a07ece30e51a8583ea2490d14efb7c Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:43 2011 -0700 [SCSI] bnx2fc: Clear DESTROY_CMPL flag after firmware destroy Since this flag was never cleared, the driver does not wait for firmware destroy completions, causing missed KCQEs. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit abc49a937b23adc7d9748709ca82ee32464ae089 Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:42 2011 -0700 [SCSI] bnx2fc: Handle NETDEV_UNREGISTER for vlan devices Since the driver holds the reference for vlan netdev, the reference has to be released by the driver when the vlan device is removed. Driver handles this in NETDEV_UNREGISTER event. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit 9be17fc43e0121e966049a323ad38a35626525c1 Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:41 2011 -0700 [SCSI] bnx2fc: Reorganize cleanup code between interface_cleanup and if_destory Move interface specific cleanup functionality to from bnx2fc_if_destroy to bnx2fc_interface_cleanup. Do not access interface/hba in bnx2fc_if_destroy as by the time this function is called interface may already be destroyed. This patch is in preparation to handle NETDEV_UNREGISTER on a vlan device. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit 776cebcac6fad2f638c0ab16e2111a84c1c85d84 Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:40 2011 -0700 [SCSI] bnx2fc: Change function names of bnx2fc_netdev_setup/bnx2fc_netdev_cleanup Change them to bnx2fc_interface_setup/bnx2fc_interface_cleanup in preperation for the patches to follow. Interface specific cleanup functionality will be moved to bnx2fc_interface_cleanup. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit cdf54668bc48193e43adc8f75ce419ce0ce50fc0 Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:39 2011 -0700 [SCSI] bnx2fc: Do not attempt destroying NPIV port twice When NPIV ports are created/deleted rapidly there is a race condition between bnx2fc_vport_destroy() from sysfs and bnx2fc_flogi_resp(), which could try to delete the NPIV port from the list twice. Fix is to loop through the list of NPIV ports to find a match, and only when it exists remove it. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit b65d457913d1c0644394287d5d834373f42fb99a Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:38 2011 -0700 [SCSI] bnx2fc: Remove erroneous kref_get on IO request During sequence cleanup, an additional reference for an IO has been taken. Because of this, the IO is never released into the free list. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit e9a5289ca3bb2d3e2a8f9e464eeb97b076dcb0d1 Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:37 2011 -0700 [SCSI] bnx2fc: Enable bsg_request support for bnx2fc Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit 3224876358a37f6e531dd5c7f7f002106ef328fc Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:36 2011 -0700 [SCSI] bnx2fc: Bug fixes in percpu_thread_create/destroy Look up p->work_list to process cq completions, and correct the error check for thread creation. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit 627e628f6662550455e57466148d03f354ecdd3b Author: Bhanu Prakash Gollapudi Date: Thu Aug 4 17:38:35 2011 -0700 [SCSI] bnx2fc: Reset the max receive frame size Reset max receive frame size every time before attempting FLOGI. Without this, the stale MFS value will be used. Signed-off-by: Bhanu Prakash Gollapudi Signed-off-by: James Bottomley commit 9ae89b0296e275d5a556068b40b7c2557a556a85 Author: kashyap.desai@lsi.com Date: Thu Aug 4 16:47:50 2011 +0530 [SCSI] mpt2sas: Added missing mpt2sas_base_detach call from scsih_remove context mpt2sas_base_detach() call was removed from _scsih_remove() while doing some code shuffling. Mainly when we work on adding code for scsih_shutdown(). I have added back mpt2sas_base_detach() which will get callled from _scsih_remove(). Signed-off-by: Kashyap Desai Signed-off-by: James Bottomley commit 731f56c84517f16a59bd2289068318c55001b78b Author: kashyap.desai@lsi.com Date: Thu Aug 4 16:43:32 2011 +0530 [SCSI] mptfusion: Bump version 3.4.20 Upgrade version string. Signed-off-by: Kashyap Desai Signed-off-by: James Bottomley commit a38ae37fdcd77657fb6624b0a0ec57f3d21e2f40 Author: kashyap.desai@lsi.com Date: Thu Aug 4 16:42:46 2011 +0530 [SCSI] mptfusion: Avoid out of order Event processing due to cpu migration Driver will now schedule MPI event using "delay_work_queue_on" to specify same CPU to be used to schedule work. Earlier it used "delay_work_queue" which can cause migration of work due to kernel' timer migration feature. Signed-off-by: Kashyap Desai Signed-off-by: James Bottomley commit e62cca19a9bbfc72c62632d95a7c01cd6476708c Author: kashyap.desai@lsi.com Date: Thu Aug 4 16:42:15 2011 +0530 [SCSI] mptfusion: Better handling of DEAD IOC PCI-E Link down error condition Find Non-Operation IOC and remove it from OS: Detecting dead(non-functional) ioc will be done reading doorbell register value from fault reset thread, which has been called from work thread context after each specific interval. If doorbell value is 0xFFFFFFFF, it will be considered as IOC is non-operational and marked as dead ioc. Once Dead IOC has been detected, it will be removed at pci layer using "pci_remove_bus_device" API. Signed-off-by: Kashyap Desai Signed-off-by: James Bottomley commit 3850b14e51d32fc0d4297ceb30f3f7bb2c2b4779 Author: kashyap.desai@lsi.com Date: Thu Aug 4 16:41:55 2011 +0530 [SCSI] mptfusion: Set max sector count module parameter The max_sector setting is currently hard-coded in the driver to 8192 sectors (4MB transfers). Using new module parameter, if max_sectors is specified at load time, the default of 8192 will be overridden. Signed-off-by: Kashyap Desai Signed-off-by: James Bottomley commit 4fcf812ca392303aa79dd50e96e83a29faa13bd0 Author: Dan Williams Date: Fri Jul 29 17:26:39 2011 -0700 [SCSI] libsas: export sas_alloc_task() Now that isci has added a 3rd open coded user of this functionality just share the libsas version. Acked-by: Jack Wang Signed-off-by: Dan Williams Signed-off-by: James Bottomley