259065 |
07-Dec-2013 |
gjb |
- Copy stable/10 (r259064) to releng/10.0 as part of the 10.0-RELEASE cycle. - Update __FreeBSD_version [1] - Set branch name to -RC1
[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so start releng/10.0 at '100' so the branch is started with a value ending in zero.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
256281 |
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
255869 |
25-Sep-2013 |
ambrisko |
Add PCI device ID for MegaRAID Invader cards. This was the only change needed to make it work on my card.
Approved by: re (glebius)
|
255806 |
22-Sep-2013 |
sbruno |
Export two new DCMD enums. These allow set/get of the mfi_ctrl_properties structure in the driver.
Having these in 10.0 means that mfiutil can be modified to take adavantage of new updates without a kernel recompile.
Approved by: re (gjb) MFC after: 2 weeks
|
255219 |
05-Sep-2013 |
pjd |
Change the cap_rights_t type from uint64_t to a structure that we can extend in the future in a backward compatible (API and ABI) way.
The cap_rights_t represents capability rights. We used to use one bit to represent one right, but we are running out of spare bits. Currently the new structure provides place for 114 rights (so 50 more than the previous cap_rights_t), but it is possible to grow the structure to hold at least 285 rights, although we can make it even larger if 285 rights won't be enough.
The structure definition looks like this:
struct cap_rights { uint64_t cr_rights[CAP_RIGHTS_VERSION + 2]; };
The initial CAP_RIGHTS_VERSION is 0.
The top two bits in the first element of the cr_rights[] array contain total number of elements in the array - 2. This means if those two bits are equal to 0, we have 2 array elements.
The top two bits in all remaining array elements should be 0. The next five bits in all array elements contain array index. Only one bit is used and bit position in this five-bits range defines array index. This means there can be at most five array elements in the future.
To define new right the CAPRIGHT() macro must be used. The macro takes two arguments - an array index and a bit to set, eg.
#define CAP_PDKILL CAPRIGHT(1, 0x0000000000000800ULL)
We still support aliases that combine few rights, but the rights have to belong to the same array element, eg:
#define CAP_LOOKUP CAPRIGHT(0, 0x0000000000000400ULL) #define CAP_FCHMOD CAPRIGHT(0, 0x0000000000002000ULL)
#define CAP_FCHMODAT (CAP_FCHMOD | CAP_LOOKUP)
There is new API to manage the new cap_rights_t structure:
cap_rights_t *cap_rights_init(cap_rights_t *rights, ...); void cap_rights_set(cap_rights_t *rights, ...); void cap_rights_clear(cap_rights_t *rights, ...); bool cap_rights_is_set(const cap_rights_t *rights, ...);
bool cap_rights_is_valid(const cap_rights_t *rights); void cap_rights_merge(cap_rights_t *dst, const cap_rights_t *src); void cap_rights_remove(cap_rights_t *dst, const cap_rights_t *src); bool cap_rights_contains(const cap_rights_t *big, const cap_rights_t *little);
Capability rights to the cap_rights_init(), cap_rights_set(), cap_rights_clear() and cap_rights_is_set() functions are provided by separating them with commas, eg:
cap_rights_t rights;
cap_rights_init(&rights, CAP_READ, CAP_WRITE, CAP_FSTAT);
There is no need to terminate the list of rights, as those functions are actually macros that take care of the termination, eg:
#define cap_rights_set(rights, ...) \ __cap_rights_set((rights), __VA_ARGS__, 0ULL) void __cap_rights_set(cap_rights_t *rights, ...);
Thanks to using one bit as an array index we can assert in those functions that there are no two rights belonging to different array elements provided together. For example this is illegal and will be detected, because CAP_LOOKUP belongs to element 0 and CAP_PDKILL to element 1:
cap_rights_init(&rights, CAP_LOOKUP | CAP_PDKILL);
Providing several rights that belongs to the same array's element this way is correct, but is not advised. It should only be used for aliases definition.
This commit also breaks compatibility with some existing Capsicum system calls, but I see no other way to do that. This should be fine as Capsicum is still experimental and this change is not going to 9.x.
Sponsored by: The FreeBSD Foundation
|
254742 |
23-Aug-2013 |
markj |
Hold mfi_io_lock across calls to xpt_rescan() and xpt_alloc_ccb_nowait(). xpt_rescan() expects the SIM lock to be held, and we trip a mtx_assert if the driver initiates multiple rescans in quick succession.
Reported by: sbruno Tested by: sbruno MFC after: 1 week
|
254330 |
14-Aug-2013 |
sbruno |
If sys/param.h MAXPHYS has been tuned to exceed MFI_MAXPHYS, the mfi(4) real JBOD mode (SYS PD) would fail fairly reliably during I/O.
Steal the mfi_disk.c check for this condition (indirectly) when establishing d_maxsize.
Reviewed by: ambrisko@ MFC after: 4 weeks Sponsored by: Yahoo! Inc.
|
254263 |
12-Aug-2013 |
scottl |
Update PCI drivers to no longer look at the MEMIO-enabled bit in the PCI command register. The lazy BAR allocation code in FreeBSD sometimes disables this bit when it detects a range conflict, and will re-enable it on demand when a driver allocates the BAR. Thus, the bit is no longer a reliable indication of capability, and should not be checked. This results in the elimination of a lot of code from drivers, and also gives the opportunity to simplify a lot of drivers to use a helper API to set the busmaster enable bit.
This changes fixes some recent reports of disk controllers and their associated drives/enclosures disappearing during boot.
Submitted by: jhb Reviewed by: jfv, marius, achadd, achim MFC after: 1 day
|
252471 |
01-Jul-2013 |
smh |
Remove forced timeout of in-flight commands from mfi_timeout.
While this prevents commands getting stuck forever there is no way to guarantee that data from the command hasn't been committed to the device.
In addition older mfi firmware has a bug that would cause the controller to frequently stall IO for over our timeout value, which when combined with a forced timeout often resulted in panics in UFS; which would otherwise be avoided when the command eventually completed if left alone.
For reference this timeout issue is resolved in Dell FW package 21.2.1-0000. Fixed FW package version for none Dell controller will likely vary.
MFC after: 2 days
|
251516 |
08-Jun-2013 |
sbruno |
Implement foreign volume handling. Allows admins to view foreign metadata and clear or import it for use.
PR: kern/172091 Submitted by: smh@freebsd.org Reviewed by: jhb@freebsd.org MFC after: 2 weeks
|
251172 |
31-May-2013 |
sbruno |
xpt_create_path() requires mfi_io_lock to be held, so do it.
mfi(4) doesn't panic on host startup now.
MFC this if svn 249468-242726 is shoveled back to stable/9
Obtained from: Yahoo! Inc.
|
249468 |
14-Apr-2013 |
mav |
MFprojects/camlock r248982: Stop abusing xpt_periph in random plases that really have no periph related to CCB, for example, bus scanning. NULL value is fine in such cases and it is correctly logged in debug messages as "noperiph". If at some point we need some real XPT periphs (alike to pmpX now), quite likely they will be per-bus, and not a single global instance as xpt_periph now.
|
249257 |
08-Apr-2013 |
markj |
Add support for getting and setting BBU properties related to battery relearning. Specifically, add subcommands to mfiutil(8) which allow the user to set the BBU and autolearn modes when the firmware supports it, and add a subcommand which kicks off a battery relearn.
Reviewed by: sbruno, rstone Tested by: sbruno Approved by: rstone (co-mentor) MFC after: 2 weeks Sponsored by: Sandvine Incorporated
|
248627 |
22-Mar-2013 |
delphij |
Don't attempt to reference sc before testing whether it's NULL.
Submitted by: Sascha Wildner Obtained from: DragonFly MFC after: 2 weeks
|
247594 |
01-Mar-2013 |
delphij |
Fix a typo in mfi_stp_cmd() that would give wrong assignment.
Submitted by: Sascha Wildner <saw online de> Obtained from: DragonFly rev 0dc98fff2206d7bb78ce5e07ac34d6954e4bd96a MFC after: 3 days
|
247426 |
27-Feb-2013 |
smh |
Adds hw.mfi.cmd_timeout loader / sysctl tuneable which controls the default timeout used in the mfi driver. This is useful for long running commands such as secure erase.
Reviewed by: John Baldwin Approved by: pjd (mentor)
|
247369 |
27-Feb-2013 |
smh |
Fixes queuing issues where mfi_release_command blindly sets the cm_flags = 0 without first removing the command from the relavent queue.
This was causing panics in the queue functions which check to ensure a command is not on another queue.
Fixed some cases where the error from mfi_mapcmd was lost and where the command was never released / dequeued in error cases.
Ensure that all failures to mfi_mapcmd are logged.
Fixed possible null pointer exception in mfi_aen_setup if mfi_get_log_state failed.
Fixed mfi_parse_entries & mfi_aen_setup not returning possible errors.
Corrected MFI_DUMP_CMDS calls with invalid vars SC vs sc.
Commands which have timed out now set cm_error to ETIMEDOUT and call mfi_complete which prevents them getting stuck in the busy queue forever.
Fixed possible use of NULL pointer in mfi_tbolt_get_cmd.
Changed output formats to be more easily recognisable when debugging.
Optimised mfi_cmd_pool_tbolt cleanup.
Made information about driver limiting commands always display as for modern cards this can be severe.
Fixed mfi_tbolt_alloc_cmd out of memory case which previously didnt return an error.
Added malloc checks for request_desc_pool including free when subsiquent errors are detected.
Fixed overflow error in SIMD reply descriptor check.
Fixed tbolt_cmd leak in mfi_build_and_issue_cmd if there's an error during IO build.
Elimintated double checks on sc->mfi_aen_cm & sc->mfi_map_sync_cm in mfi_shutdown.
Move local hdr calculation after error check in mfi_aen_complete.
Fixed wakeup on NULL in mfi_aen_complete.
Fixed mfi_aen_cm cleanup in mfi_process_fw_state_chg_isr not checking if it was NULL.
Changed mfi_alloc_commands to error if bus_dmamap_create fails. Previously we would try to continue with the number of allocated commands but lots of places in the driver assume sc->mfi_max_fw_cmds is whats available so its unsafe to do this without lots of changes.
Removed mfi_total_cmds as its no longer used due the above change.
Corrected mfi_tbolt_alloc_cmd to return ENOMEM where appropriate.
Fixed timeouts actually firing at double what they should.
Setting hw.mfi.max_cmds=-1 now configures to use the controller max.
A few style (9) fixes e.g. braced single line conditions and double blank lines
Cleaned up queuing macros
Removed invalid queuing tests for multiple queues
Trap and deal with errors when doing sends in mfi_data_cb
Refactored frame sending into one method with error checking of the return code so we can ensure commands aren't left on the queue after error. This ensures that mfi_mapcmd & mfi_data_cb leave the queue in a valid state.
Refactored how commands are cleaned up, mfi_release_command now ensures that all queues and command state is maintained in a consistent state.
Prevent NULL pointer use in mfi_tbolt_complete_cmd
Fixed use of NULL sc->mfi_map_sync_cm in wakeup
Added defines to help with output of mfi_cmd and header flags.
Fixed mfi_tbolt_init_MFI_queue invalidating cm_index of the acquired mfi_cmd.
Reset now reinitialises sync map as well as AEN.
Fixed possible use of NULL pointer in mfi_build_and_issue_cmd
Fixed mfi_tbolt_init_MFI_queue call to mfi_process_fw_state_chg_isr causing panic on failure.
Ensure that tbolt cards always initialise next_host_reply_index and free_host_reply_index (based off mfi_max_fw_cmds) on both startup and reset as per the linux driver.
Fixed mfi_tbolt_complete_cmd not acknowledging unknown commands so it didn't clear the controller.
Prevent locks from being dropped and re-acquired in the following functions which was allowing multiple threads to enter critical methods such as mfi_tbolt_complete_cmd & mfi_process_fw_state_chg_isr:- * mfi_tbolt_init_MFI_queue * mfi_aen_complete / mfi_aen_register * mfi_tbolt_sync_map_info * mfi_get_log_state * mfi_parse_entries
The locking for these functions was promoting to higher level methods. This also fixed MFI_LINUX_SET_AEN_2 which was already acquiring the lock, so would have paniced for recursive lock.
This also required changing malloc of ld_sync in mfi_tbolt_sync_map_info to M_NOWAIT which can hence now fail but this was already expected as its return was being tested.
Removed the assignment of cm_index in mfi_tbolt_init_MFI_queue which breaks the world if the cmd returned by mfi_dequeue_free isn't the first cmd.
Fixed locking in mfi_data_cb, this is an async callback from bus_dmamap_load which could hence be called after the caller has dropped the lock. If we don't have the lock we aquire it and ensure we unlock before returning.
Fixed locking mfi_comms_init when mfi_dequeue_free fails.
Fixed mfi_build_and_issue_cmd not returning tbolt cmds aquired to the pool on error.
Fixed mfi_abort not dropping the io lock when mfi_dequeue_free fails.
Added hw.mfi.polled_cmd_timeout sysctl that enables tuning of polled timeouts. This shouldn't be reduced below 50 seconds as its used for firmware patching which can take quite some time.
Added hw.mfi.fw_reset_test sysctl which is avaliable when compiled with MFI_DEBUG and allows the testing of controller reset that was provoking a large number of the issues encountered here.
Reviewed by: Doug Ambrisko Approved by: pjd (mentor) MFC after: 1 month
|
247367 |
27-Feb-2013 |
smh |
Fixes mfi panic on recused on non-recusive mutex MFI I/O lock
Removes a mtx_unlock call for mfi_io_lock which is never aquired
While I'm here fix a braceing style issue.
Reviewed by: Doug Ambrisko Approved by: pjd (mentor) MFC after: 1 month
|
246713 |
12-Feb-2013 |
kib |
Reform the busdma API so that new types may be added without modifying every architecture's busdma_machdep.c. It is done by unifying the bus_dmamap_load_buffer() routines so that they may be called from MI code. The MD busdma is then given a chance to do any final processing in the complete() callback.
The cam changes unify the bus_dmamap_load* handling in cam drivers.
The arm and mips implementations are updated to track virtual addresses for sync(). Previously this was done in a type specific way. Now it is done in a generic way by recording the list of virtuals in the map.
Submitted by: jeff (sponsored by EMC/Isilon) Reviewed by: kan (previous version), scottl, mjacob (isp(4), no objections for target mode changes) Discussed with: ian (arm changes) Tested by: marius (sparc64), mips (jmallet), isci(4) on x86 (jharris), amd64 (Fabian Keil <freebsd-listen@fabiankeil.de>)
|
246128 |
30-Jan-2013 |
sbz |
Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays
Reviewed by: cognet Approved by: cognet
|
243078 |
15-Nov-2012 |
eadler |
Add deviceid to the disk output on boot to help debugging.
PR: kern/173290 Submitted by: Steven Hartland <steven.hartland@multiplay.co.uk> Approved by: cperciva MFC after: 1 week
|
242726 |
08-Nov-2012 |
ambrisko |
Add support for SCSI pass through devices to be attached and detached.
PR: 172864 Submitted by: rstone@
|
242681 |
06-Nov-2012 |
ambrisko |
- Extend the prior commit to use the generic SCSI command building function use that for JBOD and Thunderbolt disk write command. Now we only have one implementation in mfi. - Fix dumping on Thunderbolt cards. Polled IO commands do not seem to be normally acknowledged by changing cmd_status to MFI_STAT_OK. In order to get acknowledgement of the IO is complete, the Thunderbolt command queue needs to be run through. I added a flag MFI_CMD_SCSI to indicate this command is being polled and to complete the Thunderbolt wrapper and indicate the result. This flag needs to be set in the JBOD case in case if that us using Thunderbolt card. When in the polling loop check for completed commands. - Remove mfi_tbolt_is_ldio and just do the check when needed. - Fix an issue when attaching of disk device happens when a device is already scheduled to be attached but hasn't attached. - add a tunable to allow raw disk attachment to CAM via: hw.mfi.allow_cam_disk_passthrough=1 - fixup aborting of commands (AEN and LD state change). Use a generic abort function and only wait the command being aborted not both. Thunderbolt cards don't seem to abort commands so the abort times out.
|
242497 |
02-Nov-2012 |
delphij |
Copy code from scsi_read_write() as mfi_build_syspd_cdb() to build SCSI command properly. Without this change, mfi(4) always sends 10 byte READ and WRITE commands, which will cause data corruption when device is larger than 2^32 sectors.
PR: kern/173291 Submitted by: Steven Hartland <steven.hartland multiplay.co.uk> Reviewed by: mav MFC after: 2 weeks
|
240962 |
26-Sep-2012 |
jhb |
Grab the mfi_config_lock while performing a MFI_DCMD_CFG_FOREIGN_IMPORT request on behalf of a user utility.
Submitted by: Steven Hartland killing multiplay co uk MFC after: 1 week
|
238373 |
11-Jul-2012 |
sbruno |
sys/dev/mfivar.h contains references to MFI_DEBUG, but it never gets turned on unless the file also includes opt_mfi.h.
Submitted by: Andrew Boyer aboyer@averesystems.com MFC after: 2 weeks
|
238371 |
11-Jul-2012 |
sbruno |
When an MFI command fails, the driver needs to set bio->bio_resid so that the upper levels notice. Otherwise we see commands silently failing leading to data corruption. This mirrors dadone()
Submitted by: Andrew Boyer aboyer@averesystems.com Reviewed by: scottl@freebsd.org MFC after: 2 weeks
|
238077 |
03-Jul-2012 |
jhb |
Fix panics triggered by older mfiutil binaries run on the new mfi(4) driver. The new driver changed the size of the mfi_dcmd_frame structure in such a way that a MFI_IOC_PASSTHRU ioctl from an old amd64 binary is treated as an MFI_IOC_PASSTHRU32 ioctl in the new driver. As a result, the user pointer is treated as the buffer length. mfi_user_command() doesn't have a bounds check on the buffer length, so it passes a really big value to malloc() which panics when it tries to exhaust the kmem_map. Fix this two ways: - Only honor MFI_IOC_PASSTHRU32 if the binary has the SV_ILP32 flag set, otherwise treat it as an unknown ioctl. - Add a bounds check on the buffer length passed by the user. For now it fails any user attempts to use a buffer larger than 1MB.
While here, fix a few other nits: - Remove an unnecessary check for a NULL return from malloc(M_WAITOK). - Use the ENOTTY errno for invalid ioctl commands instead of ENOENT.
MFC after: 3 days
|
237546 |
25-Jun-2012 |
kevlo |
Correct sizeof usage
Obtained from: DragonFly
|
236323 |
30-May-2012 |
sbruno |
Cosmetic nit. If a configured volume has no label, don't emit an empty string for the name during probe. Simply indicate that it has no label.
Submitted by: bhaga@ MFC after: 3 days
|
235634 |
18-May-2012 |
sbruno |
Fix and update battery status bits according to linux driver
Reviewed by: ambrisko@ MFC after: 3 days
|
235321 |
12-May-2012 |
sbruno |
Pointy hat to sleep deprived committer.
Use a *real* variable type instead of one I made up.
Background Music: Queen -- Bicycle Race
Reviewed by: BSDCAN 2012 Hacker Lounge Audience
|
235318 |
12-May-2012 |
sbruno |
Fix inappropriate data type for two bus_dmamap_t variables that were causing PAE to insta-panic on startup. Remove one unused variable that was commented out.
Reviewed by: ambrisko@ Obtained from: jhb@ peter@ bz@ and countless others during BSDCAN MFC after: 3 days
|
235040 |
04-May-2012 |
ambrisko |
Fix the returns in mfi_tbolt_sync_map_info. I forgot to change them to cleanup and goto out when acknowledging the LD's. Check for failure on malloc. Remove a couple of extra lines and remove the spurious return.
Prompted by: Petr Lampa MFC after: 3 days
|
235016 |
04-May-2012 |
ambrisko |
Some style improvements.
|
235014 |
04-May-2012 |
ambrisko |
First fix pr 167226: ThunderBolt cannot read sector >= 2^32 or 2^21 with supplied patch.
Second the bigger change, fix RAID operation on ThunderBolt base card such as physically removing a disk from a RAID and replacing it. The current situation is the RAID firmware effectively hangs waiting for an acknowledgement from the driver. This is due to the firmware support of the driver actually accessing the RAID from under the firmware. This is an interesting feature that the FreeBSD driver does not use. However, when the firmare detects the driver has attached it then expects the driver will synchronize LD's with the firmware. If the driver does not sync. then the management part of the firmware will hang waiting for it so a pulled driver will listed as still there.
The fix for this problem isn't extremely difficult. However, figuring out why some of the code was the way it was and then redoing it was involved. Not have a spec. made it harder to try to figure out. The existing driver would send a MFI_DCMD_LD_MAP_GET_INFO command in write mode to acknowledge a LD state change. In read mode it gets the RAID map from the firmware. The FreeBSD driver doesn't do that currently. It could be added in the future with the appropriate structures. To simplify things, get the current LD state and then build the MFI_DCMD_LD_MAP_GET_INFO/write command so that it sends an acknowledgement for each LD. The map would probably state which LD's changed so then the driver could probably just acknowledge the LD's that changed versus all. This doesn't seem to be a problem. When a MFI_DCMD_LD_MAP_GET_INFO/write command is sent to the firmware, it will complete later when a change to the LD's happen. So it is very much like an AEN command returning when something happened. When the MFI_DCMD_LD_MAP_GET_INFO/write command completes, we refire the sync'ing of the LD state. This needs to be done in as an event so that MFI_DCMD_LD_GET_LIST can wait for that command to complete before issuing the MFI_DCMD_LD_MAP_GET_INFO/write. The prior code didn't use the call-back function and tried to intercept the MFI_DCMD_LD_MAP_GET_INFO/write command when processing an interrupt. This added a bunch of code complexity to the interrupt handler. Using the call-back that is done for other commands got rid of this need. So the interrupt handler is greatly simplified. It seems that even commands that shouldn't be acknowledged end up in the interrupt handler. To deal with this, code was added to check to see if a command is in the busy queue or not. This might have contributed to the interrupt storm happening without MSI enabled on these cards.
Note that MFI_DCMD_LD_MAP_GET_INFO/read returns right away.
It would be interesting to see what other complexity could be removed from the ThunderBolt driver that really isn't needed in our mode of operation. Letting the RAID firmware do all of the I/O to disks is a lot faster since it can use its caches. It greatly simplifies what the driver has to do and potential bugs if the driver and firmware are not in sync.
Simplify the aen_abort/cm_map_abort and put it in the softc versus in the command structure.
This should get merged to 9 before the driver is merged to 8.
PR: 167226 Submitted by: Petr Lampa MFC after: 3 days
|
233877 |
04-Apr-2012 |
jkim |
- Do not include machine/atomic.h. It is no longer necessary since r233768. - Remove bogus "atomic" macros and a read-only variable from softc.
Reviewed by: ambrisko
|
233805 |
02-Apr-2012 |
ambrisko |
Move struct megasas_sge from mfi_ioctl.h to mfivar.h so we can remove including machine/bus.h. Add some more mfi_ prefixes to avoid name space pollution.
This should address the last tinderbox issues.
|
233768 |
02-Apr-2012 |
ambrisko |
Change typedef atomic_t to struct mfi_atomic to avoid name space collision and some couple more style changes.
|
233711 |
30-Mar-2012 |
ambrisko |
MFhead_mfi r227068 First cut of new HW support from LSI and merge into FreeBSD. Supports Drake Skinny and ThunderBolt cards. MFhead_mfi r227574 Style MFhead_mfi r227579 Use bus_addr_t instead of uintXX_t. MFhead_mfi r227580 MSI support MFhead_mfi r227612 More bus_addr_t and remove "#ifdef __amd64__". MFhead_mfi r227905 Improved timeout support from Scott. MFhead_mfi r228108 Make file. MFhead_mfi r228208 Fixed botched merge of Skinny support and enhanced handling in call back routine. MFhead_mfi r228279 Remove superfluous !TAILQ_EMPTY() checks before TAILQ_FOREACH(). MFhead_mfi r228310 Move mfi_decode_evt() to taskqueue. MFhead_mfi r228320 Implement MFI_DEBUG for 64bit S/G lists. MFhead_mfi r231988 Restore structure layout by reverting the array header to use [0] instead of [1]. MFhead_mfi r232412 Put wildcard pattern later in the match table. MFhead_mfi r232413 Use lower case for hexadecimal numbers to match surrounding style. MFhead_mfi r232414 Add more Thunderbolt variants. MFhead_mfi r232888 Don't act on events prior to boot or when shutting down. Add hw.mfi.detect_jbod_change to enable or disable acting on JBOD type of disks being added on insert and removed on removing. Switch hw.mfi.msi to 1 by default since it works better on newer cards. MFhead_mfi r233016 Release driver lock before taking Giant when deleting children. Use TAILQ_FOREACH_SAFE when items can be deleted. Make code a little simplier to follow. Fix a couple more style issues. MFhead_mfi r233620 Update mfi_spare/mfi_array with the actual number of elements for array_ref and pd. Change these max. #define names to avoid name space collisions. This will require an update to mfiutil It avoids mfiutil having to do a magic calculation.
Add a note and #define to state that a "SYSTEM" disk is really what the firmware calls a "JBOD" drive.
Thanks to the many that helped, LSI for the initial code drop, mav, delphij, jhb, sbruno that all helped with code and testing.
|
232854 |
12-Mar-2012 |
scottl |
Convert a number of drivers to obtaining their parent DMA tag from their PCI device attachment.
|
227843 |
22-Nov-2011 |
marius |
- There's no need to overwrite the default device method with the default one. Interestingly, these are actually the default for quite some time (bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9) since r52045) but even recently added device drivers do this unnecessarily. Discussed with: jhb, marcel - While at it, use DEVMETHOD_END. Discussed with: jhb - Also while at it, use __FBSDID.
|
227577 |
16-Nov-2011 |
kib |
The sys/sysctl.h header is needed when MFI_DEBUG is defined.
Nod from: jhb
|
227562 |
16-Nov-2011 |
jhb |
Add single-message MSI support to mfi(4). It is disabled by default but can be enabled via the hw.mfi.msi tunable. Many mfi(4) controllers also support MSI-X, but in testing it seems that many adapters do not work with MSI-X but do work with MSI.
MFC after: 2 weeks
|
227409 |
09-Nov-2011 |
delphij |
Do a dummy read to flush the interrupt ACK that we just performed, ensuring that everything is really, truly consistent.
This fixes certain cases where one will see various:
mfi0: COMMAND 0xffffffXXXXXXXXXX TIMEOUT AFTER XX SECONDS
MFC after: 3 days Submitted by: scottl Ok'ed by: jhb
|
227309 |
07-Nov-2011 |
ed |
Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.
The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
|
226896 |
29-Oct-2011 |
scottl |
Fix an implicit dependency between the MFI driver and CAM that had grown due to an API change in CAM. It's once again possible to link a static kernel with 'mfi' without requiring 'scbus' as well. Ditto for KLD loading.
Submitted by: kib Reviewed by: ken MFC after: 3 days
|
226350 |
13-Oct-2011 |
marius |
Merge from r225950:
Set the sense residual properly.
Reviewed by: ken
|
225869 |
29-Sep-2011 |
mav |
- Add special support for the MFI_CMD ioctl with MFI_CMD_STP command, used by present MegaCLI version. It has some special meaning for the first s/g list entry, while the main s/g list begins from the the second entry, and those lists should remain separate after loading to the busdma map. - Fix bug in 32bit ioctl compatibility shims when s/g list consists of more then on element.
Sponsored by: iXsystems, inc. MFC after: 3 days
|
225617 |
16-Sep-2011 |
kmacy |
In order to maximize the re-usability of kernel code in user space this patch modifies makesyscalls.sh to prefix all of the non-compatibility calls (e.g. not linux_, freebsd32_) with sys_ and updates the kernel entry points and all places in the code that use them. It also fixes an additional name space collision between the kernel function psignal and the libc function of the same name by renaming the kernel psignal kern_psignal(). By introducing this change now we will ease future MFCs that change syscalls.
Reviewed by: rwatson Approved by: re (bz)
|
225428 |
07-Sep-2011 |
bz |
Shorten a variable access some using a cached value rather than casting the input argument again, making the code more readable.
Reviewed by: jhb MFC after: 2 weeks Approved by: re (kib)
|
224778 |
11-Aug-2011 |
rwatson |
Second-to-last commit implementing Capsicum capabilities in the FreeBSD kernel for FreeBSD 9.0:
Add a new capability mask argument to fget(9) and friends, allowing system call code to declare what capabilities are required when an integer file descriptor is converted into an in-kernel struct file *. With options CAPABILITIES compiled into the kernel, this enforces capability protection; without, this change is effectively a no-op.
Some cases require special handling, such as mmap(2), which must preserve information about the maximum rights at the time of mapping in the memory map so that they can later be enforced in mprotect(2) -- this is done by narrowing the rights in the existing max_protection field used for similar purposes with file permissions.
In namei(9), we assert that the code is not reached from within capability mode, as we're not yet ready to enforce namespace capabilities there. This will follow in a later commit.
Update two capability names: CAP_EVENT and CAP_KEVENT become CAP_POST_KEVENT and CAP_POLL_KEVENT to more accurately indicate what they represent.
Approved by: re (bz) Submitted by: jonathan Sponsored by: Google Inc
|
224041 |
14-Jul-2011 |
jhb |
Support controllers whose option ROM is disabled in the BIOS by kicking the firmware so that it boots.
PR: kern/154978 Submitted by: Andrew Boyer aboyer of averesystems com Obtained from: LSI MFC after: 1 week
|
224039 |
14-Jul-2011 |
jhb |
Use MFI_STAT_* constants for cmd_status field values rather than magic numbers in a few places.
PR: bin/145960 Submitted by: gcooper MFC after: 1 week
|
223624 |
28-Jun-2011 |
kevlo |
Remove duplicate header includes
|
222589 |
02-Jun-2011 |
emaste |
There are a couple of structs in mfireg.h with members named 'class'. These cause problems when trying to include the header in a C++ project. Rename them to 'evt_class', and track the change in mfi and mfiutil.
Submitted by: Mark Johnston Sponsored by: Sandvine Incorporated Reviewed by: jhb@ MFC after: 1 week
|
216235 |
06-Dec-2010 |
jhb |
When masking direct and processor devices during an inquiry, properly preserve the upper bits of the first data byte.
While here, shorten a few nearby lines.
PR: kern/152768 Reported by: Sascha Wildner saw of online.de Reviewed by: scottl MFC after: 1 week
|
214130 |
21-Oct-2010 |
pluknet |
Update PD state firmware definitions: add copyback, system.
Reviewed by: jhb Approved by: avg (mentor) MFC after: 1 week
|
204590 |
02-Mar-2010 |
kib |
Correct mfip module dependency on mfi. This allows mfip to be loaded as module when mfi is a module itself.
Reviewed by: jhb, scottl MFC after: 1 week
|
200238 |
07-Dec-2009 |
jkim |
Revert r200231. It was already taken cared by jhb long ago.
Pointed out by: jhb Pointy hat: jkim
|
200231 |
07-Dec-2009 |
jkim |
Make mfi(4) little bit less chatty.
|
196403 |
20-Aug-2009 |
jhb |
Temporarily revert the new-bus locking for 8.0 release. It will be reintroduced after HEAD is reopened for commits by re@.
Approved by: re (kib), attilio
|
196200 |
13-Aug-2009 |
scottl |
ntroduce mfiutil, a basic utility for managing LSI SAS-RAID & Dell PERC5/6 controllers. Controller, array, and drive status can be checked, basic attributes can be changed, and arrays and spares can be created and deleted. Controller firmware can also be flashed.
This does not replace MegaCLI, found in ports, as that is officially sanctioned and supported by LSI and includes vastly more functionality. However, mfiutil is open source and guaranteed to provide basic functionality, which can be especially useful if you have a problem and can't get MegaCLI to work.
Approved by: re Obtained from: Yahoo! Inc.
|
196037 |
02-Aug-2009 |
attilio |
Make the newbus subsystem Giant free by adding the new newbus sxlock. The newbus lock is responsible for protecting newbus internIal structures, device states and devclass flags. It is necessary to hold it when all such datas are accessed. For the other operations, softc locking should ensure enough protection to avoid races.
Newbus lock is automatically held when virtual operations on the device and bus are invoked when loading the driver or when the suspend/resume take place. For other 'spourious' operations trying to access/modify the newbus topology, newbus lock needs to be automatically acquired and dropped.
For the moment Giant is also acquired in some key point (modules subsystem) in order to avoid problems before the 8.0 release as module handlers could make assumptions about it. This Giant locking should go just after the release happens.
Please keep in mind that the public interface can be expanded in order to provide more support, if there are really necessities at some point and also some bugs could arise as long as the patch needs a bit of further testing.
Bump __FreeBSD_version in order to reflect the newbus lock introduction.
Reviewed by: ed, hps, jhb, imp, mav, scottl No answer by: ariff, thompsa, yongari Tested by: pho, G. Trematerra <giovanni dot trematerra at gmail dot com>, Brandon Gooch <jamesbrandongooch at gmail dot com> Sponsored by: Yahoo! Incorporated Approved by: re (ksmith)
|
195534 |
10-Jul-2009 |
scottl |
Separate the parallel scsi knowledge out of the core of the XPT, and modularize it so that new transports can be created.
Add a transport for SATA
Add a periph+protocol layer for ATA
Add a driver for AHCI-compliant hardware.
Add a maxio field to CAM so that drivers can advertise their max I/O capability. Modify various drivers so that they are insulated from the value of MAXPHYS.
The new ATA/SATA code supports AHCI-compliant hardware, and will override the classic ATA driver if it is loaded as a module at boot time or compiled into the kernel. The stack now support NCQ (tagged queueing) for increased performance on modern SATA drives. It also supports port multipliers.
ATA drives are accessed via 'ada' device nodes. ATAPI drives are accessed via 'cd' device nodes. They can all be enumerated and manipulated via camcontrol, just like SCSI drives. SCSI commands are not translated to their ATA equivalents; ATA native commands are used throughout the entire stack, including camcontrol. See the camcontrol manpage for further details. Testing this code may require that you update your fstab, and possibly modify your BIOS to enable AHCI functionality, if available.
This code is very experimental at the moment. The userland ABI/API has changed, so applications will need to be recompiled. It may change further in the near future. The 'ada' device name may also change as more infrastructure is completed in this project. The goal is to eventually put all CAM busses and devices until newbus, allowing for interesting topology and management options.
Few functional changes will be seen with existing SCSI/SAS/FC drivers, though the userland ABI has still changed. In the future, transports specific modules for SAS and FC may appear in order to better support the topologies and capabilities of these technologies.
The modularization of CAM and the addition of the ATA/SATA modules is meant to break CAM out of the mold of being specific to SCSI, letting it grow to be a framework for arbitrary transports and protocols. It also allows drivers to be written to support discrete hardware without jeopardizing the stability of non-related hardware. While only an AHCI driver is provided now, a Silicon Image driver is also in the works. Drivers for ICH1-4, ICH5-6, PIIX, classic IDE, and any other hardware is possible and encouraged. Help with new transports is also encouraged.
Submitted by: scottl, mav Approved by: re
|
194851 |
24-Jun-2009 |
scottl |
fw_state ad cur_state are holding unsigned bitfields, so declare then as unsigned as well.
Submitted by: rdivacky
|
192450 |
20-May-2009 |
imp |
We no longer need to use d_thread_t, migrate to struct thread *.
|
186132 |
15-Dec-2008 |
ambrisko |
Change Dell's gen2 catch-all from Dell PERC H700/H800 to Dell PERC Gen2 and bump the driver version from 2 to 3 and fix the related style problem.
Suggested by: LSI
|
185999 |
12-Dec-2008 |
ambrisko |
Sort the PCI device's and make the catch-all for new Dell cards only apply to Dell. This gets rid of the duplicate catch-all that I introduced that jkim caught.
Prompted by: jkim Reviewed by: jkim
|
185994 |
12-Dec-2008 |
ambrisko |
Add in some more device ID's and a generic catch-all.
Submitted by: LSI
|
185584 |
03-Dec-2008 |
ambrisko |
Change new card identification names.
Submitted by: LSI MFC after: 3 days
|
185035 |
17-Nov-2008 |
jhb |
Fix the maximum transfer size for mfi(4) disk devices to not exceed the maximum number of scatter/gather elements supported in the bus dma tag.
Reviewed by: scottl MFC after: 1 week
|
184975 |
14-Nov-2008 |
ambrisko |
Fix compile. I was in the wrong tree when I tested it :-(
Pointed out by: Andrzej
|
184974 |
14-Nov-2008 |
ambrisko |
When running a 32bit app. on amd64, ensure the bits above 32bit are zero for the copyout. Confirmed by LSI.
|
184933 |
13-Nov-2008 |
ambrisko |
One more piece to add to make sense data work for a user app. from LSI.
Submitted by: LSI MFC after: 3 days
|
184897 |
12-Nov-2008 |
ambrisko |
- Fix from jhb for failing I/O request when bus_dmamap_load fails. - Fix to ioctl path in which the length could be 0 which means no data in/out from LSI. - Fix to ioctl path in which the data in the sense data space of the ioctl packet is a really a pointer to some location in user-space. From LSI re-worked a bit by me. - Add HW support for next gen cards from LSI.
Thanks to LSI for their support!
Submitted by: jhb, LSI MFC after: 3 days
|
182085 |
23-Aug-2008 |
imp |
Fix style nit: s/^ }/}/ in two places.
|
180038 |
26-Jun-2008 |
jhb |
Tweak the output of event log messages from the controller: - Each log entry contains a text description in the "description" field of the entry. The existing decode logic always ended up duplicating information that was already in the description string. This made the logs overly verbose. Now we just print out the description string. - Add some simple parsing of the timestamp and event classes.
Reviewed by: ambrisko, scottl MFC after: 2 weeks
|
180037 |
26-Jun-2008 |
jhb |
Adjust the handling of pending log events during boot: - Fetch events from the controller in batches of 15 rather than a single event at a time. - When fetching events from the controller, honor the event class and locale settings (via hw.mfi tunables). This also allows the firmware to skip over unwanted log entries resulting in fewer requests to the controller if there many unwanted log entries since the last clean shutdown. - Don't drop the driver mutex while decoding an event. - If we get an error other than MFI_STAT_NOT_FOUND (basically EOF for hitting the end of the event log) then emit a warning and bail on processing further log entries.
Reviewed by: ambrisko, scottl MFC after: 2 weeks
|
179392 |
28-May-2008 |
ambrisko |
Add support to talk to the LSI ioctl path on with FreeBSD 32 bit app's on amd64. Note the only difference is the iovec32 part so I use the native structure for everything else.
Also I plan to MFC all the changes in -current to 7-stable and 6-stable shortly since I've been running them. This does not include the cam changes.
MFC after: 3 days
|
178968 |
12-May-2008 |
scottl |
Add support for management apps. Work around an apparent firmware bug that results in hung i/o if more than 128 commands are scheduled for an array.
|
178250 |
16-Apr-2008 |
kris |
Replace callout_init(..., 1) with callout_init(..., CALLOUT_MPSAFE) for better grep-compliance and to standardize with the rest of the kernel.
Reviewed by: jhb MFC after: 1 week
|
177489 |
22-Mar-2008 |
ambrisko |
Add in a compat. mode so you can either open the card's device node or directly open mfi0 and specify the card you want to talk to in the ioctl.
|
175897 |
02-Feb-2008 |
ambrisko |
Fix some bugs in dealing with DCMD'd without data. MegaCli was sending down some DCMD's without any data. Thanks to Dell and LSI for helping to provide clues to figure out this problem. Now MegaCli can upgrade the firmware and should work identical when run on Linux.
Reviewed by: scottl, LSI MFC after: 1 day
|
174780 |
19-Dec-2007 |
ambrisko |
Add Dell's sub-vendor id to identify PERC6 RAID controller which has LSI vendor id's.
|
174779 |
19-Dec-2007 |
ambrisko |
I incorrectly assumed the log buffer started from the beginning when it is actually a circular log. Deal with it rolling around. Fortunately, the log area is big and I haven't seen any roll over yet. Update and get rid of the obsolete comment.
|
172588 |
12-Oct-2007 |
scottl |
Play better with CAM so that there aren't so many spurious warnings at boot.
|
171980 |
25-Aug-2007 |
scottl |
Update the MFI driver to support new "1078" series of hardware. This includes the upcoming Dell PERC6 series. Many thanks to LSI for contributing this code.
Submitted by: LSI Approved by: re
|
171822 |
13-Aug-2007 |
jhb |
Fix a few nits relative to the previous changes: - Don't leak the config lock if detach() fails due to the controller char dev being open. - Close a race between detach() and a process opening the controller char dev.
MFC after: 1 week Approved by: re (bmah)
|
171821 |
13-Aug-2007 |
jhb |
Teach the mfi(4) driver to handle requests from userland management applications to add and remove volumes.
MFC after: 1 week Approved by: re (bmah) Reviewed by: ambrisko, scottl
|
170872 |
17-Jun-2007 |
scottl |
Prepare for future integration between CAM and newbus. xpt_bus_register now takes a device_t to be the parent of the bus that is being created. Most SIMs have been updated with a reasonable argument, but a few exceptions just pass NULL for now. This argument isn't used yet and the newbus integration likely won't be ready until after 7.0-RELEASE.
|
170284 |
04-Jun-2007 |
ambrisko |
Add in a couple of things: - In the ioctl path let command get queued up and return when complete _without_ blocking the driving waiting for the response. This way the driver doesn't "lock up" for ~30s during a flash command. Submitted by scottl. - Add a guard so that if a DCMD of 0 is sent down the ioctl path don't send it to the controller. Return with a status of OK. This is a little strange since MegaCli doesn't seem to like something and will issue some DCMD of 0. This doesn't happen under Linux. So the emulation needs to be improved but I'm not sure what. Another strange thing is that when a DCMD of 0 gets issued under i386 the controller returns OK but in amd64 the context is messed up. - Add a guard so the context has to be with-in the legal limit so we get a reasonable error assertion versus random panic.
It's going to be a challenge to figure out why MegaCli is not totally happy and then sends some bogus commands. This means that flashing firmware via the Linux tool won't work since it generates a DCMD of 0 when it should be opening the firmware for a flash update. Without this problem flashing works fine. This means there is no publicly available tool to upgrade the RAID firmware under FreeBSD right now.
I plan to MFC all of the mfi changes to 6.X shortly. This might not include the SCSI pass-through changes.
Submitted by: scottl Reviewed by: scottl MFC after: 3 days
|
169611 |
16-May-2007 |
scottl |
Catch up to driver changes required for the mfip sub-driver.
|
169609 |
16-May-2007 |
scottl |
Add the 'mfip' sub-driver for gaining SCSI-passthrough access to devices on an MFI controller.
|
169451 |
10-May-2007 |
scottl |
Collapse the mfi_ld object. Add an ioctl to help management apps map array Id's to FreeBSD device names.
|
166901 |
23-Feb-2007 |
piso |
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()
o add an int return code to all fast handlers
o retire INTR_FAST/IH_FAST
For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current
Reviewed by: many Approved by: re@
|
166181 |
23-Jan-2007 |
scottl |
Remove a PCI ID entry that conflicts with the AMR driver.
|
166067 |
17-Jan-2007 |
scottl |
Add PCI Id's for upcoming controllers.
Obtained from: LSI Corp. MFC After: 3 days
|
165852 |
07-Jan-2007 |
scottl |
Up the event class reporting from 10 (basically, nothing) to EVT_CLASS_INFO.
Submitted by: Doug Ambrisko
|
165727 |
02-Jan-2007 |
scottl |
Make sure that all of the fields in the header are clean. It was possible for unsafe flags to leak from one command to another.
|
165225 |
14-Dec-2006 |
ambrisko |
Some relatively minor changes and bug fixes: 1) s/mi/mfi/ in FreeBSD ioctl path 2) add in "\n" on various failure messages 3) cap the length of time to abort an AEN command 4) fix passing sense data back to user to make Dell's Linux firmware upgrade tool happy. 5) bump the MFI_POLL_TIMEOUT_SECS from 10s to 50s since the firmware flash command can take ~40s to return.
This is some clean-up and enables RAID firmware to updated via Dell's tool. Note Dell's tool requires the updates to the Linux emulator that has been done in -current with TLS etc.
I need to discuss with scottl how to better submit mfi commands to the firmware via the ioctl path so we don't do it in polled mode.
|
164375 |
18-Nov-2006 |
scottl |
Change the internal API for polled commands. Calling mfi_polled_command after calling mfi_mapcmd is no longer needed, so long as the MFI_CMD_POLLED flag is set. This change eliminates the possibility of a polled command getting posted twice to the driver. This is turn fixes panics on shutdown when INVARIANTS is set.
Sponsored by: Ironport
|
164281 |
14-Nov-2006 |
ambrisko |
- Add in FreeBSD native ioctl that models the Linux version. - Add a translation so the Linux ioctl's don't conflict with the FreeBSD definition. - Assume Linux 32bit emulation on amd64. This was tested on i386 and amd64 with the 32bit Linux MegaCli. Eventually we should do a 32bit native FreeBSD translation app.
|
163399 |
16-Oct-2006 |
scottl |
Remove some debugging code that accidentally crept in.
|
163398 |
16-Oct-2006 |
scottl |
- Add a command validator for use in debugging. - Fix the locking protocol to eliminate races between normal I/O and AENs. - Various small improvements and usability tweaks.
Sponsored by: IronPort Portions Submitted by: Doug Ambrisko
|
162688 |
27-Sep-2006 |
scottl |
Skip the AEN event command that is always hanging out on the card.
Submitted by: Doug Ambrisko
|
162687 |
27-Sep-2006 |
scottl |
Fix a bad #include statment
|
162619 |
25-Sep-2006 |
scottl |
Add a command debugging module and a periodic watchdog timer.
Sponsored by: IronPort
|
162473 |
20-Sep-2006 |
ambrisko |
Allow hw.mfi.event_locale/hw.mfi.event_class to be set via loader. If an event doesn't match the criteria then don't print it. Some events are not saved in the log (<0 class events).
|
162458 |
20-Sep-2006 |
scottl |
Change some variable names and update some comments to help clarify some confusing issues.
|
162122 |
07-Sep-2006 |
ambrisko |
Change the class from uint8_t to int8_t so people can filter on >0 events.
|
162118 |
07-Sep-2006 |
ambrisko |
Change the event log dump on initial boot to use get_event versus AEN. This makes the boot messages cleaner. I now know how this structure works so I can implement it versus guessing. Remove the not ready type code since it is ready now.
I added the time stamp/locale/class so people can parse messages better. Create a sysctl so that we can set the locale/class level.
|
162099 |
07-Sep-2006 |
scottl |
Remove old debugging code from the interrupt handler.
|
160052 |
30-Jun-2006 |
ambrisko |
Change mfi_add_ld to "immediate command" mode since we need to enumerate potential boot disks during the probe so they are read for mount root.
Reviewed by: ps, scottl
|
159812 |
20-Jun-2006 |
ps |
Fix a potential problem when mfi_get_log_state and only release a command if one was allocated. Also release the command in mfi_shutdown.
|
159811 |
20-Jun-2006 |
ps |
Instead of using scsi probes to do device discovery, use the firmware commands to grab the device listing. This resolves issues using multiple volumes, where each volume was actually internally pointing to target 0.
|
159810 |
20-Jun-2006 |
ps |
Fix a typo when getting the log_state and set the flags on the command to signify it is being polled and expecting data to be dma'd from the card.
|
159806 |
20-Jun-2006 |
ps |
Cleanup dcmd firmware processing into a single function, mfi_dcmd_command to avoid duplication and mistakes when setting up firmware commands for submission.
Reviewed by: scottl
|
159802 |
20-Jun-2006 |
ps |
Clean up some comments and device printf failures in mfi_get_log_state and mfi_get_controller_info.
|
159762 |
19-Jun-2006 |
ps |
Remove two debugging printfs
|
159574 |
13-Jun-2006 |
ambrisko |
Fix missing \n and when there are no arg's that means just print out the description so we don't have to do any more queries. Disable the event query code until it figured out since but it is similar to the AEN detail so we should be able to get that working.
|
158737 |
18-May-2006 |
ambrisko |
Add in a bunch of things to the mfi driver: - Linux ioctl support, with the other Linux changes MegaCli will run if you mount linprocfs & linsysfs then set sysctl compat.linux.osrelease=2.6.12 or similar. This works on i386. It should work on amd64 but not well tested yet. StoreLib may or may not work. Remember to kldload mfi_linux. - Add in AEN (Async Event Notification) support so we can get messages from the firmware when something happens. Not all messages are in defined in event detail. Use event_log to try to figure out what happened. - Try to implement something like SIGIO for StoreLib. Since mrmonitor doesn't work right I can't fully test it. StoreLib works best with the rh9 base. In theory mrmonitor isn't needed due to native driver support of AEN :-) Now we can configure and monitor the RAID better.
Submitted by: IronPort Systems.
|
157624 |
10-Apr-2006 |
scottl |
Fix some small bugs.
Submitted by: pjd Found by: Coverity Prevent (tm)
|
157237 |
28-Mar-2006 |
scottl |
Fix 64-bit DMA. The problem was an incorrect flag check. Thanks to Paul Saab for helping to track this down. Fix a error with 32bit DMA size calculation that seemed to be harmless. Add a few micro-optimizations while I'm here.
|
157197 |
28-Mar-2006 |
scottl |
Handle invalid capacity parameters from the firmware.
|
157114 |
25-Mar-2006 |
scottl |
Add a driver for the new LSI MegaRAID SAS controller family. The 'MFI' name is derived from the phrase 'MegaRAID Firmware Interface' used by LSI. This driver provides a block interface to logical disks on the card and a minimal management device. It is MPSAFE, INTR_FAST, and 64-bit capable.
Thanks to Dell for providing hardware to test with and IronPort for sponsoring the work.
Sponsored by: Dell, Ironport MFC After: 3 days
|