Deleted Added
full compact
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 ---