mfi_disk.c (238371) | mfi_disk.c (242681) |
---|---|
1/*- 2 * Copyright (c) 2006 IronPort Systems 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 */ 26 27#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2006 IronPort Systems 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 */ 26 27#include <sys/cdefs.h> |
28__FBSDID("$FreeBSD: head/sys/dev/mfi/mfi_disk.c 238371 2012-07-11 18:16:54Z sbruno $"); | 28__FBSDID("$FreeBSD: head/sys/dev/mfi/mfi_disk.c 242681 2012-11-06 23:25:06Z ambrisko $"); |
29 30#include "opt_mfi.h" 31 32#include <sys/param.h> 33#include <sys/systm.h> 34#include <sys/kernel.h> 35#include <sys/selinfo.h> 36#include <sys/module.h> --- 51 unchanged lines hidden (view full) --- 88 return (0); 89} 90 91static int 92mfi_disk_attach(device_t dev) 93{ 94 struct mfi_disk *sc; 95 struct mfi_ld_info *ld_info; | 29 30#include "opt_mfi.h" 31 32#include <sys/param.h> 33#include <sys/systm.h> 34#include <sys/kernel.h> 35#include <sys/selinfo.h> 36#include <sys/module.h> --- 51 unchanged lines hidden (view full) --- 88 return (0); 89} 90 91static int 92mfi_disk_attach(device_t dev) 93{ 94 struct mfi_disk *sc; 95 struct mfi_ld_info *ld_info; |
96 struct mfi_disk_pending *ld_pend; |
|
96 uint64_t sectors; 97 uint32_t secsize; 98 char *state; 99 100 sc = device_get_softc(dev); 101 ld_info = device_get_ivars(dev); 102 103 sc->ld_dev = dev; 104 sc->ld_id = ld_info->ld_config.properties.ld.v.target_id; 105 sc->ld_unit = device_get_unit(dev); 106 sc->ld_info = ld_info; 107 sc->ld_controller = device_get_softc(device_get_parent(dev)); 108 sc->ld_flags = 0; 109 110 sectors = ld_info->size; 111 secsize = MFI_SECTOR_LEN; 112 mtx_lock(&sc->ld_controller->mfi_io_lock); 113 TAILQ_INSERT_TAIL(&sc->ld_controller->mfi_ld_tqh, sc, ld_link); | 97 uint64_t sectors; 98 uint32_t secsize; 99 char *state; 100 101 sc = device_get_softc(dev); 102 ld_info = device_get_ivars(dev); 103 104 sc->ld_dev = dev; 105 sc->ld_id = ld_info->ld_config.properties.ld.v.target_id; 106 sc->ld_unit = device_get_unit(dev); 107 sc->ld_info = ld_info; 108 sc->ld_controller = device_get_softc(device_get_parent(dev)); 109 sc->ld_flags = 0; 110 111 sectors = ld_info->size; 112 secsize = MFI_SECTOR_LEN; 113 mtx_lock(&sc->ld_controller->mfi_io_lock); 114 TAILQ_INSERT_TAIL(&sc->ld_controller->mfi_ld_tqh, sc, ld_link); |
115 TAILQ_FOREACH(ld_pend, &sc->ld_controller->mfi_ld_pend_tqh, 116 ld_link) { 117 TAILQ_REMOVE(&sc->ld_controller->mfi_ld_pend_tqh, 118 ld_pend, ld_link); 119 free(ld_pend, M_MFIBUF); 120 break; 121 } |
|
114 mtx_unlock(&sc->ld_controller->mfi_io_lock); 115 116 switch (ld_info->ld_config.params.state) { 117 case MFI_LD_STATE_OFFLINE: 118 state = "offline"; 119 break; 120 case MFI_LD_STATE_PARTIALLY_DEGRADED: 121 state = "partially degraded"; --- 4 unchanged lines hidden (view full) --- 126 case MFI_LD_STATE_OPTIMAL: 127 state = "optimal"; 128 break; 129 default: 130 state = "unknown"; 131 break; 132 } 133 | 122 mtx_unlock(&sc->ld_controller->mfi_io_lock); 123 124 switch (ld_info->ld_config.params.state) { 125 case MFI_LD_STATE_OFFLINE: 126 state = "offline"; 127 break; 128 case MFI_LD_STATE_PARTIALLY_DEGRADED: 129 state = "partially degraded"; --- 4 unchanged lines hidden (view full) --- 134 case MFI_LD_STATE_OPTIMAL: 135 state = "optimal"; 136 break; 137 default: 138 state = "unknown"; 139 break; 140 } 141 |
134 if ( strlen(ld_info->ld_config.properties.name) == 0 ) { 135 device_printf(dev, 136 "%juMB (%ju sectors) RAID volume (no label) is %s\n", 137 sectors / (1024 * 1024 / secsize), sectors, state); 138 } else { 139 device_printf(dev, 140 "%juMB (%ju sectors) RAID volume '%s' is %s\n", 141 sectors / (1024 * 1024 / secsize), sectors, 142 ld_info->ld_config.properties.name, state); 143 } | 142 if ( strlen(ld_info->ld_config.properties.name) == 0 ) { 143 device_printf(dev, 144 "%juMB (%ju sectors) RAID volume (no label) is %s\n", 145 sectors / (1024 * 1024 / secsize), sectors, state); 146 } else { 147 device_printf(dev, 148 "%juMB (%ju sectors) RAID volume '%s' is %s\n", 149 sectors / (1024 * 1024 / secsize), sectors, 150 ld_info->ld_config.properties.name, state); 151 } |
144 145 sc->ld_disk = disk_alloc(); 146 sc->ld_disk->d_drv1 = sc; 147 sc->ld_disk->d_maxsize = min(sc->ld_controller->mfi_max_io * secsize, 148 (sc->ld_controller->mfi_max_sge - 1) * PAGE_SIZE); 149 sc->ld_disk->d_name = "mfid"; 150 sc->ld_disk->d_open = mfi_disk_open; 151 sc->ld_disk->d_close = mfi_disk_close; --- 181 unchanged lines hidden --- | 152 153 sc->ld_disk = disk_alloc(); 154 sc->ld_disk->d_drv1 = sc; 155 sc->ld_disk->d_maxsize = min(sc->ld_controller->mfi_max_io * secsize, 156 (sc->ld_controller->mfi_max_sge - 1) * PAGE_SIZE); 157 sc->ld_disk->d_name = "mfid"; 158 sc->ld_disk->d_open = mfi_disk_open; 159 sc->ld_disk->d_close = mfi_disk_close; --- 181 unchanged lines hidden --- |