Subject: [PATCH01] scsi: improve areca driver stability and compatibility From: Nick Cheng <nick.cheng@xxxxxxxxxxxx> Description: 1. Implement PCI-Express error recovery function and AER capability, especially thanks to Yanmin Zhang's openhanded help about AER 2. Implement the selection of ARCMSR_MAX_XFER_SECTORS_B=4096 if firmware version is latter than 1.42 3. Add arcmsr_done4_abort_postqueue in arcmsr_iop_reset function to improve the stability as hot-unplug/plug 4. Modify the ISR, arcmsr_interrupt routine, to prevent the inconsistency with sg_mod driver if application directly calls the arcmsr driver w/o passing through scsi midlayer Signed-off-by: Nick Cheng <nick.cheng@xxxxxxxxxxxx> PS. 1. In order to highlight the changes of the functionality, this submission does not use the 80-column rule. If the submission is adopted successfully, I will make another patch under the 80-column rule. 2. I attach the Linux Kernel patch submittal checklist that we have checked and I retain the original line number for your double check. Hopefully this will not disturb your review.
Attachment:
patch01-arcmsr.1.20.00.14 to KernelOrg
Description: Binary data
Linux Kernel patch submittal checklist ¡½ 1: Builds cleanly with applicable or modified CONFIG options =y, =m, and =n. No gcc warnings/errors, no linker warnings/errors. ¡½ 2: Passes allnoconfig, allmodconfig ¡½ 5: Matches kernel coding style (except for the 80-column rule) ¡½ 6: Any new or modified CONFIG options don't muck up the config menu ¡½ 7: All new Kconfig options have help text ¡½ 8: Has been carefully reviewed with respect to relevant Kconfig combinations ¡½ 9: Check cleanly with sparse ¡½ 10: Use¡¥make checkstack¡¦and 'make namespacecheck' and fix any problems that they find. Note: checkstack does not point out problems explicitly, but any one function that uses more than 512 bytes on the stack is a candidate for change ¡½ 11: Include kernel-doc to document global kernel APIs (Not required for static functions, but OK there also.) Use 'make htmldocs' or 'make mandocs' to check the kernel-doc and fix any issues ¡½ 12: Has been tested with CONFIG_PREEMPT, CONFIG_DEBUG_SLAB, CONFIG_DEBUG_MUTEXES, CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_SPINLOCK_SLEEP all simultaneously enabled ¡½ 13: Has been build- and runtime tested with and without CONFIG_SMP and CONFIG_PREEMPT. ¡½ 15: All codepaths have been exercised with all lockdep features enabled ¡½ 16: All new /proc entries are documented under Documentation/ ¡½ 17: All new kernel boot parameters are documented in Documentation/kernel-parameters.txt. ¡½ 19: All new userspace interfaces are documented in Documentation/ABI/. ¡½ 20: Check that it all passes `make headers_check' ¡½ 21: Has been checked with injection of at least slab and page-allocation failures with Documentation/fault-injection/failcmd.sh