Symbol: conn
arch/powerpc/platforms/powermac/feature.c
2724
const char *conn;
arch/powerpc/platforms/powermac/feature.c
2729
conn = of_get_property(np, "AAPL,connector", &len);
arch/powerpc/platforms/powermac/feature.c
2730
if (conn && (strcmp(conn, "infrared") == 0))
arch/um/drivers/port_kern.c
105
IRQF_SHARED, "telnetd", conn) < 0) {
arch/um/drivers/port_kern.c
115
list_add(&conn->list, &port->pending);
arch/um/drivers/port_kern.c
119
kfree(conn);
arch/um/drivers/port_kern.c
228
struct connection *conn;
arch/um/drivers/port_kern.c
240
conn = list_entry(port->connections.next, struct connection,
arch/um/drivers/port_kern.c
242
list_del(&conn->list);
arch/um/drivers/port_kern.c
245
os_shutdown_socket(conn->socket[0], 1, 1);
arch/um/drivers/port_kern.c
246
os_close_file(conn->socket[0]);
arch/um/drivers/port_kern.c
247
os_shutdown_socket(conn->socket[1], 1, 1);
arch/um/drivers/port_kern.c
248
os_close_file(conn->socket[1]);
arch/um/drivers/port_kern.c
256
um_free_irq(TELNETD_IRQ, conn);
arch/um/drivers/port_kern.c
258
if (conn->fd >= 0)
arch/um/drivers/port_kern.c
260
os_close_file(conn->fd);
arch/um/drivers/port_kern.c
261
kfree(conn);
arch/um/drivers/port_kern.c
264
fd = conn->fd;
arch/um/drivers/port_kern.c
265
dev->helper_pid = conn->helper_pid;
arch/um/drivers/port_kern.c
266
dev->telnetd_pid = conn->telnetd_pid;
arch/um/drivers/port_kern.c
267
kfree(conn);
arch/um/drivers/port_kern.c
47
struct connection *conn = data;
arch/um/drivers/port_kern.c
51
ret = os_rcv_fd_msg(conn->socket[0], &fd, n_fds, &conn->helper_pid,
arch/um/drivers/port_kern.c
52
sizeof(conn->helper_pid));
arch/um/drivers/port_kern.c
53
if (ret != sizeof(conn->helper_pid)) {
arch/um/drivers/port_kern.c
59
os_close_file(conn->fd);
arch/um/drivers/port_kern.c
62
list_del(&conn->list);
arch/um/drivers/port_kern.c
64
conn->fd = fd;
arch/um/drivers/port_kern.c
65
list_add(&conn->list, &conn->port->connections);
arch/um/drivers/port_kern.c
67
complete(&conn->port->done);
arch/um/drivers/port_kern.c
80
struct connection *conn;
arch/um/drivers/port_kern.c
91
conn = kmalloc_obj(*conn, GFP_ATOMIC);
arch/um/drivers/port_kern.c
92
if (conn == NULL) {
arch/um/drivers/port_kern.c
97
*conn = ((struct connection)
arch/um/drivers/port_kern.c
98
{ .list = LIST_HEAD_INIT(conn->list),
drivers/acpi/mipi-disco-img.c
100
conn->csi2_data.resource_source.string_ptr = conn->remote_name;
drivers/acpi/mipi-disco-img.c
101
conn->remote_handle = remote_handle;
drivers/acpi/mipi-disco-img.c
103
list_add(&conn->entry, &crwd->connections);
drivers/acpi/mipi-disco-img.c
144
struct crs_csi2_connection *conn, *conn_tmp;
drivers/acpi/mipi-disco-img.c
146
list_for_each_entry_safe(conn, conn_tmp, list, entry) {
drivers/acpi/mipi-disco-img.c
147
list_del(&conn->entry);
drivers/acpi/mipi-disco-img.c
148
kfree(conn);
drivers/acpi/mipi-disco-img.c
276
struct crs_csi2_connection *conn)
drivers/acpi/mipi-disco-img.c
278
struct crs_csi2 *remote_csi2 = acpi_mipi_get_crs_csi2(conn->remote_handle);
drivers/acpi/mipi-disco-img.c
296
switch (conn->csi2_data.phy_type) {
drivers/acpi/mipi-disco-img.c
307
conn->csi2_data.phy_type);
drivers/acpi/mipi-disco-img.c
312
conn->csi2_data.local_port_instance);
drivers/acpi/mipi-disco-img.c
317
conn->csi2_data.resource_source.index);
drivers/acpi/mipi-disco-img.c
342
PROPERTY_ENTRY_U32("reg", conn->csi2_data.local_port_instance);
drivers/acpi/mipi-disco-img.c
345
conn->csi2_data.local_port_instance))
drivers/acpi/mipi-disco-img.c
347
conn->csi2_data.local_port_instance);
drivers/acpi/mipi-disco-img.c
360
PROPERTY_ENTRY_U32("reg", conn->csi2_data.resource_source.index);
drivers/acpi/mipi-disco-img.c
363
conn->csi2_data.resource_source.index))
drivers/acpi/mipi-disco-img.c
365
conn->csi2_data.resource_source.index);
drivers/acpi/mipi-disco-img.c
372
struct crs_csi2_connection *conn;
drivers/acpi/mipi-disco-img.c
378
list_for_each_entry(conn, &csi2->connections, entry)
drivers/acpi/mipi-disco-img.c
379
extract_crs_csi2_conn_info(local_handle, local_swnodes, conn);
drivers/acpi/mipi-disco-img.c
399
struct crs_csi2_connection *conn;
drivers/acpi/mipi-disco-img.c
401
list_for_each_entry(conn, &csi2->connections, entry) {
drivers/acpi/mipi-disco-img.c
406
remote_csi2 = acpi_mipi_get_crs_csi2(conn->remote_handle);
drivers/acpi/mipi-disco-img.c
415
acpi_mipi_add_crs_csi2(conn->remote_handle, &aux_list);
drivers/acpi/mipi-disco-img.c
69
struct crs_csi2_connection *conn;
drivers/acpi/mipi-disco-img.c
94
conn = kmalloc_flex(*conn, remote_name, csi2_res_src_length + 1);
drivers/acpi/mipi-disco-img.c
95
if (!conn)
drivers/acpi/mipi-disco-img.c
98
conn->csi2_data = *csi2_res;
drivers/acpi/mipi-disco-img.c
99
strscpy(conn->remote_name, csi2_res_src->string_ptr, csi2_res_src_length);
drivers/block/drbd/drbd_actlog.c
677
drbd_conn_str(device->state.conn));
drivers/block/drbd/drbd_actlog.c
739
device->state.conn != C_PAUSED_SYNC_T &&
drivers/block/drbd/drbd_actlog.c
740
device->state.conn != C_PAUSED_SYNC_S) {
drivers/block/drbd/drbd_actlog.c
759
is_sync_target_state(device->state.conn))
drivers/block/drbd/drbd_int.h
2052
switch ((enum drbd_conns)s.conn) {
drivers/block/drbd/drbd_main.c
1324
if (peer_device->device->state.conn < C_CONNECTED)
drivers/block/drbd/drbd_main.c
1672
if (device->state.conn >= C_SYNC_SOURCE &&
drivers/block/drbd/drbd_main.c
1673
device->state.conn <= C_PAUSED_SYNC_T)
drivers/block/drbd/drbd_main.c
1849
conn_request_state(connection, NS(conn, C_BROKEN_PIPE), CS_HARD);
drivers/block/drbd/drbd_main.c
1851
conn_request_state(connection, NS(conn, C_TIMEOUT), CS_HARD);
drivers/block/drbd/drbd_main.c
1913
if (device->state.pdsk >= D_INCONSISTENT && device->state.conn >= C_CONNECTED) {
drivers/block/drbd/drbd_main.c
1930
.conn = C_STANDALONE,
drivers/block/drbd/drbd_main.c
236
conn_request_state(connection, NS(conn, C_PROTOCOL_ERROR), CS_HARD);
drivers/block/drbd/drbd_main.c
2761
device->state.conn = first_connection(resource)->cstate;
drivers/block/drbd/drbd_main.c
2762
if (device->state.conn == C_WF_REPORT_PARAMS) {
drivers/block/drbd/drbd_main.c
3257
if (device->state.conn < C_CONNECTED) {
drivers/block/drbd/drbd_main.c
3673
if (!timeout || device->state.conn < C_CONNECTED)
drivers/block/drbd/drbd_nl.c
1146
if (device->state.conn < C_CONNECTED && assume_peer_has_space) {
drivers/block/drbd/drbd_nl.c
1240
if (device->state.conn < C_WF_REPORT_PARAMS)
drivers/block/drbd/drbd_nl.c
1440
if (device->state.conn < C_CONNECTED)
drivers/block/drbd/drbd_nl.c
1682
if (device->state.conn >= C_CONNECTED) {
drivers/block/drbd/drbd_nl.c
2161
if (device->state.conn == C_CONNECTED) {
drivers/block/drbd/drbd_nl.c
2273
if (device->state.conn == C_SYNC_SOURCE ||
drivers/block/drbd/drbd_nl.c
2274
device->state.conn == C_SYNC_TARGET ||
drivers/block/drbd/drbd_nl.c
2275
device->state.conn == C_PAUSED_SYNC_S ||
drivers/block/drbd/drbd_nl.c
2276
device->state.conn == C_PAUSED_SYNC_T) {
drivers/block/drbd/drbd_nl.c
2295
if (device->state.conn == C_VERIFY_S ||
drivers/block/drbd/drbd_nl.c
2296
device->state.conn == C_VERIFY_T) {
drivers/block/drbd/drbd_nl.c
2580
max_t(enum drbd_conns, C_WF_REPORT_PARAMS, device->state.conn);
drivers/block/drbd/drbd_nl.c
2718
rv = conn_request_state(connection, NS(conn, C_UNCONNECTED), CS_VERBOSE);
drivers/block/drbd/drbd_nl.c
2742
rv = conn_request_state(connection, NS(conn, C_DISCONNECTING),
drivers/block/drbd/drbd_nl.c
2752
rv = conn_request_state(connection, NS2(conn, C_DISCONNECTING, pdsk, D_OUTDATED), 0);
drivers/block/drbd/drbd_nl.c
2755
rv = conn_request_state(connection, NS(conn, C_DISCONNECTING), CS_VERBOSE);
drivers/block/drbd/drbd_nl.c
2765
rv = conn_request_state(connection, NS2(conn, C_DISCONNECTING,
drivers/block/drbd/drbd_nl.c
2768
rv = conn_request_state(connection, NS(conn, C_DISCONNECTING),
drivers/block/drbd/drbd_nl.c
2790
rv2 = conn_request_state(connection, NS(conn, C_STANDALONE),
drivers/block/drbd/drbd_nl.c
2854
_drbd_request_state(device, NS(conn, C_WF_SYNC_UUID), CS_VERBOSE + CS_SERIALIZE);
drivers/block/drbd/drbd_nl.c
2895
if (device->state.conn > C_CONNECTED) {
drivers/block/drbd/drbd_nl.c
2936
if (device->state.conn != C_CONNECTED && !rs.resize_force) {
drivers/block/drbd/drbd_nl.c
2973
if (device->state.conn == C_CONNECTED) {
drivers/block/drbd/drbd_nl.c
3062
if (device->state.conn == C_STANDALONE && device->state.role == R_SECONDARY) {
drivers/block/drbd/drbd_nl.c
3070
retcode = drbd_request_state(device, NS(conn, C_STARTING_SYNC_T));
drivers/block/drbd/drbd_nl.c
3140
if (device->state.conn == C_STANDALONE && device->state.role == R_PRIMARY) {
drivers/block/drbd/drbd_nl.c
3151
retcode = drbd_request_state(device, NS(conn, C_STARTING_SYNC_S));
drivers/block/drbd/drbd_nl.c
3195
if (s.conn == C_PAUSED_SYNC_S || s.conn == C_PAUSED_SYNC_T) {
drivers/block/drbd/drbd_nl.c
3257
if (device->state.conn < C_CONNECTED)
drivers/block/drbd/drbd_nl.c
3910
if (C_SYNC_SOURCE <= device->state.conn &&
drivers/block/drbd/drbd_nl.c
3911
C_PAUSED_SYNC_T >= device->state.conn) {
drivers/block/drbd/drbd_nl.c
4216
retcode = drbd_request_state(device, NS(conn, C_VERIFY_S));
drivers/block/drbd/drbd_nl.c
4261
if (device->state.conn == C_CONNECTED &&
drivers/block/drbd/drbd_nl.c
4266
} else if (device->state.conn != C_STANDALONE) {
drivers/block/drbd/drbd_nl.c
4474
_drbd_request_state(device, NS(conn, C_WF_REPORT_PARAMS),
drivers/block/drbd/drbd_nl.c
764
if (((device->state.conn < C_CONNECTED ||
drivers/block/drbd/drbd_nl.c
777
if (device->state.conn >= C_WF_REPORT_PARAMS) {
drivers/block/drbd/drbd_proc.c
110
if (state.conn == C_VERIFY_S || state.conn == C_VERIFY_T)
drivers/block/drbd/drbd_proc.c
182
if (state.conn == C_SYNC_TARGET ||
drivers/block/drbd/drbd_proc.c
183
state.conn == C_VERIFY_S) {
drivers/block/drbd/drbd_proc.c
195
if (state.conn == C_VERIFY_S ||
drivers/block/drbd/drbd_proc.c
196
state.conn == C_VERIFY_T) {
drivers/block/drbd/drbd_proc.c
260
sn = drbd_conn_str(state.conn);
drivers/block/drbd/drbd_proc.c
262
if (state.conn == C_STANDALONE &&
drivers/block/drbd/drbd_proc.c
305
if (state.conn == C_SYNC_SOURCE ||
drivers/block/drbd/drbd_proc.c
306
state.conn == C_SYNC_TARGET ||
drivers/block/drbd/drbd_proc.c
307
state.conn == C_VERIFY_S ||
drivers/block/drbd/drbd_proc.c
308
state.conn == C_VERIFY_T)
drivers/block/drbd/drbd_proc.c
53
if (state.conn == C_VERIFY_S || state.conn == C_VERIFY_T)
drivers/block/drbd/drbd_receiver.c
2033
pcmd = (device->state.conn >= C_SYNC_SOURCE &&
drivers/block/drbd/drbd_receiver.c
2034
device->state.conn <= C_PAUSED_SYNC_T &&
drivers/block/drbd/drbd_receiver.c
2353
_conn_request_state(connection, NS(conn, C_TIMEOUT), CS_HARD);
drivers/block/drbd/drbd_receiver.c
2509
if (device->state.conn == C_SYNC_TARGET)
drivers/block/drbd/drbd_receiver.c
2606
if (device->state.conn == C_VERIFY_S || device->state.conn == C_VERIFY_T)
drivers/block/drbd/drbd_receiver.c
352
conn_request_state(connection, NS(conn, C_BROKEN_PIPE), CS_HARD);
drivers/block/drbd/drbd_receiver.c
3594
conn_request_state(connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
3757
if (device->state.conn == C_WF_REPORT_PARAMS) {
drivers/block/drbd/drbd_receiver.c
3771
if (device->state.conn == C_WF_REPORT_PARAMS) {
drivers/block/drbd/drbd_receiver.c
3865
conn_request_state(peer_device->connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
3920
if (device->state.conn == C_WF_REPORT_PARAMS)
drivers/block/drbd/drbd_receiver.c
3929
(device->state.conn < C_CONNECTED || device->state.pdsk == D_DISKLESS)) {
drivers/block/drbd/drbd_receiver.c
3932
conn_request_state(peer_device->connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4005
conn_request_state(peer_device->connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4030
if (device->state.conn > C_WF_REPORT_PARAMS) {
drivers/block/drbd/drbd_receiver.c
4038
(dd == DS_GREW && device->state.conn == C_CONNECTED)) {
drivers/block/drbd/drbd_receiver.c
4076
if ((device->state.conn < C_CONNECTED || device->state.pdsk == D_DISKLESS) &&
drivers/block/drbd/drbd_receiver.c
4082
conn_request_state(peer_device->connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4088
device->state.conn == C_CONNECTED &&
drivers/block/drbd/drbd_receiver.c
4118
if (device->state.conn >= C_CONNECTED && device->state.disk < D_INCONSISTENT)
drivers/block/drbd/drbd_receiver.c
4148
ms.conn = c_tab[ps.conn];
drivers/block/drbd/drbd_receiver.c
4246
if (os.conn <= C_TEAR_DOWN)
drivers/block/drbd/drbd_receiver.c
4257
os.conn > C_CONNECTED && os.disk == D_UP_TO_DATE) {
drivers/block/drbd/drbd_receiver.c
4264
if (peer_state.conn > C_CONNECTED &&
drivers/block/drbd/drbd_receiver.c
4265
peer_state.conn < C_SYNC_SOURCE)
drivers/block/drbd/drbd_receiver.c
4271
else if (os.conn >= C_SYNC_SOURCE &&
drivers/block/drbd/drbd_receiver.c
4272
peer_state.conn == C_CONNECTED) {
drivers/block/drbd/drbd_receiver.c
4280
if (os.conn == C_VERIFY_T && os.disk == D_UP_TO_DATE &&
drivers/block/drbd/drbd_receiver.c
4281
peer_state.conn == C_CONNECTED && real_peer_disk == D_UP_TO_DATE) {
drivers/block/drbd/drbd_receiver.c
4293
os.conn == C_CONNECTED && peer_state.conn > C_SYNC_SOURCE)
drivers/block/drbd/drbd_receiver.c
4296
if (ns.conn == C_WF_REPORT_PARAMS)
drivers/block/drbd/drbd_receiver.c
4297
ns.conn = C_CONNECTED;
drivers/block/drbd/drbd_receiver.c
4299
if (peer_state.conn == C_AHEAD)
drivers/block/drbd/drbd_receiver.c
4300
ns.conn = C_BEHIND;
drivers/block/drbd/drbd_receiver.c
4326
cr = (os.conn < C_CONNECTED);
drivers/block/drbd/drbd_receiver.c
4329
cr |= (os.conn == C_CONNECTED &&
drivers/block/drbd/drbd_receiver.c
4337
cr |= (os.conn == C_CONNECTED &&
drivers/block/drbd/drbd_receiver.c
4338
(peer_state.conn >= C_STARTING_SYNC_S &&
drivers/block/drbd/drbd_receiver.c
4339
peer_state.conn <= C_WF_BITMAP_T));
drivers/block/drbd/drbd_receiver.c
4342
ns.conn = drbd_sync_handshake(peer_device, peer_state.role, real_peer_disk);
drivers/block/drbd/drbd_receiver.c
4345
if (ns.conn == C_MASK) {
drivers/block/drbd/drbd_receiver.c
4346
ns.conn = C_CONNECTED;
drivers/block/drbd/drbd_receiver.c
4356
D_ASSERT(device, os.conn == C_WF_REPORT_PARAMS);
drivers/block/drbd/drbd_receiver.c
4357
conn_request_state(peer_device->connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4370
if ((ns.conn == C_CONNECTED || ns.conn == C_WF_BITMAP_S) && ns.disk == D_NEGOTIATING)
drivers/block/drbd/drbd_receiver.c
4372
cs_flags = CS_VERBOSE + (os.conn < C_CONNECTED && ns.conn >= C_CONNECTED ? 0 : CS_HARD);
drivers/block/drbd/drbd_receiver.c
4373
if (ns.pdsk == D_CONSISTENT && drbd_suspended(device) && ns.conn == C_CONNECTED && os.conn < C_CONNECTED &&
drivers/block/drbd/drbd_receiver.c
4382
conn_request_state(peer_device->connection, NS2(conn, C_PROTOCOL_ERROR, susp, 0), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4390
conn_request_state(peer_device->connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4394
if (os.conn > C_WF_REPORT_PARAMS) {
drivers/block/drbd/drbd_receiver.c
4395
if (ns.conn > C_CONNECTED && peer_state.conn <= C_CONNECTED &&
drivers/block/drbd/drbd_receiver.c
4424
device->state.conn == C_WF_SYNC_UUID ||
drivers/block/drbd/drbd_receiver.c
4425
device->state.conn == C_BEHIND ||
drivers/block/drbd/drbd_receiver.c
4426
device->state.conn < C_CONNECTED ||
drivers/block/drbd/drbd_receiver.c
4588
conn_request_state(peer_device->connection, NS(conn, C_PROTOCOL_ERROR), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4700
if (device->state.conn == C_WF_BITMAP_T) {
drivers/block/drbd/drbd_receiver.c
4707
rv = _drbd_request_state(device, NS(conn, C_WF_SYNC_UUID), CS_VERBOSE);
drivers/block/drbd/drbd_receiver.c
4709
} else if (device->state.conn != C_WF_BITMAP_S) {
drivers/block/drbd/drbd_receiver.c
4713
drbd_conn_str(device->state.conn));
drivers/block/drbd/drbd_receiver.c
4719
if (!err && device->state.conn == C_WF_BITMAP_S)
drivers/block/drbd/drbd_receiver.c
4751
switch (device->state.conn) {
drivers/block/drbd/drbd_receiver.c
4758
drbd_conn_str(device->state.conn));
drivers/block/drbd/drbd_receiver.c
482
conn_request_state(connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4923
conn_request_state(connection, NS(conn, C_PROTOCOL_ERROR), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4940
conn_request_state(connection, NS(conn, C_NETWORK_FAILURE), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4975
_conn_request_state(connection, NS(conn, C_UNCONNECTED), CS_VERBOSE);
drivers/block/drbd/drbd_receiver.c
4980
conn_request_state(connection, NS(conn, C_STANDALONE), CS_VERBOSE | CS_HARD);
drivers/block/drbd/drbd_receiver.c
5365
conn_request_state(connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
563
conn_request_state(connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
5651
if (device->state.conn == C_AHEAD &&
drivers/block/drbd/drbd_receiver.c
5893
conn_request_state(connection, NS(conn, C_NETWORK_FAILURE), CS_HARD);
drivers/block/drbd/drbd_receiver.c
5898
conn_request_state(connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
5929
conn_request_state(connection, NS(conn, C_NETWORK_FAILURE), CS_HARD);
drivers/block/drbd/drbd_receiver.c
605
conn_request_state(connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
749
if (conn_request_state(connection, NS(conn, C_WF_CONNECTION), CS_VERBOSE) < SS_SUCCESS)
drivers/block/drbd/drbd_receiver.c
934
rv = conn_request_state(connection, NS(conn, C_WF_REPORT_PARAMS), CS_VERBOSE);
drivers/block/drbd/drbd_req.c
1000
if (on_congestion == OC_PULL_AHEAD && device->state.conn == C_AHEAD)
drivers/block/drbd/drbd_req.c
1026
_drbd_set_state(_NS(device, conn, C_AHEAD), 0, NULL);
drivers/block/drbd/drbd_req.c
1028
_drbd_set_state(_NS(device, conn, C_DISCONNECTING), 0, NULL);
drivers/block/drbd/drbd_req.c
1088
s.conn >= C_WF_BITMAP_T &&
drivers/block/drbd/drbd_req.c
1089
s.conn < C_AHEAD);
drivers/block/drbd/drbd_req.c
1097
return s.conn == C_AHEAD || s.conn == C_WF_BITMAP_S;
drivers/block/drbd/drbd_req.c
1715
if (nc && device->state.conn >= C_WF_REPORT_PARAMS) {
drivers/block/drbd/drbd_req.c
1772
_conn_request_state(connection, NS(conn, C_TIMEOUT), CS_VERBOSE | CS_HARD);
drivers/block/drbd/drbd_state.c
1018
rv = is_valid_conn_transition(os.conn, ns.conn);
drivers/block/drbd/drbd_state.c
1070
if (ns.conn < C_CONNECTED) {
drivers/block/drbd/drbd_state.c
1078
if (ns.conn == C_STANDALONE && ns.disk == D_DISKLESS && ns.role == R_SECONDARY)
drivers/block/drbd/drbd_state.c
1083
if (ns.conn > C_CONNECTED && (ns.disk <= D_FAILED || ns.pdsk <= D_FAILED)) {
drivers/block/drbd/drbd_state.c
1085
*warn = ns.conn == C_VERIFY_S || ns.conn == C_VERIFY_T ?
drivers/block/drbd/drbd_state.c
1087
ns.conn = C_CONNECTED;
drivers/block/drbd/drbd_state.c
1091
if (ns.conn < C_CONNECTED && ns.disk == D_NEGOTIATING &&
drivers/block/drbd/drbd_state.c
1106
if (ns.conn >= C_CONNECTED && ns.conn < C_AHEAD) {
drivers/block/drbd/drbd_state.c
1118
switch ((enum drbd_conns)ns.conn) {
drivers/block/drbd/drbd_state.c
1194
(ns.role == R_PRIMARY && ns.conn < C_CONNECTED && ns.pdsk > D_OUTDATED) &&
drivers/block/drbd/drbd_state.c
1195
!(os.role == R_PRIMARY && os.conn < C_CONNECTED && os.pdsk > D_OUTDATED))
drivers/block/drbd/drbd_state.c
1204
if (ns.conn == C_SYNC_SOURCE)
drivers/block/drbd/drbd_state.c
1205
ns.conn = C_PAUSED_SYNC_S;
drivers/block/drbd/drbd_state.c
1206
if (ns.conn == C_SYNC_TARGET)
drivers/block/drbd/drbd_state.c
1207
ns.conn = C_PAUSED_SYNC_T;
drivers/block/drbd/drbd_state.c
1209
if (ns.conn == C_PAUSED_SYNC_S)
drivers/block/drbd/drbd_state.c
1210
ns.conn = C_SYNC_SOURCE;
drivers/block/drbd/drbd_state.c
1211
if (ns.conn == C_PAUSED_SYNC_T)
drivers/block/drbd/drbd_state.c
1212
ns.conn = C_SYNC_TARGET;
drivers/block/drbd/drbd_state.c
1324
if (!is_sync_state(os.conn) && is_sync_state(ns.conn))
drivers/block/drbd/drbd_state.c
1351
if (os.conn == C_WF_REPORT_PARAMS && ns.conn != C_WF_REPORT_PARAMS &&
drivers/block/drbd/drbd_state.c
1363
if ((os.conn == C_VERIFY_S || os.conn == C_VERIFY_T) &&
drivers/block/drbd/drbd_state.c
1364
ns.conn <= C_CONNECTED) {
drivers/block/drbd/drbd_state.c
1372
if ((os.conn == C_PAUSED_SYNC_T || os.conn == C_PAUSED_SYNC_S) &&
drivers/block/drbd/drbd_state.c
1373
(ns.conn == C_SYNC_TARGET || ns.conn == C_SYNC_SOURCE)) {
drivers/block/drbd/drbd_state.c
1377
if (ns.conn == C_SYNC_TARGET)
drivers/block/drbd/drbd_state.c
1381
if ((os.conn == C_SYNC_TARGET || os.conn == C_SYNC_SOURCE) &&
drivers/block/drbd/drbd_state.c
1382
(ns.conn == C_PAUSED_SYNC_T || ns.conn == C_PAUSED_SYNC_S)) {
drivers/block/drbd/drbd_state.c
1387
if (os.conn == C_CONNECTED &&
drivers/block/drbd/drbd_state.c
1388
(ns.conn == C_VERIFY_S || ns.conn == C_VERIFY_T)) {
drivers/block/drbd/drbd_state.c
1392
set_ov_position(peer_device, ns.conn);
drivers/block/drbd/drbd_state.c
140
C_WF_REPORT_PARAMS, device->state.conn);
drivers/block/drbd/drbd_state.c
1405
if (ns.conn == C_VERIFY_S) {
drivers/block/drbd/drbd_state.c
1423
if (device->state.conn > C_WF_REPORT_PARAMS)
drivers/block/drbd/drbd_state.c
1446
if (os.conn != C_DISCONNECTING && ns.conn == C_DISCONNECTING)
drivers/block/drbd/drbd_state.c
1450
if (os.conn != C_STANDALONE && ns.conn == C_STANDALONE)
drivers/block/drbd/drbd_state.c
1454
if (os.conn > C_WF_CONNECTION &&
drivers/block/drbd/drbd_state.c
1455
ns.conn <= C_TEAR_DOWN && ns.conn >= C_TIMEOUT)
drivers/block/drbd/drbd_state.c
1459
if (os.conn < C_CONNECTED && ns.conn >= C_CONNECTED) {
drivers/block/drbd/drbd_state.c
1508
_drbd_request_state(device, NS(conn, C_CONNECTED), CS_VERBOSE);
drivers/block/drbd/drbd_state.c
1512
switch (device->state.conn) {
drivers/block/drbd/drbd_state.c
1514
_drbd_request_state(device, NS(conn, C_WF_SYNC_UUID), CS_VERBOSE);
drivers/block/drbd/drbd_state.c
1744
if (os.conn < C_CONNECTED && conn_lowest_conn(connection) >= C_CONNECTED)
drivers/block/drbd/drbd_state.c
1792
if ((os.conn != C_SYNC_SOURCE && os.conn != C_PAUSED_SYNC_S) &&
drivers/block/drbd/drbd_state.c
1793
(ns.conn == C_SYNC_SOURCE || ns.conn == C_PAUSED_SYNC_S) &&
drivers/block/drbd/drbd_state.c
1815
if (os.conn != C_WF_BITMAP_S && ns.conn == C_WF_BITMAP_S &&
drivers/block/drbd/drbd_state.c
1816
device->state.conn == C_WF_BITMAP_S)
drivers/block/drbd/drbd_state.c
1857
device->state.conn <= C_CONNECTED && get_ldev(device)) {
drivers/block/drbd/drbd_state.c
1866
if (ns.conn >= C_CONNECTED &&
drivers/block/drbd/drbd_state.c
1874
if (ns.conn >= C_CONNECTED &&
drivers/block/drbd/drbd_state.c
1886
if (os.conn == C_WF_REPORT_PARAMS && ns.conn >= C_CONNECTED)
drivers/block/drbd/drbd_state.c
1889
if (os.conn != C_AHEAD && ns.conn == C_AHEAD)
drivers/block/drbd/drbd_state.c
1893
if ((os.conn != C_STARTING_SYNC_T && ns.conn == C_STARTING_SYNC_T) ||
drivers/block/drbd/drbd_state.c
1894
(os.conn != C_STARTING_SYNC_S && ns.conn == C_STARTING_SYNC_S))
drivers/block/drbd/drbd_state.c
1948
if (ns.conn >= C_CONNECTED)
drivers/block/drbd/drbd_state.c
1972
if (ns.conn >= C_CONNECTED)
drivers/block/drbd/drbd_state.c
1980
if (os.disk == D_UP_TO_DATE && ns.disk == D_INCONSISTENT && ns.conn >= C_CONNECTED)
drivers/block/drbd/drbd_state.c
1986
if (ns.conn == C_CONNECTED)
drivers/block/drbd/drbd_state.c
1991
if ((os.conn > C_CONNECTED && ns.conn <= C_CONNECTED) ||
drivers/block/drbd/drbd_state.c
1998
if (os.disk < D_UP_TO_DATE && os.conn >= C_SYNC_SOURCE && ns.conn == C_CONNECTED)
drivers/block/drbd/drbd_state.c
2004
if (os.conn == C_VERIFY_S && ns.conn == C_CONNECTED
drivers/block/drbd/drbd_state.c
201
max_t(enum drbd_conns, C_WF_REPORT_PARAMS, state.conn);
drivers/block/drbd/drbd_state.c
2019
if ((os.conn > C_CONNECTED && os.conn < C_AHEAD) &&
drivers/block/drbd/drbd_state.c
2020
(ns.conn == C_CONNECTED || ns.conn >= C_AHEAD) && get_ldev(device)) {
drivers/block/drbd/drbd_state.c
2028
ns.conn == C_STANDALONE &&
drivers/block/drbd/drbd_state.c
2062
if (oc == C_STANDALONE && ns_max.conn == C_UNCONNECTED)
drivers/block/drbd/drbd_state.c
2065
if (oc == C_DISCONNECTING && ns_max.conn == C_STANDALONE) {
drivers/block/drbd/drbd_state.c
2121
.conn = connection->cstate,
drivers/block/drbd/drbd_state.c
2143
if (cs.conn != os.conn)
drivers/block/drbd/drbd_state.c
2210
.conn = val.conn,
drivers/block/drbd/drbd_state.c
2218
if (mask.conn == C_MASK) {
drivers/block/drbd/drbd_state.c
2222
if (connection->cstate != C_WF_REPORT_PARAMS && val.conn == C_WF_REPORT_PARAMS)
drivers/block/drbd/drbd_state.c
2225
connection->cstate = val.conn;
drivers/block/drbd/drbd_state.c
2244
ns_max.conn = max_t(enum drbd_conns, ns.conn, ns_max.conn);
drivers/block/drbd/drbd_state.c
2250
ns_min.conn = min_t(enum drbd_conns, ns.conn, ns_min.conn);
drivers/block/drbd/drbd_state.c
2260
.conn = val.conn,
drivers/block/drbd/drbd_state.c
2303
if (mask.conn) {
drivers/block/drbd/drbd_state.c
2304
rv = is_valid_conn_transition(oc, val.conn);
drivers/block/drbd/drbd_state.c
2313
if (oc == C_WF_REPORT_PARAMS && val.conn == C_DISCONNECTING &&
drivers/block/drbd/drbd_state.c
2332
if (val.conn == C_DISCONNECTING)
drivers/block/drbd/drbd_state.c
2356
acscw->oc = os.conn;
drivers/block/drbd/drbd_state.c
2381
drbd_err(connection, " old_conn:%s wanted_conn:%s\n", drbd_conn_str(oc), drbd_conn_str(val.conn));
drivers/block/drbd/drbd_state.c
304
device->state.conn != C_STANDALONE ||
drivers/block/drbd/drbd_state.c
417
enum drbd_conns conn = C_MASK;
drivers/block/drbd/drbd_state.c
424
conn = min_t(enum drbd_conns, conn, device->state.conn);
drivers/block/drbd/drbd_state.c
428
return conn;
drivers/block/drbd/drbd_state.c
439
if (peer_device->device->state.conn == C_WF_REPORT_PARAMS) {
drivers/block/drbd/drbd_state.c
470
return (os.conn >= C_CONNECTED && ns.conn >= C_CONNECTED &&
drivers/block/drbd/drbd_state.c
472
(os.conn != C_STARTING_SYNC_T && ns.conn == C_STARTING_SYNC_T) ||
drivers/block/drbd/drbd_state.c
473
(os.conn != C_STARTING_SYNC_S && ns.conn == C_STARTING_SYNC_S) ||
drivers/block/drbd/drbd_state.c
475
(os.conn >= C_CONNECTED && ns.conn == C_DISCONNECTING) ||
drivers/block/drbd/drbd_state.c
476
(os.conn == C_CONNECTED && ns.conn == C_VERIFY_S) ||
drivers/block/drbd/drbd_state.c
477
(os.conn == C_CONNECTED && ns.conn == C_WF_REPORT_PARAMS);
drivers/block/drbd/drbd_state.c
719
drbd_conn_str(ns.conn),
drivers/block/drbd/drbd_state.c
758
if (ns.conn != os.conn && flags & CS_DC_CONN)
drivers/block/drbd/drbd_state.c
760
drbd_conn_str(os.conn),
drivers/block/drbd/drbd_state.c
761
drbd_conn_str(ns.conn));
drivers/block/drbd/drbd_state.c
853
else if (ns.role == R_PRIMARY && ns.conn < C_CONNECTED && ns.disk < D_UP_TO_DATE)
drivers/block/drbd/drbd_state.c
857
ns.role == R_PRIMARY && ns.conn < C_CONNECTED && ns.pdsk >= D_UNKNOWN)
drivers/block/drbd/drbd_state.c
863
else if (ns.conn > C_CONNECTED && ns.disk < D_INCONSISTENT)
drivers/block/drbd/drbd_state.c
866
else if (ns.conn > C_CONNECTED && ns.pdsk < D_INCONSISTENT)
drivers/block/drbd/drbd_state.c
869
else if (ns.conn > C_CONNECTED && ns.disk < D_UP_TO_DATE && ns.pdsk < D_UP_TO_DATE)
drivers/block/drbd/drbd_state.c
872
else if ((ns.conn == C_CONNECTED ||
drivers/block/drbd/drbd_state.c
873
ns.conn == C_WF_BITMAP_S ||
drivers/block/drbd/drbd_state.c
874
ns.conn == C_SYNC_SOURCE ||
drivers/block/drbd/drbd_state.c
875
ns.conn == C_PAUSED_SYNC_S) &&
drivers/block/drbd/drbd_state.c
879
else if (nc && (ns.conn == C_VERIFY_S || ns.conn == C_VERIFY_T) &&
drivers/block/drbd/drbd_state.c
883
else if ((ns.conn == C_VERIFY_S || ns.conn == C_VERIFY_T) &&
drivers/block/drbd/drbd_state.c
890
else if ((ns.conn == C_STARTING_SYNC_S || ns.conn == C_STARTING_SYNC_T) &&
drivers/block/drbd/drbd_state.c
894
else if (ns.conn >= C_CONNECTED && ns.pdsk == D_UNKNOWN)
drivers/block/drbd/drbd_state.c
916
if ((ns.conn == C_STARTING_SYNC_T || ns.conn == C_STARTING_SYNC_S) &&
drivers/block/drbd/drbd_state.c
917
os.conn > C_CONNECTED)
drivers/block/drbd/drbd_state.c
920
if (ns.conn == C_DISCONNECTING && os.conn == C_STANDALONE)
drivers/block/drbd/drbd_state.c
926
if (ns.conn == C_WF_CONNECTION && os.conn < C_UNCONNECTED)
drivers/block/drbd/drbd_state.c
932
if (ns.conn == C_DISCONNECTING && os.conn == C_UNCONNECTED)
drivers/block/drbd/drbd_state.c
938
!((ns.conn == C_WF_REPORT_PARAMS && os.conn == C_WF_CONNECTION) ||
drivers/block/drbd/drbd_state.c
939
(ns.conn >= C_CONNECTED && os.conn == C_WF_REPORT_PARAMS)))
drivers/block/drbd/drbd_state.c
948
&& (ns.conn <= C_WF_SYNC_UUID || ns.conn != os.conn))
drivers/block/drbd/drbd_state.c
951
if ((ns.conn == C_VERIFY_S || ns.conn == C_VERIFY_T) && os.conn < C_CONNECTED)
drivers/block/drbd/drbd_state.c
954
if ((ns.conn == C_VERIFY_S || ns.conn == C_VERIFY_T) &&
drivers/block/drbd/drbd_state.c
955
ns.conn != os.conn && os.conn > C_CONNECTED)
drivers/block/drbd/drbd_state.c
958
if ((ns.conn == C_STARTING_SYNC_S || ns.conn == C_STARTING_SYNC_T) &&
drivers/block/drbd/drbd_state.c
959
os.conn < C_CONNECTED)
drivers/block/drbd/drbd_state.c
962
if ((ns.conn == C_SYNC_TARGET || ns.conn == C_SYNC_SOURCE)
drivers/block/drbd/drbd_state.c
963
&& os.conn < C_WF_REPORT_PARAMS)
drivers/block/drbd/drbd_state.c
966
if (ns.conn == C_DISCONNECTING && ns.pdsk == D_OUTDATED &&
drivers/block/drbd/drbd_state.c
967
os.conn < C_CONNECTED && os.pdsk > D_OUTDATED)
drivers/block/drbd/drbd_state.h
105
unsigned conn:5 ; /* 17/32 cstates */
drivers/block/drbd/drbd_state.h
89
unsigned conn:5 ; /* 17/32 cstates */
drivers/block/drbd/drbd_worker.c
1115
if (device->state.conn == C_AHEAD) {
drivers/block/drbd/drbd_worker.c
1533
if ((odev->state.conn >= C_SYNC_SOURCE &&
drivers/block/drbd/drbd_worker.c
1534
odev->state.conn <= C_PAUSED_SYNC_T) ||
drivers/block/drbd/drbd_worker.c
1555
if (odev->state.conn == C_STANDALONE && odev->state.disk == D_DISKLESS)
drivers/block/drbd/drbd_worker.c
1581
if (odev->state.conn == C_STANDALONE && odev->state.disk == D_DISKLESS)
drivers/block/drbd/drbd_worker.c
1727
if (device->state.conn >= C_SYNC_SOURCE && device->state.conn < C_AHEAD) {
drivers/block/drbd/drbd_worker.c
1747
conn_request_state(connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_worker.c
1761
NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_worker.c
1784
if (device->state.conn < C_CONNECTED
drivers/block/drbd/drbd_worker.c
1794
ns.conn = side;
drivers/block/drbd/drbd_worker.c
1804
if (ns.conn < C_CONNECTED)
drivers/block/drbd/drbd_worker.c
1841
drbd_conn_str(ns.conn),
drivers/block/drbd/drbd_worker.c
1890
if (ns.conn == C_SYNC_TARGET)
drivers/block/drbd/drbd_worker.c
1910
if (resync_done && is_sync_state(device->state.conn))
drivers/block/drbd/drbd_worker.c
2192
conn_request_state(connection, NS(conn, C_NETWORK_FAILURE), CS_HARD);
drivers/block/drbd/drbd_worker.c
2213
D_ASSERT(device, device->state.disk == D_DISKLESS && device->state.conn == C_STANDALONE);
drivers/block/drbd/drbd_worker.c
431
switch (device->state.conn) {
drivers/block/drbd/drbd_worker.c
850
test_bit(GOT_PING_ACK, &connection->flags) || device->state.conn < C_CONNECTED);
drivers/block/drbd/drbd_worker.c
890
if (device->state.conn == C_VERIFY_S || device->state.conn == C_VERIFY_T)
drivers/block/drbd/drbd_worker.c
904
verify_done = (os.conn == C_VERIFY_S || os.conn == C_VERIFY_T);
drivers/block/drbd/drbd_worker.c
908
if (os.conn <= C_CONNECTED)
drivers/block/drbd/drbd_worker.c
912
ns.conn = C_CONNECTED;
drivers/block/drbd/drbd_worker.c
920
if (os.conn == C_VERIFY_S || os.conn == C_VERIFY_T) {
drivers/block/drbd/drbd_worker.c
929
if (os.conn == C_SYNC_TARGET || os.conn == C_PAUSED_SYNC_T)
drivers/block/drbd/drbd_worker.c
950
if (os.conn == C_SYNC_TARGET || os.conn == C_PAUSED_SYNC_T) {
drivers/block/drbd/drbd_worker.c
961
if (os.conn == C_SYNC_TARGET || os.conn == C_PAUSED_SYNC_T) {
drivers/block/drbd/drbd_worker.c
973
if (!(os.conn == C_VERIFY_S || os.conn == C_VERIFY_T)) {
drivers/block/drbd/drbd_worker.c
994
if (os.conn == C_SYNC_SOURCE) {
drivers/gpio/gpiolib-acpi-core.c
1134
struct acpi_gpio_connection *conn;
drivers/gpio/gpiolib-acpi-core.c
1142
list_for_each_entry(conn, &achip->conns, node) {
drivers/gpio/gpiolib-acpi-core.c
1143
if (conn->pin == pin) {
drivers/gpio/gpiolib-acpi-core.c
1145
desc = conn->desc;
drivers/gpio/gpiolib-acpi-core.c
1176
conn = kzalloc_obj(*conn);
drivers/gpio/gpiolib-acpi-core.c
1177
if (!conn) {
drivers/gpio/gpiolib-acpi-core.c
1184
conn->pin = pin;
drivers/gpio/gpiolib-acpi-core.c
1185
conn->desc = desc;
drivers/gpio/gpiolib-acpi-core.c
1186
list_add_tail(&conn->node, &achip->conns);
drivers/gpio/gpiolib-acpi-core.c
1234
struct acpi_gpio_connection *conn, *tmp;
drivers/gpio/gpiolib-acpi-core.c
1245
list_for_each_entry_safe_reverse(conn, tmp, &achip->conns, node) {
drivers/gpio/gpiolib-acpi-core.c
1246
gpiochip_free_own_desc(conn->desc);
drivers/gpio/gpiolib-acpi-core.c
1247
list_del(&conn->node);
drivers/gpio/gpiolib-acpi-core.c
1248
kfree(conn);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8640
amdgpu_dm_connector_atomic_check(struct drm_connector *conn,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8644
drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8646
drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8649
struct amdgpu_dm_connector *aconn = to_amdgpu_dm_connector(conn);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8657
if (conn->connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
drivers/gpu/drm/amd/display/include/grph_object_id.h
314
static inline bool dc_connector_supports_analog(const enum connector_id conn)
drivers/gpu/drm/amd/display/include/grph_object_id.h
316
return conn == CONNECTOR_ID_VGA ||
drivers/gpu/drm/amd/display/include/grph_object_id.h
317
conn == CONNECTOR_ID_SINGLE_LINK_DVII ||
drivers/gpu/drm/amd/display/include/grph_object_id.h
318
conn == CONNECTOR_ID_DUAL_LINK_DVII;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_transition.c
157
struct mod_hdcp_connection *conn = &hdcp->connection;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_transition.c
229
} else if ((!conn->is_repeater && input->encryption != PASS) ||
drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_transition.c
230
(!conn->is_repeater && is_dp_mst_hdcp(hdcp) && input->stream_encryption_dp != PASS)) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_transition.c
233
} else if (conn->hdcp1_retry_count < conn->link.adjust.hdcp1.min_auth_retries_wa) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_transition.c
237
if (conn->is_repeater) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_transition.c
34
struct mod_hdcp_connection *conn = &hdcp->connection;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_transition.c
81
} else if (!conn->is_repeater && input->encryption != PASS) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_transition.c
85
if (conn->is_repeater) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
227
if (conn->is_repeater) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
248
} else if (event_ctx->rx_id_list_ready && conn->is_repeater) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
265
} else if (event_ctx->rx_id_list_ready && conn->is_repeater) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
320
} else if (event_ctx->rx_id_list_ready && conn->is_repeater) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
338
} else if (event_ctx->rx_id_list_ready && conn->is_repeater) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
34
struct mod_hdcp_connection *conn = &hdcp->connection;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
388
struct mod_hdcp_connection *conn = &hdcp->connection;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
428
if (conn->is_km_stored &&
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
550
if (conn->is_repeater) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
579
} else if (event_ctx->rx_id_list_ready && conn->is_repeater) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
601
} else if (event_ctx->rx_id_list_ready && conn->is_repeater) {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_transition.c
90
if (conn->is_km_stored &&
drivers/gpu/drm/amd/pm/amdgpu_dpm_internal.c
37
struct amdgpu_connector *conn;
drivers/gpu/drm/amd/pm/amdgpu_dpm_internal.c
52
conn = to_amdgpu_connector(amdgpu_crtc->connector);
drivers/gpu/drm/amd/pm/amdgpu_dpm_internal.c
89
display_cfg->pixel_clock = conn->pixelclock_for_modeset;
drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
25
struct drm_connector *conn;
drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
30
for_each_new_connector_in_state(crtc_st->state, conn, conn_st, i) {
drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
34
conn_bpc = conn->display_info.bpc ? conn->display_info.bpc : 8;
drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
35
conn_color_formats &= conn->display_info.color_formats;
drivers/gpu/drm/arm/display/komeda/komeda_kms.h
142
struct drm_connector *conn = wb_conn ? &wb_conn->base.base : NULL;
drivers/gpu/drm/arm/display/komeda/komeda_kms.h
144
return conn && (st->connector_mask == BIT(drm_connector_index(conn)));
drivers/gpu/drm/arm/display/komeda/komeda_kms.h
148
is_only_changed_connector(struct drm_crtc_state *st, struct drm_connector *conn)
drivers/gpu/drm/arm/display/komeda/komeda_kms.h
156
return BIT(drm_connector_index(conn)) == changed_connectors;
drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
1139
struct drm_connector *conn = conn_st->connector;
drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
1142
err = komeda_scaler_validate(conn, kcrtc_st, dflow);
drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
1160
struct drm_connector *conn = conn_st->connector;
drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
1168
err = komeda_scaler_validate(conn, kcrtc_st, &l_dflow);
drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
1172
err = komeda_scaler_validate(conn, kcrtc_st, &r_dflow);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1967
struct drm_connector *conn = mhdp->connector;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1988
if (conn && mhdp->hdcp_supported) {
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1989
old_state = drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1990
new_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2178
struct drm_connector *conn;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2182
conn = mhdp->connector;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2185
mutex_lock(&conn->dev->mode_config.mutex);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2191
drm_connector_set_link_status_property(conn, DRM_MODE_LINK_STATUS_BAD);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2192
mutex_unlock(&conn->dev->mode_config.mutex);
drivers/gpu/drm/bridge/display-connector.c
115
struct drm_connector *conn = conn_state->connector;
drivers/gpu/drm/bridge/display-connector.c
123
if (conn->display_info.num_bus_formats &&
drivers/gpu/drm/bridge/display-connector.c
124
conn->display_info.bus_formats)
drivers/gpu/drm/bridge/display-connector.c
125
out_bus_fmts[0] = conn->display_info.bus_formats[0];
drivers/gpu/drm/bridge/display-connector.c
191
struct display_connector *conn = arg;
drivers/gpu/drm/bridge/display-connector.c
192
struct drm_bridge *bridge = &conn->bridge;
drivers/gpu/drm/bridge/display-connector.c
200
struct display_connector *conn,
drivers/gpu/drm/bridge/display-connector.c
203
conn->supply = devm_regulator_get_optional(&pdev->dev, name);
drivers/gpu/drm/bridge/display-connector.c
205
if (conn->supply == ERR_PTR(-ENODEV))
drivers/gpu/drm/bridge/display-connector.c
206
conn->supply = NULL;
drivers/gpu/drm/bridge/display-connector.c
208
return PTR_ERR_OR_ZERO(conn->supply);
drivers/gpu/drm/bridge/display-connector.c
213
struct display_connector *conn;
drivers/gpu/drm/bridge/display-connector.c
218
conn = devm_drm_bridge_alloc(&pdev->dev, struct display_connector, bridge,
drivers/gpu/drm/bridge/display-connector.c
220
if (IS_ERR(conn))
drivers/gpu/drm/bridge/display-connector.c
221
return PTR_ERR(conn);
drivers/gpu/drm/bridge/display-connector.c
223
platform_set_drvdata(pdev, conn);
drivers/gpu/drm/bridge/display-connector.c
235
conn->bridge.type = DRM_MODE_CONNECTOR_DVIA;
drivers/gpu/drm/bridge/display-connector.c
237
conn->bridge.type = DRM_MODE_CONNECTOR_DVID;
drivers/gpu/drm/bridge/display-connector.c
239
conn->bridge.type = DRM_MODE_CONNECTOR_DVII;
drivers/gpu/drm/bridge/display-connector.c
259
conn->bridge.type = DRM_MODE_CONNECTOR_HDMIA;
drivers/gpu/drm/bridge/display-connector.c
261
conn->bridge.type = DRM_MODE_CONNECTOR_HDMIB;
drivers/gpu/drm/bridge/display-connector.c
273
conn->bridge.type = type;
drivers/gpu/drm/bridge/display-connector.c
278
conn->bridge.interlace_allowed = true;
drivers/gpu/drm/bridge/display-connector.c
282
conn->bridge.ycbcr_420_allowed = true;
drivers/gpu/drm/bridge/display-connector.c
294
conn->hpd_gpio = devm_gpiod_get_optional(&pdev->dev, "hpd",
drivers/gpu/drm/bridge/display-connector.c
296
if (IS_ERR(conn->hpd_gpio))
drivers/gpu/drm/bridge/display-connector.c
297
return dev_err_probe(&pdev->dev, PTR_ERR(conn->hpd_gpio),
drivers/gpu/drm/bridge/display-connector.c
300
conn->hpd_irq = gpiod_to_irq(conn->hpd_gpio);
drivers/gpu/drm/bridge/display-connector.c
302
conn->hpd_irq = -EINVAL;
drivers/gpu/drm/bridge/display-connector.c
305
if (conn->hpd_irq >= 0) {
drivers/gpu/drm/bridge/display-connector.c
306
ret = devm_request_threaded_irq(&pdev->dev, conn->hpd_irq,
drivers/gpu/drm/bridge/display-connector.c
311
"HPD", conn);
drivers/gpu/drm/bridge/display-connector.c
315
conn->hpd_irq = -EINVAL;
drivers/gpu/drm/bridge/display-connector.c
327
conn->bridge.ddc = of_get_i2c_adapter_by_node(phandle);
drivers/gpu/drm/bridge/display-connector.c
329
if (!conn->bridge.ddc)
drivers/gpu/drm/bridge/display-connector.c
341
ret = display_connector_get_supply(pdev, conn, "dp-pwr");
drivers/gpu/drm/bridge/display-connector.c
350
conn->ddc_en = devm_gpiod_get_optional(&pdev->dev, "ddc-en",
drivers/gpu/drm/bridge/display-connector.c
353
if (IS_ERR(conn->ddc_en)) {
drivers/gpu/drm/bridge/display-connector.c
355
return PTR_ERR(conn->ddc_en);
drivers/gpu/drm/bridge/display-connector.c
358
ret = display_connector_get_supply(pdev, conn, "hdmi-pwr");
drivers/gpu/drm/bridge/display-connector.c
363
if (conn->supply) {
drivers/gpu/drm/bridge/display-connector.c
364
ret = regulator_enable(conn->supply);
drivers/gpu/drm/bridge/display-connector.c
371
conn->bridge.of_node = pdev->dev.of_node;
drivers/gpu/drm/bridge/display-connector.c
373
if (conn->bridge.ddc)
drivers/gpu/drm/bridge/display-connector.c
374
conn->bridge.ops |= DRM_BRIDGE_OP_EDID
drivers/gpu/drm/bridge/display-connector.c
377
if (conn->hpd_gpio && type != DRM_MODE_CONNECTOR_DisplayPort)
drivers/gpu/drm/bridge/display-connector.c
378
conn->bridge.ops |= DRM_BRIDGE_OP_DETECT;
drivers/gpu/drm/bridge/display-connector.c
379
if (conn->hpd_irq >= 0)
drivers/gpu/drm/bridge/display-connector.c
380
conn->bridge.ops |= DRM_BRIDGE_OP_HPD;
drivers/gpu/drm/bridge/display-connector.c
384
drm_get_connector_type_name(conn->bridge.type),
drivers/gpu/drm/bridge/display-connector.c
386
conn->bridge.ddc ? "with" : "without",
drivers/gpu/drm/bridge/display-connector.c
387
conn->hpd_gpio ? "with" : "without",
drivers/gpu/drm/bridge/display-connector.c
388
conn->bridge.ops);
drivers/gpu/drm/bridge/display-connector.c
390
drm_bridge_add(&conn->bridge);
drivers/gpu/drm/bridge/display-connector.c
397
struct display_connector *conn = platform_get_drvdata(pdev);
drivers/gpu/drm/bridge/display-connector.c
399
if (conn->ddc_en)
drivers/gpu/drm/bridge/display-connector.c
400
gpiod_set_value(conn->ddc_en, 0);
drivers/gpu/drm/bridge/display-connector.c
402
if (conn->supply)
drivers/gpu/drm/bridge/display-connector.c
403
regulator_disable(conn->supply);
drivers/gpu/drm/bridge/display-connector.c
405
drm_bridge_remove(&conn->bridge);
drivers/gpu/drm/bridge/display-connector.c
407
if (!IS_ERR(conn->bridge.ddc))
drivers/gpu/drm/bridge/display-connector.c
408
i2c_put_adapter(conn->bridge.ddc);
drivers/gpu/drm/bridge/display-connector.c
45
struct display_connector *conn = to_display_connector(bridge);
drivers/gpu/drm/bridge/display-connector.c
47
if (conn->hpd_gpio) {
drivers/gpu/drm/bridge/display-connector.c
48
if (gpiod_get_value_cansleep(conn->hpd_gpio))
drivers/gpu/drm/bridge/display-connector.c
54
if (conn->bridge.ddc && drm_probe_ddc(conn->bridge.ddc))
drivers/gpu/drm/bridge/display-connector.c
57
switch (conn->bridge.type) {
drivers/gpu/drm/bridge/display-connector.c
93
struct display_connector *conn = to_display_connector(bridge);
drivers/gpu/drm/bridge/display-connector.c
95
return drm_edid_read_ddc(connector, conn->bridge.ddc);
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
2662
struct drm_connector *conn = conn_state->connector;
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
2663
struct drm_display_info *info = &conn->display_info;
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
2691
if (conn->ycbcr_420_allowed &&
drivers/gpu/drm/bridge/tc358767.c
1767
bool conn;
drivers/gpu/drm/bridge/tc358767.c
1775
conn = val & BIT(tc->hpd_pin);
drivers/gpu/drm/bridge/tc358767.c
1777
if (conn)
drivers/gpu/drm/drm_atomic.c
1671
struct drm_connector *conn;
drivers/gpu/drm/drm_atomic.c
1702
for_each_new_connector_in_state(state, conn, conn_state, i) {
drivers/gpu/drm/drm_atomic.c
1703
ret = drm_atomic_connector_check(conn, conn_state);
drivers/gpu/drm/drm_atomic.c
1706
conn->base.id, conn->name);
drivers/gpu/drm/drm_atomic_helper.c
2516
struct drm_connector *conn;
drivers/gpu/drm/drm_atomic_helper.c
2573
for_each_oldnew_connector_in_state(state, conn, old_conn_state, new_conn_state, i) {
drivers/gpu/drm/drm_atomic_helper.c
2580
drm_dbg_atomic(conn->dev,
drivers/gpu/drm/drm_atomic_helper.c
2582
conn->base.id, conn->name);
drivers/gpu/drm/drm_atomic_helper.c
2642
struct drm_connector *conn;
drivers/gpu/drm/drm_atomic_helper.c
2655
for_each_old_connector_in_state(state, conn, old_conn_state, i) {
drivers/gpu/drm/drm_atomic_helper.c
2658
drm_err(conn->dev,
drivers/gpu/drm/drm_atomic_helper.c
2660
conn->base.id, conn->name);
drivers/gpu/drm/drm_atomic_helper.c
3559
struct drm_connector *conn;
drivers/gpu/drm/drm_atomic_helper.c
3594
for_each_new_connector_in_state(state, conn, conn_state, i) {
drivers/gpu/drm/drm_atomic_helper.c
3723
struct drm_connector *conn;
drivers/gpu/drm/drm_atomic_helper.c
3764
drm_for_each_connector_iter(conn, &conn_iter) {
drivers/gpu/drm/drm_atomic_helper.c
3767
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/drm_atomic_uapi.c
1423
struct drm_connector *conn;
drivers/gpu/drm/drm_atomic_uapi.c
1490
for_each_new_connector_in_state(state, conn, conn_state, i) {
drivers/gpu/drm/drm_atomic_uapi.c
1499
fence_ptr = get_out_fence_for_connector(state, conn);
drivers/gpu/drm/drm_atomic_uapi.c
1513
wb_conn = drm_connector_to_writeback(conn);
drivers/gpu/drm/drm_atomic_uapi.c
832
struct drm_connector *conn = conn_state->connector;
drivers/gpu/drm/drm_atomic_uapi.c
839
drm_dbg_atomic(conn->dev,
drivers/gpu/drm/drm_atomic_uapi.c
843
drm_dbg_atomic(conn->dev,
drivers/gpu/drm/drm_bridge.c
1191
struct drm_connector *conn = conn_state->connector;
drivers/gpu/drm/drm_bridge.c
1229
if (conn->display_info.num_bus_formats &&
drivers/gpu/drm/drm_bridge.c
1230
conn->display_info.bus_formats)
drivers/gpu/drm/drm_bridge.c
1231
out_bus_fmts[0] = conn->display_info.bus_formats[0];
drivers/gpu/drm/drm_bridge.c
1250
struct drm_connector *conn,
drivers/gpu/drm/drm_bridge.c
1275
output_flags = conn->display_info.bus_flags;
drivers/gpu/drm/drm_bridge.c
1317
struct drm_connector *conn = conn_state->connector;
drivers/gpu/drm/drm_bridge.c
1342
drm_atomic_bridge_propagate_bus_flags(iter, conn,
drivers/gpu/drm/drm_connector.c
1053
iter->conn = NULL;
drivers/gpu/drm/drm_connector.c
1064
__drm_connector_put_safe(struct drm_connector *conn)
drivers/gpu/drm/drm_connector.c
1066
struct drm_mode_config *config = &conn->dev->mode_config;
drivers/gpu/drm/drm_connector.c
1070
if (!refcount_dec_and_test(&conn->base.refcount.refcount))
drivers/gpu/drm/drm_connector.c
1073
llist_add(&conn->free_node, &config->connector_free_list);
drivers/gpu/drm/drm_connector.c
1087
struct drm_connector *old_conn = iter->conn;
drivers/gpu/drm/drm_connector.c
1097
iter->conn = NULL;
drivers/gpu/drm/drm_connector.c
1102
iter->conn = list_entry(lhead, struct drm_connector, head);
drivers/gpu/drm/drm_connector.c
1105
} while (!kref_get_unless_zero(&iter->conn->base.refcount));
drivers/gpu/drm/drm_connector.c
1111
return iter->conn;
drivers/gpu/drm/drm_connector.c
1130
if (iter->conn) {
drivers/gpu/drm/drm_connector.c
1132
__drm_connector_put_safe(iter->conn);
drivers/gpu/drm/drm_framebuffer.c
1005
struct drm_connector *conn __maybe_unused;
drivers/gpu/drm/drm_framebuffer.c
1072
for_each_new_connector_in_state(state, conn, conn_state, i) {
drivers/gpu/drm/drm_self_refresh_helper.c
106
for_each_new_connector_in_state(state, conn, conn_state, i) {
drivers/gpu/drm/drm_self_refresh_helper.c
77
struct drm_connector *conn;
drivers/gpu/drm/i915/display/g4x_hdmi.c
599
struct drm_connector *conn;
drivers/gpu/drm/i915/display/g4x_hdmi.c
621
drm_for_each_connector_iter(conn, &conn_iter) {
drivers/gpu/drm/i915/display/g4x_hdmi.c
626
if (!connector_is_hdmi(conn))
drivers/gpu/drm/i915/display/g4x_hdmi.c
630
conn->base.id, conn->name);
drivers/gpu/drm/i915/display/g4x_hdmi.c
632
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/i915/display/intel_atomic.c
114
int intel_digital_connector_atomic_check(struct drm_connector *conn,
drivers/gpu/drm/i915/display/intel_atomic.c
118
drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/i915/display/intel_atomic.c
122
drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/i915/display/intel_atomic.c
127
intel_hdcp_atomic_check(conn, old_state, new_state);
drivers/gpu/drm/i915/display/intel_atomic.h
31
int intel_digital_connector_atomic_check(struct drm_connector *conn,
drivers/gpu/drm/i915/display/intel_ddi.c
3329
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_ddi.c
3335
for_each_new_connector_in_state(&state->base, conn, conn_state, i) {
drivers/gpu/drm/i915/display/intel_display.c
1342
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
1345
for_each_new_connector_in_state(&state->base, conn, conn_state, i) {
drivers/gpu/drm/i915/display/intel_display.c
1364
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
1367
for_each_new_connector_in_state(&state->base, conn, conn_state, i) {
drivers/gpu/drm/i915/display/intel_display.c
1386
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
1389
for_each_new_connector_in_state(&state->base, conn, conn_state, i) {
drivers/gpu/drm/i915/display/intel_display.c
1409
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
1412
for_each_old_connector_in_state(&state->base, conn, old_conn_state, i) {
drivers/gpu/drm/i915/display/intel_display.c
1432
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
1435
for_each_old_connector_in_state(&state->base, conn, old_conn_state, i) {
drivers/gpu/drm/i915/display/intel_display.c
1454
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
1457
for_each_old_connector_in_state(&state->base, conn, old_conn_state, i) {
drivers/gpu/drm/i915/display/intel_display.c
1476
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
1479
for_each_new_connector_in_state(&state->base, conn, conn_state, i) {
drivers/gpu/drm/i915/display/intel_display.c
876
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
879
for_each_new_connector_in_state(&state->base, conn, conn_state, i) {
drivers/gpu/drm/i915/display/intel_display.c
897
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
900
for_each_old_connector_in_state(&state->base, conn, old_conn_state, i) {
drivers/gpu/drm/i915/display/intel_psr.c
3431
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_psr.c
3445
drm_for_each_connector_iter(conn, &conn_iter) {
drivers/gpu/drm/i915/display/intel_psr.c
3449
if (conn->connector_type != DRM_MODE_CONNECTOR_eDP)
drivers/gpu/drm/i915/display/intel_psr.c
3452
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/i915/display/intel_sdvo.c
2519
static int intel_sdvo_atomic_check(struct drm_connector *conn,
drivers/gpu/drm/i915/display/intel_sdvo.c
2523
drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/i915/display/intel_sdvo.c
2525
drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/i915/display/intel_sdvo.c
2541
return intel_digital_connector_atomic_check(conn, state);
drivers/gpu/drm/loongson/lsdc_output_7a1000.c
42
static int ls7a1000_dpi_connector_get_modes(struct drm_connector *conn)
drivers/gpu/drm/loongson/lsdc_output_7a1000.c
46
if (conn->ddc) {
drivers/gpu/drm/loongson/lsdc_output_7a1000.c
49
drm_edid = drm_edid_read(conn);
drivers/gpu/drm/loongson/lsdc_output_7a1000.c
50
drm_edid_connector_update(conn, drm_edid);
drivers/gpu/drm/loongson/lsdc_output_7a1000.c
51
num = drm_edid_connector_add_modes(conn);
drivers/gpu/drm/loongson/lsdc_output_7a1000.c
57
num = drm_add_modes_noedid(conn, 1920, 1200);
drivers/gpu/drm/loongson/lsdc_output_7a1000.c
59
drm_set_preferred_mode(conn, 1024, 768);
drivers/gpu/drm/mediatek/mtk_dp.c
116
struct drm_connector *conn;
drivers/gpu/drm/mediatek/mtk_dp.c
2382
mtk_dp->conn = drm_atomic_get_new_connector_for_encoder(state,
drivers/gpu/drm/mediatek/mtk_dp.c
2384
if (!mtk_dp->conn) {
drivers/gpu/drm/mediatek/mtk_dp.c
2642
memcpy(buf, mtk_dp->conn->eld, len);
drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h
24
static inline struct dpu_wb_connector *to_dpu_wb_conn(struct drm_writeback_connector *conn)
drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h
26
return container_of(conn, struct dpu_wb_connector, base);
drivers/gpu/drm/nouveau/dispnv50/disp.c
1887
struct drm_connector *connector = &nv_encoder->conn->base;
drivers/gpu/drm/nouveau/dispnv50/disp.c
2053
struct drm_connector *connector = &nv_encoder->conn->base;
drivers/gpu/drm/nouveau/dispnv50/disp.c
2140
nv_encoder->conn, NULL, NULL);
drivers/gpu/drm/nouveau/dispnv50/disp.c
2695
struct drm_connector *conn;
drivers/gpu/drm/nouveau/dispnv50/disp.c
2741
nouveau_for_each_non_mst_connector_iter(conn, &conn_iter) {
drivers/gpu/drm/nouveau/dispnv50/disp.c
2742
if (nouveau_connector(conn)->index == outp->dcb->connector) {
drivers/gpu/drm/nouveau/dispnv50/disp.c
2752
armh->state.connector_mask = drm_connector_mask(conn);
drivers/gpu/drm/nouveau/dispnv50/disp.c
2760
drm_connector_get(conn);
drivers/gpu/drm/nouveau/dispnv50/disp.c
2761
conn->state->crtc = crtc;
drivers/gpu/drm/nouveau/dispnv50/disp.c
2762
conn->state->best_encoder = &outp->base.base;
drivers/gpu/drm/nouveau/dispnv50/disp.c
2913
connector = nouveau_connector_create(dev, outp->outp.info.conn);
drivers/gpu/drm/nouveau/dispnv50/disp.c
2922
outp->conn = nouveau_connector(connector);
drivers/gpu/drm/nouveau/dispnv50/disp.c
2954
outp->dcb->connector = outp->outp.info.conn;
drivers/gpu/drm/nouveau/dispnv50/disp.c
568
struct drm_connector *connector = &nv_encoder->conn->base;
drivers/gpu/drm/nouveau/dispnv50/disp.c
622
nv_connector = nv_encoder->conn;
drivers/gpu/drm/nouveau/dispnv50/head.c
345
struct drm_connector *conn;
drivers/gpu/drm/nouveau/dispnv50/head.c
359
for_each_new_connector_in_state(asyh->state.state, conn, conns, i) {
drivers/gpu/drm/nouveau/include/nvif/conn.h
31
nvif_conn_id(struct nvif_conn *conn)
drivers/gpu/drm/nouveau/include/nvif/conn.h
33
return conn->object.handle;
drivers/gpu/drm/nouveau/include/nvif/if0012.h
22
__u8 conn;
drivers/gpu/drm/nouveau/include/nvif/outp.h
30
u8 conn;
drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/mxm.h
5
u8 mxm_sor_map(struct nvkm_bios *, u8 conn);
drivers/gpu/drm/nouveau/nouveau_bios.c
1397
uint32_t conn, uint32_t conf, struct dcb_output *entry)
drivers/gpu/drm/nouveau/nouveau_bios.c
1402
entry->type = conn & 0xf;
drivers/gpu/drm/nouveau/nouveau_bios.c
1403
entry->i2c_index = (conn >> 4) & 0xf;
drivers/gpu/drm/nouveau/nouveau_bios.c
1404
entry->heads = (conn >> 8) & 0xf;
drivers/gpu/drm/nouveau/nouveau_bios.c
1405
entry->connector = (conn >> 12) & 0xf;
drivers/gpu/drm/nouveau/nouveau_bios.c
1406
entry->bus = (conn >> 16) & 0xf;
drivers/gpu/drm/nouveau/nouveau_bios.c
1407
entry->location = (conn >> 20) & 0x3;
drivers/gpu/drm/nouveau/nouveau_bios.c
1408
entry->or = (conn >> 24) & 0xf;
drivers/gpu/drm/nouveau/nouveau_bios.c
1544
uint32_t conn, uint32_t conf, struct dcb_output *entry)
drivers/gpu/drm/nouveau/nouveau_bios.c
1548
switch (conn & 0x0000000f) {
drivers/gpu/drm/nouveau/nouveau_bios.c
1557
if (conn & 0x10)
drivers/gpu/drm/nouveau/nouveau_bios.c
1566
NV_ERROR(drm, "Unknown DCB type %d\n", conn & 0x0000000f);
drivers/gpu/drm/nouveau/nouveau_bios.c
1570
entry->i2c_index = (conn & 0x0003c000) >> 14;
drivers/gpu/drm/nouveau/nouveau_bios.c
1571
entry->heads = ((conn & 0x001c0000) >> 18) + 1;
drivers/gpu/drm/nouveau/nouveau_bios.c
1573
entry->location = (conn & 0x01e00000) >> 21;
drivers/gpu/drm/nouveau/nouveau_bios.c
1574
entry->bus = (conn & 0x0e000000) >> 25;
drivers/gpu/drm/nouveau/nouveau_bios.c
1585
if ((conn & 0x00003f00) >> 8 != 0x10)
drivers/gpu/drm/nouveau/nouveau_bios.c
1647
apply_dcb_encoder_quirks(struct drm_device *dev, int idx, u32 *conn, u32 *conf)
drivers/gpu/drm/nouveau/nouveau_bios.c
1665
if (*conn == 0x02026312 && *conf == 0x00000020)
drivers/gpu/drm/nouveau/nouveau_bios.c
1675
if (*conn == 0xf2005014 && *conf == 0xffffffff) {
drivers/gpu/drm/nouveau/nouveau_bios.c
1687
*conn = 0x02001300; /* VGA, connector 1 */
drivers/gpu/drm/nouveau/nouveau_bios.c
1691
*conn = 0x01010312; /* DVI, connector 0 */
drivers/gpu/drm/nouveau/nouveau_bios.c
1695
*conn = 0x01010310; /* VGA, connector 0 */
drivers/gpu/drm/nouveau/nouveau_bios.c
1699
*conn = 0x02022362; /* HDMI, connector 2 */
drivers/gpu/drm/nouveau/nouveau_bios.c
1702
*conn = 0x0000000e; /* EOL */
drivers/gpu/drm/nouveau/nouveau_bios.c
1718
*conn = 0x02002300; /* VGA, connector 2 */
drivers/gpu/drm/nouveau/nouveau_bios.c
1722
*conn = 0x01010312; /* DVI, connector 0 */
drivers/gpu/drm/nouveau/nouveau_bios.c
1726
*conn = 0x04020310; /* VGA, connector 0 */
drivers/gpu/drm/nouveau/nouveau_bios.c
1730
*conn = 0x02021322; /* HDMI, connector 1 */
drivers/gpu/drm/nouveau/nouveau_bios.c
1733
*conn = 0x0000000e; /* EOL */
drivers/gpu/drm/nouveau/nouveau_bios.c
1740
if (idx == 0 && *conn == 0x02000300)
drivers/gpu/drm/nouveau/nouveau_bios.c
1741
*conn = 0x02011300;
drivers/gpu/drm/nouveau/nouveau_bios.c
1743
if (idx == 1 && *conn == 0x04011310)
drivers/gpu/drm/nouveau/nouveau_bios.c
1744
*conn = 0x04000310;
drivers/gpu/drm/nouveau/nouveau_bios.c
1746
if (idx == 2 && *conn == 0x02011312)
drivers/gpu/drm/nouveau/nouveau_bios.c
1747
*conn = 0x02000312;
drivers/gpu/drm/nouveau/nouveau_bios.c
1790
u32 conn = ROM32(outp[0]);
drivers/gpu/drm/nouveau/nouveau_bios.c
1793
if (apply_dcb_encoder_quirks(dev, idx, &conn, &conf)) {
drivers/gpu/drm/nouveau/nouveau_bios.c
1796
NV_INFO(drm, "DCB outp %02d: %08x %08x\n", idx, conn, conf);
drivers/gpu/drm/nouveau/nouveau_bios.c
1799
ret = parse_dcb20_entry(dev, dcb, conn, conf, entry);
drivers/gpu/drm/nouveau/nouveau_bios.c
1801
ret = parse_dcb15_entry(dev, dcb, conn, conf, entry);
drivers/gpu/drm/nouveau/nouveau_bios.c
1870
u8 *dcbt, *conn;
drivers/gpu/drm/nouveau/nouveau_bios.c
1898
while ((conn = olddcb_conn(dev, ++idx))) {
drivers/gpu/drm/nouveau/nouveau_bios.c
1899
if (conn[0] != 0xff) {
drivers/gpu/drm/nouveau/nouveau_bios.c
1902
idx, ROM16(conn[0]));
drivers/gpu/drm/nouveau/nouveau_bios.c
1905
idx, ROM32(conn[0]));
drivers/gpu/drm/nouveau/nouveau_connector.c
1314
&nv_connector->conn);
drivers/gpu/drm/nouveau/nouveau_connector.c
1320
switch (nv_connector->conn.info.type) {
drivers/gpu/drm/nouveau/nouveau_connector.c
1429
if (nvif_object_constructed(&nv_connector->conn.object)) {
drivers/gpu/drm/nouveau/nouveau_connector.c
1430
ret = nvif_conn_event_ctor(&nv_connector->conn, "kmsHotplug",
drivers/gpu/drm/nouveau/nouveau_connector.c
1438
ret = nvif_conn_event_ctor(&nv_connector->conn, "kmsDpIrq",
drivers/gpu/drm/nouveau/nouveau_connector.c
1443
nvif_conn_dtor(&nv_connector->conn);
drivers/gpu/drm/nouveau/nouveau_connector.c
405
nvif_conn_dtor(&nv_connector->conn);
drivers/gpu/drm/nouveau/nouveau_connector.c
414
struct nouveau_connector *conn = nouveau_connector(connector);
drivers/gpu/drm/nouveau/nouveau_connector.c
427
ret = nouveau_dp_detect(conn, nv_encoder);
drivers/gpu/drm/nouveau/nouveau_connector.h
125
struct nvif_conn conn;
drivers/gpu/drm/nouveau/nouveau_display.c
557
struct nouveau_connector *conn = nouveau_connector(connector);
drivers/gpu/drm/nouveau/nouveau_display.c
558
nvif_event_allow(&conn->hpd);
drivers/gpu/drm/nouveau/nouveau_display.c
559
nvif_event_allow(&conn->irq);
drivers/gpu/drm/nouveau/nouveau_display.c
593
struct nouveau_connector *conn = nouveau_connector(connector);
drivers/gpu/drm/nouveau/nouveau_display.c
594
nvif_event_block(&conn->irq);
drivers/gpu/drm/nouveau/nouveau_display.c
595
nvif_event_block(&conn->hpd);
drivers/gpu/drm/nouveau/nouveau_dp.c
303
struct drm_dp_aux *aux = &outp->conn->aux;
drivers/gpu/drm/nouveau/nouveau_dp.c
323
struct drm_dp_aux *aux = &outp->conn->aux;
drivers/gpu/drm/nouveau/nouveau_dp.c
408
struct drm_dp_aux *aux = &outp->conn->aux;
drivers/gpu/drm/nouveau/nouveau_dp.c
457
if (drm_dp_dpcd_read_phy_link_status(&outp->conn->aux, DP_PHY_DPRX, link_status) < 0)
drivers/gpu/drm/nouveau/nouveau_encoder.h
53
struct nouveau_connector *conn;
drivers/gpu/drm/nouveau/nvif/conn.c
30
nvif_conn_event_ctor(struct nvif_conn *conn, const char *name, nvif_event_func func, u8 types,
drivers/gpu/drm/nouveau/nvif/conn.c
42
ret = nvif_event_ctor_(&conn->object, name ?: "nvifConnHpd", nvif_conn_id(conn),
drivers/gpu/drm/nouveau/nvif/conn.c
44
NVIF_DEBUG(&conn->object, "[NEW EVENT:HPD types:%02x]", types);
drivers/gpu/drm/nouveau/nvif/conn.c
49
nvif_conn_dtor(struct nvif_conn *conn)
drivers/gpu/drm/nouveau/nvif/conn.c
51
nvif_object_dtor(&conn->object);
drivers/gpu/drm/nouveau/nvif/conn.c
55
nvif_conn_ctor(struct nvif_disp *disp, const char *name, int id, struct nvif_conn *conn)
drivers/gpu/drm/nouveau/nvif/conn.c
64
&args, sizeof(args), &conn->object);
drivers/gpu/drm/nouveau/nvif/conn.c
69
conn->id = id;
drivers/gpu/drm/nouveau/nvif/conn.c
72
case NVIF_CONN_V0_VGA : conn->info.type = NVIF_CONN_VGA; break;
drivers/gpu/drm/nouveau/nvif/conn.c
73
case NVIF_CONN_V0_TV : conn->info.type = NVIF_CONN_TV; break;
drivers/gpu/drm/nouveau/nvif/conn.c
74
case NVIF_CONN_V0_DVI_I : conn->info.type = NVIF_CONN_DVI_I; break;
drivers/gpu/drm/nouveau/nvif/conn.c
75
case NVIF_CONN_V0_DVI_D : conn->info.type = NVIF_CONN_DVI_D; break;
drivers/gpu/drm/nouveau/nvif/conn.c
76
case NVIF_CONN_V0_LVDS : conn->info.type = NVIF_CONN_LVDS; break;
drivers/gpu/drm/nouveau/nvif/conn.c
77
case NVIF_CONN_V0_LVDS_SPWG: conn->info.type = NVIF_CONN_LVDS_SPWG; break;
drivers/gpu/drm/nouveau/nvif/conn.c
78
case NVIF_CONN_V0_HDMI : conn->info.type = NVIF_CONN_HDMI; break;
drivers/gpu/drm/nouveau/nvif/conn.c
79
case NVIF_CONN_V0_DP : conn->info.type = NVIF_CONN_DP; break;
drivers/gpu/drm/nouveau/nvif/conn.c
80
case NVIF_CONN_V0_EDP : conn->info.type = NVIF_CONN_EDP; break;
drivers/gpu/drm/nouveau/nvif/outp.c
552
outp->info.conn = args.conn;
drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c
172
struct nvkm_conn *conn;
drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c
191
conn = list_first_entry(&disp->conns, typeof(*conn), head);
drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c
192
list_del(&conn->head);
drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c
193
nvkm_conn_del(&conn);
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
35
struct nvkm_conn *conn = *pconn;
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
36
if (conn) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
44
struct nvkm_conn *conn)
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
51
conn->disp = disp;
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
52
conn->index = index;
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
53
conn->info = *info;
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
54
conn->info.hpd = DCB_GPIO_UNUSED;
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
56
CONN_DBG(conn, "type %02x loc %d hpd %02x dp %x di %x sr %x lcdid %x",
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
62
CONN_ERR(conn, "hpd %02x unknown", info->hpd);
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
69
CONN_ERR(conn, "func %02x lookup failed, %d", info->hpd, ret);
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
73
conn->info.hpd = func.line;
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
559
if (outp->conn->info.type == DCB_CONNECTOR_eDP) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
588
if (outp->conn->info.type == DCB_CONNECTOR_eDP) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1588
struct nvkm_conn *conn;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1710
outp->conn = pair->conn;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1717
if (outp->conn)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1728
list_for_each_entry(conn, &disp->conns, head) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1729
if (conn->index == outp->info.connector) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1730
outp->conn = conn;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1735
if (outp->conn)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1739
ret = nvkm_conn_new(disp, i, &connE, &outp->conn);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1742
nvkm_conn_del(&outp->conn);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1748
list_add_tail(&outp->conn->head, &disp->conns);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1755
if (outp->conn->info.type == DCB_CONNECTOR_LVDS ||
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1756
outp->conn->info.type == DCB_CONNECTOR_eDP) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
252
if (outp->conn->info.hpd != DCB_GPIO_UNUSED) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
253
ret = nvkm_gpio_get(gpio, 0, DCB_GPIO_UNUSED, outp->conn->info.hpd);
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.h
20
struct nvkm_conn *conn;
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
105
if (!disp->rm.client.gsp && conn->info.hpd == DCB_GPIO_UNUSED)
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
113
list_for_each_entry(outp, &conn->disp->outps, head) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
114
if (outp->info.connector == conn->index)
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
118
if (&outp->head == &conn->disp->outps)
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
143
if (!outp->info.location && !nvkm_connector_is_dp_dms(conn->info.type))
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
147
return nvkm_uevent_add(uevent, &device->gpio->event, conn->info.hpd, bits,
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
154
struct nvkm_conn *conn = nvkm_uconn(object);
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
155
struct nvkm_disp *disp = conn->disp;
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
158
conn->object.func = NULL;
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
173
struct nvkm_conn *cont, *conn = NULL;
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
182
conn = cont;
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
187
if (!conn)
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
192
if (!conn->object.func) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
193
switch (conn->info.type) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
246
conn->info.type);
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
252
nvkm_object_ctor(&nvkm_uconn, oclass, &conn->object);
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
253
*pobject = &conn->object;
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
97
struct nvkm_conn *conn = nvkm_uconn(object);
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
98
struct nvkm_disp *disp = conn->disp;
drivers/gpu/drm/nouveau/nvkm/engine/disp/udisp.c
102
list_for_each_entry(conn, &disp->conns, head)
drivers/gpu/drm/nouveau/nvkm/engine/disp/udisp.c
103
args->v0.conn_mask |= BIT(conn->index);
drivers/gpu/drm/nouveau/nvkm/engine/disp/udisp.c
84
struct nvkm_conn *conn;
drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c
655
args->v0.conn = outp->info.connector;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
128
u32 conn = nvbios_rd32(bios, dcb + 0x00);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
129
outp->or = (conn & 0x0f000000) >> 24;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
130
outp->location = (conn & 0x00300000) >> 20;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
131
outp->bus = (conn & 0x000f0000) >> 16;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
132
outp->connector = (conn & 0x0000f000) >> 12;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
133
outp->heads = (conn & 0x00000f00) >> 8;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
134
outp->i2c_index = (conn & 0x000000f0) >> 4;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
135
outp->type = (conn & 0x0000000f);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c
127
u32 conn;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c
131
conn = init->outp->connector;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c
132
conn = nvbios_connEp(bios, conn, &ver, &hdr, &connE);
drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c
133
if (conn)
drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c
101
return g92_sor_map[conn];
drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c
103
return g94_sor_map[conn];
drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c
105
return g98_sor_map[conn];
drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c
75
mxm_sor_map(struct nvkm_bios *bios, u8 conn)
drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c
85
if (conn < nvbios_rd08(bios, map + 3)) {
drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c
87
map += conn;
drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c
99
return g84_sor_map[conn];
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1066
if (outp->conn->info.type != DCB_CONNECTOR_eDP ||
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1261
struct nvkm_conn *conn;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1319
conn = r535_conn_new(disp, id);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1320
if (IS_ERR(conn))
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1321
return PTR_ERR(conn);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1332
dcbE.connector = conn->index;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1362
outp->conn = conn;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
645
struct nvkm_conn *conn;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
662
list_for_each_entry(conn, &disp->conns, head) {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
663
if (conn->index == ctrl->data[0].index) {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
665
return conn;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
673
ret = nvkm_conn_new(disp, index, &dcbE, &conn);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
677
list_add_tail(&conn->head, &disp->conns);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
678
return conn;
drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
100
u8 *conn;
drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
146
conn = bios->data;
drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
147
conn += nvbios_connEe(bios, (ctx.outp[0] & 0x0000f000) >> 12, &ver, &len);
drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
148
type = conn[0];
drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
172
conn[0] = type;
drivers/gpu/drm/sitronix/st7571.c
287
static int st7571_connector_get_modes(struct drm_connector *conn)
drivers/gpu/drm/sitronix/st7571.c
289
struct st7571_device *st7571 = drm_to_st7571(conn->dev);
drivers/gpu/drm/sitronix/st7571.c
291
return drm_connector_helper_get_modes_fixed(conn, &st7571->mode);
drivers/gpu/drm/tests/drm_atomic_commit_test.c
123
conn = &priv->connectors[i];
drivers/gpu/drm/tests/drm_atomic_commit_test.c
125
ret = drmm_connector_init(drm, conn, &dummy_connector_funcs,
drivers/gpu/drm/tests/drm_atomic_commit_test.c
129
drm_connector_helper_add(conn, &dummy_connector_helper_funcs);
drivers/gpu/drm/tests/drm_atomic_commit_test.c
133
drm_connector_attach_encoder(conn, &priv->encoders[i]);
drivers/gpu/drm/tests/drm_atomic_commit_test.c
74
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1010
old_conn_state = drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1013
new_conn_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1042
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1056
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1057
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1064
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1077
new_conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1080
old_conn_state = drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1090
old_conn_state = drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1093
new_conn_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1119
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1135
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1136
info = &conn->display_info;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1139
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1146
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1156
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1176
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1190
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1191
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1199
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1209
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1231
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1245
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1246
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1254
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1264
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1286
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1300
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1301
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1309
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1319
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1345
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1357
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1359
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1366
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1377
conn->hdmi.funcs = &reject_connector_hdmi_funcs;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1413
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1427
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1428
info = &conn->display_info;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1432
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1446
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1456
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1487
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1502
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1503
info = &conn->display_info;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1506
KUNIT_ASSERT_TRUE(test, conn->ycbcr_420_allowed);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1521
ret = drm_kunit_helper_enable_crtc_connector(test, drm, crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1530
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1562
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1578
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1579
info = &conn->display_info;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1583
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1600
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1610
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1641
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1656
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1657
info = &conn->display_info;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1660
KUNIT_ASSERT_TRUE(test, conn->ycbcr_420_allowed);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1662
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1679
ret = drm_kunit_helper_enable_crtc_connector(test, drm, crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1688
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1712
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1726
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1727
info = &conn->display_info;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1729
KUNIT_ASSERT_FALSE(test, conn->ycbcr_420_allowed);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1731
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1742
ret = drm_kunit_helper_enable_crtc_connector(test, drm, crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1751
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1797
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1812
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1813
info = &conn->display_info;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1836
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1846
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1868
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1882
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1883
info = &conn->display_info;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1887
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1909
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1919
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1941
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1957
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1958
info = &conn->display_info;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1962
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1984
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
1994
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2017
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2031
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2032
info = &conn->display_info;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2036
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2050
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
206
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2060
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2083
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2099
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2100
info = &conn->display_info;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2104
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2118
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2128
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2147
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2159
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2160
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2168
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2188
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2255
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2262
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2263
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2277
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2284
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2285
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2301
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2308
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2309
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2325
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2332
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2333
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2347
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2356
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2357
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2369
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2378
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2379
conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2406
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
241
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2414
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2415
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
242
conn->ycbcr_420_allowed = !!(formats & BIT(DRM_OUTPUT_COLOR_FORMAT_YCBCR420));
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
244
ret = drmm_connector_hdmi_init(drm, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2460
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2472
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2475
ret = set_connector_edid(test, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2480
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2492
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2502
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2503
KUNIT_ASSERT_EQ(test, conn->display_info.max_tmds_clock, 100 * 1000);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2505
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2536
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
254
drm_connector_helper_add(conn, &dummy_connector_helper_funcs);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
255
drm_connector_attach_encoder(conn, enc);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2551
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2553
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2560
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2639
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2654
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2656
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2663
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2743
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2758
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2760
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2767
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2783
new_conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2802
for (int i = 0; i < conn->base.properties->count; i++)
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2805
conn->base.properties->properties[i]);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2831
new_conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2854
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2872
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2874
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2881
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2897
new_conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2954
new_conn_state = conn->state;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
297
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
2991
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
3007
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
3009
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
3016
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
3076
ret = drm_atomic_helper_connector_hdmi_update_audio_infoframe(conn, &cea);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
309
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
311
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
318
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
331
new_conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
334
old_conn_state = drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
346
new_conn_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
372
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
384
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
386
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
393
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
406
new_conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
409
old_conn_state = drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
417
old_conn_state = drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
420
new_conn_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
447
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
459
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
460
KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
462
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
470
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
483
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
493
conn_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
514
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
525
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
526
KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
537
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
550
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
560
conn_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
581
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
593
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
594
KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
596
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
604
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
617
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
625
conn_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
650
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
661
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
662
KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
673
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
686
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
694
conn_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
719
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
731
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
732
KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
734
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
742
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
755
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
763
conn_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
788
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
799
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
800
KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
811
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
824
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
832
conn_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
858
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
875
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
876
KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
884
ret = drm_kunit_helper_enable_crtc_connector(test, drm, crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
897
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
917
conn_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
960
struct drm_connector *conn;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
974
conn = &priv->connector;
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
975
preferred = find_preferred_mode(conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
982
crtc, conn,
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
995
new_conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
998
old_conn_state = drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/tiny/gm12u320.c
551
drm_connector_helper_add(&gm12u320->conn, &gm12u320_conn_helper_funcs);
drivers/gpu/drm/tiny/gm12u320.c
552
return drm_connector_init(&gm12u320->dev, &gm12u320->conn,
drivers/gpu/drm/tiny/gm12u320.c
686
&gm12u320->conn);
drivers/gpu/drm/tiny/gm12u320.c
91
struct drm_connector conn;
drivers/gpu/drm/vc4/tests/vc4_mock_output.c
100
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/vc4/tests/vc4_mock_output.c
142
struct drm_connector *conn;
drivers/gpu/drm/vc4/tests/vc4_mock_output.c
166
conn = &output->connector;
drivers/gpu/drm/vc4/tests/vc4_mock_output.c
167
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/vc4/tests/vc4_mock_output.c
31
struct drm_connector *conn;
drivers/gpu/drm/vc4/tests/vc4_mock_output.c
47
conn = &dummy_output->connector;
drivers/gpu/drm/vc4/tests/vc4_mock_output.c
48
ret = drmm_connector_init(drm, conn,
drivers/gpu/drm/vc4/tests/vc4_mock_output.c
54
drm_connector_helper_add(conn, &vc4_dummy_connector_helper_funcs);
drivers/gpu/drm/vc4/tests/vc4_mock_output.c
55
drm_connector_attach_encoder(conn, enc);
drivers/gpu/drm/vc4/tests/vc4_mock_output.c
85
struct drm_connector *conn;
drivers/gpu/drm/vc4/tests/vc4_mock_output.c
99
conn = &output->connector;
drivers/gpu/drm/vc4/vc4_crtc.c
717
struct drm_connector *conn;
drivers/gpu/drm/vc4/vc4_crtc.c
730
for_each_new_connector_in_state(state->state, conn, conn_state, i) {
drivers/gpu/drm/vc4/vc4_crtc.c
748
struct drm_connector *conn;
drivers/gpu/drm/vc4/vc4_crtc.c
770
for_each_new_connector_in_state(state, conn, conn_state,
drivers/gpu/drm/vc4/vc4_txp.c
247
static int vc4_txp_connector_atomic_check(struct drm_connector *conn,
drivers/gpu/drm/vc4/vc4_txp.c
255
conn_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/vc4/vc4_txp.c
286
static void vc4_txp_connector_atomic_commit(struct drm_connector *conn,
drivers/gpu/drm/vc4/vc4_txp.c
289
struct drm_device *drm = conn->dev;
drivers/gpu/drm/vc4/vc4_txp.c
291
conn);
drivers/gpu/drm/vc4/vc4_txp.c
292
struct vc4_txp *txp = connector_to_vc4_txp(conn);
drivers/gpu/drm/verisilicon/vs_bridge.c
361
bridge->conn = drm_bridge_connector_init(drm_dev, bridge->enc);
drivers/gpu/drm/verisilicon/vs_bridge.c
362
if (IS_ERR(bridge->conn)) {
drivers/gpu/drm/verisilicon/vs_bridge.c
365
ret = PTR_ERR(bridge->conn);
drivers/gpu/drm/verisilicon/vs_bridge.h
25
struct drm_connector *conn;
drivers/gpu/drm/virtio/virtgpu_display.c
278
struct drm_connector *connector = &output->conn;
drivers/gpu/drm/virtio/virtgpu_display.c
51
container_of(x, struct virtio_gpu_output, conn)
drivers/gpu/drm/virtio/virtgpu_drv.h
180
struct drm_connector conn;
drivers/gpu/drm/virtio/virtgpu_vq.c
919
new_edid = drm_edid_read_custom(&output->conn, virtio_get_edid_block, resp);
drivers/gpu/drm/virtio/virtgpu_vq.c
920
drm_edid_connector_update(&output->conn, new_edid);
drivers/gpu/drm/vkms/vkms_writeback.c
125
static void vkms_wb_atomic_commit(struct drm_connector *conn,
drivers/gpu/drm/vkms/vkms_writeback.c
129
conn);
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
881
static int vmw_stdu_connector_atomic_check(struct drm_connector *conn,
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
888
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
893
du = vmw_connector_to_stdu(conn);
drivers/gpu/drm/xen/xen_drm_front.h
105
struct drm_connector conn;
drivers/gpu/drm/xen/xen_drm_front_conn.c
25
return container_of(connector, struct xen_drm_front_drm_pipeline, conn);
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
210
int ret, conn;
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
222
for (conn = 0; conn < cfg->num_connectors; conn++) {
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
223
ret = evtchnl_alloc(front_info, conn,
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
224
&front_info->evt_pairs[conn].req,
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
231
ret = evtchnl_alloc(front_info, conn,
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
232
&front_info->evt_pairs[conn].evt,
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
276
int ret, conn;
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
288
for (conn = 0; conn < plat_data->num_connectors; conn++) {
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
289
ret = evtchnl_publish(xbt, &front_info->evt_pairs[conn].req,
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
290
plat_data->connectors[conn].xenstore_path,
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
296
ret = evtchnl_publish(xbt, &front_info->evt_pairs[conn].evt,
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
297
plat_data->connectors[conn].xenstore_path,
drivers/gpu/drm/xen/xen_drm_front_kms.c
328
ret = xen_drm_front_conn_init(drm_info, &pipeline->conn);
drivers/gpu/drm/xen/xen_drm_front_kms.c
337
&pipeline->conn);
drivers/hwtracing/coresight/coresight-core.c
1275
struct coresight_connection *conn;
drivers/hwtracing/coresight/coresight-core.c
1286
conn = src_csdev->pdata->out_conns[i];
drivers/hwtracing/coresight/coresight-core.c
1289
if (conn->filter_src_fwnode && !conn->filter_src_dev) {
drivers/hwtracing/coresight/coresight-core.c
1291
(conn->filter_src_fwnode == dst_csdev->dev.fwnode) &&
drivers/hwtracing/coresight/coresight-core.c
1293
conn->filter_src_dev = dst_csdev;
drivers/hwtracing/coresight/coresight-core.c
1299
if (conn->dest_dev)
drivers/hwtracing/coresight/coresight-core.c
1309
conn->dest_fwnode);
drivers/hwtracing/coresight/coresight-core.c
1312
if (dst_csdev && conn->dest_fwnode == dst_csdev->dev.fwnode) {
drivers/hwtracing/coresight/coresight-core.c
1313
ret = coresight_make_links(src_csdev, conn, dst_csdev);
drivers/hwtracing/coresight/coresight-core.c
1321
conn->dest_dev = dst_csdev;
drivers/hwtracing/coresight/coresight-core.c
1322
conn->src_dev = src_csdev;
drivers/hwtracing/coresight/coresight-core.c
1324
ret = coresight_add_in_conn(conn);
drivers/hwtracing/coresight/coresight-core.c
1364
struct coresight_connection *conn;
drivers/hwtracing/coresight/coresight-core.c
1371
conn = csdev->pdata->out_conns[i];
drivers/hwtracing/coresight/coresight-core.c
1372
if (conn->filter_src_fwnode) {
drivers/hwtracing/coresight/coresight-core.c
1373
conn->filter_src_dev = NULL;
drivers/hwtracing/coresight/coresight-core.c
1374
fwnode_handle_put(conn->filter_src_fwnode);
drivers/hwtracing/coresight/coresight-core.c
1377
if (!conn->dest_dev)
drivers/hwtracing/coresight/coresight-core.c
1381
coresight_remove_links(csdev, conn);
drivers/hwtracing/coresight/coresight-core.c
1387
for (j = 0; j < conn->dest_dev->pdata->nr_inconns; ++j)
drivers/hwtracing/coresight/coresight-core.c
1388
if (conn->dest_dev->pdata->in_conns[j] == conn) {
drivers/hwtracing/coresight/coresight-core.c
1389
conn->dest_dev->pdata->in_conns[j] = NULL;
drivers/hwtracing/coresight/coresight-core.c
1400
conn = csdev->pdata->in_conns[i];
drivers/hwtracing/coresight/coresight-core.c
1402
if (!conn)
drivers/hwtracing/coresight/coresight-core.c
1405
conn->src_dev->orphan = true;
drivers/hwtracing/coresight/coresight-core.c
1406
coresight_remove_links(conn->src_dev, conn);
drivers/hwtracing/coresight/coresight-core.c
1407
conn->dest_dev = NULL;
drivers/hwtracing/coresight/coresight-core.c
1753
struct coresight_connection *conn;
drivers/hwtracing/coresight/coresight-core.c
1756
conn = pdata->in_conns[i];
drivers/hwtracing/coresight/coresight-core.c
1757
if (conn &&
drivers/hwtracing/coresight/coresight-core.c
1758
coresight_compare_type(type, subtype, conn->src_dev->type,
drivers/hwtracing/coresight/coresight-core.c
1759
conn->src_dev->subtype))
drivers/hwtracing/coresight/coresight-core.c
1760
return conn->src_dev;
drivers/hwtracing/coresight/coresight-core.c
1772
struct coresight_connection *conn;
drivers/hwtracing/coresight/coresight-core.c
1775
conn = pdata->out_conns[i];
drivers/hwtracing/coresight/coresight-core.c
1776
if (conn->dest_dev &&
drivers/hwtracing/coresight/coresight-core.c
1777
coresight_compare_type(type, subtype, conn->dest_dev->type,
drivers/hwtracing/coresight/coresight-core.c
1778
conn->dest_dev->subtype))
drivers/hwtracing/coresight/coresight-core.c
1779
return conn->dest_dev;
drivers/hwtracing/coresight/coresight-core.c
207
struct coresight_connection *conn)
drivers/hwtracing/coresight/coresight-core.c
209
return conn->filter_src_fwnode && (conn->filter_src_dev != src);
drivers/hwtracing/coresight/coresight-core.c
218
struct coresight_connection *conn;
drivers/hwtracing/coresight/coresight-core.c
221
conn = csdev->pdata->out_conns[i];
drivers/hwtracing/coresight/coresight-core.c
222
if (coresight_blocks_source(trace_src, conn))
drivers/hwtracing/coresight/coresight-core.c
224
if (conn->dest_dev == out_dev)
drivers/hwtracing/coresight/coresight-core.c
225
return conn;
drivers/hwtracing/coresight/coresight-core.c
375
struct coresight_connection conn = {};
drivers/hwtracing/coresight/coresight-core.c
379
conn.dest_fwnode = fwnode_handle_get(dev_fwnode(&helper->dev));
drivers/hwtracing/coresight/coresight-core.c
380
conn.dest_dev = helper;
drivers/hwtracing/coresight/coresight-core.c
381
conn.dest_port = conn.src_port = -1;
drivers/hwtracing/coresight/coresight-core.c
382
conn.src_dev = csdev;
drivers/hwtracing/coresight/coresight-core.c
390
if (csdev->pdata->out_conns[i]->dest_fwnode == conn.dest_fwnode)
drivers/hwtracing/coresight/coresight-core.c
394
&conn);
drivers/hwtracing/coresight/coresight-kunit-tests.c
32
struct coresight_connection conn = {};
drivers/hwtracing/coresight/coresight-kunit-tests.c
46
conn.src_dev = src;
drivers/hwtracing/coresight/coresight-kunit-tests.c
47
conn.dest_dev = etf;
drivers/hwtracing/coresight/coresight-kunit-tests.c
48
coresight_add_out_conn(dev, src->pdata, &conn);
drivers/hwtracing/coresight/coresight-kunit-tests.c
50
conn.src_dev = etf;
drivers/hwtracing/coresight/coresight-kunit-tests.c
51
conn.dest_dev = etr;
drivers/hwtracing/coresight/coresight-kunit-tests.c
52
coresight_add_out_conn(dev, etf->pdata, &conn);
drivers/hwtracing/coresight/coresight-kunit-tests.c
54
conn.src_dev = etr;
drivers/hwtracing/coresight/coresight-kunit-tests.c
55
conn.dest_dev = catu;
drivers/hwtracing/coresight/coresight-kunit-tests.c
56
coresight_add_out_conn(dev, etr->pdata, &conn);
drivers/hwtracing/coresight/coresight-platform.c
206
struct coresight_connection conn = {};
drivers/hwtracing/coresight/coresight-platform.c
236
conn.src_port = endpoint.port;
drivers/hwtracing/coresight/coresight-platform.c
245
conn.dest_fwnode = fwnode_handle_get(rdev_fwnode);
drivers/hwtracing/coresight/coresight-platform.c
246
conn.dest_port = rendpoint.port;
drivers/hwtracing/coresight/coresight-platform.c
253
conn.filter_src_fwnode =
drivers/hwtracing/coresight/coresight-platform.c
255
if (IS_ERR(conn.filter_src_fwnode)) {
drivers/hwtracing/coresight/coresight-platform.c
256
conn.filter_src_fwnode = NULL;
drivers/hwtracing/coresight/coresight-platform.c
258
conn.filter_src_dev =
drivers/hwtracing/coresight/coresight-platform.c
259
coresight_find_csdev_by_fwnode(conn.filter_src_fwnode);
drivers/hwtracing/coresight/coresight-platform.c
260
if (conn.filter_src_dev &&
drivers/hwtracing/coresight/coresight-platform.c
261
!coresight_is_device_source(conn.filter_src_dev)) {
drivers/hwtracing/coresight/coresight-platform.c
263
conn.src_port, dev_name(&conn.filter_src_dev->dev));
drivers/hwtracing/coresight/coresight-platform.c
264
conn.filter_src_dev = NULL;
drivers/hwtracing/coresight/coresight-platform.c
265
conn.filter_src_fwnode = NULL;
drivers/hwtracing/coresight/coresight-platform.c
269
new_conn = coresight_add_out_conn(dev, pdata, &conn);
drivers/hwtracing/coresight/coresight-platform.c
271
fwnode_handle_put(conn.dest_fwnode);
drivers/hwtracing/coresight/coresight-platform.c
32
struct coresight_connection *conn;
drivers/hwtracing/coresight/coresight-platform.c
38
conn = pdata->out_conns[i];
drivers/hwtracing/coresight/coresight-platform.c
40
if (conn->src_port != -1 &&
drivers/hwtracing/coresight/coresight-platform.c
41
conn->src_port == new_conn->src_port) {
drivers/hwtracing/coresight/coresight-platform.c
43
conn->src_port);
drivers/hwtracing/coresight/coresight-platform.c
54
conn = devm_kmalloc(dev, sizeof(struct coresight_connection),
drivers/hwtracing/coresight/coresight-platform.c
56
if (!conn)
drivers/hwtracing/coresight/coresight-platform.c
625
struct coresight_connection *conn)
drivers/hwtracing/coresight/coresight-platform.c
64
*conn = *new_conn;
drivers/hwtracing/coresight/coresight-platform.c
65
pdata->out_conns[pdata->nr_outconns] = conn;
drivers/hwtracing/coresight/coresight-platform.c
650
conn->src_port = fields[0].integer.value;
drivers/hwtracing/coresight/coresight-platform.c
651
conn->dest_port = fields[1].integer.value;
drivers/hwtracing/coresight/coresight-platform.c
663
conn->dest_fwnode = fwnode_handle_get(&r_adev->fwnode);
drivers/hwtracing/coresight/coresight-platform.c
67
return conn;
drivers/hwtracing/coresight/coresight-platform.c
670
conn->dest_port = fields[0].integer.value;
drivers/hwtracing/coresight/coresight-platform.c
691
struct coresight_connection conn, zero_conn = {};
drivers/hwtracing/coresight/coresight-platform.c
711
conn = zero_conn;
drivers/hwtracing/coresight/coresight-platform.c
712
dir = acpi_coresight_parse_link(adev, link, &conn);
drivers/hwtracing/coresight/coresight-platform.c
719
new_conn = coresight_add_out_conn(dev, pdata, &conn);
drivers/hwtracing/coresight/coresight-priv.h
151
struct coresight_connection *conn,
drivers/hwtracing/coresight/coresight-priv.h
154
struct coresight_connection *conn);
drivers/hwtracing/coresight/coresight-sysfs.c
567
struct coresight_connection *conn,
drivers/hwtracing/coresight/coresight-sysfs.c
575
if (conn->dest_port == -1 && conn->src_port == -1)
drivers/hwtracing/coresight/coresight-sysfs.c
580
"out:%d", conn->src_port);
drivers/hwtracing/coresight/coresight-sysfs.c
584
"in:%d", conn->dest_port);
drivers/hwtracing/coresight/coresight-sysfs.c
602
conn->link = link;
drivers/hwtracing/coresight/coresight-sysfs.c
615
struct coresight_connection *conn)
drivers/hwtracing/coresight/coresight-sysfs.c
617
if (!orig || !conn->link)
drivers/hwtracing/coresight/coresight-sysfs.c
620
coresight_remove_sysfs_link(conn->link);
drivers/hwtracing/coresight/coresight-sysfs.c
622
devm_kfree(&conn->dest_dev->dev, conn->link->target_name);
drivers/hwtracing/coresight/coresight-sysfs.c
623
devm_kfree(&orig->dev, conn->link->orig_name);
drivers/hwtracing/coresight/coresight-sysfs.c
624
devm_kfree(&orig->dev, conn->link);
drivers/hwtracing/coresight/coresight-sysfs.c
625
conn->link = NULL;
drivers/infiniband/core/cma.c
123
*data_len = ev->param.conn.private_data_len;
drivers/infiniband/core/cma.c
124
p = ev->param.conn.private_data;
drivers/infiniband/core/cma.c
2160
event->param.conn.private_data = private_data;
drivers/infiniband/core/cma.c
2161
event->param.conn.private_data_len = IB_CM_REP_PRIVATE_DATA_SIZE;
drivers/infiniband/core/cma.c
2162
event->param.conn.responder_resources = rep_data->responder_resources;
drivers/infiniband/core/cma.c
2163
event->param.conn.initiator_depth = rep_data->initiator_depth;
drivers/infiniband/core/cma.c
2164
event->param.conn.flow_control = rep_data->flow_control;
drivers/infiniband/core/cma.c
2165
event->param.conn.rnr_retry_count = rep_data->rnr_retry_count;
drivers/infiniband/core/cma.c
2166
event->param.conn.srq = rep_data->srq;
drivers/infiniband/core/cma.c
2167
event->param.conn.qp_num = rep_data->remote_qpn;
drivers/infiniband/core/cma.c
2250
event.param.conn.private_data = ib_event->private_data;
drivers/infiniband/core/cma.c
2251
event.param.conn.private_data_len = IB_CM_REJ_PRIVATE_DATA_SIZE;
drivers/infiniband/core/cma.c
2383
event->param.conn.private_data = private_data + offset;
drivers/infiniband/core/cma.c
2384
event->param.conn.private_data_len = IB_CM_REQ_PRIVATE_DATA_SIZE - offset;
drivers/infiniband/core/cma.c
2385
event->param.conn.responder_resources = req_data->responder_resources;
drivers/infiniband/core/cma.c
2386
event->param.conn.initiator_depth = req_data->initiator_depth;
drivers/infiniband/core/cma.c
2387
event->param.conn.flow_control = req_data->flow_control;
drivers/infiniband/core/cma.c
2388
event->param.conn.retry_count = req_data->retry_count;
drivers/infiniband/core/cma.c
2389
event->param.conn.rnr_retry_count = req_data->rnr_retry_count;
drivers/infiniband/core/cma.c
2390
event->param.conn.srq = req_data->srq;
drivers/infiniband/core/cma.c
2391
event->param.conn.qp_num = req_data->remote_qpn;
drivers/infiniband/core/cma.c
2546
event.param.conn.initiator_depth = iw_event->ird;
drivers/infiniband/core/cma.c
2547
event.param.conn.responder_resources = iw_event->ord;
drivers/infiniband/core/cma.c
2563
event.param.conn.initiator_depth = iw_event->ird;
drivers/infiniband/core/cma.c
2564
event.param.conn.responder_resources = iw_event->ord;
drivers/infiniband/core/cma.c
2571
event.param.conn.private_data = iw_event->private_data;
drivers/infiniband/core/cma.c
2572
event.param.conn.private_data_len = iw_event->private_data_len;
drivers/infiniband/core/cma.c
2596
event.param.conn.private_data = iw_event->private_data;
drivers/infiniband/core/cma.c
2597
event.param.conn.private_data_len = iw_event->private_data_len;
drivers/infiniband/core/cma.c
2598
event.param.conn.initiator_depth = iw_event->ird;
drivers/infiniband/core/cma.c
2599
event.param.conn.responder_resources = iw_event->ord;
drivers/infiniband/core/ucma.c
293
ucma_copy_conn_event(&uevent->resp.param.conn,
drivers/infiniband/core/ucma.c
294
&event->param.conn);
drivers/infiniband/ulp/iser/iscsi_iser.c
138
void iscsi_iser_recv(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
drivers/infiniband/ulp/iser/iscsi_iser.c
157
rc = iscsi_complete_pdu(conn, hdr, rx_data, rx_data_len);
drivers/infiniband/ulp/iser/iscsi_iser.c
163
iscsi_conn_failure(conn, rc);
drivers/infiniband/ulp/iser/iscsi_iser.c
198
struct iser_conn *iser_conn = task->conn->dd_data;
drivers/infiniband/ulp/iser/iscsi_iser.c
267
static int iscsi_iser_mtask_xmit(struct iscsi_conn *conn,
drivers/infiniband/ulp/iser/iscsi_iser.c
270
iser_dbg("mtask xmit [cid %d itt 0x%x]\n", conn->id, task->itt);
drivers/infiniband/ulp/iser/iscsi_iser.c
278
return iser_send_control(conn, task);
drivers/infiniband/ulp/iser/iscsi_iser.c
281
static int iscsi_iser_task_xmit_unsol_data(struct iscsi_conn *conn,
drivers/infiniband/ulp/iser/iscsi_iser.c
296
error = iser_send_data_out(conn, task, &hdr);
drivers/infiniband/ulp/iser/iscsi_iser.c
318
struct iscsi_conn *conn = task->conn;
drivers/infiniband/ulp/iser/iscsi_iser.c
323
return iscsi_iser_mtask_xmit(conn, task);
drivers/infiniband/ulp/iser/iscsi_iser.c
334
conn->id, task->itt);
drivers/infiniband/ulp/iser/iscsi_iser.c
338
error = iser_send_command(conn, task);
drivers/infiniband/ulp/iser/iscsi_iser.c
346
error = iscsi_iser_task_xmit_unsol_data(conn, task);
drivers/infiniband/ulp/iser/iscsi_iser.c
364
struct iser_conn *iser_conn = task->conn->dd_data;
drivers/infiniband/ulp/iser/iscsi_iser.c
420
struct iscsi_conn *conn;
drivers/infiniband/ulp/iser/iscsi_iser.c
426
conn = cls_conn->dd_data;
drivers/infiniband/ulp/iser/iscsi_iser.c
432
conn->max_recv_dlength = ISER_RECV_DATA_SEG_LEN;
drivers/infiniband/ulp/iser/iscsi_iser.c
452
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/infiniband/ulp/iser/iscsi_iser.c
479
error = iser_alloc_rx_descriptors(iser_conn, conn->session);
drivers/infiniband/ulp/iser/iscsi_iser.c
486
iser_info("binding iscsi conn %p to iser_conn %p\n", conn, iser_conn);
drivers/infiniband/ulp/iser/iscsi_iser.c
488
conn->dd_data = iser_conn;
drivers/infiniband/ulp/iser/iscsi_iser.c
489
iser_conn->iscsi_conn = conn;
drivers/infiniband/ulp/iser/iscsi_iser.c
529
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/infiniband/ulp/iser/iscsi_iser.c
530
struct iser_conn *iser_conn = conn->dd_data;
drivers/infiniband/ulp/iser/iscsi_iser.c
532
iser_info("stopping iscsi_conn: %p, iser_conn: %p\n", conn, iser_conn);
drivers/infiniband/ulp/iser/iscsi_iser.c
546
conn->dd_data = NULL;
drivers/infiniband/ulp/iser/iscsi_iser.c
744
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/infiniband/ulp/iser/iscsi_iser.c
746
stats->txdata_octets = conn->txdata_octets;
drivers/infiniband/ulp/iser/iscsi_iser.c
747
stats->rxdata_octets = conn->rxdata_octets;
drivers/infiniband/ulp/iser/iscsi_iser.c
748
stats->scsicmd_pdus = conn->scsicmd_pdus_cnt;
drivers/infiniband/ulp/iser/iscsi_iser.c
749
stats->dataout_pdus = conn->dataout_pdus_cnt;
drivers/infiniband/ulp/iser/iscsi_iser.c
750
stats->scsirsp_pdus = conn->scsirsp_pdus_cnt;
drivers/infiniband/ulp/iser/iscsi_iser.c
751
stats->datain_pdus = conn->datain_pdus_cnt; /* always 0 */
drivers/infiniband/ulp/iser/iscsi_iser.c
752
stats->r2t_pdus = conn->r2t_pdus_cnt; /* always 0 */
drivers/infiniband/ulp/iser/iscsi_iser.c
753
stats->tmfcmd_pdus = conn->tmfcmd_pdus_cnt;
drivers/infiniband/ulp/iser/iscsi_iser.c
754
stats->tmfrsp_pdus = conn->tmfrsp_pdus_cnt;
drivers/infiniband/ulp/iser/iscsi_iser.h
473
int iser_send_control(struct iscsi_conn *conn,
drivers/infiniband/ulp/iser/iscsi_iser.h
476
int iser_send_command(struct iscsi_conn *conn,
drivers/infiniband/ulp/iser/iscsi_iser.h
479
int iser_send_data_out(struct iscsi_conn *conn,
drivers/infiniband/ulp/iser/iscsi_iser.h
483
void iscsi_iser_recv(struct iscsi_conn *conn,
drivers/infiniband/ulp/iser/iser_initiator.c
302
static int iser_post_rx_bufs(struct iscsi_conn *conn, struct iscsi_hdr *req)
drivers/infiniband/ulp/iser/iser_initiator.c
304
struct iser_conn *iser_conn = conn->dd_data;
drivers/infiniband/ulp/iser/iser_initiator.c
305
struct iscsi_session *session = conn->session;
drivers/infiniband/ulp/iser/iser_initiator.c
341
int iser_send_command(struct iscsi_conn *conn, struct iscsi_task *task)
drivers/infiniband/ulp/iser/iser_initiator.c
343
struct iser_conn *iser_conn = conn->dd_data;
drivers/infiniband/ulp/iser/iser_initiator.c
401
iser_err("conn %p failed task->itt %d err %d\n",conn, task->itt, err);
drivers/infiniband/ulp/iser/iser_initiator.c
411
int iser_send_data_out(struct iscsi_conn *conn, struct iscsi_task *task,
drivers/infiniband/ulp/iser/iser_initiator.c
414
struct iser_conn *iser_conn = conn->dd_data;
drivers/infiniband/ulp/iser/iser_initiator.c
468
iser_err("conn %p failed err %d\n", conn, err);
drivers/infiniband/ulp/iser/iser_initiator.c
472
int iser_send_control(struct iscsi_conn *conn, struct iscsi_task *task)
drivers/infiniband/ulp/iser/iser_initiator.c
474
struct iser_conn *iser_conn = conn->dd_data;
drivers/infiniband/ulp/iser/iser_initiator.c
493
if (task != conn->login_task) {
drivers/infiniband/ulp/iser/iser_initiator.c
512
if (task == conn->login_task) {
drivers/infiniband/ulp/iser/iser_initiator.c
518
err = iser_post_rx_bufs(conn, task->hdr);
drivers/infiniband/ulp/iser/iser_initiator.c
528
iser_err("conn %p failed err %d\n",conn, err);
drivers/infiniband/ulp/iser/iser_verbs.c
692
iser_connected_handler(cma_id, event->param.conn.private_data);
drivers/infiniband/ulp/isert/ib_isert.c
1019
queue_delayed_work(isert_login_wq, &conn->login_work, 0);
drivers/infiniband/ulp/isert/ib_isert.c
1023
*isert_allocate_cmd(struct iscsit_conn *conn, struct iser_rx_desc *rx_desc)
drivers/infiniband/ulp/isert/ib_isert.c
1025
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1029
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
drivers/infiniband/ulp/isert/ib_isert.c
1035
isert_cmd->conn = isert_conn;
drivers/infiniband/ulp/isert/ib_isert.c
1047
struct iscsit_conn *conn = isert_conn->conn;
drivers/infiniband/ulp/isert/ib_isert.c
1053
rc = iscsit_setup_scsi_cmd(conn, cmd, buf);
drivers/infiniband/ulp/isert/ib_isert.c
1064
rc = iscsit_process_scsi_cmd(conn, cmd, hdr);
drivers/infiniband/ulp/isert/ib_isert.c
1101
rc = iscsit_sequence_cmd(conn, cmd, buf, hdr->cmdsn);
drivers/infiniband/ulp/isert/ib_isert.c
1116
struct iscsit_conn *conn = isert_conn->conn;
drivers/infiniband/ulp/isert/ib_isert.c
1122
rc = iscsit_check_dataout_hdr(conn, buf, &cmd);
drivers/infiniband/ulp/isert/ib_isert.c
1176
struct iscsit_conn *conn = isert_conn->conn;
drivers/infiniband/ulp/isert/ib_isert.c
1180
rc = iscsit_setup_nop_out(conn, cmd, hdr);
drivers/infiniband/ulp/isert/ib_isert.c
1187
return iscsit_process_nop_out(conn, cmd, hdr);
drivers/infiniband/ulp/isert/ib_isert.c
1195
struct iscsit_conn *conn = isert_conn->conn;
drivers/infiniband/ulp/isert/ib_isert.c
1200
rc = iscsit_setup_text_cmd(conn, cmd, hdr);
drivers/infiniband/ulp/isert/ib_isert.c
1213
return iscsit_process_text_cmd(conn, cmd, hdr);
drivers/infiniband/ulp/isert/ib_isert.c
1222
struct iscsit_conn *conn = isert_conn->conn;
drivers/infiniband/ulp/isert/ib_isert.c
1228
if (conn->sess->sess_ops->SessionType &&
drivers/infiniband/ulp/isert/ib_isert.c
1237
cmd = isert_allocate_cmd(conn, rx_desc);
drivers/infiniband/ulp/isert/ib_isert.c
1252
cmd = isert_allocate_cmd(conn, rx_desc);
drivers/infiniband/ulp/isert/ib_isert.c
1265
cmd = isert_allocate_cmd(conn, rx_desc);
drivers/infiniband/ulp/isert/ib_isert.c
1269
ret = iscsit_handle_task_mgt_cmd(conn, cmd,
drivers/infiniband/ulp/isert/ib_isert.c
1273
cmd = isert_allocate_cmd(conn, rx_desc);
drivers/infiniband/ulp/isert/ib_isert.c
1277
ret = iscsit_handle_logout_cmd(conn, cmd, (unsigned char *)hdr);
drivers/infiniband/ulp/isert/ib_isert.c
1281
cmd = iscsit_find_cmd_from_itt(conn, hdr->itt);
drivers/infiniband/ulp/isert/ib_isert.c
1283
cmd = isert_allocate_cmd(conn, rx_desc);
drivers/infiniband/ulp/isert/ib_isert.c
1327
iscsit_cause_connection_reinstatement(isert_conn->conn, 0);
drivers/infiniband/ulp/isert/ib_isert.c
1394
if (isert_conn->conn) {
drivers/infiniband/ulp/isert/ib_isert.c
1395
struct iscsi_login *login = isert_conn->conn->conn_login;
drivers/infiniband/ulp/isert/ib_isert.c
1410
isert_rdma_rw_ctx_destroy(struct isert_cmd *cmd, struct isert_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
1418
if (isert_prot_cmd(conn, se_cmd)) {
drivers/infiniband/ulp/isert/ib_isert.c
1419
rdma_rw_ctx_destroy_signature(&cmd->rw, conn->qp,
drivers/infiniband/ulp/isert/ib_isert.c
1420
conn->cm_id->port_num, se_cmd->t_data_sg,
drivers/infiniband/ulp/isert/ib_isert.c
1424
rdma_rw_ctx_destroy(&cmd->rw, conn->qp, conn->cm_id->port_num,
drivers/infiniband/ulp/isert/ib_isert.c
1435
struct isert_conn *isert_conn = isert_cmd->conn;
drivers/infiniband/ulp/isert/ib_isert.c
1436
struct iscsit_conn *conn = isert_conn->conn;
drivers/infiniband/ulp/isert/ib_isert.c
1443
spin_lock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1446
spin_unlock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1468
spin_lock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1471
spin_unlock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1483
spin_lock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1486
spin_unlock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1589
iscsit_cause_connection_reinstatement(isert_conn->conn, 0);
drivers/infiniband/ulp/isert/ib_isert.c
1612
ret = isert_put_response(isert_conn->conn, isert_cmd->iscsit_cmd);
drivers/infiniband/ulp/isert/ib_isert.c
1632
iscsit_cause_connection_reinstatement(isert_conn->conn, 0);
drivers/infiniband/ulp/isert/ib_isert.c
1668
struct isert_conn *isert_conn = isert_cmd->conn;
drivers/infiniband/ulp/isert/ib_isert.c
1676
iscsit_tmr_post_handler(cmd, cmd->conn);
drivers/infiniband/ulp/isert/ib_isert.c
1685
iscsit_logout_post_handler(cmd, cmd->conn);
drivers/infiniband/ulp/isert/ib_isert.c
1704
iscsit_cause_connection_reinstatement(isert_conn->conn, 0);
drivers/infiniband/ulp/isert/ib_isert.c
1721
iscsit_cause_connection_reinstatement(isert_conn->conn, 0);
drivers/infiniband/ulp/isert/ib_isert.c
1763
isert_put_response(struct iscsit_conn *conn, struct iscsit_cmd *cmd)
drivers/infiniband/ulp/isert/ib_isert.c
1766
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1772
iscsit_build_rsp_pdu(cmd, conn, true, hdr);
drivers/infiniband/ulp/isert/ib_isert.c
1814
isert_aborted_task(struct iscsit_conn *conn, struct iscsit_cmd *cmd)
drivers/infiniband/ulp/isert/ib_isert.c
1817
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1819
spin_lock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1822
spin_unlock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1830
isert_get_sup_prot_ops(struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
1832
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1835
if (conn->tpg->tpg_attrib.t10_pi) {
drivers/infiniband/ulp/isert/ib_isert.c
1850
isert_put_nopin(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/infiniband/ulp/isert/ib_isert.c
1854
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1858
iscsit_build_nopin_rsp(cmd, conn, (struct iscsi_nopin *)
drivers/infiniband/ulp/isert/ib_isert.c
1870
isert_put_logout_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
1873
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1877
iscsit_build_logout_rsp(cmd, conn, (struct iscsi_logout_rsp *)
drivers/infiniband/ulp/isert/ib_isert.c
1888
isert_put_tm_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
1891
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1895
iscsit_build_task_mgt_rsp(cmd, conn, (struct iscsi_tm_rsp *)
drivers/infiniband/ulp/isert/ib_isert.c
1906
isert_put_reject(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
1909
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1918
iscsit_build_reject(cmd, conn, hdr);
drivers/infiniband/ulp/isert/ib_isert.c
1941
isert_put_text_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
1944
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1952
rc = iscsit_build_text_rsp(cmd, conn, hdr, ISCSI_INFINIBAND);
drivers/infiniband/ulp/isert/ib_isert.c
2040
isert_rdma_rw_ctx_post(struct isert_cmd *cmd, struct isert_conn *conn,
drivers/infiniband/ulp/isert/ib_isert.c
2045
u8 port_num = conn->cm_id->port_num;
drivers/infiniband/ulp/isert/ib_isert.c
2063
if (isert_prot_cmd(conn, se_cmd)) {
drivers/infiniband/ulp/isert/ib_isert.c
2071
ret = rdma_rw_ctx_signature_init(&cmd->rw, conn->qp, port_num,
drivers/infiniband/ulp/isert/ib_isert.c
2076
ret = rdma_rw_ctx_init(&cmd->rw, conn->qp, port_num,
drivers/infiniband/ulp/isert/ib_isert.c
2089
ret = rdma_rw_ctx_post(&cmd->rw, conn->qp, port_num, cqe, chain_wr);
drivers/infiniband/ulp/isert/ib_isert.c
2096
isert_put_datain(struct iscsit_conn *conn, struct iscsit_cmd *cmd)
drivers/infiniband/ulp/isert/ib_isert.c
2100
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
2117
iscsit_build_rsp_pdu(cmd, conn, true, (struct iscsi_scsi_rsp *)
drivers/infiniband/ulp/isert/ib_isert.c
2137
isert_get_dataout(struct iscsit_conn *conn, struct iscsit_cmd *cmd, bool recovery)
drivers/infiniband/ulp/isert/ib_isert.c
2146
ret = isert_rdma_rw_ctx_post(isert_cmd, conn->context,
drivers/infiniband/ulp/isert/ib_isert.c
2155
isert_immediate_queue(struct iscsit_conn *conn, struct iscsit_cmd *cmd, int state)
drivers/infiniband/ulp/isert/ib_isert.c
2162
spin_lock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
2164
spin_unlock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
2168
ret = isert_put_nopin(cmd, conn, false);
drivers/infiniband/ulp/isert/ib_isert.c
2180
isert_response_queue(struct iscsit_conn *conn, struct iscsit_cmd *cmd, int state)
drivers/infiniband/ulp/isert/ib_isert.c
2182
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
2187
ret = isert_put_logout_rsp(cmd, conn);
drivers/infiniband/ulp/isert/ib_isert.c
2192
ret = isert_put_nopin(cmd, conn, true);
drivers/infiniband/ulp/isert/ib_isert.c
2195
ret = isert_put_tm_rsp(cmd, conn);
drivers/infiniband/ulp/isert/ib_isert.c
2198
ret = isert_put_reject(cmd, conn);
drivers/infiniband/ulp/isert/ib_isert.c
2201
ret = isert_put_text_rsp(cmd, conn);
drivers/infiniband/ulp/isert/ib_isert.c
2208
ret = isert_put_response(conn, cmd);
drivers/infiniband/ulp/isert/ib_isert.c
2340
isert_get_login_rx(struct iscsit_conn *conn, struct iscsi_login *login)
drivers/infiniband/ulp/isert/ib_isert.c
2342
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
2365
isert_info("before login_comp conn: %p\n", conn);
drivers/infiniband/ulp/isert/ib_isert.c
2376
isert_set_conn_info(struct iscsi_np *np, struct iscsit_conn *conn,
drivers/infiniband/ulp/isert/ib_isert.c
2382
conn->login_family = np->np_sockaddr.ss_family;
drivers/infiniband/ulp/isert/ib_isert.c
2384
conn->login_sockaddr = cm_route->addr.dst_addr;
drivers/infiniband/ulp/isert/ib_isert.c
2385
conn->local_sockaddr = cm_route->addr.src_addr;
drivers/infiniband/ulp/isert/ib_isert.c
2389
isert_accept_np(struct iscsi_np *np, struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
2423
conn->context = isert_conn;
drivers/infiniband/ulp/isert/ib_isert.c
2424
isert_conn->conn = conn;
drivers/infiniband/ulp/isert/ib_isert.c
2427
isert_set_conn_info(np, conn, isert_conn);
drivers/infiniband/ulp/isert/ib_isert.c
2503
struct iscsit_conn *conn = isert_conn->conn;
drivers/infiniband/ulp/isert/ib_isert.c
2509
wait_for_completion_timeout(&conn->conn_logout_comp,
drivers/infiniband/ulp/isert/ib_isert.c
2515
isert_wait4cmds(struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
2517
isert_info("iscsit_conn %p\n", conn);
drivers/infiniband/ulp/isert/ib_isert.c
2519
if (conn->sess) {
drivers/infiniband/ulp/isert/ib_isert.c
2520
target_stop_cmd_counter(conn->cmd_cnt);
drivers/infiniband/ulp/isert/ib_isert.c
2521
target_wait_for_cmds(conn->cmd_cnt);
drivers/infiniband/ulp/isert/ib_isert.c
2535
isert_put_unsol_pending_cmds(struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
2540
spin_lock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
2541
list_for_each_entry_safe(cmd, tmp, &conn->conn_cmd_list, i_conn_node) {
drivers/infiniband/ulp/isert/ib_isert.c
2543
(cmd->write_data_done < conn->sess->sess_ops->FirstBurstLength) &&
drivers/infiniband/ulp/isert/ib_isert.c
2547
spin_unlock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
2554
isert_info("conn %p dropping cmd %p\n", conn, cmd);
drivers/infiniband/ulp/isert/ib_isert.c
2560
static void isert_wait_conn(struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
2562
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
2571
isert_put_unsol_pending_cmds(conn);
drivers/infiniband/ulp/isert/ib_isert.c
2572
isert_wait4cmds(conn);
drivers/infiniband/ulp/isert/ib_isert.c
2578
static void isert_free_conn(struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
2580
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
2586
static void isert_get_rx_pdu(struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
448
isert_set_nego_params(isert_conn, &event->param.conn);
drivers/infiniband/ulp/isert/ib_isert.c
50
isert_put_response(struct iscsit_conn *conn, struct iscsit_cmd *cmd);
drivers/infiniband/ulp/isert/ib_isert.c
640
iscsit_cause_connection_reinstatement(isert_conn->conn, 0);
drivers/infiniband/ulp/isert/ib_isert.c
76
isert_prot_cmd(struct isert_conn *conn, struct se_cmd *cmd)
drivers/infiniband/ulp/isert/ib_isert.c
78
return (conn->pi_support &&
drivers/infiniband/ulp/isert/ib_isert.c
912
isert_put_login_tx(struct iscsit_conn *conn, struct iscsi_login *login,
drivers/infiniband/ulp/isert/ib_isert.c
915
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
979
struct iscsit_conn *conn = isert_conn->conn;
drivers/infiniband/ulp/isert/ib_isert.c
980
struct iscsi_login *login = conn->conn_login;
drivers/infiniband/ulp/isert/ib_isert.h
148
struct isert_conn *conn;
drivers/infiniband/ulp/isert/ib_isert.h
176
struct iscsit_conn *conn;
drivers/infiniband/ulp/rtrs/rtrs-clt.c
1829
msg = ev->param.conn.private_data;
drivers/infiniband/ulp/rtrs/rtrs-clt.c
1830
len = ev->param.conn.private_data_len;
drivers/infiniband/ulp/rtrs/rtrs-srv.c
2039
return rtrs_rdma_connect(cm_id, ev->param.conn.private_data,
drivers/infiniband/ulp/rtrs/rtrs-srv.c
2040
ev->param.conn.private_data_len);
drivers/infiniband/ulp/srp/ib_srp.c
2604
opcode = *(u8 *) event->param.conn.private_data;
drivers/infiniband/ulp/srp/ib_srp.c
2608
event->param.conn.private_data;
drivers/infiniband/ulp/srp/ib_srp.c
2677
srp_cm_rep_handler(NULL, event->param.conn.private_data, ch);
drivers/infiniband/ulp/srpt/ib_srpt.c
2617
if (event->param.conn.private_data_len < sizeof(*req_rdma))
drivers/infiniband/ulp/srpt/ib_srpt.c
2621
req_rdma = event->param.conn.private_data;
drivers/infiniband/ulp/srpt/ib_srpt.c
2769
event->param.conn.private_data,
drivers/infiniband/ulp/srpt/ib_srpt.c
2770
event->param.conn.private_data_len);
drivers/media/cec/i2c/ch7322.c
403
const struct ch7322_conn_match *conn;
drivers/media/cec/i2c/ch7322.c
412
for (conn = system->driver_data; conn->dev_name; conn++) {
drivers/media/cec/i2c/ch7322.c
413
if (!strcmp(dev_name(&client->dev), conn->dev_name)) {
drivers/media/cec/i2c/ch7322.c
417
conn->pci_name);
drivers/media/cec/i2c/ch7322.c
424
*port = conn->port_name;
drivers/media/cec/platform/seco/seco-cec.c
500
const char *conn;
drivers/media/cec/platform/seco/seco-cec.c
509
const char **conn)
drivers/media/cec/platform/seco/seco-cec.c
527
*conn = m->conn;
drivers/media/cec/platform/seco/seco-cec.c
564
const char *conn = NULL;
drivers/media/cec/platform/seco/seco-cec.c
568
hdmi_dev = secocec_cec_find_hdmi_dev(&pdev->dev, &conn);
drivers/media/cec/platform/seco/seco-cec.c
639
secocec->notifier = cec_notifier_cec_adap_register(hdmi_dev, conn,
drivers/media/dvb-core/dvbdev.c
238
if (dvbdev->adapter->conn) {
drivers/media/dvb-core/dvbdev.c
239
media_device_unregister_entity(dvbdev->adapter->conn);
drivers/media/dvb-core/dvbdev.c
240
kfree(dvbdev->adapter->conn);
drivers/media/dvb-core/dvbdev.c
241
dvbdev->adapter->conn = NULL;
drivers/media/dvb-core/dvbdev.c
667
struct media_entity *entity, *tuner = NULL, *demod = NULL, *conn;
drivers/media/dvb-core/dvbdev.c
712
conn = kzalloc_obj(*conn);
drivers/media/dvb-core/dvbdev.c
713
if (!conn)
drivers/media/dvb-core/dvbdev.c
715
adap->conn = conn;
drivers/media/dvb-core/dvbdev.c
721
conn->flags = MEDIA_ENT_FL_CONNECTOR;
drivers/media/dvb-core/dvbdev.c
722
conn->function = MEDIA_ENT_F_CONN_RF;
drivers/media/dvb-core/dvbdev.c
723
conn->name = connector_name;
drivers/media/dvb-core/dvbdev.c
726
ret = media_entity_pads_init(conn, 1, adap->conn_pads);
drivers/media/dvb-core/dvbdev.c
730
ret = media_device_register_entity(mdev, conn);
drivers/media/dvb-core/dvbdev.c
737
conn, 0,
drivers/media/dvb-core/dvbdev.c
749
conn, 0,
drivers/misc/mei/main.c
672
struct mei_connect_client_data conn;
drivers/misc/mei/main.c
697
if (copy_from_user(&conn, (char __user *)data, sizeof(conn))) {
drivers/misc/mei/main.c
702
cl_uuid = conn.in_client_uuid;
drivers/misc/mei/main.c
703
props = &conn.out_client_properties;
drivers/misc/mei/main.c
718
if (copy_to_user((char __user *)data, &conn, sizeof(conn))) {
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
106
err = mlx5_fpga_conn_map_buf(conn, buf);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
110
if (unlikely(conn->qp.rq.pc - conn->qp.rq.cc >= conn->qp.rq.size)) {
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
111
mlx5_fpga_conn_unmap_buf(conn, buf);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
115
ix = conn->qp.rq.pc & (conn->qp.rq.size - 1);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
116
data = mlx5_wq_cyc_get_wqe(&conn->qp.wq.rq, ix);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
118
data->lkey = cpu_to_be32(conn->fdev->conn_res.mkey);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
121
conn->qp.rq.pc++;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
122
conn->qp.rq.bufs[ix] = buf;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
126
*conn->qp.wq.rq.db = cpu_to_be32(conn->qp.rq.pc & 0xffff);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
131
static void mlx5_fpga_conn_notify_hw(struct mlx5_fpga_conn *conn, void *wqe)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
135
*conn->qp.wq.sq.db = cpu_to_be32(conn->qp.sq.pc);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
138
mlx5_write64(wqe, conn->fdev->conn_res.uar->map + MLX5_BF_OFFSET);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
141
static void mlx5_fpga_conn_post_send(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
149
ix = conn->qp.sq.pc & (conn->qp.sq.size - 1);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
151
ctrl = mlx5_wq_cyc_get_wqe(&conn->qp.wq.sq, ix);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
158
data->lkey = cpu_to_be32(conn->fdev->conn_res.mkey);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
166
ctrl->opmod_idx_opcode = cpu_to_be32(((conn->qp.sq.pc & 0xffff) << 8) |
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
168
ctrl->qpn_ds = cpu_to_be32(size | (conn->qp.qpn << 8));
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
170
conn->qp.sq.pc++;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
171
conn->qp.sq.bufs[ix] = buf;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
172
mlx5_fpga_conn_notify_hw(conn, ctrl);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
175
int mlx5_fpga_conn_send(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
181
if (!conn->qp.active)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
185
err = mlx5_fpga_conn_map_buf(conn, buf);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
189
spin_lock_irqsave(&conn->qp.sq.lock, flags);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
191
if (conn->qp.sq.pc - conn->qp.sq.cc >= conn->qp.sq.size) {
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
192
list_add_tail(&buf->list, &conn->qp.sq.backlog);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
196
mlx5_fpga_conn_post_send(conn, buf);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
199
spin_unlock_irqrestore(&conn->qp.sq.lock, flags);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
203
static int mlx5_fpga_conn_post_recv_buf(struct mlx5_fpga_conn *conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
216
err = mlx5_fpga_conn_post_recv(conn, buf);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
250
static void mlx5_fpga_conn_rq_cqe(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
256
ix = be16_to_cpu(cqe->wqe_counter) & (conn->qp.rq.size - 1);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
257
buf = conn->qp.rq.bufs[ix];
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
258
conn->qp.rq.bufs[ix] = NULL;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
259
conn->qp.rq.cc++;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
262
mlx5_fpga_warn(conn->fdev, "RQ buf %p on FPGA QP %u completion status %d\n",
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
263
buf, conn->fpga_qpn, status);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
265
mlx5_fpga_dbg(conn->fdev, "RQ buf %p on FPGA QP %u completion status %d\n",
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
266
buf, conn->fpga_qpn, status);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
268
mlx5_fpga_conn_unmap_buf(conn, buf);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
270
if (unlikely(status || !conn->qp.active)) {
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
271
conn->qp.active = false;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
277
mlx5_fpga_dbg(conn->fdev, "Message with %u bytes received successfully\n",
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
279
conn->recv_cb(conn->cb_arg, buf);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
282
err = mlx5_fpga_conn_post_recv(conn, buf);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
284
mlx5_fpga_warn(conn->fdev,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
290
static void mlx5_fpga_conn_sq_cqe(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
297
spin_lock_irqsave(&conn->qp.sq.lock, flags);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
299
ix = be16_to_cpu(cqe->wqe_counter) & (conn->qp.sq.size - 1);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
300
buf = conn->qp.sq.bufs[ix];
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
301
conn->qp.sq.bufs[ix] = NULL;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
302
conn->qp.sq.cc++;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
305
if (unlikely(!list_empty(&conn->qp.sq.backlog))) {
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
306
if (likely(conn->qp.active)) {
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
307
nextbuf = list_first_entry(&conn->qp.sq.backlog,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
310
mlx5_fpga_conn_post_send(conn, nextbuf);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
314
spin_unlock_irqrestore(&conn->qp.sq.lock, flags);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
317
mlx5_fpga_warn(conn->fdev, "SQ buf %p on FPGA QP %u completion status %d\n",
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
318
buf, conn->fpga_qpn, status);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
320
mlx5_fpga_dbg(conn->fdev, "SQ buf %p on FPGA QP %u completion status %d\n",
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
321
buf, conn->fpga_qpn, status);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
323
mlx5_fpga_conn_unmap_buf(conn, buf);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
326
buf->complete(conn, conn->fdev, buf, status);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
329
conn->qp.active = false;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
332
static void mlx5_fpga_conn_handle_cqe(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
344
mlx5_fpga_conn_sq_cqe(conn, cqe, status);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
351
mlx5_fpga_conn_rq_cqe(conn, cqe, status);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
354
mlx5_fpga_warn(conn->fdev, "Unexpected cqe opcode %u\n",
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
359
static void mlx5_fpga_conn_arm_cq(struct mlx5_fpga_conn *conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
361
mlx5_cq_arm(&conn->cq.mcq, MLX5_CQ_DB_REQ_NOT,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
362
conn->fdev->conn_res.uar->map, conn->cq.wq.cc);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
365
static inline void mlx5_fpga_conn_cqes(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
371
cqe = mlx5_cqwq_get_cqe(&conn->cq.wq);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
376
mlx5_cqwq_pop(&conn->cq.wq);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
377
mlx5_fpga_conn_handle_cqe(conn, cqe);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
378
mlx5_cqwq_update_db_record(&conn->cq.wq);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
381
tasklet_schedule(&conn->cq.tasklet);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
385
mlx5_fpga_dbg(conn->fdev, "Re-arming CQ with cc# %u\n", conn->cq.wq.cc);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
388
mlx5_fpga_conn_arm_cq(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
393
struct mlx5_fpga_conn *conn = from_tasklet(conn, t, cq.tasklet);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
395
if (unlikely(!conn->qp.active))
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
397
mlx5_fpga_conn_cqes(conn, MLX5_FPGA_CQ_BUDGET);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
403
struct mlx5_fpga_conn *conn;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
405
conn = container_of(mcq, struct mlx5_fpga_conn, cq.mcq);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
406
if (unlikely(!conn->qp.active))
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
408
mlx5_fpga_conn_cqes(conn, MLX5_FPGA_CQ_BUDGET);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
411
static int mlx5_fpga_conn_create_cq(struct mlx5_fpga_conn *conn, int cq_size)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
413
struct mlx5_fpga_device *fdev = conn->fdev;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
424
conn->cq.mcq.cqe_sz = 64;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
425
conn->cq.mcq.set_ci_db = conn->cq.wq_ctrl.db.db;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
426
conn->cq.mcq.arm_db = conn->cq.wq_ctrl.db.db + 1;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
427
*conn->cq.mcq.set_ci_db = 0;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
428
conn->cq.mcq.vector = 0;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
429
conn->cq.mcq.comp = mlx5_fpga_conn_cq_complete;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
437
err = mlx5_cqwq_create(mdev, &wqp, temp_cqc, &conn->cq.wq,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
438
&conn->cq.wq_ctrl);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
442
for (i = 0; i < mlx5_cqwq_get_size(&conn->cq.wq); i++) {
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
443
cqe = mlx5_cqwq_get_wqe(&conn->cq.wq, i);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
448
sizeof(u64) * conn->cq.wq_ctrl.buf.npages;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
465
MLX5_SET(cqc, cqc, log_page_size, conn->cq.wq_ctrl.buf.page_shift -
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
467
MLX5_SET64(cqc, cqc, dbr_addr, conn->cq.wq_ctrl.db.dma);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
470
mlx5_fill_page_frag_array(&conn->cq.wq_ctrl.buf, pas);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
472
err = mlx5_core_create_cq(mdev, &conn->cq.mcq, in, inlen, out, sizeof(out));
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
478
tasklet_setup(&conn->cq.tasklet, mlx5_fpga_conn_cq_tasklet);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
479
mlx5_fpga_dbg(fdev, "Created CQ #0x%x\n", conn->cq.mcq.cqn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
48
static int mlx5_fpga_conn_map_buf(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
484
mlx5_wq_destroy(&conn->cq.wq_ctrl);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
489
static void mlx5_fpga_conn_destroy_cq(struct mlx5_fpga_conn *conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
491
tasklet_disable(&conn->cq.tasklet);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
492
tasklet_kill(&conn->cq.tasklet);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
493
mlx5_core_destroy_cq(conn->fdev->mdev, &conn->cq.mcq);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
494
mlx5_wq_destroy(&conn->cq.wq_ctrl);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
497
static int mlx5_fpga_conn_create_wq(struct mlx5_fpga_conn *conn, void *qpc)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
499
struct mlx5_fpga_device *fdev = conn->fdev;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
506
return mlx5_wq_qp_create(mdev, &wqp, qpc, &conn->qp.wq,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
507
&conn->qp.wq_ctrl);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
510
static int mlx5_fpga_conn_create_qp(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
513
struct mlx5_fpga_device *fdev = conn->fdev;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
520
conn->qp.rq.pc = 0;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
521
conn->qp.rq.cc = 0;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
522
conn->qp.rq.size = roundup_pow_of_two(rx_size);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
523
conn->qp.sq.pc = 0;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
524
conn->qp.sq.cc = 0;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
525
conn->qp.sq.size = roundup_pow_of_two(tx_size);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
528
MLX5_SET(qpc, temp_qpc, log_rq_size, ilog2(conn->qp.rq.size));
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
529
MLX5_SET(qpc, temp_qpc, log_sq_size, ilog2(conn->qp.sq.size));
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
530
err = mlx5_fpga_conn_create_wq(conn, temp_qpc);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
534
conn->qp.rq.bufs = kvzalloc_objs(conn->qp.rq.bufs[0], conn->qp.rq.size);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
535
if (!conn->qp.rq.bufs) {
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
540
conn->qp.sq.bufs = kvzalloc_objs(conn->qp.sq.bufs[0], conn->qp.sq.size);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
541
if (!conn->qp.sq.bufs) {
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
548
conn->qp.wq_ctrl.buf.npages;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
558
conn->qp.wq_ctrl.buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
565
MLX5_SET(qpc, qpc, log_rq_size, ilog2(conn->qp.rq.size));
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
567
MLX5_SET(qpc, qpc, log_sq_size, ilog2(conn->qp.sq.size));
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
568
MLX5_SET(qpc, qpc, cqn_snd, conn->cq.mcq.cqn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
569
MLX5_SET(qpc, qpc, cqn_rcv, conn->cq.mcq.cqn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
57
dma_device = mlx5_core_dma_dev(conn->fdev->mdev);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
571
MLX5_SET64(qpc, qpc, dbr_addr, conn->qp.wq_ctrl.db.dma);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
575
mlx5_fill_page_frag_array(&conn->qp.wq_ctrl.buf,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
583
conn->qp.qpn = MLX5_GET(create_qp_out, out, qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
584
mlx5_fpga_dbg(fdev, "Created QP #0x%x\n", conn->qp.qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
589
kvfree(conn->qp.sq.bufs);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
591
kvfree(conn->qp.rq.bufs);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
593
mlx5_wq_destroy(&conn->qp.wq_ctrl);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
599
static void mlx5_fpga_conn_free_recv_bufs(struct mlx5_fpga_conn *conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
603
for (ix = 0; ix < conn->qp.rq.size; ix++) {
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
604
if (!conn->qp.rq.bufs[ix])
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
606
mlx5_fpga_conn_unmap_buf(conn, conn->qp.rq.bufs[ix]);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
607
kfree(conn->qp.rq.bufs[ix]);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
608
conn->qp.rq.bufs[ix] = NULL;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
612
static void mlx5_fpga_conn_flush_send_bufs(struct mlx5_fpga_conn *conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
617
for (ix = 0; ix < conn->qp.sq.size; ix++) {
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
618
buf = conn->qp.sq.bufs[ix];
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
62
mlx5_fpga_warn(conn->fdev, "DMA error on sg 0: %d\n", err);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
621
conn->qp.sq.bufs[ix] = NULL;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
622
mlx5_fpga_conn_unmap_buf(conn, buf);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
625
buf->complete(conn, conn->fdev, buf, MLX5_CQE_SYNDROME_WR_FLUSH_ERR);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
627
list_for_each_entry_safe(buf, temp, &conn->qp.sq.backlog, list) {
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
628
mlx5_fpga_conn_unmap_buf(conn, buf);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
631
buf->complete(conn, conn->fdev, buf, MLX5_CQE_SYNDROME_WR_FLUSH_ERR);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
635
static void mlx5_fpga_conn_destroy_qp(struct mlx5_fpga_conn *conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
637
struct mlx5_core_dev *dev = conn->fdev->mdev;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
641
MLX5_SET(destroy_qp_in, in, qpn, conn->qp.qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
644
mlx5_fpga_conn_free_recv_bufs(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
645
mlx5_fpga_conn_flush_send_bufs(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
646
kvfree(conn->qp.sq.bufs);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
647
kvfree(conn->qp.rq.bufs);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
648
mlx5_wq_destroy(&conn->qp.wq_ctrl);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
651
static int mlx5_fpga_conn_reset_qp(struct mlx5_fpga_conn *conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
653
struct mlx5_core_dev *mdev = conn->fdev->mdev;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
656
mlx5_fpga_dbg(conn->fdev, "Modifying QP %u to RST\n", conn->qp.qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
659
MLX5_SET(qp_2rst_in, in, qpn, conn->qp.qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
664
static int mlx5_fpga_conn_init_qp(struct mlx5_fpga_conn *conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
667
struct mlx5_fpga_device *fdev = conn->fdev;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
671
mlx5_fpga_dbg(conn->fdev, "Modifying QP %u to INIT\n", conn->qp.qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
679
MLX5_SET(qpc, qpc, pd, conn->fdev->conn_res.pdn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
680
MLX5_SET(qpc, qpc, cqn_snd, conn->cq.mcq.cqn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
681
MLX5_SET(qpc, qpc, cqn_rcv, conn->cq.mcq.cqn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
682
MLX5_SET64(qpc, qpc, dbr_addr, conn->qp.wq_ctrl.db.dma);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
685
MLX5_SET(rst2init_qp_in, in, qpn, conn->qp.qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
690
static int mlx5_fpga_conn_rtr_qp(struct mlx5_fpga_conn *conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
693
struct mlx5_fpga_device *fdev = conn->fdev;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
697
mlx5_fpga_dbg(conn->fdev, "QP RTR\n");
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
703
MLX5_SET(qpc, qpc, remote_qpn, conn->fpga_qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
705
MLX5_GET(fpga_qpc, conn->fpga_qpc, next_send_psn));
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
709
MLX5_ADDR_OF(fpga_qpc, conn->fpga_qpc, fpga_mac_47_32));
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
713
conn->qp.sgid_index);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
716
MLX5_ADDR_OF(fpga_qpc, conn->fpga_qpc, fpga_ip),
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
720
MLX5_SET(init2rtr_qp_in, in, qpn, conn->qp.qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
725
static int mlx5_fpga_conn_rts_qp(struct mlx5_fpga_conn *conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
727
struct mlx5_fpga_device *fdev = conn->fdev;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
732
mlx5_fpga_dbg(conn->fdev, "QP RTS\n");
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
74
mlx5_fpga_warn(conn->fdev, "DMA error on sg 1: %d\n", err);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
740
MLX5_GET(fpga_qpc, conn->fpga_qpc, next_rcv_psn));
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
745
MLX5_SET(rtr2rts_qp_in, in, qpn, conn->qp.qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
751
static int mlx5_fpga_conn_connect(struct mlx5_fpga_conn *conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
753
struct mlx5_fpga_device *fdev = conn->fdev;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
756
MLX5_SET(fpga_qpc, conn->fpga_qpc, state, MLX5_FPGA_QPC_STATE_ACTIVE);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
757
err = mlx5_fpga_modify_qp(conn->fdev->mdev, conn->fpga_qpn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
758
MLX5_FPGA_QPC_STATE, &conn->fpga_qpc);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
764
err = mlx5_fpga_conn_reset_qp(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
770
err = mlx5_fpga_conn_init_qp(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
775
conn->qp.active = true;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
777
while (!mlx5_fpga_conn_post_recv_buf(conn))
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
780
err = mlx5_fpga_conn_rtr_qp(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
786
err = mlx5_fpga_conn_rts_qp(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
794
mlx5_fpga_conn_free_recv_bufs(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
796
MLX5_SET(fpga_qpc, conn->fpga_qpc, state, MLX5_FPGA_QPC_STATE_INIT);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
797
if (mlx5_fpga_modify_qp(conn->fdev->mdev, conn->fpga_qpn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
798
MLX5_FPGA_QPC_STATE, &conn->fpga_qpc))
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
808
struct mlx5_fpga_conn *ret, *conn;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
815
conn = kzalloc_obj(*conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
816
if (!conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
819
conn->fdev = fdev;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
820
INIT_LIST_HEAD(&conn->qp.sq.backlog);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
822
spin_lock_init(&conn->qp.sq.lock);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
824
conn->recv_cb = attr->recv_cb;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
825
conn->cb_arg = attr->cb_arg;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
827
remote_mac = MLX5_ADDR_OF(fpga_qpc, conn->fpga_qpc, remote_mac_47_32);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
836
remote_ip = MLX5_ADDR_OF(fpga_qpc, conn->fpga_qpc, remote_ip);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
84
static void mlx5_fpga_conn_unmap_buf(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
841
err = mlx5_core_reserved_gid_alloc(fdev->mdev, &conn->qp.sgid_index);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
848
err = mlx5_core_roce_gid_set(fdev->mdev, conn->qp.sgid_index,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
858
mlx5_fpga_dbg(fdev, "Reserved SGID index %u\n", conn->qp.sgid_index);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
863
err = mlx5_fpga_conn_create_cq(conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
871
mlx5_fpga_conn_arm_cq(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
873
err = mlx5_fpga_conn_create_qp(conn, attr->tx_size, attr->rx_size);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
880
MLX5_SET(fpga_qpc, conn->fpga_qpc, state, MLX5_FPGA_QPC_STATE_INIT);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
881
MLX5_SET(fpga_qpc, conn->fpga_qpc, qp_type, qp_type);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
882
MLX5_SET(fpga_qpc, conn->fpga_qpc, st, MLX5_FPGA_QPC_ST_RC);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
883
MLX5_SET(fpga_qpc, conn->fpga_qpc, ether_type, ETH_P_8021Q);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
884
MLX5_SET(fpga_qpc, conn->fpga_qpc, vid, 0);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
885
MLX5_SET(fpga_qpc, conn->fpga_qpc, next_rcv_psn, 1);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
886
MLX5_SET(fpga_qpc, conn->fpga_qpc, next_send_psn, 0);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
887
MLX5_SET(fpga_qpc, conn->fpga_qpc, pkey, MLX5_FPGA_PKEY);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
888
MLX5_SET(fpga_qpc, conn->fpga_qpc, remote_qpn, conn->qp.qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
889
MLX5_SET(fpga_qpc, conn->fpga_qpc, rnr_retry, 7);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
89
dma_device = mlx5_core_dma_dev(conn->fdev->mdev);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
890
MLX5_SET(fpga_qpc, conn->fpga_qpc, retry_count, 7);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
892
err = mlx5_fpga_create_qp(fdev->mdev, &conn->fpga_qpc,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
893
&conn->fpga_qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
900
err = mlx5_fpga_conn_connect(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
906
mlx5_fpga_dbg(fdev, "FPGA QPN is %u\n", conn->fpga_qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
907
ret = conn;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
911
mlx5_fpga_destroy_qp(conn->fdev->mdev, conn->fpga_qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
913
mlx5_fpga_conn_destroy_qp(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
915
mlx5_fpga_conn_destroy_cq(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
917
mlx5_core_roce_gid_set(fdev->mdev, conn->qp.sgid_index, 0, 0, NULL,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
920
mlx5_core_reserved_gid_free(fdev->mdev, conn->qp.sgid_index);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
922
kfree(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
927
void mlx5_fpga_conn_destroy(struct mlx5_fpga_conn *conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
929
conn->qp.active = false;
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
930
tasklet_disable(&conn->cq.tasklet);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
931
synchronize_irq(conn->cq.mcq.irqn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
933
mlx5_fpga_destroy_qp(conn->fdev->mdev, conn->fpga_qpn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
934
mlx5_fpga_conn_destroy_qp(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
935
mlx5_fpga_conn_destroy_cq(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
937
mlx5_core_roce_gid_set(conn->fdev->mdev, conn->qp.sgid_index, 0, 0,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
939
mlx5_core_reserved_gid_free(conn->fdev->mdev, conn->qp.sgid_index);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
940
kfree(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
99
static int mlx5_fpga_conn_post_recv(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.h
92
void mlx5_fpga_conn_destroy(struct mlx5_fpga_conn *conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.h
93
int mlx5_fpga_conn_send(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/sdk.c
48
void mlx5_fpga_sbu_conn_destroy(struct mlx5_fpga_conn *conn)
drivers/net/ethernet/mellanox/mlx5/core/fpga/sdk.c
50
mlx5_fpga_conn_destroy(conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/sdk.c
54
int mlx5_fpga_sbu_conn_sendmsg(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/sdk.c
57
return mlx5_fpga_conn_send(conn, buf);
drivers/net/ethernet/mellanox/mlx5/core/fpga/sdk.h
146
void mlx5_fpga_sbu_conn_destroy(struct mlx5_fpga_conn *conn);
drivers/net/ethernet/mellanox/mlx5/core/fpga/sdk.h
160
int mlx5_fpga_sbu_conn_sendmsg(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/mellanox/mlx5/core/fpga/sdk.h
92
void (*complete)(struct mlx5_fpga_conn *conn,
drivers/net/ethernet/sfc/mae.c
1928
struct efx_tc_ct_entry *conn)
drivers/net/ethernet/sfc/mae.c
1930
bool ipv6 = conn->eth_proto == htons(ETH_P_IPV6);
drivers/net/ethernet/sfc/mae.c
1933
rc = TABLE_POPULATE_KEY(key, ct, eth_proto, conn->eth_proto);
drivers/net/ethernet/sfc/mae.c
1936
rc = TABLE_POPULATE_KEY(key, ct, ip_proto, conn->ip_proto);
drivers/net/ethernet/sfc/mae.c
1940
rc = TABLE_POPULATE_KEY(key, ct, src_ip, conn->src_ip6);
drivers/net/ethernet/sfc/mae.c
1942
rc = TABLE_POPULATE_KEY_IPV4(key, ct, src_ip, conn->src_ip);
drivers/net/ethernet/sfc/mae.c
1946
rc = TABLE_POPULATE_KEY(key, ct, dst_ip, conn->dst_ip6);
drivers/net/ethernet/sfc/mae.c
1948
rc = TABLE_POPULATE_KEY_IPV4(key, ct, dst_ip, conn->dst_ip);
drivers/net/ethernet/sfc/mae.c
1951
rc = TABLE_POPULATE_KEY(key, ct, l4_sport, conn->l4_sport);
drivers/net/ethernet/sfc/mae.c
1954
rc = TABLE_POPULATE_KEY(key, ct, l4_dport, conn->l4_dport);
drivers/net/ethernet/sfc/mae.c
1957
return TABLE_POPULATE_KEY(key, ct, zone, cpu_to_be16(conn->zone->zone));
drivers/net/ethernet/sfc/mae.c
1960
int efx_mae_insert_ct(struct efx_nic *efx, struct efx_tc_ct_entry *conn)
drivers/net/ethernet/sfc/mae.c
1962
bool ipv6 = conn->eth_proto == htons(ETH_P_IPV6);
drivers/net/ethernet/sfc/mae.c
1990
rc = efx_mae_populate_ct_key(efx, key, kw, conn);
drivers/net/ethernet/sfc/mae.c
1994
rc = TABLE_POPULATE_RESP_BOOL(resp, ct, dnat, conn->dnat);
drivers/net/ethernet/sfc/mae.c
1999
rc = TABLE_POPULATE_RESP(resp, ct, nat_ip, conn->nat_ip);
drivers/net/ethernet/sfc/mae.c
2002
rc = TABLE_POPULATE_RESP(resp, ct, l4_natport, conn->l4_natport);
drivers/net/ethernet/sfc/mae.c
2005
rc = TABLE_POPULATE_RESP(resp, ct, mark, cpu_to_be32(conn->mark));
drivers/net/ethernet/sfc/mae.c
2008
rc = TABLE_POPULATE_RESP_U24(resp, ct, counter_id, conn->cnt->fw_id);
drivers/net/ethernet/sfc/mae.c
2033
int efx_mae_remove_ct(struct efx_nic *efx, struct efx_tc_ct_entry *conn)
drivers/net/ethernet/sfc/mae.c
2058
rc = efx_mae_populate_ct_key(efx, key, kw, conn);
drivers/net/ethernet/sfc/mae.h
125
int efx_mae_insert_ct(struct efx_nic *efx, struct efx_tc_ct_entry *conn);
drivers/net/ethernet/sfc/mae.h
126
int efx_mae_remove_ct(struct efx_nic *efx, struct efx_tc_ct_entry *conn);
drivers/net/ethernet/sfc/tc_conntrack.c
147
conn->eth_proto = fm.key->n_proto;
drivers/net/ethernet/sfc/tc_conntrack.c
148
if (conn->eth_proto != (ipv == 4 ? htons(ETH_P_IP)
drivers/net/ethernet/sfc/tc_conntrack.c
152
ipv, ntohs(conn->eth_proto));
drivers/net/ethernet/sfc/tc_conntrack.c
161
conn->ip_proto = fm.key->ip_proto;
drivers/net/ethernet/sfc/tc_conntrack.c
162
switch (conn->ip_proto) {
drivers/net/ethernet/sfc/tc_conntrack.c
171
conn->ip_proto);
drivers/net/ethernet/sfc/tc_conntrack.c
190
conn->src_ip = fm.key->src;
drivers/net/ethernet/sfc/tc_conntrack.c
197
conn->dst_ip = fm.key->dst;
drivers/net/ethernet/sfc/tc_conntrack.c
208
conn->src_ip6 = fm.key->src;
drivers/net/ethernet/sfc/tc_conntrack.c
215
conn->dst_ip6 = fm.key->dst;
drivers/net/ethernet/sfc/tc_conntrack.c
232
conn->l4_sport = fm.key->src;
drivers/net/ethernet/sfc/tc_conntrack.c
239
conn->l4_dport = fm.key->dst;
drivers/net/ethernet/sfc/tc_conntrack.c
290
static int efx_tc_ct_mangle(struct efx_nic *efx, struct efx_tc_ct_entry *conn,
drivers/net/ethernet/sfc/tc_conntrack.c
307
conn->nat_ip = htonl(fa->mangle.val);
drivers/net/ethernet/sfc/tc_conntrack.c
332
conn->l4_natport = htons(fa->mangle.val);
drivers/net/ethernet/sfc/tc_conntrack.c
346
conn->dnat = dnat;
drivers/net/ethernet/sfc/tc_conntrack.c
347
else if (conn->dnat != dnat)
drivers/net/ethernet/sfc/tc_conntrack.c
357
struct efx_tc_ct_entry *conn, *old;
drivers/net/ethernet/sfc/tc_conntrack.c
368
conn = kzalloc_obj(*conn, GFP_USER);
drivers/net/ethernet/sfc/tc_conntrack.c
369
if (!conn)
drivers/net/ethernet/sfc/tc_conntrack.c
371
conn->cookie = tc->cookie;
drivers/net/ethernet/sfc/tc_conntrack.c
373
&conn->linkage,
drivers/net/ethernet/sfc/tc_conntrack.c
386
conn->zone = ct_zone;
drivers/net/ethernet/sfc/tc_conntrack.c
387
rc = efx_tc_ct_parse_match(efx, fr, conn);
drivers/net/ethernet/sfc/tc_conntrack.c
395
conn->mark = fa->ct_metadata.mark;
drivers/net/ethernet/sfc/tc_conntrack.c
404
if (conn->eth_proto != htons(ETH_P_IP)) {
drivers/net/ethernet/sfc/tc_conntrack.c
410
rc = efx_tc_ct_mangle(efx, conn, fa, &mung);
drivers/net/ethernet/sfc/tc_conntrack.c
424
conn->nat_ip = conn->dnat ? conn->dst_ip : conn->src_ip;
drivers/net/ethernet/sfc/tc_conntrack.c
426
conn->l4_natport = conn->dnat ? conn->l4_dport : conn->l4_sport;
drivers/net/ethernet/sfc/tc_conntrack.c
433
conn->cnt = cnt;
drivers/net/ethernet/sfc/tc_conntrack.c
435
rc = efx_mae_insert_ct(efx, conn);
drivers/net/ethernet/sfc/tc_conntrack.c
442
list_add_tail(&conn->list, &ct_zone->cts);
drivers/net/ethernet/sfc/tc_conntrack.c
446
if (conn->cnt)
drivers/net/ethernet/sfc/tc_conntrack.c
447
efx_tc_flower_release_counter(efx, conn->cnt);
drivers/net/ethernet/sfc/tc_conntrack.c
449
rhashtable_remove_fast(&efx->tc->ct_ht, &conn->linkage,
drivers/net/ethernet/sfc/tc_conntrack.c
45
struct efx_tc_ct_entry *conn = ptr;
drivers/net/ethernet/sfc/tc_conntrack.c
451
kfree(conn);
drivers/net/ethernet/sfc/tc_conntrack.c
456
static void efx_tc_ct_remove(struct efx_nic *efx, struct efx_tc_ct_entry *conn)
drivers/net/ethernet/sfc/tc_conntrack.c
461
rc = efx_mae_remove_ct(efx, conn);
drivers/net/ethernet/sfc/tc_conntrack.c
463
rhashtable_remove_fast(&efx->tc->ct_ht, &conn->linkage,
drivers/net/ethernet/sfc/tc_conntrack.c
468
conn->cookie, rc);
drivers/net/ethernet/sfc/tc_conntrack.c
471
conn->cookie);
drivers/net/ethernet/sfc/tc_conntrack.c
475
static void efx_tc_ct_remove_finish(struct efx_nic *efx, struct efx_tc_ct_entry *conn)
drivers/net/ethernet/sfc/tc_conntrack.c
481
efx_tc_flower_release_counter(efx, conn->cnt);
drivers/net/ethernet/sfc/tc_conntrack.c
482
kfree(conn);
drivers/net/ethernet/sfc/tc_conntrack.c
489
struct efx_tc_ct_entry *conn;
drivers/net/ethernet/sfc/tc_conntrack.c
491
conn = rhashtable_lookup_fast(&efx->tc->ct_ht, &tc->cookie,
drivers/net/ethernet/sfc/tc_conntrack.c
493
if (!conn) {
drivers/net/ethernet/sfc/tc_conntrack.c
50
conn->cookie);
drivers/net/ethernet/sfc/tc_conntrack.c
500
list_del(&conn->list);
drivers/net/ethernet/sfc/tc_conntrack.c
501
efx_tc_ct_remove(efx, conn);
drivers/net/ethernet/sfc/tc_conntrack.c
504
efx_tc_ct_remove_finish(efx, conn);
drivers/net/ethernet/sfc/tc_conntrack.c
512
struct efx_tc_ct_entry *conn;
drivers/net/ethernet/sfc/tc_conntrack.c
516
conn = rhashtable_lookup_fast(&efx->tc->ct_ht, &tc->cookie,
drivers/net/ethernet/sfc/tc_conntrack.c
518
if (!conn) {
drivers/net/ethernet/sfc/tc_conntrack.c
525
cnt = conn->cnt;
drivers/net/ethernet/sfc/tc_conntrack.c
55
efx_tc_flower_release_counter(efx, conn->cnt);
drivers/net/ethernet/sfc/tc_conntrack.c
56
kfree(conn);
drivers/net/ethernet/sfc/tc_conntrack.c
606
struct efx_tc_ct_entry *conn, *next;
drivers/net/ethernet/sfc/tc_conntrack.c
614
list_for_each_entry(conn, &ct_zone->cts, list)
drivers/net/ethernet/sfc/tc_conntrack.c
615
efx_tc_ct_remove(efx, conn);
drivers/net/ethernet/sfc/tc_conntrack.c
618
list_for_each_entry_safe(conn, next, &ct_zone->cts, list)
drivers/net/ethernet/sfc/tc_conntrack.c
619
efx_tc_ct_remove_finish(efx, conn);
drivers/net/ethernet/sfc/tc_conntrack.c
94
struct efx_tc_ct_entry *conn)
drivers/net/wireless/ath/ath6kl/cfg80211.c
3117
struct ath6kl_sta *conn;
drivers/net/wireless/ath/ath6kl/cfg80211.c
3127
conn = ath6kl_find_sta(vif, mgmt->da);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3128
if (!conn)
drivers/net/wireless/ath/ath6kl/cfg80211.c
3131
if (conn->sta_flags & STA_PS_SLEEP) {
drivers/net/wireless/ath/ath6kl/cfg80211.c
3132
if (!(conn->sta_flags & STA_PS_POLLED)) {
drivers/net/wireless/ath/ath6kl/cfg80211.c
3146
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3147
is_psq_empty = skb_queue_empty(&conn->psq) &&
drivers/net/wireless/ath/ath6kl/cfg80211.c
3148
(conn->mgmt_psq_len == 0);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3149
list_add_tail(&mgmt_buf->list, &conn->mgmt_psq);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3150
conn->mgmt_psq_len++;
drivers/net/wireless/ath/ath6kl/cfg80211.c
3151
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3160
conn->aid, 1);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3168
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3169
if (!skb_queue_empty(&conn->psq) || (conn->mgmt_psq_len != 0))
drivers/net/wireless/ath/ath6kl/cfg80211.c
3171
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/main.c
29
struct ath6kl_sta *conn = NULL;
drivers/net/wireless/ath/ath6kl/main.c
39
conn = &ar->sta_list[i];
drivers/net/wireless/ath/ath6kl/main.c
44
return conn;
drivers/net/wireless/ath/ath6kl/main.c
49
struct ath6kl_sta *conn = NULL;
drivers/net/wireless/ath/ath6kl/main.c
54
conn = &ar->sta_list[ctr];
drivers/net/wireless/ath/ath6kl/main.c
58
return conn;
drivers/net/wireless/ath/ath6kl/main.c
870
struct ath6kl_sta *conn;
drivers/net/wireless/ath/ath6kl/main.c
876
conn = ath6kl_find_sta_by_aid(ar, aid);
drivers/net/wireless/ath/ath6kl/main.c
878
if (!conn)
drivers/net/wireless/ath/ath6kl/main.c
884
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/main.c
885
psq_empty = skb_queue_empty(&conn->psq) && (conn->mgmt_psq_len == 0);
drivers/net/wireless/ath/ath6kl/main.c
886
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/main.c
892
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/main.c
893
if (conn->mgmt_psq_len > 0) {
drivers/net/wireless/ath/ath6kl/main.c
894
mgmt_buf = list_first_entry(&conn->mgmt_psq,
drivers/net/wireless/ath/ath6kl/main.c
897
conn->mgmt_psq_len--;
drivers/net/wireless/ath/ath6kl/main.c
898
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/main.c
900
conn->sta_flags |= STA_PS_POLLED;
drivers/net/wireless/ath/ath6kl/main.c
905
conn->sta_flags &= ~STA_PS_POLLED;
drivers/net/wireless/ath/ath6kl/main.c
908
skb = skb_dequeue(&conn->psq);
drivers/net/wireless/ath/ath6kl/main.c
909
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/main.c
911
conn->sta_flags |= STA_PS_POLLED;
drivers/net/wireless/ath/ath6kl/main.c
913
conn->sta_flags &= ~STA_PS_POLLED;
drivers/net/wireless/ath/ath6kl/main.c
916
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/main.c
917
psq_empty = skb_queue_empty(&conn->psq) && (conn->mgmt_psq_len == 0);
drivers/net/wireless/ath/ath6kl/main.c
918
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/main.c
921
ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, conn->aid, 0);
drivers/net/wireless/ath/ath6kl/txrx.c
102
static bool ath6kl_process_uapsdq(struct ath6kl_sta *conn,
drivers/net/wireless/ath/ath6kl/txrx.c
114
if (conn->sta_flags & STA_PS_APSD_TRIGGER) {
drivers/net/wireless/ath/ath6kl/txrx.c
120
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
121
if (!skb_queue_empty(&conn->apsdq))
drivers/net/wireless/ath/ath6kl/txrx.c
123
else if (conn->sta_flags & STA_PS_APSD_EOSP)
drivers/net/wireless/ath/ath6kl/txrx.c
1233
struct ath6kl_sta *conn)
drivers/net/wireless/ath/ath6kl/txrx.c
1249
num_frames_to_deliver = (conn->apsd_info >> ATH6KL_APSD_NUM_OF_AC) &
drivers/net/wireless/ath/ath6kl/txrx.c
126
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1260
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1261
is_apsdq_empty = skb_queue_empty(&conn->apsdq);
drivers/net/wireless/ath/ath6kl/txrx.c
1262
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1266
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1267
skb = skb_dequeue(&conn->apsdq);
drivers/net/wireless/ath/ath6kl/txrx.c
1268
is_apsdq_empty = skb_queue_empty(&conn->apsdq);
drivers/net/wireless/ath/ath6kl/txrx.c
1269
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1275
conn->sta_flags |= STA_PS_APSD_TRIGGER;
drivers/net/wireless/ath/ath6kl/txrx.c
128
} else if (!conn->apsd_info) {
drivers/net/wireless/ath/ath6kl/txrx.c
1280
conn->sta_flags |= STA_PS_APSD_EOSP;
drivers/net/wireless/ath/ath6kl/txrx.c
1283
conn->sta_flags &= ~(STA_PS_APSD_TRIGGER);
drivers/net/wireless/ath/ath6kl/txrx.c
1284
conn->sta_flags &= ~(STA_PS_APSD_EOSP);
drivers/net/wireless/ath/ath6kl/txrx.c
1295
conn->aid, 0, flags);
drivers/net/wireless/ath/ath6kl/txrx.c
1314
struct ath6kl_sta *conn = NULL;
drivers/net/wireless/ath/ath6kl/txrx.c
1427
conn = ath6kl_find_sta(vif, datap->h_source);
drivers/net/wireless/ath/ath6kl/txrx.c
1429
if (!conn) {
drivers/net/wireless/ath/ath6kl/txrx.c
1443
prev_ps = !!(conn->sta_flags & STA_PS_SLEEP);
drivers/net/wireless/ath/ath6kl/txrx.c
1446
conn->sta_flags |= STA_PS_SLEEP;
drivers/net/wireless/ath/ath6kl/txrx.c
1448
conn->sta_flags &= ~STA_PS_SLEEP;
drivers/net/wireless/ath/ath6kl/txrx.c
1451
if ((conn->sta_flags & STA_PS_SLEEP) && trig_state)
drivers/net/wireless/ath/ath6kl/txrx.c
1452
ath6kl_uapsd_trigger_frame_rx(vif, conn);
drivers/net/wireless/ath/ath6kl/txrx.c
1454
if (prev_ps ^ !!(conn->sta_flags & STA_PS_SLEEP)) {
drivers/net/wireless/ath/ath6kl/txrx.c
1455
if (!(conn->sta_flags & STA_PS_SLEEP)) {
drivers/net/wireless/ath/ath6kl/txrx.c
1461
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1462
while (conn->mgmt_psq_len > 0) {
drivers/net/wireless/ath/ath6kl/txrx.c
1464
&conn->mgmt_psq,
drivers/net/wireless/ath/ath6kl/txrx.c
1468
conn->mgmt_psq_len--;
drivers/net/wireless/ath/ath6kl/txrx.c
1469
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1482
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1484
conn->mgmt_psq_len = 0;
drivers/net/wireless/ath/ath6kl/txrx.c
1485
while ((skbuff = skb_dequeue(&conn->psq))) {
drivers/net/wireless/ath/ath6kl/txrx.c
1486
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1488
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1491
is_apsdq_empty = skb_queue_empty(&conn->apsdq);
drivers/net/wireless/ath/ath6kl/txrx.c
1492
while ((skbuff = skb_dequeue(&conn->apsdq))) {
drivers/net/wireless/ath/ath6kl/txrx.c
1493
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1495
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1497
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1503
conn->aid, 0, 0);
drivers/net/wireless/ath/ath6kl/txrx.c
1507
conn->aid, 0);
drivers/net/wireless/ath/ath6kl/txrx.c
152
if ((conn->apsd_info & (1 << traffic_class)) == 0)
drivers/net/wireless/ath/ath6kl/txrx.c
156
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
157
is_apsdq_empty = skb_queue_empty(&conn->apsdq);
drivers/net/wireless/ath/ath6kl/txrx.c
158
skb_queue_tail(&conn->apsdq, skb);
drivers/net/wireless/ath/ath6kl/txrx.c
1580
conn = ath6kl_find_sta(vif, datap->h_dest);
drivers/net/wireless/ath/ath6kl/txrx.c
1582
if (conn && ar->intra_bss) {
drivers/net/wireless/ath/ath6kl/txrx.c
1585
} else if (conn && !ar->intra_bss) {
drivers/net/wireless/ath/ath6kl/txrx.c
159
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
1603
conn = ath6kl_find_sta(vif, datap->h_source);
drivers/net/wireless/ath/ath6kl/txrx.c
1604
if (!conn)
drivers/net/wireless/ath/ath6kl/txrx.c
1606
aggr_conn = conn->aggr_conn;
drivers/net/wireless/ath/ath6kl/txrx.c
168
conn->aid, 1, 0);
drivers/net/wireless/ath/ath6kl/txrx.c
175
static bool ath6kl_process_psq(struct ath6kl_sta *conn,
drivers/net/wireless/ath/ath6kl/txrx.c
183
if (conn->sta_flags & STA_PS_POLLED) {
drivers/net/wireless/ath/ath6kl/txrx.c
184
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
185
if (!skb_queue_empty(&conn->psq))
drivers/net/wireless/ath/ath6kl/txrx.c
187
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
192
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
193
is_psq_empty = skb_queue_empty(&conn->psq);
drivers/net/wireless/ath/ath6kl/txrx.c
194
skb_queue_tail(&conn->psq, skb);
drivers/net/wireless/ath/ath6kl/txrx.c
195
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/txrx.c
205
conn->aid, 1);
drivers/net/wireless/ath/ath6kl/txrx.c
213
struct ath6kl_sta *conn = NULL;
drivers/net/wireless/ath/ath6kl/txrx.c
265
conn = ath6kl_find_sta(vif, datap->h_dest);
drivers/net/wireless/ath/ath6kl/txrx.c
266
if (!conn) {
drivers/net/wireless/ath/ath6kl/txrx.c
273
if (conn->sta_flags & STA_PS_SLEEP) {
drivers/net/wireless/ath/ath6kl/txrx.c
274
ps_queued = ath6kl_process_uapsdq(conn,
drivers/net/wireless/ath/ath6kl/txrx.c
277
ps_queued = ath6kl_process_psq(conn,
drivers/net/wireless/ath/wil6210/cfg80211.c
1218
struct wmi_connect_cmd conn;
drivers/net/wireless/ath/wil6210/cfg80211.c
1333
memset(&conn, 0, sizeof(conn));
drivers/net/wireless/ath/wil6210/cfg80211.c
1334
conn.network_type = network_type;
drivers/net/wireless/ath/wil6210/cfg80211.c
1337
conn.dot11_auth_mode = WMI_AUTH11_SHARED;
drivers/net/wireless/ath/wil6210/cfg80211.c
1338
conn.auth_mode = WMI_AUTH_WPA2_PSK;
drivers/net/wireless/ath/wil6210/cfg80211.c
1339
conn.pairwise_crypto_type = WMI_CRYPT_AES_GCMP;
drivers/net/wireless/ath/wil6210/cfg80211.c
1340
conn.pairwise_crypto_len = 16;
drivers/net/wireless/ath/wil6210/cfg80211.c
1341
conn.group_crypto_type = WMI_CRYPT_AES_GCMP;
drivers/net/wireless/ath/wil6210/cfg80211.c
1342
conn.group_crypto_len = 16;
drivers/net/wireless/ath/wil6210/cfg80211.c
1344
conn.dot11_auth_mode = WMI_AUTH11_WSC;
drivers/net/wireless/ath/wil6210/cfg80211.c
1345
conn.auth_mode = WMI_AUTH_NONE;
drivers/net/wireless/ath/wil6210/cfg80211.c
1348
conn.dot11_auth_mode = WMI_AUTH11_OPEN;
drivers/net/wireless/ath/wil6210/cfg80211.c
1349
conn.auth_mode = WMI_AUTH_NONE;
drivers/net/wireless/ath/wil6210/cfg80211.c
1352
conn.ssid_len = min_t(u8, ssid_eid[1], 32);
drivers/net/wireless/ath/wil6210/cfg80211.c
1353
memcpy(conn.ssid, ssid_eid+2, conn.ssid_len);
drivers/net/wireless/ath/wil6210/cfg80211.c
1354
conn.channel = ch - 1;
drivers/net/wireless/ath/wil6210/cfg80211.c
1357
sme->edmg.channels, &conn.edmg_channel);
drivers/net/wireless/ath/wil6210/cfg80211.c
1361
ether_addr_copy(conn.bssid, bss->bssid);
drivers/net/wireless/ath/wil6210/cfg80211.c
1362
ether_addr_copy(conn.dst_mac, bss->bssid);
drivers/net/wireless/ath/wil6210/cfg80211.c
1366
rc = wmi_send(wil, WMI_CONNECT_CMDID, vif->mid, &conn, sizeof(conn));
drivers/net/wireless/realtek/rtw88/fw.h
851
void rtw_fw_media_status_report(struct rtw_dev *rtwdev, u8 mac_id, bool conn);
drivers/net/wireless/ti/wl12xx/main.c
201
.conn = {
drivers/net/wireless/ti/wl18xx/main.c
342
.conn = {
drivers/net/wireless/ti/wlcore/acx.c
1065
if (enable && wl->conf.conn.bet_enable == CONF_BET_MODE_DISABLE)
drivers/net/wireless/ti/wlcore/acx.c
1076
acx->max_consecutive = wl->conf.conn.bet_max_consecutive;
drivers/net/wireless/ti/wlcore/acx.c
1194
acx->period = cpu_to_le32(wl->conf.conn.keep_alive_interval);
drivers/net/wireless/ti/wlcore/acx.c
1563
config_ps->exit_retries = wl->conf.conn.psm_exit_retries;
drivers/net/wireless/ti/wlcore/acx.c
1564
config_ps->enter_retries = wl->conf.conn.psm_entry_retries;
drivers/net/wireless/ti/wlcore/acx.c
350
wl->conf.conn.bcn_filt_mode == CONF_BCN_FILT_MODE_DISABLED)
drivers/net/wireless/ti/wlcore/acx.c
399
for (i = 0; i < wl->conf.conn.bcn_filt_ie_count; i++) {
drivers/net/wireless/ti/wlcore/acx.c
400
struct conf_bcn_filt_rule *r = &(wl->conf.conn.bcn_filt_ie[i]);
drivers/net/wireless/ti/wlcore/acx.c
456
threshold = wl->conf.conn.synch_fail_thold;
drivers/net/wireless/ti/wlcore/acx.c
457
timeout = wl->conf.conn.bss_lose_timeout;
drivers/net/wireless/ti/wlcore/acx.c
577
bb->beacon_rx_timeout = cpu_to_le16(wl->conf.conn.beacon_rx_timeout);
drivers/net/wireless/ti/wlcore/acx.c
578
bb->broadcast_timeout = cpu_to_le16(wl->conf.conn.broadcast_timeout);
drivers/net/wireless/ti/wlcore/acx.c
579
bb->rx_broadcast_in_ps = wl->conf.conn.rx_broadcast_in_ps;
drivers/net/wireless/ti/wlcore/acx.c
580
bb->ps_poll_threshold = wl->conf.conn.ps_poll_threshold;
drivers/net/wireless/ti/wlcore/conf.h
1134
struct conf_conn_settings conn;
drivers/net/wireless/ti/wlcore/debugfs.c
245
wl->conf.conn.dynamic_ps_timeout);
drivers/net/wireless/ti/wlcore/debugfs.c
270
wl->conf.conn.dynamic_ps_timeout = value;
drivers/net/wireless/ti/wlcore/debugfs.c
309
wl->conf.conn.forced_ps);
drivers/net/wireless/ti/wlcore/debugfs.c
334
if (wl->conf.conn.forced_ps == value)
drivers/net/wireless/ti/wlcore/debugfs.c
337
wl->conf.conn.forced_ps = value;
drivers/net/wireless/ti/wlcore/debugfs.c
628
if (wl->conf.conn.wake_up_event == CONF_WAKE_UP_EVENT_DTIM ||
drivers/net/wireless/ti/wlcore/debugfs.c
629
wl->conf.conn.wake_up_event == CONF_WAKE_UP_EVENT_N_DTIM)
drivers/net/wireless/ti/wlcore/debugfs.c
630
value = wl->conf.conn.listen_interval;
drivers/net/wireless/ti/wlcore/debugfs.c
658
wl->conf.conn.listen_interval = value;
drivers/net/wireless/ti/wlcore/debugfs.c
661
wl->conf.conn.wake_up_event = CONF_WAKE_UP_EVENT_DTIM;
drivers/net/wireless/ti/wlcore/debugfs.c
663
wl->conf.conn.wake_up_event = CONF_WAKE_UP_EVENT_N_DTIM;
drivers/net/wireless/ti/wlcore/debugfs.c
689
if (wl->conf.conn.suspend_wake_up_event == CONF_WAKE_UP_EVENT_DTIM ||
drivers/net/wireless/ti/wlcore/debugfs.c
690
wl->conf.conn.suspend_wake_up_event == CONF_WAKE_UP_EVENT_N_DTIM)
drivers/net/wireless/ti/wlcore/debugfs.c
691
value = wl->conf.conn.suspend_listen_interval;
drivers/net/wireless/ti/wlcore/debugfs.c
719
wl->conf.conn.suspend_listen_interval = value;
drivers/net/wireless/ti/wlcore/debugfs.c
722
wl->conf.conn.suspend_wake_up_event = CONF_WAKE_UP_EVENT_DTIM;
drivers/net/wireless/ti/wlcore/debugfs.c
724
wl->conf.conn.suspend_wake_up_event = CONF_WAKE_UP_EVENT_N_DTIM;
drivers/net/wireless/ti/wlcore/debugfs.c
744
if (wl->conf.conn.wake_up_event == CONF_WAKE_UP_EVENT_BEACON ||
drivers/net/wireless/ti/wlcore/debugfs.c
745
wl->conf.conn.wake_up_event == CONF_WAKE_UP_EVENT_N_BEACONS)
drivers/net/wireless/ti/wlcore/debugfs.c
746
value = wl->conf.conn.listen_interval;
drivers/net/wireless/ti/wlcore/debugfs.c
774
wl->conf.conn.listen_interval = value;
drivers/net/wireless/ti/wlcore/debugfs.c
777
wl->conf.conn.wake_up_event = CONF_WAKE_UP_EVENT_BEACON;
drivers/net/wireless/ti/wlcore/debugfs.c
779
wl->conf.conn.wake_up_event = CONF_WAKE_UP_EVENT_N_BEACONS;
drivers/net/wireless/ti/wlcore/debugfs.c
994
wl->conf.conn.sta_sleep_auth = value;
drivers/net/wireless/ti/wlcore/event.c
318
int delay = wl->conf.conn.synch_fail_thold *
drivers/net/wireless/ti/wlcore/event.c
319
wl->conf.conn.bss_lose_timeout;
drivers/net/wireless/ti/wlcore/init.c
577
u8 sta_auth = wl->conf.conn.sta_sleep_auth;
drivers/net/wireless/ti/wlcore/main.c
1710
if ((wl->conf.conn.suspend_wake_up_event ==
drivers/net/wireless/ti/wlcore/main.c
1711
wl->conf.conn.wake_up_event) &&
drivers/net/wireless/ti/wlcore/main.c
1712
(wl->conf.conn.suspend_listen_interval ==
drivers/net/wireless/ti/wlcore/main.c
1713
wl->conf.conn.listen_interval))
drivers/net/wireless/ti/wlcore/main.c
1717
wl->conf.conn.suspend_wake_up_event,
drivers/net/wireless/ti/wlcore/main.c
1718
wl->conf.conn.suspend_listen_interval);
drivers/net/wireless/ti/wlcore/main.c
1776
if ((wl->conf.conn.suspend_wake_up_event ==
drivers/net/wireless/ti/wlcore/main.c
1777
wl->conf.conn.wake_up_event) &&
drivers/net/wireless/ti/wlcore/main.c
1778
(wl->conf.conn.suspend_listen_interval ==
drivers/net/wireless/ti/wlcore/main.c
1779
wl->conf.conn.listen_interval))
drivers/net/wireless/ti/wlcore/main.c
1783
wl->conf.conn.wake_up_event,
drivers/net/wireless/ti/wlcore/main.c
1784
wl->conf.conn.listen_interval);
drivers/net/wireless/ti/wlcore/main.c
1840
!!wl->conf.conn.suspend_rx_ba_activity);
drivers/net/wireless/ti/wlcore/main.c
2839
u8 sta_auth = wl->conf.conn.sta_sleep_auth;
drivers/net/wireless/ti/wlcore/main.c
4574
if (wl->conf.conn.forced_ps) {
drivers/net/wireless/ti/wlcore/main.c
6221
wl->hw->max_listen_interval = wl->conf.conn.max_listen_interval;
drivers/net/wireless/ti/wlcore/ps.c
19
u16 timeout = wl->conf.conn.dynamic_ps_timeout;
drivers/net/wireless/ti/wlcore/ps.c
28
wl->conf.conn.wake_up_event,
drivers/net/wireless/ti/wlcore/ps.c
29
wl->conf.conn.listen_interval);
drivers/nvme/target/rdma.c
1381
nvmet_rdma_parse_cm_connect_req(struct rdma_conn_param *conn,
drivers/nvme/target/rdma.c
1386
req = (struct nvme_rdma_cm_req *)conn->private_data;
drivers/nvme/target/rdma.c
1387
if (!req || conn->private_data_len == 0)
drivers/nvme/target/rdma.c
1447
ret = nvmet_rdma_parse_cm_connect_req(&event->param.conn, queue);
drivers/nvme/target/rdma.c
1609
ret = nvmet_rdma_cm_accept(cm_id, queue, &event->param.conn);
drivers/scsi/be2iscsi/be_iscsi.c
1025
if (!beiscsi_ep->conn)
drivers/scsi/be2iscsi/be_iscsi.c
1028
beiscsi_conn = beiscsi_ep->conn;
drivers/scsi/be2iscsi/be_iscsi.c
1033
beiscsi_ep->conn = NULL;
drivers/scsi/be2iscsi/be_iscsi.c
137
struct iscsi_conn *conn;
drivers/scsi/be2iscsi/be_iscsi.c
152
conn = cls_conn->dd_data;
drivers/scsi/be2iscsi/be_iscsi.c
153
beiscsi_conn = conn->dd_data;
drivers/scsi/be2iscsi/be_iscsi.c
156
beiscsi_conn->conn = conn;
drivers/scsi/be2iscsi/be_iscsi.c
176
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/be2iscsi/be_iscsi.c
177
struct beiscsi_conn *beiscsi_conn = conn->dd_data;
drivers/scsi/be2iscsi/be_iscsi.c
222
beiscsi_ep->conn = beiscsi_conn;
drivers/scsi/be2iscsi/be_iscsi.c
658
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/be2iscsi/be_iscsi.c
659
struct iscsi_session *session = conn->session;
drivers/scsi/be2iscsi/be_iscsi.c
663
phba = ((struct beiscsi_conn *)conn->dd_data)->phba;
drivers/scsi/be2iscsi/be_iscsi.c
681
if (conn->max_recv_dlength > 65536)
drivers/scsi/be2iscsi/be_iscsi.c
682
conn->max_recv_dlength = 65536;
drivers/scsi/be2iscsi/be_iscsi.c
689
if (conn->max_xmit_dlength > 65536)
drivers/scsi/be2iscsi/be_iscsi.c
690
conn->max_xmit_dlength = 65536;
drivers/scsi/be2iscsi/be_iscsi.c
831
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/be2iscsi/be_iscsi.c
834
phba = ((struct beiscsi_conn *)conn->dd_data)->phba;
drivers/scsi/be2iscsi/be_iscsi.c
838
stats->txdata_octets = conn->txdata_octets;
drivers/scsi/be2iscsi/be_iscsi.c
839
stats->rxdata_octets = conn->rxdata_octets;
drivers/scsi/be2iscsi/be_iscsi.c
840
stats->dataout_pdus = conn->dataout_pdus_cnt;
drivers/scsi/be2iscsi/be_iscsi.c
841
stats->scsirsp_pdus = conn->scsirsp_pdus_cnt;
drivers/scsi/be2iscsi/be_iscsi.c
842
stats->scsicmd_pdus = conn->scsicmd_pdus_cnt;
drivers/scsi/be2iscsi/be_iscsi.c
843
stats->datain_pdus = conn->datain_pdus_cnt;
drivers/scsi/be2iscsi/be_iscsi.c
844
stats->tmfrsp_pdus = conn->tmfrsp_pdus_cnt;
drivers/scsi/be2iscsi/be_iscsi.c
845
stats->tmfcmd_pdus = conn->tmfcmd_pdus_cnt;
drivers/scsi/be2iscsi/be_iscsi.c
846
stats->r2t_pdus = conn->r2t_pdus_cnt;
drivers/scsi/be2iscsi/be_iscsi.c
851
stats->custom[0].value = conn->eh_abort_cnt;
drivers/scsi/be2iscsi/be_iscsi.c
862
struct iscsi_conn *conn = beiscsi_conn->conn;
drivers/scsi/be2iscsi/be_iscsi.c
863
struct iscsi_session *session = conn->session;
drivers/scsi/be2iscsi/be_iscsi.c
869
conn->max_xmit_dlength);
drivers/scsi/be2iscsi/be_iscsi.c
875
conn->datadgst_en);
drivers/scsi/be2iscsi/be_iscsi.c
877
conn->hdrdgst_en);
drivers/scsi/be2iscsi/be_iscsi.c
891
(conn->exp_statsn - 1));
drivers/scsi/be2iscsi/be_iscsi.c
894
conn->max_recv_dlength);
drivers/scsi/be2iscsi/be_iscsi.c
904
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/be2iscsi/be_iscsi.c
905
struct beiscsi_conn *beiscsi_conn = conn->dd_data;
drivers/scsi/be2iscsi/be_iscsi.c
910
phba = ((struct beiscsi_conn *)conn->dd_data)->phba;
drivers/scsi/be2iscsi/be_iscsi.h
32
void beiscsi_offload_iscsi(struct beiscsi_hba *phba, struct iscsi_conn *conn,
drivers/scsi/be2iscsi/be_main.c
1124
struct iscsi_conn *conn = beiscsi_conn->conn;
drivers/scsi/be2iscsi/be_main.c
1175
conn->rxdata_octets += resid;
drivers/scsi/be2iscsi/be_main.c
1191
struct iscsi_conn *conn = beiscsi_conn->conn;
drivers/scsi/be2iscsi/be_main.c
1208
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)hdr, NULL, 0);
drivers/scsi/be2iscsi/be_main.c
1217
struct iscsi_conn *conn = beiscsi_conn->conn;
drivers/scsi/be2iscsi/be_main.c
1229
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)hdr, NULL, 0);
drivers/scsi/be2iscsi/be_main.c
1259
session = beiscsi_conn->conn->session;
drivers/scsi/be2iscsi/be_main.c
1273
struct iscsi_conn *conn = beiscsi_conn->conn;
drivers/scsi/be2iscsi/be_main.c
1284
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)hdr, NULL, 0);
drivers/scsi/be2iscsi/be_main.c
1344
struct iscsi_conn *conn = beiscsi_conn->conn;
drivers/scsi/be2iscsi/be_main.c
1345
struct iscsi_session *session = conn->session;
drivers/scsi/be2iscsi/be_main.c
1428
struct iscsi_conn *conn = beiscsi_conn->conn;
drivers/scsi/be2iscsi/be_main.c
1451
task = conn->login_task;
drivers/scsi/be2iscsi/be_main.c
1463
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)phdr, pdata, dlen);
drivers/scsi/be2iscsi/be_main.c
1608
struct iscsi_session *session = beiscsi_conn->conn->session;
drivers/scsi/be2iscsi/be_main.c
1923
beiscsi_conn = beiscsi_ep->conn;
drivers/scsi/be2iscsi/be_main.c
2024
iscsi_conn_failure(beiscsi_conn->conn,
drivers/scsi/be2iscsi/be_main.c
228
struct iscsi_conn *conn;
drivers/scsi/be2iscsi/be_main.c
2281
struct beiscsi_conn *beiscsi_conn = io_task->conn;
drivers/scsi/be2iscsi/be_main.c
250
conn = abrt_task->conn;
drivers/scsi/be2iscsi/be_main.c
251
beiscsi_conn = conn->dd_data;
drivers/scsi/be2iscsi/be_main.c
288
struct iscsi_conn *conn;
drivers/scsi/be2iscsi/be_main.c
302
conn = session->leadconn;
drivers/scsi/be2iscsi/be_main.c
303
beiscsi_conn = conn->dd_data;
drivers/scsi/be2iscsi/be_main.c
316
for (i = 0; i < conn->session->cmds_max; i++) {
drivers/scsi/be2iscsi/be_main.c
317
task = conn->session->cmds[i];
drivers/scsi/be2iscsi/be_main.c
4236
struct iscsi_conn *conn = task->conn;
drivers/scsi/be2iscsi/be_main.c
4237
struct beiscsi_conn *beiscsi_conn = conn->dd_data;
drivers/scsi/be2iscsi/be_main.c
4286
struct iscsi_session *session = task->conn->session;
drivers/scsi/be2iscsi/be_main.c
4335
static void beiscsi_parse_pdu(struct iscsi_conn *conn, itt_t itt,
drivers/scsi/be2iscsi/be_main.c
4340
*age = conn->session->age;
drivers/scsi/be2iscsi/be_main.c
4356
struct iscsi_conn *conn = task->conn;
drivers/scsi/be2iscsi/be_main.c
4357
struct beiscsi_conn *beiscsi_conn = conn->dd_data;
drivers/scsi/be2iscsi/be_main.c
4372
io_task->conn = beiscsi_conn;
drivers/scsi/be2iscsi/be_main.c
4501
struct iscsi_conn *conn = task->conn;
drivers/scsi/be2iscsi/be_main.c
4502
struct beiscsi_conn *beiscsi_conn = conn->dd_data;
drivers/scsi/be2iscsi/be_main.c
4562
struct iscsi_conn *conn = task->conn;
drivers/scsi/be2iscsi/be_main.c
4563
struct beiscsi_conn *beiscsi_conn = conn->dd_data;
drivers/scsi/be2iscsi/be_main.c
4620
struct iscsi_conn *conn = task->conn;
drivers/scsi/be2iscsi/be_main.c
4621
struct beiscsi_conn *beiscsi_conn = conn->dd_data;
drivers/scsi/be2iscsi/be_main.c
4744
phba = io_task->conn->phba;
drivers/scsi/be2iscsi/be_main.c
4753
if (!io_task->conn->login_in_progress)
drivers/scsi/be2iscsi/be_main.h
407
struct iscsi_conn *conn;
drivers/scsi/be2iscsi/be_main.h
459
struct beiscsi_conn *conn;
drivers/scsi/be2iscsi/be_mgmt.c
1458
if (beiscsi_ep->conn)
drivers/scsi/be2iscsi/be_mgmt.c
1492
if (beiscsi_ep->conn)
drivers/scsi/be2iscsi/be_mgmt.h
155
struct beiscsi_conn *conn;
drivers/scsi/bnx2i/bnx2i.h
259
struct bnx2i_conn *conn;
drivers/scsi/bnx2i/bnx2i.h
751
struct bnx2i_conn *conn;
drivers/scsi/bnx2i/bnx2i.h
823
void bnx2i_get_rq_buf(struct bnx2i_conn *conn, char *ptr, int len);
drivers/scsi/bnx2i/bnx2i.h
824
void bnx2i_put_rq_buf(struct bnx2i_conn *conn, int count);
drivers/scsi/bnx2i/bnx2i.h
831
extern int bnx2i_send_iscsi_login(struct bnx2i_conn *conn,
drivers/scsi/bnx2i/bnx2i.h
833
extern int bnx2i_send_iscsi_tmf(struct bnx2i_conn *conn,
drivers/scsi/bnx2i/bnx2i.h
835
extern int bnx2i_send_iscsi_text(struct bnx2i_conn *conn,
drivers/scsi/bnx2i/bnx2i.h
837
extern int bnx2i_send_iscsi_scsicmd(struct bnx2i_conn *conn,
drivers/scsi/bnx2i/bnx2i.h
839
extern int bnx2i_send_iscsi_nopout(struct bnx2i_conn *conn,
drivers/scsi/bnx2i/bnx2i.h
842
extern int bnx2i_send_iscsi_logout(struct bnx2i_conn *conn,
drivers/scsi/bnx2i/bnx2i.h
848
extern void bnx2i_update_iscsi_conn(struct iscsi_conn *conn);
drivers/scsi/bnx2i/bnx2i_hwi.c
1048
ep->conn = NULL;
drivers/scsi/bnx2i/bnx2i_hwi.c
1340
struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_hwi.c
1350
task = iscsi_itt_to_task(conn,
drivers/scsi/bnx2i/bnx2i_hwi.c
1358
conn->datain_pdus_cnt +=
drivers/scsi/bnx2i/bnx2i_hwi.c
1360
conn->rxdata_octets +=
drivers/scsi/bnx2i/bnx2i_hwi.c
1367
conn->dataout_pdus_cnt +=
drivers/scsi/bnx2i/bnx2i_hwi.c
1369
conn->r2t_pdus_cnt +=
drivers/scsi/bnx2i/bnx2i_hwi.c
1371
conn->txdata_octets +=
drivers/scsi/bnx2i/bnx2i_hwi.c
1401
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/bnx2i/bnx2i_hwi.c
1406
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/bnx2i/bnx2i_hwi.c
1412
bnx2i_get_rq_buf(bnx2i_cmd->conn, conn->data, datalen);
drivers/scsi/bnx2i/bnx2i_hwi.c
1413
bnx2i_put_rq_buf(bnx2i_cmd->conn, 1);
drivers/scsi/bnx2i/bnx2i_hwi.c
1417
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)hdr,
drivers/scsi/bnx2i/bnx2i_hwi.c
1418
conn->data, datalen);
drivers/scsi/bnx2i/bnx2i_hwi.c
1437
struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_hwi.c
1446
task = iscsi_itt_to_task(conn,
drivers/scsi/bnx2i/bnx2i_hwi.c
1484
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr,
drivers/scsi/bnx2i/bnx2i_hwi.c
1505
struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_hwi.c
1514
task = iscsi_itt_to_task(conn, text->itt & ISCSI_LOGIN_RESPONSE_INDEX);
drivers/scsi/bnx2i/bnx2i_hwi.c
1544
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr,
drivers/scsi/bnx2i/bnx2i_hwi.c
1566
struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_hwi.c
1573
task = iscsi_itt_to_task(conn,
drivers/scsi/bnx2i/bnx2i_hwi.c
1586
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr, NULL, 0);
drivers/scsi/bnx2i/bnx2i_hwi.c
1605
struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_hwi.c
1612
task = iscsi_itt_to_task(conn,
drivers/scsi/bnx2i/bnx2i_hwi.c
1631
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr, NULL, 0);
drivers/scsi/bnx2i/bnx2i_hwi.c
1651
struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_hwi.c
1657
task = iscsi_itt_to_task(conn,
drivers/scsi/bnx2i/bnx2i_hwi.c
1692
struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_hwi.c
1716
task = iscsi_itt_to_task(conn,
drivers/scsi/bnx2i/bnx2i_hwi.c
1725
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)hdr, NULL, 0);
drivers/scsi/bnx2i/bnx2i_hwi.c
1794
struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_hwi.c
1800
bnx2i_get_rq_buf(bnx2i_conn, conn->data, reject->data_length);
drivers/scsi/bnx2i/bnx2i_hwi.c
1814
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)hdr, conn->data,
drivers/scsi/bnx2i/bnx2i_hwi.c
1832
struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_hwi.c
1837
task = iscsi_itt_to_task(conn,
drivers/scsi/bnx2i/bnx2i_hwi.c
1957
struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_hwi.c
1958
struct iscsi_session *session = conn->session;
drivers/scsi/bnx2i/bnx2i_hwi.c
1980
if (unlikely(test_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags))) {
drivers/scsi/bnx2i/bnx2i_hwi.c
210
static void bnx2i_ring_577xx_doorbell(struct bnx2i_conn *conn)
drivers/scsi/bnx2i/bnx2i_hwi.c
2123
struct bnx2i_conn *conn;
drivers/scsi/bnx2i/bnx2i_hwi.c
2127
conn = bnx2i_get_conn_from_id(hba, iscsi_cid);
drivers/scsi/bnx2i/bnx2i_hwi.c
2129
if (!conn) {
drivers/scsi/bnx2i/bnx2i_hwi.c
2133
if (!conn->ep) {
drivers/scsi/bnx2i/bnx2i_hwi.c
2140
conn->ep->state = EP_STATE_ULP_UPDATE_FAILED;
drivers/scsi/bnx2i/bnx2i_hwi.c
2142
conn->ep->state = EP_STATE_ULP_UPDATE_COMPL;
drivers/scsi/bnx2i/bnx2i_hwi.c
2144
wake_up_interruptible(&conn->ep->ofld_wait);
drivers/scsi/bnx2i/bnx2i_hwi.c
220
writel(cpu_to_le32(msg), conn->ep->qp.ctx_base);
drivers/scsi/bnx2i/bnx2i_hwi.c
2628
if (ep->conn)
drivers/scsi/bnx2i/bnx2i_hwi.c
2629
bnx2i_recovery_que_add_conn(ep->hba, ep->conn);
drivers/scsi/bnx2i/bnx2i_hwi.c
2648
if (ep->conn)
drivers/scsi/bnx2i/bnx2i_hwi.c
2649
bnx2i_recovery_que_add_conn(ep->hba, ep->conn);
drivers/scsi/bnx2i/bnx2i_hwi.c
385
struct iscsi_conn *conn = bnx2i_conn->cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_hwi.c
407
ctask = iscsi_itt_to_task(conn, tmfabort_hdr->rtt);
drivers/scsi/bnx2i/bnx2i_hwi.c
629
void bnx2i_update_iscsi_conn(struct iscsi_conn *conn)
drivers/scsi/bnx2i/bnx2i_hwi.c
631
struct bnx2i_conn *bnx2i_conn = conn->dd_data;
drivers/scsi/bnx2i/bnx2i_hwi.c
649
if (conn->hdrdgst_en)
drivers/scsi/bnx2i/bnx2i_hwi.c
651
if (conn->datadgst_en)
drivers/scsi/bnx2i/bnx2i_hwi.c
653
if (conn->session->initial_r2t_en)
drivers/scsi/bnx2i/bnx2i_hwi.c
655
if (conn->session->imm_data_en)
drivers/scsi/bnx2i/bnx2i_hwi.c
658
update_wqe->max_send_pdu_length = conn->max_xmit_dlength;
drivers/scsi/bnx2i/bnx2i_hwi.c
659
update_wqe->max_recv_pdu_length = conn->max_recv_dlength;
drivers/scsi/bnx2i/bnx2i_hwi.c
660
update_wqe->first_burst_length = conn->session->first_burst;
drivers/scsi/bnx2i/bnx2i_hwi.c
661
update_wqe->max_burst_length = conn->session->max_burst;
drivers/scsi/bnx2i/bnx2i_hwi.c
662
update_wqe->exp_stat_sn = conn->exp_statsn;
drivers/scsi/bnx2i/bnx2i_hwi.c
663
update_wqe->max_outstanding_r2ts = conn->session->max_r2t;
drivers/scsi/bnx2i/bnx2i_hwi.c
664
update_wqe->session_error_recovery_level = conn->session->erl;
drivers/scsi/bnx2i/bnx2i_hwi.c
665
iscsi_conn_printk(KERN_ALERT, conn,
drivers/scsi/bnx2i/bnx2i_hwi.c
732
(struct bnx2i_cleanup_request *)cmd->conn->ep->qp.sq_prod_qe;
drivers/scsi/bnx2i/bnx2i_hwi.c
739
bnx2i_ring_dbell_update_sq_params(cmd->conn, 1);
drivers/scsi/bnx2i/bnx2i_iscsi.c
1082
struct bnx2i_conn *bnx2i_conn = cmd->conn;
drivers/scsi/bnx2i/bnx2i_iscsi.c
114
if ((start_bd_offset > task->conn->session->first_burst) ||
drivers/scsi/bnx2i/bnx2i_iscsi.c
1158
struct iscsi_conn *conn = task->conn;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1159
struct bnx2i_conn *bnx2i_conn = conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1173
spin_unlock_bh(&conn->session->back_lock);
drivers/scsi/bnx2i/bnx2i_iscsi.c
1176
spin_lock_bh(&conn->session->back_lock);
drivers/scsi/bnx2i/bnx2i_iscsi.c
118
iscsi_conn_printk(KERN_ALERT, task->conn,
drivers/scsi/bnx2i/bnx2i_iscsi.c
1187
bnx2i_mtask_xmit(struct iscsi_conn *conn, struct iscsi_task *task)
drivers/scsi/bnx2i/bnx2i_iscsi.c
1189
struct bnx2i_conn *bnx2i_conn = conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1208
cmd->conn = conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1221
struct iscsi_conn *conn = task->conn;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1222
struct iscsi_session *session = conn->session;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1225
struct bnx2i_conn *bnx2i_conn = conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1238
return bnx2i_mtask_xmit(conn, task);
drivers/scsi/bnx2i/bnx2i_iscsi.c
124
iscsi_conn_printk(KERN_ALERT, task->conn,
drivers/scsi/bnx2i/bnx2i_iscsi.c
1242
cmd->conn = bnx2i_conn;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1361
struct iscsi_conn *conn;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1367
conn = cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1369
bnx2i_conn = conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1380
iscsi_conn_printk(KERN_ALERT, conn,
drivers/scsi/bnx2i/bnx2i_iscsi.c
1408
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1409
struct bnx2i_conn *bnx2i_conn = conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1453
bnx2i_ep->conn = bnx2i_conn;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1483
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1484
struct bnx2i_conn *bnx2i_conn = conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1502
if (work->session == conn->session &&
drivers/scsi/bnx2i/bnx2i_iscsi.c
1610
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1611
struct bnx2i_conn *bnx2i_conn = conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1614
bnx2i_update_iscsi_conn(conn);
drivers/scsi/bnx2i/bnx2i_iscsi.c
1644
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1646
stats->txdata_octets = conn->txdata_octets;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1647
stats->rxdata_octets = conn->rxdata_octets;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1648
stats->scsicmd_pdus = conn->scsicmd_pdus_cnt;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1649
stats->dataout_pdus = conn->dataout_pdus_cnt;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1650
stats->scsirsp_pdus = conn->scsirsp_pdus_cnt;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1651
stats->datain_pdus = conn->datain_pdus_cnt;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1652
stats->r2t_pdus = conn->r2t_pdus_cnt;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1653
stats->tmfcmd_pdus = conn->tmfcmd_pdus_cnt;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1654
stats->tmfrsp_pdus = conn->tmfrsp_pdus_cnt;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1658
stats->custom[0].value = conn->eh_abort_cnt;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1719
if (ep->conn && ep->conn->cls_conn &&
drivers/scsi/bnx2i/bnx2i_iscsi.c
1720
ep->conn->cls_conn->dd_data) {
drivers/scsi/bnx2i/bnx2i_iscsi.c
1721
struct iscsi_conn *conn = ep->conn->cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
1724
set_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags);
drivers/scsi/bnx2i/bnx2i_iscsi.c
190
bd_count = bnx2i_map_scsi_sg(cmd->conn->hba, cmd);
drivers/scsi/bnx2i/bnx2i_iscsi.c
2034
struct iscsi_conn *conn = NULL;
drivers/scsi/bnx2i/bnx2i_iscsi.c
2053
if (bnx2i_ep->conn) {
drivers/scsi/bnx2i/bnx2i_iscsi.c
2054
conn = bnx2i_ep->conn->cls_conn->dd_data;
drivers/scsi/bnx2i/bnx2i_iscsi.c
2055
session = conn->session;
drivers/scsi/bnx2i/bnx2i_iscsi.c
2137
if (bnx2i_ep->conn)
drivers/scsi/bnx2i/bnx2i_iscsi.c
2138
bnx2i_conn = bnx2i_ep->conn;
drivers/scsi/bnx2i/bnx2i_iscsi.c
427
if (bnx2i_ep->conn) {
drivers/scsi/bnx2i/bnx2i_iscsi.c
428
bnx2i_ep->conn->ep = NULL;
drivers/scsi/bnx2i/bnx2i_iscsi.c
429
bnx2i_ep->conn = NULL;
drivers/scsi/cxgbi/libcxgbi.c
1354
struct iscsi_tcp_conn *tcp_conn = task->conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
1385
struct iscsi_conn *conn = task->conn;
drivers/scsi/cxgbi/libcxgbi.c
1386
struct iscsi_session *sess = conn->session;
drivers/scsi/cxgbi/libcxgbi.c
1387
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
1425
void cxgbi_parse_pdu_itt(struct iscsi_conn *conn, itt_t itt, int *idx, int *age)
drivers/scsi/cxgbi/libcxgbi.c
1427
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
1453
struct iscsi_conn *conn = csk->user_data;
drivers/scsi/cxgbi/libcxgbi.c
1455
if (conn) {
drivers/scsi/cxgbi/libcxgbi.c
1457
"csk 0x%p, cid %d.\n", csk, conn->id);
drivers/scsi/cxgbi/libcxgbi.c
1458
iscsi_conn_queue_xmit(conn);
drivers/scsi/cxgbi/libcxgbi.c
1466
static inline int read_pdu_skb(struct iscsi_conn *conn,
drivers/scsi/cxgbi/libcxgbi.c
1474
bytes_read = iscsi_tcp_recv_skb(conn, skb, offset, offloaded, &status);
drivers/scsi/cxgbi/libcxgbi.c
1493
iscsi_conn_printk(KERN_ERR, conn, "Invalid pdu or skb.");
drivers/scsi/cxgbi/libcxgbi.c
1508
skb_read_pdu_bhs(struct cxgbi_sock *csk, struct iscsi_conn *conn,
drivers/scsi/cxgbi/libcxgbi.c
1511
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
1516
conn, skb, skb->len, cxgbi_skcb_flags(skb));
drivers/scsi/cxgbi/libcxgbi.c
1519
pr_info("conn 0x%p, skb 0x%p, not hdr.\n", conn, skb);
drivers/scsi/cxgbi/libcxgbi.c
1520
iscsi_conn_failure(conn, ISCSI_ERR_PROTO);
drivers/scsi/cxgbi/libcxgbi.c
1524
if (conn->hdrdgst_en &&
drivers/scsi/cxgbi/libcxgbi.c
1526
pr_info("conn 0x%p, skb 0x%p, hcrc.\n", conn, skb);
drivers/scsi/cxgbi/libcxgbi.c
1527
iscsi_conn_failure(conn, ISCSI_ERR_HDR_DGST);
drivers/scsi/cxgbi/libcxgbi.c
1540
struct iscsi_task *task = iscsi_itt_to_ctask(conn, itt);
drivers/scsi/cxgbi/libcxgbi.c
1550
err = read_pdu_skb(conn, skb, 0, 0);
drivers/scsi/cxgbi/libcxgbi.c
1562
static int skb_read_pdu_data(struct iscsi_conn *conn, struct sk_buff *lskb,
drivers/scsi/cxgbi/libcxgbi.c
1565
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
1571
conn, skb, skb->len, cxgbi_skcb_flags(skb));
drivers/scsi/cxgbi/libcxgbi.c
1573
if (conn->datadgst_en &&
drivers/scsi/cxgbi/libcxgbi.c
1576
conn, lskb, cxgbi_skcb_flags(lskb));
drivers/scsi/cxgbi/libcxgbi.c
1577
iscsi_conn_failure(conn, ISCSI_ERR_DATA_DGST);
drivers/scsi/cxgbi/libcxgbi.c
1585
if (lskb == skb && conn->hdrdgst_en)
drivers/scsi/cxgbi/libcxgbi.c
1597
return read_pdu_skb(conn, skb, offset, offloaded);
drivers/scsi/cxgbi/libcxgbi.c
1629
struct iscsi_conn *conn = csk->user_data;
drivers/scsi/cxgbi/libcxgbi.c
1635
"csk 0x%p, conn 0x%p.\n", csk, conn);
drivers/scsi/cxgbi/libcxgbi.c
1637
if (unlikely(!conn || test_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags))) {
drivers/scsi/cxgbi/libcxgbi.c
1640
csk, conn, conn ? conn->id : 0xFF,
drivers/scsi/cxgbi/libcxgbi.c
1641
conn ? conn->flags : 0xFF);
drivers/scsi/cxgbi/libcxgbi.c
1664
err = skb_read_pdu_bhs(csk, conn, skb);
drivers/scsi/cxgbi/libcxgbi.c
1673
err = skb_read_pdu_data(conn, skb, skb,
drivers/scsi/cxgbi/libcxgbi.c
1682
err = skb_read_pdu_bhs(csk, conn, skb);
drivers/scsi/cxgbi/libcxgbi.c
1707
err = skb_read_pdu_data(conn, skb, dskb, 0);
drivers/scsi/cxgbi/libcxgbi.c
1718
err = skb_read_pdu_data(conn, skb, skb, 0);
drivers/scsi/cxgbi/libcxgbi.c
1731
conn->rxdata_octets += read;
drivers/scsi/cxgbi/libcxgbi.c
1736
csk, conn, err, read);
drivers/scsi/cxgbi/libcxgbi.c
1737
iscsi_conn_failure(conn, ISCSI_ERR_CONN_FAILED);
drivers/scsi/cxgbi/libcxgbi.c
1887
struct iscsi_conn *conn = task->conn;
drivers/scsi/cxgbi/libcxgbi.c
1888
struct iscsi_session *session = task->conn->session;
drivers/scsi/cxgbi/libcxgbi.c
1889
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
1897
u32 max_txdata_len = conn->max_xmit_dlength;
drivers/scsi/cxgbi/libcxgbi.c
1931
tdata->max_xmit_dlength = conn->max_xmit_dlength;
drivers/scsi/cxgbi/libcxgbi.c
1946
conn->max_xmit_dlength, tdata->max_xmit_dlength);
drivers/scsi/cxgbi/libcxgbi.c
1970
conn->max_xmit_dlength = tdata->max_xmit_dlength * num_pdu;
drivers/scsi/cxgbi/libcxgbi.c
1971
max_txdata_len = conn->max_xmit_dlength;
drivers/scsi/cxgbi/libcxgbi.c
2000
conn->max_xmit_dlength = remaining_data_tosend;
drivers/scsi/cxgbi/libcxgbi.c
2012
headroom += conn->max_xmit_dlength;
drivers/scsi/cxgbi/libcxgbi.c
2050
conn->max_xmit_dlength, be32_to_cpu(task->hdr->itt));
drivers/scsi/cxgbi/libcxgbi.c
2055
conn->max_xmit_dlength = tdata->max_xmit_dlength;
drivers/scsi/cxgbi/libcxgbi.c
2067
struct iscsi_conn *conn = task->conn;
drivers/scsi/cxgbi/libcxgbi.c
2068
struct iscsi_session *session = conn->session;
drivers/scsi/cxgbi/libcxgbi.c
2147
struct iscsi_conn *conn = task->conn;
drivers/scsi/cxgbi/libcxgbi.c
2172
tx_skb_setmode(skb, conn->hdrdgst_en, datalen ? conn->datadgst_en : 0);
drivers/scsi/cxgbi/libcxgbi.c
2180
conn->max_xmit_dlength = tdata->max_xmit_dlength;
drivers/scsi/cxgbi/libcxgbi.c
2207
conn->max_xmit_dlength = tdata->max_xmit_dlength;
drivers/scsi/cxgbi/libcxgbi.c
2363
struct iscsi_tcp_conn *tcp_conn = task->conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
2421
if (task->conn->hdrdgst_en)
drivers/scsi/cxgbi/libcxgbi.c
2424
if (datalen && task->conn->datadgst_en)
drivers/scsi/cxgbi/libcxgbi.c
2427
task->conn->txdata_octets += pdulen;
drivers/scsi/cxgbi/libcxgbi.c
2464
iscsi_conn_printk(KERN_ERR, task->conn, "xmit err %d.\n", err);
drivers/scsi/cxgbi/libcxgbi.c
2465
iscsi_conn_failure(task->conn, ISCSI_ERR_XMIT_FAILED);
drivers/scsi/cxgbi/libcxgbi.c
2508
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
2510
stats->txdata_octets = conn->txdata_octets;
drivers/scsi/cxgbi/libcxgbi.c
2511
stats->rxdata_octets = conn->rxdata_octets;
drivers/scsi/cxgbi/libcxgbi.c
2512
stats->scsicmd_pdus = conn->scsicmd_pdus_cnt;
drivers/scsi/cxgbi/libcxgbi.c
2513
stats->dataout_pdus = conn->dataout_pdus_cnt;
drivers/scsi/cxgbi/libcxgbi.c
2514
stats->scsirsp_pdus = conn->scsirsp_pdus_cnt;
drivers/scsi/cxgbi/libcxgbi.c
2515
stats->datain_pdus = conn->datain_pdus_cnt;
drivers/scsi/cxgbi/libcxgbi.c
2516
stats->r2t_pdus = conn->r2t_pdus_cnt;
drivers/scsi/cxgbi/libcxgbi.c
2517
stats->tmfcmd_pdus = conn->tmfcmd_pdus_cnt;
drivers/scsi/cxgbi/libcxgbi.c
2518
stats->tmfrsp_pdus = conn->tmfrsp_pdus_cnt;
drivers/scsi/cxgbi/libcxgbi.c
2523
stats->custom[0].value = conn->eh_abort_cnt;
drivers/scsi/cxgbi/libcxgbi.c
2527
static int cxgbi_conn_max_xmit_dlength(struct iscsi_conn *conn)
drivers/scsi/cxgbi/libcxgbi.c
2529
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
2537
if (conn->max_xmit_dlength)
drivers/scsi/cxgbi/libcxgbi.c
2538
conn->max_xmit_dlength = min(conn->max_xmit_dlength, max);
drivers/scsi/cxgbi/libcxgbi.c
2540
conn->max_xmit_dlength = max;
drivers/scsi/cxgbi/libcxgbi.c
2541
cxgbi_align_pdu_size(conn->max_xmit_dlength);
drivers/scsi/cxgbi/libcxgbi.c
2546
static int cxgbi_conn_max_recv_dlength(struct iscsi_conn *conn)
drivers/scsi/cxgbi/libcxgbi.c
2548
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
2554
if (conn->max_recv_dlength) {
drivers/scsi/cxgbi/libcxgbi.c
2555
if (conn->max_recv_dlength > max) {
drivers/scsi/cxgbi/libcxgbi.c
2557
conn->max_recv_dlength, max);
drivers/scsi/cxgbi/libcxgbi.c
2560
conn->max_recv_dlength = min(conn->max_recv_dlength, max);
drivers/scsi/cxgbi/libcxgbi.c
2561
cxgbi_align_pdu_size(conn->max_recv_dlength);
drivers/scsi/cxgbi/libcxgbi.c
2563
conn->max_recv_dlength = max;
drivers/scsi/cxgbi/libcxgbi.c
2571
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
2572
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
2584
if (!err && conn->hdrdgst_en)
drivers/scsi/cxgbi/libcxgbi.c
2586
conn->hdrdgst_en,
drivers/scsi/cxgbi/libcxgbi.c
2587
conn->datadgst_en);
drivers/scsi/cxgbi/libcxgbi.c
2591
if (!err && conn->datadgst_en)
drivers/scsi/cxgbi/libcxgbi.c
2593
conn->hdrdgst_en,
drivers/scsi/cxgbi/libcxgbi.c
2594
conn->datadgst_en);
drivers/scsi/cxgbi/libcxgbi.c
2597
return iscsi_tcp_set_max_r2t(conn, buf);
drivers/scsi/cxgbi/libcxgbi.c
2601
err = cxgbi_conn_max_recv_dlength(conn);
drivers/scsi/cxgbi/libcxgbi.c
2606
err = cxgbi_conn_max_xmit_dlength(conn);
drivers/scsi/cxgbi/libcxgbi.c
2647
struct iscsi_conn *conn;
drivers/scsi/cxgbi/libcxgbi.c
2655
conn = cls_conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
2656
tcp_conn = conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
2658
cconn->iconn = conn;
drivers/scsi/cxgbi/libcxgbi.c
2662
cid, cid, cls_session, cls_conn, conn, tcp_conn, cconn);
drivers/scsi/cxgbi/libcxgbi.c
2672
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
2673
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/cxgbi/libcxgbi.c
2702
cconn->task_idx_bits = (__ilog2_u32(conn->session->cmds_max - 1)) + 1;
drivers/scsi/cxgbi/libcxgbi.c
2705
csk->user_data = conn;
drivers/scsi/cxgbi/libcxgbi.c
2711
cxgbi_conn_max_xmit_dlength(conn);
drivers/scsi/cxgbi/libcxgbi.c
2712
cxgbi_conn_max_recv_dlength(conn);
drivers/scsi/iscsi_tcp.c
100
ISCSI_SW_TCP_DBG(conn, "read %d bytes status %d\n",
drivers/scsi/iscsi_tcp.c
1021
struct iscsi_conn *conn = session->leadconn;
drivers/scsi/iscsi_tcp.c
1023
if (conn->datadgst_en)
drivers/scsi/iscsi_tcp.c
117
struct iscsi_conn *conn = sk->sk_user_data;
drivers/scsi/iscsi_tcp.c
120
(conn->session->state != ISCSI_STATE_LOGGING_OUT) &&
drivers/scsi/iscsi_tcp.c
122
ISCSI_SW_TCP_DBG(conn, "TCP_CLOSE|TCP_CLOSE_WAIT\n");
drivers/scsi/iscsi_tcp.c
123
iscsi_conn_failure(conn, ISCSI_ERR_TCP_CONN_CLOSE);
drivers/scsi/iscsi_tcp.c
129
static void iscsi_sw_tcp_recv_data(struct iscsi_conn *conn)
drivers/scsi/iscsi_tcp.c
131
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
142
rd_desc.arg.data = conn;
drivers/scsi/iscsi_tcp.c
156
struct iscsi_conn *conn = container_of(work, struct iscsi_conn,
drivers/scsi/iscsi_tcp.c
158
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
163
iscsi_sw_tcp_recv_data(conn);
drivers/scsi/iscsi_tcp.c
171
struct iscsi_conn *conn;
drivers/scsi/iscsi_tcp.c
176
conn = sk->sk_user_data;
drivers/scsi/iscsi_tcp.c
177
if (!conn) {
drivers/scsi/iscsi_tcp.c
181
tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
185
iscsi_conn_queue_recv(conn);
drivers/scsi/iscsi_tcp.c
187
iscsi_sw_tcp_recv_data(conn);
drivers/scsi/iscsi_tcp.c
195
struct iscsi_conn *conn;
drivers/scsi/iscsi_tcp.c
199
conn = sk->sk_user_data;
drivers/scsi/iscsi_tcp.c
200
if (!conn) {
drivers/scsi/iscsi_tcp.c
207
tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
222
struct iscsi_conn *conn;
drivers/scsi/iscsi_tcp.c
228
conn = sk->sk_user_data;
drivers/scsi/iscsi_tcp.c
229
if (!conn) {
drivers/scsi/iscsi_tcp.c
234
tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
241
ISCSI_SW_TCP_DBG(conn, "iscsi_write_space\n");
drivers/scsi/iscsi_tcp.c
242
iscsi_conn_queue_xmit(conn);
drivers/scsi/iscsi_tcp.c
245
static void iscsi_sw_tcp_conn_set_callbacks(struct iscsi_conn *conn)
drivers/scsi/iscsi_tcp.c
247
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
253
sk->sk_user_data = conn;
drivers/scsi/iscsi_tcp.c
264
iscsi_sw_tcp_conn_restore_callbacks(struct iscsi_conn *conn)
drivers/scsi/iscsi_tcp.c
266
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
342
static int iscsi_sw_tcp_xmit(struct iscsi_conn *conn)
drivers/scsi/iscsi_tcp.c
344
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
376
ISCSI_SW_TCP_DBG(conn, "xmit %d bytes\n", consumed);
drivers/scsi/iscsi_tcp.c
378
conn->txdata_octets += consumed;
drivers/scsi/iscsi_tcp.c
384
ISCSI_SW_TCP_DBG(conn, "Error sending PDU, errno=%d\n", rc);
drivers/scsi/iscsi_tcp.c
385
iscsi_conn_failure(conn, rc);
drivers/scsi/iscsi_tcp.c
393
static inline int iscsi_sw_tcp_xmit_qlen(struct iscsi_conn *conn)
drivers/scsi/iscsi_tcp.c
395
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
404
struct iscsi_conn *conn = task->conn;
drivers/scsi/iscsi_tcp.c
406
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
411
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/iscsi_tcp.c
418
while (iscsi_sw_tcp_xmit_qlen(conn)) {
drivers/scsi/iscsi_tcp.c
419
rc = iscsi_sw_tcp_xmit(conn);
drivers/scsi/iscsi_tcp.c
450
static void iscsi_sw_tcp_send_hdr_prep(struct iscsi_conn *conn, void *hdr,
drivers/scsi/iscsi_tcp.c
453
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
456
ISCSI_SW_TCP_DBG(conn, "%s\n", conn->hdrdgst_en ?
drivers/scsi/iscsi_tcp.c
469
if (conn->hdrdgst_en) {
drivers/scsi/iscsi_tcp.c
489
iscsi_sw_tcp_send_data_prep(struct iscsi_conn *conn, struct scatterlist *sg,
drivers/scsi/iscsi_tcp.c
493
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
498
ISCSI_SW_TCP_DBG(conn, "offset=%d, datalen=%d %s\n", offset, len,
drivers/scsi/iscsi_tcp.c
499
conn->datadgst_en ?
drivers/scsi/iscsi_tcp.c
507
if (conn->datadgst_en)
drivers/scsi/iscsi_tcp.c
515
iscsi_sw_tcp_send_linear_data_prep(struct iscsi_conn *conn, void *data,
drivers/scsi/iscsi_tcp.c
518
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
523
ISCSI_SW_TCP_DBG(conn, "datalen=%zd %s\n", len, conn->datadgst_en ?
drivers/scsi/iscsi_tcp.c
531
if (conn->datadgst_en)
drivers/scsi/iscsi_tcp.c
541
struct iscsi_conn *conn = task->conn;
drivers/scsi/iscsi_tcp.c
544
iscsi_sw_tcp_send_hdr_prep(conn, task->hdr, task->hdr_len);
drivers/scsi/iscsi_tcp.c
550
iscsi_sw_tcp_send_linear_data_prep(conn, task->data, count);
drivers/scsi/iscsi_tcp.c
554
err = iscsi_sw_tcp_send_data_prep(conn, sdb->table.sgl,
drivers/scsi/iscsi_tcp.c
579
struct iscsi_conn *conn;
drivers/scsi/iscsi_tcp.c
588
conn = cls_conn->dd_data;
drivers/scsi/iscsi_tcp.c
589
tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
591
INIT_WORK(&conn->recvwork, iscsi_sw_tcp_recv_data_work);
drivers/scsi/iscsi_tcp.c
600
static void iscsi_sw_tcp_release_conn(struct iscsi_conn *conn)
drivers/scsi/iscsi_tcp.c
602
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
621
iscsi_sw_tcp_conn_restore_callbacks(conn);
drivers/scsi/iscsi_tcp.c
624
iscsi_suspend_rx(conn);
drivers/scsi/iscsi_tcp.c
634
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/iscsi_tcp.c
636
iscsi_sw_tcp_release_conn(conn);
drivers/scsi/iscsi_tcp.c
642
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/iscsi_tcp.c
643
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
655
iscsi_suspend_tx(conn);
drivers/scsi/iscsi_tcp.c
658
iscsi_sw_tcp_release_conn(conn);
drivers/scsi/iscsi_tcp.c
668
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/iscsi_tcp.c
669
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
678
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/iscsi_tcp.c
705
iscsi_sw_tcp_conn_set_callbacks(conn);
drivers/scsi/iscsi_tcp.c
721
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/iscsi_tcp.c
722
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
739
return iscsi_tcp_set_max_r2t(conn, buf);
drivers/scsi/iscsi_tcp.c
750
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/iscsi_tcp.c
761
spin_lock_bh(&conn->session->frwd_lock);
drivers/scsi/iscsi_tcp.c
762
if (!conn->session->leadconn) {
drivers/scsi/iscsi_tcp.c
763
spin_unlock_bh(&conn->session->frwd_lock);
drivers/scsi/iscsi_tcp.c
770
iscsi_get_conn(conn->cls_conn);
drivers/scsi/iscsi_tcp.c
771
spin_unlock_bh(&conn->session->frwd_lock);
drivers/scsi/iscsi_tcp.c
773
tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
791
iscsi_put_conn(conn->cls_conn);
drivers/scsi/iscsi_tcp.c
809
struct iscsi_conn *conn;
drivers/scsi/iscsi_tcp.c
823
conn = session->leadconn;
drivers/scsi/iscsi_tcp.c
824
if (!conn) {
drivers/scsi/iscsi_tcp.c
828
tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
834
iscsi_get_conn(conn->cls_conn);
drivers/scsi/iscsi_tcp.c
844
iscsi_put_conn(conn->cls_conn);
drivers/scsi/iscsi_tcp.c
862
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/iscsi_tcp.c
863
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/iscsi_tcp.c
87
struct iscsi_conn *conn = rd_desc->arg.data;
drivers/scsi/iscsi_tcp.c
872
stats->custom[2].value = conn->eh_abort_cnt;
drivers/scsi/iscsi_tcp.c
91
ISCSI_SW_TCP_DBG(conn, "in %d bytes\n", skb->len - offset);
drivers/scsi/iscsi_tcp.c
95
consumed = iscsi_tcp_recv_skb(conn, skb, offset, 0, &status);
drivers/scsi/libiscsi.c
100
struct Scsi_Host *shost = conn->session->host;
drivers/scsi/libiscsi.c
1001
conn->exp_statsn = be32_to_cpu(hdr->statsn) + 1;
drivers/scsi/libiscsi.c
1002
conn->tmfrsp_pdus_cnt++;
drivers/scsi/libiscsi.c
1016
static int iscsi_send_nopout(struct iscsi_conn *conn, struct iscsi_nopin *rhdr)
drivers/scsi/libiscsi.c
1022
if (READ_ONCE(conn->ping_task))
drivers/scsi/libiscsi.c
103
if (ihost->workq && !test_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags))
drivers/scsi/libiscsi.c
1037
task = iscsi_alloc_mgmt_task(conn, (struct iscsi_hdr *)&hdr, NULL, 0);
drivers/scsi/libiscsi.c
104
queue_work(ihost->workq, &conn->recvwork);
drivers/scsi/libiscsi.c
1042
WRITE_ONCE(conn->ping_task, task);
drivers/scsi/libiscsi.c
1046
WRITE_ONCE(conn->ping_task, NULL);
drivers/scsi/libiscsi.c
1049
iscsi_conn_printk(KERN_ERR, conn, "Could not send nopout\n");
drivers/scsi/libiscsi.c
1053
conn->last_ping = jiffies;
drivers/scsi/libiscsi.c
1072
struct iscsi_conn *conn = task->conn;
drivers/scsi/libiscsi.c
1075
if (READ_ONCE(conn->ping_task) != task) {
drivers/scsi/libiscsi.c
1080
if (iscsi_recv_pdu(conn->cls_conn, (struct iscsi_hdr *)nop,
drivers/scsi/libiscsi.c
1084
mod_timer(&conn->transport_timer, jiffies + conn->recv_timeout);
drivers/scsi/libiscsi.c
1089
static int iscsi_handle_reject(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
drivers/scsi/libiscsi.c
1096
conn->exp_statsn = be32_to_cpu(reject->statsn) + 1;
drivers/scsi/libiscsi.c
1100
iscsi_conn_printk(KERN_ERR, conn, "Cannot handle rejected "
drivers/scsi/libiscsi.c
1111
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/libiscsi.c
1117
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/libiscsi.c
1138
spin_unlock(&conn->session->back_lock);
drivers/scsi/libiscsi.c
1139
spin_lock(&conn->session->frwd_lock);
drivers/scsi/libiscsi.c
1140
iscsi_send_nopout(conn,
drivers/scsi/libiscsi.c
1142
spin_unlock(&conn->session->frwd_lock);
drivers/scsi/libiscsi.c
1143
spin_lock(&conn->session->back_lock);
drivers/scsi/libiscsi.c
1150
task = iscsi_itt_to_task(conn, rejected_pdu.itt);
drivers/scsi/libiscsi.c
1152
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/libiscsi.c
1163
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/libiscsi.c
1182
struct iscsi_task *iscsi_itt_to_task(struct iscsi_conn *conn, itt_t itt)
drivers/scsi/libiscsi.c
1184
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
1191
session->tt->parse_pdu_itt(conn, itt, &i, NULL);
drivers/scsi/libiscsi.c
1212
int __iscsi_complete_pdu(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
drivers/scsi/libiscsi.c
1215
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
1220
conn->last_recv = jiffies;
drivers/scsi/libiscsi.c
1221
rc = iscsi_verify_itt(conn, hdr->itt);
drivers/scsi/libiscsi.c
1231
opcode, conn->id, itt, datalen);
drivers/scsi/libiscsi.c
1249
iscsi_send_nopout(conn, (struct iscsi_nopin*)hdr);
drivers/scsi/libiscsi.c
1254
rc = iscsi_handle_reject(conn, hdr, data, datalen);
drivers/scsi/libiscsi.c
1257
conn->exp_statsn = be32_to_cpu(hdr->statsn) + 1;
drivers/scsi/libiscsi.c
1258
if (iscsi_recv_pdu(conn->cls_conn, hdr, data, datalen))
drivers/scsi/libiscsi.c
1271
task = iscsi_itt_to_ctask(conn, hdr->itt);
drivers/scsi/libiscsi.c
1286
task = iscsi_itt_to_task(conn, hdr->itt);
drivers/scsi/libiscsi.c
1296
iscsi_scsi_cmd_rsp(conn, hdr, task, data, datalen);
drivers/scsi/libiscsi.c
1299
iscsi_data_in_rsp(conn, hdr, task);
drivers/scsi/libiscsi.c
1307
conn->exp_statsn = be32_to_cpu(hdr->statsn) + 1;
drivers/scsi/libiscsi.c
1324
iscsi_tmf_rsp(conn, hdr);
drivers/scsi/libiscsi.c
1333
conn->exp_statsn = be32_to_cpu(hdr->statsn) + 1;
drivers/scsi/libiscsi.c
1346
if (iscsi_recv_pdu(conn->cls_conn, hdr, data, datalen))
drivers/scsi/libiscsi.c
1353
int iscsi_complete_pdu(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
drivers/scsi/libiscsi.c
1358
spin_lock(&conn->session->back_lock);
drivers/scsi/libiscsi.c
1359
rc = __iscsi_complete_pdu(conn, hdr, data, datalen);
drivers/scsi/libiscsi.c
1360
spin_unlock(&conn->session->back_lock);
drivers/scsi/libiscsi.c
1365
int iscsi_verify_itt(struct iscsi_conn *conn, itt_t itt)
drivers/scsi/libiscsi.c
1367
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
1374
session->tt->parse_pdu_itt(conn, itt, &i, &age);
drivers/scsi/libiscsi.c
1381
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/libiscsi.c
1388
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/libiscsi.c
1406
struct iscsi_task *iscsi_itt_to_ctask(struct iscsi_conn *conn, itt_t itt)
drivers/scsi/libiscsi.c
1410
if (iscsi_verify_itt(conn, itt))
drivers/scsi/libiscsi.c
1413
task = iscsi_itt_to_task(conn, itt);
drivers/scsi/libiscsi.c
1417
if (iscsi_cmd(task->sc)->age != conn->session->age) {
drivers/scsi/libiscsi.c
1418
iscsi_session_printk(KERN_ERR, conn->session,
drivers/scsi/libiscsi.c
1420
iscsi_cmd(task->sc)->age, conn->session->age);
drivers/scsi/libiscsi.c
1431
struct iscsi_conn *conn;
drivers/scsi/libiscsi.c
1434
conn = session->leadconn;
drivers/scsi/libiscsi.c
1435
if (session->state == ISCSI_STATE_TERMINATE || !conn) {
drivers/scsi/libiscsi.c
1440
iscsi_get_conn(conn->cls_conn);
drivers/scsi/libiscsi.c
1448
iscsi_conn_error_event(conn->cls_conn, err);
drivers/scsi/libiscsi.c
1450
iscsi_conn_failure(conn, err);
drivers/scsi/libiscsi.c
1451
iscsi_put_conn(conn->cls_conn);
drivers/scsi/libiscsi.c
1455
static bool iscsi_set_conn_failed(struct iscsi_conn *conn)
drivers/scsi/libiscsi.c
1457
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
1462
if (conn->stop_stage == 0)
drivers/scsi/libiscsi.c
1465
set_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags);
drivers/scsi/libiscsi.c
1466
set_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags);
drivers/scsi/libiscsi.c
1470
void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err)
drivers/scsi/libiscsi.c
1472
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
1476
needs_evt = iscsi_set_conn_failed(conn);
drivers/scsi/libiscsi.c
1480
iscsi_conn_error_event(conn->cls_conn, err);
drivers/scsi/libiscsi.c
1484
static int iscsi_check_cmdsn_window_closed(struct iscsi_conn *conn)
drivers/scsi/libiscsi.c
1486
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
149
struct iscsi_conn *conn = task->conn;
drivers/scsi/libiscsi.c
1501
static int iscsi_xmit_task(struct iscsi_conn *conn, struct iscsi_task *task,
drivers/scsi/libiscsi.c
1506
if (!conn->task) {
drivers/scsi/libiscsi.c
1519
conn->task = NULL;
drivers/scsi/libiscsi.c
1533
if (test_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags)) {
drivers/scsi/libiscsi.c
1538
conn->task = task;
drivers/scsi/libiscsi.c
1542
spin_unlock_bh(&conn->session->frwd_lock);
drivers/scsi/libiscsi.c
1543
rc = conn->session->tt->xmit_task(task);
drivers/scsi/libiscsi.c
1544
spin_lock_bh(&conn->session->frwd_lock);
drivers/scsi/libiscsi.c
1554
conn->task = task;
drivers/scsi/libiscsi.c
1569
struct iscsi_conn *conn = task->conn;
drivers/scsi/libiscsi.c
1575
spin_lock_bh(&conn->session->frwd_lock);
drivers/scsi/libiscsi.c
1577
list_add_tail(&task->running, &conn->requeue);
drivers/scsi/libiscsi.c
1585
iscsi_conn_queue_xmit(conn);
drivers/scsi/libiscsi.c
1586
spin_unlock_bh(&conn->session->frwd_lock);
drivers/scsi/libiscsi.c
1599
static int iscsi_data_xmit(struct iscsi_conn *conn)
drivers/scsi/libiscsi.c
1604
spin_lock_bh(&conn->session->frwd_lock);
drivers/scsi/libiscsi.c
1605
if (test_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags)) {
drivers/scsi/libiscsi.c
1606
ISCSI_DBG_SESSION(conn->session, "Tx suspended!\n");
drivers/scsi/libiscsi.c
1607
spin_unlock_bh(&conn->session->frwd_lock);
drivers/scsi/libiscsi.c
1611
if (conn->task) {
drivers/scsi/libiscsi.c
1612
rc = iscsi_xmit_task(conn, conn->task, false);
drivers/scsi/libiscsi.c
1623
while (!list_empty(&conn->mgmtqueue)) {
drivers/scsi/libiscsi.c
1624
task = list_entry(conn->mgmtqueue.next, struct iscsi_task,
drivers/scsi/libiscsi.c
1627
if (iscsi_prep_mgmt_task(conn, task)) {
drivers/scsi/libiscsi.c
1629
spin_lock_bh(&conn->session->back_lock);
drivers/scsi/libiscsi.c
163
if (left > conn->max_xmit_dlength) {
drivers/scsi/libiscsi.c
1631
spin_unlock_bh(&conn->session->back_lock);
drivers/scsi/libiscsi.c
1634
rc = iscsi_xmit_task(conn, task, false);
drivers/scsi/libiscsi.c
164
hton24(hdr->dlength, conn->max_xmit_dlength);
drivers/scsi/libiscsi.c
1640
while (!list_empty(&conn->requeue)) {
drivers/scsi/libiscsi.c
1644
if (conn->session->state == ISCSI_STATE_LOGGING_OUT)
drivers/scsi/libiscsi.c
1647
task = list_entry(conn->requeue.next, struct iscsi_task,
drivers/scsi/libiscsi.c
165
r2t->data_count = conn->max_xmit_dlength;
drivers/scsi/libiscsi.c
1654
rc = iscsi_xmit_task(conn, task, true);
drivers/scsi/libiscsi.c
1657
if (!list_empty(&conn->mgmtqueue))
drivers/scsi/libiscsi.c
1662
while (!list_empty(&conn->cmdqueue)) {
drivers/scsi/libiscsi.c
1663
task = list_entry(conn->cmdqueue.next, struct iscsi_task,
drivers/scsi/libiscsi.c
1666
if (conn->session->state == ISCSI_STATE_LOGGING_OUT) {
drivers/scsi/libiscsi.c
1678
rc = iscsi_xmit_task(conn, task, false);
drivers/scsi/libiscsi.c
1686
if (!list_empty(&conn->mgmtqueue))
drivers/scsi/libiscsi.c
1688
if (!list_empty(&conn->requeue))
drivers/scsi/libiscsi.c
1692
spin_unlock_bh(&conn->session->frwd_lock);
drivers/scsi/libiscsi.c
1696
spin_unlock_bh(&conn->session->frwd_lock);
drivers/scsi/libiscsi.c
1702
struct iscsi_conn *conn =
drivers/scsi/libiscsi.c
1709
rc = iscsi_data_xmit(conn);
drivers/scsi/libiscsi.c
1713
static inline struct iscsi_task *iscsi_alloc_task(struct iscsi_conn *conn,
drivers/scsi/libiscsi.c
1718
if (!kfifo_out(&conn->session->cmdpool.queue,
drivers/scsi/libiscsi.c
172
conn->dataout_pdus_cnt++;
drivers/scsi/libiscsi.c
1722
iscsi_cmd(sc)->age = conn->session->age;
drivers/scsi/libiscsi.c
1727
task->conn = conn;
drivers/scsi/libiscsi.c
1757
struct iscsi_conn *conn;
drivers/scsi/libiscsi.c
1817
conn = session->leadconn;
drivers/scsi/libiscsi.c
1818
if (!conn) {
drivers/scsi/libiscsi.c
1824
if (test_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags)) {
drivers/scsi/libiscsi.c
1830
if (iscsi_check_cmdsn_window_closed(conn)) {
drivers/scsi/libiscsi.c
1835
task = iscsi_alloc_task(conn, sc);
drivers/scsi/libiscsi.c
1858
list_add_tail(&task->running, &conn->cmdqueue);
drivers/scsi/libiscsi.c
1859
iscsi_conn_queue_xmit(conn);
drivers/scsi/libiscsi.c
1915
static int iscsi_exec_task_mgmt_fn(struct iscsi_conn *conn,
drivers/scsi/libiscsi.c
1920
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
1922
if (__iscsi_conn_send_pdu(conn, (struct iscsi_hdr *)hdr, NULL, 0)) {
drivers/scsi/libiscsi.c
1924
iscsi_conn_printk(KERN_ERR, conn, "Could not send TMF.\n");
drivers/scsi/libiscsi.c
1925
iscsi_conn_failure(conn, ISCSI_ERR_CONN_FAILED);
drivers/scsi/libiscsi.c
1929
conn->tmfcmd_pdus_cnt++;
drivers/scsi/libiscsi.c
1964
static void fail_scsi_tasks(struct iscsi_conn *conn, u64 lun, int error)
drivers/scsi/libiscsi.c
1966
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
2012
void iscsi_suspend_queue(struct iscsi_conn *conn)
drivers/scsi/libiscsi.c
2014
spin_lock_bh(&conn->session->frwd_lock);
drivers/scsi/libiscsi.c
2015
set_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags);
drivers/scsi/libiscsi.c
2016
spin_unlock_bh(&conn->session->frwd_lock);
drivers/scsi/libiscsi.c
2028
void iscsi_suspend_tx(struct iscsi_conn *conn)
drivers/scsi/libiscsi.c
2030
struct Scsi_Host *shost = conn->session->host;
drivers/scsi/libiscsi.c
2033
set_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags);
drivers/scsi/libiscsi.c
2035
flush_work(&conn->xmitwork);
drivers/scsi/libiscsi.c
2039
static void iscsi_start_tx(struct iscsi_conn *conn)
drivers/scsi/libiscsi.c
2041
clear_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags);
drivers/scsi/libiscsi.c
2042
iscsi_conn_queue_xmit(conn);
drivers/scsi/libiscsi.c
2049
void iscsi_suspend_rx(struct iscsi_conn *conn)
drivers/scsi/libiscsi.c
2051
struct Scsi_Host *shost = conn->session->host;
drivers/scsi/libiscsi.c
2054
set_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags);
drivers/scsi/libiscsi.c
2056
flush_work(&conn->recvwork);
drivers/scsi/libiscsi.c
2066
static int iscsi_has_ping_timed_out(struct iscsi_conn *conn)
drivers/scsi/libiscsi.c
2068
if (READ_ONCE(conn->ping_task) &&
drivers/scsi/libiscsi.c
2069
time_before_eq(conn->last_recv + (conn->recv_timeout * HZ) +
drivers/scsi/libiscsi.c
2070
(conn->ping_timeout * HZ), jiffies))
drivers/scsi/libiscsi.c
2082
struct iscsi_conn *conn;
drivers/scsi/libiscsi.c
2136
conn = session->leadconn;
drivers/scsi/libiscsi.c
2137
if (!conn) {
drivers/scsi/libiscsi.c
2160
if (!conn->recv_timeout && !conn->ping_timeout)
drivers/scsi/libiscsi.c
2166
if (iscsi_has_ping_timed_out(conn)) {
drivers/scsi/libiscsi.c
2172
for (i = 0; i < conn->session->cmds_max; i++) {
drivers/scsi/libiscsi.c
2173
running_task = conn->session->cmds[i];
drivers/scsi/libiscsi.c
2219
if (READ_ONCE(conn->ping_task)) {
drivers/scsi/libiscsi.c
222
ISCSI_DBG_SESSION(task->conn->session,
drivers/scsi/libiscsi.c
2226
iscsi_send_nopout(conn, NULL);
drivers/scsi/libiscsi.c
2245
struct iscsi_conn *conn = timer_container_of(conn, t, transport_timer);
drivers/scsi/libiscsi.c
2246
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
2253
recv_timeout = conn->recv_timeout;
drivers/scsi/libiscsi.c
2258
last_recv = conn->last_recv;
drivers/scsi/libiscsi.c
2260
if (iscsi_has_ping_timed_out(conn)) {
drivers/scsi/libiscsi.c
2261
iscsi_conn_printk(KERN_ERR, conn, "ping timeout of %d secs "
drivers/scsi/libiscsi.c
2264
conn->ping_timeout, conn->recv_timeout,
drivers/scsi/libiscsi.c
2265
last_recv, conn->last_ping, jiffies);
drivers/scsi/libiscsi.c
2267
iscsi_conn_failure(conn, ISCSI_ERR_NOP_TIMEDOUT);
drivers/scsi/libiscsi.c
2273
ISCSI_DBG_CONN(conn, "Sending nopout as ping\n");
drivers/scsi/libiscsi.c
2274
if (iscsi_send_nopout(conn, NULL))
drivers/scsi/libiscsi.c
2277
next_timeout = conn->last_ping + (conn->ping_timeout * HZ);
drivers/scsi/libiscsi.c
2281
ISCSI_DBG_CONN(conn, "Setting next tmo %lu\n", next_timeout);
drivers/scsi/libiscsi.c
2282
mod_timer(&conn->transport_timer, next_timeout);
drivers/scsi/libiscsi.c
2299
struct iscsi_conn *conn;
drivers/scsi/libiscsi.c
2304
conn = cls_conn->dd_data;
drivers/scsi/libiscsi.c
2305
session = conn->session;
drivers/scsi/libiscsi.c
2314
iscsi_suspend_queue(conn);
drivers/scsi/libiscsi.c
2315
iscsi_suspend_tx(conn);
drivers/scsi/libiscsi.c
2318
clear_bit(ISCSI_CONN_FLAG_BOUND, &conn->flags);
drivers/scsi/libiscsi.c
2327
iscsi_set_conn_failed(conn);
drivers/scsi/libiscsi.c
2350
struct iscsi_conn *conn;
drivers/scsi/libiscsi.c
2410
conn = session->leadconn;
drivers/scsi/libiscsi.c
2411
iscsi_get_conn(conn->cls_conn);
drivers/scsi/libiscsi.c
2412
conn->eh_abort_cnt++;
drivers/scsi/libiscsi.c
2429
if (iscsi_exec_task_mgmt_fn(conn, hdr, age, session->abort_timeout))
drivers/scsi/libiscsi.c
2439
iscsi_suspend_tx(conn);
drivers/scsi/libiscsi.c
245
struct iscsi_session *session = task->conn->session;
drivers/scsi/libiscsi.c
2450
iscsi_start_tx(conn);
drivers/scsi/libiscsi.c
2455
iscsi_conn_failure(conn, ISCSI_ERR_SCSI_EH_SESSION_RST);
drivers/scsi/libiscsi.c
2478
iscsi_put_conn(conn->cls_conn);
drivers/scsi/libiscsi.c
2495
iscsi_put_conn(conn->cls_conn);
drivers/scsi/libiscsi.c
2515
struct iscsi_conn *conn;
drivers/scsi/libiscsi.c
2533
conn = session->leadconn;
drivers/scsi/libiscsi.c
2543
if (iscsi_exec_task_mgmt_fn(conn, hdr, session->age,
drivers/scsi/libiscsi.c
2554
iscsi_conn_failure(conn, ISCSI_ERR_SCSI_EH_SESSION_RST);
drivers/scsi/libiscsi.c
2564
iscsi_suspend_tx(conn);
drivers/scsi/libiscsi.c
2568
fail_scsi_tasks(conn, sc->device->lun, DID_ERROR);
drivers/scsi/libiscsi.c
2572
iscsi_start_tx(conn);
drivers/scsi/libiscsi.c
2609
struct iscsi_conn *conn;
drivers/scsi/libiscsi.c
2627
conn = session->leadconn;
drivers/scsi/libiscsi.c
2628
iscsi_get_conn(conn->cls_conn);
drivers/scsi/libiscsi.c
2633
iscsi_conn_failure(conn, ISCSI_ERR_SCSI_EH_SESSION_RST);
drivers/scsi/libiscsi.c
2634
iscsi_put_conn(conn->cls_conn);
drivers/scsi/libiscsi.c
2649
session->targetname, conn->persistent_address);
drivers/scsi/libiscsi.c
2677
struct iscsi_conn *conn;
drivers/scsi/libiscsi.c
2695
conn = session->leadconn;
drivers/scsi/libiscsi.c
2705
if (iscsi_exec_task_mgmt_fn(conn, hdr, session->age,
drivers/scsi/libiscsi.c
2716
iscsi_conn_failure(conn, ISCSI_ERR_SCSI_EH_SESSION_RST);
drivers/scsi/libiscsi.c
2726
iscsi_suspend_tx(conn);
drivers/scsi/libiscsi.c
2730
fail_scsi_tasks(conn, -1, DID_ERROR);
drivers/scsi/libiscsi.c
2734
iscsi_start_tx(conn);
drivers/scsi/libiscsi.c
316
struct iscsi_conn *conn = task->conn;
drivers/scsi/libiscsi.c
317
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
3178
struct iscsi_conn *conn;
drivers/scsi/libiscsi.c
3183
cls_conn = iscsi_alloc_conn(cls_session, sizeof(*conn) + dd_size,
drivers/scsi/libiscsi.c
3187
conn = cls_conn->dd_data;
drivers/scsi/libiscsi.c
3190
conn->dd_data = cls_conn->dd_data + sizeof(*conn);
drivers/scsi/libiscsi.c
3191
conn->session = session;
drivers/scsi/libiscsi.c
3192
conn->cls_conn = cls_conn;
drivers/scsi/libiscsi.c
3193
conn->c_stage = ISCSI_CONN_INITIAL_STAGE;
drivers/scsi/libiscsi.c
3194
conn->id = conn_idx;
drivers/scsi/libiscsi.c
3195
conn->exp_statsn = 0;
drivers/scsi/libiscsi.c
3197
timer_setup(&conn->transport_timer, iscsi_check_transport_timeouts, 0);
drivers/scsi/libiscsi.c
3199
INIT_LIST_HEAD(&conn->mgmtqueue);
drivers/scsi/libiscsi.c
3200
INIT_LIST_HEAD(&conn->cmdqueue);
drivers/scsi/libiscsi.c
3201
INIT_LIST_HEAD(&conn->requeue);
drivers/scsi/libiscsi.c
3202
INIT_WORK(&conn->xmitwork, iscsi_xmitworker);
drivers/scsi/libiscsi.c
3207
(void*)&conn->login_task,
drivers/scsi/libiscsi.c
3218
conn->login_task->data = conn->data = data;
drivers/scsi/libiscsi.c
3227
free_pages((unsigned long) conn->data,
drivers/scsi/libiscsi.c
3231
kfifo_in(&session->cmdpool.queue, (void*)&conn->login_task,
drivers/scsi/libiscsi.c
3248
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/libiscsi.c
3249
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
3253
timer_delete_sync(&conn->transport_timer);
drivers/scsi/libiscsi.c
3257
conn->c_stage = ISCSI_CONN_CLEANUP_WAIT;
drivers/scsi/libiscsi.c
3258
if (session->leadconn == conn) {
drivers/scsi/libiscsi.c
3268
iscsi_suspend_tx(conn);
drivers/scsi/libiscsi.c
3271
free_pages((unsigned long) conn->data,
drivers/scsi/libiscsi.c
3273
kfree(conn->persistent_address);
drivers/scsi/libiscsi.c
3274
kfree(conn->local_ipaddr);
drivers/scsi/libiscsi.c
3277
kfifo_in(&session->cmdpool.queue, (void*)&conn->login_task,
drivers/scsi/libiscsi.c
328
if (conn->session->tt->alloc_pdu) {
drivers/scsi/libiscsi.c
3280
if (session->leadconn == conn)
drivers/scsi/libiscsi.c
329
rc = conn->session->tt->alloc_pdu(task, ISCSI_OP_SCSI_CMD);
drivers/scsi/libiscsi.c
3291
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/libiscsi.c
3292
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
3295
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/libiscsi.c
3302
iscsi_conn_printk(KERN_INFO, conn, "invalid burst lengths: "
drivers/scsi/libiscsi.c
3308
if (conn->ping_timeout && !conn->recv_timeout) {
drivers/scsi/libiscsi.c
3309
iscsi_conn_printk(KERN_ERR, conn, "invalid recv timeout of "
drivers/scsi/libiscsi.c
3311
conn->recv_timeout = 5;
drivers/scsi/libiscsi.c
3314
if (conn->recv_timeout && !conn->ping_timeout) {
drivers/scsi/libiscsi.c
3315
iscsi_conn_printk(KERN_ERR, conn, "invalid ping timeout of "
drivers/scsi/libiscsi.c
3317
conn->ping_timeout = 5;
drivers/scsi/libiscsi.c
3321
conn->c_stage = ISCSI_CONN_STARTED;
drivers/scsi/libiscsi.c
3325
conn->last_recv = jiffies;
drivers/scsi/libiscsi.c
3326
conn->last_ping = jiffies;
drivers/scsi/libiscsi.c
3327
if (conn->recv_timeout && conn->ping_timeout)
drivers/scsi/libiscsi.c
3328
mod_timer(&conn->transport_timer,
drivers/scsi/libiscsi.c
3329
jiffies + (conn->recv_timeout * HZ));
drivers/scsi/libiscsi.c
3331
switch(conn->stop_stage) {
drivers/scsi/libiscsi.c
3337
conn->stop_stage = 0;
drivers/scsi/libiscsi.c
3344
conn->stop_stage = 0;
drivers/scsi/libiscsi.c
3358
fail_mgmt_tasks(struct iscsi_session *session, struct iscsi_conn *conn)
drivers/scsi/libiscsi.c
3363
for (i = 0; i < conn->session->cmds_max; i++) {
drivers/scsi/libiscsi.c
3364
task = conn->session->cmds[i];
drivers/scsi/libiscsi.c
3371
ISCSI_DBG_SESSION(conn->session,
drivers/scsi/libiscsi.c
3391
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/libiscsi.c
3392
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
3397
if (conn->stop_stage == STOP_CONN_TERM) {
drivers/scsi/libiscsi.c
341
task->conn->session->age);
drivers/scsi/libiscsi.c
3410
else if (conn->stop_stage != STOP_CONN_RECOVER)
drivers/scsi/libiscsi.c
3413
old_stop_stage = conn->stop_stage;
drivers/scsi/libiscsi.c
3414
conn->stop_stage = flag;
drivers/scsi/libiscsi.c
3417
timer_delete_sync(&conn->transport_timer);
drivers/scsi/libiscsi.c
3418
iscsi_suspend_tx(conn);
drivers/scsi/libiscsi.c
3421
conn->c_stage = ISCSI_CONN_STOPPED;
drivers/scsi/libiscsi.c
3431
conn->hdrdgst_en = 0;
drivers/scsi/libiscsi.c
3432
conn->datadgst_en = 0;
drivers/scsi/libiscsi.c
3444
fail_scsi_tasks(conn, -1, DID_TRANSPORT_DISRUPTED);
drivers/scsi/libiscsi.c
3445
fail_mgmt_tasks(session, conn);
drivers/scsi/libiscsi.c
3456
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/libiscsi.c
3460
session->leadconn = conn;
drivers/scsi/libiscsi.c
3462
set_bit(ISCSI_CONN_FLAG_BOUND, &conn->flags);
drivers/scsi/libiscsi.c
3475
clear_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags);
drivers/scsi/libiscsi.c
3476
clear_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags);
drivers/scsi/libiscsi.c
350
hdr->exp_statsn = cpu_to_be32(conn->exp_statsn);
drivers/scsi/libiscsi.c
3503
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/libiscsi.c
3504
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
3521
sscanf(buf, "%d", &conn->ping_timeout);
drivers/scsi/libiscsi.c
3524
sscanf(buf, "%d", &conn->recv_timeout);
drivers/scsi/libiscsi.c
3527
sscanf(buf, "%d", &conn->max_recv_dlength);
drivers/scsi/libiscsi.c
3530
sscanf(buf, "%d", &conn->max_xmit_dlength);
drivers/scsi/libiscsi.c
3533
sscanf(buf, "%d", &conn->hdrdgst_en);
drivers/scsi/libiscsi.c
3536
sscanf(buf, "%d", &conn->datadgst_en);
drivers/scsi/libiscsi.c
3563
sscanf(buf, "%u", &conn->exp_statsn);
drivers/scsi/libiscsi.c
3581
sscanf(buf, "%d", &conn->persistent_port);
drivers/scsi/libiscsi.c
3584
return iscsi_switch_str_param(&conn->persistent_address, buf);
drivers/scsi/libiscsi.c
3605
return iscsi_switch_str_param(&conn->local_ipaddr, buf);
drivers/scsi/libiscsi.c
3795
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/libiscsi.c
3800
len = sysfs_emit(buf, "%u\n", conn->ping_timeout);
drivers/scsi/libiscsi.c
3803
len = sysfs_emit(buf, "%u\n", conn->recv_timeout);
drivers/scsi/libiscsi.c
3806
len = sysfs_emit(buf, "%u\n", conn->max_recv_dlength);
drivers/scsi/libiscsi.c
3809
len = sysfs_emit(buf, "%u\n", conn->max_xmit_dlength);
drivers/scsi/libiscsi.c
3812
len = sysfs_emit(buf, "%d\n", conn->hdrdgst_en);
drivers/scsi/libiscsi.c
3815
len = sysfs_emit(buf, "%d\n", conn->datadgst_en);
drivers/scsi/libiscsi.c
3818
len = sysfs_emit(buf, "%d\n", conn->ifmarker_en);
drivers/scsi/libiscsi.c
3821
len = sysfs_emit(buf, "%d\n", conn->ofmarker_en);
drivers/scsi/libiscsi.c
3824
len = sysfs_emit(buf, "%u\n", conn->exp_statsn);
drivers/scsi/libiscsi.c
3827
len = sysfs_emit(buf, "%d\n", conn->persistent_port);
drivers/scsi/libiscsi.c
3830
len = sysfs_emit(buf, "%s\n", conn->persistent_address);
drivers/scsi/libiscsi.c
3833
len = sysfs_emit(buf, "%u\n", conn->statsn);
drivers/scsi/libiscsi.c
3836
len = sysfs_emit(buf, "%u\n", conn->max_segment_size);
drivers/scsi/libiscsi.c
3839
len = sysfs_emit(buf, "%u\n", conn->keepalive_tmo);
drivers/scsi/libiscsi.c
3842
len = sysfs_emit(buf, "%u\n", conn->local_port);
drivers/scsi/libiscsi.c
3845
len = sysfs_emit(buf, "%u\n", conn->tcp_timestamp_stat);
drivers/scsi/libiscsi.c
3848
len = sysfs_emit(buf, "%u\n", conn->tcp_nagle_disable);
drivers/scsi/libiscsi.c
3851
len = sysfs_emit(buf, "%u\n", conn->tcp_wsf_disable);
drivers/scsi/libiscsi.c
3854
len = sysfs_emit(buf, "%u\n", conn->tcp_timer_scale);
drivers/scsi/libiscsi.c
3857
len = sysfs_emit(buf, "%u\n", conn->tcp_timestamp_en);
drivers/scsi/libiscsi.c
3860
len = sysfs_emit(buf, "%u\n", conn->fragment_disable);
drivers/scsi/libiscsi.c
3863
len = sysfs_emit(buf, "%u\n", conn->ipv4_tos);
drivers/scsi/libiscsi.c
3866
len = sysfs_emit(buf, "%u\n", conn->ipv6_traffic_class);
drivers/scsi/libiscsi.c
3869
len = sysfs_emit(buf, "%u\n", conn->ipv6_flow_label);
drivers/scsi/libiscsi.c
3872
len = sysfs_emit(buf, "%u\n", conn->is_fw_assigned_ipv6);
drivers/scsi/libiscsi.c
3875
len = sysfs_emit(buf, "%u\n", conn->tcp_xmit_wsf);
drivers/scsi/libiscsi.c
3878
len = sysfs_emit(buf, "%u\n", conn->tcp_recv_wsf);
drivers/scsi/libiscsi.c
3881
len = sysfs_emit(buf, "%s\n", conn->local_ipaddr);
drivers/scsi/libiscsi.c
391
conn->max_xmit_dlength);
drivers/scsi/libiscsi.c
394
conn->max_xmit_dlength);
drivers/scsi/libiscsi.c
405
r2t->exp_statsn = cpu_to_be32(conn->exp_statsn);
drivers/scsi/libiscsi.c
435
conn->scsicmd_pdus_cnt++;
drivers/scsi/libiscsi.c
439
"write" : "read", conn->id, sc, sc->cmnd[0],
drivers/scsi/libiscsi.c
456
struct iscsi_conn *conn = task->conn;
drivers/scsi/libiscsi.c
457
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
470
if (conn->login_task == task)
drivers/scsi/libiscsi.c
508
struct iscsi_session *session = task->conn->session;
drivers/scsi/libiscsi.c
527
struct iscsi_conn *conn = task->conn;
drivers/scsi/libiscsi.c
529
ISCSI_DBG_SESSION(conn->session,
drivers/scsi/libiscsi.c
540
if (READ_ONCE(conn->ping_task) == task)
drivers/scsi/libiscsi.c
541
WRITE_ONCE(conn->ping_task, NULL);
drivers/scsi/libiscsi.c
561
struct iscsi_conn *conn = task->conn;
drivers/scsi/libiscsi.c
563
ISCSI_DBG_SESSION(conn->session, "[itt 0x%x]\n", task->itt);
drivers/scsi/libiscsi.c
565
conn->last_recv = jiffies;
drivers/scsi/libiscsi.c
566
__iscsi_update_cmdsn(conn->session, exp_cmdsn, max_cmdsn);
drivers/scsi/libiscsi.c
576
struct iscsi_conn *conn = task->conn;
drivers/scsi/libiscsi.c
598
if (conn->session->running_aborted_task == task) {
drivers/scsi/libiscsi.c
599
conn->session->running_aborted_task = NULL;
drivers/scsi/libiscsi.c
603
if (conn->task == task) {
drivers/scsi/libiscsi.c
604
conn->task = NULL;
drivers/scsi/libiscsi.c
617
struct iscsi_conn *conn = task->conn;
drivers/scsi/libiscsi.c
629
conn->session->queued_cmdsn--;
drivers/scsi/libiscsi.c
645
struct iscsi_session *session = task->conn->session;
drivers/scsi/libiscsi.c
652
static int iscsi_prep_mgmt_task(struct iscsi_conn *conn,
drivers/scsi/libiscsi.c
655
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
660
if (conn->session->state == ISCSI_STATE_LOGGING_OUT)
drivers/scsi/libiscsi.c
664
nop->exp_statsn = cpu_to_be32(conn->exp_statsn);
drivers/scsi/libiscsi.c
678
if (conn->c_stage == ISCSI_CONN_STARTED &&
drivers/scsi/libiscsi.c
706
iscsi_alloc_mgmt_task(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
drivers/scsi/libiscsi.c
709
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
715
!test_bit(ISCSI_CONN_FLAG_BOUND, &conn->flags))
drivers/scsi/libiscsi.c
725
if (conn->login_task->state != ISCSI_TASK_FREE) {
drivers/scsi/libiscsi.c
726
iscsi_conn_printk(KERN_ERR, conn, "Login/Text in "
drivers/scsi/libiscsi.c
732
iscsi_conn_printk(KERN_ERR, conn, "Invalid buffer len of %u for login task. Max len is %u\n", data_size, ISCSI_DEF_MAX_RECV_SEG_LEN);
drivers/scsi/libiscsi.c
736
task = conn->login_task;
drivers/scsi/libiscsi.c
742
iscsi_conn_printk(KERN_ERR, conn, "Can not send data buffer of len %u for op 0x%x\n", data_size, opcode);
drivers/scsi/libiscsi.c
746
BUG_ON(conn->c_stage == ISCSI_CONN_INITIAL_STAGE);
drivers/scsi/libiscsi.c
747
BUG_ON(conn->c_stage == ISCSI_CONN_STOPPED);
drivers/scsi/libiscsi.c
759
task->conn = conn;
drivers/scsi/libiscsi.c
770
if (conn->session->tt->alloc_pdu) {
drivers/scsi/libiscsi.c
771
if (conn->session->tt->alloc_pdu(task, hdr->opcode)) {
drivers/scsi/libiscsi.c
772
iscsi_conn_printk(KERN_ERR, conn, "Could not allocate "
drivers/scsi/libiscsi.c
787
task->conn->session->age);
drivers/scsi/libiscsi.c
806
struct iscsi_conn *conn = task->conn;
drivers/scsi/libiscsi.c
807
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
808
struct iscsi_host *ihost = shost_priv(conn->session->host);
drivers/scsi/libiscsi.c
812
rc = iscsi_prep_mgmt_task(conn, task);
drivers/scsi/libiscsi.c
820
list_add_tail(&task->running, &conn->mgmtqueue);
drivers/scsi/libiscsi.c
821
iscsi_conn_queue_xmit(conn);
drivers/scsi/libiscsi.c
827
static int __iscsi_conn_send_pdu(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
drivers/scsi/libiscsi.c
833
task = iscsi_alloc_mgmt_task(conn, hdr, data, data_size);
drivers/scsi/libiscsi.c
846
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/libiscsi.c
847
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
851
if (__iscsi_conn_send_pdu(conn, hdr, data, data_size))
drivers/scsi/libiscsi.c
869
static void iscsi_scsi_cmd_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
drivers/scsi/libiscsi.c
874
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi.c
878
conn->exp_statsn = be32_to_cpu(rhdr->statsn) + 1;
drivers/scsi/libiscsi.c
88
inline void iscsi_conn_queue_xmit(struct iscsi_conn *conn)
drivers/scsi/libiscsi.c
90
struct Scsi_Host *shost = conn->session->host;
drivers/scsi/libiscsi.c
913
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/libiscsi.c
94
queue_work(ihost->workq, &conn->xmitwork);
drivers/scsi/libiscsi.c
951
conn->scsirsp_pdus_cnt++;
drivers/scsi/libiscsi.c
965
iscsi_data_in_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
drivers/scsi/libiscsi.c
974
iscsi_update_cmdsn(conn->session, (struct iscsi_nopin *)hdr);
drivers/scsi/libiscsi.c
976
conn->exp_statsn = be32_to_cpu(rhdr->statsn) + 1;
drivers/scsi/libiscsi.c
98
inline void iscsi_conn_queue_recv(struct iscsi_conn *conn)
drivers/scsi/libiscsi.c
989
ISCSI_DBG_SESSION(conn->session, "data in with status done "
drivers/scsi/libiscsi.c
992
conn->scsirsp_pdus_cnt++;
drivers/scsi/libiscsi.c
996
static void iscsi_tmf_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr)
drivers/scsi/libiscsi.c
999
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi_tcp.c
1003
ISCSI_DBG_TCP(conn, "task deq [itt 0x%x imm %d unsol %d]\n",
drivers/scsi/libiscsi_tcp.c
1006
err = conn->session->tt->init_pdu(task, 0, task->imm_count);
drivers/scsi/libiscsi_tcp.c
1027
ISCSI_DBG_TCP(task->conn,
drivers/scsi/libiscsi_tcp.c
1060
struct iscsi_conn *conn = task->conn;
drivers/scsi/libiscsi_tcp.c
1061
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi_tcp.c
1085
ISCSI_DBG_TCP(conn, "no R2Ts yet\n");
drivers/scsi/libiscsi_tcp.c
1089
rc = conn->session->tt->alloc_pdu(task, ISCSI_OP_SCSI_DATA_OUT);
drivers/scsi/libiscsi_tcp.c
1094
ISCSI_DBG_TCP(conn, "sol dout %p [dsn %d itt 0x%x doff %d dlen %d]\n",
drivers/scsi/libiscsi_tcp.c
1098
rc = conn->session->tt->init_pdu(task, r2t->data_offset + r2t->sent,
drivers/scsi/libiscsi_tcp.c
1101
iscsi_conn_failure(conn, ISCSI_ERR_XMIT_FAILED);
drivers/scsi/libiscsi_tcp.c
1115
struct iscsi_conn *conn;
drivers/scsi/libiscsi_tcp.c
1123
conn = cls_conn->dd_data;
drivers/scsi/libiscsi_tcp.c
1128
conn->max_recv_dlength = ISCSI_DEF_MAX_RECV_SEG_LEN;
drivers/scsi/libiscsi_tcp.c
1130
tcp_conn = conn->dd_data;
drivers/scsi/libiscsi_tcp.c
1131
tcp_conn->iscsi_conn = conn;
drivers/scsi/libiscsi_tcp.c
1132
tcp_conn->dd_data = conn->dd_data + sizeof(*tcp_conn);
drivers/scsi/libiscsi_tcp.c
1206
int iscsi_tcp_set_max_r2t(struct iscsi_conn *conn, char *buf)
drivers/scsi/libiscsi_tcp.c
1208
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi_tcp.c
1227
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/libiscsi_tcp.c
1229
stats->txdata_octets = conn->txdata_octets;
drivers/scsi/libiscsi_tcp.c
1230
stats->rxdata_octets = conn->rxdata_octets;
drivers/scsi/libiscsi_tcp.c
1231
stats->scsicmd_pdus = conn->scsicmd_pdus_cnt;
drivers/scsi/libiscsi_tcp.c
1232
stats->dataout_pdus = conn->dataout_pdus_cnt;
drivers/scsi/libiscsi_tcp.c
1233
stats->scsirsp_pdus = conn->scsirsp_pdus_cnt;
drivers/scsi/libiscsi_tcp.c
1234
stats->datain_pdus = conn->datain_pdus_cnt;
drivers/scsi/libiscsi_tcp.c
1235
stats->r2t_pdus = conn->r2t_pdus_cnt;
drivers/scsi/libiscsi_tcp.c
1236
stats->tmfcmd_pdus = conn->tmfcmd_pdus_cnt;
drivers/scsi/libiscsi_tcp.c
1237
stats->tmfrsp_pdus = conn->tmfrsp_pdus_cnt;
drivers/scsi/libiscsi_tcp.c
407
struct iscsi_conn *conn = tcp_conn->iscsi_conn;
drivers/scsi/libiscsi_tcp.c
413
rc = iscsi_complete_pdu(conn, tcp_conn->in.hdr,
drivers/scsi/libiscsi_tcp.c
414
conn->data, tcp_conn->in.datalen);
drivers/scsi/libiscsi_tcp.c
425
struct iscsi_conn *conn = tcp_conn->iscsi_conn;
drivers/scsi/libiscsi_tcp.c
428
if (conn->datadgst_en &&
drivers/scsi/libiscsi_tcp.c
429
!(conn->session->tt->caps & CAP_DIGEST_OFFLOAD))
drivers/scsi/libiscsi_tcp.c
433
conn->data, tcp_conn->in.datalen,
drivers/scsi/libiscsi_tcp.c
457
ISCSI_DBG_TCP(task->conn, "pending r2t dropped\n");
drivers/scsi/libiscsi_tcp.c
475
static int iscsi_tcp_data_in(struct iscsi_conn *conn, struct iscsi_task *task)
drivers/scsi/libiscsi_tcp.c
477
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/libiscsi_tcp.c
488
iscsi_update_cmdsn(conn->session, (struct iscsi_nopin*)rhdr);
drivers/scsi/libiscsi_tcp.c
494
ISCSI_DBG_TCP(conn, "task->exp_datasn(%d) != rhdr->datasn(%d)"
drivers/scsi/libiscsi_tcp.c
503
ISCSI_DBG_TCP(conn, "data_offset(%d) + data_len(%d) > "
drivers/scsi/libiscsi_tcp.c
509
conn->datain_pdus_cnt++;
drivers/scsi/libiscsi_tcp.c
518
static int iscsi_tcp_r2t_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr)
drivers/scsi/libiscsi_tcp.c
520
struct iscsi_session *session = conn->session;
drivers/scsi/libiscsi_tcp.c
532
task = iscsi_itt_to_ctask(conn, hdr->itt);
drivers/scsi/libiscsi_tcp.c
556
tcp_conn = conn->dd_data;
drivers/scsi/libiscsi_tcp.c
563
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/libiscsi_tcp.c
573
ISCSI_DBG_TCP(conn, "task->exp_datasn(%d) != rhdr->r2tsn(%d)\n",
drivers/scsi/libiscsi_tcp.c
580
iscsi_conn_printk(KERN_INFO, conn,
drivers/scsi/libiscsi_tcp.c
589
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/libiscsi_tcp.c
596
ISCSI_DBG_TCP(conn, "invalid R2T with data len %u and max "
drivers/scsi/libiscsi_tcp.c
602
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/libiscsi_tcp.c
613
iscsi_conn_printk(KERN_ERR, conn, "Could not allocate R2T. "
drivers/scsi/libiscsi_tcp.c
631
conn->r2t_pdus_cnt++;
drivers/scsi/libiscsi_tcp.c
649
struct iscsi_conn *conn = tcp_conn->iscsi_conn;
drivers/scsi/libiscsi_tcp.c
658
rc = iscsi_complete_pdu(conn, tcp_conn->in.hdr, NULL, 0);
drivers/scsi/libiscsi_tcp.c
678
iscsi_tcp_hdr_dissect(struct iscsi_conn *conn, struct iscsi_hdr *hdr)
drivers/scsi/libiscsi_tcp.c
681
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/libiscsi_tcp.c
686
if (tcp_conn->in.datalen > conn->max_recv_dlength) {
drivers/scsi/libiscsi_tcp.c
687
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/libiscsi_tcp.c
689
tcp_conn->in.datalen, conn->max_recv_dlength);
drivers/scsi/libiscsi_tcp.c
700
rc = iscsi_verify_itt(conn, hdr->itt);
drivers/scsi/libiscsi_tcp.c
704
ISCSI_DBG_TCP(conn, "opcode 0x%x ahslen %d datalen %d\n",
drivers/scsi/libiscsi_tcp.c
709
spin_lock(&conn->session->back_lock);
drivers/scsi/libiscsi_tcp.c
710
task = iscsi_itt_to_ctask(conn, hdr->itt);
drivers/scsi/libiscsi_tcp.c
714
rc = iscsi_tcp_data_in(conn, task);
drivers/scsi/libiscsi_tcp.c
716
spin_unlock(&conn->session->back_lock);
drivers/scsi/libiscsi_tcp.c
733
if (conn->datadgst_en &&
drivers/scsi/libiscsi_tcp.c
734
!(conn->session->tt->caps & CAP_DIGEST_OFFLOAD))
drivers/scsi/libiscsi_tcp.c
737
ISCSI_DBG_TCP(conn, "iscsi_tcp_begin_data_in( "
drivers/scsi/libiscsi_tcp.c
749
spin_unlock(&conn->session->back_lock);
drivers/scsi/libiscsi_tcp.c
752
rc = __iscsi_complete_pdu(conn, hdr, NULL, 0);
drivers/scsi/libiscsi_tcp.c
753
spin_unlock(&conn->session->back_lock);
drivers/scsi/libiscsi_tcp.c
760
rc = iscsi_complete_pdu(conn, hdr, NULL, 0);
drivers/scsi/libiscsi_tcp.c
767
rc = iscsi_tcp_r2t_rsp(conn, hdr);
drivers/scsi/libiscsi_tcp.c
779
iscsi_conn_printk(KERN_ERR, conn,
drivers/scsi/libiscsi_tcp.c
800
rc = iscsi_complete_pdu(conn, hdr, NULL, 0);
drivers/scsi/libiscsi_tcp.c
831
struct iscsi_conn *conn = tcp_conn->iscsi_conn;
drivers/scsi/libiscsi_tcp.c
857
if (conn->hdrdgst_en &&
drivers/scsi/libiscsi_tcp.c
858
!(conn->session->tt->caps & CAP_DIGEST_OFFLOAD)) {
drivers/scsi/libiscsi_tcp.c
879
return iscsi_tcp_hdr_dissect(conn, hdr);
drivers/scsi/libiscsi_tcp.c
906
int iscsi_tcp_recv_skb(struct iscsi_conn *conn, struct sk_buff *skb,
drivers/scsi/libiscsi_tcp.c
909
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
drivers/scsi/libiscsi_tcp.c
915
ISCSI_DBG_TCP(conn, "in %d bytes\n", skb->len - offset);
drivers/scsi/libiscsi_tcp.c
921
conn->last_recv = jiffies;
drivers/scsi/libiscsi_tcp.c
923
if (unlikely(test_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags))) {
drivers/scsi/libiscsi_tcp.c
924
ISCSI_DBG_TCP(conn, "Rx suspended!\n");
drivers/scsi/libiscsi_tcp.c
941
ISCSI_DBG_TCP(conn, "no more data avail. Consumed %d\n",
drivers/scsi/libiscsi_tcp.c
948
ISCSI_DBG_TCP(conn, "skb %p ptr=%p avail=%u\n", skb, ptr,
drivers/scsi/libiscsi_tcp.c
962
ISCSI_DBG_TCP(conn, "segment done\n");
drivers/scsi/libiscsi_tcp.c
966
ISCSI_DBG_TCP(conn, "Error receiving PDU, errno=%d\n", rc);
drivers/scsi/libiscsi_tcp.c
967
iscsi_conn_failure(conn, rc);
drivers/scsi/libiscsi_tcp.c
973
conn->rxdata_octets += consumed;
drivers/scsi/libiscsi_tcp.c
985
struct iscsi_conn *conn = task->conn;
drivers/scsi/libiscsi_tcp.c
994
ISCSI_DBG_TCP(conn, "mtask deq [itt 0x%x]\n", task->itt);
drivers/scsi/libiscsi_tcp.c
996
return conn->session->tt->init_pdu(task, 0, task->data_count);
drivers/scsi/qedi/qedi_fw.c
110
conn->session->age);
drivers/scsi/qedi/qedi_fw.c
1144
struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
1145
struct iscsi_session *session = conn->session;
drivers/scsi/qedi/qedi_fw.c
1316
struct qedi_conn *qedi_conn = qedi_cmd->conn;
drivers/scsi/qedi/qedi_fw.c
1318
struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
1329
spin_lock_bh(&conn->session->back_lock);
drivers/scsi/qedi/qedi_fw.c
1330
ctask = iscsi_itt_to_ctask(conn, tmf_hdr->rtt);
drivers/scsi/qedi/qedi_fw.c
1332
spin_unlock_bh(&conn->session->back_lock);
drivers/scsi/qedi/qedi_fw.c
1338
spin_unlock_bh(&conn->session->back_lock);
drivers/scsi/qedi/qedi_fw.c
1347
spin_unlock_bh(&conn->session->back_lock);
drivers/scsi/qedi/qedi_fw.c
141
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr_ptr,
drivers/scsi/qedi/qedi_fw.c
152
struct qedi_conn *qedi_conn = qedi_cmd->conn;
drivers/scsi/qedi/qedi_fw.c
154
struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
155
struct iscsi_session *session = conn->session;
drivers/scsi/qedi/qedi_fw.c
166
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr_ptr, NULL, 0);
drivers/scsi/qedi/qedi_fw.c
1767
QEDI_INFO(&cmd->conn->qedi->dbg_ctx, QEDI_LOG_IO,
drivers/scsi/qedi/qedi_fw.c
183
struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
184
struct iscsi_session *session = conn->session;
drivers/scsi/qedi/qedi_fw.c
1879
bd_count = qedi_map_scsi_sg(cmd->conn->qedi, cmd);
drivers/scsi/qedi/qedi_fw.c
1917
struct iscsi_conn *conn = task->conn;
drivers/scsi/qedi/qedi_fw.c
1918
struct qedi_conn *qedi_conn = conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
1970
struct iscsi_conn *conn = task->conn;
drivers/scsi/qedi/qedi_fw.c
1971
struct iscsi_session *session = conn->session;
drivers/scsi/qedi/qedi_fw.c
1974
struct qedi_conn *qedi_conn = conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
1998
conn = cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
2070
conn_params.first_burst_length = conn->session->first_burst;
drivers/scsi/qedi/qedi_fw.c
2071
conn_params.max_send_pdu_length = conn->max_xmit_dlength;
drivers/scsi/qedi/qedi_fw.c
2072
conn_params.max_burst_length = conn->session->max_burst;
drivers/scsi/qedi/qedi_fw.c
2073
if (conn->session->initial_r2t_en)
drivers/scsi/qedi/qedi_fw.c
2075
if (conn->session->imm_data_en)
drivers/scsi/qedi/qedi_fw.c
2132
struct iscsi_conn *conn = task->conn;
drivers/scsi/qedi/qedi_fw.c
2133
struct qedi_conn *qedi_conn = conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
215
conn->session->age);
drivers/scsi/qedi/qedi_fw.c
250
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr_ptr, NULL, 0);
drivers/scsi/qedi/qedi_fw.c
262
struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
263
struct iscsi_session *session = conn->session;
drivers/scsi/qedi/qedi_fw.c
286
conn->session->age);
drivers/scsi/qedi/qedi_fw.c
307
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr_ptr,
drivers/scsi/qedi/qedi_fw.c
35
struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
37
struct iscsi_session *session = conn->session;
drivers/scsi/qedi/qedi_fw.c
413
struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
414
struct iscsi_session *session = conn->session;
drivers/scsi/qedi/qedi_fw.c
454
conn->session->age);
drivers/scsi/qedi/qedi_fw.c
473
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)hdr, bdq_data, pdu_len);
drivers/scsi/qedi/qedi_fw.c
485
struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
486
struct iscsi_session *session = conn->session;
drivers/scsi/qedi/qedi_fw.c
50
resp_hdr->itt = build_itt(cqe->cqe_solicited.itid, conn->session->age);
drivers/scsi/qedi/qedi_fw.c
527
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr, bdq_data,
drivers/scsi/qedi/qedi_fw.c
539
struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
540
struct iscsi_session *session = conn->session;
drivers/scsi/qedi/qedi_fw.c
555
pld_len, num_bdqs, conn->data);
drivers/scsi/qedi/qedi_fw.c
570
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)hdr,
drivers/scsi/qedi/qedi_fw.c
571
conn->data, pld_len);
drivers/scsi/qedi/qedi_fw.c
578
struct iscsi_conn *conn)
drivers/scsi/qedi/qedi_fw.c
582
struct iscsi_session *session = conn->session;
drivers/scsi/qedi/qedi_fw.c
625
hdr->itt = build_itt(cqe->cqe_solicited.itid, conn->session->age);
drivers/scsi/qedi/qedi_fw.c
634
memcpy((char *)conn->data, (char *)cmd->sense_buffer, datalen);
drivers/scsi/qedi/qedi_fw.c
667
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)hdr,
drivers/scsi/qedi/qedi_fw.c
668
conn->data, datalen);
drivers/scsi/qedi/qedi_fw.c
676
struct qedi_conn *conn, uint16_t que_idx)
drivers/scsi/qedi/qedi_fw.c
682
iscsi_conn = conn->cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
690
qedi_process_login_resp(qedi, cqe, task, conn);
drivers/scsi/qedi/qedi_fw.c
693
qedi_process_tmf_resp(qedi, cqe, task, conn);
drivers/scsi/qedi/qedi_fw.c
696
qedi_process_text_resp(qedi, cqe, task, conn);
drivers/scsi/qedi/qedi_fw.c
699
qedi_process_logout_resp(qedi, cqe, task, conn);
drivers/scsi/qedi/qedi_fw.c
702
qedi_process_nopin_mesg(qedi, cqe, task, conn, que_idx);
drivers/scsi/qedi/qedi_fw.c
714
struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
715
struct iscsi_session *session = conn->session;
drivers/scsi/qedi/qedi_fw.c
731
struct iscsi_conn *conn)
drivers/scsi/qedi/qedi_fw.c
76
__iscsi_complete_pdu(conn, (struct iscsi_hdr *)resp_hdr, NULL, 0);
drivers/scsi/qedi/qedi_fw.c
783
spin_lock_bh(&conn->session->back_lock);
drivers/scsi/qedi/qedi_fw.c
807
spin_unlock_bh(&conn->session->back_lock);
drivers/scsi/qedi/qedi_fw.c
828
struct iscsi_conn *conn;
drivers/scsi/qedi/qedi_fw.c
859
conn = q_conn->cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
86
struct iscsi_conn *conn = qedi_conn->cls_conn->dd_data;
drivers/scsi/qedi/qedi_fw.c
864
iscsi_conn_failure(conn, ISCSI_ERR_DATA_DGST);
drivers/scsi/qedi/qedi_fw.c
87
struct iscsi_session *session = conn->session;
drivers/scsi/qedi/qedi_fw.c
912
qedi_process_cmd_cleanup_resp(qedi, &cqe->cqe_solicited, conn);
drivers/scsi/qedi/qedi_iscsi.c
1096
if (qedi_ep->conn) {
drivers/scsi/qedi/qedi_iscsi.c
1097
qedi_conn = qedi_ep->conn;
drivers/scsi/qedi/qedi_iscsi.c
1147
qedi_ep->conn
drivers/scsi/qedi/qedi_iscsi.c
1209
qedi_ep->conn = NULL;
drivers/scsi/qedi/qedi_iscsi.c
1464
qedi_clear_task_idx(iscsi_host_priv(task->conn->session->host),
drivers/scsi/qedi/qedi_iscsi.c
1506
struct iscsi_conn *conn;
drivers/scsi/qedi/qedi_iscsi.c
1509
conn = cls_conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
1516
conn->session->state, qedi_conn->iscsi_conn_id);
drivers/scsi/qedi/qedi_iscsi.c
1663
qedi_conn = ep->conn;
drivers/scsi/qedi/qedi_iscsi.c
1702
qedi_conn = ep->conn;
drivers/scsi/qedi/qedi_iscsi.c
298
struct iscsi_conn *conn;
drivers/scsi/qedi/qedi_iscsi.c
309
conn = cls_conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
310
qedi_conn = conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
319
iscsi_conn_printk(KERN_ALERT, conn,
drivers/scsi/qedi/qedi_iscsi.c
385
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
386
struct qedi_conn *qedi_conn = conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
410
qedi_ep->conn = qedi_conn;
drivers/scsi/qedi/qedi_iscsi.c
437
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
451
if (conn->hdrdgst_en)
drivers/scsi/qedi/qedi_iscsi.c
454
if (conn->datadgst_en)
drivers/scsi/qedi/qedi_iscsi.c
457
if (conn->session->initial_r2t_en)
drivers/scsi/qedi/qedi_iscsi.c
461
if (conn->session->imm_data_en)
drivers/scsi/qedi/qedi_iscsi.c
466
conn_info->max_seq_size = conn->session->max_burst;
drivers/scsi/qedi/qedi_iscsi.c
467
conn_info->max_recv_pdu_length = conn->max_recv_dlength;
drivers/scsi/qedi/qedi_iscsi.c
468
conn_info->max_send_pdu_length = conn->max_xmit_dlength;
drivers/scsi/qedi/qedi_iscsi.c
469
conn_info->first_seq_length = conn->session->first_burst;
drivers/scsi/qedi/qedi_iscsi.c
470
conn_info->exp_stat_sn = conn->exp_statsn;
drivers/scsi/qedi/qedi_iscsi.c
619
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
620
struct qedi_conn *qedi_conn = conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
628
iscsi_conn_printk(KERN_ALERT, conn,
drivers/scsi/qedi/qedi_iscsi.c
643
iscsi_conn_printk(KERN_ALERT, conn,
drivers/scsi/qedi/qedi_iscsi.c
653
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
654
struct qedi_conn *qedi_conn = conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
722
struct iscsi_conn *conn = cls_conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
731
conn->txdata_octets = iscsi_stats.iscsi_tx_bytes_cnt;
drivers/scsi/qedi/qedi_iscsi.c
732
conn->rxdata_octets = iscsi_stats.iscsi_rx_bytes_cnt;
drivers/scsi/qedi/qedi_iscsi.c
733
conn->dataout_pdus_cnt = (uint32_t)iscsi_stats.iscsi_tx_data_pdu_cnt;
drivers/scsi/qedi/qedi_iscsi.c
734
conn->datain_pdus_cnt = (uint32_t)iscsi_stats.iscsi_rx_data_pdu_cnt;
drivers/scsi/qedi/qedi_iscsi.c
735
conn->r2t_pdus_cnt = (uint32_t)iscsi_stats.iscsi_rx_r2t_pdu_cnt;
drivers/scsi/qedi/qedi_iscsi.c
737
stats->txdata_octets = conn->txdata_octets;
drivers/scsi/qedi/qedi_iscsi.c
738
stats->rxdata_octets = conn->rxdata_octets;
drivers/scsi/qedi/qedi_iscsi.c
739
stats->scsicmd_pdus = conn->scsicmd_pdus_cnt;
drivers/scsi/qedi/qedi_iscsi.c
740
stats->dataout_pdus = conn->dataout_pdus_cnt;
drivers/scsi/qedi/qedi_iscsi.c
741
stats->scsirsp_pdus = conn->scsirsp_pdus_cnt;
drivers/scsi/qedi/qedi_iscsi.c
742
stats->datain_pdus = conn->datain_pdus_cnt;
drivers/scsi/qedi/qedi_iscsi.c
743
stats->r2t_pdus = conn->r2t_pdus_cnt;
drivers/scsi/qedi/qedi_iscsi.c
744
stats->tmfcmd_pdus = conn->tmfcmd_pdus_cnt;
drivers/scsi/qedi/qedi_iscsi.c
745
stats->tmfrsp_pdus = conn->tmfrsp_pdus_cnt;
drivers/scsi/qedi/qedi_iscsi.c
749
stats->custom[0].value = conn->eh_abort_cnt;
drivers/scsi/qedi/qedi_iscsi.c
774
struct qedi_conn *qedi_conn = cmd->conn;
drivers/scsi/qedi/qedi_iscsi.c
811
static int qedi_mtask_xmit(struct iscsi_conn *conn, struct iscsi_task *task)
drivers/scsi/qedi/qedi_iscsi.c
813
struct qedi_conn *qedi_conn = conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
827
cmd->conn = conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
833
struct iscsi_conn *conn = task->conn;
drivers/scsi/qedi/qedi_iscsi.c
834
struct qedi_conn *qedi_conn = conn->dd_data;
drivers/scsi/qedi/qedi_iscsi.c
851
cmd->conn = qedi_conn;
drivers/scsi/qedi/qedi_iscsi.c
857
return qedi_mtask_xmit(conn, task);
drivers/scsi/qedi/qedi_iscsi.h
181
struct qedi_conn *conn;
drivers/scsi/qedi/qedi_iscsi.h
97
struct qedi_conn *conn;
drivers/scsi/qedi/qedi_main.c
1016
if (conn->hdrdgst_en) {
drivers/scsi/qedi/qedi_main.c
1021
if (conn->datadgst_en) {
drivers/scsi/qedi/qedi_main.c
1174
struct iscsi_conn *conn = session->leadconn;
drivers/scsi/qedi/qedi_main.c
1175
struct qedi_conn *qedi_conn = conn->dd_data;
drivers/scsi/qedi/qedi_main.c
2827
struct iscsi_conn *conn = session->leadconn;
drivers/scsi/qedi/qedi_main.c
2828
struct qedi_conn *qedi_conn = conn->dd_data;
drivers/scsi/qedi/qedi_main.c
951
struct iscsi_conn *conn;
drivers/scsi/qedi/qedi_main.c
988
conn = cls_conn->dd_data;
drivers/scsi/qla4xxx/ql4_def.h
297
struct iscsi_cls_conn *conn;
drivers/scsi/qla4xxx/ql4_init.c
1026
iscsi_conn_login_event(ddb_entry->conn,
drivers/scsi/qla4xxx/ql4_iocb.c
386
struct iscsi_session *sess = task->conn->session;
drivers/scsi/qla4xxx/ql4_isr.c
370
struct iscsi_conn *conn;
drivers/scsi/qla4xxx/ql4_isr.c
385
cls_conn = ddb_entry->conn;
drivers/scsi/qla4xxx/ql4_isr.c
386
conn = cls_conn->dd_data;
drivers/scsi/qla4xxx/ql4_isr.c
387
spin_lock(&conn->session->back_lock);
drivers/scsi/qla4xxx/ql4_isr.c
388
task = iscsi_itt_to_task(conn, itt);
drivers/scsi/qla4xxx/ql4_isr.c
389
spin_unlock(&conn->session->back_lock);
drivers/scsi/qla4xxx/ql4_mbx.c
1991
struct iscsi_conn *conn;
drivers/scsi/qla4xxx/ql4_mbx.c
2015
conn = cls_conn->dd_data;
drivers/scsi/qla4xxx/ql4_mbx.c
2016
qla_conn = conn->dd_data;
drivers/scsi/qla4xxx/ql4_mbx.c
2017
sess = conn->session;
drivers/scsi/qla4xxx/ql4_mbx.c
2113
if (conn->max_recv_dlength)
drivers/scsi/qla4xxx/ql4_mbx.c
2115
cpu_to_le16((conn->max_recv_dlength / BYTE_UNITS));
drivers/scsi/qla4xxx/ql4_os.c
110
static int qla4xxx_conn_get_param(struct iscsi_cls_conn *conn,
drivers/scsi/qla4xxx/ql4_os.c
127
static int qla4xxx_conn_start(struct iscsi_cls_conn *conn);
drivers/scsi/qla4xxx/ql4_os.c
133
static void qla4xxx_conn_destroy(struct iscsi_cls_conn *conn);
drivers/scsi/qla4xxx/ql4_os.c
2860
struct iscsi_cls_conn *cls_conn = ddb_entry->conn;
drivers/scsi/qla4xxx/ql4_os.c
2927
struct iscsi_conn *conn;
drivers/scsi/qla4xxx/ql4_os.c
2931
conn = cls_conn->dd_data;
drivers/scsi/qla4xxx/ql4_os.c
2932
qla_conn = conn->dd_data;
drivers/scsi/qla4xxx/ql4_os.c
3024
struct iscsi_conn *conn, *existing_conn;
drivers/scsi/qla4xxx/ql4_os.c
3028
conn = cls_conn->dd_data;
drivers/scsi/qla4xxx/ql4_os.c
3031
conn->persistent_address == NULL ||
drivers/scsi/qla4xxx/ql4_os.c
3032
conn->persistent_port == 0)
drivers/scsi/qla4xxx/ql4_os.c
3047
existing_conn = ddb_entry->conn->dd_data;
drivers/scsi/qla4xxx/ql4_os.c
3062
conn->persistent_address));
drivers/scsi/qla4xxx/ql4_os.c
3067
conn->persistent_port));
drivers/scsi/qla4xxx/ql4_os.c
3073
conn->persistent_address);
drivers/scsi/qla4xxx/ql4_os.c
3076
if (existing_conn->persistent_port != conn->persistent_port)
drivers/scsi/qla4xxx/ql4_os.c
3213
ddb_entry->conn = cls_conn;
drivers/scsi/qla4xxx/ql4_os.c
3225
struct iscsi_conn *conn;
drivers/scsi/qla4xxx/ql4_os.c
3244
conn = cls_conn->dd_data;
drivers/scsi/qla4xxx/ql4_os.c
3245
qla_conn = conn->dd_data;
drivers/scsi/qla4xxx/ql4_os.c
3361
struct iscsi_conn *conn;
drivers/scsi/qla4xxx/ql4_os.c
3376
conn = task->conn;
drivers/scsi/qla4xxx/ql4_os.c
3386
iscsi_complete_pdu(conn, hdr, data, data_len);
drivers/scsi/qla4xxx/ql4_os.c
3404
sess = task->conn->session;
drivers/scsi/qla4xxx/ql4_os.c
3429
__func__, task->conn->max_recv_dlength, hdr_len));
drivers/scsi/qla4xxx/ql4_os.c
3431
task_data->resp_len = task->conn->max_recv_dlength + hdr_len;
drivers/scsi/qla4xxx/ql4_os.c
3473
sess = task->conn->session;
drivers/scsi/qla4xxx/ql4_os.c
3484
__func__, task->conn->max_recv_dlength, hdr_len));
drivers/scsi/qla4xxx/ql4_os.c
3496
struct iscsi_session *sess = task->conn->session;
drivers/scsi/qla4xxx/ql4_os.c
3509
struct iscsi_bus_flash_conn *conn,
drivers/scsi/qla4xxx/ql4_os.c
3516
conn->is_fw_assigned_ipv6 = test_bit(OPT_IS_FW_ASSIGNED_IPV6, &options);
drivers/scsi/qla4xxx/ql4_os.c
3535
conn->hdrdgst_en = test_bit(ISCSIOPT_HEADER_DIGEST_EN, &options);
drivers/scsi/qla4xxx/ql4_os.c
3536
conn->datadgst_en = test_bit(ISCSIOPT_DATA_DIGEST_EN, &options);
drivers/scsi/qla4xxx/ql4_os.c
3543
conn->snack_req_en = test_bit(ISCSIOPT_SNACK_REQ_EN, &options);
drivers/scsi/qla4xxx/ql4_os.c
3555
conn->tcp_timestamp_stat = test_bit(TCPOPT_TIMESTAMP_STAT, &options);
drivers/scsi/qla4xxx/ql4_os.c
3556
conn->tcp_nagle_disable = test_bit(TCPOPT_NAGLE_DISABLE, &options);
drivers/scsi/qla4xxx/ql4_os.c
3557
conn->tcp_wsf_disable = test_bit(TCPOPT_WSF_DISABLE, &options);
drivers/scsi/qla4xxx/ql4_os.c
3559
conn->tcp_timer_scale |= BIT_3;
drivers/scsi/qla4xxx/ql4_os.c
3561
conn->tcp_timer_scale |= BIT_2;
drivers/scsi/qla4xxx/ql4_os.c
3563
conn->tcp_timer_scale |= BIT_1;
drivers/scsi/qla4xxx/ql4_os.c
3565
conn->tcp_timer_scale >>= 1;
drivers/scsi/qla4xxx/ql4_os.c
3566
conn->tcp_timestamp_en = test_bit(TCPOPT_TIMESTAMP_EN, &options);
drivers/scsi/qla4xxx/ql4_os.c
3569
conn->fragment_disable = test_bit(IPOPT_FRAGMENT_DISABLE, &options);
drivers/scsi/qla4xxx/ql4_os.c
3571
conn->max_recv_dlength = BYTE_UNITS *
drivers/scsi/qla4xxx/ql4_os.c
3573
conn->max_xmit_dlength = BYTE_UNITS *
drivers/scsi/qla4xxx/ql4_os.c
3583
conn->max_segment_size = le16_to_cpu(fw_ddb_entry->mss);
drivers/scsi/qla4xxx/ql4_os.c
3584
conn->tcp_xmit_wsf = fw_ddb_entry->tcp_xmt_wsf;
drivers/scsi/qla4xxx/ql4_os.c
3585
conn->tcp_recv_wsf = fw_ddb_entry->tcp_rcv_wsf;
drivers/scsi/qla4xxx/ql4_os.c
3586
conn->ipv6_flow_label = le16_to_cpu(fw_ddb_entry->ipv6_flow_lbl);
drivers/scsi/qla4xxx/ql4_os.c
3587
conn->keepalive_timeout = le16_to_cpu(fw_ddb_entry->ka_timeout);
drivers/scsi/qla4xxx/ql4_os.c
3588
conn->local_port = le16_to_cpu(fw_ddb_entry->lcl_port);
drivers/scsi/qla4xxx/ql4_os.c
3589
conn->statsn = le32_to_cpu(fw_ddb_entry->stat_sn);
drivers/scsi/qla4xxx/ql4_os.c
3590
conn->exp_statsn = le32_to_cpu(fw_ddb_entry->exp_stat_sn);
drivers/scsi/qla4xxx/ql4_os.c
3598
conn->port = le16_to_cpu(fw_ddb_entry->port);
drivers/scsi/qla4xxx/ql4_os.c
3601
conn->ipaddress = kzalloc(IPv6_ADDR_LEN, GFP_KERNEL);
drivers/scsi/qla4xxx/ql4_os.c
3602
if (!conn->ipaddress) {
drivers/scsi/qla4xxx/ql4_os.c
3607
conn->redirect_ipaddr = kzalloc(IPv6_ADDR_LEN, GFP_KERNEL);
drivers/scsi/qla4xxx/ql4_os.c
3608
if (!conn->redirect_ipaddr) {
drivers/scsi/qla4xxx/ql4_os.c
3613
memcpy(conn->ipaddress, fw_ddb_entry->ip_addr, IPv6_ADDR_LEN);
drivers/scsi/qla4xxx/ql4_os.c
3614
memcpy(conn->redirect_ipaddr, fw_ddb_entry->tgt_addr, IPv6_ADDR_LEN);
drivers/scsi/qla4xxx/ql4_os.c
3617
conn->ipv6_traffic_class = fw_ddb_entry->ipv4_tos;
drivers/scsi/qla4xxx/ql4_os.c
3619
conn->link_local_ipv6_addr = kmemdup(
drivers/scsi/qla4xxx/ql4_os.c
3622
if (!conn->link_local_ipv6_addr) {
drivers/scsi/qla4xxx/ql4_os.c
3627
conn->ipv4_tos = fw_ddb_entry->ipv4_tos;
drivers/scsi/qla4xxx/ql4_os.c
3651
struct iscsi_bus_flash_conn *conn,
drivers/scsi/qla4xxx/ql4_os.c
3657
SET_BITVAL(conn->is_fw_assigned_ipv6, options, BIT_11);
drivers/scsi/qla4xxx/ql4_os.c
3669
SET_BITVAL(conn->hdrdgst_en, options, BIT_13);
drivers/scsi/qla4xxx/ql4_os.c
3670
SET_BITVAL(conn->datadgst_en, options, BIT_12);
drivers/scsi/qla4xxx/ql4_os.c
3676
SET_BITVAL(conn->snack_req_en, options, BIT_6);
drivers/scsi/qla4xxx/ql4_os.c
3685
SET_BITVAL(conn->tcp_timestamp_stat, options, BIT_6);
drivers/scsi/qla4xxx/ql4_os.c
3686
SET_BITVAL(conn->tcp_nagle_disable, options, BIT_5);
drivers/scsi/qla4xxx/ql4_os.c
3687
SET_BITVAL(conn->tcp_wsf_disable, options, BIT_4);
drivers/scsi/qla4xxx/ql4_os.c
3688
SET_BITVAL(conn->tcp_timer_scale & BIT_2, options, BIT_3);
drivers/scsi/qla4xxx/ql4_os.c
3689
SET_BITVAL(conn->tcp_timer_scale & BIT_1, options, BIT_2);
drivers/scsi/qla4xxx/ql4_os.c
3690
SET_BITVAL(conn->tcp_timer_scale & BIT_0, options, BIT_1);
drivers/scsi/qla4xxx/ql4_os.c
3691
SET_BITVAL(conn->tcp_timestamp_en, options, BIT_0);
drivers/scsi/qla4xxx/ql4_os.c
3695
SET_BITVAL(conn->fragment_disable, options, BIT_4);
drivers/scsi/qla4xxx/ql4_os.c
3700
cpu_to_le16(conn->max_recv_dlength / BYTE_UNITS);
drivers/scsi/qla4xxx/ql4_os.c
3702
cpu_to_le16(conn->max_xmit_dlength / BYTE_UNITS);
drivers/scsi/qla4xxx/ql4_os.c
3710
fw_ddb_entry->mss = cpu_to_le16(conn->max_segment_size);
drivers/scsi/qla4xxx/ql4_os.c
3711
fw_ddb_entry->tcp_xmt_wsf = (uint8_t) cpu_to_le32(conn->tcp_xmit_wsf);
drivers/scsi/qla4xxx/ql4_os.c
3712
fw_ddb_entry->tcp_rcv_wsf = (uint8_t) cpu_to_le32(conn->tcp_recv_wsf);
drivers/scsi/qla4xxx/ql4_os.c
3713
fw_ddb_entry->ipv6_flow_lbl = cpu_to_le16(conn->ipv6_flow_label);
drivers/scsi/qla4xxx/ql4_os.c
3714
fw_ddb_entry->ka_timeout = cpu_to_le16(conn->keepalive_timeout);
drivers/scsi/qla4xxx/ql4_os.c
3715
fw_ddb_entry->lcl_port = cpu_to_le16(conn->local_port);
drivers/scsi/qla4xxx/ql4_os.c
3716
fw_ddb_entry->stat_sn = cpu_to_le32(conn->statsn);
drivers/scsi/qla4xxx/ql4_os.c
3717
fw_ddb_entry->exp_stat_sn = cpu_to_le32(conn->exp_statsn);
drivers/scsi/qla4xxx/ql4_os.c
3721
fw_ddb_entry->port = cpu_to_le16(conn->port);
drivers/scsi/qla4xxx/ql4_os.c
3726
fw_ddb_entry->ipv4_tos = conn->ipv6_traffic_class;
drivers/scsi/qla4xxx/ql4_os.c
3728
fw_ddb_entry->ipv4_tos = conn->ipv4_tos;
drivers/scsi/qla4xxx/ql4_os.c
3730
if (conn->ipaddress)
drivers/scsi/qla4xxx/ql4_os.c
3731
memcpy(fw_ddb_entry->ip_addr, conn->ipaddress,
drivers/scsi/qla4xxx/ql4_os.c
3734
if (conn->redirect_ipaddr)
drivers/scsi/qla4xxx/ql4_os.c
3735
memcpy(fw_ddb_entry->tgt_addr, conn->redirect_ipaddr,
drivers/scsi/qla4xxx/ql4_os.c
3738
if (conn->link_local_ipv6_addr)
drivers/scsi/qla4xxx/ql4_os.c
3740
conn->link_local_ipv6_addr,
drivers/scsi/qla4xxx/ql4_os.c
3756
static void qla4xxx_copy_to_sess_conn_params(struct iscsi_conn *conn,
drivers/scsi/qla4xxx/ql4_os.c
3766
conn->is_fw_assigned_ipv6 = test_bit(OPT_IS_FW_ASSIGNED_IPV6, &options);
drivers/scsi/qla4xxx/ql4_os.c
3772
conn->hdrdgst_en = test_bit(ISCSIOPT_HEADER_DIGEST_EN, &options);
drivers/scsi/qla4xxx/ql4_os.c
3773
conn->datadgst_en = test_bit(ISCSIOPT_DATA_DIGEST_EN, &options);
drivers/scsi/qla4xxx/ql4_os.c
3791
conn->tcp_timestamp_stat = test_bit(TCPOPT_TIMESTAMP_STAT, &options);
drivers/scsi/qla4xxx/ql4_os.c
3792
conn->tcp_nagle_disable = test_bit(TCPOPT_NAGLE_DISABLE, &options);
drivers/scsi/qla4xxx/ql4_os.c
3793
conn->tcp_wsf_disable = test_bit(TCPOPT_WSF_DISABLE, &options);
drivers/scsi/qla4xxx/ql4_os.c
3795
conn->tcp_timer_scale |= BIT_3;
drivers/scsi/qla4xxx/ql4_os.c
3797
conn->tcp_timer_scale |= BIT_2;
drivers/scsi/qla4xxx/ql4_os.c
3799
conn->tcp_timer_scale |= BIT_1;
drivers/scsi/qla4xxx/ql4_os.c
3801
conn->tcp_timer_scale >>= 1;
drivers/scsi/qla4xxx/ql4_os.c
3802
conn->tcp_timestamp_en = test_bit(TCPOPT_TIMESTAMP_EN, &options);
drivers/scsi/qla4xxx/ql4_os.c
3805
conn->fragment_disable = test_bit(IPOPT_FRAGMENT_DISABLE, &options);
drivers/scsi/qla4xxx/ql4_os.c
3807
conn->max_recv_dlength = BYTE_UNITS *
drivers/scsi/qla4xxx/ql4_os.c
3809
conn->max_xmit_dlength = BYTE_UNITS *
drivers/scsi/qla4xxx/ql4_os.c
3819
conn->max_segment_size = le16_to_cpu(fw_ddb_entry->mss);
drivers/scsi/qla4xxx/ql4_os.c
3820
conn->tcp_xmit_wsf = fw_ddb_entry->tcp_xmt_wsf;
drivers/scsi/qla4xxx/ql4_os.c
3821
conn->tcp_recv_wsf = fw_ddb_entry->tcp_rcv_wsf;
drivers/scsi/qla4xxx/ql4_os.c
3822
conn->ipv4_tos = fw_ddb_entry->ipv4_tos;
drivers/scsi/qla4xxx/ql4_os.c
3823
conn->keepalive_tmo = le16_to_cpu(fw_ddb_entry->ka_timeout);
drivers/scsi/qla4xxx/ql4_os.c
3824
conn->local_port = le16_to_cpu(fw_ddb_entry->lcl_port);
drivers/scsi/qla4xxx/ql4_os.c
3825
conn->statsn = le32_to_cpu(fw_ddb_entry->stat_sn);
drivers/scsi/qla4xxx/ql4_os.c
3826
conn->exp_statsn = le32_to_cpu(fw_ddb_entry->exp_stat_sn);
drivers/scsi/qla4xxx/ql4_os.c
3840
iscsi_set_param(conn->cls_conn, ISCSI_PARAM_DISCOVERY_PARENT_TYPE,
drivers/scsi/qla4xxx/ql4_os.c
3843
iscsi_set_param(conn->cls_conn, ISCSI_PARAM_TARGET_ALIAS,
drivers/scsi/qla4xxx/ql4_os.c
3850
iscsi_set_param(conn->cls_conn, ISCSI_PARAM_LOCAL_IPADDR,
drivers/scsi/qla4xxx/ql4_os.c
3864
struct iscsi_conn *conn;
drivers/scsi/qla4xxx/ql4_os.c
3870
conn = cls_conn->dd_data;
drivers/scsi/qla4xxx/ql4_os.c
3875
qla4xxx_copy_to_sess_conn_params(conn, sess, fw_ddb_entry);
drivers/scsi/qla4xxx/ql4_os.c
3878
conn->persistent_port = le16_to_cpu(fw_ddb_entry->port);
drivers/scsi/qla4xxx/ql4_os.c
3942
cls_conn = ddb_entry->conn;
drivers/scsi/qla4xxx/ql4_os.c
3959
struct iscsi_conn *conn;
drivers/scsi/qla4xxx/ql4_os.c
3985
cls_conn = ddb_entry->conn;
drivers/scsi/qla4xxx/ql4_os.c
3986
conn = cls_conn->dd_data;
drivers/scsi/qla4xxx/ql4_os.c
3998
qla4xxx_copy_to_sess_conn_params(conn, sess, fw_ddb_entry);
drivers/scsi/qla4xxx/ql4_os.c
5132
iscsi_conn_start(ddb_entry->conn);
drivers/scsi/qla4xxx/ql4_os.c
5133
iscsi_conn_login_event(ddb_entry->conn,
drivers/scsi/qla4xxx/ql4_os.c
6288
struct iscsi_conn *conn;
drivers/scsi/qla4xxx/ql4_os.c
6293
cls_conn = ddb_entry->conn;
drivers/scsi/qla4xxx/ql4_os.c
6294
conn = cls_conn->dd_data;
drivers/scsi/qla4xxx/ql4_os.c
6297
tddb->port = conn->persistent_port;
drivers/scsi/qla4xxx/ql4_os.c
6299
strscpy(tddb->ip_addr, conn->persistent_address, sizeof(tddb->ip_addr));
drivers/scsi/qla4xxx/ql4_os.c
6952
ddb_entry->conn = cls_conn;
drivers/scsi/qla4xxx/ql4_os.c
6957
ep->conn = cls_conn;
drivers/scsi/qla4xxx/ql4_os.c
7719
iscsi_destroy_endpoint(ddb_entry->conn->ep);
drivers/scsi/qla4xxx/ql4_os.c
9002
iscsi_destroy_endpoint(ddb_entry->conn->ep);
drivers/scsi/scsi_transport_iscsi.c
1610
static uint32_t iscsi_conn_get_sid(struct iscsi_cls_conn *conn)
drivers/scsi/scsi_transport_iscsi.c
1612
struct iscsi_cls_session *sess = iscsi_dev_to_session(conn->dev.parent);
drivers/scsi/scsi_transport_iscsi.c
1641
struct iscsi_cls_conn *conn;
drivers/scsi/scsi_transport_iscsi.c
1644
list_for_each_entry(conn, &connlist, conn_list) {
drivers/scsi/scsi_transport_iscsi.c
1645
if ((conn->cid == cid) && (iscsi_conn_get_sid(conn) == sid)) {
drivers/scsi/scsi_transport_iscsi.c
1647
return conn;
drivers/scsi/scsi_transport_iscsi.c
2127
struct iscsi_cls_conn *conn = iscsi_dev_to_conn(dev);
drivers/scsi/scsi_transport_iscsi.c
2128
struct device *parent = conn->dev.parent;
drivers/scsi/scsi_transport_iscsi.c
2130
ISCSI_DBG_TRANS_CONN(conn, "Releasing conn\n");
drivers/scsi/scsi_transport_iscsi.c
2131
kfree(conn);
drivers/scsi/scsi_transport_iscsi.c
2203
static void iscsi_stop_conn(struct iscsi_cls_conn *conn, int flag)
drivers/scsi/scsi_transport_iscsi.c
2205
ISCSI_DBG_TRANS_CONN(conn, "Stopping conn.\n");
drivers/scsi/scsi_transport_iscsi.c
2209
WRITE_ONCE(conn->state, ISCSI_CONN_FAILED);
drivers/scsi/scsi_transport_iscsi.c
2212
WRITE_ONCE(conn->state, ISCSI_CONN_DOWN);
drivers/scsi/scsi_transport_iscsi.c
2215
iscsi_cls_conn_printk(KERN_ERR, conn, "invalid stop flag %d\n",
drivers/scsi/scsi_transport_iscsi.c
2220
conn->transport->stop_conn(conn, flag);
drivers/scsi/scsi_transport_iscsi.c
2221
ISCSI_DBG_TRANS_CONN(conn, "Stopping conn done.\n");
drivers/scsi/scsi_transport_iscsi.c
2224
static void iscsi_ep_disconnect(struct iscsi_cls_conn *conn, bool is_active)
drivers/scsi/scsi_transport_iscsi.c
2226
struct iscsi_cls_session *session = iscsi_conn_to_session(conn);
drivers/scsi/scsi_transport_iscsi.c
2229
ISCSI_DBG_TRANS_CONN(conn, "disconnect ep.\n");
drivers/scsi/scsi_transport_iscsi.c
2230
WRITE_ONCE(conn->state, ISCSI_CONN_FAILED);
drivers/scsi/scsi_transport_iscsi.c
2232
if (!conn->ep || !session->transport->ep_disconnect)
drivers/scsi/scsi_transport_iscsi.c
2235
ep = conn->ep;
drivers/scsi/scsi_transport_iscsi.c
2236
conn->ep = NULL;
drivers/scsi/scsi_transport_iscsi.c
2238
session->transport->unbind_conn(conn, is_active);
drivers/scsi/scsi_transport_iscsi.c
2240
ISCSI_DBG_TRANS_CONN(conn, "disconnect ep done.\n");
drivers/scsi/scsi_transport_iscsi.c
2243
static void iscsi_if_disconnect_bound_ep(struct iscsi_cls_conn *conn,
drivers/scsi/scsi_transport_iscsi.c
2248
spin_lock_irq(&conn->lock);
drivers/scsi/scsi_transport_iscsi.c
2249
if (!test_bit(ISCSI_CLS_CONN_BIT_CLEANUP, &conn->flags)) {
drivers/scsi/scsi_transport_iscsi.c
2250
spin_unlock_irq(&conn->lock);
drivers/scsi/scsi_transport_iscsi.c
2251
iscsi_ep_disconnect(conn, is_active);
drivers/scsi/scsi_transport_iscsi.c
2253
spin_unlock_irq(&conn->lock);
drivers/scsi/scsi_transport_iscsi.c
2254
ISCSI_DBG_TRANS_CONN(conn, "flush kernel conn cleanup.\n");
drivers/scsi/scsi_transport_iscsi.c
2255
mutex_unlock(&conn->ep_mutex);
drivers/scsi/scsi_transport_iscsi.c
2257
flush_work(&conn->cleanup_work);
drivers/scsi/scsi_transport_iscsi.c
2263
mutex_lock(&conn->ep_mutex);
drivers/scsi/scsi_transport_iscsi.c
2267
static int iscsi_if_stop_conn(struct iscsi_cls_conn *conn, int flag)
drivers/scsi/scsi_transport_iscsi.c
2269
ISCSI_DBG_TRANS_CONN(conn, "iscsi if conn stop.\n");
drivers/scsi/scsi_transport_iscsi.c
2275
mutex_lock(&conn->ep_mutex);
drivers/scsi/scsi_transport_iscsi.c
2276
if (conn->ep)
drivers/scsi/scsi_transport_iscsi.c
2277
iscsi_if_disconnect_bound_ep(conn, conn->ep, true);
drivers/scsi/scsi_transport_iscsi.c
2278
mutex_unlock(&conn->ep_mutex);
drivers/scsi/scsi_transport_iscsi.c
2286
cancel_work_sync(&conn->cleanup_work);
drivers/scsi/scsi_transport_iscsi.c
2287
iscsi_stop_conn(conn, flag);
drivers/scsi/scsi_transport_iscsi.c
2292
spin_lock_irq(&conn->lock);
drivers/scsi/scsi_transport_iscsi.c
2293
if (!test_and_set_bit(ISCSI_CLS_CONN_BIT_CLEANUP, &conn->flags)) {
drivers/scsi/scsi_transport_iscsi.c
2294
spin_unlock_irq(&conn->lock);
drivers/scsi/scsi_transport_iscsi.c
2295
iscsi_stop_conn(conn, flag);
drivers/scsi/scsi_transport_iscsi.c
2297
spin_unlock_irq(&conn->lock);
drivers/scsi/scsi_transport_iscsi.c
2298
ISCSI_DBG_TRANS_CONN(conn,
drivers/scsi/scsi_transport_iscsi.c
2300
flush_work(&conn->cleanup_work);
drivers/scsi/scsi_transport_iscsi.c
2306
spin_lock_irq(&conn->lock);
drivers/scsi/scsi_transport_iscsi.c
2307
clear_bit(ISCSI_CLS_CONN_BIT_CLEANUP, &conn->flags);
drivers/scsi/scsi_transport_iscsi.c
2308
spin_unlock_irq(&conn->lock);
drivers/scsi/scsi_transport_iscsi.c
2310
ISCSI_DBG_TRANS_CONN(conn, "iscsi if conn stop done.\n");
drivers/scsi/scsi_transport_iscsi.c
2316
struct iscsi_cls_conn *conn = container_of(work, struct iscsi_cls_conn,
drivers/scsi/scsi_transport_iscsi.c
2318
struct iscsi_cls_session *session = iscsi_conn_to_session(conn);
drivers/scsi/scsi_transport_iscsi.c
2320
mutex_lock(&conn->ep_mutex);
drivers/scsi/scsi_transport_iscsi.c
2325
if (conn->ep)
drivers/scsi/scsi_transport_iscsi.c
2326
get_device(&conn->ep->dev);
drivers/scsi/scsi_transport_iscsi.c
2327
iscsi_ep_disconnect(conn, false);
drivers/scsi/scsi_transport_iscsi.c
2339
iscsi_stop_conn(conn, STOP_CONN_RECOVER);
drivers/scsi/scsi_transport_iscsi.c
2340
mutex_unlock(&conn->ep_mutex);
drivers/scsi/scsi_transport_iscsi.c
2341
ISCSI_DBG_TRANS_CONN(conn, "cleanup done.\n");
drivers/scsi/scsi_transport_iscsi.c
2347
struct iscsi_cls_conn *conn;
drivers/scsi/scsi_transport_iscsi.c
2352
conn = iscsi_dev_to_conn(dev);
drivers/scsi/scsi_transport_iscsi.c
2353
transport = conn->transport;
drivers/scsi/scsi_transport_iscsi.c
2355
if (READ_ONCE(conn->state) != ISCSI_CONN_DOWN)
drivers/scsi/scsi_transport_iscsi.c
2356
iscsi_if_stop_conn(conn, STOP_CONN_TERM);
drivers/scsi/scsi_transport_iscsi.c
2358
transport->destroy_conn(conn);
drivers/scsi/scsi_transport_iscsi.c
2411
struct iscsi_cls_conn *conn;
drivers/scsi/scsi_transport_iscsi.c
2413
conn = kzalloc(sizeof(*conn) + dd_size, GFP_KERNEL);
drivers/scsi/scsi_transport_iscsi.c
2414
if (!conn)
drivers/scsi/scsi_transport_iscsi.c
2417
conn->dd_data = &conn[1];
drivers/scsi/scsi_transport_iscsi.c
2419
mutex_init(&conn->ep_mutex);
drivers/scsi/scsi_transport_iscsi.c
2420
spin_lock_init(&conn->lock);
drivers/scsi/scsi_transport_iscsi.c
2421
INIT_LIST_HEAD(&conn->conn_list);
drivers/scsi/scsi_transport_iscsi.c
2422
INIT_WORK(&conn->cleanup_work, iscsi_cleanup_conn_work_fn);
drivers/scsi/scsi_transport_iscsi.c
2423
conn->transport = transport;
drivers/scsi/scsi_transport_iscsi.c
2424
conn->cid = cid;
drivers/scsi/scsi_transport_iscsi.c
2425
WRITE_ONCE(conn->state, ISCSI_CONN_DOWN);
drivers/scsi/scsi_transport_iscsi.c
2431
dev_set_name(&conn->dev, "connection%d:%u", session->sid, cid);
drivers/scsi/scsi_transport_iscsi.c
2432
device_initialize(&conn->dev);
drivers/scsi/scsi_transport_iscsi.c
2433
conn->dev.parent = &session->dev;
drivers/scsi/scsi_transport_iscsi.c
2434
conn->dev.release = iscsi_conn_release;
drivers/scsi/scsi_transport_iscsi.c
2436
return conn;
drivers/scsi/scsi_transport_iscsi.c
2439
kfree(conn);
drivers/scsi/scsi_transport_iscsi.c
2451
int iscsi_add_conn(struct iscsi_cls_conn *conn)
drivers/scsi/scsi_transport_iscsi.c
2455
struct iscsi_cls_session *session = iscsi_dev_to_session(conn->dev.parent);
drivers/scsi/scsi_transport_iscsi.c
2457
err = device_add(&conn->dev);
drivers/scsi/scsi_transport_iscsi.c
2463
err = transport_register_device(&conn->dev);
drivers/scsi/scsi_transport_iscsi.c
2467
device_del(&conn->dev);
drivers/scsi/scsi_transport_iscsi.c
2472
list_add(&conn->conn_list, &connlist);
drivers/scsi/scsi_transport_iscsi.c
2486
void iscsi_remove_conn(struct iscsi_cls_conn *conn)
drivers/scsi/scsi_transport_iscsi.c
2491
list_del(&conn->conn_list);
drivers/scsi/scsi_transport_iscsi.c
2494
transport_unregister_device(&conn->dev);
drivers/scsi/scsi_transport_iscsi.c
2495
device_del(&conn->dev);
drivers/scsi/scsi_transport_iscsi.c
2499
void iscsi_put_conn(struct iscsi_cls_conn *conn)
drivers/scsi/scsi_transport_iscsi.c
2501
put_device(&conn->dev);
drivers/scsi/scsi_transport_iscsi.c
2505
void iscsi_get_conn(struct iscsi_cls_conn *conn)
drivers/scsi/scsi_transport_iscsi.c
2507
get_device(&conn->dev);
drivers/scsi/scsi_transport_iscsi.c
2543
int iscsi_recv_pdu(struct iscsi_cls_conn *conn, struct iscsi_hdr *hdr,
drivers/scsi/scsi_transport_iscsi.c
2554
priv = iscsi_if_transport_lookup(conn->transport);
drivers/scsi/scsi_transport_iscsi.c
2560
iscsi_conn_error_event(conn, ISCSI_ERR_CONN_FAILED);
drivers/scsi/scsi_transport_iscsi.c
2561
iscsi_cls_conn_printk(KERN_ERR, conn, "can not deliver "
drivers/scsi/scsi_transport_iscsi.c
2569
ev->transport_handle = iscsi_handle(conn->transport);
drivers/scsi/scsi_transport_iscsi.c
2571
ev->r.recv_req.cid = conn->cid;
drivers/scsi/scsi_transport_iscsi.c
2572
ev->r.recv_req.sid = iscsi_conn_get_sid(conn);
drivers/scsi/scsi_transport_iscsi.c
2616
void iscsi_conn_error_event(struct iscsi_cls_conn *conn, enum iscsi_err error)
drivers/scsi/scsi_transport_iscsi.c
2626
spin_lock_irqsave(&conn->lock, flags);
drivers/scsi/scsi_transport_iscsi.c
2633
state = READ_ONCE(conn->state);
drivers/scsi/scsi_transport_iscsi.c
2638
&conn->flags)) {
drivers/scsi/scsi_transport_iscsi.c
2640
&conn->cleanup_work);
drivers/scsi/scsi_transport_iscsi.c
2644
ISCSI_DBG_TRANS_CONN(conn, "Got conn error in state %d\n",
drivers/scsi/scsi_transport_iscsi.c
2648
spin_unlock_irqrestore(&conn->lock, flags);
drivers/scsi/scsi_transport_iscsi.c
2650
priv = iscsi_if_transport_lookup(conn->transport);
drivers/scsi/scsi_transport_iscsi.c
2656
iscsi_cls_conn_printk(KERN_ERR, conn, "gracefully ignored "
drivers/scsi/scsi_transport_iscsi.c
2663
ev->transport_handle = iscsi_handle(conn->transport);
drivers/scsi/scsi_transport_iscsi.c
2666
ev->r.connerror.cid = conn->cid;
drivers/scsi/scsi_transport_iscsi.c
2667
ev->r.connerror.sid = iscsi_conn_get_sid(conn);
drivers/scsi/scsi_transport_iscsi.c
2671
iscsi_cls_conn_printk(KERN_INFO, conn, "detected conn error (%d)\n",
drivers/scsi/scsi_transport_iscsi.c
2676
void iscsi_conn_login_event(struct iscsi_cls_conn *conn,
drivers/scsi/scsi_transport_iscsi.c
2685
priv = iscsi_if_transport_lookup(conn->transport);
drivers/scsi/scsi_transport_iscsi.c
2691
iscsi_cls_conn_printk(KERN_ERR, conn, "gracefully ignored "
drivers/scsi/scsi_transport_iscsi.c
2698
ev->transport_handle = iscsi_handle(conn->transport);
drivers/scsi/scsi_transport_iscsi.c
2701
ev->r.conn_login.cid = conn->cid;
drivers/scsi/scsi_transport_iscsi.c
2702
ev->r.conn_login.sid = iscsi_conn_get_sid(conn);
drivers/scsi/scsi_transport_iscsi.c
2705
iscsi_cls_conn_printk(KERN_INFO, conn, "detected conn login (%d)\n",
drivers/scsi/scsi_transport_iscsi.c
2794
struct iscsi_cls_conn *conn;
drivers/scsi/scsi_transport_iscsi.c
2808
conn = iscsi_conn_lookup(ev->u.get_stats.sid, ev->u.get_stats.cid);
drivers/scsi/scsi_transport_iscsi.c
2809
if (!conn)
drivers/scsi/scsi_transport_iscsi.c
2817
iscsi_cls_conn_printk(KERN_ERR, conn, "can not "
drivers/scsi/scsi_transport_iscsi.c
2826
evstat->transport_handle = iscsi_handle(conn->transport);
drivers/scsi/scsi_transport_iscsi.c
2836
transport->get_stats(conn, stats);
drivers/scsi/scsi_transport_iscsi.c
2950
struct iscsi_cls_conn *conn;
drivers/scsi/scsi_transport_iscsi.c
2960
conn = transport->create_conn(session, ev->u.c_conn.cid);
drivers/scsi/scsi_transport_iscsi.c
2961
if (!conn) {
drivers/scsi/scsi_transport_iscsi.c
2968
ev->r.c_conn_ret.cid = conn->cid;
drivers/scsi/scsi_transport_iscsi.c
2970
ISCSI_DBG_TRANS_CONN(conn, "Completed creating transport conn\n");
drivers/scsi/scsi_transport_iscsi.c
2977
struct iscsi_cls_conn *conn;
drivers/scsi/scsi_transport_iscsi.c
2979
conn = iscsi_conn_lookup(ev->u.d_conn.sid, ev->u.d_conn.cid);
drivers/scsi/scsi_transport_iscsi.c
2980
if (!conn)
drivers/scsi/scsi_transport_iscsi.c
2983
ISCSI_DBG_TRANS_CONN(conn, "Flushing cleanup during destruction\n");
drivers/scsi/scsi_transport_iscsi.c
2984
flush_work(&conn->cleanup_work);
drivers/scsi/scsi_transport_iscsi.c
2985
ISCSI_DBG_TRANS_CONN(conn, "Destroying transport conn\n");
drivers/scsi/scsi_transport_iscsi.c
2988
transport->destroy_conn(conn);
drivers/scsi/scsi_transport_iscsi.c
2996
struct iscsi_cls_conn *conn;
drivers/scsi/scsi_transport_iscsi.c
3005
conn = iscsi_conn_lookup(ev->u.set_param.sid, ev->u.set_param.cid);
drivers/scsi/scsi_transport_iscsi.c
3006
if (!conn || !session)
drivers/scsi/scsi_transport_iscsi.c
3020
state = READ_ONCE(conn->state);
drivers/scsi/scsi_transport_iscsi.c
3022
err = transport->set_param(conn, ev->u.set_param.param,
drivers/scsi/scsi_transport_iscsi.c
3072
struct iscsi_cls_conn *conn;
drivers/scsi/scsi_transport_iscsi.c
3082
conn = ep->conn;
drivers/scsi/scsi_transport_iscsi.c
3083
if (!conn) {
drivers/scsi/scsi_transport_iscsi.c
3092
mutex_lock(&conn->ep_mutex);
drivers/scsi/scsi_transport_iscsi.c
3093
iscsi_if_disconnect_bound_ep(conn, ep, false);
drivers/scsi/scsi_transport_iscsi.c
3094
mutex_unlock(&conn->ep_mutex);
drivers/scsi/scsi_transport_iscsi.c
3228
struct iscsi_cls_conn *conn;
drivers/scsi/scsi_transport_iscsi.c
3233
list_for_each_entry(conn, &connlist, conn_list) {
drivers/scsi/scsi_transport_iscsi.c
3234
if (iscsi_conn_get_sid(conn) == sid) {
drivers/scsi/scsi_transport_iscsi.c
3777
struct iscsi_cls_conn *conn = NULL;
drivers/scsi/scsi_transport_iscsi.c
3787
conn = iscsi_conn_lookup(ev->u.stop_conn.sid,
drivers/scsi/scsi_transport_iscsi.c
3789
if (!conn)
drivers/scsi/scsi_transport_iscsi.c
3792
return iscsi_if_stop_conn(conn, ev->u.stop_conn.flag);
drivers/scsi/scsi_transport_iscsi.c
3804
conn = iscsi_conn_lookup(ev->u.start_conn.sid,
drivers/scsi/scsi_transport_iscsi.c
3808
conn = iscsi_conn_lookup(ev->u.b_conn.sid, ev->u.b_conn.cid);
drivers/scsi/scsi_transport_iscsi.c
3811
conn = iscsi_conn_lookup(ev->u.send_pdu.sid, ev->u.send_pdu.cid);
drivers/scsi/scsi_transport_iscsi.c
3815
if (!conn)
drivers/scsi/scsi_transport_iscsi.c
3818
mutex_lock(&conn->ep_mutex);
drivers/scsi/scsi_transport_iscsi.c
3819
spin_lock_irq(&conn->lock);
drivers/scsi/scsi_transport_iscsi.c
3820
if (test_bit(ISCSI_CLS_CONN_BIT_CLEANUP, &conn->flags)) {
drivers/scsi/scsi_transport_iscsi.c
3821
spin_unlock_irq(&conn->lock);
drivers/scsi/scsi_transport_iscsi.c
3822
mutex_unlock(&conn->ep_mutex);
drivers/scsi/scsi_transport_iscsi.c
3826
spin_unlock_irq(&conn->lock);
drivers/scsi/scsi_transport_iscsi.c
3836
ev->r.retcode = transport->bind_conn(session, conn,
drivers/scsi/scsi_transport_iscsi.c
3840
WRITE_ONCE(conn->state, ISCSI_CONN_BOUND);
drivers/scsi/scsi_transport_iscsi.c
3847
ep->conn = conn;
drivers/scsi/scsi_transport_iscsi.c
3848
conn->ep = ep;
drivers/scsi/scsi_transport_iscsi.c
3852
iscsi_cls_conn_printk(KERN_ERR, conn,
drivers/scsi/scsi_transport_iscsi.c
3857
ev->r.retcode = transport->start_conn(conn);
drivers/scsi/scsi_transport_iscsi.c
3859
WRITE_ONCE(conn->state, ISCSI_CONN_UP);
drivers/scsi/scsi_transport_iscsi.c
3869
ev->r.retcode = transport->send_pdu(conn,
drivers/scsi/scsi_transport_iscsi.c
3878
mutex_unlock(&conn->ep_mutex);
drivers/scsi/scsi_transport_iscsi.c
4119
struct iscsi_cls_conn *conn = iscsi_dev_to_conn(dev->parent); \
drivers/scsi/scsi_transport_iscsi.c
4120
struct iscsi_transport *t = conn->transport; \
drivers/scsi/scsi_transport_iscsi.c
4121
return t->get_conn_param(conn, param, buf); \
drivers/scsi/scsi_transport_iscsi.c
4126
static ISCSI_CLASS_ATTR(conn, field, S_IRUGO, show_conn_param_##param, \
drivers/scsi/scsi_transport_iscsi.c
4168
struct iscsi_cls_conn *conn = iscsi_dev_to_conn(dev->parent);
drivers/scsi/scsi_transport_iscsi.c
4170
int conn_state = READ_ONCE(conn->state);
drivers/scsi/scsi_transport_iscsi.c
4178
static ISCSI_CLASS_ATTR(conn, state, S_IRUGO, show_conn_state,
drivers/scsi/scsi_transport_iscsi.c
4186
struct iscsi_cls_conn *conn = iscsi_dev_to_conn(dev->parent); \
drivers/scsi/scsi_transport_iscsi.c
4187
struct iscsi_transport *t = conn->transport; \
drivers/scsi/scsi_transport_iscsi.c
4195
mutex_lock(&conn->ep_mutex); \
drivers/scsi/scsi_transport_iscsi.c
4196
ep = conn->ep; \
drivers/scsi/scsi_transport_iscsi.c
4198
mutex_unlock(&conn->ep_mutex); \
drivers/scsi/scsi_transport_iscsi.c
4205
rc = t->get_conn_param(conn, param, buf); \
drivers/scsi/scsi_transport_iscsi.c
4206
mutex_unlock(&conn->ep_mutex); \
drivers/scsi/scsi_transport_iscsi.c
4212
static ISCSI_CLASS_ATTR(conn, field, S_IRUGO, \
drivers/scsi/scsi_transport_iscsi.c
4257
struct iscsi_cls_conn *conn = transport_class_to_conn(cdev);
drivers/scsi/scsi_transport_iscsi.c
4258
struct iscsi_transport *t = conn->transport;
drivers/scsi/scsi_transport_iscsi.c
4798
struct iscsi_cls_conn *conn;
drivers/scsi/scsi_transport_iscsi.c
4805
conn = iscsi_dev_to_conn(dev);
drivers/scsi/scsi_transport_iscsi.c
4806
session = iscsi_dev_to_session(conn->dev.parent);
drivers/staging/greybus/camera.c
1215
struct gb_connection *conn;
drivers/staging/greybus/camera.c
1257
conn = gb_connection_create(bundle, mgmt_cport_id,
drivers/staging/greybus/camera.c
1259
if (IS_ERR(conn)) {
drivers/staging/greybus/camera.c
1260
ret = PTR_ERR(conn);
drivers/staging/greybus/camera.c
1264
gcam->connection = conn;
drivers/staging/greybus/camera.c
1265
gb_connection_set_data(conn, gcam);
drivers/staging/greybus/camera.c
1267
ret = gb_connection_enable(conn);
drivers/staging/greybus/camera.c
380
struct gb_connection *conn;
drivers/staging/greybus/camera.c
388
conn = gb_connection_create_offloaded(gcam->bundle, gcam->data_cport_id,
drivers/staging/greybus/camera.c
391
if (IS_ERR(conn))
drivers/staging/greybus/camera.c
392
return PTR_ERR(conn);
drivers/staging/greybus/camera.c
394
gcam->data_connection = conn;
drivers/staging/greybus/camera.c
395
gb_connection_set_data(conn, gcam);
drivers/staging/greybus/camera.c
397
ret = gb_connection_enable(conn);
drivers/staging/media/atomisp/pci/hive_isp_css_common/dma_global.h
73
#define DMA_PACK_SETUP(conn, ext) ((conn) | DMA_PACK_EXTENSION(ext))
drivers/staging/media/atomisp/pci/hive_isp_css_common/host/dma.c
18
dma_set_max_burst_size(const dma_ID_t ID, dma_connection conn,
drivers/staging/media/atomisp/pci/hive_isp_css_common/host/dma.c
23
dma_reg_store(ID, DMA_DEV_INFO_REG_IDX(_DMA_DEV_INTERF_MAX_BURST_IDX, conn),
drivers/staging/media/atomisp/pci/hive_isp_css_include/host/dma_public.h
48
dma_connection conn,
drivers/target/iscsi/cxgbit/cxgbit.h
192
struct iscsit_conn *conn;
drivers/target/iscsi/cxgbit/cxgbit_cm.c
1753
if (!csk->conn)
drivers/target/iscsi/cxgbit/cxgbit_cm.c
468
cxgbit_set_conn_info(struct iscsi_np *np, struct iscsit_conn *conn,
drivers/target/iscsi/cxgbit/cxgbit_cm.c
471
conn->login_family = np->np_sockaddr.ss_family;
drivers/target/iscsi/cxgbit/cxgbit_cm.c
472
conn->login_sockaddr = csk->com.remote_addr;
drivers/target/iscsi/cxgbit/cxgbit_cm.c
473
conn->local_sockaddr = csk->com.local_addr;
drivers/target/iscsi/cxgbit/cxgbit_cm.c
476
int cxgbit_accept_np(struct iscsi_np *np, struct iscsit_conn *conn)
drivers/target/iscsi/cxgbit/cxgbit_cm.c
510
conn->context = csk;
drivers/target/iscsi/cxgbit/cxgbit_cm.c
511
csk->conn = conn;
drivers/target/iscsi/cxgbit/cxgbit_cm.c
513
cxgbit_set_conn_info(np, conn, csk);
drivers/target/iscsi/cxgbit/cxgbit_cm.c
720
struct iscsit_conn *conn = csk->conn;
drivers/target/iscsi/cxgbit/cxgbit_cm.c
729
if (conn && (conn->conn_state == TARG_CONN_STATE_IN_LOGOUT)) {
drivers/target/iscsi/cxgbit/cxgbit_cm.c
754
void cxgbit_free_conn(struct iscsit_conn *conn)
drivers/target/iscsi/cxgbit/cxgbit_cm.c
756
__cxgbit_free_conn(conn->context);
drivers/target/iscsi/cxgbit/cxgbit_ddp.c
230
cxgbit_get_r2t_ttt(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/cxgbit/cxgbit_ddp.c
233
struct cxgbit_sock *csk = conn->context;
drivers/target/iscsi/cxgbit/cxgbit_ddp.c
263
void cxgbit_unmap_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd)
drivers/target/iscsi/cxgbit/cxgbit_ddp.c
271
struct cxgbit_sock *csk = conn->context;
drivers/target/iscsi/cxgbit/cxgbit_main.c
660
static enum target_prot_op cxgbit_get_sup_prot_ops(struct iscsit_conn *conn)
drivers/target/iscsi/cxgbit/cxgbit_target.c
1014
cmd = iscsit_find_cmd_from_itt_or_dump(conn, hdr->itt, 0);
drivers/target/iscsi/cxgbit/cxgbit_target.c
1019
atomic_long_add(ddp_data_len, &conn->sess->rx_data_octets);
drivers/target/iscsi/cxgbit/cxgbit_target.c
1025
rc = __iscsit_check_dataout_hdr(conn, (unsigned char *)hdr,
drivers/target/iscsi/cxgbit/cxgbit_target.c
1032
rc = iscsit_check_dataout_hdr(conn, (unsigned char *)hdr, &cmd);
drivers/target/iscsi/cxgbit/cxgbit_target.c
1089
struct iscsit_conn *conn = csk->conn;
drivers/target/iscsi/cxgbit/cxgbit_target.c
1096
ret = iscsit_setup_nop_out(conn, cmd, hdr);
drivers/target/iscsi/cxgbit/cxgbit_target.c
1101
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/cxgbit/cxgbit_target.c
1147
return iscsit_process_nop_out(conn, cmd, hdr);
drivers/target/iscsi/cxgbit/cxgbit_target.c
1157
struct iscsit_conn *conn = csk->conn;
drivers/target/iscsi/cxgbit/cxgbit_target.c
1164
rc = iscsit_setup_text_cmd(conn, cmd, hdr);
drivers/target/iscsi/cxgbit/cxgbit_target.c
1169
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/cxgbit/cxgbit_target.c
1201
return iscsit_process_text_cmd(conn, cmd, hdr);
drivers/target/iscsi/cxgbit/cxgbit_target.c
1212
struct iscsit_conn *conn = csk->conn;
drivers/target/iscsi/cxgbit/cxgbit_target.c
1242
ret = iscsit_handle_task_mgt_cmd(conn, cmd,
drivers/target/iscsi/cxgbit/cxgbit_target.c
1247
cmd = iscsit_find_cmd_from_itt(conn, hdr->itt);
drivers/target/iscsi/cxgbit/cxgbit_target.c
1263
ret = iscsit_handle_logout_cmd(conn, cmd, (unsigned char *)hdr);
drivers/target/iscsi/cxgbit/cxgbit_target.c
1265
wait_for_completion_timeout(&conn->conn_logout_comp,
drivers/target/iscsi/cxgbit/cxgbit_target.c
1270
ret = iscsit_handle_snack(conn, (unsigned char *)hdr);
drivers/target/iscsi/cxgbit/cxgbit_target.c
1281
return iscsit_add_reject(conn, ISCSI_REASON_BOOKMARK_NO_RESOURCES,
drivers/target/iscsi/cxgbit/cxgbit_target.c
1289
struct iscsit_conn *conn = csk->conn;
drivers/target/iscsi/cxgbit/cxgbit_target.c
1294
atomic_long_inc(&conn->sess->conn_digest_errors);
drivers/target/iscsi/cxgbit/cxgbit_target.c
1298
if (conn->conn_state == TARG_CONN_STATE_IN_LOGOUT)
drivers/target/iscsi/cxgbit/cxgbit_target.c
1303
if (conn->sess->sess_ops->SessionType &&
drivers/target/iscsi/cxgbit/cxgbit_target.c
1308
iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/cxgbit/cxgbit_target.c
1324
struct iscsit_conn *conn = csk->conn;
drivers/target/iscsi/cxgbit/cxgbit_target.c
1325
struct iscsi_login *login = conn->login;
drivers/target/iscsi/cxgbit/cxgbit_target.c
1355
if (iscsi_target_check_login_request(conn, login) < 0)
drivers/target/iscsi/cxgbit/cxgbit_target.c
1629
int cxgbit_get_login_rx(struct iscsit_conn *conn, struct iscsi_login *login)
drivers/target/iscsi/cxgbit/cxgbit_target.c
1631
struct cxgbit_sock *csk = conn->context;
drivers/target/iscsi/cxgbit/cxgbit_target.c
1645
void cxgbit_get_rx_pdu(struct iscsit_conn *conn)
drivers/target/iscsi/cxgbit/cxgbit_target.c
1647
struct cxgbit_sock *csk = conn->context;
drivers/target/iscsi/cxgbit/cxgbit_target.c
1650
iscsit_thread_check_cpumask(conn, current, 0);
drivers/target/iscsi/cxgbit/cxgbit_target.c
396
struct iscsit_conn *conn = csk->conn;
drivers/target/iscsi/cxgbit/cxgbit_target.c
401
u32 mrdsl = conn->conn_ops->MaxRecvDataSegmentLength;
drivers/target/iscsi/cxgbit/cxgbit_target.c
439
iscsit_increment_maxcmdsn(cmd, conn->sess);
drivers/target/iscsi/cxgbit/cxgbit_target.c
440
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/cxgbit/cxgbit_target.c
454
iscsit_build_datain_pdu(cmd, conn, &datain,
drivers/target/iscsi/cxgbit/cxgbit_target.c
513
cxgbit_xmit_datain_pdu(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/cxgbit/cxgbit_target.c
517
struct cxgbit_sock *csk = conn->context;
drivers/target/iscsi/cxgbit/cxgbit_target.c
520
u32 mrdsl = conn->conn_ops->MaxRecvDataSegmentLength;
drivers/target/iscsi/cxgbit/cxgbit_target.c
525
&conn->sess->tx_data_octets);
drivers/target/iscsi/cxgbit/cxgbit_target.c
533
cxgbit_xmit_nondatain_pdu(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/cxgbit/cxgbit_target.c
536
struct cxgbit_sock *csk = conn->context;
drivers/target/iscsi/cxgbit/cxgbit_target.c
563
cxgbit_xmit_pdu(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/cxgbit/cxgbit_target.c
567
return cxgbit_xmit_datain_pdu(conn, cmd, dr, buf);
drivers/target/iscsi/cxgbit/cxgbit_target.c
569
return cxgbit_xmit_nondatain_pdu(conn, cmd, buf, buf_len);
drivers/target/iscsi/cxgbit/cxgbit_target.c
572
int cxgbit_validate_params(struct iscsit_conn *conn)
drivers/target/iscsi/cxgbit/cxgbit_target.c
574
struct cxgbit_sock *csk = conn->context;
drivers/target/iscsi/cxgbit/cxgbit_target.c
580
conn->param_list);
drivers/target/iscsi/cxgbit/cxgbit_target.c
589
conn, "MaxXmitDataSegmentLength=%u", cdev->mdsl))
drivers/target/iscsi/cxgbit/cxgbit_target.c
598
struct iscsit_conn *conn = csk->conn;
drivers/target/iscsi/cxgbit/cxgbit_target.c
601
param = iscsi_find_param_from_key(HEADERDIGEST, conn->param_list);
drivers/target/iscsi/cxgbit/cxgbit_target.c
610
param = iscsi_find_param_from_key(DATADIGEST, conn->param_list);
drivers/target/iscsi/cxgbit/cxgbit_target.c
630
struct iscsit_conn *conn = csk->conn;
drivers/target/iscsi/cxgbit/cxgbit_target.c
631
struct iscsi_conn_ops *conn_ops = conn->conn_ops;
drivers/target/iscsi/cxgbit/cxgbit_target.c
637
if (conn->login->leading_connection) {
drivers/target/iscsi/cxgbit/cxgbit_target.c
639
conn->param_list);
drivers/target/iscsi/cxgbit/cxgbit_target.c
648
mbl = conn->sess->sess_ops->MaxBurstLength;
drivers/target/iscsi/cxgbit/cxgbit_target.c
681
struct iscsit_conn *conn = csk->conn;
drivers/target/iscsi/cxgbit/cxgbit_target.c
684
if (conn->login->leading_connection) {
drivers/target/iscsi/cxgbit/cxgbit_target.c
686
conn->param_list);
drivers/target/iscsi/cxgbit/cxgbit_target.c
696
conn->param_list);
drivers/target/iscsi/cxgbit/cxgbit_target.c
706
if (!conn->sess->sess_ops->DataSequenceInOrder)
drivers/target/iscsi/cxgbit/cxgbit_target.c
708
if (!conn->sess->sess_ops->DataPDUInOrder)
drivers/target/iscsi/cxgbit/cxgbit_target.c
715
static int cxgbit_set_params(struct iscsit_conn *conn)
drivers/target/iscsi/cxgbit/cxgbit_target.c
717
struct cxgbit_sock *csk = conn->context;
drivers/target/iscsi/cxgbit/cxgbit_target.c
720
struct iscsi_conn_ops *conn_ops = conn->conn_ops;
drivers/target/iscsi/cxgbit/cxgbit_target.c
730
if (conn->login->leading_connection) {
drivers/target/iscsi/cxgbit/cxgbit_target.c
732
conn->param_list);
drivers/target/iscsi/cxgbit/cxgbit_target.c
740
erl = conn->sess->sess_ops->ErrorRecoveryLevel;
drivers/target/iscsi/cxgbit/cxgbit_target.c
774
cxgbit_put_login_tx(struct iscsit_conn *conn, struct iscsi_login *login,
drivers/target/iscsi/cxgbit/cxgbit_target.c
777
struct cxgbit_sock *csk = conn->context;
drivers/target/iscsi/cxgbit/cxgbit_target.c
793
if (cxgbit_set_params(conn)) {
drivers/target/iscsi/cxgbit/cxgbit_target.c
805
schedule_delayed_work(&conn->login_work, 0);
drivers/target/iscsi/cxgbit/cxgbit_target.c
837
struct iscsit_conn *conn = csk->conn;
drivers/target/iscsi/cxgbit/cxgbit_target.c
842
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
drivers/target/iscsi/cxgbit/cxgbit_target.c
859
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/cxgbit/cxgbit_target.c
860
struct cxgbit_sock *csk = conn->context;
drivers/target/iscsi/cxgbit/cxgbit_target.c
865
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/cxgbit/cxgbit_target.c
916
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/cxgbit/cxgbit_target.c
933
cmdsn_ret = iscsit_sequence_cmd(conn, cmd,
drivers/target/iscsi/cxgbit/cxgbit_target.c
959
iscsit_add_cmd_to_immediate_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/cxgbit/cxgbit_target.c
969
struct iscsit_conn *conn = csk->conn;
drivers/target/iscsi/cxgbit/cxgbit_target.c
975
rc = iscsit_setup_scsi_cmd(conn, cmd, (unsigned char *)hdr);
drivers/target/iscsi/cxgbit/cxgbit_target.c
983
rc = iscsit_process_scsi_cmd(conn, cmd, hdr);
drivers/target/iscsi/cxgbit/cxgbit_target.c
998
struct iscsit_conn *conn = csk->conn;
drivers/target/iscsi/iscsi_target.c
1003
atomic_long_inc(&conn->sess->cmd_pdus);
drivers/target/iscsi/iscsi_target.c
1061
if (payload_length && !conn->sess->sess_ops->ImmediateData) {
drivers/target/iscsi/iscsi_target.c
1085
if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
drivers/target/iscsi/iscsi_target.c
1088
payload_length, conn->conn_ops->MaxXmitDataSegmentLength);
drivers/target/iscsi/iscsi_target.c
1093
if (payload_length > conn->sess->sess_ops->FirstBurstLength) {
drivers/target/iscsi/iscsi_target.c
1096
payload_length, conn->sess->sess_ops->FirstBurstLength);
drivers/target/iscsi/iscsi_target.c
1168
conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt;
drivers/target/iscsi/iscsi_target.c
1170
cmd->targ_xfer_tag = session_get_next_ttt(conn->sess);
drivers/target/iscsi/iscsi_target.c
1177
if (!conn->sess->sess_ops->RDMAExtensions &&
drivers/target/iscsi/iscsi_target.c
1196
conn->sess->se_sess, be32_to_cpu(hdr->data_length),
drivers/target/iscsi/iscsi_target.c
1199
conn->cmd_cnt);
drivers/target/iscsi/iscsi_target.c
1204
conn->cid);
drivers/target/iscsi/iscsi_target.c
1238
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
1239
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
1240
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
1250
iscsit_start_dataout_timer(cmd, cmd->conn);
drivers/target/iscsi/iscsi_target.c
1255
int iscsit_process_scsi_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1270
cmdsn_ret = iscsit_sequence_cmd(conn, cmd,
drivers/target/iscsi/iscsi_target.c
1280
iscsit_ack_from_expstatsn(conn, be32_to_cpu(hdr->exp_statsn));
drivers/target/iscsi/iscsi_target.c
1331
rc = iscsit_dump_data_payload(cmd->conn, length, 1);
drivers/target/iscsi/iscsi_target.c
1346
cmdsn_ret = iscsit_sequence_cmd(cmd->conn, cmd,
drivers/target/iscsi/iscsi_target.c
1371
iscsit_add_cmd_to_immediate_queue(cmd, cmd->conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
1379
iscsit_handle_scsi_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1386
rc = iscsit_setup_scsi_cmd(conn, cmd, buf);
drivers/target/iscsi/iscsi_target.c
1399
rc = iscsit_process_scsi_cmd(conn, cmd, hdr);
drivers/target/iscsi/iscsi_target.c
1453
__iscsit_check_dataout_hdr(struct iscsit_conn *conn, void *buf,
drivers/target/iscsi/iscsi_target.c
1462
atomic_long_add(payload_length, &conn->sess->rx_data_octets);
drivers/target/iscsi/iscsi_target.c
1467
payload_length, conn->cid);
drivers/target/iscsi/iscsi_target.c
1473
return iscsit_dump_data_payload(conn, payload_length, 1);
drivers/target/iscsi/iscsi_target.c
1479
return iscsit_dump_data_payload(conn, payload_length, 1);
drivers/target/iscsi/iscsi_target.c
1494
if (conn->sess->sess_ops->InitialR2T) {
drivers/target/iscsi/iscsi_target.c
1521
return iscsit_dump_data_payload(conn, payload_length, 1);
drivers/target/iscsi/iscsi_target.c
1539
return iscsit_dump_data_payload(conn, payload_length, 1);
drivers/target/iscsi/iscsi_target.c
1557
iscsit_check_dataout_hdr(struct iscsit_conn *conn, void *buf,
drivers/target/iscsi/iscsi_target.c
1571
if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
drivers/target/iscsi/iscsi_target.c
1574
conn->conn_ops->MaxXmitDataSegmentLength);
drivers/target/iscsi/iscsi_target.c
1575
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR, buf);
drivers/target/iscsi/iscsi_target.c
1578
cmd = iscsit_find_cmd_from_itt_or_dump(conn, hdr->itt, payload_length);
drivers/target/iscsi/iscsi_target.c
1582
rc = __iscsit_check_dataout_hdr(conn, buf, cmd, payload_length, &success);
drivers/target/iscsi/iscsi_target.c
1592
iscsit_get_dataout(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1620
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
1627
rx_got = rx_data(conn, &cmd->iov_data[0], iov_count, rx_size);
drivers/target/iscsi/iscsi_target.c
1634
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
1660
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target.c
1671
conn->conn_transport->iscsit_get_dataout(conn, cmd, false);
drivers/target/iscsi/iscsi_target.c
1695
static int iscsit_handle_data_out(struct iscsit_conn *conn, unsigned char *buf)
drivers/target/iscsi/iscsi_target.c
1702
rc = iscsit_check_dataout_hdr(conn, buf, &cmd);
drivers/target/iscsi/iscsi_target.c
1708
rc = iscsit_get_dataout(conn, cmd, hdr);
drivers/target/iscsi/iscsi_target.c
1717
int iscsit_setup_nop_out(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1725
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
1736
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
1743
if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
drivers/target/iscsi/iscsi_target.c
1747
conn->conn_ops->MaxXmitDataSegmentLength);
drivers/target/iscsi/iscsi_target.c
1749
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
1773
conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt;
drivers/target/iscsi/iscsi_target.c
1784
int iscsit_process_nop_out(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1794
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
1797
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
1798
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
1799
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
1801
iscsit_ack_from_expstatsn(conn, be32_to_cpu(hdr->exp_statsn));
drivers/target/iscsi/iscsi_target.c
1804
iscsit_add_cmd_to_response_queue(cmd, conn,
drivers/target/iscsi/iscsi_target.c
1809
cmdsn_ret = iscsit_sequence_cmd(conn, cmd,
drivers/target/iscsi/iscsi_target.c
1822
cmd_p = iscsit_find_cmd_from_ttt(conn, be32_to_cpu(hdr->ttt));
drivers/target/iscsi/iscsi_target.c
1826
iscsit_stop_nopin_response_timer(conn);
drivers/target/iscsi/iscsi_target.c
1829
iscsit_add_cmd_to_immediate_queue(cmd_p, conn, cmd_p->i_state);
drivers/target/iscsi/iscsi_target.c
1831
iscsit_start_nopin_timer(conn);
drivers/target/iscsi/iscsi_target.c
1846
static int iscsit_handle_nop_out(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1855
ret = iscsit_setup_nop_out(conn, cmd, hdr);
drivers/target/iscsi/iscsi_target.c
1883
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
1890
rx_got = rx_data(conn, &cmd->iov_misc[0], niov, rx_size);
drivers/target/iscsi/iscsi_target.c
1896
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
1903
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/iscsi_target.c
1939
return iscsit_process_nop_out(conn, cmd, hdr);
drivers/target/iscsi/iscsi_target.c
1971
iscsit_handle_task_mgt_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1987
hdr->rtt, hdr->refcmdsn, conn->cid);
drivers/target/iscsi/iscsi_target.c
2017
conn->sess->se_sess, 0, DMA_NONE,
drivers/target/iscsi/iscsi_target.c
2020
conn->cmd_cnt);
drivers/target/iscsi/iscsi_target.c
2077
if (iscsit_tmr_task_warm_reset(conn, tmr_req, buf) < 0) {
drivers/target/iscsi/iscsi_target.c
2083
if (iscsit_tmr_task_cold_reset(conn, tmr_req, buf) < 0) {
drivers/target/iscsi/iscsi_target.c
2097
if (iscsit_check_task_reassign_expdatasn(tmr_req, conn) < 0)
drivers/target/iscsi/iscsi_target.c
2112
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
2113
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
2114
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
2117
int cmdsn_ret = iscsit_sequence_cmd(conn, cmd, buf, hdr->cmdsn);
drivers/target/iscsi/iscsi_target.c
2127
iscsit_ack_from_expstatsn(conn, be32_to_cpu(hdr->exp_statsn));
drivers/target/iscsi/iscsi_target.c
2145
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
2153
iscsit_setup_text_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
2158
if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
drivers/target/iscsi/iscsi_target.c
2161
payload_length, conn->conn_ops->MaxXmitDataSegmentLength);
drivers/target/iscsi/iscsi_target.c
2180
conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt;
drivers/target/iscsi/iscsi_target.c
2193
iscsit_process_text_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
2227
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
2228
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
2229
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
2232
iscsit_ack_from_expstatsn(conn, be32_to_cpu(hdr->exp_statsn));
drivers/target/iscsi/iscsi_target.c
2235
cmdsn_ret = iscsit_sequence_cmd(conn, cmd,
drivers/target/iscsi/iscsi_target.c
2252
iscsit_handle_text_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
2260
rc = iscsit_setup_text_cmd(conn, cmd, hdr);
drivers/target/iscsi/iscsi_target.c
2286
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
2293
rx_got = rx_data(conn, &iov[0], niov, rx_size);
drivers/target/iscsi/iscsi_target.c
2297
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
2305
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/iscsi_target.c
2333
return iscsit_process_text_cmd(conn, cmd, hdr);
drivers/target/iscsi/iscsi_target.c
2341
int iscsit_logout_closesession(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2344
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
2347
" for SID: %u.\n", conn->cid, conn->sess->sid);
drivers/target/iscsi/iscsi_target.c
2350
atomic_set(&conn->conn_logout_remove, 1);
drivers/target/iscsi/iscsi_target.c
2351
conn->conn_logout_reason = ISCSI_LOGOUT_REASON_CLOSE_SESSION;
drivers/target/iscsi/iscsi_target.c
2353
iscsit_inc_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
2366
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
2371
int iscsit_logout_closeconnection(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2374
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
2377
" %hu on CID: %hu.\n", cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2383
if (conn->cid == cmd->logout_cid) {
drivers/target/iscsi/iscsi_target.c
2384
spin_lock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
2386
conn->conn_state = TARG_CONN_STATE_IN_LOGOUT;
drivers/target/iscsi/iscsi_target.c
2388
atomic_set(&conn->conn_logout_remove, 1);
drivers/target/iscsi/iscsi_target.c
2389
conn->conn_logout_reason = ISCSI_LOGOUT_REASON_CLOSE_CONNECTION;
drivers/target/iscsi/iscsi_target.c
2390
iscsit_inc_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
2392
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
2406
iscsit_add_cmd_to_response_queue(cmd, conn,
drivers/target/iscsi/iscsi_target.c
2414
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
2419
int iscsit_logout_removeconnforrecovery(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2421
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
2424
" CID: %hu on CID: %hu.\n", cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2430
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
2434
if (conn->cid == cmd->logout_cid) {
drivers/target/iscsi/iscsi_target.c
2437
cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2439
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
2443
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
2449
iscsit_handle_logout_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
2455
struct iscsi_tiqn *tiqn = iscsit_snmp_get_tiqn(conn);
drivers/target/iscsi/iscsi_target.c
2472
hdr->cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2474
if (conn->conn_state != TARG_CONN_STATE_LOGGED_IN) {
drivers/target/iscsi/iscsi_target.c
2484
conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt;
drivers/target/iscsi/iscsi_target.c
2498
be16_to_cpu(hdr->cid) == conn->cid))
drivers/target/iscsi/iscsi_target.c
2501
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
2502
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
2503
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
2506
iscsit_ack_from_expstatsn(conn, be32_to_cpu(hdr->exp_statsn));
drivers/target/iscsi/iscsi_target.c
2518
cmdsn_ret = iscsit_sequence_cmd(conn, cmd, buf, hdr->cmdsn);
drivers/target/iscsi/iscsi_target.c
2530
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
2541
hdr->begrun, hdr->runlength, conn->cid);
drivers/target/iscsi/iscsi_target.c
2543
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/iscsi_target.c
2546
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
2555
return iscsit_handle_recovery_datain_or_r2t(conn, buf,
drivers/target/iscsi/iscsi_target.c
2561
return iscsit_handle_status_snack(conn, hdr->itt,
drivers/target/iscsi/iscsi_target.c
2565
return iscsit_handle_data_ack(conn, be32_to_cpu(hdr->ttt),
drivers/target/iscsi/iscsi_target.c
2571
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
2576
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
2584
static void iscsit_rx_thread_wait_for_tcp(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2586
if ((conn->sock->sk->sk_shutdown & SEND_SHUTDOWN) ||
drivers/target/iscsi/iscsi_target.c
2587
(conn->sock->sk->sk_shutdown & RCV_SHUTDOWN)) {
drivers/target/iscsi/iscsi_target.c
2589
&conn->rx_half_close_comp,
drivers/target/iscsi/iscsi_target.c
2601
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target.c
2639
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
2646
rx_got = rx_data(conn, &cmd->iov_data[0], iov_count, rx_size);
drivers/target/iscsi/iscsi_target.c
2651
iscsit_rx_thread_wait_for_tcp(conn);
drivers/target/iscsi/iscsi_target.c
2655
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
2665
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/iscsi_target.c
2700
static void iscsit_build_conn_drop_async_message(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2706
lockdep_assert_held(&conn->sess->conn_lock);
drivers/target/iscsi/iscsi_target.c
2712
list_for_each_entry(conn_p, &conn->sess->sess_conn_list, conn_list) {
drivers/target/iscsi/iscsi_target.c
2729
cmd->logout_cid = conn->cid;
drivers/target/iscsi/iscsi_target.c
2743
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2755
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
2757
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
2758
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
2761
hdr->param2 = cpu_to_be16(conn->sess->sess_ops->DefaultTime2Wait);
drivers/target/iscsi/iscsi_target.c
2762
hdr->param3 = cpu_to_be16(conn->sess->sess_ops->DefaultTime2Retain);
drivers/target/iscsi/iscsi_target.c
2766
cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2768
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL, NULL, 0);
drivers/target/iscsi/iscsi_target.c
2771
static void iscsit_tx_thread_wait_for_tcp(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2773
if ((conn->sock->sk->sk_shutdown & SEND_SHUTDOWN) ||
drivers/target/iscsi/iscsi_target.c
2774
(conn->sock->sk->sk_shutdown & RCV_SHUTDOWN)) {
drivers/target/iscsi/iscsi_target.c
2776
&conn->tx_half_close_comp,
drivers/target/iscsi/iscsi_target.c
2782
iscsit_build_datain_pdu(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
2815
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
2816
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
2823
ntohl(hdr->offset), datain->length, conn->cid);
drivers/target/iscsi/iscsi_target.c
2827
static int iscsit_send_datain(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2853
atomic_long_add(datain.length, &conn->sess->tx_data_octets);
drivers/target/iscsi/iscsi_target.c
2864
iscsit_increment_maxcmdsn(cmd, conn->sess);
drivers/target/iscsi/iscsi_target.c
2865
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
2872
iscsit_build_datain_pdu(cmd, conn, &datain, hdr, set_statsn);
drivers/target/iscsi/iscsi_target.c
2874
ret = conn->conn_transport->iscsit_xmit_pdu(conn, cmd, dr, &datain, 0);
drivers/target/iscsi/iscsi_target.c
2888
iscsit_build_logout_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
2893
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
2921
" successful.\n", cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2940
conn->sess, cmd->logout_cid);
drivers/target/iscsi/iscsi_target.c
2953
cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2966
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
2969
iscsit_increment_maxcmdsn(cmd, conn->sess);
drivers/target/iscsi/iscsi_target.c
2970
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
2971
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
2976
cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2983
iscsit_send_logout(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2987
rc = iscsit_build_logout_rsp(cmd, conn,
drivers/target/iscsi/iscsi_target.c
2992
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL, NULL, 0);
drivers/target/iscsi/iscsi_target.c
2996
iscsit_build_nopin_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3006
cmd->stat_sn = (nopout_response) ? conn->stat_sn++ :
drivers/target/iscsi/iscsi_target.c
3007
conn->stat_sn;
drivers/target/iscsi/iscsi_target.c
3011
iscsit_increment_maxcmdsn(cmd, conn->sess);
drivers/target/iscsi/iscsi_target.c
3013
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
3014
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
3028
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3034
iscsit_build_nopin_rsp(cmd, conn, hdr, false);
drivers/target/iscsi/iscsi_target.c
3037
" 0x%08x CID: %hu\n", hdr->ttt, cmd->stat_sn, conn->cid);
drivers/target/iscsi/iscsi_target.c
3039
ret = conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL, NULL, 0);
drivers/target/iscsi/iscsi_target.c
3052
iscsit_send_nopin(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3056
iscsit_build_nopin_rsp(cmd, conn, hdr, true);
drivers/target/iscsi/iscsi_target.c
3064
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL,
drivers/target/iscsi/iscsi_target.c
3071
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3088
if (conn->conn_transport->iscsit_get_r2t_ttt)
drivers/target/iscsi/iscsi_target.c
3089
conn->conn_transport->iscsit_get_r2t_ttt(conn, cmd, r2t);
drivers/target/iscsi/iscsi_target.c
3091
r2t->targ_xfer_tag = session_get_next_ttt(conn->sess);
drivers/target/iscsi/iscsi_target.c
3093
hdr->statsn = cpu_to_be32(conn->stat_sn);
drivers/target/iscsi/iscsi_target.c
3094
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
3095
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
3104
r2t->offset, r2t->xfer_len, conn->cid);
drivers/target/iscsi/iscsi_target.c
3110
ret = conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL, NULL, 0);
drivers/target/iscsi/iscsi_target.c
3116
iscsit_start_dataout_timer(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3127
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3140
if (conn->sess->sess_ops->DataSequenceInOrder &&
drivers/target/iscsi/iscsi_target.c
3144
while (cmd->outstanding_r2ts < conn->sess->sess_ops->MaxOutstandingR2T) {
drivers/target/iscsi/iscsi_target.c
3145
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target.c
3150
conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target.c
3157
conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target.c
3161
conn->sess->sess_ops->MaxBurstLength;
drivers/target/iscsi/iscsi_target.c
3166
xfer_len = conn->sess->sess_ops->MaxBurstLength;
drivers/target/iscsi/iscsi_target.c
3210
void iscsit_build_rsp_pdu(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3214
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
3216
atomic_long_inc(&conn->sess->rsp_pdus);
drivers/target/iscsi/iscsi_target.c
3233
iscsit_increment_maxcmdsn(cmd, conn->sess);
drivers/target/iscsi/iscsi_target.c
3234
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
3235
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
3240
cmd->se_cmd.scsi_status, conn->cid);
drivers/target/iscsi/iscsi_target.c
3244
static int iscsit_send_response(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3251
iscsit_build_rsp_pdu(cmd, conn, inc_stat_sn, hdr);
drivers/target/iscsi/iscsi_target.c
3279
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL, data_buf,
drivers/target/iscsi/iscsi_target.c
3301
iscsit_build_task_mgt_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3310
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
3313
iscsit_increment_maxcmdsn(cmd, conn->sess);
drivers/target/iscsi/iscsi_target.c
3314
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
3315
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
3319
cmd->init_task_tag, cmd->stat_sn, hdr->response, conn->cid);
drivers/target/iscsi/iscsi_target.c
3324
iscsit_send_task_mgt_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3328
iscsit_build_task_mgt_rsp(cmd, conn, hdr);
drivers/target/iscsi/iscsi_target.c
3330
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL, NULL, 0);
drivers/target/iscsi/iscsi_target.c
3341
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target.c
3351
buffer_len = min(conn->conn_ops->MaxRecvDataSegmentLength,
drivers/target/iscsi/iscsi_target.c
3396
cmd->conn->sess->sess_ops->InitiatorName))) {
drivers/target/iscsi/iscsi_target.c
3440
sockaddr = &conn->local_sockaddr;
drivers/target/iscsi/iscsi_target.c
3486
iscsit_build_text_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3505
cmd->targ_xfer_tag = session_get_next_ttt(conn->sess);
drivers/target/iscsi/iscsi_target.c
3512
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
3515
iscsit_increment_maxcmdsn(cmd, conn->sess);
drivers/target/iscsi/iscsi_target.c
3522
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
3523
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
3527
cmd->targ_xfer_tag, cmd->stat_sn, text_length, conn->cid,
drivers/target/iscsi/iscsi_target.c
3537
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3542
text_length = iscsit_build_text_rsp(cmd, conn, hdr,
drivers/target/iscsi/iscsi_target.c
3543
conn->conn_transport->transport_type);
drivers/target/iscsi/iscsi_target.c
3547
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL,
drivers/target/iscsi/iscsi_target.c
3553
iscsit_build_reject(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3561
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
3563
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
3564
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
3571
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3575
iscsit_build_reject(cmd, conn, hdr);
drivers/target/iscsi/iscsi_target.c
3578
" CID: %hu\n", ntohl(hdr->statsn), hdr->reason, conn->cid);
drivers/target/iscsi/iscsi_target.c
3580
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL,
drivers/target/iscsi/iscsi_target.c
3585
void iscsit_thread_get_cpumask(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3599
ord = conn->bitmap_id % cpumask_weight(cpu_online_mask);
drivers/target/iscsi/iscsi_target.c
3602
cpumask_set_cpu(cpu, conn->conn_cpumask);
drivers/target/iscsi/iscsi_target.c
3610
cpumask_clear(conn->conn_cpumask);
drivers/target/iscsi/iscsi_target.c
3611
ord = conn->bitmap_id % cpumask_weight(conn_allowed_cpumask);
drivers/target/iscsi/iscsi_target.c
3614
cpumask_set_cpu(cpu, conn->conn_cpumask);
drivers/target/iscsi/iscsi_target.c
3625
cpumask_setall(conn->conn_cpumask);
drivers/target/iscsi/iscsi_target.c
3628
static void iscsit_thread_reschedule(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3635
conn->allowed_cpumask)) {
drivers/target/iscsi/iscsi_target.c
3636
iscsit_thread_get_cpumask(conn);
drivers/target/iscsi/iscsi_target.c
3637
conn->conn_tx_reset_cpumask = 1;
drivers/target/iscsi/iscsi_target.c
3638
conn->conn_rx_reset_cpumask = 1;
drivers/target/iscsi/iscsi_target.c
3639
cpumask_copy(conn->allowed_cpumask,
drivers/target/iscsi/iscsi_target.c
3645
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3657
iscsit_thread_reschedule(conn);
drivers/target/iscsi/iscsi_target.c
3664
if (!conn->conn_tx_reset_cpumask)
drivers/target/iscsi/iscsi_target.c
3667
if (!conn->conn_rx_reset_cpumask)
drivers/target/iscsi/iscsi_target.c
3676
set_cpus_allowed_ptr(p, conn->conn_cpumask);
drivers/target/iscsi/iscsi_target.c
3678
conn->conn_tx_reset_cpumask = 0;
drivers/target/iscsi/iscsi_target.c
3680
conn->conn_rx_reset_cpumask = 0;
drivers/target/iscsi/iscsi_target.c
3685
iscsit_immediate_queue(struct iscsit_conn *conn, struct iscsit_cmd *cmd, int state)
drivers/target/iscsi/iscsi_target.c
3691
ret = iscsit_send_r2t(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3696
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
3698
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
3703
iscsit_mod_nopin_response_timer(conn);
drivers/target/iscsi/iscsi_target.c
3704
ret = iscsit_send_unsolicited_nopin(cmd, conn, 1);
drivers/target/iscsi/iscsi_target.c
3709
ret = iscsit_send_unsolicited_nopin(cmd, conn, 0);
drivers/target/iscsi/iscsi_target.c
3717
conn->cid);
drivers/target/iscsi/iscsi_target.c
3729
iscsit_handle_immediate_queue(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3731
struct iscsit_transport *t = conn->conn_transport;
drivers/target/iscsi/iscsi_target.c
3737
while ((qr = iscsit_get_cmd_from_immediate_queue(conn))) {
drivers/target/iscsi/iscsi_target.c
3738
atomic_set(&conn->check_immediate_queue, 0);
drivers/target/iscsi/iscsi_target.c
3743
ret = t->iscsit_immediate_queue(conn, cmd, state);
drivers/target/iscsi/iscsi_target.c
3752
iscsit_response_queue(struct iscsit_conn *conn, struct iscsit_cmd *cmd, int state)
drivers/target/iscsi/iscsi_target.c
3759
ret = iscsit_send_datain(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3771
if (atomic_read(&conn->check_immediate_queue))
drivers/target/iscsi/iscsi_target.c
3788
ret = iscsit_send_response(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3791
ret = iscsit_send_logout(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3795
cmd, conn);
drivers/target/iscsi/iscsi_target.c
3798
ret = iscsit_send_nopin(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3801
ret = iscsit_send_reject(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3804
ret = iscsit_send_task_mgt_rsp(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3807
ret = iscsit_tmr_post_handler(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3809
iscsit_fall_back_to_erl0(conn->sess);
drivers/target/iscsi/iscsi_target.c
3812
ret = iscsit_send_text_rsp(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3818
state, conn->cid);
drivers/target/iscsi/iscsi_target.c
3826
if (!iscsit_logout_post_handler(cmd, conn))
drivers/target/iscsi/iscsi_target.c
3844
cmd->i_state, conn->cid);
drivers/target/iscsi/iscsi_target.c
3848
if (atomic_read(&conn->check_immediate_queue))
drivers/target/iscsi/iscsi_target.c
3858
static int iscsit_handle_response_queue(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3860
struct iscsit_transport *t = conn->conn_transport;
drivers/target/iscsi/iscsi_target.c
3866
while ((qr = iscsit_get_cmd_from_response_queue(conn))) {
drivers/target/iscsi/iscsi_target.c
3871
ret = t->iscsit_response_queue(conn, cmd, state);
drivers/target/iscsi/iscsi_target.c
3882
struct iscsit_conn *conn = arg;
drivers/target/iscsi/iscsi_target.c
3896
iscsit_thread_check_cpumask(conn, current, 1);
drivers/target/iscsi/iscsi_target.c
3898
wait_event_interruptible(conn->queues_wq,
drivers/target/iscsi/iscsi_target.c
3899
!iscsit_conn_all_queues_empty(conn));
drivers/target/iscsi/iscsi_target.c
3905
ret = iscsit_handle_immediate_queue(conn);
drivers/target/iscsi/iscsi_target.c
3909
ret = iscsit_handle_response_queue(conn);
drivers/target/iscsi/iscsi_target.c
3926
if (conn->conn_state != TARG_CONN_STATE_IN_LOGIN)
drivers/target/iscsi/iscsi_target.c
3927
iscsit_take_action_for_connection_exit(conn, &conn_freed);
drivers/target/iscsi/iscsi_target.c
3937
static int iscsi_target_rx_opcode(struct iscsit_conn *conn, unsigned char *buf)
drivers/target/iscsi/iscsi_target.c
3945
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
drivers/target/iscsi/iscsi_target.c
3949
ret = iscsit_handle_scsi_cmd(conn, cmd, buf);
drivers/target/iscsi/iscsi_target.c
3952
ret = iscsit_handle_data_out(conn, buf);
drivers/target/iscsi/iscsi_target.c
3957
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
drivers/target/iscsi/iscsi_target.c
3961
ret = iscsit_handle_nop_out(conn, cmd, buf);
drivers/target/iscsi/iscsi_target.c
3964
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
drivers/target/iscsi/iscsi_target.c
3968
ret = iscsit_handle_task_mgt_cmd(conn, cmd, buf);
drivers/target/iscsi/iscsi_target.c
3972
cmd = iscsit_find_cmd_from_itt(conn, hdr->itt);
drivers/target/iscsi/iscsi_target.c
3976
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
drivers/target/iscsi/iscsi_target.c
3981
ret = iscsit_handle_text_cmd(conn, cmd, buf);
drivers/target/iscsi/iscsi_target.c
3984
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
drivers/target/iscsi/iscsi_target.c
3988
ret = iscsit_handle_logout_cmd(conn, cmd, buf);
drivers/target/iscsi/iscsi_target.c
3990
wait_for_completion_timeout(&conn->conn_logout_comp,
drivers/target/iscsi/iscsi_target.c
3994
ret = iscsit_handle_snack(conn, buf);
drivers/target/iscsi/iscsi_target.c
3998
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/iscsi_target.c
4011
return iscsit_add_reject(conn, ISCSI_REASON_BOOKMARK_NO_RESOURCES, buf);
drivers/target/iscsi/iscsi_target.c
4014
static bool iscsi_target_check_conn_state(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4018
spin_lock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4019
ret = (conn->conn_state != TARG_CONN_STATE_LOGGED_IN);
drivers/target/iscsi/iscsi_target.c
4020
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4025
static void iscsit_get_rx_pdu(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4042
iscsit_thread_check_cpumask(conn, current, 0);
drivers/target/iscsi/iscsi_target.c
4049
ret = rx_data(conn, &iov, 1, ISCSI_HDR_LEN);
drivers/target/iscsi/iscsi_target.c
4051
iscsit_rx_thread_wait_for_tcp(conn);
drivers/target/iscsi/iscsi_target.c
4067
ret = rx_data(conn, &iov, 1, iov.iov_len);
drivers/target/iscsi/iscsi_target.c
4069
iscsit_rx_thread_wait_for_tcp(conn);
drivers/target/iscsi/iscsi_target.c
4074
if (conn->conn_ops->HeaderDigest) {
drivers/target/iscsi/iscsi_target.c
4078
ret = rx_data(conn, &iov, 1, ISCSI_CRC_LEN);
drivers/target/iscsi/iscsi_target.c
4080
iscsit_rx_thread_wait_for_tcp(conn);
drivers/target/iscsi/iscsi_target.c
4095
atomic_long_inc(&conn->sess->conn_digest_errors);
drivers/target/iscsi/iscsi_target.c
4102
if (conn->conn_state == TARG_CONN_STATE_IN_LOGOUT)
drivers/target/iscsi/iscsi_target.c
4107
if (conn->sess->sess_ops->SessionType &&
drivers/target/iscsi/iscsi_target.c
4112
iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
4117
ret = iscsi_target_rx_opcode(conn, buffer);
drivers/target/iscsi/iscsi_target.c
4128
struct iscsit_conn *conn = arg;
drivers/target/iscsi/iscsi_target.c
4140
rc = wait_for_completion_interruptible(&conn->rx_login_comp);
drivers/target/iscsi/iscsi_target.c
4141
if (rc < 0 || iscsi_target_check_conn_state(conn))
drivers/target/iscsi/iscsi_target.c
4144
if (!conn->conn_transport->iscsit_get_rx_pdu)
drivers/target/iscsi/iscsi_target.c
4147
conn->conn_transport->iscsit_get_rx_pdu(conn);
drivers/target/iscsi/iscsi_target.c
4150
atomic_set(&conn->transport_failed, 1);
drivers/target/iscsi/iscsi_target.c
4151
iscsit_take_action_for_connection_exit(conn, &conn_freed);
drivers/target/iscsi/iscsi_target.c
4163
static void iscsit_release_commands_from_conn(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4167
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
4173
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
4174
list_splice_init(&conn->conn_cmd_list, &tmp_list);
drivers/target/iscsi/iscsi_target.c
4191
&conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
4207
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
4222
if (!conn->conn_transport->iscsit_wait_conn) {
drivers/target/iscsi/iscsi_target.c
4223
target_stop_cmd_counter(conn->cmd_cnt);
drivers/target/iscsi/iscsi_target.c
4224
target_wait_for_cmds(conn->cmd_cnt);
drivers/target/iscsi/iscsi_target.c
4229
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4233
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
4234
list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) {
drivers/target/iscsi/iscsi_target.c
4238
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
4242
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4244
int conn_logout = (conn->conn_state == TARG_CONN_STATE_IN_LOGOUT);
drivers/target/iscsi/iscsi_target.c
4245
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
4248
" %u\n", conn->cid, sess->sid);
drivers/target/iscsi/iscsi_target.c
4260
if (!conn->conn_transport->rdma_shutdown)
drivers/target/iscsi/iscsi_target.c
4261
complete(&conn->conn_logout_comp);
drivers/target/iscsi/iscsi_target.c
4264
if (conn->tx_thread &&
drivers/target/iscsi/iscsi_target.c
4265
cmpxchg(&conn->tx_thread_active, true, false)) {
drivers/target/iscsi/iscsi_target.c
4266
send_sig(SIGINT, conn->tx_thread, 1);
drivers/target/iscsi/iscsi_target.c
4267
kthread_stop(conn->tx_thread);
drivers/target/iscsi/iscsi_target.c
4270
if (conn->rx_thread &&
drivers/target/iscsi/iscsi_target.c
4271
cmpxchg(&conn->rx_thread_active, true, false)) {
drivers/target/iscsi/iscsi_target.c
4272
send_sig(SIGINT, conn->rx_thread, 1);
drivers/target/iscsi/iscsi_target.c
4273
kthread_stop(conn->rx_thread);
drivers/target/iscsi/iscsi_target.c
4278
bitmap_release_region(iscsit_global->ts_bitmap, conn->bitmap_id,
drivers/target/iscsi/iscsi_target.c
4282
iscsit_stop_timers_for_cmds(conn);
drivers/target/iscsi/iscsi_target.c
4283
iscsit_stop_nopin_timer(conn);
drivers/target/iscsi/iscsi_target.c
4284
iscsit_stop_nopin_response_timer(conn);
drivers/target/iscsi/iscsi_target.c
4286
if (conn->conn_transport->iscsit_wait_conn)
drivers/target/iscsi/iscsi_target.c
4287
conn->conn_transport->iscsit_wait_conn(conn);
drivers/target/iscsi/iscsi_target.c
4298
if (atomic_read(&conn->connection_recovery)) {
drivers/target/iscsi/iscsi_target.c
4299
iscsit_discard_unacknowledged_ooo_cmdsns_for_conn(conn);
drivers/target/iscsi/iscsi_target.c
4300
iscsit_prepare_cmds_for_reallegiance(conn);
drivers/target/iscsi/iscsi_target.c
4302
iscsit_clear_ooo_cmdsns_for_conn(conn);
drivers/target/iscsi/iscsi_target.c
4303
iscsit_release_commands_from_conn(conn);
drivers/target/iscsi/iscsi_target.c
4305
iscsit_free_queue_reqs_for_conn(conn);
drivers/target/iscsi/iscsi_target.c
4312
if (atomic_read(&conn->conn_logout_remove)) {
drivers/target/iscsi/iscsi_target.c
4313
if (conn->conn_logout_reason == ISCSI_LOGOUT_REASON_CLOSE_SESSION) {
drivers/target/iscsi/iscsi_target.c
4314
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4317
if (conn->conn_logout_reason == ISCSI_LOGOUT_REASON_CLOSE_CONNECTION)
drivers/target/iscsi/iscsi_target.c
4318
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4320
atomic_set(&conn->conn_logout_remove, 0);
drivers/target/iscsi/iscsi_target.c
4326
list_del(&conn->conn_list);
drivers/target/iscsi/iscsi_target.c
4333
if (atomic_read(&conn->connection_recovery))
drivers/target/iscsi/iscsi_target.c
4334
iscsit_build_conn_drop_async_message(conn);
drivers/target/iscsi/iscsi_target.c
4343
spin_lock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4344
if (atomic_read(&conn->sleep_on_conn_wait_comp)) {
drivers/target/iscsi/iscsi_target.c
4345
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4346
complete(&conn->conn_wait_comp);
drivers/target/iscsi/iscsi_target.c
4347
wait_for_completion(&conn->conn_post_wait_comp);
drivers/target/iscsi/iscsi_target.c
4348
spin_lock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4357
if (atomic_read(&conn->connection_wait_rcfr)) {
drivers/target/iscsi/iscsi_target.c
4358
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4359
complete(&conn->conn_wait_rcfr_comp);
drivers/target/iscsi/iscsi_target.c
4360
wait_for_completion(&conn->conn_post_wait_comp);
drivers/target/iscsi/iscsi_target.c
4361
spin_lock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4363
atomic_set(&conn->connection_reinstatement, 1);
drivers/target/iscsi/iscsi_target.c
4364
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4370
iscsit_check_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4372
if (conn->sock)
drivers/target/iscsi/iscsi_target.c
4373
sock_release(conn->sock);
drivers/target/iscsi/iscsi_target.c
4375
if (conn->conn_transport->iscsit_free_conn)
drivers/target/iscsi/iscsi_target.c
4376
conn->conn_transport->iscsit_free_conn(conn);
drivers/target/iscsi/iscsi_target.c
4379
conn->conn_state = TARG_CONN_STATE_FREE;
drivers/target/iscsi/iscsi_target.c
4380
iscsit_free_conn(conn);
drivers/target/iscsi/iscsi_target.c
4541
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4543
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
4554
if (!conn->conn_transport->rdma_shutdown) {
drivers/target/iscsi/iscsi_target.c
4555
sleep = cmpxchg(&conn->tx_thread_active, true, false);
drivers/target/iscsi/iscsi_target.c
4560
atomic_set(&conn->conn_logout_remove, 0);
drivers/target/iscsi/iscsi_target.c
4561
complete(&conn->conn_logout_comp);
drivers/target/iscsi/iscsi_target.c
4563
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4570
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4574
if (!conn->conn_transport->rdma_shutdown) {
drivers/target/iscsi/iscsi_target.c
4575
sleep = cmpxchg(&conn->tx_thread_active, true, false);
drivers/target/iscsi/iscsi_target.c
4580
atomic_set(&conn->conn_logout_remove, 0);
drivers/target/iscsi/iscsi_target.c
4581
complete(&conn->conn_logout_comp);
drivers/target/iscsi/iscsi_target.c
4583
iscsit_cause_connection_reinstatement(conn, sleep);
drivers/target/iscsi/iscsi_target.c
4584
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4588
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
4592
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
4628
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4638
iscsit_logout_post_handler_closesession(conn);
drivers/target/iscsi/iscsi_target.c
4643
if (conn->cid == cmd->logout_cid) {
drivers/target/iscsi/iscsi_target.c
4648
iscsit_logout_post_handler_samecid(conn);
drivers/target/iscsi/iscsi_target.c
4654
iscsit_logout_post_handler_diffcid(conn,
drivers/target/iscsi/iscsi_target.c
4690
struct iscsit_conn *conn, *conn_tmp = NULL;
drivers/target/iscsi/iscsi_target.c
4696
list_for_each_entry_safe(conn, conn_tmp, &sess->sess_conn_list,
drivers/target/iscsi/iscsi_target.c
4701
if (list_is_last(&conn->conn_list, &sess->sess_conn_list)) {
drivers/target/iscsi/iscsi_target.c
4707
iscsit_inc_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4710
iscsit_cause_connection_reinstatement(conn, 1);
drivers/target/iscsi/iscsi_target.c
4713
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4719
list_for_each_entry(conn, &sess->sess_conn_list, conn_list)
drivers/target/iscsi/iscsi_target.c
4720
iscsit_cause_connection_reinstatement(conn, 0);
drivers/target/iscsi/iscsi_target.c
476
int iscsit_queue_rsp(struct iscsit_conn *conn, struct iscsit_cmd *cmd)
drivers/target/iscsi/iscsi_target.c
478
return iscsit_add_cmd_to_response_queue(cmd, cmd->conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
482
void iscsit_aborted_task(struct iscsit_conn *conn, struct iscsit_cmd *cmd)
drivers/target/iscsi/iscsi_target.c
484
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
487
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
498
iscsit_xmit_nondatain_pdu(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
510
if (conn->conn_ops->HeaderDigest) {
drivers/target/iscsi/iscsi_target.c
537
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
553
ret = iscsit_send_tx_data(cmd, conn, 1);
drivers/target/iscsi/iscsi_target.c
555
iscsit_tx_thread_wait_for_tcp(conn);
drivers/target/iscsi/iscsi_target.c
568
iscsit_xmit_datain_pdu(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
580
if (conn->conn_ops->HeaderDigest) {
drivers/target/iscsi/iscsi_target.c
610
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
624
ret = iscsit_fe_sendpage_sg(cmd, conn);
drivers/target/iscsi/iscsi_target.c
629
iscsit_tx_thread_wait_for_tcp(conn);
drivers/target/iscsi/iscsi_target.c
636
static int iscsit_xmit_pdu(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
641
return iscsit_xmit_datain_pdu(conn, cmd, buf);
drivers/target/iscsi/iscsi_target.c
643
return iscsit_xmit_nondatain_pdu(conn, cmd, buf, buf_len);
drivers/target/iscsi/iscsi_target.c
646
static enum target_prot_op iscsit_get_sup_prot_ops(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
788
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
794
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
drivers/target/iscsi/iscsi_target.c
808
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
809
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
810
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
813
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
825
struct iscsit_conn *conn;
drivers/target/iscsi/iscsi_target.c
828
if (!cmd->conn) {
drivers/target/iscsi/iscsi_target.c
833
conn = cmd->conn;
drivers/target/iscsi/iscsi_target.c
846
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
847
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
848
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
852
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
949
static void iscsit_ack_from_expstatsn(struct iscsit_conn *conn, u32 exp_statsn)
drivers/target/iscsi/iscsi_target.c
954
conn->exp_statsn = exp_statsn;
drivers/target/iscsi/iscsi_target.c
956
if (conn->sess->sess_ops->RDMAExtensions)
drivers/target/iscsi/iscsi_target.c
959
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
960
list_for_each_entry_safe(cmd, cmd_p, &conn->conn_cmd_list, i_conn_node) {
drivers/target/iscsi/iscsi_target.c
971
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
992
int iscsit_setup_scsi_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target_auth.c
133
static void chap_close(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_auth.c
135
kfree(conn->auth_protocol);
drivers/target/iscsi/iscsi_target_auth.c
136
conn->auth_protocol = NULL;
drivers/target/iscsi/iscsi_target_auth.c
140
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_auth.c
156
conn->auth_protocol = kzalloc_obj(struct iscsi_chap);
drivers/target/iscsi/iscsi_target_auth.c
157
if (!conn->auth_protocol)
drivers/target/iscsi/iscsi_target_auth.c
160
chap = conn->auth_protocol;
drivers/target/iscsi/iscsi_target_auth.c
178
chap_close(conn);
drivers/target/iscsi/iscsi_target_auth.c
195
chap->id = conn->tpg->tpg_chap_id++;
drivers/target/iscsi/iscsi_target_auth.c
202
if (chap_gen_challenge(conn, 1, aic_str, aic_len) < 0) {
drivers/target/iscsi/iscsi_target_auth.c
203
chap_close(conn);
drivers/target/iscsi/iscsi_target_auth.c
243
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_auth.c
260
struct iscsi_chap *chap = conn->auth_protocol;
drivers/target/iscsi/iscsi_target_auth.c
40
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_auth.c
47
struct iscsi_chap *chap = conn->auth_protocol;
drivers/target/iscsi/iscsi_target_auth.c
593
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_auth.c
600
struct iscsi_chap *chap = conn->auth_protocol;
drivers/target/iscsi/iscsi_target_auth.c
603
chap = chap_server_open(conn, auth, in_text, out_text, out_len);
drivers/target/iscsi/iscsi_target_auth.c
610
if (chap_server_compute_hash(conn, auth, in_text, out_text,
drivers/target/iscsi/iscsi_target_auth.c
612
chap_close(conn);
drivers/target/iscsi/iscsi_target_auth.c
619
chap_close(conn);
drivers/target/iscsi/iscsi_target_configfs.c
1388
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_configfs.c
1391
return conn->conn_transport->iscsit_queue_data_in(conn, cmd);
drivers/target/iscsi/iscsi_target_configfs.c
1397
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_configfs.c
1400
return conn->conn_transport->iscsit_get_dataout(conn, cmd, false);
drivers/target/iscsi/iscsi_target_configfs.c
1408
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_configfs.c
1413
return iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target_configfs.c
1415
return conn->conn_transport->iscsit_queue_status(conn, cmd);
drivers/target/iscsi/iscsi_target_configfs.c
1423
iscsit_add_cmd_to_response_queue(cmd, cmd->conn, cmd->i_state);
drivers/target/iscsi/iscsi_target_configfs.c
1430
cmd->conn->conn_transport->iscsit_aborted_task(cmd->conn, cmd);
drivers/target/iscsi/iscsi_target_configfs.c
528
struct iscsit_conn *conn;
drivers/target/iscsi/iscsi_target_configfs.c
590
list_for_each_entry(conn, &sess->sess_conn_list, conn_list) {
drivers/target/iscsi/iscsi_target_configfs.c
592
" State: ", conn->cid);
drivers/target/iscsi/iscsi_target_configfs.c
593
switch (conn->conn_state) {
drivers/target/iscsi/iscsi_target_configfs.c
628
rb += sysfs_emit_at(page, rb, " Address %pISc %s", &conn->login_sockaddr,
drivers/target/iscsi/iscsi_target_configfs.c
629
(conn->network_transport == ISCSI_TCP) ?
drivers/target/iscsi/iscsi_target_configfs.c
632
conn->stat_sn);
drivers/target/iscsi/iscsi_target_datain_values.c
110
if ((read_data_left <= conn->conn_ops->MaxRecvDataSegmentLength) &&
drivers/target/iscsi/iscsi_target_datain_values.c
111
(read_data_left <= (conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target_datain_values.c
116
if (conn->sess->sess_ops->ErrorRecoveryLevel > 0)
drivers/target/iscsi/iscsi_target_datain_values.c
120
conn->conn_ops->MaxRecvDataSegmentLength) <
drivers/target/iscsi/iscsi_target_datain_values.c
121
conn->sess->sess_ops->MaxBurstLength) {
drivers/target/iscsi/iscsi_target_datain_values.c
123
conn->conn_ops->MaxRecvDataSegmentLength;
drivers/target/iscsi/iscsi_target_datain_values.c
126
datain->length = (conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target_datain_values.c
131
if (conn->sess->sess_ops->ErrorRecoveryLevel > 0)
drivers/target/iscsi/iscsi_target_datain_values.c
181
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_datain_values.c
220
if ((offset + conn->conn_ops->MaxRecvDataSegmentLength) >=
drivers/target/iscsi/iscsi_target_datain_values.c
226
if (conn->sess->sess_ops->ErrorRecoveryLevel > 0)
drivers/target/iscsi/iscsi_target_datain_values.c
233
conn->conn_ops->MaxRecvDataSegmentLength) <
drivers/target/iscsi/iscsi_target_datain_values.c
234
conn->sess->sess_ops->MaxBurstLength) {
drivers/target/iscsi/iscsi_target_datain_values.c
236
conn->conn_ops->MaxRecvDataSegmentLength;
drivers/target/iscsi/iscsi_target_datain_values.c
241
datain->length = (conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target_datain_values.c
246
if (conn->sess->sess_ops->ErrorRecoveryLevel > 0)
drivers/target/iscsi/iscsi_target_datain_values.c
302
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_datain_values.c
336
if (conn->sess->sess_ops->ErrorRecoveryLevel > 0)
drivers/target/iscsi/iscsi_target_datain_values.c
341
if ((next_burst_len + conn->conn_ops->MaxRecvDataSegmentLength) <
drivers/target/iscsi/iscsi_target_datain_values.c
342
conn->sess->sess_ops->MaxBurstLength)
drivers/target/iscsi/iscsi_target_datain_values.c
346
if (conn->sess->sess_ops->ErrorRecoveryLevel > 0)
drivers/target/iscsi/iscsi_target_datain_values.c
401
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_datain_values.c
445
if (conn->sess->sess_ops->ErrorRecoveryLevel > 0)
drivers/target/iscsi/iscsi_target_datain_values.c
502
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_datain_values.c
504
if (conn->sess->sess_ops->DataSequenceInOrder &&
drivers/target/iscsi/iscsi_target_datain_values.c
505
conn->sess->sess_ops->DataPDUInOrder)
drivers/target/iscsi/iscsi_target_datain_values.c
507
else if (!conn->sess->sess_ops->DataSequenceInOrder &&
drivers/target/iscsi/iscsi_target_datain_values.c
508
conn->sess->sess_ops->DataPDUInOrder)
drivers/target/iscsi/iscsi_target_datain_values.c
510
else if (conn->sess->sess_ops->DataSequenceInOrder &&
drivers/target/iscsi/iscsi_target_datain_values.c
511
!conn->sess->sess_ops->DataPDUInOrder)
drivers/target/iscsi/iscsi_target_datain_values.c
513
else if (!conn->sess->sess_ops->DataSequenceInOrder &&
drivers/target/iscsi/iscsi_target_datain_values.c
514
!conn->sess->sess_ops->DataPDUInOrder)
drivers/target/iscsi/iscsi_target_datain_values.c
83
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl0.c
103
if (conn->sess->sess_ops->DataPDUInOrder) {
drivers/target/iscsi/iscsi_target_erl0.c
128
return iscsit_dump_data_payload(conn, payload_length, 1);
drivers/target/iscsi/iscsi_target_erl0.c
136
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl0.c
153
if (first_burst_len > conn->sess->sess_ops->FirstBurstLength) {
drivers/target/iscsi/iscsi_target_erl0.c
156
first_burst_len, conn->sess->sess_ops->FirstBurstLength);
drivers/target/iscsi/iscsi_target_erl0.c
172
if (!conn->sess->sess_ops->DataPDUInOrder)
drivers/target/iscsi/iscsi_target_erl0.c
176
(first_burst_len != conn->sess->sess_ops->FirstBurstLength)) {
drivers/target/iscsi/iscsi_target_erl0.c
180
conn->sess->sess_ops->FirstBurstLength,
drivers/target/iscsi/iscsi_target_erl0.c
187
if (first_burst_len == conn->sess->sess_ops->FirstBurstLength) {
drivers/target/iscsi/iscsi_target_erl0.c
191
conn->sess->sess_ops->FirstBurstLength);
drivers/target/iscsi/iscsi_target_erl0.c
211
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl0.c
223
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target_erl0.c
237
if (iscsit_dump_data_payload(conn, payload_length, 1) < 0)
drivers/target/iscsi/iscsi_target_erl0.c
254
if (iscsit_dump_data_payload(conn, payload_length, 1) < 0)
drivers/target/iscsi/iscsi_target_erl0.c
262
if (next_burst_len > conn->sess->sess_ops->MaxBurstLength) {
drivers/target/iscsi/iscsi_target_erl0.c
267
payload_length, conn->sess->sess_ops->MaxBurstLength);
drivers/target/iscsi/iscsi_target_erl0.c
281
if (!conn->sess->sess_ops->DataPDUInOrder)
drivers/target/iscsi/iscsi_target_erl0.c
284
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target_erl0.c
286
conn->sess->sess_ops->MaxBurstLength) &&
drivers/target/iscsi/iscsi_target_erl0.c
303
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target_erl0.c
305
conn->sess->sess_ops->MaxBurstLength) {
drivers/target/iscsi/iscsi_target_erl0.c
309
conn->sess->sess_ops->MaxBurstLength);
drivers/target/iscsi/iscsi_target_erl0.c
34
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl0.c
340
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl0.c
352
if (conn->sess->sess_ops->DataSequenceInOrder)
drivers/target/iscsi/iscsi_target_erl0.c
374
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/iscsi_target_erl0.c
380
if (iscsit_dump_data_payload(conn, payload_length, 1) < 0)
drivers/target/iscsi/iscsi_target_erl0.c
391
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl0.c
404
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target_erl0.c
42
conn->sess->sess_ops->FirstBurstLength);
drivers/target/iscsi/iscsi_target_erl0.c
434
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/iscsi_target_erl0.c
440
if (iscsit_dump_data_payload(conn, payload_length, 1) < 0)
drivers/target/iscsi/iscsi_target_erl0.c
46
if (!conn->sess->sess_ops->DataSequenceInOrder)
drivers/target/iscsi/iscsi_target_erl0.c
472
return iscsit_dump_data_payload(cmd->conn, payload_length, 1);
drivers/target/iscsi/iscsi_target_erl0.c
52
conn->sess->sess_ops->MaxBurstLength) ?
drivers/target/iscsi/iscsi_target_erl0.c
537
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl0.c
54
conn->sess->sess_ops->MaxBurstLength) : cmd->se_cmd.data_length;
drivers/target/iscsi/iscsi_target_erl0.c
544
conn->sess->sess_ops->FirstBurstLength) {
drivers/target/iscsi/iscsi_target_erl0.c
551
if (!conn->sess->sess_ops->DataPDUInOrder) {
drivers/target/iscsi/iscsi_target_erl0.c
561
if (conn->sess->sess_ops->DataSequenceInOrder)
drivers/target/iscsi/iscsi_target_erl0.c
576
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target_erl0.c
578
conn->sess->sess_ops->MaxBurstLength) {
drivers/target/iscsi/iscsi_target_erl0.c
58
conn->sess->sess_ops->MaxBurstLength) >=
drivers/target/iscsi/iscsi_target_erl0.c
586
if (!conn->sess->sess_ops->DataPDUInOrder) {
drivers/target/iscsi/iscsi_target_erl0.c
61
conn->sess->sess_ops->MaxBurstLength);
drivers/target/iscsi/iscsi_target_erl0.c
611
if (!conn->sess->sess_ops->DataPDUInOrder) {
drivers/target/iscsi/iscsi_target_erl0.c
630
if (send_r2t && conn->sess->sess_ops->DataSequenceInOrder)
drivers/target/iscsi/iscsi_target_erl0.c
647
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl0.c
652
if (conn->sess->sess_ops->DataPDUInOrder)
drivers/target/iscsi/iscsi_target_erl0.c
686
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl0.c
69
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl0.c
710
return (conn->sess->sess_ops->DataPDUInOrder) ?
drivers/target/iscsi/iscsi_target_erl0.c
724
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl0.c
731
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/iscsi_target_erl0.c
823
void iscsit_connection_reinstatement_rcfr(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_erl0.c
825
spin_lock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
826
if (atomic_read(&conn->connection_exit)) {
drivers/target/iscsi/iscsi_target_erl0.c
827
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
831
if (atomic_read(&conn->transport_failed)) {
drivers/target/iscsi/iscsi_target_erl0.c
832
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
835
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
837
if (conn->tx_thread && conn->tx_thread_active)
drivers/target/iscsi/iscsi_target_erl0.c
838
send_sig(SIGINT, conn->tx_thread, 1);
drivers/target/iscsi/iscsi_target_erl0.c
839
if (conn->rx_thread && conn->rx_thread_active)
drivers/target/iscsi/iscsi_target_erl0.c
840
send_sig(SIGINT, conn->rx_thread, 1);
drivers/target/iscsi/iscsi_target_erl0.c
843
wait_for_completion(&conn->conn_wait_rcfr_comp);
drivers/target/iscsi/iscsi_target_erl0.c
844
complete(&conn->conn_post_wait_comp);
drivers/target/iscsi/iscsi_target_erl0.c
847
void iscsit_cause_connection_reinstatement(struct iscsit_conn *conn, int sleep)
drivers/target/iscsi/iscsi_target_erl0.c
849
spin_lock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
85
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target_erl0.c
850
if (atomic_read(&conn->connection_exit)) {
drivers/target/iscsi/iscsi_target_erl0.c
851
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
855
if (atomic_read(&conn->transport_failed)) {
drivers/target/iscsi/iscsi_target_erl0.c
856
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
860
if (atomic_read(&conn->connection_reinstatement)) {
drivers/target/iscsi/iscsi_target_erl0.c
861
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
865
if (conn->tx_thread && conn->tx_thread_active)
drivers/target/iscsi/iscsi_target_erl0.c
866
send_sig(SIGINT, conn->tx_thread, 1);
drivers/target/iscsi/iscsi_target_erl0.c
867
if (conn->rx_thread && conn->rx_thread_active)
drivers/target/iscsi/iscsi_target_erl0.c
868
send_sig(SIGINT, conn->rx_thread, 1);
drivers/target/iscsi/iscsi_target_erl0.c
870
atomic_set(&conn->connection_reinstatement, 1);
drivers/target/iscsi/iscsi_target_erl0.c
872
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
876
atomic_set(&conn->sleep_on_conn_wait_comp, 1);
drivers/target/iscsi/iscsi_target_erl0.c
877
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
879
wait_for_completion(&conn->conn_wait_comp);
drivers/target/iscsi/iscsi_target_erl0.c
880
complete(&conn->conn_post_wait_comp);
drivers/target/iscsi/iscsi_target_erl0.c
892
static void iscsit_handle_connection_cleanup(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_erl0.c
894
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_erl0.c
899
iscsit_connection_recovery_transport_reset(conn);
drivers/target/iscsi/iscsi_target_erl0.c
902
" Connection ID: %hu from %s\n", conn->cid,
drivers/target/iscsi/iscsi_target_erl0.c
904
iscsit_close_connection(conn);
drivers/target/iscsi/iscsi_target_erl0.c
908
void iscsit_take_action_for_connection_exit(struct iscsit_conn *conn, bool *conn_freed)
drivers/target/iscsi/iscsi_target_erl0.c
912
spin_lock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
913
if (atomic_read(&conn->connection_exit)) {
drivers/target/iscsi/iscsi_target_erl0.c
914
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
917
atomic_set(&conn->connection_exit, 1);
drivers/target/iscsi/iscsi_target_erl0.c
919
if (conn->conn_state == TARG_CONN_STATE_IN_LOGOUT) {
drivers/target/iscsi/iscsi_target_erl0.c
920
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
921
iscsit_close_connection(conn);
drivers/target/iscsi/iscsi_target_erl0.c
926
if (conn->conn_state == TARG_CONN_STATE_CLEANUP_WAIT) {
drivers/target/iscsi/iscsi_target_erl0.c
927
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
932
conn->conn_state = TARG_CONN_STATE_CLEANUP_WAIT;
drivers/target/iscsi/iscsi_target_erl0.c
933
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target_erl0.c
935
iscsit_handle_connection_cleanup(conn);
drivers/target/iscsi/iscsi_target_erl1.c
1038
ooo_cmdsn->cid = cmd->conn->cid;
drivers/target/iscsi/iscsi_target_erl1.c
1055
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl1.c
106
iscsit_add_cmd_to_immediate_queue(cmd, cmd->conn, ISTATE_SEND_R2T);
drivers/target/iscsi/iscsi_target_erl1.c
1060
*length = (conn->sess->sess_ops->FirstBurstLength >
drivers/target/iscsi/iscsi_target_erl1.c
1063
conn->sess->sess_ops->FirstBurstLength;
drivers/target/iscsi/iscsi_target_erl1.c
1098
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl1.c
1102
iscsit_inc_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_erl1.c
1107
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_erl1.c
1111
sess = conn->sess;
drivers/target/iscsi/iscsi_target_erl1.c
1135
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target_erl1.c
1136
if (conn->sess->sess_ops->DataPDUInOrder) {
drivers/target/iscsi/iscsi_target_erl1.c
1138
if ((pdu_offset + (conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target_erl1.c
1143
pdu_length = (conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target_erl1.c
1168
iscsit_start_dataout_timer(cmd, conn);
drivers/target/iscsi/iscsi_target_erl1.c
1170
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_erl1.c
1177
iscsit_cause_connection_reinstatement(conn, 0);
drivers/target/iscsi/iscsi_target_erl1.c
1178
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_erl1.c
1183
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl1.c
1184
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_erl1.c
1202
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_erl1.c
1204
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_erl1.c
1213
" CID: %hu.\n", cmd->init_task_tag, conn->cid);
drivers/target/iscsi/iscsi_target_erl1.c
176
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl1.c
181
conn->conn_ops->MaxRecvDataSegmentLength) <
drivers/target/iscsi/iscsi_target_erl1.c
182
conn->sess->sess_ops->MaxBurstLength) {
drivers/target/iscsi/iscsi_target_erl1.c
184
conn->conn_ops->MaxRecvDataSegmentLength;
drivers/target/iscsi/iscsi_target_erl1.c
186
conn->conn_ops->MaxRecvDataSegmentLength;
drivers/target/iscsi/iscsi_target_erl1.c
189
(conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target_erl1.c
198
if (!conn->sess->sess_ops->DataPDUInOrder) {
drivers/target/iscsi/iscsi_target_erl1.c
223
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl1.c
299
if (conn->sess->sess_ops->DataPDUInOrder) {
drivers/target/iscsi/iscsi_target_erl1.c
303
conn->conn_ops->MaxRecvDataSegmentLength;
drivers/target/iscsi/iscsi_target_erl1.c
305
conn->conn_ops->MaxRecvDataSegmentLength;
drivers/target/iscsi/iscsi_target_erl1.c
362
(conn->sess->sess_ops->DataPDUInOrder) ? "Yes" : "No");
drivers/target/iscsi/iscsi_target_erl1.c
379
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl1.c
39
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_erl1.c
429
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target_erl1.c
435
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_erl1.c
444
cmd = iscsit_find_cmd_from_itt(conn, init_task_tag);
drivers/target/iscsi/iscsi_target_erl1.c
468
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_erl1.c
479
begrun = conn->exp_statsn;
drivers/target/iscsi/iscsi_target_erl1.c
48
if (conn->sess->sess_ops->RDMAExtensions)
drivers/target/iscsi/iscsi_target_erl1.c
480
} else if (conn->exp_statsn > begrun) {
drivers/target/iscsi/iscsi_target_erl1.c
483
" %hu.\n", begrun, runlength, conn->exp_statsn,
drivers/target/iscsi/iscsi_target_erl1.c
484
conn->cid);
drivers/target/iscsi/iscsi_target_erl1.c
488
last_statsn = (!runlength) ? conn->stat_sn : (begrun + runlength);
drivers/target/iscsi/iscsi_target_erl1.c
493
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl1.c
494
list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) {
drivers/target/iscsi/iscsi_target_erl1.c
500
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl1.c
524
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target_erl1.c
53
if (conn->conn_ops->DataDigest)
drivers/target/iscsi/iscsi_target_erl1.c
532
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_erl1.c
539
cmd = iscsit_find_cmd_from_ttt(conn, targ_xfer_tag);
drivers/target/iscsi/iscsi_target_erl1.c
587
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl1.c
594
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target_erl1.c
664
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl1.c
667
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target_erl1.c
670
if (conn->sess->sess_ops->DataPDUInOrder) {
drivers/target/iscsi/iscsi_target_erl1.c
717
if (conn->sess->sess_ops->DataPDUInOrder)
drivers/target/iscsi/iscsi_target_erl1.c
73
rx_got = rx_data(conn, &iov, 1, size);
drivers/target/iscsi/iscsi_target_erl1.c
827
void iscsit_clear_ooo_cmdsns_for_conn(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_erl1.c
830
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_erl1.c
834
if (ooo_cmdsn->cid != conn->cid)
drivers/target/iscsi/iscsi_target_erl1.c
889
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_erl1.c
906
iscsit_add_cmd_to_response_queue(cmd, cmd->conn,
drivers/target/iscsi/iscsi_target_erl1.c
934
conn->conn_transport->iscsit_get_dataout(conn, cmd, false);
drivers/target/iscsi/iscsi_target_erl1.c
955
iscsit_add_cmd_to_response_queue(cmd, cmd->conn, cmd->i_state);
drivers/target/iscsi/iscsi_target_erl1.c
960
iscsit_add_cmd_to_response_queue(cmd, cmd->conn,
drivers/target/iscsi/iscsi_target_erl1.c
971
lr = iscsit_logout_closesession(cmd, cmd->conn);
drivers/target/iscsi/iscsi_target_erl1.c
974
lr = iscsit_logout_closeconnection(cmd, cmd->conn);
drivers/target/iscsi/iscsi_target_erl1.c
977
lr = iscsit_logout_removeconnforrecovery(cmd, cmd->conn);
drivers/target/iscsi/iscsi_target_erl2.c
109
cmd->conn = NULL;
drivers/target/iscsi/iscsi_target_erl2.c
218
int iscsit_discard_unacknowledged_ooo_cmdsns_for_conn(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_erl2.c
223
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_erl2.c
229
if (ooo_cmdsn->cid != conn->cid)
drivers/target/iscsi/iscsi_target_erl2.c
235
ooo_cmdsn->cmdsn, conn->cid);
drivers/target/iscsi/iscsi_target_erl2.c
240
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl2.c
241
list_for_each_entry_safe(cmd, cmd_tmp, &conn->conn_cmd_list, i_conn_node) {
drivers/target/iscsi/iscsi_target_erl2.c
247
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl2.c
249
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl2.c
251
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl2.c
254
" %hu for ExpCmdSN: 0x%08x.\n", dropped_count, conn->cid,
drivers/target/iscsi/iscsi_target_erl2.c
259
int iscsit_prepare_cmds_for_reallegiance(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_erl2.c
289
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl2.c
290
list_for_each_entry_safe(cmd, cmd_tmp, &conn->conn_cmd_list, i_conn_node) {
drivers/target/iscsi/iscsi_target_erl2.c
297
cmd->init_task_tag, cmd->cmd_sn, conn->cid);
drivers/target/iscsi/iscsi_target_erl2.c
300
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl2.c
302
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl2.c
318
iscsi_sna_gte(cmd->cmd_sn, conn->sess->exp_cmd_sn)) {
drivers/target/iscsi/iscsi_target_erl2.c
320
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl2.c
322
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl2.c
331
conn->cid);
drivers/target/iscsi/iscsi_target_erl2.c
339
cmd->sess = conn->sess;
drivers/target/iscsi/iscsi_target_erl2.c
342
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl2.c
354
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl2.c
356
cmd->conn = NULL;
drivers/target/iscsi/iscsi_target_erl2.c
358
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_erl2.c
362
cr->cid = conn->cid;
drivers/target/iscsi/iscsi_target_erl2.c
364
cr->maxrecvdatasegmentlength = conn->conn_ops->MaxRecvDataSegmentLength;
drivers/target/iscsi/iscsi_target_erl2.c
365
cr->maxxmitdatasegmentlength = conn->conn_ops->MaxXmitDataSegmentLength;
drivers/target/iscsi/iscsi_target_erl2.c
366
cr->sess = conn->sess;
drivers/target/iscsi/iscsi_target_erl2.c
368
iscsit_attach_inactive_connection_recovery_entry(conn->sess, cr);
drivers/target/iscsi/iscsi_target_erl2.c
373
int iscsit_connection_recovery_transport_reset(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_erl2.c
375
atomic_set(&conn->connection_recovery, 1);
drivers/target/iscsi/iscsi_target_erl2.c
377
if (iscsit_close_connection(conn) < 0)
drivers/target/iscsi/iscsi_target_erl2.c
87
cmd->conn = NULL;
drivers/target/iscsi/iscsi_target_login.c
100
INITIATORNAME, conn->param_list);
drivers/target/iscsi/iscsi_target_login.c
1003
struct iscsit_conn *conn;
drivers/target/iscsi/iscsi_target_login.c
1005
conn = kzalloc_obj(struct iscsit_conn);
drivers/target/iscsi/iscsi_target_login.c
1006
if (!conn) {
drivers/target/iscsi/iscsi_target_login.c
1011
conn->conn_state = TARG_CONN_STATE_FREE;
drivers/target/iscsi/iscsi_target_login.c
1013
init_waitqueue_head(&conn->queues_wq);
drivers/target/iscsi/iscsi_target_login.c
1014
INIT_LIST_HEAD(&conn->conn_list);
drivers/target/iscsi/iscsi_target_login.c
1015
INIT_LIST_HEAD(&conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target_login.c
1016
INIT_LIST_HEAD(&conn->immed_queue_list);
drivers/target/iscsi/iscsi_target_login.c
1017
INIT_LIST_HEAD(&conn->response_queue_list);
drivers/target/iscsi/iscsi_target_login.c
1018
init_completion(&conn->conn_post_wait_comp);
drivers/target/iscsi/iscsi_target_login.c
1019
init_completion(&conn->conn_wait_comp);
drivers/target/iscsi/iscsi_target_login.c
102
SESSIONTYPE, conn->param_list);
drivers/target/iscsi/iscsi_target_login.c
1020
init_completion(&conn->conn_wait_rcfr_comp);
drivers/target/iscsi/iscsi_target_login.c
1021
init_completion(&conn->conn_waiting_on_uc_comp);
drivers/target/iscsi/iscsi_target_login.c
1022
init_completion(&conn->conn_logout_comp);
drivers/target/iscsi/iscsi_target_login.c
1023
init_completion(&conn->rx_half_close_comp);
drivers/target/iscsi/iscsi_target_login.c
1024
init_completion(&conn->tx_half_close_comp);
drivers/target/iscsi/iscsi_target_login.c
1025
init_completion(&conn->rx_login_comp);
drivers/target/iscsi/iscsi_target_login.c
1026
spin_lock_init(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_login.c
1027
spin_lock_init(&conn->conn_usage_lock);
drivers/target/iscsi/iscsi_target_login.c
1028
spin_lock_init(&conn->immed_queue_lock);
drivers/target/iscsi/iscsi_target_login.c
1029
spin_lock_init(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_login.c
1030
spin_lock_init(&conn->response_queue_lock);
drivers/target/iscsi/iscsi_target_login.c
1031
spin_lock_init(&conn->state_lock);
drivers/target/iscsi/iscsi_target_login.c
1032
spin_lock_init(&conn->login_worker_lock);
drivers/target/iscsi/iscsi_target_login.c
1033
spin_lock_init(&conn->login_timer_lock);
drivers/target/iscsi/iscsi_target_login.c
1035
timer_setup(&conn->nopin_response_timer,
drivers/target/iscsi/iscsi_target_login.c
1037
timer_setup(&conn->nopin_timer, iscsit_handle_nopin_timeout, 0);
drivers/target/iscsi/iscsi_target_login.c
1038
timer_setup(&conn->login_timer, iscsit_login_timeout, 0);
drivers/target/iscsi/iscsi_target_login.c
104
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_login.c
1040
if (iscsit_conn_set_transport(conn, np->np_transport) < 0)
drivers/target/iscsi/iscsi_target_login.c
1043
conn->conn_ops = kzalloc_obj(struct iscsi_conn_ops);
drivers/target/iscsi/iscsi_target_login.c
1044
if (!conn->conn_ops) {
drivers/target/iscsi/iscsi_target_login.c
1049
if (!zalloc_cpumask_var(&conn->conn_cpumask, GFP_KERNEL)) {
drivers/target/iscsi/iscsi_target_login.c
1054
if (!zalloc_cpumask_var(&conn->allowed_cpumask, GFP_KERNEL)) {
drivers/target/iscsi/iscsi_target_login.c
1059
conn->cmd_cnt = target_alloc_cmd_counter();
drivers/target/iscsi/iscsi_target_login.c
1060
if (!conn->cmd_cnt)
drivers/target/iscsi/iscsi_target_login.c
1063
return conn;
drivers/target/iscsi/iscsi_target_login.c
1066
free_cpumask_var(conn->allowed_cpumask);
drivers/target/iscsi/iscsi_target_login.c
1068
free_cpumask_var(conn->conn_cpumask);
drivers/target/iscsi/iscsi_target_login.c
1070
kfree(conn->conn_ops);
drivers/target/iscsi/iscsi_target_login.c
1072
iscsit_put_transport(conn->conn_transport);
drivers/target/iscsi/iscsi_target_login.c
1074
kfree(conn);
drivers/target/iscsi/iscsi_target_login.c
1078
void iscsit_free_conn(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_login.c
1080
target_free_cmd_counter(conn->cmd_cnt);
drivers/target/iscsi/iscsi_target_login.c
1081
free_cpumask_var(conn->allowed_cpumask);
drivers/target/iscsi/iscsi_target_login.c
1082
free_cpumask_var(conn->conn_cpumask);
drivers/target/iscsi/iscsi_target_login.c
1083
kfree(conn->conn_ops);
drivers/target/iscsi/iscsi_target_login.c
1084
iscsit_put_transport(conn->conn_transport);
drivers/target/iscsi/iscsi_target_login.c
1085
kfree(conn);
drivers/target/iscsi/iscsi_target_login.c
1088
void iscsi_target_login_sess_out(struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_login.c
1095
iscsit_collect_login_stats(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_login.c
1097
if (!zero_tsih || !conn->sess)
drivers/target/iscsi/iscsi_target_login.c
1100
transport_free_session(conn->sess->se_sess);
drivers/target/iscsi/iscsi_target_login.c
1101
ida_free(&sess_ida, conn->sess->session_index);
drivers/target/iscsi/iscsi_target_login.c
1102
kfree(conn->sess->sess_ops);
drivers/target/iscsi/iscsi_target_login.c
1103
kfree(conn->sess);
drivers/target/iscsi/iscsi_target_login.c
1104
conn->sess = NULL;
drivers/target/iscsi/iscsi_target_login.c
1111
if (!zero_tsih && conn->sess) {
drivers/target/iscsi/iscsi_target_login.c
1112
spin_lock_bh(&conn->sess->conn_lock);
drivers/target/iscsi/iscsi_target_login.c
1113
if (conn->sess->session_state == TARG_SESS_STATE_FAILED) {
drivers/target/iscsi/iscsi_target_login.c
1115
&conn->tpg->tpg_se_tpg;
drivers/target/iscsi/iscsi_target_login.c
1117
atomic_set(&conn->sess->session_continuation, 0);
drivers/target/iscsi/iscsi_target_login.c
1118
spin_unlock_bh(&conn->sess->conn_lock);
drivers/target/iscsi/iscsi_target_login.c
1120
iscsit_start_time2retain_handler(conn->sess);
drivers/target/iscsi/iscsi_target_login.c
1123
spin_unlock_bh(&conn->sess->conn_lock);
drivers/target/iscsi/iscsi_target_login.c
1124
iscsit_dec_session_usage_count(conn->sess);
drivers/target/iscsi/iscsi_target_login.c
1127
if (conn->param_list) {
drivers/target/iscsi/iscsi_target_login.c
1128
iscsi_release_param_list(conn->param_list);
drivers/target/iscsi/iscsi_target_login.c
1129
conn->param_list = NULL;
drivers/target/iscsi/iscsi_target_login.c
1131
iscsi_target_nego_release(conn);
drivers/target/iscsi/iscsi_target_login.c
1133
if (conn->sock) {
drivers/target/iscsi/iscsi_target_login.c
1134
sock_release(conn->sock);
drivers/target/iscsi/iscsi_target_login.c
1135
conn->sock = NULL;
drivers/target/iscsi/iscsi_target_login.c
1138
if (conn->conn_transport->iscsit_wait_conn)
drivers/target/iscsi/iscsi_target_login.c
1139
conn->conn_transport->iscsit_wait_conn(conn);
drivers/target/iscsi/iscsi_target_login.c
1141
if (conn->conn_transport->iscsit_free_conn)
drivers/target/iscsi/iscsi_target_login.c
1142
conn->conn_transport->iscsit_free_conn(conn);
drivers/target/iscsi/iscsi_target_login.c
1144
iscsit_free_conn(conn);
drivers/target/iscsi/iscsi_target_login.c
1151
struct iscsit_conn *conn = NULL;
drivers/target/iscsi/iscsi_target_login.c
1174
conn = iscsit_alloc_conn(np);
drivers/target/iscsi/iscsi_target_login.c
1175
if (!conn) {
drivers/target/iscsi/iscsi_target_login.c
1180
rc = np->np_transport->iscsit_accept_np(np, conn);
drivers/target/iscsi/iscsi_target_login.c
1183
iscsit_free_conn(conn);
drivers/target/iscsi/iscsi_target_login.c
1191
iscsit_free_conn(conn);
drivers/target/iscsi/iscsi_target_login.c
1196
iscsit_free_conn(conn);
drivers/target/iscsi/iscsi_target_login.c
1202
login = iscsi_login_init_conn(conn);
drivers/target/iscsi/iscsi_target_login.c
1207
iscsit_start_login_timer(conn, current);
drivers/target/iscsi/iscsi_target_login.c
1210
conn->conn_state = TARG_CONN_STATE_XPT_UP;
drivers/target/iscsi/iscsi_target_login.c
1214
rc = np->np_transport->iscsit_get_login_rx(conn, login);
drivers/target/iscsi/iscsi_target_login.c
1226
conn->login_itt = pdu->itt;
drivers/target/iscsi/iscsi_target_login.c
1233
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_login.c
1239
conn->network_transport = np->np_network_transport;
drivers/target/iscsi/iscsi_target_login.c
124
if (!memcmp(sess_p->isid, conn->sess->isid, 6) &&
drivers/target/iscsi/iscsi_target_login.c
1242
" Portal %pISpc\n", &conn->login_sockaddr, np->np_transport->name,
drivers/target/iscsi/iscsi_target_login.c
1243
&conn->local_sockaddr);
drivers/target/iscsi/iscsi_target_login.c
1246
conn->conn_state = TARG_CONN_STATE_IN_LOGIN;
drivers/target/iscsi/iscsi_target_login.c
1248
if (iscsi_login_check_initiator_version(conn, pdu->max_version,
drivers/target/iscsi/iscsi_target_login.c
1259
if (iscsi_login_zero_tsih_s1(conn, buffer) < 0)
drivers/target/iscsi/iscsi_target_login.c
1269
if (iscsi_login_non_zero_tsih_s1(conn, buffer) < 0)
drivers/target/iscsi/iscsi_target_login.c
1281
rc = iscsi_target_locate_portal(np, conn, login);
drivers/target/iscsi/iscsi_target_login.c
1283
tpg = conn->tpg;
drivers/target/iscsi/iscsi_target_login.c
1288
if (conn->sess)
drivers/target/iscsi/iscsi_target_login.c
1289
conn->sess->se_sess->sup_prot_ops =
drivers/target/iscsi/iscsi_target_login.c
1290
conn->conn_transport->iscsit_get_sup_prot_ops(conn);
drivers/target/iscsi/iscsi_target_login.c
1292
tpg = conn->tpg;
drivers/target/iscsi/iscsi_target_login.c
1299
if (iscsi_login_zero_tsih_s2(conn) < 0)
drivers/target/iscsi/iscsi_target_login.c
1302
if (iscsi_login_non_zero_tsih_s2(conn, buffer) < 0)
drivers/target/iscsi/iscsi_target_login.c
1306
if (conn->conn_transport->iscsit_validate_params) {
drivers/target/iscsi/iscsi_target_login.c
1307
ret = conn->conn_transport->iscsit_validate_params(conn);
drivers/target/iscsi/iscsi_target_login.c
1316
ret = iscsi_target_start_negotiation(login, conn);
drivers/target/iscsi/iscsi_target_login.c
1321
tpg_np = conn->tpg_np;
drivers/target/iscsi/iscsi_target_login.c
1323
iscsi_post_login_handler(np, conn, zero_tsih);
drivers/target/iscsi/iscsi_target_login.c
1335
iscsit_stop_login_timer(conn);
drivers/target/iscsi/iscsi_target_login.c
1336
tpg_np = conn->tpg_np;
drivers/target/iscsi/iscsi_target_login.c
1337
iscsi_target_login_sess_out(conn, zero_tsih, new_sess);
drivers/target/iscsi/iscsi_target_login.c
167
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_login.c
171
conn->sess = sess;
drivers/target/iscsi/iscsi_target_login.c
172
conn->cid = be16_to_cpu(cid);
drivers/target/iscsi/iscsi_target_login.c
177
ret = get_random_bytes_wait(&conn->stat_sn, sizeof(u32));
drivers/target/iscsi/iscsi_target_login.c
182
conn->auth_id = iscsit_global->auth_id++;
drivers/target/iscsi/iscsi_target_login.c
188
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_login.c
200
if (iscsi_change_param_value(buf, conn->param_list, 0) < 0) {
drivers/target/iscsi/iscsi_target_login.c
201
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_login.c
215
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_login.c
224
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_login.c
230
if (iscsi_login_set_conn_values(sess, conn, pdu->cid))
drivers/target/iscsi/iscsi_target_login.c
257
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_login.c
272
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_login.c
281
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_login.c
294
conn->sess = NULL;
drivers/target/iscsi/iscsi_target_login.c
299
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_login.c
302
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_login.c
306
sess->tpg = conn->tpg;
drivers/target/iscsi/iscsi_target_login.c
319
if (iscsi_copy_param_list(&conn->param_list,
drivers/target/iscsi/iscsi_target_login.c
320
conn->tpg->param_list, 1) < 0) {
drivers/target/iscsi/iscsi_target_login.c
321
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_login.c
326
if (conn->conn_transport->transport_type == ISCSI_INFINIBAND)
drivers/target/iscsi/iscsi_target_login.c
329
iscsi_set_keys_to_negotiate(conn->param_list, iser);
drivers/target/iscsi/iscsi_target_login.c
333
conn->param_list);
drivers/target/iscsi/iscsi_target_login.c
341
param = iscsi_find_param_from_key(AUTHMETHOD, conn->param_list);
drivers/target/iscsi/iscsi_target_login.c
343
if (!iscsi_conn_auth_required(conn))
drivers/target/iscsi/iscsi_target_login.c
344
if (iscsi_change_param_sprintf(conn, "AuthMethod=%s",
drivers/target/iscsi/iscsi_target_login.c
356
if (iscsi_change_param_sprintf(conn, "TargetPortalGroupTag=%hu", sess->tpg->tpgt))
drivers/target/iscsi/iscsi_target_login.c
364
if (iscsi_change_param_sprintf(conn, "ErrorRecoveryLevel=%d", na->default_erl))
drivers/target/iscsi/iscsi_target_login.c
37
static struct iscsi_login *iscsi_login_init_conn(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_login.c
375
if (iscsi_change_param_sprintf(conn, "RDMAExtensions=Yes"))
drivers/target/iscsi/iscsi_target_login.c
383
conn->param_list);
drivers/target/iscsi/iscsi_target_login.c
385
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_login.c
391
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_login.c
407
if (iscsi_change_param_sprintf(conn, "MaxRecvDataSegmentLength=%lu\n", mrdsl))
drivers/target/iscsi/iscsi_target_login.c
418
if (iscsi_change_param_sprintf(conn, "ImmediateData=No"))
drivers/target/iscsi/iscsi_target_login.c
421
if (iscsi_change_param_sprintf(conn, "InitialR2T=Yes"))
drivers/target/iscsi/iscsi_target_login.c
433
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_login.c
438
return iscsi_login_set_conn_values(NULL, conn, pdu->cid);
drivers/target/iscsi/iscsi_target_login.c
445
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_login.c
448
struct iscsi_portal_group *tpg = conn->tpg;
drivers/target/iscsi/iscsi_target_login.c
46
conn->login = login;
drivers/target/iscsi/iscsi_target_login.c
47
login->conn = conn;
drivers/target/iscsi/iscsi_target_login.c
481
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_login.c
495
if (iscsi_login_set_conn_values(sess, conn, pdu->cid) < 0 ||
drivers/target/iscsi/iscsi_target_login.c
496
iscsi_copy_param_list(&conn->param_list,
drivers/target/iscsi/iscsi_target_login.c
497
conn->tpg->param_list, 0) < 0) {
drivers/target/iscsi/iscsi_target_login.c
498
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_login.c
503
if (conn->conn_transport->transport_type == ISCSI_INFINIBAND)
drivers/target/iscsi/iscsi_target_login.c
506
iscsi_set_keys_to_negotiate(conn->param_list, iser);
drivers/target/iscsi/iscsi_target_login.c
514
if (iscsi_change_param_sprintf(conn, "TargetPortalGroupTag=%hu", sess->tpg->tpgt))
drivers/target/iscsi/iscsi_target_login.c
521
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_login.c
527
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_login.c
561
conn->cid);
drivers/target/iscsi/iscsi_target_login.c
579
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_login.c
587
static void iscsi_post_login_start_timers(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_login.c
589
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_login.c
593
if (conn->conn_transport->transport_type == ISCSI_INFINIBAND)
drivers/target/iscsi/iscsi_target_login.c
597
iscsit_start_nopin_timer(conn);
drivers/target/iscsi/iscsi_target_login.c
600
int iscsit_start_kthreads(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_login.c
605
conn->bitmap_id = bitmap_find_free_region(iscsit_global->ts_bitmap,
drivers/target/iscsi/iscsi_target_login.c
609
if (conn->bitmap_id < 0) {
drivers/target/iscsi/iscsi_target_login.c
615
conn->tx_thread = kthread_run(iscsi_target_tx_thread, conn,
drivers/target/iscsi/iscsi_target_login.c
617
if (IS_ERR(conn->tx_thread)) {
drivers/target/iscsi/iscsi_target_login.c
619
ret = PTR_ERR(conn->tx_thread);
drivers/target/iscsi/iscsi_target_login.c
62
conn->conn_login = login;
drivers/target/iscsi/iscsi_target_login.c
622
conn->tx_thread_active = true;
drivers/target/iscsi/iscsi_target_login.c
624
conn->rx_thread = kthread_run(iscsi_target_rx_thread, conn,
drivers/target/iscsi/iscsi_target_login.c
626
if (IS_ERR(conn->rx_thread)) {
drivers/target/iscsi/iscsi_target_login.c
628
ret = PTR_ERR(conn->rx_thread);
drivers/target/iscsi/iscsi_target_login.c
631
conn->rx_thread_active = true;
drivers/target/iscsi/iscsi_target_login.c
635
send_sig(SIGINT, conn->tx_thread, 1);
drivers/target/iscsi/iscsi_target_login.c
636
kthread_stop(conn->tx_thread);
drivers/target/iscsi/iscsi_target_login.c
637
conn->tx_thread_active = false;
drivers/target/iscsi/iscsi_target_login.c
640
bitmap_release_region(iscsit_global->ts_bitmap, conn->bitmap_id,
drivers/target/iscsi/iscsi_target_login.c
648
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_login.c
652
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_login.c
657
iscsit_inc_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_login.c
659
iscsit_collect_login_stats(conn, ISCSI_STATUS_CLS_SUCCESS,
drivers/target/iscsi/iscsi_target_login.c
663
conn->conn_state = TARG_CONN_STATE_LOGGED_IN;
drivers/target/iscsi/iscsi_target_login.c
665
iscsi_set_connection_parameters(conn->conn_ops, conn->param_list);
drivers/target/iscsi/iscsi_target_login.c
671
conn->param_list, 0);
drivers/target/iscsi/iscsi_target_login.c
672
iscsi_release_param_list(conn->param_list);
drivers/target/iscsi/iscsi_target_login.c
673
conn->param_list = NULL;
drivers/target/iscsi/iscsi_target_login.c
685
" %pISpc,%hu\n", conn->cid, &conn->login_sockaddr,
drivers/target/iscsi/iscsi_target_login.c
686
&conn->local_sockaddr, tpg->tpgt);
drivers/target/iscsi/iscsi_target_login.c
688
list_add_tail(&conn->conn_list, &sess->sess_conn_list);
drivers/target/iscsi/iscsi_target_login.c
695
iscsi_post_login_start_timers(conn);
drivers/target/iscsi/iscsi_target_login.c
700
iscsit_thread_get_cpumask(conn);
drivers/target/iscsi/iscsi_target_login.c
701
conn->conn_rx_reset_cpumask = 1;
drivers/target/iscsi/iscsi_target_login.c
702
conn->conn_tx_reset_cpumask = 1;
drivers/target/iscsi/iscsi_target_login.c
707
complete(&conn->rx_login_comp);
drivers/target/iscsi/iscsi_target_login.c
708
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_login.c
719
iscsi_set_session_parameters(sess->sess_ops, conn->param_list, 1);
drivers/target/iscsi/iscsi_target_login.c
720
iscsi_release_param_list(conn->param_list);
drivers/target/iscsi/iscsi_target_login.c
721
conn->param_list = NULL;
drivers/target/iscsi/iscsi_target_login.c
732
conn->cid, &conn->login_sockaddr, &conn->local_sockaddr,
drivers/target/iscsi/iscsi_target_login.c
736
list_add_tail(&conn->conn_list, &sess->sess_conn_list);
drivers/target/iscsi/iscsi_target_login.c
74
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_login.c
757
iscsi_post_login_start_timers(conn);
drivers/target/iscsi/iscsi_target_login.c
762
iscsit_thread_get_cpumask(conn);
drivers/target/iscsi/iscsi_target_login.c
763
conn->conn_rx_reset_cpumask = 1;
drivers/target/iscsi/iscsi_target_login.c
764
conn->conn_tx_reset_cpumask = 1;
drivers/target/iscsi/iscsi_target_login.c
769
complete(&conn->rx_login_comp);
drivers/target/iscsi/iscsi_target_login.c
770
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_login.c
82
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_login.c
866
int iscsit_accept_np(struct iscsi_np *np, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_login.c
877
conn->sock = new_sock;
drivers/target/iscsi/iscsi_target_login.c
878
conn->login_family = np->np_sockaddr.ss_family;
drivers/target/iscsi/iscsi_target_login.c
883
rc = conn->sock->ops->getname(conn->sock,
drivers/target/iscsi/iscsi_target_login.c
887
memcpy(&conn->login_sockaddr, &sock_in6, sizeof(sock_in6));
drivers/target/iscsi/iscsi_target_login.c
893
memcpy(&conn->login_sockaddr, &sock_in, sizeof(sock_in));
drivers/target/iscsi/iscsi_target_login.c
897
rc = conn->sock->ops->getname(conn->sock,
drivers/target/iscsi/iscsi_target_login.c
90
int iscsi_check_for_session_reinstatement(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_login.c
901
memcpy(&conn->local_sockaddr, &sock_in6, sizeof(sock_in6));
drivers/target/iscsi/iscsi_target_login.c
907
memcpy(&conn->local_sockaddr, &sock_in, sizeof(sock_in));
drivers/target/iscsi/iscsi_target_login.c
913
rc = conn->sock->ops->getname(conn->sock,
drivers/target/iscsi/iscsi_target_login.c
916
memcpy(&conn->login_sockaddr, &sock_in, sizeof(sock_in));
drivers/target/iscsi/iscsi_target_login.c
918
rc = conn->sock->ops->getname(conn->sock,
drivers/target/iscsi/iscsi_target_login.c
921
memcpy(&conn->local_sockaddr, &sock_in, sizeof(sock_in));
drivers/target/iscsi/iscsi_target_login.c
927
int iscsit_get_login_rx(struct iscsit_conn *conn, struct iscsi_login *login)
drivers/target/iscsi/iscsi_target_login.c
932
if (iscsi_login_rx_data(conn, login->req, ISCSI_HDR_LEN) < 0)
drivers/target/iscsi/iscsi_target_login.c
94
struct iscsi_portal_group *tpg = conn->tpg;
drivers/target/iscsi/iscsi_target_login.c
961
if (iscsi_target_check_login_request(conn, login) < 0)
drivers/target/iscsi/iscsi_target_login.c
965
if (iscsi_login_rx_data(conn, login->req_buf,
drivers/target/iscsi/iscsi_target_login.c
972
int iscsit_put_login_tx(struct iscsit_conn *conn, struct iscsi_login *login,
drivers/target/iscsi/iscsi_target_login.c
975
if (iscsi_login_tx_data(conn, login->rsp, login->rsp_buf, length) < 0)
drivers/target/iscsi/iscsi_target_login.c
982
iscsit_conn_set_transport(struct iscsit_conn *conn, struct iscsit_transport *t)
drivers/target/iscsi/iscsi_target_login.c
987
conn->conn_transport = t;
drivers/target/iscsi/iscsi_target_login.c
997
conn->conn_transport = t;
drivers/target/iscsi/iscsi_target_nego.c
1002
if (!iscsi_conn_authenticated(conn, login)) {
drivers/target/iscsi/iscsi_target_nego.c
1006
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
101
static struct iscsi_node_auth *iscsi_get_node_auth(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_nego.c
1011
if (!iscsi_check_negotiated_keys(conn->param_list))
drivers/target/iscsi/iscsi_target_nego.c
1027
static int iscsi_target_do_login(struct iscsit_conn *conn, struct iscsi_login *login)
drivers/target/iscsi/iscsi_target_nego.c
1039
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1047
if (iscsi_target_handle_csg_zero(conn, login) < 0)
drivers/target/iscsi/iscsi_target_nego.c
1052
if (iscsi_target_handle_csg_one(conn, login) < 0)
drivers/target/iscsi/iscsi_target_nego.c
1061
if (iscsi_target_sk_check_close(conn))
drivers/target/iscsi/iscsi_target_nego.c
1064
login->tsih = conn->sess->tsih;
drivers/target/iscsi/iscsi_target_nego.c
1066
iscsi_target_restore_sock_callbacks(conn);
drivers/target/iscsi/iscsi_target_nego.c
1067
if (iscsi_target_do_tx_login_io(conn,
drivers/target/iscsi/iscsi_target_nego.c
107
if (conn->sess->sess_ops->SessionType)
drivers/target/iscsi/iscsi_target_nego.c
1080
if (iscsi_target_do_tx_login_io(conn, login) < 0)
drivers/target/iscsi/iscsi_target_nego.c
110
se_nacl = conn->sess->se_sess->se_node_acl;
drivers/target/iscsi/iscsi_target_nego.c
1113
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_nego.c
1118
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_nego.c
1126
INIT_DELAYED_WORK(&conn->login_work, iscsi_target_do_login_rx);
drivers/target/iscsi/iscsi_target_nego.c
1127
iscsi_target_set_sock_callbacks(conn);
drivers/target/iscsi/iscsi_target_nego.c
1130
conn->tpg = NULL;
drivers/target/iscsi/iscsi_target_nego.c
1169
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1187
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1207
conn->tpg = iscsit_global->discovery_tpg;
drivers/target/iscsi/iscsi_target_nego.c
1208
if (iscsit_access_np(np, conn->tpg) < 0) {
drivers/target/iscsi/iscsi_target_nego.c
1209
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1211
conn->tpg = NULL;
drivers/target/iscsi/iscsi_target_nego.c
1224
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1237
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1247
conn->tpg = iscsit_get_tpg_from_np(tiqn, np, &tpg_np);
drivers/target/iscsi/iscsi_target_nego.c
1248
if (!conn->tpg) {
drivers/target/iscsi/iscsi_target_nego.c
1252
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1257
conn->tpg_np = tpg_np;
drivers/target/iscsi/iscsi_target_nego.c
1258
pr_debug("Located Portal Group Object: %hu\n", conn->tpg->tpgt);
drivers/target/iscsi/iscsi_target_nego.c
1264
if (iscsit_access_np(np, conn->tpg) < 0) {
drivers/target/iscsi/iscsi_target_nego.c
1267
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1269
conn->tpg = NULL;
drivers/target/iscsi/iscsi_target_nego.c
127
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_nego.c
1293
&conn->tpg->tpg_se_tpg, i_buf);
drivers/target/iscsi/iscsi_target_nego.c
1297
i_buf, conn->tpg->tpgt);
drivers/target/iscsi/iscsi_target_nego.c
1298
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1316
tag_size = sizeof(struct iscsit_cmd) + conn->conn_transport->priv_size;
drivers/target/iscsi/iscsi_target_nego.c
1320
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1331
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_nego.c
1335
if (conn->sock) {
drivers/target/iscsi/iscsi_target_nego.c
1336
struct sock *sk = conn->sock->sk;
drivers/target/iscsi/iscsi_target_nego.c
1339
set_bit(LOGIN_FLAGS_READY, &conn->login_flags);
drivers/target/iscsi/iscsi_target_nego.c
1340
set_bit(LOGIN_FLAGS_INITIAL_PDU, &conn->login_flags);
drivers/target/iscsi/iscsi_target_nego.c
1352
ret = iscsi_target_do_login(conn, login);
drivers/target/iscsi/iscsi_target_nego.c
1354
spin_lock(&conn->login_worker_lock);
drivers/target/iscsi/iscsi_target_nego.c
1356
if (iscsi_target_sk_check_and_clear(conn, LOGIN_FLAGS_INITIAL_PDU))
drivers/target/iscsi/iscsi_target_nego.c
1358
else if (!test_bit(LOGIN_FLAGS_WORKER_RUNNING, &conn->login_flags)) {
drivers/target/iscsi/iscsi_target_nego.c
1359
if (iscsit_set_login_timer_kworker(conn, NULL) < 0) {
drivers/target/iscsi/iscsi_target_nego.c
136
auth = iscsi_get_node_auth(conn);
drivers/target/iscsi/iscsi_target_nego.c
1364
schedule_delayed_work(&conn->login_work, 0);
drivers/target/iscsi/iscsi_target_nego.c
1368
spin_unlock(&conn->login_worker_lock);
drivers/target/iscsi/iscsi_target_nego.c
1372
iscsi_target_restore_sock_callbacks(conn);
drivers/target/iscsi/iscsi_target_nego.c
1373
iscsi_remove_failed_auth_entry(conn);
drivers/target/iscsi/iscsi_target_nego.c
1376
iscsit_stop_login_timer(conn);
drivers/target/iscsi/iscsi_target_nego.c
1377
cancel_delayed_work_sync(&conn->login_work);
drivers/target/iscsi/iscsi_target_nego.c
1378
iscsi_target_nego_release(conn);
drivers/target/iscsi/iscsi_target_nego.c
1384
void iscsi_target_nego_release(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_nego.c
1386
struct iscsi_login *login = conn->conn_login;
drivers/target/iscsi/iscsi_target_nego.c
1395
conn->conn_login = NULL;
drivers/target/iscsi/iscsi_target_nego.c
141
strcpy(conn->sess->auth_type, "CHAP");
drivers/target/iscsi/iscsi_target_nego.c
143
strcpy(conn->sess->auth_type, NONE);
drivers/target/iscsi/iscsi_target_nego.c
148
return chap_main_loop(conn, auth, in_buf, out_buf,
drivers/target/iscsi/iscsi_target_nego.c
154
static void iscsi_remove_failed_auth_entry(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_nego.c
156
kfree(conn->auth_protocol);
drivers/target/iscsi/iscsi_target_nego.c
160
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_nego.c
176
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
185
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
197
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
208
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
218
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
226
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
234
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
251
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_nego.c
259
list_for_each_entry(param, &conn->param_list->param_list, p_list) {
drivers/target/iscsi/iscsi_target_nego.c
264
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
279
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
290
se_nacl = conn->sess->se_sess->se_node_acl;
drivers/target/iscsi/iscsi_target_nego.c
294
iscsit_tx_login_rsp(conn,
drivers/target/iscsi/iscsi_target_nego.c
306
iscsit_tx_login_rsp(conn,
drivers/target/iscsi/iscsi_target_nego.c
318
static int iscsi_target_do_tx_login_io(struct iscsit_conn *conn, struct iscsi_login *login)
drivers/target/iscsi/iscsi_target_nego.c
330
login_rsp->statsn = cpu_to_be32(conn->stat_sn++);
drivers/target/iscsi/iscsi_target_nego.c
331
login_rsp->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target_nego.c
332
login_rsp->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target_nego.c
348
int rc = iscsit_start_kthreads(conn);
drivers/target/iscsi/iscsi_target_nego.c
350
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
356
if (conn->conn_transport->iscsit_put_login_tx(conn, login,
drivers/target/iscsi/iscsi_target_nego.c
366
if (conn->rx_thread && conn->rx_thread_active) {
drivers/target/iscsi/iscsi_target_nego.c
367
send_sig(SIGINT, conn->rx_thread, 1);
drivers/target/iscsi/iscsi_target_nego.c
368
complete(&conn->rx_login_comp);
drivers/target/iscsi/iscsi_target_nego.c
369
kthread_stop(conn->rx_thread);
drivers/target/iscsi/iscsi_target_nego.c
371
if (conn->tx_thread && conn->tx_thread_active) {
drivers/target/iscsi/iscsi_target_nego.c
372
send_sig(SIGINT, conn->tx_thread, 1);
drivers/target/iscsi/iscsi_target_nego.c
373
kthread_stop(conn->tx_thread);
drivers/target/iscsi/iscsi_target_nego.c
376
bitmap_release_region(iscsit_global->ts_bitmap, conn->bitmap_id,
drivers/target/iscsi/iscsi_target_nego.c
385
struct iscsit_conn *conn = sk->sk_user_data;
drivers/target/iscsi/iscsi_target_nego.c
389
pr_debug("Entering iscsi_target_sk_data_ready: conn: %p\n", conn);
drivers/target/iscsi/iscsi_target_nego.c
396
if (!test_bit(LOGIN_FLAGS_READY, &conn->login_flags)) {
drivers/target/iscsi/iscsi_target_nego.c
398
pr_debug("Got LOGIN_FLAGS_READY=0, conn: %p >>>>\n", conn);
drivers/target/iscsi/iscsi_target_nego.c
401
if (test_bit(LOGIN_FLAGS_CLOSED, &conn->login_flags)) {
drivers/target/iscsi/iscsi_target_nego.c
403
pr_debug("Got LOGIN_FLAGS_CLOSED=1, conn: %p >>>>\n", conn);
drivers/target/iscsi/iscsi_target_nego.c
406
if (test_and_set_bit(LOGIN_FLAGS_READ_ACTIVE, &conn->login_flags)) {
drivers/target/iscsi/iscsi_target_nego.c
408
pr_debug("Got LOGIN_FLAGS_READ_ACTIVE=1, conn: %p >>>>\n", conn);
drivers/target/iscsi/iscsi_target_nego.c
409
if (iscsi_target_sk_data_ready == conn->orig_data_ready)
drivers/target/iscsi/iscsi_target_nego.c
411
conn->orig_data_ready(sk);
drivers/target/iscsi/iscsi_target_nego.c
415
rc = schedule_delayed_work(&conn->login_work, 0);
drivers/target/iscsi/iscsi_target_nego.c
425
static void iscsi_target_set_sock_callbacks(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_nego.c
429
if (!conn->sock)
drivers/target/iscsi/iscsi_target_nego.c
432
sk = conn->sock->sk;
drivers/target/iscsi/iscsi_target_nego.c
433
pr_debug("Entering iscsi_target_set_sock_callbacks: conn: %p\n", conn);
drivers/target/iscsi/iscsi_target_nego.c
436
sk->sk_user_data = conn;
drivers/target/iscsi/iscsi_target_nego.c
437
conn->orig_data_ready = sk->sk_data_ready;
drivers/target/iscsi/iscsi_target_nego.c
438
conn->orig_state_change = sk->sk_state_change;
drivers/target/iscsi/iscsi_target_nego.c
447
static void iscsi_target_restore_sock_callbacks(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_nego.c
451
if (!conn->sock)
drivers/target/iscsi/iscsi_target_nego.c
454
sk = conn->sock->sk;
drivers/target/iscsi/iscsi_target_nego.c
455
pr_debug("Entering iscsi_target_restore_sock_callbacks: conn: %p\n", conn);
drivers/target/iscsi/iscsi_target_nego.c
463
sk->sk_data_ready = conn->orig_data_ready;
drivers/target/iscsi/iscsi_target_nego.c
464
sk->sk_state_change = conn->orig_state_change;
drivers/target/iscsi/iscsi_target_nego.c
483
static bool iscsi_target_sk_check_close(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_nego.c
487
if (conn->sock) {
drivers/target/iscsi/iscsi_target_nego.c
488
struct sock *sk = conn->sock->sk;
drivers/target/iscsi/iscsi_target_nego.c
492
test_bit(LOGIN_FLAGS_CLOSED, &conn->login_flags));
drivers/target/iscsi/iscsi_target_nego.c
498
static bool iscsi_target_sk_check_flag(struct iscsit_conn *conn, unsigned int flag)
drivers/target/iscsi/iscsi_target_nego.c
502
if (conn->sock) {
drivers/target/iscsi/iscsi_target_nego.c
503
struct sock *sk = conn->sock->sk;
drivers/target/iscsi/iscsi_target_nego.c
506
state = test_bit(flag, &conn->login_flags);
drivers/target/iscsi/iscsi_target_nego.c
512
static bool iscsi_target_sk_check_and_clear(struct iscsit_conn *conn, unsigned int flag)
drivers/target/iscsi/iscsi_target_nego.c
516
if (conn->sock) {
drivers/target/iscsi/iscsi_target_nego.c
517
struct sock *sk = conn->sock->sk;
drivers/target/iscsi/iscsi_target_nego.c
521
test_bit(LOGIN_FLAGS_CLOSED, &conn->login_flags));
drivers/target/iscsi/iscsi_target_nego.c
523
clear_bit(flag, &conn->login_flags);
drivers/target/iscsi/iscsi_target_nego.c
529
static void iscsi_target_login_drop(struct iscsit_conn *conn, struct iscsi_login *login)
drivers/target/iscsi/iscsi_target_nego.c
533
iscsi_remove_failed_auth_entry(conn);
drivers/target/iscsi/iscsi_target_nego.c
534
iscsi_target_nego_release(conn);
drivers/target/iscsi/iscsi_target_nego.c
535
iscsi_target_login_sess_out(conn, zero_tsih, true);
drivers/target/iscsi/iscsi_target_nego.c
540
struct iscsit_conn *conn = container_of(work,
drivers/target/iscsi/iscsi_target_nego.c
542
struct iscsi_login *login = conn->login;
drivers/target/iscsi/iscsi_target_nego.c
544
struct iscsi_portal_group *tpg = conn->tpg;
drivers/target/iscsi/iscsi_target_nego.c
545
struct iscsi_tpg_np *tpg_np = conn->tpg_np;
drivers/target/iscsi/iscsi_target_nego.c
550
conn, current->comm, current->pid);
drivers/target/iscsi/iscsi_target_nego.c
552
spin_lock(&conn->login_worker_lock);
drivers/target/iscsi/iscsi_target_nego.c
553
set_bit(LOGIN_FLAGS_WORKER_RUNNING, &conn->login_flags);
drivers/target/iscsi/iscsi_target_nego.c
554
spin_unlock(&conn->login_worker_lock);
drivers/target/iscsi/iscsi_target_nego.c
565
if (iscsi_target_sk_check_flag(conn, LOGIN_FLAGS_INITIAL_PDU)) {
drivers/target/iscsi/iscsi_target_nego.c
566
schedule_delayed_work(&conn->login_work, msecs_to_jiffies(10));
drivers/target/iscsi/iscsi_target_nego.c
579
if (iscsi_target_sk_check_close(conn)) {
drivers/target/iscsi/iscsi_target_nego.c
585
rc = iscsit_set_login_timer_kworker(conn, current);
drivers/target/iscsi/iscsi_target_nego.c
592
rc = conn->conn_transport->iscsit_get_login_rx(conn, login);
drivers/target/iscsi/iscsi_target_nego.c
599
conn, current->comm, current->pid);
drivers/target/iscsi/iscsi_target_nego.c
612
if (conn->sock) {
drivers/target/iscsi/iscsi_target_nego.c
613
struct sock *sk = conn->sock->sk;
drivers/target/iscsi/iscsi_target_nego.c
616
if (!test_bit(LOGIN_FLAGS_INITIAL_PDU, &conn->login_flags)) {
drivers/target/iscsi/iscsi_target_nego.c
617
clear_bit(LOGIN_FLAGS_READ_ACTIVE, &conn->login_flags);
drivers/target/iscsi/iscsi_target_nego.c
618
set_bit(LOGIN_FLAGS_WRITE_ACTIVE, &conn->login_flags);
drivers/target/iscsi/iscsi_target_nego.c
623
rc = iscsi_target_do_login(conn, login);
drivers/target/iscsi/iscsi_target_nego.c
627
if (iscsi_target_sk_check_and_clear(conn,
drivers/target/iscsi/iscsi_target_nego.c
636
rc = iscsit_set_login_timer_kworker(conn, NULL);
drivers/target/iscsi/iscsi_target_nego.c
640
iscsit_stop_login_timer(conn);
drivers/target/iscsi/iscsi_target_nego.c
641
cancel_delayed_work(&conn->login_work);
drivers/target/iscsi/iscsi_target_nego.c
642
iscsi_target_nego_release(conn);
drivers/target/iscsi/iscsi_target_nego.c
643
iscsi_post_login_handler(np, conn, zero_tsih);
drivers/target/iscsi/iscsi_target_nego.c
649
iscsi_target_restore_sock_callbacks(conn);
drivers/target/iscsi/iscsi_target_nego.c
650
iscsit_stop_login_timer(conn);
drivers/target/iscsi/iscsi_target_nego.c
651
cancel_delayed_work(&conn->login_work);
drivers/target/iscsi/iscsi_target_nego.c
652
iscsi_target_login_drop(conn, login);
drivers/target/iscsi/iscsi_target_nego.c
658
struct iscsit_conn *conn;
drivers/target/iscsi/iscsi_target_nego.c
665
conn = sk->sk_user_data;
drivers/target/iscsi/iscsi_target_nego.c
666
if (!conn) {
drivers/target/iscsi/iscsi_target_nego.c
670
orig_state_change = conn->orig_state_change;
drivers/target/iscsi/iscsi_target_nego.c
672
if (!test_bit(LOGIN_FLAGS_READY, &conn->login_flags)) {
drivers/target/iscsi/iscsi_target_nego.c
674
conn);
drivers/target/iscsi/iscsi_target_nego.c
682
if (test_bit(LOGIN_FLAGS_READ_ACTIVE, &conn->login_flags) ||
drivers/target/iscsi/iscsi_target_nego.c
683
test_bit(LOGIN_FLAGS_WRITE_ACTIVE, &conn->login_flags)) {
drivers/target/iscsi/iscsi_target_nego.c
685
" sk_state_change conn: %p\n", conn);
drivers/target/iscsi/iscsi_target_nego.c
687
set_bit(LOGIN_FLAGS_CLOSED, &conn->login_flags);
drivers/target/iscsi/iscsi_target_nego.c
692
if (test_bit(LOGIN_FLAGS_CLOSED, &conn->login_flags)) {
drivers/target/iscsi/iscsi_target_nego.c
694
conn);
drivers/target/iscsi/iscsi_target_nego.c
716
set_bit(LOGIN_FLAGS_CLOSED, &conn->login_flags);
drivers/target/iscsi/iscsi_target_nego.c
717
state = test_bit(LOGIN_FLAGS_INITIAL_PDU, &conn->login_flags);
drivers/target/iscsi/iscsi_target_nego.c
723
schedule_delayed_work(&conn->login_work, 0);
drivers/target/iscsi/iscsi_target_nego.c
737
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_nego.c
746
return iscsi_check_for_session_reinstatement(conn);
drivers/target/iscsi/iscsi_target_nego.c
748
return iscsi_login_post_auth_non_zero_tsih(conn, login->cid,
drivers/target/iscsi/iscsi_target_nego.c
753
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_nego.c
766
param = iscsi_find_param_from_key(AUTHMETHOD, conn->param_list);
drivers/target/iscsi/iscsi_target_nego.c
771
conn,
drivers/target/iscsi/iscsi_target_nego.c
793
conn, login);
drivers/target/iscsi/iscsi_target_nego.c
797
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
803
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
811
bool iscsi_conn_auth_required(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_nego.c
816
if (conn->sess->sess_ops->SessionType) {
drivers/target/iscsi/iscsi_target_nego.c
820
return conn->tpg->tpg_attrib.authentication;
drivers/target/iscsi/iscsi_target_nego.c
825
se_nacl = conn->sess->se_sess->se_node_acl;
drivers/target/iscsi/iscsi_target_nego.c
834
return conn->tpg->tpg_attrib.authentication;
drivers/target/iscsi/iscsi_target_nego.c
842
return conn->tpg->tpg_attrib.authentication;
drivers/target/iscsi/iscsi_target_nego.c
848
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_nego.c
861
param = iscsi_find_param_from_key(AUTHMETHOD, conn->param_list);
drivers/target/iscsi/iscsi_target_nego.c
870
conn);
drivers/target/iscsi/iscsi_target_nego.c
879
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
888
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
894
if (iscsi_target_check_first_request(conn, login) < 0)
drivers/target/iscsi/iscsi_target_nego.c
903
conn->param_list,
drivers/target/iscsi/iscsi_target_nego.c
904
conn->tpg->tpg_attrib.login_keys_workaround);
drivers/target/iscsi/iscsi_target_nego.c
906
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
911
if (!iscsi_check_negotiated_keys(conn->param_list)) {
drivers/target/iscsi/iscsi_target_nego.c
912
bool auth_required = iscsi_conn_auth_required(conn);
drivers/target/iscsi/iscsi_target_nego.c
919
iscsit_tx_login_rsp(conn,
drivers/target/iscsi/iscsi_target_nego.c
943
return iscsi_target_do_authentication(conn, login);
drivers/target/iscsi/iscsi_target_nego.c
946
static bool iscsi_conn_authenticated(struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_nego.c
949
if (!iscsi_conn_auth_required(conn))
drivers/target/iscsi/iscsi_target_nego.c
958
static int iscsi_target_handle_csg_one(struct iscsit_conn *conn, struct iscsi_login *login)
drivers/target/iscsi/iscsi_target_nego.c
974
conn);
drivers/target/iscsi/iscsi_target_nego.c
976
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
982
if (iscsi_target_check_first_request(conn, login) < 0)
drivers/target/iscsi/iscsi_target_nego.c
985
if (iscsi_target_check_for_existing_instances(conn, login) < 0)
drivers/target/iscsi/iscsi_target_nego.c
994
conn->param_list,
drivers/target/iscsi/iscsi_target_nego.c
995
conn->tpg->tpg_attrib.login_keys_workaround);
drivers/target/iscsi/iscsi_target_nego.c
997
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.h
23
extern bool iscsi_conn_auth_required(struct iscsit_conn *conn);
drivers/target/iscsi/iscsi_target_nodeattrib.c
101
struct iscsit_conn *conn;
drivers/target/iscsi/iscsi_target_nodeattrib.c
132
list_for_each_entry(conn, &sess->sess_conn_list,
drivers/target/iscsi/iscsi_target_nodeattrib.c
134
if (conn->conn_state !=
drivers/target/iscsi/iscsi_target_nodeattrib.c
138
spin_lock(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_nodeattrib.c
139
__iscsit_start_nopin_timer(conn);
drivers/target/iscsi/iscsi_target_nodeattrib.c
140
spin_unlock(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_parameters.c
1001
conn->param_list);
drivers/target/iscsi/iscsi_target_parameters.c
1309
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_parameters.c
1311
struct iscsi_param_list *param_list = conn->param_list;
drivers/target/iscsi/iscsi_target_parameters.c
1359
if (iscsi_check_acceptor_state(param, value, conn) < 0)
drivers/target/iscsi/iscsi_target_parameters.c
18
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_parameters.c
29
rx_got = rx_data(conn, &iov, 1, length);
drivers/target/iscsi/iscsi_target_parameters.c
40
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_parameters.c
60
tx_sent = tx_data(conn, &iov[0], iov_cnt, length);
drivers/target/iscsi/iscsi_target_parameters.c
910
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_parameters.c
994
conn->conn_ops->MaxRecvDataSegmentLength = tmp;
drivers/target/iscsi/iscsi_target_parameters.c
997
conn->conn_ops->MaxRecvDataSegmentLength);
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
211
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
214
mdsl = cmd->conn->conn_ops->MaxXmitDataSegmentLength;
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
216
mdsl = cmd->conn->conn_ops->MaxRecvDataSegmentLength;
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
225
conn->sess->sess_ops->FirstBurstLength);
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
247
>= conn->sess->sess_ops->FirstBurstLength) {
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
249
(conn->sess->sess_ops->FirstBurstLength -
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
251
offset += (conn->sess->sess_ops->FirstBurstLength -
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
267
conn->sess->sess_ops->MaxBurstLength) {
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
268
offset += (conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
292
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
297
mdsl = cmd->conn->conn_ops->MaxXmitDataSegmentLength;
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
299
mdsl = cmd->conn->conn_ops->MaxRecvDataSegmentLength;
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
301
datapduinorder = conn->sess->sess_ops->DataPDUInOrder;
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
302
datasequenceinorder = conn->sess->sess_ops->DataSequenceInOrder;
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
311
conn->sess->sess_ops->FirstBurstLength);
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
365
conn->sess->sess_ops->FirstBurstLength) {
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
369
(conn->sess->sess_ops->FirstBurstLength -
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
376
(conn->sess->sess_ops->FirstBurstLength -
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
380
(conn->sess->sess_ops->FirstBurstLength -
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
382
offset += (conn->sess->sess_ops->FirstBurstLength -
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
414
conn->sess->sess_ops->MaxBurstLength) {
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
418
(conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
425
(conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
428
offset += (conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
492
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
496
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
537
if (!conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
547
if (!conn->sess->sess_ops->DataPDUInOrder) {
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
590
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_seq_pdu_list.c
598
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target_tmr.c
110
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_tmr.c
120
hdr->itt, hdr->rtt, hdr->exp_datasn, conn->cid);
drivers/target/iscsi/iscsi_target_tmr.c
122
if (conn->sess->sess_ops->ErrorRecoveryLevel != 2) {
drivers/target/iscsi/iscsi_target_tmr.c
128
ret = iscsit_find_cmd_for_recovery(conn->sess, &ref_cmd, &cr, hdr->rtt);
drivers/target/iscsi/iscsi_target_tmr.c
143
conn->conn_ops->MaxRecvDataSegmentLength) {
drivers/target/iscsi/iscsi_target_tmr.c
150
conn->conn_ops->MaxXmitDataSegmentLength) {
drivers/target/iscsi/iscsi_target_tmr.c
197
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_tmr.c
216
iscsit_task_reassign_remove_cmd(cmd, cr, conn->sess);
drivers/target/iscsi/iscsi_target_tmr.c
218
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_tmr.c
219
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target_tmr.c
220
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_tmr.c
223
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target_tmr.c
233
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_tmr.c
262
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target_tmr.c
275
if ((conn->sess->sess_ops->FirstBurstLength - offset) >=
drivers/target/iscsi/iscsi_target_tmr.c
280
length = (conn->sess->sess_ops->FirstBurstLength - offset);
drivers/target/iscsi/iscsi_target_tmr.c
296
return conn->conn_transport->iscsit_get_dataout(conn, cmd, true);
drivers/target/iscsi/iscsi_target_tmr.c
303
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_tmr.c
348
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target_tmr.c
35
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_tmr.c
356
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_tmr.c
359
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target_tmr.c
365
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_tmr.c
384
iscsit_task_reassign_remove_cmd(cmd, cr, conn->sess);
drivers/target/iscsi/iscsi_target_tmr.c
386
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_tmr.c
387
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target_tmr.c
388
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_tmr.c
392
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target_tmr.c
40
ref_cmd = iscsit_find_cmd_from_itt(conn, hdr->rtt);
drivers/target/iscsi/iscsi_target_tmr.c
414
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_tmr.c
425
cmd->conn = conn;
drivers/target/iscsi/iscsi_target_tmr.c
429
ret = iscsit_task_reassign_complete_nop_out(tmr_req, conn);
drivers/target/iscsi/iscsi_target_tmr.c
43
" %hu.\n", hdr->rtt, conn->cid);
drivers/target/iscsi/iscsi_target_tmr.c
432
ret = iscsit_task_reassign_complete_scsi_cmnd(tmr_req, conn);
drivers/target/iscsi/iscsi_target_tmr.c
44
return (iscsi_sna_gte(be32_to_cpu(hdr->refcmdsn), conn->sess->exp_cmd_sn) &&
drivers/target/iscsi/iscsi_target_tmr.c
445
cmd->init_task_tag, conn->cid);
drivers/target/iscsi/iscsi_target_tmr.c
45
iscsi_sna_lte(be32_to_cpu(hdr->refcmdsn), (u32) atomic_read(&conn->sess->max_cmd_sn))) ?
drivers/target/iscsi/iscsi_target_tmr.c
455
int iscsit_tmr_post_handler(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_tmr.c
462
return iscsit_task_reassign_complete(tmr_req, conn);
drivers/target/iscsi/iscsi_target_tmr.c
473
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_tmr.c
480
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_tmr.c
486
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target_tmr.c
493
if (conn->sess->sess_ops->DataPDUInOrder) {
drivers/target/iscsi/iscsi_target_tmr.c
531
if (conn->sess->sess_ops->DataPDUInOrder)
drivers/target/iscsi/iscsi_target_tmr.c
548
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_tmr.c
560
iscsit_task_reassign_prepare_unsolicited_dataout(cmd, conn);
drivers/target/iscsi/iscsi_target_tmr.c
636
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target_tmr.c
642
if (conn->sess->sess_ops->DataPDUInOrder) {
drivers/target/iscsi/iscsi_target_tmr.c
66
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_tmr.c
688
if (conn->sess->sess_ops->DataPDUInOrder)
drivers/target/iscsi/iscsi_target_tmr.c
70
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_tmr.c
762
if (conn->sess->sess_ops->DataSequenceInOrder)
drivers/target/iscsi/iscsi_target_tmr.c
781
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_tmr.c
818
return iscsit_task_reassign_prepare_read(tmr_req, conn);
drivers/target/iscsi/iscsi_target_tmr.c
835
return iscsit_task_reassign_prepare_write(tmr_req, conn);
drivers/target/iscsi/iscsi_target_tmr.c
86
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_tmr.c
90
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_util.c
1001
spin_lock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
1002
conn->nopin_timer_flags &= ~ISCSI_TF_RUNNING;
drivers/target/iscsi/iscsi_target_util.c
1003
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
1008
struct iscsit_conn *conn = timer_container_of(conn, t, login_timer);
drivers/target/iscsi/iscsi_target_util.c
1009
struct iscsi_login *login = conn->login;
drivers/target/iscsi/iscsi_target_util.c
1013
spin_lock_bh(&conn->login_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
1016
if (conn->login_kworker) {
drivers/target/iscsi/iscsi_target_util.c
1018
conn->login_kworker->comm, conn->login_kworker->pid);
drivers/target/iscsi/iscsi_target_util.c
1019
send_sig(SIGINT, conn->login_kworker, 1);
drivers/target/iscsi/iscsi_target_util.c
1021
schedule_delayed_work(&conn->login_work, 0);
drivers/target/iscsi/iscsi_target_util.c
1023
spin_unlock_bh(&conn->login_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
1026
void iscsit_start_login_timer(struct iscsit_conn *conn, struct task_struct *kthr)
drivers/target/iscsi/iscsi_target_util.c
1030
conn->login_kworker = kthr;
drivers/target/iscsi/iscsi_target_util.c
1031
mod_timer(&conn->login_timer, jiffies + TA_LOGIN_TIMEOUT * HZ);
drivers/target/iscsi/iscsi_target_util.c
1034
int iscsit_set_login_timer_kworker(struct iscsit_conn *conn, struct task_struct *kthr)
drivers/target/iscsi/iscsi_target_util.c
1036
struct iscsi_login *login = conn->login;
drivers/target/iscsi/iscsi_target_util.c
1039
spin_lock_bh(&conn->login_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
1044
conn->login_kworker = kthr;
drivers/target/iscsi/iscsi_target_util.c
1046
spin_unlock_bh(&conn->login_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
1051
void iscsit_stop_login_timer(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
1054
timer_delete_sync(&conn->login_timer);
drivers/target/iscsi/iscsi_target_util.c
1059
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_util.c
1077
tx_sent = tx_data(conn, &iov[0], iov_count, tx_size);
drivers/target/iscsi/iscsi_target_util.c
1092
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
1104
if (conn->conn_ops->HeaderDigest)
drivers/target/iscsi/iscsi_target_util.c
1110
tx_sent = tx_data(conn, &iov, 1, tx_hdr_size);
drivers/target/iscsi/iscsi_target_util.c
1124
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target_util.c
1143
tx_sent = conn->sock->ops->sendmsg(conn->sock, &msghdr,
drivers/target/iscsi/iscsi_target_util.c
1164
tx_sent = tx_data(conn, iov_p, 1, cmd->padding);
drivers/target/iscsi/iscsi_target_util.c
1175
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target_util.c
1178
tx_sent = tx_data(conn, iov_d, 1, ISCSI_CRC_LEN);
drivers/target/iscsi/iscsi_target_util.c
1199
int iscsit_tx_login_rsp(struct iscsit_conn *conn, u8 status_class, u8 status_detail)
drivers/target/iscsi/iscsi_target_util.c
1202
struct iscsi_login *login = conn->conn_login;
drivers/target/iscsi/iscsi_target_util.c
1205
iscsit_collect_login_stats(conn, status_class, status_detail);
drivers/target/iscsi/iscsi_target_util.c
1213
hdr->itt = conn->login_itt;
drivers/target/iscsi/iscsi_target_util.c
1215
return conn->conn_transport->iscsit_put_login_tx(conn, login, 0);
drivers/target/iscsi/iscsi_target_util.c
1219
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_util.c
1227
if (!conn || !conn->sock || !conn->conn_ops)
drivers/target/iscsi/iscsi_target_util.c
1234
rx_loop = sock_recvmsg(conn->sock, &msg, MSG_WAITALL);
drivers/target/iscsi/iscsi_target_util.c
1249
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_util.c
1257
if (!conn || !conn->sock || !conn->conn_ops)
drivers/target/iscsi/iscsi_target_util.c
1270
int tx_loop = sock_sendmsg(conn->sock, &msg);
drivers/target/iscsi/iscsi_target_util.c
1285
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_util.c
1293
tiqn = iscsit_snmp_get_tiqn(conn);
drivers/target/iscsi/iscsi_target_util.c
1324
if (conn->param_list)
drivers/target/iscsi/iscsi_target_util.c
1326
conn->param_list);
drivers/target/iscsi/iscsi_target_util.c
1331
ls->last_intr_fail_ip_family = conn->login_family;
drivers/target/iscsi/iscsi_target_util.c
1333
ls->last_intr_fail_sockaddr = conn->login_sockaddr;
drivers/target/iscsi/iscsi_target_util.c
1340
struct iscsi_tiqn *iscsit_snmp_get_tiqn(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
1344
if (!conn)
drivers/target/iscsi/iscsi_target_util.c
1347
tpg = conn->tpg;
drivers/target/iscsi/iscsi_target_util.c
155
struct iscsit_cmd *iscsit_allocate_cmd(struct iscsit_conn *conn, int state)
drivers/target/iscsi/iscsi_target_util.c
158
struct se_session *se_sess = conn->sess->se_sess;
drivers/target/iscsi/iscsi_target_util.c
167
size = sizeof(struct iscsit_cmd) + conn->conn_transport->priv_size;
drivers/target/iscsi/iscsi_target_util.c
173
cmd->conn = conn;
drivers/target/iscsi/iscsi_target_util.c
285
int iscsit_sequence_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target_util.c
292
mutex_lock(&conn->sess->cmdsn_mutex);
drivers/target/iscsi/iscsi_target_util.c
294
cmdsn_ret = iscsit_check_received_cmdsn(conn->sess, be32_to_cpu(cmdsn));
drivers/target/iscsi/iscsi_target_util.c
298
if ((ret >= 0) && !list_empty(&conn->sess->sess_ooo_cmdsn_list))
drivers/target/iscsi/iscsi_target_util.c
299
iscsit_execute_ooo_cmdsns(conn->sess);
drivers/target/iscsi/iscsi_target_util.c
306
ret = iscsit_handle_ooo_cmdsn(conn->sess, cmd, be32_to_cpu(cmdsn));
drivers/target/iscsi/iscsi_target_util.c
318
iscsit_add_cmd_to_immediate_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target_util.c
327
mutex_unlock(&conn->sess->cmdsn_mutex);
drivers/target/iscsi/iscsi_target_util.c
337
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_util.c
342
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_util.c
343
list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) {
drivers/target/iscsi/iscsi_target_util.c
345
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_util.c
349
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_util.c
352
init_task_tag, conn->cid);
drivers/target/iscsi/iscsi_target_util.c
358
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_util.c
364
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_util.c
365
list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) {
drivers/target/iscsi/iscsi_target_util.c
369
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_util.c
373
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_util.c
376
" dumping payload\n", init_task_tag, conn->cid);
drivers/target/iscsi/iscsi_target_util.c
378
iscsit_dump_data_payload(conn, length, 1);
drivers/target/iscsi/iscsi_target_util.c
385
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_util.c
390
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_util.c
391
list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) {
drivers/target/iscsi/iscsi_target_util.c
393
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_util.c
397
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_util.c
400
targ_xfer_tag, conn->cid);
drivers/target/iscsi/iscsi_target_util.c
458
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_util.c
473
spin_lock_bh(&conn->immed_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
474
list_add_tail(&qr->qr_list, &conn->immed_queue_list);
drivers/target/iscsi/iscsi_target_util.c
476
atomic_set(&conn->check_immediate_queue, 1);
drivers/target/iscsi/iscsi_target_util.c
477
spin_unlock_bh(&conn->immed_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
479
wake_up(&conn->queues_wq);
drivers/target/iscsi/iscsi_target_util.c
483
struct iscsi_queue_req *iscsit_get_cmd_from_immediate_queue(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
487
spin_lock_bh(&conn->immed_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
488
if (list_empty(&conn->immed_queue_list)) {
drivers/target/iscsi/iscsi_target_util.c
489
spin_unlock_bh(&conn->immed_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
492
qr = list_first_entry(&conn->immed_queue_list,
drivers/target/iscsi/iscsi_target_util.c
498
spin_unlock_bh(&conn->immed_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
505
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
509
spin_lock_bh(&conn->immed_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
511
spin_unlock_bh(&conn->immed_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
515
list_for_each_entry_safe(qr, qr_tmp, &conn->immed_queue_list, qr_list) {
drivers/target/iscsi/iscsi_target_util.c
523
spin_unlock_bh(&conn->immed_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
534
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_util.c
549
spin_lock_bh(&conn->response_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
550
list_add_tail(&qr->qr_list, &conn->response_queue_list);
drivers/target/iscsi/iscsi_target_util.c
552
spin_unlock_bh(&conn->response_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
554
wake_up(&conn->queues_wq);
drivers/target/iscsi/iscsi_target_util.c
558
struct iscsi_queue_req *iscsit_get_cmd_from_response_queue(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
562
spin_lock_bh(&conn->response_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
563
if (list_empty(&conn->response_queue_list)) {
drivers/target/iscsi/iscsi_target_util.c
564
spin_unlock_bh(&conn->response_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
568
qr = list_first_entry(&conn->response_queue_list,
drivers/target/iscsi/iscsi_target_util.c
574
spin_unlock_bh(&conn->response_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
581
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
585
spin_lock_bh(&conn->response_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
587
spin_unlock_bh(&conn->response_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
591
list_for_each_entry_safe(qr, qr_tmp, &conn->response_queue_list,
drivers/target/iscsi/iscsi_target_util.c
600
spin_unlock_bh(&conn->response_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
609
bool iscsit_conn_all_queues_empty(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
61
iscsit_add_cmd_to_immediate_queue(cmd, cmd->conn, ISTATE_SEND_R2T);
drivers/target/iscsi/iscsi_target_util.c
613
spin_lock_bh(&conn->immed_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
614
empty = list_empty(&conn->immed_queue_list);
drivers/target/iscsi/iscsi_target_util.c
615
spin_unlock_bh(&conn->immed_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
620
spin_lock_bh(&conn->response_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
621
empty = list_empty(&conn->response_queue_list);
drivers/target/iscsi/iscsi_target_util.c
622
spin_unlock_bh(&conn->response_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
627
void iscsit_free_queue_reqs_for_conn(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
631
spin_lock_bh(&conn->immed_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
632
list_for_each_entry_safe(qr, qr_tmp, &conn->immed_queue_list, qr_list) {
drivers/target/iscsi/iscsi_target_util.c
639
spin_unlock_bh(&conn->immed_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
641
spin_lock_bh(&conn->response_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
642
list_for_each_entry_safe(qr, qr_tmp, &conn->response_queue_list,
drivers/target/iscsi/iscsi_target_util.c
650
spin_unlock_bh(&conn->response_queue_lock);
drivers/target/iscsi/iscsi_target_util.c
660
if (cmd->conn)
drivers/target/iscsi/iscsi_target_util.c
661
sess = cmd->conn->sess;
drivers/target/iscsi/iscsi_target_util.c
681
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target_util.c
692
if (conn && check_queues) {
drivers/target/iscsi/iscsi_target_util.c
693
iscsit_remove_cmd_from_immediate_queue(cmd, conn);
drivers/target/iscsi/iscsi_target_util.c
694
iscsit_remove_cmd_from_response_queue(cmd, conn);
drivers/target/iscsi/iscsi_target_util.c
697
if (conn && conn->conn_transport->iscsit_unmap_cmd)
drivers/target/iscsi/iscsi_target_util.c
698
conn->conn_transport->iscsit_unmap_cmd(conn, cmd);
drivers/target/iscsi/iscsi_target_util.c
762
struct iscsit_conn *conn;
drivers/target/iscsi/iscsi_target_util.c
765
list_for_each_entry(conn, &sess->sess_conn_list, conn_list) {
drivers/target/iscsi/iscsi_target_util.c
766
if ((conn->cid == cid) &&
drivers/target/iscsi/iscsi_target_util.c
767
(conn->conn_state == TARG_CONN_STATE_LOGGED_IN)) {
drivers/target/iscsi/iscsi_target_util.c
768
iscsit_inc_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_util.c
770
return conn;
drivers/target/iscsi/iscsi_target_util.c
780
struct iscsit_conn *conn;
drivers/target/iscsi/iscsi_target_util.c
783
list_for_each_entry(conn, &sess->sess_conn_list, conn_list) {
drivers/target/iscsi/iscsi_target_util.c
784
if (conn->cid == cid) {
drivers/target/iscsi/iscsi_target_util.c
785
iscsit_inc_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_util.c
786
spin_lock(&conn->state_lock);
drivers/target/iscsi/iscsi_target_util.c
787
atomic_set(&conn->connection_wait_rcfr, 1);
drivers/target/iscsi/iscsi_target_util.c
788
spin_unlock(&conn->state_lock);
drivers/target/iscsi/iscsi_target_util.c
790
return conn;
drivers/target/iscsi/iscsi_target_util.c
798
void iscsit_check_conn_usage_count(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
800
spin_lock_bh(&conn->conn_usage_lock);
drivers/target/iscsi/iscsi_target_util.c
801
if (conn->conn_usage_count != 0) {
drivers/target/iscsi/iscsi_target_util.c
802
conn->conn_waiting_on_uc = 1;
drivers/target/iscsi/iscsi_target_util.c
803
spin_unlock_bh(&conn->conn_usage_lock);
drivers/target/iscsi/iscsi_target_util.c
805
wait_for_completion(&conn->conn_waiting_on_uc_comp);
drivers/target/iscsi/iscsi_target_util.c
808
spin_unlock_bh(&conn->conn_usage_lock);
drivers/target/iscsi/iscsi_target_util.c
811
void iscsit_dec_conn_usage_count(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
813
spin_lock_bh(&conn->conn_usage_lock);
drivers/target/iscsi/iscsi_target_util.c
814
conn->conn_usage_count--;
drivers/target/iscsi/iscsi_target_util.c
816
if (!conn->conn_usage_count && conn->conn_waiting_on_uc) {
drivers/target/iscsi/iscsi_target_util.c
817
spin_unlock_bh(&conn->conn_usage_lock);
drivers/target/iscsi/iscsi_target_util.c
818
complete(&conn->conn_waiting_on_uc_comp);
drivers/target/iscsi/iscsi_target_util.c
822
spin_unlock_bh(&conn->conn_usage_lock);
drivers/target/iscsi/iscsi_target_util.c
825
void iscsit_inc_conn_usage_count(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
827
spin_lock_bh(&conn->conn_usage_lock);
drivers/target/iscsi/iscsi_target_util.c
828
conn->conn_usage_count++;
drivers/target/iscsi/iscsi_target_util.c
829
spin_unlock_bh(&conn->conn_usage_lock);
drivers/target/iscsi/iscsi_target_util.c
832
static int iscsit_add_nopin(struct iscsit_conn *conn, int want_response)
drivers/target/iscsi/iscsi_target_util.c
837
cmd = iscsit_allocate_cmd(conn, TASK_RUNNING);
drivers/target/iscsi/iscsi_target_util.c
846
session_get_next_ttt(conn->sess) : 0xFFFFFFFF;
drivers/target/iscsi/iscsi_target_util.c
847
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_util.c
848
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target_util.c
849
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target_util.c
852
iscsit_start_nopin_response_timer(conn);
drivers/target/iscsi/iscsi_target_util.c
853
iscsit_add_cmd_to_immediate_queue(cmd, conn, state);
drivers/target/iscsi/iscsi_target_util.c
860
struct iscsit_conn *conn = timer_container_of(conn, t,
drivers/target/iscsi/iscsi_target_util.c
862
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_util.c
864
iscsit_inc_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_util.c
866
spin_lock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
867
if (conn->nopin_response_timer_flags & ISCSI_TF_STOP) {
drivers/target/iscsi/iscsi_target_util.c
868
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
869
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_util.c
875
conn->cid, sess->sess_ops->InitiatorName, sess->isid,
drivers/target/iscsi/iscsi_target_util.c
877
conn->nopin_response_timer_flags &= ~ISCSI_TF_RUNNING;
drivers/target/iscsi/iscsi_target_util.c
878
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
881
iscsit_cause_connection_reinstatement(conn, 0);
drivers/target/iscsi/iscsi_target_util.c
882
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_util.c
885
void iscsit_mod_nopin_response_timer(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
887
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_util.c
890
spin_lock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
891
if (!(conn->nopin_response_timer_flags & ISCSI_TF_RUNNING)) {
drivers/target/iscsi/iscsi_target_util.c
892
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
896
mod_timer(&conn->nopin_response_timer,
drivers/target/iscsi/iscsi_target_util.c
898
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
901
void iscsit_start_nopin_response_timer(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
903
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_util.c
906
spin_lock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
907
if (conn->nopin_response_timer_flags & ISCSI_TF_RUNNING) {
drivers/target/iscsi/iscsi_target_util.c
908
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
912
conn->nopin_response_timer_flags &= ~ISCSI_TF_STOP;
drivers/target/iscsi/iscsi_target_util.c
913
conn->nopin_response_timer_flags |= ISCSI_TF_RUNNING;
drivers/target/iscsi/iscsi_target_util.c
914
mod_timer(&conn->nopin_response_timer,
drivers/target/iscsi/iscsi_target_util.c
918
" seconds\n", conn->cid, na->nopin_response_timeout);
drivers/target/iscsi/iscsi_target_util.c
919
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
922
void iscsit_stop_nopin_response_timer(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
924
spin_lock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
925
if (!(conn->nopin_response_timer_flags & ISCSI_TF_RUNNING)) {
drivers/target/iscsi/iscsi_target_util.c
926
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
929
conn->nopin_response_timer_flags |= ISCSI_TF_STOP;
drivers/target/iscsi/iscsi_target_util.c
930
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
932
timer_delete_sync(&conn->nopin_response_timer);
drivers/target/iscsi/iscsi_target_util.c
934
spin_lock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
935
conn->nopin_response_timer_flags &= ~ISCSI_TF_RUNNING;
drivers/target/iscsi/iscsi_target_util.c
936
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
941
struct iscsit_conn *conn = timer_container_of(conn, t, nopin_timer);
drivers/target/iscsi/iscsi_target_util.c
943
iscsit_inc_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_util.c
945
spin_lock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
946
if (conn->nopin_timer_flags & ISCSI_TF_STOP) {
drivers/target/iscsi/iscsi_target_util.c
947
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
948
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_util.c
951
conn->nopin_timer_flags &= ~ISCSI_TF_RUNNING;
drivers/target/iscsi/iscsi_target_util.c
952
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
954
iscsit_add_nopin(conn, 1);
drivers/target/iscsi/iscsi_target_util.c
955
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target_util.c
958
void __iscsit_start_nopin_timer(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
960
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_util.c
963
lockdep_assert_held(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
971
if (conn->nopin_timer_flags & ISCSI_TF_RUNNING)
drivers/target/iscsi/iscsi_target_util.c
974
conn->nopin_timer_flags &= ~ISCSI_TF_STOP;
drivers/target/iscsi/iscsi_target_util.c
975
conn->nopin_timer_flags |= ISCSI_TF_RUNNING;
drivers/target/iscsi/iscsi_target_util.c
976
mod_timer(&conn->nopin_timer, jiffies + na->nopin_timeout * HZ);
drivers/target/iscsi/iscsi_target_util.c
979
" interval\n", conn->cid, na->nopin_timeout);
drivers/target/iscsi/iscsi_target_util.c
982
void iscsit_start_nopin_timer(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
984
spin_lock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
985
__iscsit_start_nopin_timer(conn);
drivers/target/iscsi/iscsi_target_util.c
986
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
989
void iscsit_stop_nopin_timer(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_util.c
991
spin_lock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
992
if (!(conn->nopin_timer_flags & ISCSI_TF_RUNNING)) {
drivers/target/iscsi/iscsi_target_util.c
993
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
996
conn->nopin_timer_flags |= ISCSI_TF_STOP;
drivers/target/iscsi/iscsi_target_util.c
997
spin_unlock_bh(&conn->nopin_timer_lock);
drivers/target/iscsi/iscsi_target_util.c
999
timer_delete_sync(&conn->nopin_timer);
drivers/target/iscsi/iscsi_target_util.h
24
extern int iscsit_sequence_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/tty/serial/pmac_zilog.c
1349
const char *conn;
drivers/tty/serial/pmac_zilog.c
1373
conn = of_get_property(np, "AAPL,connector", &len);
drivers/tty/serial/pmac_zilog.c
1374
if (conn && (strcmp(conn, "infrared") == 0))
drivers/usb/gadget/udc/lpc32xx_udc.c
1106
static void uda_power_event(struct lpc32xx_udc *udc, u32 conn)
drivers/usb/gadget/udc/lpc32xx_udc.c
1110
udc->board->conn_chgb(conn);
drivers/usb/gadget/udc/lpc32xx_udc.c
1114
static void uda_resm_susp_event(struct lpc32xx_udc *udc, u32 conn)
drivers/usb/gadget/udc/lpc32xx_udc.c
1118
udc->board->susp_chgb(conn);
drivers/usb/gadget/udc/lpc32xx_udc.c
1120
if (conn)
drivers/usb/gadget/udc/lpc32xx_udc.c
2956
static void lpc32xx_usbd_conn_chg(int conn)
drivers/usb/misc/usb3503.c
113
int rst, bypass, conn;
drivers/usb/misc/usb3503.c
117
conn = 1;
drivers/usb/misc/usb3503.c
122
conn = 0;
drivers/usb/misc/usb3503.c
128
conn = 0;
drivers/usb/misc/usb3503.c
137
if (!conn && hub->connect)
drivers/usb/misc/usb3503.c
146
if (conn) {
drivers/usb/typec/rt1719.c
153
static enum typec_pwr_opmode rt1719_get_pwr_opmode(u32 conn, u16 stat)
drivers/usb/typec/rt1719.c
160
if (conn & RT1719_ATTACH_SNK) {
drivers/usb/typec/rt1719.c
161
if (conn & RT1719_POLARITY_MASK)
drivers/usb/typec/rt1719.c
172
} else if (conn & RT1719_ATTACH_DBG) {
drivers/usb/typec/rt1719.c
184
static enum typec_data_role rt1719_get_data_role(u32 conn)
drivers/usb/typec/rt1719.c
186
if (conn & RT1719_DATAROLE_MASK)
drivers/video/fbdev/aty/radeon_i2c.c
141
int radeon_probe_i2c_connector(struct radeonfb_info *rinfo, int conn,
drivers/video/fbdev/aty/radeon_i2c.c
146
edid = fb_ddc_read(&rinfo->i2c[conn-1].adapter);
drivers/video/fbdev/aty/radeon_i2c.c
151
pr_debug("radeonfb: I2C (port %d) ... not found\n", conn);
drivers/video/fbdev/aty/radeon_i2c.c
158
pr_debug("radeonfb: I2C (port %d) ... found LVDS panel\n", conn);
drivers/video/fbdev/aty/radeon_i2c.c
161
pr_debug("radeonfb: I2C (port %d) ... found TMDS panel\n", conn);
drivers/video/fbdev/aty/radeon_i2c.c
165
pr_debug("radeonfb: I2C (port %d) ... found CRT display\n", conn);
drivers/video/fbdev/aty/radeon_monitor.c
257
int offset, chips, connectors, tmp, i, conn, type;
drivers/video/fbdev/aty/radeon_monitor.c
283
for (conn = 0; ; conn++) {
drivers/video/fbdev/aty/radeon_monitor.c
290
conn, type, __conn_type_table[type], tmp);
drivers/video/fbdev/aty/radeonfb.h
483
extern int radeon_probe_i2c_connector(struct radeonfb_info *rinfo, int conn, u8 **out_edid);
drivers/video/fbdev/i810/i810-i2c.c
155
int i810_probe_i2c_connector(struct fb_info *info, u8 **out_edid, int conn)
drivers/video/fbdev/i810/i810-i2c.c
160
DPRINTK("i810-i2c: Probe DDC%i Bus\n", conn+1);
drivers/video/fbdev/i810/i810-i2c.c
161
if (conn < par->ddc_num) {
drivers/video/fbdev/i810/i810-i2c.c
162
edid = fb_ddc_read(&par->chan[conn].adapter);
drivers/video/fbdev/i810/i810_main.h
40
int conn);
drivers/video/fbdev/i810/i810_main.h
45
int conn)
drivers/video/fbdev/matrox/matroxfb_base.c
1038
u_int32_t conn = 0;
drivers/video/fbdev/matrox/matroxfb_base.c
1043
conn |= 1 << i;
drivers/video/fbdev/matrox/matroxfb_base.c
1046
if (put_user(conn, (u_int32_t __user *)arg))
drivers/video/fbdev/matrox/matroxfb_base.c
1052
u_int32_t conn = 0;
drivers/video/fbdev/matrox/matroxfb_base.c
1060
conn |= 1 << i;
drivers/video/fbdev/matrox/matroxfb_base.c
1066
if (conn & MATROXFB_OUTPUT_CONN_DFP)
drivers/video/fbdev/matrox/matroxfb_base.c
1067
conn &= ~MATROXFB_OUTPUT_CONN_SECONDARY;
drivers/video/fbdev/matrox/matroxfb_base.c
1068
if (conn & MATROXFB_OUTPUT_CONN_SECONDARY)
drivers/video/fbdev/matrox/matroxfb_base.c
1069
conn &= ~MATROXFB_OUTPUT_CONN_DFP;
drivers/video/fbdev/matrox/matroxfb_base.c
1071
if (put_user(conn, (u_int32_t __user *)arg))
drivers/video/fbdev/matrox/matroxfb_base.c
1077
u_int32_t conn = 0;
drivers/video/fbdev/matrox/matroxfb_base.c
1082
conn |= 1 << i;
drivers/video/fbdev/matrox/matroxfb_base.c
1085
if (put_user(conn, (u_int32_t __user *)arg))
drivers/video/fbdev/matrox/matroxfb_crtc2.c
510
u_int32_t conn = 0;
drivers/video/fbdev/matrox/matroxfb_crtc2.c
515
conn |= 1 << out;
drivers/video/fbdev/matrox/matroxfb_crtc2.c
518
if (put_user(conn, (u_int32_t __user *)arg))
drivers/video/fbdev/nvidia/nv_i2c.c
152
int nvidia_probe_i2c_connector(struct fb_info *info, int conn, u8 **out_edid)
drivers/video/fbdev/nvidia/nv_i2c.c
157
if (par->chan[conn - 1].par)
drivers/video/fbdev/nvidia/nv_i2c.c
158
edid = fb_ddc_read(&par->chan[conn - 1].adapter);
drivers/video/fbdev/nvidia/nv_i2c.c
160
if (!edid && conn == 1) {
drivers/video/fbdev/nvidia/nv_of.c
28
int nvidia_probe_of_connector(struct fb_info *info, int conn, u8 **out_edid)
drivers/video/fbdev/nvidia/nv_of.c
50
if ((pname[len-1] == 'A' && conn == 1) ||
drivers/video/fbdev/nvidia/nv_of.c
51
(pname[len-1] == 'B' && conn == 2)) {
drivers/video/fbdev/nvidia/nv_of.c
74
printk(KERN_DEBUG "nvidiafb: Found OF EDID for head %d\n", conn);
drivers/video/fbdev/nvidia/nv_proto.h
38
int nvidia_probe_i2c_connector(struct fb_info *info, int conn,
drivers/video/fbdev/nvidia/nv_proto.h
46
int nvidia_probe_of_connector(struct fb_info *info, int conn,
drivers/video/fbdev/riva/rivafb-i2c.c
152
int riva_probe_i2c_connector(struct riva_par *par, int conn, u8 **out_edid)
drivers/video/fbdev/riva/rivafb-i2c.c
156
if (par->chan[conn].par)
drivers/video/fbdev/riva/rivafb-i2c.c
157
edid = fb_ddc_read(&par->chan[conn].adapter);
drivers/video/fbdev/riva/rivafb.h
74
int riva_probe_i2c_connector(struct riva_par *par, int conn, u8 **out_edid);
drivers/virt/vboxguest/vboxguest_core.c
1402
struct vbg_ioctl_hgcm_connect *conn)
drivers/virt/vboxguest/vboxguest_core.c
1407
if (vbg_ioctl_chk(&conn->hdr, sizeof(conn->u.in), sizeof(conn->u.out)))
drivers/virt/vboxguest/vboxguest_core.c
1423
ret = vbg_hgcm_connect(gdev, session->requestor, &conn->u.in.loc,
drivers/virt/vboxguest/vboxguest_core.c
1424
&client_id, &conn->hdr.rc);
drivers/virt/vboxguest/vboxguest_core.c
1427
if (ret == 0 && conn->hdr.rc >= 0) {
drivers/virt/vboxguest/vboxguest_core.c
1428
conn->u.out.client_id = client_id;
drivers/virt/vboxguest/vboxguest_core.c
1431
conn->u.out.client_id = 0;
fs/fuse/cuse.c
558
struct cuse_conn *cc = fc_to_cc(fud->chan->conn);
fs/fuse/dev.c
1897
err = fuse_notify(fch->conn, oh.error, nbytes - sizeof(oh), cs);
fs/fuse/dev.c
2188
fuse_end_polls(fch->conn);
fs/fuse/dev.c
2245
fuse_conn_put(fch->conn);
fs/fuse/dev.c
2313
return fuse_backing_open(fud->chan->conn, &map);
fs/fuse/dev.c
2330
return fuse_backing_close(fud->chan->conn, backing_id);
fs/fuse/dev.c
2374
seq_printf(seq, "fuse_connection:\t%u\n", fuse_conn_get_id(fud->chan->conn));
fs/fuse/dev.c
411
fch->conn = fc;
fs/fuse/dev.c
484
fuse_conn_get(fch->conn);
fs/fuse/dev.c
528
fuse_conn_put(fch->conn);
fs/fuse/dev_uring.c
483
fuse_conn_put(ring->chan->conn);
fs/fuse/dev_uring.c
495
fuse_conn_get(ring->chan->conn);
fs/fuse/fuse_dev_i.h
200
struct fuse_conn *conn;
fs/fuse/fuse_trace.h
116
__entry->connection = req->chan->conn->dev;
fs/fuse/fuse_trace.h
139
__entry->connection = req->chan->conn->dev;
fs/fuse/fuse_trace.h
93
__entry->connection = req->chan->conn->dev;
fs/nfsd/nfs4callback.c
1116
static int setup_callback_client(struct nfs4_client *clp, struct nfs4_cb_conn *conn, struct nfsd4_session *ses)
fs/nfsd/nfs4callback.c
1127
.address = (struct sockaddr *) &conn->cb_addr,
fs/nfsd/nfs4callback.c
1128
.addrsize = conn->cb_addrlen,
fs/nfsd/nfs4callback.c
1129
.saddress = (struct sockaddr *) &conn->cb_saddr,
fs/nfsd/nfs4callback.c
1146
args.prognumber = conn->cb_prog;
fs/nfsd/nfs4callback.c
1149
clp->cl_cb_ident = conn->cb_ident;
fs/nfsd/nfs4callback.c
1151
if (!conn->cb_xprt || !ses)
fs/nfsd/nfs4callback.c
1154
args.bc_xprt = conn->cb_xprt;
fs/nfsd/nfs4callback.c
1156
args.protocol = conn->cb_xprt->xpt_class->xcl_ident |
fs/nfsd/nfs4callback.c
1174
clp->cl_cb_conn.cb_xprt = conn->cb_xprt;
fs/nfsd/nfs4callback.c
1249
void nfsd4_change_callback(struct nfs4_client *clp, struct nfs4_cb_conn *conn)
fs/nfsd/nfs4callback.c
1253
memcpy(&clp->cl_cb_conn, conn, sizeof(struct nfs4_cb_conn));
fs/nfsd/nfs4callback.c
1631
struct nfs4_cb_conn conn;
fs/nfsd/nfs4callback.c
1665
memcpy(&conn, &cb->cb_clp->cl_cb_conn, sizeof(struct nfs4_cb_conn));
fs/nfsd/nfs4callback.c
1669
conn.cb_xprt = c->cn_xprt;
fs/nfsd/nfs4callback.c
1674
err = setup_callback_client(clp, &conn, ses);
fs/nfsd/nfs4state.c
2219
struct nfsd4_conn *conn;
fs/nfsd/nfs4state.c
2221
conn = kmalloc_obj(struct nfsd4_conn);
fs/nfsd/nfs4state.c
2222
if (!conn)
fs/nfsd/nfs4state.c
2225
conn->cn_xprt = rqstp->rq_xprt;
fs/nfsd/nfs4state.c
2226
conn->cn_flags = flags;
fs/nfsd/nfs4state.c
2227
INIT_LIST_HEAD(&conn->cn_xpt_user.list);
fs/nfsd/nfs4state.c
2228
return conn;
fs/nfsd/nfs4state.c
2231
static void __nfsd4_hash_conn(struct nfsd4_conn *conn, struct nfsd4_session *ses)
fs/nfsd/nfs4state.c
2233
conn->cn_session = ses;
fs/nfsd/nfs4state.c
2234
list_add(&conn->cn_persession, &ses->se_conns);
fs/nfsd/nfs4state.c
2237
static void nfsd4_hash_conn(struct nfsd4_conn *conn, struct nfsd4_session *ses)
fs/nfsd/nfs4state.c
2242
__nfsd4_hash_conn(conn, ses);
fs/nfsd/nfs4state.c
2246
static int nfsd4_register_conn(struct nfsd4_conn *conn)
fs/nfsd/nfs4state.c
2248
conn->cn_xpt_user.callback = nfsd4_conn_lost;
fs/nfsd/nfs4state.c
2249
return register_xpt_user(conn->cn_xprt, &conn->cn_xpt_user);
fs/nfsd/nfs4state.c
2252
static void nfsd4_init_conn(struct svc_rqst *rqstp, struct nfsd4_conn *conn, struct nfsd4_session *ses)
fs/nfsd/nfs4state.c
2256
nfsd4_hash_conn(conn, ses);
fs/nfsd/nfs4state.c
2257
ret = nfsd4_register_conn(conn);
fs/nfsd/nfs4state.c
2260
nfsd4_conn_lost(&conn->cn_xpt_user);
fs/nfsd/nfs4state.c
3567
struct nfs4_cb_conn *conn = &clp->cl_cb_conn;
fs/nfsd/nfs4state.c
3582
conn->cb_addrlen = rpc_uaddr2sockaddr(clp->net, se->se_callback_addr_val,
fs/nfsd/nfs4state.c
3584
(struct sockaddr *)&conn->cb_addr,
fs/nfsd/nfs4state.c
3585
sizeof(conn->cb_addr));
fs/nfsd/nfs4state.c
3587
if (!conn->cb_addrlen || conn->cb_addr.ss_family != expected_family)
fs/nfsd/nfs4state.c
3590
if (conn->cb_addr.ss_family == AF_INET6)
fs/nfsd/nfs4state.c
3591
((struct sockaddr_in6 *)&conn->cb_addr)->sin6_scope_id = scopeid;
fs/nfsd/nfs4state.c
3593
conn->cb_prog = se->se_callback_prog;
fs/nfsd/nfs4state.c
3594
conn->cb_ident = se->se_callback_ident;
fs/nfsd/nfs4state.c
3595
memcpy(&conn->cb_saddr, &rqstp->rq_daddr, rqstp->rq_daddrlen);
fs/nfsd/nfs4state.c
3596
trace_nfsd_cb_args(clp, conn);
fs/nfsd/nfs4state.c
3599
conn->cb_addr.ss_family = AF_UNSPEC;
fs/nfsd/nfs4state.c
3600
conn->cb_addrlen = 0;
fs/nfsd/nfs4state.c
4089
struct nfsd4_conn *conn;
fs/nfsd/nfs4state.c
4108
conn = alloc_conn_from_crses(rqstp, cr_ses);
fs/nfsd/nfs4state.c
4109
if (!conn)
fs/nfsd/nfs4state.c
4193
nfsd4_init_conn(rqstp, conn, new);
fs/nfsd/nfs4state.c
4213
free_conn(conn);
fs/nfsd/nfs4state.c
4269
struct nfsd4_session *session, u32 req, struct nfsd4_conn **conn)
fs/nfsd/nfs4state.c
4292
if (status == nfs_ok && conn)
fs/nfsd/nfs4state.c
4293
*conn = c;
fs/nfsd/nfs4state.c
4303
struct nfsd4_conn *conn;
fs/nfsd/nfs4state.c
4319
bcts->dir, &conn);
fs/nfsd/nfs4state.c
4323
conn->cn_flags |= NFS4_CDFC4_BACK;
fs/nfsd/nfs4state.c
4332
conn = alloc_conn(rqstp, bcts->dir);
fs/nfsd/nfs4state.c
4334
if (!conn)
fs/nfsd/nfs4state.c
4336
nfsd4_init_conn(rqstp, conn, session);
fs/nfsd/nfs4state.c
4509
struct nfsd4_conn *conn;
fs/nfsd/nfs4state.c
4522
conn = alloc_conn(rqstp, NFS4_CDFC4_FORE);
fs/nfsd/nfs4state.c
4523
if (!conn)
fs/nfsd/nfs4state.c
4571
status = nfsd4_sequence_check_conn(conn, session);
fs/nfsd/nfs4state.c
4572
conn = NULL;
fs/nfsd/nfs4state.c
4650
if (conn)
fs/nfsd/nfs4state.c
4651
free_conn(conn);
fs/nfsd/trace.h
1526
const struct nfs4_cb_conn *conn
fs/nfsd/trace.h
1528
TP_ARGS(clp, conn),
fs/nfsd/trace.h
1534
__sockaddr(addr, conn->cb_addrlen)
fs/nfsd/trace.h
1539
__entry->prog = conn->cb_prog;
fs/nfsd/trace.h
1540
__entry->ident = conn->cb_ident;
fs/nfsd/trace.h
1541
__assign_sockaddr(addr, &conn->cb_addr, conn->cb_addrlen);
fs/notify/fanotify/fanotify_user.c
1346
struct fsnotify_mark_connector *conn;
fs/notify/fanotify/fanotify_user.c
1361
conn = READ_ONCE(old->connector);
fs/notify/fanotify/fanotify_user.c
1362
if (!conn)
fs/notify/fanotify/fanotify_user.c
1364
old_sb = fsnotify_connector_sb(conn);
fs/notify/fsnotify.c
384
struct fsnotify_mark_connector *conn;
fs/notify/fsnotify.c
387
conn = srcu_dereference(*connp, &fsnotify_mark_srcu);
fs/notify/fsnotify.c
388
if (conn)
fs/notify/fsnotify.c
389
node = srcu_dereference(conn->list.first, &fsnotify_mark_srcu);
fs/notify/fsnotify.h
19
struct fsnotify_mark_connector *conn)
fs/notify/fsnotify.h
21
return conn->obj;
fs/notify/fsnotify.h
25
struct fsnotify_mark_connector *conn)
fs/notify/fsnotify.h
27
return real_mount(conn->obj);
fs/notify/fsnotify.h
31
struct fsnotify_mark_connector *conn)
fs/notify/fsnotify.h
33
return conn->obj;
fs/notify/fsnotify.h
37
struct fsnotify_mark_connector *conn)
fs/notify/fsnotify.h
39
return conn->obj;
fs/notify/fsnotify.h
58
struct fsnotify_mark_connector *conn)
fs/notify/fsnotify.h
60
return fsnotify_object_sb(conn->obj, conn->type);
fs/notify/mark.c
1036
struct fsnotify_mark_connector *conn;
fs/notify/mark.c
1042
conn = fsnotify_grab_connector(connp);
fs/notify/mark.c
1043
if (!conn)
fs/notify/mark.c
1046
hlist_for_each_entry(mark, &conn->list, obj_list) {
fs/notify/mark.c
1050
spin_unlock(&conn->lock);
fs/notify/mark.c
1054
spin_unlock(&conn->lock);
fs/notify/mark.c
1107
struct fsnotify_mark_connector *conn;
fs/notify/mark.c
1112
conn = fsnotify_grab_connector(connp);
fs/notify/mark.c
1113
if (!conn)
fs/notify/mark.c
1122
hlist_for_each_entry(mark, &conn->list, obj_list) {
fs/notify/mark.c
1124
spin_unlock(&conn->lock);
fs/notify/mark.c
1129
spin_lock(&conn->lock);
fs/notify/mark.c
1136
objp = fsnotify_detach_connector_from_object(conn, &type);
fs/notify/mark.c
1137
spin_unlock(&conn->lock);
fs/notify/mark.c
118
static __u32 *fsnotify_conn_mask_p(struct fsnotify_mark_connector *conn)
fs/notify/mark.c
120
if (conn->type == FSNOTIFY_OBJ_TYPE_INODE)
fs/notify/mark.c
121
return &fsnotify_conn_inode(conn)->i_fsnotify_mask;
fs/notify/mark.c
122
else if (conn->type == FSNOTIFY_OBJ_TYPE_VFSMOUNT)
fs/notify/mark.c
123
return &fsnotify_conn_mount(conn)->mnt_fsnotify_mask;
fs/notify/mark.c
124
else if (conn->type == FSNOTIFY_OBJ_TYPE_SB)
fs/notify/mark.c
125
return &fsnotify_conn_sb(conn)->s_fsnotify_mask;
fs/notify/mark.c
126
else if (conn->type == FSNOTIFY_OBJ_TYPE_MNTNS)
fs/notify/mark.c
127
return &fsnotify_conn_mntns(conn)->n_fsnotify_mask;
fs/notify/mark.c
131
__u32 fsnotify_conn_mask(struct fsnotify_mark_connector *conn)
fs/notify/mark.c
133
if (WARN_ON(!fsnotify_valid_obj_type(conn->type)))
fs/notify/mark.c
136
return READ_ONCE(*fsnotify_conn_mask_p(conn));
fs/notify/mark.c
173
struct fsnotify_mark_connector *conn)
fs/notify/mark.c
176
bool is_watched = conn->flags & FSNOTIFY_CONN_FLAG_IS_WATCHED;
fs/notify/mark.c
180
if (conn->obj)
fs/notify/mark.c
181
first_mark = hlist_entry_safe(conn->list.first,
fs/notify/mark.c
193
for (unsigned int p = conn->prio + 1; p <= highest_prio; p++)
fs/notify/mark.c
195
for (unsigned int p = conn->prio; p > highest_prio; p--)
fs/notify/mark.c
197
conn->prio = highest_prio;
fs/notify/mark.c
202
conn->flags |= FSNOTIFY_CONN_FLAG_IS_WATCHED;
fs/notify/mark.c
205
conn->flags &= ~FSNOTIFY_CONN_FLAG_IS_WATCHED;
fs/notify/mark.c
218
static struct inode *fsnotify_update_iref(struct fsnotify_mark_connector *conn,
fs/notify/mark.c
221
bool has_iref = conn->flags & FSNOTIFY_CONN_FLAG_HAS_IREF;
fs/notify/mark.c
224
if (conn->type != FSNOTIFY_OBJ_TYPE_INODE ||
fs/notify/mark.c
230
fsnotify_get_inode_ref(fsnotify_conn_inode(conn));
fs/notify/mark.c
231
conn->flags |= FSNOTIFY_CONN_FLAG_HAS_IREF;
fs/notify/mark.c
234
inode = fsnotify_conn_inode(conn);
fs/notify/mark.c
235
conn->flags &= ~FSNOTIFY_CONN_FLAG_HAS_IREF;
fs/notify/mark.c
246
static bool __fsnotify_recalc_mask(struct fsnotify_mark_connector *conn)
fs/notify/mark.c
252
assert_spin_locked(&conn->lock);
fs/notify/mark.c
254
if (!fsnotify_valid_obj_type(conn->type))
fs/notify/mark.c
256
hlist_for_each_entry(mark, &conn->list, obj_list) {
fs/notify/mark.c
260
if (conn->type == FSNOTIFY_OBJ_TYPE_INODE &&
fs/notify/mark.c
268
WRITE_ONCE(*fsnotify_conn_mask_p(conn), new_mask);
fs/notify/mark.c
282
static void fsnotify_recalc_mask_set_iref(struct fsnotify_mark_connector *conn)
fs/notify/mark.c
284
bool has_iref = conn->flags & FSNOTIFY_CONN_FLAG_HAS_IREF;
fs/notify/mark.c
285
bool want_iref = __fsnotify_recalc_mask(conn) || has_iref;
fs/notify/mark.c
287
(void) fsnotify_update_iref(conn, want_iref);
fs/notify/mark.c
294
static void *fsnotify_recalc_mask_clear_iref(struct fsnotify_mark_connector *conn)
fs/notify/mark.c
296
bool want_iref = __fsnotify_recalc_mask(conn);
fs/notify/mark.c
298
return fsnotify_update_iref(conn, want_iref);
fs/notify/mark.c
302
struct fsnotify_mark_connector *conn)
fs/notify/mark.c
304
if (conn->type != FSNOTIFY_OBJ_TYPE_INODE)
fs/notify/mark.c
307
return fsnotify_inode_watches_children(fsnotify_conn_inode(conn));
fs/notify/mark.c
311
struct fsnotify_mark_connector *conn)
fs/notify/mark.c
313
if (conn->type != FSNOTIFY_OBJ_TYPE_INODE)
fs/notify/mark.c
316
fsnotify_set_children_dentry_flags(fsnotify_conn_inode(conn));
fs/notify/mark.c
325
void fsnotify_recalc_mask(struct fsnotify_mark_connector *conn)
fs/notify/mark.c
329
if (!conn)
fs/notify/mark.c
332
spin_lock(&conn->lock);
fs/notify/mark.c
333
update_children = !fsnotify_conn_watches_children(conn);
fs/notify/mark.c
334
fsnotify_recalc_mask_set_iref(conn);
fs/notify/mark.c
335
update_children &= fsnotify_conn_watches_children(conn);
fs/notify/mark.c
336
spin_unlock(&conn->lock);
fs/notify/mark.c
343
fsnotify_conn_set_children_dentry_flags(conn);
fs/notify/mark.c
378
struct fsnotify_mark_connector *conn, *free;
fs/notify/mark.c
381
conn = connector_destroy_list;
fs/notify/mark.c
386
while (conn) {
fs/notify/mark.c
387
free = conn;
fs/notify/mark.c
388
conn = conn->destroy_next;
fs/notify/mark.c
393
static void fsnotify_untrack_connector(struct fsnotify_mark_connector *conn);
fs/notify/mark.c
396
struct fsnotify_mark_connector *conn,
fs/notify/mark.c
399
fsnotify_connp_t *connp = fsnotify_object_connp(conn->obj, conn->type);
fs/notify/mark.c
400
struct super_block *sb = fsnotify_connector_sb(conn);
fs/notify/mark.c
403
*type = conn->type;
fs/notify/mark.c
404
if (conn->type == FSNOTIFY_OBJ_TYPE_DETACHED)
fs/notify/mark.c
407
if (conn->type == FSNOTIFY_OBJ_TYPE_INODE) {
fs/notify/mark.c
408
inode = fsnotify_conn_inode(conn);
fs/notify/mark.c
410
fsnotify_untrack_connector(conn);
fs/notify/mark.c
413
if (!(conn->flags & FSNOTIFY_CONN_FLAG_HAS_IREF))
fs/notify/mark.c
415
} else if (conn->type == FSNOTIFY_OBJ_TYPE_VFSMOUNT) {
fs/notify/mark.c
416
fsnotify_conn_mount(conn)->mnt_fsnotify_mask = 0;
fs/notify/mark.c
417
} else if (conn->type == FSNOTIFY_OBJ_TYPE_SB) {
fs/notify/mark.c
418
fsnotify_conn_sb(conn)->s_fsnotify_mask = 0;
fs/notify/mark.c
419
} else if (conn->type == FSNOTIFY_OBJ_TYPE_MNTNS) {
fs/notify/mark.c
420
fsnotify_conn_mntns(conn)->n_fsnotify_mask = 0;
fs/notify/mark.c
424
conn->obj = NULL;
fs/notify/mark.c
425
conn->type = FSNOTIFY_OBJ_TYPE_DETACHED;
fs/notify/mark.c
427
fsnotify_update_sb_watchers(sb, conn);
fs/notify/mark.c
455
struct fsnotify_mark_connector *conn = READ_ONCE(mark->connector);
fs/notify/mark.c
461
if (!conn) {
fs/notify/mark.c
471
if (!refcount_dec_and_lock(&mark->refcnt, &conn->lock))
fs/notify/mark.c
475
if (hlist_empty(&conn->list)) {
fs/notify/mark.c
476
objp = fsnotify_detach_connector_from_object(conn, &type);
fs/notify/mark.c
479
struct super_block *sb = fsnotify_connector_sb(conn);
fs/notify/mark.c
483
fsnotify_update_sb_watchers(sb, conn);
fs/notify/mark.c
484
objp = fsnotify_recalc_mask_clear_iref(conn);
fs/notify/mark.c
485
type = conn->type;
fs/notify/mark.c
488
spin_unlock(&conn->lock);
fs/notify/mark.c
494
conn->destroy_next = connector_destroy_list;
fs/notify/mark.c
495
connector_destroy_list = conn;
fs/notify/mark.c
785
static void fsnotify_init_connector(struct fsnotify_mark_connector *conn,
fs/notify/mark.c
788
spin_lock_init(&conn->lock);
fs/notify/mark.c
789
INIT_HLIST_HEAD(&conn->list);
fs/notify/mark.c
790
conn->flags = 0;
fs/notify/mark.c
791
conn->prio = 0;
fs/notify/mark.c
792
conn->type = obj_type;
fs/notify/mark.c
793
conn->obj = obj;
fs/notify/mark.c
815
static void fsnotify_untrack_connector(struct fsnotify_mark_connector *conn)
fs/notify/mark.c
820
if (conn->type != FSNOTIFY_OBJ_TYPE_INODE)
fs/notify/mark.c
823
iconn = container_of(conn, struct fsnotify_inode_mark_connector, common);
fs/notify/mark.c
824
sbinfo = fsnotify_sb_info(fsnotify_conn_inode(conn)->i_sb);
fs/notify/mark.c
833
struct fsnotify_mark_connector *conn;
fs/notify/mark.c
838
conn = fsnotify_alloc_inode_connector(inode);
fs/notify/mark.c
840
conn = kmem_cache_alloc(fsnotify_mark_connector_cachep,
fs/notify/mark.c
842
if (conn)
fs/notify/mark.c
843
fsnotify_init_connector(conn, obj, obj_type);
fs/notify/mark.c
845
if (!conn)
fs/notify/mark.c
852
if (cmpxchg(connp, NULL, conn)) {
fs/notify/mark.c
854
fsnotify_untrack_connector(conn);
fs/notify/mark.c
855
kfree(conn);
fs/notify/mark.c
869
struct fsnotify_mark_connector *conn;
fs/notify/mark.c
873
conn = srcu_dereference(*connp, &fsnotify_mark_srcu);
fs/notify/mark.c
874
if (!conn)
fs/notify/mark.c
876
spin_lock(&conn->lock);
fs/notify/mark.c
877
if (conn->type == FSNOTIFY_OBJ_TYPE_DETACHED) {
fs/notify/mark.c
878
spin_unlock(&conn->lock);
fs/notify/mark.c
884
return conn;
fs/notify/mark.c
898
struct fsnotify_mark_connector *conn;
fs/notify/mark.c
919
conn = fsnotify_grab_connector(connp);
fs/notify/mark.c
920
if (!conn) {
fs/notify/mark.c
929
if (hlist_empty(&conn->list)) {
fs/notify/mark.c
930
hlist_add_head_rcu(&mark->obj_list, &conn->list);
fs/notify/mark.c
935
hlist_for_each_entry(lmark, &conn->list, obj_list) {
fs/notify/mark.c
957
fsnotify_update_sb_watchers(sb, conn);
fs/notify/mark.c
963
WRITE_ONCE(mark->connector, conn);
fs/notify/mark.c
965
spin_unlock(&conn->lock);
fs/ocfs2/dlmfs/dlmfs.c
414
struct ocfs2_cluster_connection *conn;
fs/ocfs2/dlmfs/dlmfs.c
434
conn = user_dlm_register(domain);
fs/ocfs2/dlmfs/dlmfs.c
435
if (IS_ERR(conn)) {
fs/ocfs2/dlmfs/dlmfs.c
436
status = PTR_ERR(conn);
fs/ocfs2/dlmfs/dlmfs.c
441
ip->ip_conn = conn;
fs/ocfs2/dlmfs/userdlm.c
288
struct ocfs2_cluster_connection *conn =
fs/ocfs2/dlmfs/userdlm.c
333
status = ocfs2_dlm_unlock(conn, &lockres->l_lksb,
fs/ocfs2/dlmfs/userdlm.c
370
status = ocfs2_dlm_lock(conn, new_level, &lockres->l_lksb,
fs/ocfs2/dlmfs/userdlm.c
415
struct ocfs2_cluster_connection *conn =
fs/ocfs2/dlmfs/userdlm.c
478
status = ocfs2_dlm_lock(conn, level, &lockres->l_lksb,
fs/ocfs2/dlmfs/userdlm.c
595
struct ocfs2_cluster_connection *conn =
fs/ocfs2/dlmfs/userdlm.c
635
status = ocfs2_dlm_unlock(conn, &lockres->l_lksb, DLM_LKF_VALBLK);
fs/ocfs2/dlmfs/userdlm.c
667
struct ocfs2_cluster_connection *conn;
fs/ocfs2/dlmfs/userdlm.c
672
NULL, &conn);
fs/ocfs2/dlmfs/userdlm.c
676
return rc ? ERR_PTR(rc) : conn;
fs/ocfs2/dlmfs/userdlm.c
679
void user_dlm_unregister(struct ocfs2_cluster_connection *conn)
fs/ocfs2/dlmfs/userdlm.c
681
ocfs2_cluster_disconnect(conn, 0);
fs/ocfs2/dlmfs/userdlm.h
69
void user_dlm_unregister(struct ocfs2_cluster_connection *conn);
fs/ocfs2/dlmglue.c
3343
struct ocfs2_cluster_connection *conn = NULL;
fs/ocfs2/dlmglue.c
3369
&conn);
fs/ocfs2/dlmglue.c
3375
status = ocfs2_cluster_this_node(conn, &osb->node_num);
fs/ocfs2/dlmglue.c
3380
ocfs2_cluster_disconnect(conn, 0);
fs/ocfs2/dlmglue.c
3390
osb->cconn = conn;
fs/ocfs2/stack_o2cb.c
190
static int o2cb_dlm_lock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_o2cb.c
202
status = dlmlock(conn->cc_lockspace, o2dlm_mode, &lksb->lksb_o2dlm,
fs/ocfs2/stack_o2cb.c
210
static int o2cb_dlm_unlock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_o2cb.c
218
status = dlmunlock(conn->cc_lockspace, &lksb->lksb_o2dlm,
fs/ocfs2/stack_o2cb.c
310
struct ocfs2_cluster_connection *conn = data;
fs/ocfs2/stack_o2cb.c
313
node_num, conn->cc_namelen, conn->cc_name);
fs/ocfs2/stack_o2cb.c
315
conn->cc_recovery_handler(node_num, conn->cc_recovery_data);
fs/ocfs2/stack_o2cb.c
318
static int o2cb_cluster_connect(struct ocfs2_cluster_connection *conn)
fs/ocfs2/stack_o2cb.c
326
BUG_ON(conn == NULL);
fs/ocfs2/stack_o2cb.c
327
BUG_ON(conn->cc_proto == NULL);
fs/ocfs2/stack_o2cb.c
345
conn);
fs/ocfs2/stack_o2cb.c
347
conn->cc_private = priv;
fs/ocfs2/stack_o2cb.c
351
dlm_key = crc32_le(0, conn->cc_name, conn->cc_namelen);
fs/ocfs2/stack_o2cb.c
352
fs_version.pv_major = conn->cc_version.pv_major;
fs/ocfs2/stack_o2cb.c
353
fs_version.pv_minor = conn->cc_version.pv_minor;
fs/ocfs2/stack_o2cb.c
355
dlm = dlm_register_domain(conn->cc_name, dlm_key, &fs_version);
fs/ocfs2/stack_o2cb.c
362
conn->cc_version.pv_major = fs_version.pv_major;
fs/ocfs2/stack_o2cb.c
363
conn->cc_version.pv_minor = fs_version.pv_minor;
fs/ocfs2/stack_o2cb.c
364
conn->cc_lockspace = dlm;
fs/ocfs2/stack_o2cb.c
370
kfree(conn->cc_private);
fs/ocfs2/stack_o2cb.c
376
static int o2cb_cluster_disconnect(struct ocfs2_cluster_connection *conn)
fs/ocfs2/stack_o2cb.c
378
struct dlm_ctxt *dlm = conn->cc_lockspace;
fs/ocfs2/stack_o2cb.c
379
struct o2dlm_private *priv = conn->cc_private;
fs/ocfs2/stack_o2cb.c
382
conn->cc_private = NULL;
fs/ocfs2/stack_o2cb.c
386
conn->cc_lockspace = NULL;
fs/ocfs2/stack_o2cb.c
391
static int o2cb_cluster_this_node(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
1000
rc = ocfs2_live_connection_attach(conn, lc);
fs/ocfs2/stack_user.c
1005
rc = get_protocol_version(conn);
fs/ocfs2/stack_user.c
1009
user_cluster_disconnect(conn);
fs/ocfs2/stack_user.c
1020
if (fs_protocol_compare(&running_proto, &conn->cc_version)) {
fs/ocfs2/stack_user.c
1024
conn->cc_version.pv_major, conn->cc_version.pv_minor,
fs/ocfs2/stack_user.c
1038
static int user_cluster_this_node(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
1042
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
206
static int ocfs2_live_connection_attach(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
212
c->oc_conn = conn;
fs/ocfs2/stack_user.c
669
static int user_dlm_lock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
680
return dlm_lock(conn->cc_lockspace, mode, &lksb->lksb_fsdlm,
fs/ocfs2/stack_user.c
686
static int user_dlm_unlock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
690
return dlm_unlock(conn->cc_lockspace, lksb->lksb_fsdlm.sb_lkid,
fs/ocfs2/stack_user.c
718
static int user_plock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
733
return dlm_posix_cancel(conn->cc_lockspace, ino, file, fl);
fs/ocfs2/stack_user.c
735
return dlm_posix_get(conn->cc_lockspace, ino, file, fl);
fs/ocfs2/stack_user.c
737
return dlm_posix_unlock(conn->cc_lockspace, ino, file, fl);
fs/ocfs2/stack_user.c
739
return dlm_posix_lock(conn->cc_lockspace, ino, file, cmd, fl);
fs/ocfs2/stack_user.c
791
struct ocfs2_cluster_connection *conn = arg;
fs/ocfs2/stack_user.c
792
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
796
static int sync_unlock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
800
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
802
error = dlm_unlock(conn->cc_lockspace, lksb->sb_lkid, 0, lksb, conn);
fs/ocfs2/stack_user.c
819
static int sync_lock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
824
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
826
error = dlm_lock(conn->cc_lockspace, mode, lksb, flags,
fs/ocfs2/stack_user.c
828
0, sync_wait_cb, conn, NULL);
fs/ocfs2/stack_user.c
848
static int version_lock(struct ocfs2_cluster_connection *conn, int mode,
fs/ocfs2/stack_user.c
851
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
852
return sync_lock(conn, mode, flags,
fs/ocfs2/stack_user.c
856
static int version_unlock(struct ocfs2_cluster_connection *conn)
fs/ocfs2/stack_user.c
858
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
859
return sync_unlock(conn, &lc->oc_version_lksb, VERSION_LOCK);
fs/ocfs2/stack_user.c
873
static int get_protocol_version(struct ocfs2_cluster_connection *conn)
fs/ocfs2/stack_user.c
876
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
885
ret = version_lock(conn, DLM_LOCK_EX,
fs/ocfs2/stack_user.c
888
conn->cc_version.pv_major = running_proto.pv_major;
fs/ocfs2/stack_user.c
889
conn->cc_version.pv_minor = running_proto.pv_minor;
fs/ocfs2/stack_user.c
891
version_lock(conn, DLM_LOCK_PR, DLM_LKF_CONVERT|DLM_LKF_VALBLK);
fs/ocfs2/stack_user.c
893
ret = version_lock(conn, DLM_LOCK_PR, DLM_LKF_VALBLK);
fs/ocfs2/stack_user.c
904
conn->cc_version.pv_major = pv.pv_major;
fs/ocfs2/stack_user.c
905
conn->cc_version.pv_minor = pv.pv_minor;
fs/ocfs2/stack_user.c
917
struct ocfs2_cluster_connection *conn = arg;
fs/ocfs2/stack_user.c
920
conn->cc_recovery_handler(slot->nodeid, conn->cc_recovery_data);
fs/ocfs2/stack_user.c
928
struct ocfs2_cluster_connection *conn = arg;
fs/ocfs2/stack_user.c
929
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
948
static int user_cluster_disconnect(struct ocfs2_cluster_connection *conn)
fs/ocfs2/stack_user.c
950
version_unlock(conn);
fs/ocfs2/stack_user.c
951
dlm_release_lockspace(conn->cc_lockspace, DLM_RELEASE_NORMAL);
fs/ocfs2/stack_user.c
952
conn->cc_lockspace = NULL;
fs/ocfs2/stack_user.c
953
ocfs2_live_connection_drop(conn->cc_private);
fs/ocfs2/stack_user.c
954
conn->cc_private = NULL;
fs/ocfs2/stack_user.c
958
static int user_cluster_connect(struct ocfs2_cluster_connection *conn)
fs/ocfs2/stack_user.c
964
BUG_ON(conn == NULL);
fs/ocfs2/stack_user.c
973
conn->cc_private = lc;
fs/ocfs2/stack_user.c
976
rc = dlm_new_lockspace(conn->cc_name, conn->cc_cluster_name,
fs/ocfs2/stack_user.c
978
&ocfs2_ls_ops, conn, &ops_rv, &fsdlm);
fs/ocfs2/stack_user.c
985
conn->cc_name, rc);
fs/ocfs2/stack_user.c
998
conn->cc_lockspace = fsdlm;
fs/ocfs2/stackglue.c
232
int ocfs2_dlm_lock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stackglue.c
240
lksb->lksb_conn = conn;
fs/ocfs2/stackglue.c
242
BUG_ON(lksb->lksb_conn != conn);
fs/ocfs2/stackglue.c
243
return active_stack->sp_ops->dlm_lock(conn, mode, lksb, flags,
fs/ocfs2/stackglue.c
248
int ocfs2_dlm_unlock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stackglue.c
254
return active_stack->sp_ops->dlm_unlock(conn, lksb, flags);
fs/ocfs2/stackglue.c
292
int ocfs2_plock(struct ocfs2_cluster_connection *conn, u64 ino,
fs/ocfs2/stackglue.c
297
return active_stack->sp_ops->plock(conn, ino, file, cmd, fl);
fs/ocfs2/stackglue.c
311
struct ocfs2_cluster_connection **conn)
fs/ocfs2/stackglue.c
317
BUG_ON(conn == NULL);
fs/ocfs2/stackglue.c
361
*conn = new_conn;
fs/ocfs2/stackglue.c
379
struct ocfs2_cluster_connection **conn)
fs/ocfs2/stackglue.c
387
conn);
fs/ocfs2/stackglue.c
392
int ocfs2_cluster_disconnect(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stackglue.c
397
BUG_ON(conn == NULL);
fs/ocfs2/stackglue.c
399
ret = active_stack->sp_ops->disconnect(conn);
fs/ocfs2/stackglue.c
403
kfree(conn);
fs/ocfs2/stackglue.c
460
int ocfs2_cluster_this_node(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stackglue.c
463
return active_stack->sp_ops->this_node(conn, node);
fs/ocfs2/stackglue.h
128
int (*connect)(struct ocfs2_cluster_connection *conn);
fs/ocfs2/stackglue.h
144
int (*disconnect)(struct ocfs2_cluster_connection *conn);
fs/ocfs2/stackglue.h
150
int (*this_node)(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stackglue.h
163
int (*dlm_lock)(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stackglue.h
179
int (*dlm_unlock)(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stackglue.h
206
int (*plock)(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stackglue.h
246
struct ocfs2_cluster_connection **conn);
fs/ocfs2/stackglue.h
257
struct ocfs2_cluster_connection **conn);
fs/ocfs2/stackglue.h
258
int ocfs2_cluster_disconnect(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stackglue.h
261
int ocfs2_cluster_this_node(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stackglue.h
265
int ocfs2_dlm_lock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stackglue.h
271
int ocfs2_dlm_unlock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stackglue.h
281
int ocfs2_plock(struct ocfs2_cluster_connection *conn, u64 ino,
fs/smb/client/smbdirect.c
343
const struct smbdirect_socket_parameters *smbd_get_parameters(struct smbd_connection *conn)
fs/smb/client/smbdirect.c
345
if (unlikely(!conn->socket)) {
fs/smb/client/smbdirect.c
351
return smbdirect_socket_get_current_parameters(conn->socket);
fs/smb/client/smbdirect.h
34
const struct smbdirect_socket_parameters *smbd_get_parameters(struct smbd_connection *conn);
fs/smb/server/asn1.c
183
struct ksmbd_conn *conn = context;
fs/smb/server/asn1.c
204
conn->auth_mechs |= mech_type;
fs/smb/server/asn1.c
205
if (conn->preferred_auth_mech == 0)
fs/smb/server/asn1.c
206
conn->preferred_auth_mech = mech_type;
fs/smb/server/asn1.c
215
struct ksmbd_conn *conn = context;
fs/smb/server/asn1.c
220
conn->mechToken = kmemdup_nul(value, vlen, KSMBD_DEFAULT_GFP);
fs/smb/server/asn1.c
221
if (!conn->mechToken)
fs/smb/server/asn1.c
224
conn->mechTokenLen = (unsigned int)vlen;
fs/smb/server/asn1.c
31
struct ksmbd_conn *conn)
fs/smb/server/asn1.c
33
return asn1_ber_decoder(&ksmbd_spnego_negtokeninit_decoder, conn,
fs/smb/server/asn1.c
39
struct ksmbd_conn *conn)
fs/smb/server/asn1.c
41
return asn1_ber_decoder(&ksmbd_spnego_negtokentarg_decoder, conn,
fs/smb/server/asn1.h
14
struct ksmbd_conn *conn);
fs/smb/server/asn1.h
16
struct ksmbd_conn *conn);
fs/smb/server/auth.c
113
conn->local_nls);
fs/smb/server/auth.c
140
int ksmbd_auth_ntlmv2(struct ksmbd_conn *conn, struct ksmbd_session *sess,
fs/smb/server/auth.c
155
rc = calc_ntlmv2_hash(conn, sess, ntlmv2_hash, domain_name);
fs/smb/server/auth.c
198
int blob_len, struct ksmbd_conn *conn,
fs/smb/server/auth.c
229
dn_len, true, conn->local_nls);
fs/smb/server/auth.c
236
ret = ksmbd_auth_ntlmv2(conn, sess,
fs/smb/server/auth.c
239
domain_name, conn->ntlmssp.cryptkey, sess_key);
fs/smb/server/auth.c
245
if (conn->ntlmssp.client_flags & NTLMSSP_NEGOTIATE_KEY_XCH) {
fs/smb/server/auth.c
280
int blob_len, struct ksmbd_conn *conn)
fs/smb/server/auth.c
294
conn->ntlmssp.client_flags = le32_to_cpu(negblob->NegotiateFlags);
fs/smb/server/auth.c
307
struct ksmbd_conn *conn)
fs/smb/server/auth.c
314
int cflags = conn->ntlmssp.client_flags;
fs/smb/server/auth.c
329
if (cflags & NTLMSSP_NEGOTIATE_SEAL && smb3_encryption_negotiated(conn))
fs/smb/server/auth.c
338
if (conn->use_spnego &&
fs/smb/server/auth.c
352
conn->local_nls);
fs/smb/server/auth.c
368
get_random_bytes(conn->ntlmssp.cryptkey, sizeof(__u64));
fs/smb/server/auth.c
369
memcpy(chgblob->Challenge, conn->ntlmssp.cryptkey,
fs/smb/server/auth.c
488
void ksmbd_sign_smb2_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov,
fs/smb/server/auth.c
509
void ksmbd_sign_smb3_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov,
fs/smb/server/auth.c
532
static void generate_key(struct ksmbd_conn *conn, const char *sess_key,
fs/smb/server/auth.c
551
(conn->cipher_type == SMB2_ENCRYPTION_AES256_CCM ||
fs/smb/server/auth.c
552
conn->cipher_type == SMB2_ENCRYPTION_AES256_GCM))
fs/smb/server/auth.c
562
struct ksmbd_conn *conn,
fs/smb/server/auth.c
568
chann = lookup_chann_list(sess, conn);
fs/smb/server/auth.c
572
if (conn->dialect >= SMB30_PROT_ID && signing->binding) {
fs/smb/server/auth.c
580
generate_key(conn, sess_key, signing->label, signing->context, key,
fs/smb/server/auth.c
583
if (!(conn->dialect >= SMB30_PROT_ID && signing->binding))
fs/smb/server/auth.c
592
struct ksmbd_conn *conn)
fs/smb/server/auth.c
600
d.binding = conn->binding;
fs/smb/server/auth.c
602
return generate_smb3signingkey(sess, conn, &d);
fs/smb/server/auth.c
606
struct ksmbd_conn *conn)
fs/smb/server/auth.c
612
if (conn->binding) {
fs/smb/server/auth.c
615
preauth_sess = ksmbd_preauth_session_lookup(conn, sess->id);
fs/smb/server/auth.c
623
d.binding = conn->binding;
fs/smb/server/auth.c
625
return generate_smb3signingkey(sess, conn, &d);
fs/smb/server/auth.c
633
static void generate_smb3encryptionkey(struct ksmbd_conn *conn,
fs/smb/server/auth.c
637
generate_key(conn, sess->sess_key, ptwin->encryption.label,
fs/smb/server/auth.c
641
generate_key(conn, sess->sess_key, ptwin->decryption.label,
fs/smb/server/auth.c
646
ksmbd_debug(AUTH, "Cipher type %d\n", conn->cipher_type);
fs/smb/server/auth.c
650
void ksmbd_gen_smb30_encryptionkey(struct ksmbd_conn *conn,
fs/smb/server/auth.c
668
generate_smb3encryptionkey(conn, sess, &twin);
fs/smb/server/auth.c
671
void ksmbd_gen_smb311_encryptionkey(struct ksmbd_conn *conn,
fs/smb/server/auth.c
689
generate_smb3encryptionkey(conn, sess, &twin);
fs/smb/server/auth.c
692
int ksmbd_gen_preauth_integrity_hash(struct ksmbd_conn *conn, char *buf,
fs/smb/server/auth.c
700
if (conn->preauth_info->Preauth_HashId !=
fs/smb/server/auth.c
720
sess = ksmbd_session_lookup_all(work->conn, ses_id);
fs/smb/server/auth.c
75
static int calc_ntlmv2_hash(struct ksmbd_conn *conn, struct ksmbd_session *sess,
fs/smb/server/auth.c
820
struct ksmbd_conn *conn = work->conn;
fs/smb/server/auth.c
844
if (conn->cipher_type == SMB2_ENCRYPTION_AES128_GCM ||
fs/smb/server/auth.c
845
conn->cipher_type == SMB2_ENCRYPTION_AES256_GCM)
fs/smb/server/auth.c
854
if (conn->cipher_type == SMB2_ENCRYPTION_AES128_GCM ||
fs/smb/server/auth.c
855
conn->cipher_type == SMB2_ENCRYPTION_AES256_GCM)
fs/smb/server/auth.c
860
if (conn->cipher_type == SMB2_ENCRYPTION_AES256_CCM ||
fs/smb/server/auth.c
861
conn->cipher_type == SMB2_ENCRYPTION_AES256_GCM)
fs/smb/server/auth.c
901
if (conn->cipher_type == SMB2_ENCRYPTION_AES128_GCM ||
fs/smb/server/auth.c
902
conn->cipher_type == SMB2_ENCRYPTION_AES256_GCM) {
fs/smb/server/auth.c
95
conn->local_nls);
fs/smb/server/auth.h
42
int ksmbd_auth_ntlmv2(struct ksmbd_conn *conn, struct ksmbd_session *sess,
fs/smb/server/auth.h
46
int blob_len, struct ksmbd_conn *conn,
fs/smb/server/auth.h
49
int blob_len, struct ksmbd_conn *conn);
fs/smb/server/auth.h
52
struct ksmbd_conn *conn);
fs/smb/server/auth.h
56
void ksmbd_sign_smb2_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov,
fs/smb/server/auth.h
58
void ksmbd_sign_smb3_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov,
fs/smb/server/auth.h
61
struct ksmbd_conn *conn);
fs/smb/server/auth.h
63
struct ksmbd_conn *conn);
fs/smb/server/auth.h
64
void ksmbd_gen_smb30_encryptionkey(struct ksmbd_conn *conn,
fs/smb/server/auth.h
66
void ksmbd_gen_smb311_encryptionkey(struct ksmbd_conn *conn,
fs/smb/server/auth.h
68
int ksmbd_gen_preauth_integrity_hash(struct ksmbd_conn *conn, char *buf,
fs/smb/server/compress.c
108
work->conn->compress_algorithm != SMB3_COMPRESS_LZ77)
fs/smb/server/compress.c
150
if (work->conn->compress_chained) {
fs/smb/server/compress.c
153
work->conn->compress_pattern,
fs/smb/server/compress.c
28
int ksmbd_decompress_request(struct ksmbd_conn *conn)
fs/smb/server/compress.c
31
unsigned int pdu_size = get_rfc1002_len(conn->request_buf);
fs/smb/server/compress.c
40
if (conn->dialect != SMB311_PROT_ID ||
fs/smb/server/compress.c
41
conn->compress_algorithm == SMB3_COMPRESS_NONE)
fs/smb/server/compress.c
44
hdr = smb_get_msg(conn->request_buf);
fs/smb/server/compress.c
58
max_allowed_pdu_size = SMB3_MAX_MSGSIZE + conn->vals->max_write_size;
fs/smb/server/compress.c
70
rc = smb_compression_decompress(conn->compress_algorithm,
fs/smb/server/compress.c
71
conn->compress_chained,
fs/smb/server/compress.c
78
kvfree(conn->request_buf);
fs/smb/server/compress.c
79
conn->request_buf = out;
fs/smb/server/compress.h
13
int ksmbd_decompress_request(struct ksmbd_conn *conn);
fs/smb/server/connection.c
115
struct ksmbd_conn *conn =
fs/smb/server/connection.c
118
ida_destroy(&conn->async_ida);
fs/smb/server/connection.c
119
conn->transport->ops->free_transport(conn->transport);
fs/smb/server/connection.c
120
kfree(conn);
fs/smb/server/connection.c
132
struct ksmbd_conn *ksmbd_conn_get(struct ksmbd_conn *conn)
fs/smb/server/connection.c
134
if (!conn)
fs/smb/server/connection.c
137
atomic_inc(&conn->refcnt);
fs/smb/server/connection.c
138
return conn;
fs/smb/server/connection.c
153
void ksmbd_conn_put(struct ksmbd_conn *conn)
fs/smb/server/connection.c
155
if (!conn)
fs/smb/server/connection.c
158
if (atomic_dec_and_test(&conn->refcnt))
fs/smb/server/connection.c
159
queue_work(ksmbd_conn_wq, &conn->release_work);
fs/smb/server/connection.c
170
void ksmbd_conn_free(struct ksmbd_conn *conn)
fs/smb/server/connection.c
173
hash_del(&conn->hlist);
fs/smb/server/connection.c
184
xa_destroy(&conn->sessions);
fs/smb/server/connection.c
185
kvfree(conn->request_buf);
fs/smb/server/connection.c
186
kfree(conn->preauth_info);
fs/smb/server/connection.c
187
kfree(conn->mechToken);
fs/smb/server/connection.c
188
ksmbd_conn_put(conn);
fs/smb/server/connection.c
198
struct ksmbd_conn *conn;
fs/smb/server/connection.c
200
conn = kzalloc_obj(struct ksmbd_conn, KSMBD_DEFAULT_GFP);
fs/smb/server/connection.c
201
if (!conn)
fs/smb/server/connection.c
204
conn->need_neg = true;
fs/smb/server/connection.c
205
ksmbd_conn_set_new(conn);
fs/smb/server/connection.c
206
conn->local_nls = load_nls("utf8");
fs/smb/server/connection.c
207
if (!conn->local_nls)
fs/smb/server/connection.c
208
conn->local_nls = load_nls_default();
fs/smb/server/connection.c
210
conn->um = utf8_load(UNICODE_AGE(12, 1, 0));
fs/smb/server/connection.c
212
conn->um = ERR_PTR(-EOPNOTSUPP);
fs/smb/server/connection.c
213
if (IS_ERR(conn->um))
fs/smb/server/connection.c
214
conn->um = NULL;
fs/smb/server/connection.c
215
INIT_WORK(&conn->release_work, __ksmbd_conn_release_work);
fs/smb/server/connection.c
216
atomic_set(&conn->req_running, 0);
fs/smb/server/connection.c
217
atomic_set(&conn->r_count, 0);
fs/smb/server/connection.c
218
atomic_set(&conn->refcnt, 1);
fs/smb/server/connection.c
219
conn->total_credits = 1;
fs/smb/server/connection.c
220
conn->outstanding_credits = 0;
fs/smb/server/connection.c
222
init_waitqueue_head(&conn->req_running_q);
fs/smb/server/connection.c
223
init_waitqueue_head(&conn->r_count_q);
fs/smb/server/connection.c
224
INIT_LIST_HEAD(&conn->requests);
fs/smb/server/connection.c
225
INIT_LIST_HEAD(&conn->async_requests);
fs/smb/server/connection.c
226
spin_lock_init(&conn->request_lock);
fs/smb/server/connection.c
227
spin_lock_init(&conn->credits_lock);
fs/smb/server/connection.c
228
ida_init(&conn->async_ida);
fs/smb/server/connection.c
229
xa_init(&conn->sessions);
fs/smb/server/connection.c
231
spin_lock_init(&conn->llist_lock);
fs/smb/server/connection.c
232
INIT_LIST_HEAD(&conn->lock_list);
fs/smb/server/connection.c
234
init_rwsem(&conn->session_lock);
fs/smb/server/connection.c
236
return conn;
fs/smb/server/connection.c
259
struct ksmbd_conn *conn = work->conn;
fs/smb/server/connection.c
262
if (conn->ops->get_cmd_val(work) != SMB2_CANCEL_HE)
fs/smb/server/connection.c
263
requests_queue = &conn->requests;
fs/smb/server/connection.c
265
atomic_inc(&conn->req_running);
fs/smb/server/connection.c
267
spin_lock(&conn->request_lock);
fs/smb/server/connection.c
269
spin_unlock(&conn->request_lock);
fs/smb/server/connection.c
275
struct ksmbd_conn *conn = work->conn;
fs/smb/server/connection.c
277
atomic_dec(&conn->req_running);
fs/smb/server/connection.c
278
if (waitqueue_active(&conn->req_running_q))
fs/smb/server/connection.c
279
wake_up(&conn->req_running_q);
fs/smb/server/connection.c
285
spin_lock(&conn->request_lock);
fs/smb/server/connection.c
287
spin_unlock(&conn->request_lock);
fs/smb/server/connection.c
291
wake_up_all(&conn->req_running_q);
fs/smb/server/connection.c
294
void ksmbd_conn_lock(struct ksmbd_conn *conn)
fs/smb/server/connection.c
296
mutex_lock(&conn->srv_mutex);
fs/smb/server/connection.c
299
void ksmbd_conn_unlock(struct ksmbd_conn *conn)
fs/smb/server/connection.c
301
mutex_unlock(&conn->srv_mutex);
fs/smb/server/connection.c
306
struct ksmbd_conn *conn;
fs/smb/server/connection.c
310
hash_for_each(conn_list, bkt, conn, hlist) {
fs/smb/server/connection.c
311
if (conn->binding || xa_load(&conn->sessions, sess_id))
fs/smb/server/connection.c
312
WRITE_ONCE(conn->status, status);
fs/smb/server/connection.c
317
void ksmbd_conn_wait_idle(struct ksmbd_conn *conn)
fs/smb/server/connection.c
319
wait_event(conn->req_running_q, atomic_read(&conn->req_running) < 2);
fs/smb/server/connection.c
32
struct ksmbd_conn *conn;
fs/smb/server/connection.c
324
struct ksmbd_conn *conn;
fs/smb/server/connection.c
333
hash_for_each(conn_list, bkt, conn, hlist) {
fs/smb/server/connection.c
334
if (conn->binding || xa_load(&conn->sessions, sess_id)) {
fs/smb/server/connection.c
335
rcount = (conn == curr_conn) ? 2 : 1;
fs/smb/server/connection.c
336
if (atomic_read(&conn->req_running) >= rcount) {
fs/smb/server/connection.c
337
rc = wait_event_timeout(conn->req_running_q,
fs/smb/server/connection.c
338
atomic_read(&conn->req_running) < rcount,
fs/smb/server/connection.c
355
struct ksmbd_conn *conn = work->conn;
fs/smb/server/connection.c
369
ksmbd_conn_lock(conn);
fs/smb/server/connection.c
370
sent = conn->transport->ops->writev(conn->transport, work->iov,
fs/smb/server/connection.c
375
ksmbd_conn_unlock(conn);
fs/smb/server/connection.c
385
int ksmbd_conn_rdma_read(struct ksmbd_conn *conn,
fs/smb/server/connection.c
392
if (conn->transport->ops->rdma_read)
fs/smb/server/connection.c
393
ret = conn->transport->ops->rdma_read(conn->transport,
fs/smb/server/connection.c
399
int ksmbd_conn_rdma_write(struct ksmbd_conn *conn,
fs/smb/server/connection.c
406
if (conn->transport->ops->rdma_write)
fs/smb/server/connection.c
407
ret = conn->transport->ops->rdma_write(conn->transport,
fs/smb/server/connection.c
41
hash_for_each(conn_list, i, conn, hlist) {
fs/smb/server/connection.c
413
bool ksmbd_conn_alive(struct ksmbd_conn *conn)
fs/smb/server/connection.c
418
if (ksmbd_conn_exiting(conn))
fs/smb/server/connection.c
42
jiffies_to_timespec64(jiffies - conn->last_active, &t);
fs/smb/server/connection.c
424
if (atomic_read(&conn->stats.open_files_count) > 0)
fs/smb/server/connection.c
433
time_after(jiffies, conn->last_active + server_conf.deadtime)) {
fs/smb/server/connection.c
457
struct ksmbd_conn *conn = (struct ksmbd_conn *)p;
fs/smb/server/connection.c
458
struct ksmbd_transport *t = conn->transport;
fs/smb/server/connection.c
46
if (!conn->inet_addr)
fs/smb/server/connection.c
464
mutex_init(&conn->srv_mutex);
fs/smb/server/connection.c
468
conn->last_active = jiffies;
fs/smb/server/connection.c
47
seq_printf(m, "%-20pI6c", &conn->inet6_addr);
fs/smb/server/connection.c
470
while (ksmbd_conn_alive(conn)) {
fs/smb/server/connection.c
474
kvfree(conn->request_buf);
fs/smb/server/connection.c
475
conn->request_buf = NULL;
fs/smb/server/connection.c
478
if (atomic_read(&conn->req_running) + 1 > max_req) {
fs/smb/server/connection.c
479
wait_event_interruptible(conn->req_running_q,
fs/smb/server/connection.c
480
atomic_read(&conn->req_running) < max_req);
fs/smb/server/connection.c
491
if (ksmbd_conn_good(conn))
fs/smb/server/connection.c
493
SMB3_MAX_MSGSIZE + conn->vals->max_write_size;
fs/smb/server/connection.c
50
seq_printf(m, "%-20pI4", &conn->inet_addr);
fs/smb/server/connection.c
500
READ_ONCE(conn->status));
fs/smb/server/connection.c
516
conn->request_buf = kvmalloc(size, KSMBD_DEFAULT_GFP);
fs/smb/server/connection.c
517
if (!conn->request_buf)
fs/smb/server/connection.c
52
conn->dialect,
fs/smb/server/connection.c
520
memcpy(conn->request_buf, hdr_buf, sizeof(hdr_buf));
fs/smb/server/connection.c
526
size = t->ops->read(t, conn->request_buf + 4, pdu_size, 2);
fs/smb/server/connection.c
53
conn->total_credits,
fs/smb/server/connection.c
538
if (((struct smb2_hdr *)smb_get_msg(conn->request_buf))->ProtocolId ==
fs/smb/server/connection.c
54
atomic_read(&conn->stats.open_files_count),
fs/smb/server/connection.c
544
if (ksmbd_decompress_request(conn))
fs/smb/server/connection.c
546
pdu_size = get_rfc1002_len(conn->request_buf);
fs/smb/server/connection.c
549
if (!ksmbd_smb_request(conn))
fs/smb/server/connection.c
55
atomic_read(&conn->req_running),
fs/smb/server/connection.c
552
proto = *(__le32 *)smb_get_msg(conn->request_buf);
fs/smb/server/connection.c
566
if (default_conn_ops.process_fn(conn)) {
fs/smb/server/connection.c
572
ksmbd_conn_set_releasing(conn);
fs/smb/server/connection.c
574
ksmbd_debug(CONN, "Wait for all pending requests(%d)\n", atomic_read(&conn->r_count));
fs/smb/server/connection.c
575
wait_event(conn->r_count_q, atomic_read(&conn->r_count) == 0);
fs/smb/server/connection.c
578
utf8_unload(conn->um);
fs/smb/server/connection.c
579
unload_nls(conn->local_nls);
fs/smb/server/connection.c
581
default_conn_ops.terminate_fn(conn);
fs/smb/server/connection.c
593
void ksmbd_conn_r_count_inc(struct ksmbd_conn *conn)
fs/smb/server/connection.c
595
atomic_inc(&conn->r_count);
fs/smb/server/connection.c
598
void ksmbd_conn_r_count_dec(struct ksmbd_conn *conn)
fs/smb/server/connection.c
605
atomic_inc(&conn->refcnt);
fs/smb/server/connection.c
606
if (!atomic_dec_return(&conn->r_count) && waitqueue_active(&conn->r_count_q))
fs/smb/server/connection.c
607
wake_up(&conn->r_count_q);
fs/smb/server/connection.c
609
ksmbd_conn_put(conn);
fs/smb/server/connection.c
636
struct ksmbd_conn *conn, *target;
fs/smb/server/connection.c
650
hash_for_each(conn_list, bkt, conn, hlist) {
fs/smb/server/connection.c
652
if (conn->stop_called)
fs/smb/server/connection.c
654
atomic_inc(&conn->refcnt);
fs/smb/server/connection.c
655
conn->stop_called = true;
fs/smb/server/connection.c
664
if (READ_ONCE(conn->status) != KSMBD_SESS_RELEASING)
fs/smb/server/connection.c
665
ksmbd_conn_set_exiting(conn);
fs/smb/server/connection.c
666
target = conn;
fs/smb/server/connection.h
131
int (*process_fn)(struct ksmbd_conn *conn);
fs/smb/server/connection.h
132
int (*terminate_fn)(struct ksmbd_conn *conn);
fs/smb/server/connection.h
155
struct ksmbd_conn *conn;
fs/smb/server/connection.h
167
bool ksmbd_conn_alive(struct ksmbd_conn *conn);
fs/smb/server/connection.h
168
void ksmbd_conn_wait_idle(struct ksmbd_conn *conn);
fs/smb/server/connection.h
171
void ksmbd_conn_free(struct ksmbd_conn *conn);
fs/smb/server/connection.h
172
struct ksmbd_conn *ksmbd_conn_get(struct ksmbd_conn *conn);
fs/smb/server/connection.h
173
void ksmbd_conn_put(struct ksmbd_conn *conn);
fs/smb/server/connection.h
178
int ksmbd_conn_rdma_read(struct ksmbd_conn *conn,
fs/smb/server/connection.h
182
int ksmbd_conn_rdma_write(struct ksmbd_conn *conn,
fs/smb/server/connection.h
192
void ksmbd_conn_lock(struct ksmbd_conn *conn);
fs/smb/server/connection.h
193
void ksmbd_conn_unlock(struct ksmbd_conn *conn);
fs/smb/server/connection.h
194
void ksmbd_conn_r_count_inc(struct ksmbd_conn *conn);
fs/smb/server/connection.h
195
void ksmbd_conn_r_count_dec(struct ksmbd_conn *conn);
fs/smb/server/connection.h
203
static inline bool ksmbd_conn_good(struct ksmbd_conn *conn)
fs/smb/server/connection.h
205
return READ_ONCE(conn->status) == KSMBD_SESS_GOOD;
fs/smb/server/connection.h
208
static inline bool ksmbd_conn_need_negotiate(struct ksmbd_conn *conn)
fs/smb/server/connection.h
210
return READ_ONCE(conn->status) == KSMBD_SESS_NEED_NEGOTIATE;
fs/smb/server/connection.h
213
static inline bool ksmbd_conn_need_setup(struct ksmbd_conn *conn)
fs/smb/server/connection.h
215
return READ_ONCE(conn->status) == KSMBD_SESS_NEED_SETUP;
fs/smb/server/connection.h
218
static inline bool ksmbd_conn_need_reconnect(struct ksmbd_conn *conn)
fs/smb/server/connection.h
220
return READ_ONCE(conn->status) == KSMBD_SESS_NEED_RECONNECT;
fs/smb/server/connection.h
223
static inline bool ksmbd_conn_exiting(struct ksmbd_conn *conn)
fs/smb/server/connection.h
225
return READ_ONCE(conn->status) == KSMBD_SESS_EXITING;
fs/smb/server/connection.h
228
static inline bool ksmbd_conn_releasing(struct ksmbd_conn *conn)
fs/smb/server/connection.h
230
return READ_ONCE(conn->status) == KSMBD_SESS_RELEASING;
fs/smb/server/connection.h
233
static inline void ksmbd_conn_set_new(struct ksmbd_conn *conn)
fs/smb/server/connection.h
235
WRITE_ONCE(conn->status, KSMBD_SESS_NEW);
fs/smb/server/connection.h
238
static inline void ksmbd_conn_set_good(struct ksmbd_conn *conn)
fs/smb/server/connection.h
240
WRITE_ONCE(conn->status, KSMBD_SESS_GOOD);
fs/smb/server/connection.h
243
static inline void ksmbd_conn_set_need_negotiate(struct ksmbd_conn *conn)
fs/smb/server/connection.h
245
WRITE_ONCE(conn->status, KSMBD_SESS_NEED_NEGOTIATE);
fs/smb/server/connection.h
248
static inline void ksmbd_conn_set_need_setup(struct ksmbd_conn *conn)
fs/smb/server/connection.h
250
WRITE_ONCE(conn->status, KSMBD_SESS_NEED_SETUP);
fs/smb/server/connection.h
253
static inline void ksmbd_conn_set_need_reconnect(struct ksmbd_conn *conn)
fs/smb/server/connection.h
255
WRITE_ONCE(conn->status, KSMBD_SESS_NEED_RECONNECT);
fs/smb/server/connection.h
258
static inline void ksmbd_conn_set_exiting(struct ksmbd_conn *conn)
fs/smb/server/connection.h
260
WRITE_ONCE(conn->status, KSMBD_SESS_EXITING);
fs/smb/server/connection.h
263
static inline void ksmbd_conn_set_releasing(struct ksmbd_conn *conn)
fs/smb/server/connection.h
265
WRITE_ONCE(conn->status, KSMBD_SESS_RELEASING);
fs/smb/server/ksmbd_work.c
87
ksmbd_release_id(&work->conn->async_ida, work->async_id);
fs/smb/server/ksmbd_work.h
32
struct ksmbd_conn *conn;
fs/smb/server/mgmt/share_config.c
130
struct unicode_map *um = work->conn->um;
fs/smb/server/mgmt/tree_connect.c
27
struct ksmbd_conn *conn = work->conn;
fs/smb/server/mgmt/tree_connect.c
47
peer_addr = KSMBD_TCP_PEER_SOCKADDR(conn);
fs/smb/server/mgmt/user_session.c
102
&chan->conn->inet6_addr);
fs/smb/server/mgmt/user_session.c
105
&chan->conn->inet_addr);
fs/smb/server/mgmt/user_session.c
116
chan->conn->vals->req_capabilities);
fs/smb/server/mgmt/user_session.c
123
le16_to_cpu(chan->conn->signing_algorithm));
fs/smb/server/mgmt/user_session.c
129
le16_to_cpu(chan->conn->cipher_type));
fs/smb/server/mgmt/user_session.c
214
down_read(&chan->conn->session_lock);
fs/smb/server/mgmt/user_session.c
218
if (!chan->conn->inet_addr)
fs/smb/server/mgmt/user_session.c
219
seq_printf(m, " %-40pI6c", &chan->conn->inet6_addr);
fs/smb/server/mgmt/user_session.c
222
seq_printf(m, " %-40pI4", &chan->conn->inet_addr);
fs/smb/server/mgmt/user_session.c
229
up_read(&chan->conn->session_lock);
fs/smb/server/mgmt/user_session.c
411
static void ksmbd_expire_session(struct ksmbd_conn *conn)
fs/smb/server/mgmt/user_session.c
417
down_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
418
xa_for_each(&conn->sessions, id, sess) {
fs/smb/server/mgmt/user_session.c
423
xa_erase(&conn->sessions, sess->id);
fs/smb/server/mgmt/user_session.c
429
up_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
433
int ksmbd_session_register(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
436
sess->dialect = conn->dialect;
fs/smb/server/mgmt/user_session.c
437
memcpy(sess->ClientGUID, conn->ClientGUID, SMB2_CLIENT_GUID_SIZE);
fs/smb/server/mgmt/user_session.c
438
ksmbd_expire_session(conn);
fs/smb/server/mgmt/user_session.c
439
return xa_err(xa_store(&conn->sessions, sess->id, sess, KSMBD_DEFAULT_GFP));
fs/smb/server/mgmt/user_session.c
442
static int ksmbd_chann_del(struct ksmbd_conn *conn, struct ksmbd_session *sess)
fs/smb/server/mgmt/user_session.c
447
chann = xa_erase(&sess->ksmbd_chann_list, (long)conn);
fs/smb/server/mgmt/user_session.c
456
void ksmbd_sessions_deregister(struct ksmbd_conn *conn)
fs/smb/server/mgmt/user_session.c
465
if (!ksmbd_chann_del(conn, sess) &&
fs/smb/server/mgmt/user_session.c
468
down_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
469
xa_erase(&conn->sessions, sess->id);
fs/smb/server/mgmt/user_session.c
470
up_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
476
down_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
477
xa_for_each(&conn->sessions, id, sess) {
fs/smb/server/mgmt/user_session.c
482
if (chann->conn != conn)
fs/smb/server/mgmt/user_session.c
483
ksmbd_conn_set_exiting(chann->conn);
fs/smb/server/mgmt/user_session.c
486
ksmbd_chann_del(conn, sess);
fs/smb/server/mgmt/user_session.c
488
xa_erase(&conn->sessions, sess->id);
fs/smb/server/mgmt/user_session.c
494
up_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
498
bool is_ksmbd_session_in_connection(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
503
down_read(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
504
sess = xa_load(&conn->sessions, id);
fs/smb/server/mgmt/user_session.c
506
up_read(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
509
up_read(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
514
struct ksmbd_session *ksmbd_session_lookup(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
519
down_read(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
520
sess = xa_load(&conn->sessions, id);
fs/smb/server/mgmt/user_session.c
525
up_read(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
542
struct ksmbd_session *ksmbd_session_lookup_all(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
547
sess = ksmbd_session_lookup(conn, id);
fs/smb/server/mgmt/user_session.c
548
if (!sess && conn->binding) {
fs/smb/server/mgmt/user_session.c
550
if (sess && !xa_load(&sess->ksmbd_chann_list, (long)conn)) {
fs/smb/server/mgmt/user_session.c
578
struct preauth_session *ksmbd_preauth_session_alloc(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
588
memcpy(sess->Preauth_HashValue, conn->preauth_info->Preauth_HashValue,
fs/smb/server/mgmt/user_session.c
590
list_add(&sess->preauth_entry, &conn->preauth_sess_table);
fs/smb/server/mgmt/user_session.c
595
void destroy_previous_session(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
603
down_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
616
err = ksmbd_conn_wait_idle_sess_id(conn, id);
fs/smb/server/mgmt/user_session.c
627
up_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
637
struct preauth_session *ksmbd_preauth_session_lookup(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
642
list_for_each_entry(sess, &conn->preauth_sess_table, preauth_entry) {
fs/smb/server/mgmt/user_session.c
97
if (chan->conn->inet_addr)
fs/smb/server/mgmt/user_session.c
99
&chan->conn->inet_addr);
fs/smb/server/mgmt/user_session.h
101
struct ksmbd_session *ksmbd_session_lookup_all(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
103
void destroy_previous_session(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
105
struct preauth_session *ksmbd_preauth_session_alloc(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
107
struct preauth_session *ksmbd_preauth_session_lookup(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
24
struct ksmbd_conn *conn;
fs/smb/server/mgmt/user_session.h
93
struct ksmbd_session *ksmbd_session_lookup(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
95
bool is_ksmbd_session_in_connection(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
97
int ksmbd_session_register(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
99
void ksmbd_sessions_deregister(struct ksmbd_conn *conn);
fs/smb/server/oplock.c
1004
struct ksmbd_conn *conn;
fs/smb/server/oplock.c
1010
conn = READ_ONCE(opinfo->conn);
fs/smb/server/oplock.c
1011
if (lease->version == 2 && lease->l_lb && lease->l_lb->conn &&
fs/smb/server/oplock.c
1012
!ksmbd_conn_releasing(lease->l_lb->conn))
fs/smb/server/oplock.c
1013
conn = lease->l_lb->conn;
fs/smb/server/oplock.c
1014
if (!conn)
fs/smb/server/oplock.c
1039
work->conn = ksmbd_conn_get(conn);
fs/smb/server/oplock.c
1042
ksmbd_conn_r_count_inc(conn);
fs/smb/server/oplock.c
1239
void destroy_lease_table(struct ksmbd_conn *conn)
fs/smb/server/oplock.c
1251
if (conn && memcmp(lb->client_guid, conn->ClientGUID,
fs/smb/server/oplock.c
1262
int find_same_lease_key(struct ksmbd_conn *conn, struct ksmbd_inode *ci,
fs/smb/server/oplock.c
1279
if (!memcmp(lb->client_guid, conn->ClientGUID,
fs/smb/server/oplock.c
1305
static void add_lease_global_list(struct lease *lease, struct ksmbd_conn *conn,
fs/smb/server/oplock.c
1312
if (!memcmp(lb->client_guid, conn->ClientGUID,
fs/smb/server/oplock.c
1359
if (opinfo->conn == NULL || !opinfo->is_lease)
fs/smb/server/oplock.c
1364
!compare_guid_key(opinfo, fp->conn->ClientGUID,
fs/smb/server/oplock.c
1369
if (ksmbd_conn_releasing(opinfo->conn)) {
fs/smb/server/oplock.c
1406
if (opinfo->conn == NULL || !opinfo->is_lease)
fs/smb/server/oplock.c
1413
if (ksmbd_conn_releasing(opinfo->conn)) {
fs/smb/server/oplock.c
1506
m_opinfo = same_client_has_lease(ci, work->conn->ClientGUID,
fs/smb/server/oplock.c
153
memcpy(lb->client_guid, opinfo->conn->ClientGUID,
fs/smb/server/oplock.c
155
lb->conn = ksmbd_conn_get(opinfo->conn);
fs/smb/server/oplock.c
1608
add_lease_global_list(opinfo->o_lease, opinfo->conn, new_lb);
fs/smb/server/oplock.c
166
ksmbd_conn_put(lb->conn);
fs/smb/server/oplock.c
1666
struct ksmbd_conn *conn = work->conn;
fs/smb/server/oplock.c
1679
if (brk_op->conn == NULL)
fs/smb/server/oplock.c
1685
if (ksmbd_conn_releasing(brk_op->conn)) {
fs/smb/server/oplock.c
1704
!memcmp(conn->ClientGUID, brk_op->conn->ClientGUID,
fs/smb/server/oplock.c
2152
struct oplock_info *lookup_lease_in_table(struct ksmbd_conn *conn,
fs/smb/server/oplock.c
2161
if (!memcmp(lt->client_guid, conn->ClientGUID,
fs/smb/server/oplock.c
2200
int smb2_check_durable_oplock(struct ksmbd_conn *conn,
fs/smb/server/oplock.c
2240
if (memcmp(conn->ClientGUID, fp->client_guid,
fs/smb/server/oplock.c
237
ksmbd_conn_put(opinfo->conn);
fs/smb/server/oplock.c
303
if (opinfo->conn == NULL ||
fs/smb/server/oplock.c
307
if (ksmbd_conn_releasing(opinfo->conn)) {
fs/smb/server/oplock.c
318
!READ_ONCE(opinfo->o_fp->conn) ||
fs/smb/server/oplock.c
632
struct ksmbd_conn *conn;
fs/smb/server/oplock.c
634
conn = READ_ONCE(opinfo->conn);
fs/smb/server/oplock.c
635
if (!conn)
fs/smb/server/oplock.c
637
guid2 = conn->ClientGUID;
fs/smb/server/oplock.c
673
if (!opinfo->is_lease || !opinfo->conn)
fs/smb/server/oplock.c
821
struct ksmbd_conn *conn = work->conn;
fs/smb/server/oplock.c
877
ksmbd_conn_r_count_dec(conn);
fs/smb/server/oplock.c
878
ksmbd_conn_put(conn);
fs/smb/server/oplock.c
89
opinfo->conn = ksmbd_conn_get(work->conn);
fs/smb/server/oplock.c
890
struct ksmbd_conn *conn;
fs/smb/server/oplock.c
895
conn = READ_ONCE(opinfo->conn);
fs/smb/server/oplock.c
896
if (!conn)
fs/smb/server/oplock.c
914
work->conn = ksmbd_conn_get(conn);
fs/smb/server/oplock.c
917
ksmbd_conn_r_count_inc(conn);
fs/smb/server/oplock.c
941
struct ksmbd_conn *conn = work->conn;
fs/smb/server/oplock.c
988
ksmbd_conn_r_count_dec(conn);
fs/smb/server/oplock.c
989
ksmbd_conn_put(conn);
fs/smb/server/oplock.h
129
struct oplock_info *lookup_lease_in_table(struct ksmbd_conn *conn,
fs/smb/server/oplock.h
131
int find_same_lease_key(struct ksmbd_conn *conn, struct ksmbd_inode *ci,
fs/smb/server/oplock.h
133
void destroy_lease_table(struct ksmbd_conn *conn);
fs/smb/server/oplock.h
137
int smb2_check_durable_oplock(struct ksmbd_conn *conn,
fs/smb/server/oplock.h
37
struct ksmbd_conn *conn;
fs/smb/server/oplock.h
63
struct ksmbd_conn *conn;
fs/smb/server/server.c
110
static int __process_request(struct ksmbd_work *work, struct ksmbd_conn *conn,
fs/smb/server/server.c
122
conn->ops->set_rsp_status(work, STATUS_INVALID_PARAMETER);
fs/smb/server/server.c
126
command = conn->ops->get_cmd_val(work);
fs/smb/server/server.c
130
if (command >= conn->max_cmds) {
fs/smb/server/server.c
131
conn->ops->set_rsp_status(work, STATUS_INVALID_PARAMETER);
fs/smb/server/server.c
135
cmds = &conn->cmds[command];
fs/smb/server/server.c
138
conn->ops->set_rsp_status(work, STATUS_NOT_IMPLEMENTED);
fs/smb/server/server.c
142
signed_req = conn->ops->is_sign_req && conn->ops->is_sign_req(work, command);
fs/smb/server/server.c
145
conn->ops->set_rsp_status(work, STATUS_ACCESS_DENIED);
fs/smb/server/server.c
150
ret = conn->ops->check_sign_req(work);
fs/smb/server/server.c
152
conn->ops->set_rsp_status(work, STATUS_ACCESS_DENIED);
fs/smb/server/server.c
158
if (conn->ops->inc_reqs)
fs/smb/server/server.c
159
conn->ops->inc_reqs(command);
fs/smb/server/server.c
176
struct ksmbd_conn *conn)
fs/smb/server/server.c
182
if (conn->ops->is_transform_hdr &&
fs/smb/server/server.c
183
conn->ops->is_transform_hdr(work->request_buf)) {
fs/smb/server/server.c
184
rc = conn->ops->decrypt_req(work);
fs/smb/server/server.c
190
if (conn->ops->allocate_rsp_buf(work))
fs/smb/server/server.c
193
rc = conn->ops->init_rsp_hdr(work);
fs/smb/server/server.c
196
conn->ops->set_rsp_status(work, STATUS_INVALID_HANDLE);
fs/smb/server/server.c
201
if (conn->ops->check_user_session) {
fs/smb/server/server.c
202
rc = conn->ops->check_user_session(work);
fs/smb/server/server.c
205
conn->ops->set_rsp_status(work,
fs/smb/server/server.c
208
conn->ops->set_rsp_status(work,
fs/smb/server/server.c
210
if (conn->ops->is_sign_req(work, conn->ops->get_cmd_val(work))) {
fs/smb/server/server.c
218
rc = conn->ops->get_ksmbd_tcon(work);
fs/smb/server/server.c
221
conn->ops->set_rsp_status(work,
fs/smb/server/server.c
224
conn->ops->set_rsp_status(work,
fs/smb/server/server.c
231
rc = __process_request(work, conn, &command);
fs/smb/server/server.c
239
if (conn->ops->set_rsp_credits) {
fs/smb/server/server.c
240
spin_lock(&conn->credits_lock);
fs/smb/server/server.c
241
rc = conn->ops->set_rsp_credits(work);
fs/smb/server/server.c
242
spin_unlock(&conn->credits_lock);
fs/smb/server/server.c
244
conn->ops->set_rsp_status(work,
fs/smb/server/server.c
254
conn->ops->is_sign_req(work, command))) {
fs/smb/server/server.c
257
conn->dialect < SMB30_PROT_ID)
fs/smb/server/server.c
260
conn->ops->set_sign_rsp(work);
fs/smb/server/server.c
273
spin_lock(&conn->credits_lock);
fs/smb/server/server.c
274
conn->outstanding_credits -= work->credit_charge;
fs/smb/server/server.c
276
spin_unlock(&conn->credits_lock);
fs/smb/server/server.c
292
conn->ops->encrypt_resp) {
fs/smb/server/server.c
293
rc = conn->ops->encrypt_resp(work);
fs/smb/server/server.c
295
conn->ops->set_rsp_status(work, STATUS_DATA_ERROR);
fs/smb/server/server.c
312
struct ksmbd_conn *conn = work->conn;
fs/smb/server/server.c
314
atomic64_inc(&conn->stats.request_served);
fs/smb/server/server.c
316
__handle_ksmbd_work(work, conn);
fs/smb/server/server.c
320
ksmbd_conn_r_count_dec(conn);
fs/smb/server/server.c
330
static int queue_ksmbd_work(struct ksmbd_conn *conn)
fs/smb/server/server.c
335
err = ksmbd_init_smb_server(conn);
fs/smb/server/server.c
345
work->conn = conn;
fs/smb/server/server.c
346
work->request_buf = conn->request_buf;
fs/smb/server/server.c
347
conn->request_buf = NULL;
fs/smb/server/server.c
350
ksmbd_conn_r_count_inc(conn);
fs/smb/server/server.c
352
conn->last_active = jiffies;
fs/smb/server/server.c
358
static int ksmbd_server_process_request(struct ksmbd_conn *conn)
fs/smb/server/server.c
360
return queue_ksmbd_work(conn);
fs/smb/server/server.c
363
static int ksmbd_server_terminate_conn(struct ksmbd_conn *conn)
fs/smb/server/server.c
365
ksmbd_sessions_deregister(conn);
fs/smb/server/server.c
366
destroy_lease_table(conn);
fs/smb/server/server.c
98
if (ksmbd_conn_exiting(work->conn) ||
fs/smb/server/server.c
99
ksmbd_conn_need_reconnect(work->conn)) {
fs/smb/server/smb2misc.c
307
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2misc.c
349
} else if (credit_charge > conn->vals->max_credits) {
fs/smb/server/smb2misc.c
354
spin_lock(&conn->credits_lock);
fs/smb/server/smb2misc.c
355
if (credit_charge > conn->total_credits) {
fs/smb/server/smb2misc.c
357
credit_charge, conn->total_credits);
fs/smb/server/smb2misc.c
361
if ((u64)conn->outstanding_credits + credit_charge > conn->total_credits) {
fs/smb/server/smb2misc.c
363
credit_charge, conn->outstanding_credits);
fs/smb/server/smb2misc.c
366
conn->outstanding_credits += credit_charge;
fs/smb/server/smb2misc.c
370
spin_unlock(&conn->credits_lock);
fs/smb/server/smb2misc.c
475
if ((work->conn->vals->req_capabilities & SMB2_GLOBAL_CAP_LARGE_MTU) &&
fs/smb/server/smb2ops.c
202
void init_smb2_1_server(struct ksmbd_conn *conn)
fs/smb/server/smb2ops.c
204
conn->vals = &smb21_server_values;
fs/smb/server/smb2ops.c
205
conn->ops = &smb2_0_server_ops;
fs/smb/server/smb2ops.c
206
conn->cmds = smb2_0_server_cmds;
fs/smb/server/smb2ops.c
207
conn->max_cmds = ARRAY_SIZE(smb2_0_server_cmds);
fs/smb/server/smb2ops.c
208
conn->signing_algorithm = SIGNING_ALG_HMAC_SHA256_LE;
fs/smb/server/smb2ops.c
211
conn->vals->req_capabilities |= SMB2_GLOBAL_CAP_LEASING;
fs/smb/server/smb2ops.c
219
void init_smb3_0_server(struct ksmbd_conn *conn)
fs/smb/server/smb2ops.c
221
conn->vals = &smb30_server_values;
fs/smb/server/smb2ops.c
222
conn->ops = &smb3_0_server_ops;
fs/smb/server/smb2ops.c
223
conn->cmds = smb2_0_server_cmds;
fs/smb/server/smb2ops.c
224
conn->max_cmds = ARRAY_SIZE(smb2_0_server_cmds);
fs/smb/server/smb2ops.c
225
conn->signing_algorithm = SIGNING_ALG_AES_CMAC_LE;
fs/smb/server/smb2ops.c
228
conn->vals->req_capabilities |= SMB2_GLOBAL_CAP_LEASING |
fs/smb/server/smb2ops.c
232
conn->cli_cap & SMB2_GLOBAL_CAP_ENCRYPTION)
fs/smb/server/smb2ops.c
233
conn->vals->req_capabilities |= SMB2_GLOBAL_CAP_ENCRYPTION;
fs/smb/server/smb2ops.c
237
conn->cli_cap & SMB2_GLOBAL_CAP_ENCRYPTION))
fs/smb/server/smb2ops.c
238
conn->vals->req_capabilities |= SMB2_GLOBAL_CAP_ENCRYPTION;
fs/smb/server/smb2ops.c
241
conn->vals->req_capabilities |= SMB2_GLOBAL_CAP_MULTI_CHANNEL;
fs/smb/server/smb2ops.c
249
void init_smb3_02_server(struct ksmbd_conn *conn)
fs/smb/server/smb2ops.c
251
conn->vals = &smb302_server_values;
fs/smb/server/smb2ops.c
252
conn->ops = &smb3_0_server_ops;
fs/smb/server/smb2ops.c
253
conn->cmds = smb2_0_server_cmds;
fs/smb/server/smb2ops.c
254
conn->max_cmds = ARRAY_SIZE(smb2_0_server_cmds);
fs/smb/server/smb2ops.c
255
conn->signing_algorithm = SIGNING_ALG_AES_CMAC_LE;
fs/smb/server/smb2ops.c
258
conn->vals->req_capabilities |= SMB2_GLOBAL_CAP_LEASING |
fs/smb/server/smb2ops.c
263
conn->cli_cap & SMB2_GLOBAL_CAP_ENCRYPTION))
fs/smb/server/smb2ops.c
264
conn->vals->req_capabilities |= SMB2_GLOBAL_CAP_ENCRYPTION;
fs/smb/server/smb2ops.c
267
conn->vals->req_capabilities |= SMB2_GLOBAL_CAP_MULTI_CHANNEL;
fs/smb/server/smb2ops.c
270
conn->vals->req_capabilities |= SMB2_GLOBAL_CAP_PERSISTENT_HANDLES;
fs/smb/server/smb2ops.c
278
int init_smb3_11_server(struct ksmbd_conn *conn)
fs/smb/server/smb2ops.c
280
conn->vals = &smb311_server_values;
fs/smb/server/smb2ops.c
281
conn->ops = &smb3_11_server_ops;
fs/smb/server/smb2ops.c
282
conn->cmds = smb2_0_server_cmds;
fs/smb/server/smb2ops.c
283
conn->max_cmds = ARRAY_SIZE(smb2_0_server_cmds);
fs/smb/server/smb2ops.c
284
conn->signing_algorithm = SIGNING_ALG_AES_CMAC_LE;
fs/smb/server/smb2ops.c
287
conn->vals->req_capabilities |= SMB2_GLOBAL_CAP_LEASING |
fs/smb/server/smb2ops.c
291
conn->vals->req_capabilities |= SMB2_GLOBAL_CAP_MULTI_CHANNEL;
fs/smb/server/smb2ops.c
294
conn->vals->req_capabilities |= SMB2_GLOBAL_CAP_PERSISTENT_HANDLES;
fs/smb/server/smb2ops.c
296
INIT_LIST_HEAD(&conn->preauth_sess_table);
fs/smb/server/smb2pdu.c
1006
conn->preauth_info->Preauth_HashId);
fs/smb/server/smb2pdu.c
1009
if (conn->cipher_type) {
fs/smb/server/smb2pdu.c
1016
conn->cipher_type);
fs/smb/server/smb2pdu.c
1021
if (conn->compress_algorithm != SMB3_COMPRESS_NONE) {
fs/smb/server/smb2pdu.c
1027
conn->compress_algorithm,
fs/smb/server/smb2pdu.c
1028
conn->compress_chained,
fs/smb/server/smb2pdu.c
1029
conn->compress_pattern);
fs/smb/server/smb2pdu.c
1032
(conn->compress_pattern ? 12 : 10);
fs/smb/server/smb2pdu.c
1035
if (conn->posix_ext_supported) {
fs/smb/server/smb2pdu.c
104
struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
1045
if (conn->signing_negotiated) {
fs/smb/server/smb2pdu.c
1051
conn->signing_algorithm);
fs/smb/server/smb2pdu.c
1060
static __le32 decode_preauth_ctxt(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
1075
conn->preauth_info->Preauth_HashId = SMB2_PREAUTH_INTEGRITY_SHA512;
fs/smb/server/smb2pdu.c
1079
static void decode_encrypt_ctxt(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
1091
conn->cipher_type = 0;
fs/smb/server/smb2pdu.c
1112
conn->cipher_type = pneg_ctxt->Ciphers[i];
fs/smb/server/smb2pdu.c
1124
bool smb3_encryption_negotiated(struct ksmbd_conn *conn)
fs/smb/server/smb2pdu.c
1126
if (!conn->ops->generate_encryptionkey)
fs/smb/server/smb2pdu.c
113
if (xa_load(&sess->ksmbd_chann_list, (long)conn))
fs/smb/server/smb2pdu.c
1133
return (conn->vals->req_capabilities & SMB2_GLOBAL_CAP_ENCRYPTION) ||
fs/smb/server/smb2pdu.c
1134
conn->cipher_type;
fs/smb/server/smb2pdu.c
1137
static __le32 decode_compress_ctxt(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
1149
conn->compress_algorithm = SMB3_COMPRESS_NONE;
fs/smb/server/smb2pdu.c
1150
conn->compress_chained = false;
fs/smb/server/smb2pdu.c
1151
conn->compress_pattern = false;
fs/smb/server/smb2pdu.c
1182
conn->compress_algorithm = alg;
fs/smb/server/smb2pdu.c
1183
conn->compress_chained =
fs/smb/server/smb2pdu.c
1189
conn->compress_pattern = true;
fs/smb/server/smb2pdu.c
1193
if (conn->compress_algorithm == SMB3_COMPRESS_NONE ||
fs/smb/server/smb2pdu.c
1194
!conn->compress_chained)
fs/smb/server/smb2pdu.c
1195
conn->compress_pattern = false;
fs/smb/server/smb2pdu.c
1200
static void decode_sign_cap_ctxt(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
1212
conn->signing_negotiated = false;
fs/smb/server/smb2pdu.c
1227
conn->signing_negotiated = true;
fs/smb/server/smb2pdu.c
1228
conn->signing_algorithm =
fs/smb/server/smb2pdu.c
1235
static __le32 deassemble_neg_contexts(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
1271
if (conn->preauth_info->Preauth_HashId)
fs/smb/server/smb2pdu.c
1274
status = decode_preauth_ctxt(conn,
fs/smb/server/smb2pdu.c
1282
if (conn->cipher_type)
fs/smb/server/smb2pdu.c
1285
decode_encrypt_ctxt(conn,
fs/smb/server/smb2pdu.c
129
chann->conn = conn;
fs/smb/server/smb2pdu.c
1296
status = decode_compress_ctxt(conn,
fs/smb/server/smb2pdu.c
1307
conn->posix_ext_supported = true;
fs/smb/server/smb2pdu.c
131
old = xa_store(&sess->ksmbd_chann_list, (long)conn, chann,
fs/smb/server/smb2pdu.c
1312
decode_sign_cap_ctxt(conn,
fs/smb/server/smb2pdu.c
1332
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
1340
conn->need_neg = false;
fs/smb/server/smb2pdu.c
1341
if (ksmbd_conn_good(conn)) {
fs/smb/server/smb2pdu.c
1347
ksmbd_conn_lock(conn);
fs/smb/server/smb2pdu.c
1363
if (conn->dialect == SMB311_PROT_ID) {
fs/smb/server/smb2pdu.c
1393
conn->cli_cap = le32_to_cpu(req->Capabilities);
fs/smb/server/smb2pdu.c
1394
switch (conn->dialect) {
fs/smb/server/smb2pdu.c
1396
conn->preauth_info =
fs/smb/server/smb2pdu.c
1399
if (!conn->preauth_info) {
fs/smb/server/smb2pdu.c
1405
status = deassemble_neg_contexts(conn, req,
fs/smb/server/smb2pdu.c
1412
kfree(conn->preauth_info);
fs/smb/server/smb2pdu.c
1413
conn->preauth_info = NULL;
fs/smb/server/smb2pdu.c
1417
rc = init_smb3_11_server(conn);
fs/smb/server/smb2pdu.c
1420
kfree(conn->preauth_info);
fs/smb/server/smb2pdu.c
1421
conn->preauth_info = NULL;
fs/smb/server/smb2pdu.c
1425
ksmbd_gen_preauth_integrity_hash(conn,
fs/smb/server/smb2pdu.c
1427
conn->preauth_info->Preauth_HashValue);
fs/smb/server/smb2pdu.c
1430
neg_ctxt_len = assemble_neg_contexts(conn, rsp);
fs/smb/server/smb2pdu.c
1433
init_smb3_02_server(conn);
fs/smb/server/smb2pdu.c
1436
init_smb3_0_server(conn);
fs/smb/server/smb2pdu.c
1439
init_smb2_1_server(conn);
fs/smb/server/smb2pdu.c
1445
conn->dialect);
fs/smb/server/smb2pdu.c
1450
rsp->Capabilities = cpu_to_le32(conn->vals->req_capabilities);
fs/smb/server/smb2pdu.c
1453
conn->connection_type = conn->dialect;
fs/smb/server/smb2pdu.c
1455
rsp->MaxTransactSize = cpu_to_le32(conn->vals->max_trans_size);
fs/smb/server/smb2pdu.c
1456
rsp->MaxReadSize = cpu_to_le32(conn->vals->max_read_size);
fs/smb/server/smb2pdu.c
1457
rsp->MaxWriteSize = cpu_to_le32(conn->vals->max_write_size);
fs/smb/server/smb2pdu.c
1459
memcpy(conn->ClientGUID, req->ClientGUID,
fs/smb/server/smb2pdu.c
1461
conn->cli_sec_mode = le16_to_cpu(req->SecurityMode);
fs/smb/server/smb2pdu.c
1464
rsp->DialectRevision = cpu_to_le16(conn->dialect);
fs/smb/server/smb2pdu.c
1482
conn->use_spnego = true;
fs/smb/server/smb2pdu.c
1487
conn->sign = true;
fs/smb/server/smb2pdu.c
1491
conn->sign = true;
fs/smb/server/smb2pdu.c
1494
conn->srv_sec_mode = le16_to_cpu(rsp->SecurityMode);
fs/smb/server/smb2pdu.c
1495
ksmbd_conn_set_need_setup(conn);
fs/smb/server/smb2pdu.c
1498
ksmbd_conn_unlock(conn);
fs/smb/server/smb2pdu.c
1512
struct ksmbd_conn *conn)
fs/smb/server/smb2pdu.c
1517
if (!conn->preauth_info)
fs/smb/server/smb2pdu.c
1520
sess->Preauth_HashValue = kmemdup(conn->preauth_info->Preauth_HashValue,
fs/smb/server/smb2pdu.c
1530
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
1534
if (conn->dialect != SMB311_PROT_ID)
fs/smb/server/smb2pdu.c
1537
if (conn->binding) {
fs/smb/server/smb2pdu.c
1540
preauth_sess = ksmbd_preauth_session_lookup(conn, sess->id);
fs/smb/server/smb2pdu.c
1542
preauth_sess = ksmbd_preauth_session_alloc(conn, sess->id);
fs/smb/server/smb2pdu.c
1550
if (alloc_preauth_hash(sess, conn))
fs/smb/server/smb2pdu.c
1555
ksmbd_gen_preauth_integrity_hash(conn, work->request_buf, preauth_hash);
fs/smb/server/smb2pdu.c
1559
static int decode_negotiation_token(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
1563
if (!conn->use_spnego)
fs/smb/server/smb2pdu.c
1566
if (ksmbd_decode_negTokenInit((char *)negblob, sz, conn)) {
fs/smb/server/smb2pdu.c
1567
if (ksmbd_decode_negTokenTarg((char *)negblob, sz, conn)) {
fs/smb/server/smb2pdu.c
1568
conn->auth_mechs |= KSMBD_AUTH_NTLMSSP;
fs/smb/server/smb2pdu.c
1569
conn->preferred_auth_mech = KSMBD_AUTH_NTLMSSP;
fs/smb/server/smb2pdu.c
1570
conn->use_spnego = false;
fs/smb/server/smb2pdu.c
1587
rc = ksmbd_decode_ntlmssp_neg_blob(negblob, negblob_len, work->conn);
fs/smb/server/smb2pdu.c
1595
if (!work->conn->use_spnego) {
fs/smb/server/smb2pdu.c
1596
sz = ksmbd_build_ntlmssp_challenge_blob(chgblob, work->conn);
fs/smb/server/smb2pdu.c
1612
sz = ksmbd_build_ntlmssp_challenge_blob(chgblob, work->conn);
fs/smb/server/smb2pdu.c
1634
static struct authenticate_message *user_authblob(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
1639
if (conn->use_spnego && conn->mechToken)
fs/smb/server/smb2pdu.c
1640
return (struct authenticate_message *)conn->mechToken;
fs/smb/server/smb2pdu.c
1647
static struct ksmbd_user *session_user(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
1655
if (conn->use_spnego && conn->mechToken)
fs/smb/server/smb2pdu.c
1656
secbuf_len = conn->mechTokenLen;
fs/smb/server/smb2pdu.c
1663
authblob = user_authblob(conn, req);
fs/smb/server/smb2pdu.c
1673
conn->local_nls);
fs/smb/server/smb2pdu.c
1689
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
1693
char *auth_key = conn->binding ? channel_key : sess->sess_key;
fs/smb/server/smb2pdu.c
1695
bool binding = conn->binding;
fs/smb/server/smb2pdu.c
1699
if (conn->use_spnego) {
fs/smb/server/smb2pdu.c
1714
user = session_user(conn, req);
fs/smb/server/smb2pdu.c
1725
if (conn->binding == false && ksmbd_anonymous_user(user)) {
fs/smb/server/smb2pdu.c
1739
if (conn->binding == false && user_guest(sess->user)) {
fs/smb/server/smb2pdu.c
1744
authblob = user_authblob(conn, req);
fs/smb/server/smb2pdu.c
1745
if (conn->use_spnego && conn->mechToken)
fs/smb/server/smb2pdu.c
1746
sz = conn->mechTokenLen;
fs/smb/server/smb2pdu.c
1749
rc = ksmbd_decode_ntlmssp_auth_blob(authblob, sz, conn, sess,
fs/smb/server/smb2pdu.c
1761
destroy_previous_session(conn, sess->user, prev_id);
fs/smb/server/smb2pdu.c
1769
if (conn->binding)
fs/smb/server/smb2pdu.c
1775
(conn->sign || server_conf.enforced_signing)) ||
fs/smb/server/smb2pdu.c
1779
if (smb3_encryption_negotiated(conn) &&
fs/smb/server/smb2pdu.c
1781
conn->ops->generate_encryptionkey(conn, sess);
fs/smb/server/smb2pdu.c
1793
if (conn->dialect >= SMB30_PROT_ID) {
fs/smb/server/smb2pdu.c
1794
rc = register_session_channel(sess, conn, auth_key);
fs/smb/server/smb2pdu.c
1799
if (conn->ops->generate_signingkey) {
fs/smb/server/smb2pdu.c
1800
rc = conn->ops->generate_signingkey(sess, conn);
fs/smb/server/smb2pdu.c
1808
if (!ksmbd_conn_lookup_dialect(conn)) {
fs/smb/server/smb2pdu.c
1825
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
1829
char *auth_key = conn->binding ? channel_key : sess->sess_key;
fs/smb/server/smb2pdu.c
1831
bool binding = conn->binding;
fs/smb/server/smb2pdu.c
1855
destroy_previous_session(conn, sess->user, prev_sess_id);
fs/smb/server/smb2pdu.c
1865
if (conn->binding)
fs/smb/server/smb2pdu.c
1871
(conn->sign || server_conf.enforced_signing)) ||
fs/smb/server/smb2pdu.c
1875
if (smb3_encryption_negotiated(conn) &&
fs/smb/server/smb2pdu.c
1877
conn->ops->generate_encryptionkey(conn, sess);
fs/smb/server/smb2pdu.c
1885
if (conn->dialect >= SMB30_PROT_ID) {
fs/smb/server/smb2pdu.c
1886
retval = register_session_channel(sess, conn, auth_key);
fs/smb/server/smb2pdu.c
1891
if (conn->ops->generate_signingkey) {
fs/smb/server/smb2pdu.c
1892
retval = conn->ops->generate_signingkey(sess, conn);
fs/smb/server/smb2pdu.c
1900
if (!ksmbd_conn_lookup_dialect(conn)) {
fs/smb/server/smb2pdu.c
1922
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
1932
if (!ksmbd_conn_need_setup(conn) && !ksmbd_conn_good(conn)) {
fs/smb/server/smb2pdu.c
1944
ksmbd_conn_lock(conn);
fs/smb/server/smb2pdu.c
1952
rc = ksmbd_session_register(conn, sess);
fs/smb/server/smb2pdu.c
1956
conn->binding = false;
fs/smb/server/smb2pdu.c
1957
} else if (conn->dialect >= SMB30_PROT_ID &&
fs/smb/server/smb2pdu.c
1968
if (conn->dialect != sess->dialect) {
fs/smb/server/smb2pdu.c
1978
if (strncmp(conn->ClientGUID, sess->ClientGUID,
fs/smb/server/smb2pdu.c
1994
if (ksmbd_conn_need_reconnect(conn)) {
fs/smb/server/smb2pdu.c
2001
if (is_ksmbd_session_in_connection(conn, sess_id)) {
fs/smb/server/smb2pdu.c
2011
conn->binding = true;
fs/smb/server/smb2pdu.c
2012
} else if ((conn->dialect < SMB30_PROT_ID ||
fs/smb/server/smb2pdu.c
2035
sess = ksmbd_session_lookup(conn,
fs/smb/server/smb2pdu.c
2039
if (sess && !lookup_chann_list(sess, conn)) {
fs/smb/server/smb2pdu.c
2054
if (ksmbd_conn_need_reconnect(conn)) {
fs/smb/server/smb2pdu.c
2061
conn->binding = false;
fs/smb/server/smb2pdu.c
2075
if (decode_negotiation_token(conn, negblob, negblob_len) == 0) {
fs/smb/server/smb2pdu.c
2076
if (conn->mechToken) {
fs/smb/server/smb2pdu.c
2077
negblob = (struct negotiate_message *)conn->mechToken;
fs/smb/server/smb2pdu.c
2078
negblob_len = conn->mechTokenLen;
fs/smb/server/smb2pdu.c
2087
if (server_conf.auth_mechs & conn->auth_mechs) {
fs/smb/server/smb2pdu.c
2092
if (conn->preferred_auth_mech &
fs/smb/server/smb2pdu.c
2100
if (!ksmbd_conn_need_reconnect(conn)) {
fs/smb/server/smb2pdu.c
2101
ksmbd_conn_set_good(conn);
fs/smb/server/smb2pdu.c
2104
} else if (conn->preferred_auth_mech == KSMBD_AUTH_NTLMSSP) {
fs/smb/server/smb2pdu.c
2116
if (!ksmbd_conn_need_reconnect(conn)) {
fs/smb/server/smb2pdu.c
2117
ksmbd_conn_set_good(conn);
fs/smb/server/smb2pdu.c
2120
if (conn->binding) {
fs/smb/server/smb2pdu.c
2124
ksmbd_preauth_session_lookup(conn, sess->id);
fs/smb/server/smb2pdu.c
2168
if (conn->mechToken) {
fs/smb/server/smb2pdu.c
2169
kfree(conn->mechToken);
fs/smb/server/smb2pdu.c
2170
conn->mechToken = NULL;
fs/smb/server/smb2pdu.c
2174
if (sess && conn->dialect == SMB311_PROT_ID &&
fs/smb/server/smb2pdu.c
2178
preauth_sess = ksmbd_preauth_session_lookup(conn, sess->id);
fs/smb/server/smb2pdu.c
2222
ksmbd_conn_set_need_reconnect(conn);
fs/smb/server/smb2pdu.c
2224
ksmbd_conn_set_need_setup(conn);
fs/smb/server/smb2pdu.c
2228
conn->binding = false;
fs/smb/server/smb2pdu.c
2242
ksmbd_conn_unlock(conn);
fs/smb/server/smb2pdu.c
2254
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
2269
conn->local_nls);
fs/smb/server/smb2pdu.c
2276
name = ksmbd_extract_sharename(conn->um, treename);
fs/smb/server/smb2pdu.c
2316
if (conn->posix_ext_supported)
fs/smb/server/smb2pdu.c
2334
if (conn->dialect == SMB311_PROT_ID &&
fs/smb/server/smb2pdu.c
2335
conn->compress_algorithm != SMB3_COMPRESS_NONE)
fs/smb/server/smb2pdu.c
2520
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
2531
ksmbd_conn_lock(conn);
fs/smb/server/smb2pdu.c
2532
if (!ksmbd_conn_good(conn)) {
fs/smb/server/smb2pdu.c
2533
ksmbd_conn_unlock(conn);
fs/smb/server/smb2pdu.c
2540
ksmbd_conn_unlock(conn);
fs/smb/server/smb2pdu.c
2543
ksmbd_conn_wait_idle(conn);
fs/smb/server/smb2pdu.c
2552
down_write(&conn->session_lock);
fs/smb/server/smb2pdu.c
2554
up_write(&conn->session_lock);
fs/smb/server/smb2pdu.c
2585
1, work->conn->local_nls);
fs/smb/server/smb2pdu.c
2947
return set_info_sec(work->conn, work->tcon, path, &sd_buf->ntsd,
fs/smb/server/smb2pdu.c
2994
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
3118
if (!memcmp(conn->ClientGUID, dh_info->fp->client_guid,
fs/smb/server/smb2pdu.c
3126
if (dh_info->fp->conn) {
fs/smb/server/smb2pdu.c
3204
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
324
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
3277
work->conn->local_nls);
fs/smb/server/smb2pdu.c
3327
if (lc && lc->version == 2 && conn->dialect < SMB30_PROT_ID) {
fs/smb/server/smb2pdu.c
3343
rc = smb2_check_durable_oplock(conn, share, dh_info.fp,
fs/smb/server/smb2pdu.c
3377
if (lc && lc->version == 2 && conn->dialect < SMB30_PROT_ID) {
fs/smb/server/smb2pdu.c
343
WARN_ON(ksmbd_conn_good(conn));
fs/smb/server/smb2pdu.c
346
ksmbd_debug(SMB, "conn->dialect 0x%x\n", conn->dialect);
fs/smb/server/smb2pdu.c
347
rsp->DialectRevision = cpu_to_le16(conn->dialect);
fs/smb/server/smb2pdu.c
351
rsp->Capabilities = cpu_to_le32(conn->vals->req_capabilities);
fs/smb/server/smb2pdu.c
353
rsp->MaxTransactSize = cpu_to_le32(conn->vals->max_trans_size);
fs/smb/server/smb2pdu.c
354
rsp->MaxReadSize = cpu_to_le32(conn->vals->max_read_size);
fs/smb/server/smb2pdu.c
355
rsp->MaxWriteSize = cpu_to_le32(conn->vals->max_write_size);
fs/smb/server/smb2pdu.c
3609
rc = smb_check_perm_dacl(conn, &path, &daccess,
fs/smb/server/smb2pdu.c
371
conn->use_spnego = true;
fs/smb/server/smb2pdu.c
373
ksmbd_conn_set_need_negotiate(conn);
fs/smb/server/smb2pdu.c
3763
rc = smb_inherit_dacl(conn, &path, sess->user->uid,
fs/smb/server/smb2pdu.c
3811
rc = ksmbd_vfs_set_sd_xattr(conn,
fs/smb/server/smb2pdu.c
385
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
3874
!(conn->vals->req_capabilities & SMB2_GLOBAL_CAP_LEASING))) {
fs/smb/server/smb2pdu.c
3897
rc = find_same_lease_key(conn, fp->f_ci, lc);
fs/smb/server/smb2pdu.c
394
if (conn->total_credits > conn->vals->max_credits) {
fs/smb/server/smb2pdu.c
396
pr_err("Total credits overflow: %d\n", conn->total_credits);
fs/smb/server/smb2pdu.c
3963
if (conn->is_aapl == false) {
fs/smb/server/smb2pdu.c
3969
conn->is_aapl = true;
fs/smb/server/smb2pdu.c
3996
memcpy(fp->client_guid, conn->ClientGUID, SMB2_CLIENT_GUID_SIZE);
fs/smb/server/smb2pdu.c
402
if (credit_charge > conn->total_credits) {
fs/smb/server/smb2pdu.c
404
credit_charge, conn->total_credits);
fs/smb/server/smb2pdu.c
4072
conn->vals->create_lease_size);
fs/smb/server/smb2pdu.c
4073
iov_len += conn->vals->create_lease_size;
fs/smb/server/smb2pdu.c
4075
next_off = conn->vals->create_lease_size;
fs/smb/server/smb2pdu.c
408
conn->total_credits -= credit_charge;
fs/smb/server/smb2pdu.c
409
conn->outstanding_credits -= credit_charge;
fs/smb/server/smb2pdu.c
4093
conn->vals->create_mxac_size);
fs/smb/server/smb2pdu.c
4094
iov_len += conn->vals->create_mxac_size;
fs/smb/server/smb2pdu.c
4098
next_off = conn->vals->create_mxac_size;
fs/smb/server/smb2pdu.c
4111
conn->vals->create_disk_id_size);
fs/smb/server/smb2pdu.c
4112
iov_len += conn->vals->create_disk_id_size;
fs/smb/server/smb2pdu.c
4116
next_off = conn->vals->create_disk_id_size;
fs/smb/server/smb2pdu.c
4129
conn->vals->create_durable_size);
fs/smb/server/smb2pdu.c
4130
iov_len += conn->vals->create_durable_size;
fs/smb/server/smb2pdu.c
4136
conn->vals->create_durable_v2_size);
fs/smb/server/smb2pdu.c
4137
iov_len += conn->vals->create_durable_v2_size;
fs/smb/server/smb2pdu.c
4143
next_off = conn->vals->create_durable_size;
fs/smb/server/smb2pdu.c
4152
conn->vals->create_posix_size);
fs/smb/server/smb2pdu.c
4153
iov_len += conn->vals->create_posix_size;
fs/smb/server/smb2pdu.c
423
aux_max = conn->vals->max_credits - conn->total_credits;
fs/smb/server/smb2pdu.c
426
conn->total_credits += credits_granted;
fs/smb/server/smb2pdu.c
4342
static int smb2_populate_readdir_entry(struct ksmbd_conn *conn, int info_level,
fs/smb/server/smb2pdu.c
4353
conn->local_nls,
fs/smb/server/smb2pdu.c
436
conn->total_credits);
fs/smb/server/smb2pdu.c
4452
if (conn->is_aapl)
fs/smb/server/smb2pdu.c
4472
if (conn->is_aapl)
fs/smb/server/smb2pdu.c
4615
rc = smb2_populate_readdir_entry(priv->work->conn,
fs/smb/server/smb2pdu.c
4797
if (out_buf_len > work->conn->vals->max_trans_size)
fs/smb/server/smb2pdu.c
4809
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
4878
conn->local_nls);
fs/smb/server/smb2pdu.c
5387
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
5459
conn->local_nls, 0);
fs/smb/server/smb2pdu.c
5473
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
5480
conv_len = ksmbd_extract_shortname(conn,
fs/smb/server/smb2pdu.c
5494
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
5560
conn->local_nls, 0);
fs/smb/server/smb2pdu.c
5578
"::$DATA", 7, conn->local_nls, 0);
fs/smb/server/smb2pdu.c
5948
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
6035
"NTFS", PATH_MAX, conn->local_nls, 0);
fs/smb/server/smb2pdu.c
6060
conn->local_nls, 0);
fs/smb/server/smb2pdu.c
6242
ppntsd_size = ksmbd_vfs_get_sd_xattr(work->conn, idmap,
fs/smb/server/smb2pdu.c
6414
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
6437
if (check_session_id(conn, sess_id)) {
fs/smb/server/smb2pdu.c
666
size_t large_sz = small_sz + work->conn->vals->max_trans_size;
fs/smb/server/smb2pdu.c
6895
return smb2_rename(work, fp, rename_info, work->conn->local_nls);
fs/smb/server/smb2pdu.c
7039
work->conn->local_nls);
fs/smb/server/smb2pdu.c
709
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
7093
return set_info_sec(fp->conn, fp->tcon, &fp->filp->f_path, pntsd,
fs/smb/server/smb2pdu.c
722
if (!ksmbd_conn_good(conn))
fs/smb/server/smb2pdu.c
7281
if (work->conn->dialect == SMB30_PROT_ID &&
fs/smb/server/smb2pdu.c
7310
err = ksmbd_conn_rdma_write(work->conn, data_buf, length,
fs/smb/server/smb2pdu.c
7328
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
7337
unsigned int max_read_size = conn->vals->max_read_size;
fs/smb/server/smb2pdu.c
7373
max_read_size = get_smbd_max_read_write_size(work->conn->transport);
fs/smb/server/smb2pdu.c
74
static inline bool check_session_id(struct ksmbd_conn *conn, u64 id)
fs/smb/server/smb2pdu.c
750
work->sess = ksmbd_session_lookup_all(conn, sess_id);
fs/smb/server/smb2pdu.c
7505
conn->compress_algorithm != SMB3_COMPRESS_NONE)
fs/smb/server/smb2pdu.c
7615
ret = ksmbd_conn_rdma_read(work->conn, data_buf, length,
fs/smb/server/smb2pdu.c
7650
unsigned int max_write_size = work->conn->vals->max_write_size;
fs/smb/server/smb2pdu.c
7686
max_write_size = get_smbd_max_read_write_size(work->conn->transport);
fs/smb/server/smb2pdu.c
7869
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
7883
command_list = &conn->async_requests;
fs/smb/server/smb2pdu.c
7885
spin_lock(&conn->request_lock);
fs/smb/server/smb2pdu.c
7914
spin_unlock(&conn->request_lock);
fs/smb/server/smb2pdu.c
7916
command_list = &conn->requests;
fs/smb/server/smb2pdu.c
7918
spin_lock(&conn->request_lock);
fs/smb/server/smb2pdu.c
7933
spin_unlock(&conn->request_lock);
fs/smb/server/smb2pdu.c
794
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
797
id = ksmbd_acquire_async_msg_id(&conn->async_ida);
fs/smb/server/smb2pdu.c
8061
struct ksmbd_conn *conn;
fs/smb/server/smb2pdu.c
81
sess = ksmbd_session_lookup_all(conn, id);
fs/smb/server/smb2pdu.c
813
spin_lock(&conn->request_lock);
fs/smb/server/smb2pdu.c
814
list_add_tail(&work->async_request_entry, &conn->async_requests);
fs/smb/server/smb2pdu.c
815
spin_unlock(&conn->request_lock);
fs/smb/server/smb2pdu.c
8198
hash_for_each(conn_list, bkt, conn, hlist) {
fs/smb/server/smb2pdu.c
8199
spin_lock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
8200
list_for_each_entry_safe(cmp_lock, tmp2, &conn->lock_list, clist) {
fs/smb/server/smb2pdu.c
8213
cmp_lock->conn = NULL;
fs/smb/server/smb2pdu.c
8214
spin_unlock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
8217
ksmbd_conn_put(conn);
fs/smb/server/smb2pdu.c
823
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
8237
spin_unlock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
8246
spin_unlock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
825
spin_lock(&conn->request_lock);
fs/smb/server/smb2pdu.c
8257
spin_unlock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
8263
spin_unlock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
827
spin_unlock(&conn->request_lock);
fs/smb/server/smb2pdu.c
834
ksmbd_release_id(&conn->async_ida, work->async_id);
fs/smb/server/smb2pdu.c
8352
smb_lock->conn = ksmbd_conn_get(work->conn);
fs/smb/server/smb2pdu.c
8353
spin_lock(&work->conn->llist_lock);
fs/smb/server/smb2pdu.c
8355
&work->conn->lock_list);
fs/smb/server/smb2pdu.c
8358
spin_unlock(&work->conn->llist_lock);
fs/smb/server/smb2pdu.c
8407
conn = smb_lock->conn;
fs/smb/server/smb2pdu.c
8408
spin_lock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
8412
smb_lock->conn = NULL;
fs/smb/server/smb2pdu.c
8413
spin_unlock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
8414
ksmbd_conn_put(conn);
fs/smb/server/smb2pdu.c
853
in_work->conn = work->conn;
fs/smb/server/smb2pdu.c
8569
static int fsctl_query_iface_info_ioctl(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
8680
static int fsctl_validate_negotiate_info(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
8694
if (dialect == BAD_PROT_ID || dialect != conn->dialect) {
fs/smb/server/smb2pdu.c
8699
if (strncmp(neg_req->Guid, conn->ClientGUID, SMB2_CLIENT_GUID_SIZE)) {
fs/smb/server/smb2pdu.c
8704
if (le16_to_cpu(neg_req->SecurityMode) != conn->cli_sec_mode) {
fs/smb/server/smb2pdu.c
8709
if (le32_to_cpu(neg_req->Capabilities) != conn->cli_cap) {
fs/smb/server/smb2pdu.c
8714
neg_rsp->Capabilities = cpu_to_le32(conn->vals->req_capabilities);
fs/smb/server/smb2pdu.c
8716
neg_rsp->SecurityMode = cpu_to_le16(conn->srv_sec_mode);
fs/smb/server/smb2pdu.c
8717
neg_rsp->Dialect = cpu_to_le16(conn->dialect);
fs/smb/server/smb2pdu.c
8885
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
90
struct channel *lookup_chann_list(struct ksmbd_session *sess, struct ksmbd_conn *conn)
fs/smb/server/smb2pdu.c
9023
if (conn->dialect < SMB30_PROT_ID) {
fs/smb/server/smb2pdu.c
9039
ret = fsctl_validate_negotiate_info(conn,
fs/smb/server/smb2pdu.c
9051
ret = fsctl_query_iface_info_ioctl(conn, rsp, out_buf_len);
fs/smb/server/smb2pdu.c
9455
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
9467
opinfo = lookup_lease_in_table(conn, req->LeaseKey);
fs/smb/server/smb2pdu.c
95
chann = xa_load(&sess->ksmbd_chann_list, (long)conn);
fs/smb/server/smb2pdu.c
9636
ksmbd_sign_smb2_pdu(work->conn, work->sess->sess_key, iov, 1,
fs/smb/server/smb2pdu.c
9670
ksmbd_sign_smb2_pdu(work->conn, work->sess->sess_key, iov, n_vec,
fs/smb/server/smb2pdu.c
9683
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
9707
chann = lookup_chann_list(work->sess, conn);
fs/smb/server/smb2pdu.c
9728
ksmbd_sign_smb3_pdu(conn, signing_key, iov, 1, signature);
fs/smb/server/smb2pdu.c
9745
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
9750
u16 command = conn->ops->get_cmd_val(work);
fs/smb/server/smb2pdu.c
9757
(!conn->binding || hdr->Status != STATUS_SUCCESS)) {
fs/smb/server/smb2pdu.c
9760
chann = lookup_chann_list(work->sess, work->conn);
fs/smb/server/smb2pdu.c
9780
ksmbd_sign_smb3_pdu(conn, signing_key, iov, n_vec, signature);
fs/smb/server/smb2pdu.c
9791
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
9795
if (conn->dialect != SMB311_PROT_ID)
fs/smb/server/smb2pdu.c
9801
ksmbd_conn_lock(conn);
fs/smb/server/smb2pdu.c
9802
if (conn->preauth_info)
fs/smb/server/smb2pdu.c
9803
ksmbd_gen_preauth_integrity_hash(conn, work->response_buf,
fs/smb/server/smb2pdu.c
9804
conn->preauth_info->Preauth_HashValue);
fs/smb/server/smb2pdu.c
9805
ksmbd_conn_unlock(conn);
fs/smb/server/smb2pdu.c
9809
ksmbd_conn_lock(conn);
fs/smb/server/smb2pdu.c
9811
if (conn->binding) {
fs/smb/server/smb2pdu.c
9814
preauth_sess = ksmbd_preauth_session_lookup(conn, sess->id);
fs/smb/server/smb2pdu.c
9816
ksmbd_gen_preauth_integrity_hash(conn,
fs/smb/server/smb2pdu.c
9820
ksmbd_gen_preauth_integrity_hash(conn, work->response_buf,
fs/smb/server/smb2pdu.c
9823
ksmbd_conn_unlock(conn);
fs/smb/server/smb2pdu.c
9858
fill_transform_hdr(tr_buf, work->response_buf, work->conn->cipher_type);
fs/smb/server/smb2pdu.c
9896
sess = ksmbd_session_lookup_all(work->conn, le64_to_cpu(tr_hdr->SessionId));
fs/smb/server/smb2pdu.c
9920
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
9924
if (conn->dialect < SMB30_PROT_ID)
fs/smb/server/smb2pdu.c
995
static unsigned int assemble_neg_contexts(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.h
304
void init_smb2_1_server(struct ksmbd_conn *conn);
fs/smb/server/smb2pdu.h
305
void init_smb3_0_server(struct ksmbd_conn *conn);
fs/smb/server/smb2pdu.h
306
void init_smb3_02_server(struct ksmbd_conn *conn);
fs/smb/server/smb2pdu.h
307
int init_smb3_11_server(struct ksmbd_conn *conn);
fs/smb/server/smb2pdu.h
339
struct ksmbd_conn *conn);
fs/smb/server/smb2pdu.h
346
bool smb3_encryption_negotiated(struct ksmbd_conn *conn);
fs/smb/server/smb_common.c
167
work->conn->outstanding_credits++;
fs/smb/server/smb_common.c
180
bool ksmbd_smb_request(struct ksmbd_conn *conn)
fs/smb/server/smb_common.c
184
if (conn->request_buf[0] != 0)
fs/smb/server/smb_common.c
187
proto = (__le32 *)smb_get_msg(conn->request_buf);
fs/smb/server/smb_common.c
359
unsigned int cmd = work->conn->ops->get_cmd_val(work);
fs/smb/server/smb_common.c
419
static int init_smb1_server(struct ksmbd_conn *conn)
fs/smb/server/smb_common.c
421
conn->vals = &smb1_server_values;
fs/smb/server/smb_common.c
422
conn->ops = &smb1_server_ops;
fs/smb/server/smb_common.c
423
conn->cmds = smb1_server_cmds;
fs/smb/server/smb_common.c
424
conn->max_cmds = ARRAY_SIZE(smb1_server_cmds);
fs/smb/server/smb_common.c
428
int ksmbd_init_smb_server(struct ksmbd_conn *conn)
fs/smb/server/smb_common.c
430
struct smb_hdr *rcv_hdr = (struct smb_hdr *)smb_get_msg(conn->request_buf);
fs/smb/server/smb_common.c
434
if (conn->need_neg == false) {
fs/smb/server/smb_common.c
441
return init_smb1_server(conn);
fs/smb/server/smb_common.c
442
return init_smb3_11_server(conn);
fs/smb/server/smb_common.c
454
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb_common.c
487
rc = fn(conn, info_level, d_info, &ksmbd_kstat);
fs/smb/server/smb_common.c
514
int ksmbd_extract_shortname(struct ksmbd_conn *conn, const char *longname,
fs/smb/server/smb_common.c
578
conn->local_nls, 0);
fs/smb/server/smb_common.c
583
static int __smb2_negotiate(struct ksmbd_conn *conn)
fs/smb/server/smb_common.c
585
return (conn->dialect >= SMB20_PROT_ID &&
fs/smb/server/smb_common.c
586
conn->dialect <= SMB311_PROT_ID);
fs/smb/server/smb_common.c
601
neg_rsp->DialectIndex = cpu_to_le16(work->conn->dialect);
fs/smb/server/smb_common.c
608
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb_common.c
611
conn->dialect =
fs/smb/server/smb_common.c
613
ksmbd_debug(SMB, "conn->dialect 0x%x\n", conn->dialect);
fs/smb/server/smb_common.c
621
if (__smb2_negotiate(conn)) {
fs/smb/server/smb_common.c
622
init_smb3_11_server(conn);
fs/smb/server/smb_common.h
148
int (*generate_signingkey)(struct ksmbd_session *sess, struct ksmbd_conn *conn);
fs/smb/server/smb_common.h
149
void (*generate_encryptionkey)(struct ksmbd_conn *conn, struct ksmbd_session *sess);
fs/smb/server/smb_common.h
166
bool ksmbd_smb_request(struct ksmbd_conn *conn);
fs/smb/server/smb_common.h
170
int ksmbd_init_smb_server(struct ksmbd_conn *conn);
fs/smb/server/smb_common.h
183
int ksmbd_extract_shortname(struct ksmbd_conn *conn,
fs/smb/server/smbacl.c
1173
int smb_inherit_dacl(struct ksmbd_conn *conn,
fs/smb/server/smbacl.c
1192
ppntsd_size = ksmbd_vfs_get_sd_xattr(conn, idmap,
fs/smb/server/smbacl.c
1410
ksmbd_vfs_set_sd_xattr(conn, idmap, path, pntsd, pntsd_size, false);
fs/smb/server/smbacl.c
1434
int smb_check_perm_dacl(struct ksmbd_conn *conn, const struct path *path,
fs/smb/server/smbacl.c
1455
pntsd_size = ksmbd_vfs_get_sd_xattr(conn, idmap,
fs/smb/server/smbacl.c
1611
int set_info_sec(struct ksmbd_conn *conn, struct ksmbd_tree_connect *tcon,
fs/smb/server/smbacl.c
1673
ksmbd_vfs_set_sd_xattr(conn, idmap, path, pntsd, ntsd_len,
fs/smb/server/smbacl.h
95
int smb_inherit_dacl(struct ksmbd_conn *conn, const struct path *path,
fs/smb/server/smbacl.h
97
int smb_check_perm_dacl(struct ksmbd_conn *conn, const struct path *path,
fs/smb/server/smbacl.h
99
int set_info_sec(struct ksmbd_conn *conn, struct ksmbd_tree_connect *tcon,
fs/smb/server/transport_rdma.c
181
struct ksmbd_conn *conn;
fs/smb/server/transport_rdma.c
188
conn = ksmbd_conn_alloc();
fs/smb/server/transport_rdma.c
189
if (!conn)
fs/smb/server/transport_rdma.c
193
hash_add(conn_list, &conn->hlist, 0);
fs/smb/server/transport_rdma.c
196
conn->transport = KSMBD_TRANS(t);
fs/smb/server/transport_rdma.c
197
KSMBD_TRANS(t)->conn = conn;
fs/smb/server/transport_rdma.c
218
ksmbd_conn_free(KSMBD_TRANS(t)->conn);
fs/smb/server/transport_rdma.c
313
KSMBD_TRANS(t)->conn, "ksmbd:r%u",
fs/smb/server/transport_tcp.c
109
ksmbd_conn_free(KSMBD_TRANS(t)->conn);
fs/smb/server/transport_tcp.c
194
KSMBD_TRANS(t)->conn, "ksmbd:%pI6c",
fs/smb/server/transport_tcp.c
195
&KSMBD_TRANS(t)->conn->inet6_addr);
fs/smb/server/transport_tcp.c
198
KSMBD_TRANS(t)->conn, "ksmbd:%pI4",
fs/smb/server/transport_tcp.c
199
&KSMBD_TRANS(t)->conn->inet_addr);
fs/smb/server/transport_tcp.c
202
KSMBD_TRANS(t)->conn, "ksmbd:%pI4",
fs/smb/server/transport_tcp.c
203
&KSMBD_TRANS(t)->conn->inet_addr);
fs/smb/server/transport_tcp.c
223
struct ksmbd_conn *conn;
fs/smb/server/transport_tcp.c
254
hash_for_each_possible(conn_list, conn, hlist, inet_hash) {
fs/smb/server/transport_tcp.c
258
&conn->inet6_addr, 16) == 0)
fs/smb/server/transport_tcp.c
261
conn->inet_addr)
fs/smb/server/transport_tcp.c
265
conn->inet_addr)
fs/smb/server/transport_tcp.c
349
struct ksmbd_conn *conn = KSMBD_TRANS(t)->conn;
fs/smb/server/transport_tcp.c
361
if (!ksmbd_conn_alive(conn)) {
fs/smb/server/transport_tcp.c
373
} else if (ksmbd_conn_need_reconnect(conn)) {
fs/smb/server/transport_tcp.c
62
struct ksmbd_conn *conn;
fs/smb/server/transport_tcp.c
69
conn = ksmbd_conn_alloc();
fs/smb/server/transport_tcp.c
70
if (!conn) {
fs/smb/server/transport_tcp.c
77
memcpy(&conn->inet6_addr, &client_sk->sk->sk_v6_daddr, 16);
fs/smb/server/transport_tcp.c
78
conn->inet_hash = ipv6_addr_hash(&client_sk->sk->sk_v6_daddr);
fs/smb/server/transport_tcp.c
80
conn->inet_addr = inet_sk(client_sk->sk)->inet_daddr;
fs/smb/server/transport_tcp.c
81
conn->inet_hash = ipv4_addr_hash(inet_sk(client_sk->sk)->inet_daddr);
fs/smb/server/transport_tcp.c
84
conn->inet_addr = inet_sk(client_sk->sk)->inet_daddr;
fs/smb/server/transport_tcp.c
85
conn->inet_hash = ipv4_addr_hash(inet_sk(client_sk->sk)->inet_daddr);
fs/smb/server/transport_tcp.c
88
hash_add(conn_list, &conn->hlist, conn->inet_hash);
fs/smb/server/transport_tcp.c
91
conn->transport = KSMBD_TRANS(t);
fs/smb/server/transport_tcp.c
92
KSMBD_TRANS(t)->conn = conn;
fs/smb/server/vfs.c
1188
work->conn->um);
fs/smb/server/vfs.c
1431
int ksmbd_vfs_set_sd_xattr(struct ksmbd_conn *conn,
fs/smb/server/vfs.c
1498
int ksmbd_vfs_get_sd_xattr(struct ksmbd_conn *conn,
fs/smb/server/vfs.c
354
if (work->conn->connection_type) {
fs/smb/server/vfs.c
475
if (work->conn->connection_type) {
fs/smb/server/vfs.h
150
int ksmbd_vfs_set_sd_xattr(struct ksmbd_conn *conn,
fs/smb/server/vfs.h
155
int ksmbd_vfs_get_sd_xattr(struct ksmbd_conn *conn,
fs/smb/server/vfs_cache.c
1063
fp->conn = ksmbd_conn_get(work->conn);
fs/smb/server/vfs_cache.c
1081
atomic_inc(&work->conn->stats.open_files_count);
fs/smb/server/vfs_cache.c
1086
ksmbd_conn_put(fp->conn);
fs/smb/server/vfs_cache.c
1387
fp->conn)
fs/smb/server/vfs_cache.c
1541
struct ksmbd_conn *conn;
fs/smb/server/vfs_cache.c
1550
if (WARN_ON_ONCE(!fp->conn))
fs/smb/server/vfs_cache.c
1561
conn = fp->conn;
fs/smb/server/vfs_cache.c
1566
if (op->conn != conn)
fs/smb/server/vfs_cache.c
1568
ksmbd_conn_put(op->conn);
fs/smb/server/vfs_cache.c
1569
op->conn = NULL;
fs/smb/server/vfs_cache.c
1575
struct ksmbd_conn *lock_conn = smb_lock->conn;
fs/smb/server/vfs_cache.c
1581
smb_lock->conn = NULL;
fs/smb/server/vfs_cache.c
1586
fp->conn = NULL;
fs/smb/server/vfs_cache.c
1595
ksmbd_conn_put(conn);
fs/smb/server/vfs_cache.c
1606
atomic_sub(num, &work->conn->stats.open_files_count);
fs/smb/server/vfs_cache.c
1616
atomic_sub(num, &work->conn->stats.open_files_count);
fs/smb/server/vfs_cache.c
1669
struct ksmbd_conn *conn = work->conn;
fs/smb/server/vfs_cache.c
1674
if (!fp->is_durable || fp->conn || fp->tcon) {
fs/smb/server/vfs_cache.c
1676
pr_err("Invalid durable fd [%p:%p]\n", fp->conn, fp->tcon);
fs/smb/server/vfs_cache.c
1694
fp->conn = ksmbd_conn_get(conn);
fs/smb/server/vfs_cache.c
1704
fp->conn = NULL;
fs/smb/server/vfs_cache.c
1707
ksmbd_conn_put(conn);
fs/smb/server/vfs_cache.c
1713
smb_lock->conn = ksmbd_conn_get(conn);
fs/smb/server/vfs_cache.c
1714
spin_lock(&conn->llist_lock);
fs/smb/server/vfs_cache.c
1715
list_add_tail(&smb_lock->clist, &conn->lock_list);
fs/smb/server/vfs_cache.c
1716
spin_unlock(&conn->llist_lock);
fs/smb/server/vfs_cache.c
1723
if (op->conn)
fs/smb/server/vfs_cache.c
1725
op->conn = ksmbd_conn_get(fp->conn);
fs/smb/server/vfs_cache.c
517
struct ksmbd_conn *conn = smb_lock->conn;
fs/smb/server/vfs_cache.c
519
if (conn) {
fs/smb/server/vfs_cache.c
520
spin_lock(&conn->llist_lock);
fs/smb/server/vfs_cache.c
522
smb_lock->conn = NULL;
fs/smb/server/vfs_cache.c
523
spin_unlock(&conn->llist_lock);
fs/smb/server/vfs_cache.c
524
ksmbd_conn_put(conn);
fs/smb/server/vfs_cache.c
538
if (fp->conn) {
fs/smb/server/vfs_cache.c
539
ksmbd_conn_put(fp->conn);
fs/smb/server/vfs_cache.c
540
fp->conn = NULL;
fs/smb/server/vfs_cache.c
581
if (fp->conn || !fp->is_durable ||
fs/smb/server/vfs_cache.c
660
if (!fp->conn) {
fs/smb/server/vfs_cache.c
665
atomic_dec(&work->conn->stats.open_files_count);
fs/smb/server/vfs_cache.c
782
fp->conn ||
fs/smb/server/vfs_cache.c
813
(READ_ONCE(lfp->conn) || READ_ONCE(lfp->tcon))) {
fs/smb/server/vfs_cache.c
860
if (!opinfo->conn) {
fs/smb/server/vfs_cache.c
885
if (fp->conn)
fs/smb/server/vfs_cache.c
886
atomic_dec(&fp->conn->stats.open_files_count);
fs/smb/server/vfs_cache.c
908
if (fp->conn) {
fs/smb/server/vfs_cache.h
40
struct ksmbd_conn *conn;
fs/smb/server/vfs_cache.h
96
struct ksmbd_conn *conn;
fs/smb/smbdirect/connect.c
344
peer_initiator_depth = event->param.conn.responder_resources;
fs/smb/smbdirect/connect.c
345
peer_responder_resources = event->param.conn.initiator_depth;
fs/smb/smbdirect/connect.c
352
peer_initiator_depth = event->param.conn.initiator_depth;
fs/smb/smbdirect/connect.c
353
peer_responder_resources = event->param.conn.responder_resources;
fs/smb/smbdirect/connect.c
358
&event->param.conn);
fs/smb/smbdirect/listen.c
287
ret = smbdirect_accept_connect_request(nsc, &event->param.conn);
include/drm/drm_connector.h
2549
void drm_connector_attach_tv_margin_properties(struct drm_connector *conn);
include/drm/drm_connector.h
2591
void drm_connector_create_privacy_screen_properties(struct drm_connector *conn);
include/drm/drm_connector.h
2592
void drm_connector_attach_privacy_screen_properties(struct drm_connector *conn);
include/drm/drm_connector.h
2638
struct drm_connector *conn;
include/dt-bindings/usb/pd.h
150
#define VDO_IDH(usbh, usbd, ufp_cable, is_modal, dfp, conn, vid) \
include/dt-bindings/usb/pd.h
152
| (is_modal) << 26 | ((dfp) & 0x7) << 23 | ((conn) & 0x3) << 21 \
include/dt-bindings/usb/pd.h
226
#define VDO_UFP(ver, cap, conn, vcpwr, vcr, vbr, alt, spd) \
include/dt-bindings/usb/pd.h
227
(((ver) & 0x7) << 29 | ((cap) & 0xf) << 24 | ((conn) & 0x3) << 22 \
include/dt-bindings/usb/pd.h
248
#define VDO_DFP(ver, cap, conn, pnum) \
include/dt-bindings/usb/pd.h
249
(((ver) & 0x7) << 29 | ((cap) & 0x7) << 24 | ((conn) & 0x3) << 22 \
include/dt-bindings/usb/pd.h
364
#define VDO_PCABLE(hw, fw, ver, conn, lat, term, vbm, cur, spd) \
include/dt-bindings/usb/pd.h
366
| ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \
include/dt-bindings/usb/pd.h
368
#define VDO_ACABLE1(hw, fw, ver, conn, lat, term, vbm, sbu, sbut, cur, vbt, sopp, spd) \
include/dt-bindings/usb/pd.h
370
| ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \
include/linux/coresight.h
699
int coresight_add_in_conn(struct coresight_connection *conn);
include/linux/fsnotify_backend.h
887
extern __u32 fsnotify_conn_mask(struct fsnotify_mark_connector *conn);
include/linux/fsnotify_backend.h
889
extern void fsnotify_recalc_mask(struct fsnotify_mark_connector *conn);
include/linux/usb/pd_vdo.h
149
#define VDO_IDH(usbh, usbd, ufp_cable, is_modal, dfp, conn, vid) \
include/linux/usb/pd_vdo.h
151
| (is_modal) << 26 | ((dfp) & 0x7) << 23 | ((conn) & 0x3) << 21 \
include/linux/usb/pd_vdo.h
236
#define VDO_UFP(ver, cap, conn, vcpwr, vcr, vbr, alt, spd) \
include/linux/usb/pd_vdo.h
237
(((ver) & 0x7) << 29 | ((cap) & 0xf) << 24 | ((conn) & 0x3) << 22 \
include/linux/usb/pd_vdo.h
260
#define VDO_DFP(ver, cap, conn, pnum) \
include/linux/usb/pd_vdo.h
261
(((ver) & 0x7) << 29 | ((cap) & 0x7) << 24 | ((conn) & 0x3) << 22 \
include/linux/usb/pd_vdo.h
376
#define VDO_PCABLE(hw, fw, ver, conn, lat, term, vbm, cur, spd) \
include/linux/usb/pd_vdo.h
378
| ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \
include/linux/usb/pd_vdo.h
380
#define VDO_ACABLE1(hw, fw, ver, conn, lat, term, vbm, sbu, sbut, cur, vbt, sopp, spd) \
include/linux/usb/pd_vdo.h
382
| ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \
include/media/dvbdev.h
124
struct media_entity *conn;
include/net/bluetooth/hci_core.h
1000
static inline bool hci_conn_ssp_enabled(struct hci_conn *conn)
include/net/bluetooth/hci_core.h
1002
struct hci_dev *hdev = conn->hdev;
include/net/bluetooth/hci_core.h
1004
test_bit(HCI_CONN_SSP_ENABLED, &conn->flags);
include/net/bluetooth/hci_core.h
1007
static inline bool hci_conn_sc_enabled(struct hci_conn *conn)
include/net/bluetooth/hci_core.h
1009
struct hci_dev *hdev = conn->hdev;
include/net/bluetooth/hci_core.h
1011
test_bit(HCI_CONN_SC_ENABLED, &conn->flags);
include/net/bluetooth/hci_core.h
1112
static inline bool hci_conn_valid(struct hci_dev *hdev, struct hci_conn *conn)
include/net/bluetooth/hci_core.h
1120
if (c == conn) {
include/net/bluetooth/hci_core.h
1487
typedef void (*hci_conn_func_t)(struct hci_conn *conn, void *data);
include/net/bluetooth/hci_core.h
1569
int hci_disconnect(struct hci_conn *conn, __u8 reason);
include/net/bluetooth/hci_core.h
1570
bool hci_setup_sync(struct hci_conn *conn, __u16 handle);
include/net/bluetooth/hci_core.h
1571
void hci_sco_setup(struct hci_conn *conn, __u8 status);
include/net/bluetooth/hci_core.h
1572
bool hci_iso_setup_path(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
1574
int hci_conn_check_create_cis(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
1580
void hci_conn_del(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
1583
struct hci_chan *hci_chan_create(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
1585
void hci_chan_list_flush(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
1595
void hci_connect_le_scan_cleanup(struct hci_conn *conn, u8 status);
include/net/bluetooth/hci_core.h
1608
int hci_past_bis(struct hci_conn *conn, bdaddr_t *dst, __u8 dst_type);
include/net/bluetooth/hci_core.h
1621
int hci_conn_check_link_mode(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
1622
int hci_conn_check_secure(struct hci_conn *conn, __u8 sec_level);
include/net/bluetooth/hci_core.h
1623
int hci_conn_security(struct hci_conn *conn, __u8 sec_level, __u8 auth_type,
include/net/bluetooth/hci_core.h
1625
int hci_conn_switch_role(struct hci_conn *conn, __u8 role);
include/net/bluetooth/hci_core.h
1627
void hci_conn_enter_active_mode(struct hci_conn *conn, __u8 force_active);
include/net/bluetooth/hci_core.h
1629
void hci_conn_failed(struct hci_conn *conn, u8 status);
include/net/bluetooth/hci_core.h
1630
u8 hci_conn_set_handle(struct hci_conn *conn, u16 handle);
include/net/bluetooth/hci_core.h
1632
void hci_conn_tx_queue(struct hci_conn *conn, struct sk_buff *skb);
include/net/bluetooth/hci_core.h
1633
void hci_conn_tx_dequeue(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
1665
static inline struct hci_conn *hci_conn_get(struct hci_conn *conn)
include/net/bluetooth/hci_core.h
1667
get_device(&conn->dev);
include/net/bluetooth/hci_core.h
1668
return conn;
include/net/bluetooth/hci_core.h
1671
static inline void hci_conn_put(struct hci_conn *conn)
include/net/bluetooth/hci_core.h
1673
put_device(&conn->dev);
include/net/bluetooth/hci_core.h
1676
static inline struct hci_conn *hci_conn_hold(struct hci_conn *conn)
include/net/bluetooth/hci_core.h
1678
BT_DBG("hcon %p orig refcnt %d", conn, atomic_read(&conn->refcnt));
include/net/bluetooth/hci_core.h
1680
atomic_inc(&conn->refcnt);
include/net/bluetooth/hci_core.h
1681
cancel_delayed_work(&conn->disc_work);
include/net/bluetooth/hci_core.h
1683
return conn;
include/net/bluetooth/hci_core.h
1686
static inline void hci_conn_drop(struct hci_conn *conn)
include/net/bluetooth/hci_core.h
1688
BT_DBG("hcon %p orig refcnt %d", conn, atomic_read(&conn->refcnt));
include/net/bluetooth/hci_core.h
1690
if (atomic_dec_and_test(&conn->refcnt)) {
include/net/bluetooth/hci_core.h
1693
switch (conn->type) {
include/net/bluetooth/hci_core.h
1696
cancel_delayed_work(&conn->idle_work);
include/net/bluetooth/hci_core.h
1697
if (conn->state == BT_CONNECTED) {
include/net/bluetooth/hci_core.h
1698
timeo = conn->disc_timeout;
include/net/bluetooth/hci_core.h
1699
if (!conn->out)
include/net/bluetooth/hci_core.h
1711
cancel_delayed_work(&conn->disc_work);
include/net/bluetooth/hci_core.h
1712
queue_delayed_work(conn->hdev->workqueue,
include/net/bluetooth/hci_core.h
1713
&conn->disc_work, timeo);
include/net/bluetooth/hci_core.h
1852
u8 *hci_conn_key_enc_size(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
1854
struct link_key *hci_add_link_key(struct hci_dev *hdev, struct hci_conn *conn,
include/net/bluetooth/hci_core.h
1919
void hci_conn_init_sysfs(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
1920
void hci_conn_add_sysfs(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
1921
void hci_conn_del_sysfs(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
2110
static inline int hci_proto_disconn_ind(struct hci_conn *conn)
include/net/bluetooth/hci_core.h
2112
if (conn->type != ACL_LINK && conn->type != LE_LINK)
include/net/bluetooth/hci_core.h
2115
return l2cap_disconn_ind(conn);
include/net/bluetooth/hci_core.h
2124
void (*connect_cfm) (struct hci_conn *conn, __u8 status);
include/net/bluetooth/hci_core.h
2125
void (*disconn_cfm) (struct hci_conn *conn, __u8 status);
include/net/bluetooth/hci_core.h
2126
void (*security_cfm) (struct hci_conn *conn, __u8 status,
include/net/bluetooth/hci_core.h
2128
void (*key_change_cfm) (struct hci_conn *conn, __u8 status);
include/net/bluetooth/hci_core.h
2129
void (*role_switch_cfm) (struct hci_conn *conn, __u8 status, __u8 role);
include/net/bluetooth/hci_core.h
2132
static inline void hci_connect_cfm(struct hci_conn *conn, __u8 status)
include/net/bluetooth/hci_core.h
2139
cb->connect_cfm(conn, status);
include/net/bluetooth/hci_core.h
2143
if (conn->connect_cfm_cb)
include/net/bluetooth/hci_core.h
2144
conn->connect_cfm_cb(conn, status);
include/net/bluetooth/hci_core.h
2147
static inline void hci_disconn_cfm(struct hci_conn *conn, __u8 reason)
include/net/bluetooth/hci_core.h
2154
cb->disconn_cfm(conn, reason);
include/net/bluetooth/hci_core.h
2158
if (conn->disconn_cfm_cb)
include/net/bluetooth/hci_core.h
2159
conn->disconn_cfm_cb(conn, reason);
include/net/bluetooth/hci_core.h
2162
static inline void hci_auth_cfm(struct hci_conn *conn, __u8 status)
include/net/bluetooth/hci_core.h
2167
if (test_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags))
include/net/bluetooth/hci_core.h
2170
encrypt = test_bit(HCI_CONN_ENCRYPT, &conn->flags) ? 0x01 : 0x00;
include/net/bluetooth/hci_core.h
2175
cb->security_cfm(conn, status, encrypt);
include/net/bluetooth/hci_core.h
2179
if (conn->security_cfm_cb)
include/net/bluetooth/hci_core.h
2180
conn->security_cfm_cb(conn, status);
include/net/bluetooth/hci_core.h
2183
static inline void hci_encrypt_cfm(struct hci_conn *conn, __u8 status)
include/net/bluetooth/hci_core.h
2188
if (conn->state == BT_CONFIG) {
include/net/bluetooth/hci_core.h
2190
conn->state = BT_CONNECTED;
include/net/bluetooth/hci_core.h
2192
hci_connect_cfm(conn, status);
include/net/bluetooth/hci_core.h
2193
hci_conn_drop(conn);
include/net/bluetooth/hci_core.h
2197
if (!test_bit(HCI_CONN_ENCRYPT, &conn->flags))
include/net/bluetooth/hci_core.h
2199
else if (test_bit(HCI_CONN_AES_CCM, &conn->flags))
include/net/bluetooth/hci_core.h
2205
if (conn->sec_level == BT_SECURITY_SDP)
include/net/bluetooth/hci_core.h
2206
conn->sec_level = BT_SECURITY_LOW;
include/net/bluetooth/hci_core.h
2208
if (conn->pending_sec_level > conn->sec_level)
include/net/bluetooth/hci_core.h
2209
conn->sec_level = conn->pending_sec_level;
include/net/bluetooth/hci_core.h
2215
cb->security_cfm(conn, status, encrypt);
include/net/bluetooth/hci_core.h
2219
if (conn->security_cfm_cb)
include/net/bluetooth/hci_core.h
2220
conn->security_cfm_cb(conn, status);
include/net/bluetooth/hci_core.h
2223
static inline void hci_key_change_cfm(struct hci_conn *conn, __u8 status)
include/net/bluetooth/hci_core.h
2230
cb->key_change_cfm(conn, status);
include/net/bluetooth/hci_core.h
2235
static inline void hci_role_switch_cfm(struct hci_conn *conn, __u8 status,
include/net/bluetooth/hci_core.h
2243
cb->role_switch_cfm(conn, status, role);
include/net/bluetooth/hci_core.h
2338
void hci_send_sco(struct hci_conn *conn, struct sk_buff *skb);
include/net/bluetooth/hci_core.h
2339
void hci_send_iso(struct hci_conn *conn, struct sk_buff *skb);
include/net/bluetooth/hci_core.h
2344
u32 hci_conn_get_phy(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
2345
int hci_conn_set_phy(struct hci_conn *conn, u32 phys);
include/net/bluetooth/hci_core.h
2433
void mgmt_device_connected(struct hci_dev *hdev, struct hci_conn *conn,
include/net/bluetooth/hci_core.h
2441
void mgmt_connect_failed(struct hci_dev *hdev, struct hci_conn *conn,
include/net/bluetooth/hci_core.h
2464
void mgmt_auth_failed(struct hci_conn *conn, u8 status);
include/net/bluetooth/hci_core.h
2487
void mgmt_smp_complete(struct hci_conn *conn, bool complete);
include/net/bluetooth/hci_core.h
2498
int hci_abort_conn(struct hci_conn *conn, u8 reason);
include/net/bluetooth/hci_core.h
2499
void hci_le_conn_update(struct hci_conn *conn, u16 min, u16 max, u16 latency,
include/net/bluetooth/hci_core.h
2501
void hci_le_start_enc(struct hci_conn *conn, __le16 ediv, __le64 rand,
include/net/bluetooth/hci_core.h
782
void (*connect_cfm_cb) (struct hci_conn *conn, u8 status);
include/net/bluetooth/hci_core.h
783
void (*security_cfm_cb) (struct hci_conn *conn, u8 status);
include/net/bluetooth/hci_core.h
784
void (*disconn_cfm_cb) (struct hci_conn *conn, u8 reason);
include/net/bluetooth/hci_core.h
786
void (*cleanup)(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
791
struct hci_conn *conn;
include/net/bluetooth/hci_core.h
797
struct hci_conn *conn;
include/net/bluetooth/hci_core.h
824
struct hci_conn *conn;
include/net/bluetooth/hci_sync.h
169
int hci_abort_conn_sync(struct hci_dev *hdev, struct hci_conn *conn, u8 reason);
include/net/bluetooth/hci_sync.h
181
int hci_connect_acl_sync(struct hci_dev *hdev, struct hci_conn *conn);
include/net/bluetooth/hci_sync.h
183
int hci_connect_le_sync(struct hci_dev *hdev, struct hci_conn *conn);
include/net/bluetooth/hci_sync.h
185
int hci_cancel_connect_sync(struct hci_dev *hdev, struct hci_conn *conn);
include/net/bluetooth/hci_sync.h
186
int hci_le_conn_update_sync(struct hci_dev *hdev, struct hci_conn *conn,
include/net/bluetooth/hci_sync.h
189
int hci_connect_pa_sync(struct hci_dev *hdev, struct hci_conn *conn);
include/net/bluetooth/hci_sync.h
190
int hci_connect_big_sync(struct hci_dev *hdev, struct hci_conn *conn);
include/net/bluetooth/hci_sync.h
191
int hci_past_sync(struct hci_conn *conn, struct hci_conn *le);
include/net/bluetooth/hci_sync.h
193
int hci_le_read_remote_features(struct hci_conn *conn);
include/net/bluetooth/hci_sync.h
195
int hci_acl_change_pkt_type(struct hci_conn *conn, u16 pkt_type);
include/net/bluetooth/hci_sync.h
196
int hci_le_set_phy(struct hci_conn *conn, u8 tx_phys, u8 rx_phys);
include/net/bluetooth/l2cap.h
513
struct l2cap_conn *conn;
include/net/bluetooth/l2cap.h
679
int (*probe) (struct l2cap_conn *conn, struct l2cap_user *user);
include/net/bluetooth/l2cap.h
680
void (*remove) (struct l2cap_conn *conn, struct l2cap_user *user);
include/net/bluetooth/l2cap.h
968
void l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
969
void __l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
971
void l2cap_chan_list(struct l2cap_conn *conn, l2cap_chan_func_t func,
include/net/bluetooth/l2cap.h
976
struct l2cap_conn *l2cap_conn_get(struct l2cap_conn *conn);
include/net/bluetooth/l2cap.h
977
struct l2cap_conn *l2cap_conn_hold_unless_zero(struct l2cap_conn *conn);
include/net/bluetooth/l2cap.h
978
void l2cap_conn_put(struct l2cap_conn *conn);
include/net/bluetooth/l2cap.h
980
int l2cap_register_user(struct l2cap_conn *conn, struct l2cap_user *user);
include/net/bluetooth/l2cap.h
981
void l2cap_unregister_user(struct l2cap_conn *conn, struct l2cap_user *user);
include/net/cfg80211.h
7226
struct cfg80211_conn *conn;
include/net/llc_conn.h
106
int llc_conn_remove_acked_pdus(struct sock *conn, u8 nr, u16 *how_many_unacked);
include/net/smc.h
52
struct smc_connection *conn[];
include/rdma/rdma_cm.h
101
struct rdma_conn_param conn;
include/scsi/libiscsi.h
121
struct iscsi_conn *conn; /* used connection */
include/scsi/libiscsi.h
449
extern void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err);
include/scsi/libiscsi.h
456
extern void iscsi_suspend_tx(struct iscsi_conn *conn);
include/scsi/libiscsi.h
457
extern void iscsi_suspend_rx(struct iscsi_conn *conn);
include/scsi/libiscsi.h
458
extern void iscsi_suspend_queue(struct iscsi_conn *conn);
include/scsi/libiscsi.h
459
extern void iscsi_conn_queue_xmit(struct iscsi_conn *conn);
include/scsi/libiscsi.h
460
extern void iscsi_conn_queue_recv(struct iscsi_conn *conn);
include/scsi/libiscsi_tcp.h
119
extern int iscsi_tcp_set_max_r2t(struct iscsi_conn *conn, char *buf);
include/scsi/libiscsi_tcp.h
86
extern int iscsi_tcp_recv_skb(struct iscsi_conn *conn, struct sk_buff *skb,
include/scsi/scsi_transport_iscsi.h
105
int (*send_pdu) (struct iscsi_cls_conn *conn, struct iscsi_hdr *hdr,
include/scsi/scsi_transport_iscsi.h
107
void (*get_stats) (struct iscsi_cls_conn *conn,
include/scsi/scsi_transport_iscsi.h
118
void (*parse_pdu_itt) (struct iscsi_conn *conn, itt_t itt,
include/scsi/scsi_transport_iscsi.h
170
extern void iscsi_conn_error_event(struct iscsi_cls_conn *conn,
include/scsi/scsi_transport_iscsi.h
172
extern void iscsi_conn_login_event(struct iscsi_cls_conn *conn,
include/scsi/scsi_transport_iscsi.h
174
extern int iscsi_recv_pdu(struct iscsi_cls_conn *conn, struct iscsi_hdr *hdr,
include/scsi/scsi_transport_iscsi.h
310
struct iscsi_cls_conn *conn;
include/scsi/scsi_transport_iscsi.h
455
extern int iscsi_add_conn(struct iscsi_cls_conn *conn);
include/scsi/scsi_transport_iscsi.h
456
extern void iscsi_remove_conn(struct iscsi_cls_conn *conn);
include/scsi/scsi_transport_iscsi.h
457
extern void iscsi_put_conn(struct iscsi_cls_conn *conn);
include/scsi/scsi_transport_iscsi.h
458
extern void iscsi_get_conn(struct iscsi_cls_conn *conn);
include/scsi/scsi_transport_iscsi.h
85
void (*unbind_conn) (struct iscsi_cls_conn *conn, bool is_active);
include/scsi/scsi_transport_iscsi.h
89
int (*start_conn) (struct iscsi_cls_conn *conn);
include/scsi/scsi_transport_iscsi.h
90
void (*stop_conn) (struct iscsi_cls_conn *conn, int flag);
include/scsi/scsi_transport_iscsi.h
91
void (*destroy_conn) (struct iscsi_cls_conn *conn);
include/scsi/scsi_transport_iscsi.h
92
int (*set_param) (struct iscsi_cls_conn *conn, enum iscsi_param param,
include/scsi/scsi_transport_iscsi.h
96
int (*get_conn_param) (struct iscsi_cls_conn *conn,
include/target/iscsi/iscsi_target_core.h
479
struct iscsit_conn *conn;
include/target/iscsi/iscsi_target_core.h
712
struct iscsit_conn *conn;
include/target/iscsi/iscsi_target_core.h
912
extern void iscsit_thread_check_cpumask(struct iscsit_conn *conn,
include/target/iscsi/iscsi_transport.h
134
iscsit_find_cmd_from_itt_or_dump(struct iscsit_conn *conn,
include/target/iscsi/iscsi_transport.h
63
iscsit_check_dataout_hdr(struct iscsit_conn *conn, void *buf,
include/trace/events/rxrpc.h
1193
TP_PROTO(const struct rxrpc_connection *conn, const struct sk_buff *skb),
include/trace/events/rxrpc.h
1195
TP_ARGS(conn, skb),
include/trace/events/rxrpc.h
1198
__field(unsigned int, conn)
include/trace/events/rxrpc.h
1204
__entry->conn = conn->debug_id;
include/trace/events/rxrpc.h
1210
__entry->conn,
include/trace/events/rxrpc.h
1216
TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t serial,
include/trace/events/rxrpc.h
1219
TP_ARGS(conn, serial, version, nonce),
include/trace/events/rxrpc.h
1222
__field(unsigned int, conn)
include/trace/events/rxrpc.h
1231
__entry->conn = conn->debug_id;
include/trace/events/rxrpc.h
1235
__entry->service_id = conn->service_id;
include/trace/events/rxrpc.h
1236
__entry->security_ix = conn->security_ix;
include/trace/events/rxrpc.h
1240
__entry->conn,
include/trace/events/rxrpc.h
1249
TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t serial,
include/trace/events/rxrpc.h
1252
TP_ARGS(conn, serial, version, nonce, min_level),
include/trace/events/rxrpc.h
1255
__field(unsigned int, conn)
include/trace/events/rxrpc.h
1265
__entry->conn = conn->debug_id;
include/trace/events/rxrpc.h
1270
__entry->service_id = conn->service_id;
include/trace/events/rxrpc.h
1271
__entry->security_ix = conn->security_ix;
include/trace/events/rxrpc.h
1275
__entry->conn,
include/trace/events/rxrpc.h
1285
TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t serial,
include/trace/events/rxrpc.h
1288
TP_ARGS(conn, serial, rsp),
include/trace/events/rxrpc.h
1291
__field(unsigned int, conn)
include/trace/events/rxrpc.h
1303
__entry->conn = conn->debug_id;
include/trace/events/rxrpc.h
1309
__entry->service_id = conn->service_id;
include/trace/events/rxrpc.h
1310
__entry->security_ix = conn->security_ix;
include/trace/events/rxrpc.h
1314
__entry->conn,
include/trace/events/rxrpc.h
1325
TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t serial,
include/trace/events/rxrpc.h
1328
TP_ARGS(conn, serial, version, kvno, ticket_len),
include/trace/events/rxrpc.h
1331
__field(unsigned int, conn)
include/trace/events/rxrpc.h
1340
__entry->conn = conn->debug_id;
include/trace/events/rxrpc.h
1345
__entry->security_ix = conn->security_ix;
include/trace/events/rxrpc.h
1349
__entry->conn,
include/trace/events/rxrpc.h
2246
__entry->conn_serial = call->conn->hi_serial;
include/trace/events/rxrpc.h
2478
__entry->ping_serial = call->conn->pmtud_probe;
include/trace/events/rxrpc.h
2494
TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t resp_serial),
include/trace/events/rxrpc.h
2496
TP_ARGS(conn, resp_serial),
include/trace/events/rxrpc.h
2508
__entry->peer_debug_id = conn->peer->debug_id;
include/trace/events/rxrpc.h
2509
__entry->call_debug_id = conn->pmtud_call;
include/trace/events/rxrpc.h
2510
__entry->ping_serial = conn->pmtud_probe;
include/trace/events/rxrpc.h
2512
__entry->max_data = conn->peer->max_data;
include/trace/events/rxrpc.h
2513
__entry->jumbo_max = conn->peer->pmtud_jumbo;
include/trace/events/rxrpc.h
2526
TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t resp_serial),
include/trace/events/rxrpc.h
2528
TP_ARGS(conn, resp_serial),
include/trace/events/rxrpc.h
2538
__entry->peer_debug_id = conn->peer->debug_id;
include/trace/events/rxrpc.h
2539
__entry->call_debug_id = conn->pmtud_call;
include/trace/events/rxrpc.h
2540
__entry->ping_serial = conn->pmtud_probe;
include/trace/events/rxrpc.h
2816
TP_PROTO(struct rxrpc_connection *conn,
include/trace/events/rxrpc.h
2819
TP_ARGS(conn, current_key, requested_key),
include/trace/events/rxrpc.h
2822
__field(unsigned int, conn)
include/trace/events/rxrpc.h
2828
__entry->conn = conn->debug_id;
include/trace/events/rxrpc.h
2834
__entry->conn,
include/trace/events/rxrpc.h
776
__field(unsigned int, conn)
include/trace/events/rxrpc.h
782
__entry->conn = conn_debug_id;
include/trace/events/rxrpc.h
788
__entry->conn,
include/trace/events/rxrpc.h
794
TP_PROTO(struct rxrpc_connection *conn, int channel,
include/trace/events/rxrpc.h
797
TP_ARGS(conn, channel, op),
include/trace/events/rxrpc.h
800
__field(unsigned int, conn)
include/trace/events/rxrpc.h
808
__entry->conn = conn ? conn->debug_id : 0;
include/trace/events/rxrpc.h
810
__entry->usage = conn ? refcount_read(&conn->ref) : -2;
include/trace/events/rxrpc.h
812
__entry->cid = conn ? conn->proto.cid : 0;
include/trace/events/rxrpc.h
816
__entry->conn,
include/uapi/linux/drbd.h
229
unsigned conn:5 ; /* 17/32 cstates */
include/uapi/linux/drbd.h
249
unsigned conn:5 ; /* 17/32 cstates */
include/uapi/rdma/rdma_user_cm.h
307
struct rdma_ucm_conn_param conn;
include/uapi/rdma/rdma_user_cm.h
376
struct rdma_ucm_conn_param conn;
io_uring/net.c
1722
struct io_connect *conn = io_kiocb_to_cmd(req, struct io_connect);
io_uring/net.c
1730
if (conn->addr_len < (int)sizeof(sa_family_t))
io_uring/net.c
1738
if (conn->addr_len < (int)sizeof(*sin))
io_uring/net.c
1747
if (conn->addr_len < (int)sizeof(*sin6))
io_uring/net.c
1816
struct io_connect *conn = io_kiocb_to_cmd(req, struct io_connect);
io_uring/net.c
1822
conn->addr = u64_to_user_ptr(READ_ONCE(sqe->addr));
io_uring/net.c
1823
conn->addr_len = READ_ONCE(sqe->addr2);
io_uring/net.c
1824
conn->in_progress = conn->seen_econnaborted = false;
io_uring/net.c
1830
return move_addr_to_kernel(conn->addr, conn->addr_len, addr);
net/9p/trans_fd.c
1056
struct p9_conn *conn = list_first_entry(&p9_poll_pending_list,
net/9p/trans_fd.c
1059
list_del_init(&conn->poll_pending_link);
net/9p/trans_fd.c
1062
p9_poll_mux(conn);
net/9p/trans_fd.c
110
struct p9_conn conn;
net/9p/trans_fd.c
48
struct p9_conn *conn;
net/9p/trans_fd.c
496
struct p9_conn *m = pwait->conn;
net/9p/trans_fd.c
536
pwait->conn = m;
net/9p/trans_fd.c
553
struct p9_conn *m = &ts->conn;
net/9p/trans_fd.c
635
struct p9_conn *m = &ts->conn;
net/9p/trans_fd.c
660
struct p9_conn *m = &ts->conn;
net/9p/trans_fd.c
681
struct p9_conn *m = &ts->conn;
net/9p/trans_fd.c
840
p9_conn_destroy(&ts->conn);
net/bluetooth/6lowpan.c
1010
*conn = l2cap_conn_hold_unless_zero(hcon->l2cap_data);
net/bluetooth/6lowpan.c
1012
BT_DBG("conn %p dst %pMR type %u", *conn, &hcon->dst, hcon->dst_type);
net/bluetooth/6lowpan.c
1119
struct l2cap_conn *conn = NULL;
net/bluetooth/6lowpan.c
1127
ret = get_l2cap_conn(&buf[8], &addr, &addr_type, &conn, false);
net/bluetooth/6lowpan.c
1141
if (conn) {
net/bluetooth/6lowpan.c
1144
if (!is_bt_6lowpan(conn->hcon)) {
net/bluetooth/6lowpan.c
1145
l2cap_conn_put(conn);
net/bluetooth/6lowpan.c
1149
peer = lookup_peer(conn);
net/bluetooth/6lowpan.c
1152
l2cap_conn_put(conn);
net/bluetooth/6lowpan.c
1156
BT_DBG("conn %p dst %pMR type %d user %u", conn,
net/bluetooth/6lowpan.c
1157
&conn->hcon->dst, conn->hcon->dst_type,
net/bluetooth/6lowpan.c
1159
l2cap_conn_put(conn);
net/bluetooth/6lowpan.c
1170
ret = get_l2cap_conn(&buf[11], &addr, &addr_type, &conn, true);
net/bluetooth/6lowpan.c
1174
ret = bt_6lowpan_disconnect(conn, addr_type);
net/bluetooth/6lowpan.c
1175
if (conn)
net/bluetooth/6lowpan.c
1176
l2cap_conn_put(conn);
net/bluetooth/6lowpan.c
128
__peer_lookup_conn(struct lowpan_btle_dev *dev, struct l2cap_conn *conn)
net/bluetooth/6lowpan.c
133
if (peer->chan->conn == conn)
net/bluetooth/6lowpan.c
206
static struct lowpan_peer *lookup_peer(struct l2cap_conn *conn)
net/bluetooth/6lowpan.c
214
peer = __peer_lookup_conn(entry, conn);
net/bluetooth/6lowpan.c
224
static struct lowpan_btle_dev *lookup_dev(struct l2cap_conn *conn)
net/bluetooth/6lowpan.c
232
if (conn->hcon->hdev == entry->hdev) {
net/bluetooth/6lowpan.c
359
peer = lookup_peer(chan->conn);
net/bluetooth/6lowpan.c
363
dev = lookup_dev(chan->conn);
net/bluetooth/6lowpan.c
690
SET_NETDEV_DEV(netdev, &chan->conn->hcon->hdev->dev);
net/bluetooth/6lowpan.c
695
(*dev)->hdev = chan->conn->hcon->hdev;
net/bluetooth/6lowpan.c
729
dev = lookup_dev(chan->conn);
net/bluetooth/6lowpan.c
731
BT_DBG("chan %p conn %p dev %p", chan, chan->conn, dev);
net/bluetooth/6lowpan.c
787
BT_DBG("chan %p conn %p", chan, chan->conn);
net/bluetooth/6lowpan.c
824
BT_DBG("chan %p conn %p state %s err %d", chan, chan->conn,
net/bluetooth/6lowpan.c
850
dev = lookup_dev(chan->conn);
net/bluetooth/6lowpan.c
863
dev = lookup_dev(chan->conn);
net/bluetooth/6lowpan.c
912
static int bt_6lowpan_disconnect(struct l2cap_conn *conn, u8 dst_type)
net/bluetooth/6lowpan.c
916
BT_DBG("conn %p dst type %u", conn, dst_type);
net/bluetooth/6lowpan.c
918
peer = lookup_peer(conn);
net/bluetooth/6lowpan.c
963
struct l2cap_conn **conn, bool disconnect)
net/bluetooth/bnep/core.c
565
struct l2cap_conn *conn;
net/bluetooth/bnep/core.c
568
conn = chan->conn;
net/bluetooth/bnep/core.c
569
if (conn)
net/bluetooth/bnep/core.c
570
l2cap_conn_get(conn);
net/bluetooth/bnep/core.c
573
return conn;
net/bluetooth/bnep/core.c
585
struct l2cap_conn *conn = NULL;
net/bluetooth/bnep/core.c
645
conn = bnep_get_conn(s);
net/bluetooth/bnep/core.c
646
if (!conn) {
net/bluetooth/bnep/core.c
651
SET_NETDEV_DEV(dev, &conn->hcon->dev);
net/bluetooth/bnep/core.c
655
l2cap_conn_put(conn);
net/bluetooth/bnep/core.c
656
conn = NULL;
net/bluetooth/bnep/core.c
678
if (conn)
net/bluetooth/bnep/core.c
679
l2cap_conn_put(conn);
net/bluetooth/hci_conn.c
1029
conn = kzalloc_obj(*conn);
net/bluetooth/hci_conn.c
1030
if (!conn)
net/bluetooth/hci_conn.c
1035
bacpy(&conn->dst, dst);
net/bluetooth/hci_conn.c
1036
conn->dst_type = dst_type;
net/bluetooth/hci_conn.c
1038
bacpy(&conn->dst, &irk->bdaddr);
net/bluetooth/hci_conn.c
1039
conn->dst_type = irk->addr_type;
net/bluetooth/hci_conn.c
1042
bacpy(&conn->src, &hdev->bdaddr);
net/bluetooth/hci_conn.c
1043
conn->handle = handle;
net/bluetooth/hci_conn.c
1044
conn->hdev = hdev;
net/bluetooth/hci_conn.c
1045
conn->type = type;
net/bluetooth/hci_conn.c
1046
conn->role = role;
net/bluetooth/hci_conn.c
1047
conn->mode = HCI_CM_ACTIVE;
net/bluetooth/hci_conn.c
1048
conn->state = BT_OPEN;
net/bluetooth/hci_conn.c
1049
conn->auth_type = HCI_AT_GENERAL_BONDING;
net/bluetooth/hci_conn.c
1050
conn->io_capability = hdev->io_capability;
net/bluetooth/hci_conn.c
1051
conn->remote_auth = 0xff;
net/bluetooth/hci_conn.c
1052
conn->key_type = 0xff;
net/bluetooth/hci_conn.c
1053
conn->rssi = HCI_RSSI_INVALID;
net/bluetooth/hci_conn.c
1054
conn->tx_power = HCI_TX_POWER_INVALID;
net/bluetooth/hci_conn.c
1055
conn->max_tx_power = HCI_TX_POWER_INVALID;
net/bluetooth/hci_conn.c
1056
conn->sync_handle = HCI_SYNC_HANDLE_INVALID;
net/bluetooth/hci_conn.c
1057
conn->sid = HCI_SID_INVALID;
net/bluetooth/hci_conn.c
1059
set_bit(HCI_CONN_POWER_SAVE, &conn->flags);
net/bluetooth/hci_conn.c
1060
conn->disc_timeout = HCI_DISCONN_TIMEOUT;
net/bluetooth/hci_conn.c
1063
conn->auth_payload_timeout = DEFAULT_AUTH_PAYLOAD_TIMEOUT;
net/bluetooth/hci_conn.c
1065
if (conn->role == HCI_ROLE_MASTER)
net/bluetooth/hci_conn.c
1066
conn->out = true;
net/bluetooth/hci_conn.c
107
mgmt_connect_failed(hdev, conn, status);
net/bluetooth/hci_conn.c
1070
conn->pkt_type = hdev->pkt_type & ACL_PTYPE_MASK;
net/bluetooth/hci_conn.c
1071
conn->link_policy = hdev->link_policy;
net/bluetooth/hci_conn.c
1072
conn->mtu = hdev->acl_mtu;
net/bluetooth/hci_conn.c
1076
hci_copy_identity_address(hdev, &conn->src, &conn->src_type);
net/bluetooth/hci_conn.c
1077
conn->mtu = hdev->le_mtu ? hdev->le_mtu : hdev->acl_mtu;
net/bluetooth/hci_conn.c
1081
conn->le_tx_def_phys = hdev->le_tx_def_phys;
net/bluetooth/hci_conn.c
1082
conn->le_rx_def_phys = hdev->le_tx_def_phys;
net/bluetooth/hci_conn.c
1086
hci_copy_identity_address(hdev, &conn->src, &conn->src_type);
net/bluetooth/hci_conn.c
1088
if (conn->role == HCI_ROLE_MASTER)
net/bluetooth/hci_conn.c
1089
conn->cleanup = cis_cleanup;
net/bluetooth/hci_conn.c
1091
conn->mtu = hdev->iso_mtu;
net/bluetooth/hci_conn.c
1096
hci_copy_identity_address(hdev, &conn->src, &conn->src_type);
net/bluetooth/hci_conn.c
1097
conn->cleanup = bis_cleanup;
net/bluetooth/hci_conn.c
1098
conn->mtu = hdev->iso_mtu;
net/bluetooth/hci_conn.c
1102
conn->pkt_type = (hdev->esco_type & SCO_ESCO_MASK) |
net/bluetooth/hci_conn.c
1105
conn->pkt_type = hdev->pkt_type & SCO_PTYPE_MASK;
net/bluetooth/hci_conn.c
1107
conn->mtu = hdev->sco_mtu;
net/bluetooth/hci_conn.c
1110
conn->pkt_type = hdev->esco_type & ~EDR_ESCO_MASK;
net/bluetooth/hci_conn.c
1111
conn->mtu = hdev->sco_mtu;
net/bluetooth/hci_conn.c
1115
skb_queue_head_init(&conn->data_q);
net/bluetooth/hci_conn.c
1116
skb_queue_head_init(&conn->tx_q.queue);
net/bluetooth/hci_conn.c
1118
INIT_LIST_HEAD(&conn->chan_list);
net/bluetooth/hci_conn.c
1119
INIT_LIST_HEAD(&conn->link_list);
net/bluetooth/hci_conn.c
1121
INIT_DELAYED_WORK(&conn->disc_work, hci_conn_timeout);
net/bluetooth/hci_conn.c
1122
INIT_DELAYED_WORK(&conn->auto_accept_work, hci_conn_auto_accept);
net/bluetooth/hci_conn.c
1123
INIT_DELAYED_WORK(&conn->idle_work, hci_conn_idle);
net/bluetooth/hci_conn.c
1124
INIT_DELAYED_WORK(&conn->le_conn_timeout, le_conn_timeout);
net/bluetooth/hci_conn.c
1126
spin_lock_init(&conn->proto_lock);
net/bluetooth/hci_conn.c
1128
atomic_set(&conn->refcnt, 0);
net/bluetooth/hci_conn.c
1132
hci_conn_hash_add(hdev, conn);
net/bluetooth/hci_conn.c
1138
if (conn->type != SCO_LINK && conn->type != ESCO_LINK) {
net/bluetooth/hci_conn.c
1143
hci_conn_init_sysfs(conn);
net/bluetooth/hci_conn.c
1144
return conn;
net/bluetooth/hci_conn.c
1170
static void hci_conn_cleanup_child(struct hci_conn *conn, u8 reason)
net/bluetooth/hci_conn.c
1179
switch (conn->type) {
net/bluetooth/hci_conn.c
1182
if (HCI_CONN_HANDLE_UNSET(conn->handle))
net/bluetooth/hci_conn.c
1183
hci_conn_failed(conn, reason);
net/bluetooth/hci_conn.c
1188
if ((conn->state != BT_CONNECTED &&
net/bluetooth/hci_conn.c
1189
!test_bit(HCI_CONN_CREATE_CIS, &conn->flags)) ||
net/bluetooth/hci_conn.c
1190
test_bit(HCI_CONN_BIG_CREATED, &conn->flags))
net/bluetooth/hci_conn.c
1191
hci_conn_failed(conn, reason);
net/bluetooth/hci_conn.c
1196
static void hci_conn_unlink(struct hci_conn *conn)
net/bluetooth/hci_conn.c
1198
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1200
bt_dev_dbg(hdev, "hcon %p", conn);
net/bluetooth/hci_conn.c
1202
if (!conn->parent) {
net/bluetooth/hci_conn.c
1205
list_for_each_entry_safe(link, t, &conn->link_list, list) {
net/bluetooth/hci_conn.c
1206
struct hci_conn *child = link->conn;
net/bluetooth/hci_conn.c
1218
hci_conn_cleanup_child(child, conn->abort_reason);
net/bluetooth/hci_conn.c
1224
if (!conn->link)
net/bluetooth/hci_conn.c
1227
list_del_rcu(&conn->link->list);
net/bluetooth/hci_conn.c
1230
hci_conn_drop(conn->parent);
net/bluetooth/hci_conn.c
1231
hci_conn_put(conn->parent);
net/bluetooth/hci_conn.c
1232
conn->parent = NULL;
net/bluetooth/hci_conn.c
1234
kfree(conn->link);
net/bluetooth/hci_conn.c
1235
conn->link = NULL;
net/bluetooth/hci_conn.c
1238
void hci_conn_del(struct hci_conn *conn)
net/bluetooth/hci_conn.c
1240
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1242
BT_DBG("%s hcon %p handle %d", hdev->name, conn, conn->handle);
net/bluetooth/hci_conn.c
1244
hci_conn_unlink(conn);
net/bluetooth/hci_conn.c
1246
disable_delayed_work_sync(&conn->disc_work);
net/bluetooth/hci_conn.c
1247
disable_delayed_work_sync(&conn->auto_accept_work);
net/bluetooth/hci_conn.c
1248
disable_delayed_work_sync(&conn->idle_work);
net/bluetooth/hci_conn.c
1253
hci_conn_hash_del(hdev, conn);
net/bluetooth/hci_conn.c
1263
switch (conn->type) {
net/bluetooth/hci_conn.c
1266
hdev->acl_cnt + conn->sent > hdev->acl_pkts)
net/bluetooth/hci_conn.c
1269
hdev->acl_cnt += conn->sent;
net/bluetooth/hci_conn.c
1272
cancel_delayed_work(&conn->le_conn_timeout);
net/bluetooth/hci_conn.c
1276
hdev->le_cnt + conn->sent > hdev->le_pkts)
net/bluetooth/hci_conn.c
1279
hdev->le_cnt += conn->sent;
net/bluetooth/hci_conn.c
1283
hdev->acl_cnt + conn->sent > hdev->acl_pkts)
net/bluetooth/hci_conn.c
1286
hdev->acl_cnt += conn->sent;
net/bluetooth/hci_conn.c
1293
hdev->iso_cnt + conn->sent > hdev->iso_pkts)
net/bluetooth/hci_conn.c
1296
hdev->iso_cnt += conn->sent;
net/bluetooth/hci_conn.c
1300
skb_queue_purge(&conn->data_q);
net/bluetooth/hci_conn.c
1301
skb_queue_purge(&conn->tx_q.queue);
net/bluetooth/hci_conn.c
1308
hci_conn_cleanup(conn);
net/bluetooth/hci_conn.c
1311
hci_cmd_sync_dequeue(hdev, NULL, conn, NULL);
net/bluetooth/hci_conn.c
137
static void hci_conn_cleanup(struct hci_conn *conn)
net/bluetooth/hci_conn.c
1375
static void hci_le_conn_failed(struct hci_conn *conn, u8 status)
net/bluetooth/hci_conn.c
1377
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1379
hci_connect_le_scan_cleanup(conn, status);
net/bluetooth/hci_conn.c
1388
void hci_conn_failed(struct hci_conn *conn, u8 status)
net/bluetooth/hci_conn.c
139
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1390
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1394
switch (conn->type) {
net/bluetooth/hci_conn.c
1396
hci_le_conn_failed(conn, status);
net/bluetooth/hci_conn.c
1399
mgmt_connect_failed(hdev, conn, status);
net/bluetooth/hci_conn.c
1406
test_and_clear_bit(HCI_CONN_BIG_SYNC_FAILED, &conn->flags);
net/bluetooth/hci_conn.c
1407
test_and_clear_bit(HCI_CONN_PA_SYNC_FAILED, &conn->flags);
net/bluetooth/hci_conn.c
1409
conn->state = BT_CLOSED;
net/bluetooth/hci_conn.c
141
if (test_bit(HCI_CONN_PARAM_REMOVAL_PEND, &conn->flags))
net/bluetooth/hci_conn.c
1410
hci_connect_cfm(conn, status);
net/bluetooth/hci_conn.c
1411
hci_conn_del(conn);
net/bluetooth/hci_conn.c
1415
u8 hci_conn_set_handle(struct hci_conn *conn, u16 handle)
net/bluetooth/hci_conn.c
1417
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1419
bt_dev_dbg(hdev, "hcon %p handle 0x%4.4x", conn, handle);
net/bluetooth/hci_conn.c
142
hci_conn_params_del(conn->hdev, &conn->dst, conn->dst_type);
net/bluetooth/hci_conn.c
1421
if (conn->handle == handle)
net/bluetooth/hci_conn.c
1433
if (conn->abort_reason)
net/bluetooth/hci_conn.c
1434
return conn->abort_reason;
net/bluetooth/hci_conn.c
1436
if (HCI_CONN_HANDLE_UNSET(conn->handle))
net/bluetooth/hci_conn.c
1437
ida_free(&hdev->unset_handle_ida, conn->handle);
net/bluetooth/hci_conn.c
1439
conn->handle = handle;
net/bluetooth/hci_conn.c
144
if (test_and_clear_bit(HCI_CONN_FLUSH_KEY, &conn->flags))
net/bluetooth/hci_conn.c
1448
struct hci_conn *conn;
net/bluetooth/hci_conn.c
145
hci_remove_link_key(hdev, &conn->dst);
net/bluetooth/hci_conn.c
147
hci_chan_list_flush(conn);
net/bluetooth/hci_conn.c
1471
conn = hci_conn_hash_lookup_le(hdev, dst, dst_type);
net/bluetooth/hci_conn.c
1472
if (conn && !test_bit(HCI_CONN_SCANNING, &conn->flags)) {
net/bluetooth/hci_conn.c
149
if (HCI_CONN_HANDLE_UNSET(conn->handle))
net/bluetooth/hci_conn.c
1496
if (conn) {
net/bluetooth/hci_conn.c
1497
bacpy(&conn->dst, dst);
net/bluetooth/hci_conn.c
1499
conn = hci_conn_add_unset(hdev, LE_LINK, dst, dst_type, role);
net/bluetooth/hci_conn.c
150
ida_free(&hdev->unset_handle_ida, conn->handle);
net/bluetooth/hci_conn.c
1500
if (IS_ERR(conn))
net/bluetooth/hci_conn.c
1501
return conn;
net/bluetooth/hci_conn.c
1502
hci_conn_hold(conn);
net/bluetooth/hci_conn.c
1503
conn->pending_sec_level = sec_level;
net/bluetooth/hci_conn.c
1506
conn->sec_level = BT_SECURITY_LOW;
net/bluetooth/hci_conn.c
1507
conn->conn_timeout = conn_timeout;
net/bluetooth/hci_conn.c
1508
conn->le_adv_phy = phy;
net/bluetooth/hci_conn.c
1509
conn->le_adv_sec_phy = sec_phy;
net/bluetooth/hci_conn.c
1511
err = hci_connect_le_sync(hdev, conn);
net/bluetooth/hci_conn.c
1513
hci_conn_del(conn);
net/bluetooth/hci_conn.c
1517
return conn;
net/bluetooth/hci_conn.c
152
if (conn->cleanup)
net/bluetooth/hci_conn.c
1522
struct hci_conn *conn;
net/bluetooth/hci_conn.c
1524
conn = hci_conn_hash_lookup_le(hdev, addr, type);
net/bluetooth/hci_conn.c
1525
if (!conn)
net/bluetooth/hci_conn.c
1528
if (conn->state != BT_CONNECTED)
net/bluetooth/hci_conn.c
153
conn->cleanup(conn);
net/bluetooth/hci_conn.c
155
if (conn->type == SCO_LINK || conn->type == ESCO_LINK) {
net/bluetooth/hci_conn.c
156
switch (conn->setting & SCO_AIRMODE_MASK) {
net/bluetooth/hci_conn.c
1574
struct hci_conn *conn;
net/bluetooth/hci_conn.c
1581
conn = hci_conn_hash_lookup_big(hdev, big);
net/bluetooth/hci_conn.c
1582
if (!conn)
net/bluetooth/hci_conn.c
1598
struct hci_conn *conn;
net/bluetooth/hci_conn.c
1604
conn = hci_conn_hash_lookup_big(hdev, qos->bcast.big);
net/bluetooth/hci_conn.c
1606
if (conn) {
net/bluetooth/hci_conn.c
1610
qos->bcast.bis = conn->iso_qos.bcast.bis;
net/bluetooth/hci_conn.c
1621
conn = hci_conn_hash_lookup_bis(hdev, BDADDR_ANY, bis);
net/bluetooth/hci_conn.c
1622
if (!conn)
net/bluetooth/hci_conn.c
1641
struct hci_conn *conn;
net/bluetooth/hci_conn.c
1660
conn = hci_conn_hash_lookup_per_adv_bis(hdev, dst, qos->bcast.big,
net/bluetooth/hci_conn.c
1662
if (conn)
net/bluetooth/hci_conn.c
1668
conn = hci_conn_hash_lookup_big(hdev, qos->bcast.big);
net/bluetooth/hci_conn.c
1670
if (conn && (memcmp(qos, &conn->iso_qos, sizeof(*qos)) ||
net/bluetooth/hci_conn.c
1671
base_len != conn->le_per_adv_data_len ||
net/bluetooth/hci_conn.c
1672
memcmp(conn->le_per_adv_data, base, base_len)))
net/bluetooth/hci_conn.c
1675
conn = hci_conn_add_unset(hdev, BIS_LINK, dst, 0, HCI_ROLE_MASTER);
net/bluetooth/hci_conn.c
1676
if (IS_ERR(conn))
net/bluetooth/hci_conn.c
1677
return conn;
net/bluetooth/hci_conn.c
1679
conn->state = BT_CONNECT;
net/bluetooth/hci_conn.c
168
debugfs_remove_recursive(conn->debugfs);
net/bluetooth/hci_conn.c
1680
conn->sid = sid;
net/bluetooth/hci_conn.c
1681
conn->conn_timeout = timeout;
net/bluetooth/hci_conn.c
1683
hci_conn_hold(conn);
net/bluetooth/hci_conn.c
1684
return conn;
net/bluetooth/hci_conn.c
1693
struct hci_conn *conn;
net/bluetooth/hci_conn.c
170
hci_conn_del_sysfs(conn);
net/bluetooth/hci_conn.c
1712
conn = hci_conn_hash_lookup_le(hdev, dst, dst_type);
net/bluetooth/hci_conn.c
1713
if (conn) {
net/bluetooth/hci_conn.c
1714
if (conn->pending_sec_level < sec_level)
net/bluetooth/hci_conn.c
1715
conn->pending_sec_level = sec_level;
net/bluetooth/hci_conn.c
1721
conn = hci_conn_add_unset(hdev, LE_LINK, dst, dst_type,
net/bluetooth/hci_conn.c
1723
if (IS_ERR(conn))
net/bluetooth/hci_conn.c
1724
return conn;
net/bluetooth/hci_conn.c
1727
hci_conn_del(conn);
net/bluetooth/hci_conn.c
1731
conn->state = BT_CONNECT;
net/bluetooth/hci_conn.c
1732
set_bit(HCI_CONN_SCANNING, &conn->flags);
net/bluetooth/hci_conn.c
1733
conn->sec_level = BT_SECURITY_LOW;
net/bluetooth/hci_conn.c
1734
conn->pending_sec_level = sec_level;
net/bluetooth/hci_conn.c
1735
conn->conn_timeout = conn_timeout;
net/bluetooth/hci_conn.c
1736
conn->conn_reason = conn_reason;
net/bluetooth/hci_conn.c
1741
hci_conn_hold(conn);
net/bluetooth/hci_conn.c
1742
return conn;
net/bluetooth/hci_conn.c
175
int hci_disconnect(struct hci_conn *conn, __u8 reason)
net/bluetooth/hci_conn.c
177
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
1797
struct hci_conn *conn)
net/bluetooth/hci_conn.c
1802
bt_dev_dbg(hdev, "parent %p hcon %p", parent, conn);
net/bluetooth/hci_conn.c
1804
if (conn->link)
net/bluetooth/hci_conn.c
1805
return conn->link;
net/bluetooth/hci_conn.c
1807
if (conn->parent)
net/bluetooth/hci_conn.c
1814
link->conn = hci_conn_hold(conn);
net/bluetooth/hci_conn.c
1815
conn->link = link;
net/bluetooth/hci_conn.c
1816
conn->parent = hci_conn_get(parent);
net/bluetooth/hci_conn.c
184
if (conn->type == ACL_LINK && conn->role == HCI_ROLE_MASTER &&
net/bluetooth/hci_conn.c
185
(conn->state == BT_CONNECTED || conn->state == BT_CONFIG)) {
net/bluetooth/hci_conn.c
186
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1873
static int hci_le_create_big(struct hci_conn *conn, struct bt_iso_qos *qos)
net/bluetooth/hci_conn.c
1875
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
189
clkoff_cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
1909
struct hci_conn *conn;
net/bluetooth/hci_conn.c
1916
conn = hci_conn_hash_lookup_cig(hdev, cig_id);
net/bluetooth/hci_conn.c
1917
if (!conn) {
net/bluetooth/hci_conn.c
1922
qos = &conn->iso_qos;
net/bluetooth/hci_conn.c
194
return hci_abort_conn(conn, reason);
net/bluetooth/hci_conn.c
1940
conn = hci_conn_hash_lookup_cis(hdev, NULL, 0, cig_id, cis_id);
net/bluetooth/hci_conn.c
1941
if (!conn)
net/bluetooth/hci_conn.c
1944
qos = &conn->iso_qos;
net/bluetooth/hci_conn.c
1948
cis->c_sdu = cpu_to_le16(conn->iso_qos.ucast.out.sdu);
net/bluetooth/hci_conn.c
1949
cis->p_sdu = cpu_to_le16(conn->iso_qos.ucast.in.sdu);
net/bluetooth/hci_conn.c
1969
static bool hci_le_set_cig_params(struct hci_conn *conn, struct bt_iso_qos *qos)
net/bluetooth/hci_conn.c
197
static void hci_add_sco(struct hci_conn *conn, __u16 handle)
net/bluetooth/hci_conn.c
1971
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
199
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
202
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2021
conn->iso_qos = *qos;
net/bluetooth/hci_conn.c
204
conn->state = BT_CONNECT;
net/bluetooth/hci_conn.c
205
conn->out = true;
net/bluetooth/hci_conn.c
207
conn->attempt++;
net/bluetooth/hci_conn.c
2097
bool hci_iso_setup_path(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2099
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
210
cp.pkt_type = cpu_to_le16(conn->pkt_type);
net/bluetooth/hci_conn.c
2104
if (conn->iso_qos.ucast.out.sdu) {
net/bluetooth/hci_conn.c
2105
cmd.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
2115
if (conn->iso_qos.ucast.in.sdu) {
net/bluetooth/hci_conn.c
2116
cmd.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
2129
int hci_conn_check_create_cis(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2131
if (conn->type != CIS_LINK)
net/bluetooth/hci_conn.c
2134
if (!conn->parent || conn->parent->state != BT_CONNECTED ||
net/bluetooth/hci_conn.c
2135
conn->state != BT_CONNECT || HCI_CONN_HANDLE_UNSET(conn->handle))
net/bluetooth/hci_conn.c
2148
struct hci_conn *conn;
net/bluetooth/hci_conn.c
215
static bool find_next_esco_param(struct hci_conn *conn,
net/bluetooth/hci_conn.c
2153
list_for_each_entry_rcu(conn, &hdev->conn_hash.list, list) {
net/bluetooth/hci_conn.c
2154
if (test_bit(HCI_CONN_CREATE_CIS, &conn->flags)) {
net/bluetooth/hci_conn.c
2159
if (!hci_conn_check_create_cis(conn))
net/bluetooth/hci_conn.c
2172
static void hci_iso_qos_setup(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_conn.c
2177
qos->sdu = conn->mtu;
net/bluetooth/hci_conn.c
218
if (!conn->parent)
net/bluetooth/hci_conn.c
2186
qos->interval = conn->le_conn_interval * 1250;
net/bluetooth/hci_conn.c
2190
qos->latency = conn->le_conn_latency;
net/bluetooth/hci_conn.c
2195
struct hci_conn *conn = data;
net/bluetooth/hci_conn.c
2196
struct bt_iso_qos *qos = &conn->iso_qos;
net/bluetooth/hci_conn.c
2201
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_conn.c
221
for (; conn->attempt <= size; conn->attempt++) {
net/bluetooth/hci_conn.c
2213
err = hci_start_per_adv_sync(hdev, qos->bcast.bis, conn->sid,
net/bluetooth/hci_conn.c
2214
conn->le_per_adv_data_len,
net/bluetooth/hci_conn.c
2215
conn->le_per_adv_data, flags, interval,
net/bluetooth/hci_conn.c
222
if (lmp_esco_2m_capable(conn->parent) ||
net/bluetooth/hci_conn.c
2220
return hci_le_create_big(conn, &conn->iso_qos);
net/bluetooth/hci_conn.c
2227
struct hci_conn *conn;
net/bluetooth/hci_conn.c
223
(esco_param[conn->attempt - 1].pkt_type & ESCO_2EV3))
net/bluetooth/hci_conn.c
2231
conn = hci_conn_add_unset(hdev, PA_LINK, dst, dst_type, HCI_ROLE_SLAVE);
net/bluetooth/hci_conn.c
2232
if (IS_ERR(conn))
net/bluetooth/hci_conn.c
2233
return conn;
net/bluetooth/hci_conn.c
2235
conn->iso_qos = *qos;
net/bluetooth/hci_conn.c
2236
conn->sid = sid;
net/bluetooth/hci_conn.c
2237
conn->state = BT_LISTEN;
net/bluetooth/hci_conn.c
2238
conn->conn_timeout = msecs_to_jiffies(qos->bcast.sync_timeout * 10);
net/bluetooth/hci_conn.c
2240
hci_conn_hold(conn);
net/bluetooth/hci_conn.c
2242
hci_connect_pa_sync(hdev, conn);
net/bluetooth/hci_conn.c
2244
return conn;
net/bluetooth/hci_conn.c
226
conn, conn->attempt);
net/bluetooth/hci_conn.c
2274
struct hci_conn *conn = data;
net/bluetooth/hci_conn.c
2276
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/hci_conn.c
2283
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_conn.c
2288
hci_connect_cfm(conn, err);
net/bluetooth/hci_conn.c
2289
hci_conn_del(conn);
net/bluetooth/hci_conn.c
229
return conn->attempt <= size;
net/bluetooth/hci_conn.c
2295
hci_conn_put(conn);
net/bluetooth/hci_conn.c
2302
struct hci_conn *conn;
net/bluetooth/hci_conn.c
2308
conn = hci_conn_hash_lookup_big_state(hdev, qos->bcast.big, BT_OPEN,
net/bluetooth/hci_conn.c
2310
if (conn) {
net/bluetooth/hci_conn.c
2311
memcpy(qos, &conn->iso_qos, sizeof(*qos));
net/bluetooth/hci_conn.c
2312
conn->state = BT_CONNECTED;
net/bluetooth/hci_conn.c
2313
return conn;
net/bluetooth/hci_conn.c
2321
conn = hci_add_bis(hdev, dst, sid, qos, base_len, eir, timeout);
net/bluetooth/hci_conn.c
2322
if (IS_ERR(conn))
net/bluetooth/hci_conn.c
2323
return conn;
net/bluetooth/hci_conn.c
2326
conn->le_tx_def_phys = qos->bcast.out.phys;
net/bluetooth/hci_conn.c
2330
memcpy(conn->le_per_adv_data, eir, sizeof(eir));
net/bluetooth/hci_conn.c
2331
conn->le_per_adv_data_len = base_len;
net/bluetooth/hci_conn.c
2334
hci_iso_qos_setup(hdev, conn, &qos->bcast.out,
net/bluetooth/hci_conn.c
2335
conn->le_tx_def_phys ? conn->le_tx_def_phys :
net/bluetooth/hci_conn.c
2338
conn->iso_qos = *qos;
net/bluetooth/hci_conn.c
2339
conn->state = BT_BOUND;
net/bluetooth/hci_conn.c
2343
conn->iso_qos.bcast.big);
net/bluetooth/hci_conn.c
2344
if (parent && parent != conn) {
net/bluetooth/hci_conn.c
2345
link = hci_conn_link(parent, conn);
net/bluetooth/hci_conn.c
2346
hci_conn_drop(conn);
net/bluetooth/hci_conn.c
2351
return conn;
net/bluetooth/hci_conn.c
2354
int hci_past_bis(struct hci_conn *conn, bdaddr_t *dst, __u8 dst_type)
net/bluetooth/hci_conn.c
2359
le = hci_conn_hash_lookup_le(conn->hdev, dst, dst_type);
net/bluetooth/hci_conn.c
2363
return hci_past_sync(conn, le);
net/bluetooth/hci_conn.c
2366
static void bis_mark_per_adv(struct hci_conn *conn, void *data)
net/bluetooth/hci_conn.c
2371
if (bacmp(&conn->dst, BDADDR_ANY))
net/bluetooth/hci_conn.c
2374
if (d->big != conn->iso_qos.bcast.big ||
net/bluetooth/hci_conn.c
2376
d->bis != conn->iso_qos.bcast.bis)
net/bluetooth/hci_conn.c
2379
set_bit(HCI_CONN_PER_ADV, &conn->flags);
net/bluetooth/hci_conn.c
2387
struct hci_conn *conn;
net/bluetooth/hci_conn.c
2391
conn = hci_bind_bis(hdev, dst, sid, qos, base_len, base, timeout);
net/bluetooth/hci_conn.c
2392
if (IS_ERR(conn))
net/bluetooth/hci_conn.c
2393
return conn;
net/bluetooth/hci_conn.c
2395
if (conn->state == BT_CONNECTED)
net/bluetooth/hci_conn.c
2396
return conn;
net/bluetooth/hci_conn.c
2401
if (conn->sid == HCI_SID_INVALID) {
net/bluetooth/hci_conn.c
2406
conn->sid = sid;
net/bluetooth/hci_conn.c
2423
err = hci_cmd_sync_queue(hdev, create_big_sync, hci_conn_get(conn),
net/bluetooth/hci_conn.c
2426
hci_conn_drop(conn);
net/bluetooth/hci_conn.c
2427
hci_conn_put(conn);
net/bluetooth/hci_conn.c
2431
return conn;
net/bluetooth/hci_conn.c
2483
int hci_conn_check_link_mode(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2485
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2491
if (hci_dev_test_flag(conn->hdev, HCI_SC_ONLY)) {
net/bluetooth/hci_conn.c
2492
if (!hci_conn_sc_enabled(conn) ||
net/bluetooth/hci_conn.c
2493
!test_bit(HCI_CONN_AES_CCM, &conn->flags) ||
net/bluetooth/hci_conn.c
2494
conn->key_type != HCI_LK_AUTH_COMBINATION_P256)
net/bluetooth/hci_conn.c
2508
if (conn->sec_level == BT_SECURITY_FIPS &&
net/bluetooth/hci_conn.c
2509
!test_bit(HCI_CONN_AES_CCM, &conn->flags)) {
net/bluetooth/hci_conn.c
2510
bt_dev_err(conn->hdev,
net/bluetooth/hci_conn.c
2515
if (hci_conn_ssp_enabled(conn) &&
net/bluetooth/hci_conn.c
2516
!test_bit(HCI_CONN_ENCRYPT, &conn->flags))
net/bluetooth/hci_conn.c
2523
static int hci_conn_auth(struct hci_conn *conn, __u8 sec_level, __u8 auth_type)
net/bluetooth/hci_conn.c
2525
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2527
if (conn->pending_sec_level > sec_level)
net/bluetooth/hci_conn.c
2528
sec_level = conn->pending_sec_level;
net/bluetooth/hci_conn.c
2530
if (sec_level > conn->sec_level)
net/bluetooth/hci_conn.c
2531
conn->pending_sec_level = sec_level;
net/bluetooth/hci_conn.c
2532
else if (test_bit(HCI_CONN_AUTH, &conn->flags))
net/bluetooth/hci_conn.c
2536
auth_type |= (conn->auth_type & 0x01);
net/bluetooth/hci_conn.c
2538
conn->auth_type = auth_type;
net/bluetooth/hci_conn.c
2540
if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->flags)) {
net/bluetooth/hci_conn.c
2543
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
2544
hci_send_cmd(conn->hdev, HCI_OP_AUTH_REQUESTED,
net/bluetooth/hci_conn.c
2550
if (!test_bit(HCI_CONN_ENCRYPT, &conn->flags))
net/bluetooth/hci_conn.c
2551
set_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags);
net/bluetooth/hci_conn.c
2558
static void hci_conn_encrypt(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2560
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2562
if (!test_and_set_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags)) {
net/bluetooth/hci_conn.c
2564
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
2566
hci_send_cmd(conn->hdev, HCI_OP_SET_CONN_ENCRYPT, sizeof(cp),
net/bluetooth/hci_conn.c
2572
int hci_conn_security(struct hci_conn *conn, __u8 sec_level, __u8 auth_type,
net/bluetooth/hci_conn.c
2575
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2577
if (conn->type == LE_LINK)
net/bluetooth/hci_conn.c
2578
return smp_conn_security(conn, sec_level);
net/bluetooth/hci_conn.c
2586
if (sec_level == BT_SECURITY_LOW && !hci_conn_ssp_enabled(conn))
net/bluetooth/hci_conn.c
2590
if (!test_bit(HCI_CONN_AUTH, &conn->flags))
net/bluetooth/hci_conn.c
2593
switch (conn->key_type) {
net/bluetooth/hci_conn.c
2622
if (sec_level <= BT_SECURITY_MEDIUM || conn->pin_length == 16)
net/bluetooth/hci_conn.c
2630
if (test_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags))
net/bluetooth/hci_conn.c
2634
set_bit(HCI_CONN_AUTH_INITIATOR, &conn->flags);
net/bluetooth/hci_conn.c
2636
if (!hci_conn_auth(conn, sec_level, auth_type))
net/bluetooth/hci_conn.c
2640
if (test_bit(HCI_CONN_ENCRYPT, &conn->flags)) {
net/bluetooth/hci_conn.c
2644
if (!conn->enc_key_size)
net/bluetooth/hci_conn.c
2651
hci_conn_encrypt(conn);
net/bluetooth/hci_conn.c
2657
int hci_conn_check_secure(struct hci_conn *conn, __u8 sec_level)
net/bluetooth/hci_conn.c
2659
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2666
if (conn->sec_level == BT_SECURITY_HIGH ||
net/bluetooth/hci_conn.c
2667
conn->sec_level == BT_SECURITY_FIPS)
net/bluetooth/hci_conn.c
2676
int hci_conn_switch_role(struct hci_conn *conn, __u8 role)
net/bluetooth/hci_conn.c
2678
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2680
if (role == conn->role)
net/bluetooth/hci_conn.c
2683
if (!test_and_set_bit(HCI_CONN_RSWITCH_PEND, &conn->flags)) {
net/bluetooth/hci_conn.c
2685
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/hci_conn.c
2687
hci_send_cmd(conn->hdev, HCI_OP_SWITCH_ROLE, sizeof(cp), &cp);
net/bluetooth/hci_conn.c
2695
void hci_conn_enter_active_mode(struct hci_conn *conn, __u8 force_active)
net/bluetooth/hci_conn.c
2697
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
2699
BT_DBG("hcon %p mode %d", conn, conn->mode);
net/bluetooth/hci_conn.c
2701
if (conn->mode != HCI_CM_SNIFF)
net/bluetooth/hci_conn.c
2704
if (!test_bit(HCI_CONN_POWER_SAVE, &conn->flags) && !force_active)
net/bluetooth/hci_conn.c
2707
if (!test_and_set_bit(HCI_CONN_MODE_CHANGE_PEND, &conn->flags)) {
net/bluetooth/hci_conn.c
2709
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
2715
mod_delayed_work(hdev->workqueue, &conn->idle_work,
net/bluetooth/hci_conn.c
2723
struct hci_conn *conn;
net/bluetooth/hci_conn.c
2731
while ((conn = list_first_entry_or_null(head,
net/bluetooth/hci_conn.c
2734
conn->state = BT_CLOSED;
net/bluetooth/hci_conn.c
2735
hci_disconn_cfm(conn, HCI_ERROR_LOCAL_HOST_TERM);
net/bluetooth/hci_conn.c
2736
hci_conn_del(conn);
net/bluetooth/hci_conn.c
2740
static u32 get_link_mode(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2744
if (conn->role == HCI_ROLE_MASTER)
net/bluetooth/hci_conn.c
2747
if (test_bit(HCI_CONN_ENCRYPT, &conn->flags))
net/bluetooth/hci_conn.c
2750
if (test_bit(HCI_CONN_AUTH, &conn->flags))
net/bluetooth/hci_conn.c
2753
if (test_bit(HCI_CONN_SECURE, &conn->flags))
net/bluetooth/hci_conn.c
2756
if (test_bit(HCI_CONN_FIPS, &conn->flags))
net/bluetooth/hci_conn.c
281
struct hci_conn *conn = conn_handle->conn;
net/bluetooth/hci_conn.c
2819
struct hci_conn *conn;
net/bluetooth/hci_conn.c
2826
conn = hci_conn_hash_lookup_ba(hdev, req.type, &req.bdaddr);
net/bluetooth/hci_conn.c
2827
if (conn) {
net/bluetooth/hci_conn.c
2828
bacpy(&ci.bdaddr, &conn->dst);
net/bluetooth/hci_conn.c
2829
ci.handle = conn->handle;
net/bluetooth/hci_conn.c
2830
ci.type = conn->type;
net/bluetooth/hci_conn.c
2831
ci.out = conn->out;
net/bluetooth/hci_conn.c
2832
ci.state = conn->state;
net/bluetooth/hci_conn.c
2833
ci.link_mode = get_link_mode(conn);
net/bluetooth/hci_conn.c
2837
if (!conn)
net/bluetooth/hci_conn.c
2846
struct hci_conn *conn;
net/bluetooth/hci_conn.c
2852
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &req.bdaddr);
net/bluetooth/hci_conn.c
2853
if (conn)
net/bluetooth/hci_conn.c
2854
req.type = conn->auth_type;
net/bluetooth/hci_conn.c
2857
if (!conn)
net/bluetooth/hci_conn.c
2863
struct hci_chan *hci_chan_create(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2865
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
2868
BT_DBG("%s hcon %p", hdev->name, conn);
net/bluetooth/hci_conn.c
2870
if (test_bit(HCI_CONN_DROP, &conn->flags)) {
net/bluetooth/hci_conn.c
2879
chan->conn = hci_conn_get(conn);
net/bluetooth/hci_conn.c
288
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_conn.c
2883
list_add_rcu(&chan->list, &conn->chan_list);
net/bluetooth/hci_conn.c
2890
struct hci_conn *conn = chan->conn;
net/bluetooth/hci_conn.c
2891
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
2893
BT_DBG("%s hcon %p chan %p", hdev->name, conn, chan);
net/bluetooth/hci_conn.c
2900
set_bit(HCI_CONN_DROP, &conn->flags);
net/bluetooth/hci_conn.c
2902
hci_conn_put(conn);
net/bluetooth/hci_conn.c
2908
void hci_chan_list_flush(struct hci_conn *conn)
net/bluetooth/hci_conn.c
291
bt_dev_dbg(hdev, "hcon %p", conn);
net/bluetooth/hci_conn.c
2912
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2914
list_for_each_entry_safe(chan, n, &conn->chan_list, list)
net/bluetooth/hci_conn.c
293
configure_datapath_sync(hdev, &conn->codec);
net/bluetooth/hci_conn.c
295
conn->state = BT_CONNECT;
net/bluetooth/hci_conn.c
2950
u32 hci_conn_get_phy(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2958
switch (conn->type) {
net/bluetooth/hci_conn.c
296
conn->out = true;
net/bluetooth/hci_conn.c
2973
if (conn->pkt_type & (HCI_DM3 | HCI_DH3))
net/bluetooth/hci_conn.c
2976
if (conn->pkt_type & (HCI_DM5 | HCI_DH5))
net/bluetooth/hci_conn.c
298
conn->attempt++;
net/bluetooth/hci_conn.c
2982
if (!(conn->pkt_type & HCI_2DH1))
net/bluetooth/hci_conn.c
2985
if (!(conn->pkt_type & HCI_2DH3))
net/bluetooth/hci_conn.c
2988
if (!(conn->pkt_type & HCI_2DH5))
net/bluetooth/hci_conn.c
2994
if (!(conn->pkt_type & HCI_3DH1))
net/bluetooth/hci_conn.c
2997
if (!(conn->pkt_type & HCI_3DH3))
net/bluetooth/hci_conn.c
3000
if (!(conn->pkt_type & HCI_3DH5))
net/bluetooth/hci_conn.c
3009
if (!(conn->pkt_type & (ESCO_EV4 | ESCO_EV5)))
net/bluetooth/hci_conn.c
3013
if (!(conn->pkt_type & ESCO_2EV3))
net/bluetooth/hci_conn.c
3016
if (!(conn->pkt_type & ESCO_2EV5))
net/bluetooth/hci_conn.c
3020
if (!(conn->pkt_type & ESCO_3EV3))
net/bluetooth/hci_conn.c
3023
if (!(conn->pkt_type & ESCO_3EV5))
net/bluetooth/hci_conn.c
3029
if (conn->le_tx_def_phys & HCI_LE_SET_PHY_1M)
net/bluetooth/hci_conn.c
3032
if (conn->le_rx_def_phys & HCI_LE_SET_PHY_1M)
net/bluetooth/hci_conn.c
3035
if (conn->le_tx_def_phys & HCI_LE_SET_PHY_2M)
net/bluetooth/hci_conn.c
3038
if (conn->le_rx_def_phys & HCI_LE_SET_PHY_2M)
net/bluetooth/hci_conn.c
3041
if (conn->le_tx_def_phys & HCI_LE_SET_PHY_CODED)
net/bluetooth/hci_conn.c
3044
if (conn->le_rx_def_phys & HCI_LE_SET_PHY_CODED)
net/bluetooth/hci_conn.c
3053
static u16 bt_phy_pkt_type(struct hci_conn *conn, u32 phys)
net/bluetooth/hci_conn.c
3055
u16 pkt_type = conn->pkt_type;
net/bluetooth/hci_conn.c
307
switch (conn->codec.id) {
net/bluetooth/hci_conn.c
309
if (!find_next_esco_param(conn, esco_param_msbc,
net/bluetooth/hci_conn.c
3129
int hci_conn_set_phy(struct hci_conn *conn, u32 phys)
net/bluetooth/hci_conn.c
313
param = &esco_param_msbc[conn->attempt - 1];
net/bluetooth/hci_conn.c
3133
switch (conn->type) {
net/bluetooth/hci_conn.c
3142
return hci_acl_change_pkt_type(conn,
net/bluetooth/hci_conn.c
3143
bt_phy_pkt_type(conn, phys));
net/bluetooth/hci_conn.c
3152
return hci_le_set_phy(conn, tx_phys, rx_phys);
net/bluetooth/hci_conn.c
3160
struct hci_conn *conn = data;
net/bluetooth/hci_conn.c
3162
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_conn.c
3165
return hci_abort_conn_sync(hdev, conn, conn->abort_reason);
net/bluetooth/hci_conn.c
3170
struct hci_conn *conn = data;
net/bluetooth/hci_conn.c
3172
hci_conn_put(conn);
net/bluetooth/hci_conn.c
3175
int hci_abort_conn(struct hci_conn *conn, u8 reason)
net/bluetooth/hci_conn.c
3177
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
3183
if (conn->abort_reason)
net/bluetooth/hci_conn.c
3186
bt_dev_dbg(hdev, "handle 0x%2.2x reason 0x%2.2x", conn->handle, reason);
net/bluetooth/hci_conn.c
3188
conn->abort_reason = reason;
net/bluetooth/hci_conn.c
3193
if (!hci_cancel_connect_sync(hdev, conn))
net/bluetooth/hci_conn.c
3200
err = hci_cmd_sync_run_once(hdev, abort_conn_sync, hci_conn_get(conn),
net/bluetooth/hci_conn.c
3203
hci_conn_put(conn);
net/bluetooth/hci_conn.c
3242
void hci_conn_tx_queue(struct hci_conn *conn, struct sk_buff *skb)
net/bluetooth/hci_conn.c
3244
struct tx_queue *comp = &conn->tx_q;
net/bluetooth/hci_conn.c
3256
switch (conn->type) {
net/bluetooth/hci_conn.c
3265
if (!hci_dev_test_flag(conn->hdev, HCI_SCO_FLOWCTL))
net/bluetooth/hci_conn.c
328
cp.in_data_path = conn->codec.data_path;
net/bluetooth/hci_conn.c
329
cp.out_data_path = conn->codec.data_path;
net/bluetooth/hci_conn.c
3305
void hci_conn_tx_dequeue(struct hci_conn *conn)
net/bluetooth/hci_conn.c
3307
struct tx_queue *comp = &conn->tx_q;
net/bluetooth/hci_conn.c
3332
u8 *hci_conn_key_enc_size(struct hci_conn *conn)
net/bluetooth/hci_conn.c
3334
if (conn->type == ACL_LINK) {
net/bluetooth/hci_conn.c
3337
key = hci_find_link_key(conn->hdev, &conn->dst);
net/bluetooth/hci_conn.c
3342
} else if (conn->type == LE_LINK) {
net/bluetooth/hci_conn.c
3345
ltk = hci_find_ltk(conn->hdev, &conn->dst, conn->dst_type,
net/bluetooth/hci_conn.c
3346
conn->role);
net/bluetooth/hci_conn.c
335
if (!find_next_esco_param(conn, esco_param_msbc,
net/bluetooth/hci_conn.c
339
param = &esco_param_msbc[conn->attempt - 1];
net/bluetooth/hci_conn.c
354
cp.in_data_path = conn->codec.data_path;
net/bluetooth/hci_conn.c
355
cp.out_data_path = conn->codec.data_path;
net/bluetooth/hci_conn.c
361
if (conn->parent && lmp_esco_capable(conn->parent)) {
net/bluetooth/hci_conn.c
362
if (!find_next_esco_param(conn, esco_param_cvsd,
net/bluetooth/hci_conn.c
365
param = &esco_param_cvsd[conn->attempt - 1];
net/bluetooth/hci_conn.c
367
if (conn->attempt > ARRAY_SIZE(sco_param_cvsd))
net/bluetooth/hci_conn.c
369
param = &sco_param_cvsd[conn->attempt - 1];
net/bluetooth/hci_conn.c
385
cp.in_data_path = conn->codec.data_path;
net/bluetooth/hci_conn.c
386
cp.out_data_path = conn->codec.data_path;
net/bluetooth/hci_conn.c
404
static bool hci_setup_sync_conn(struct hci_conn *conn, __u16 handle)
net/bluetooth/hci_conn.c
406
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
410
bt_dev_dbg(hdev, "hcon %p", conn);
net/bluetooth/hci_conn.c
412
conn->state = BT_CONNECT;
net/bluetooth/hci_conn.c
413
conn->out = true;
net/bluetooth/hci_conn.c
415
conn->attempt++;
net/bluetooth/hci_conn.c
421
cp.voice_setting = cpu_to_le16(conn->setting);
net/bluetooth/hci_conn.c
423
switch (conn->setting & SCO_AIRMODE_MASK) {
net/bluetooth/hci_conn.c
425
if (!find_next_esco_param(conn, esco_param_msbc,
net/bluetooth/hci_conn.c
428
param = &esco_param_msbc[conn->attempt - 1];
net/bluetooth/hci_conn.c
431
if (conn->parent && lmp_esco_capable(conn->parent)) {
net/bluetooth/hci_conn.c
432
if (!find_next_esco_param(conn, esco_param_cvsd,
net/bluetooth/hci_conn.c
435
param = &esco_param_cvsd[conn->attempt - 1];
net/bluetooth/hci_conn.c
437
if (conn->attempt > ARRAY_SIZE(sco_param_cvsd))
net/bluetooth/hci_conn.c
439
param = &sco_param_cvsd[conn->attempt - 1];
net/bluetooth/hci_conn.c
45
struct hci_conn *conn;
net/bluetooth/hci_conn.c
456
bool hci_setup_sync(struct hci_conn *conn, __u16 handle)
net/bluetooth/hci_conn.c
461
if (enhanced_sync_conn_capable(conn->hdev)) {
net/bluetooth/hci_conn.c
467
conn_handle->conn = conn;
net/bluetooth/hci_conn.c
469
result = hci_cmd_sync_queue(conn->hdev, hci_enhanced_setup_sync,
net/bluetooth/hci_conn.c
477
return hci_setup_sync_conn(conn, handle);
net/bluetooth/hci_conn.c
481
struct hci_conn *conn;
net/bluetooth/hci_conn.c
491
struct hci_conn *conn = d->conn;
net/bluetooth/hci_conn.c
504
if (!hci_conn_valid(hdev, conn)) {
net/bluetooth/hci_conn.c
510
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
517
timeout = conn->conn_timeout;
net/bluetooth/hci_conn.c
533
params = hci_conn_params_lookup(hdev, &conn->dst, conn->dst_type);
net/bluetooth/hci_conn.c
546
mgmt_new_conn_param(hdev, &conn->dst, conn->dst_type, store_hint,
net/bluetooth/hci_conn.c
556
hci_conn_put(d->conn);
net/bluetooth/hci_conn.c
560
void hci_le_conn_update(struct hci_conn *conn, u16 min, u16 max, u16 latency,
net/bluetooth/hci_conn.c
569
hci_conn_get(conn);
net/bluetooth/hci_conn.c
570
d->conn = conn;
net/bluetooth/hci_conn.c
576
if (hci_cmd_sync_queue(conn->hdev, le_conn_update_sync, d,
net/bluetooth/hci_conn.c
578
hci_conn_put(conn);
net/bluetooth/hci_conn.c
583
void hci_le_start_enc(struct hci_conn *conn, __le16 ediv, __le64 rand,
net/bluetooth/hci_conn.c
586
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
589
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
593
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
602
void hci_sco_setup(struct hci_conn *conn, __u8 status)
net/bluetooth/hci_conn.c
606
link = list_first_entry_or_null(&conn->link_list, struct hci_link, list);
net/bluetooth/hci_conn.c
607
if (!link || !link->conn)
net/bluetooth/hci_conn.c
610
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
613
if (lmp_esco_capable(conn->hdev))
net/bluetooth/hci_conn.c
614
hci_setup_sync(link->conn, conn->handle);
net/bluetooth/hci_conn.c
616
hci_add_sco(link->conn, conn->handle);
net/bluetooth/hci_conn.c
618
hci_connect_cfm(link->conn, status);
net/bluetooth/hci_conn.c
619
hci_conn_del(link->conn);
net/bluetooth/hci_conn.c
625
struct hci_conn *conn = container_of(work, struct hci_conn,
net/bluetooth/hci_conn.c
627
int refcnt = atomic_read(&conn->refcnt);
net/bluetooth/hci_conn.c
629
BT_DBG("hcon %p state %s", conn, state_to_string(conn->state));
net/bluetooth/hci_conn.c
643
hci_abort_conn(conn, hci_proto_disconn_ind(conn));
net/bluetooth/hci_conn.c
649
struct hci_conn *conn = container_of(work, struct hci_conn,
net/bluetooth/hci_conn.c
651
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
653
BT_DBG("hcon %p mode %d", conn, conn->mode);
net/bluetooth/hci_conn.c
655
if (!lmp_sniff_capable(hdev) || !lmp_sniff_capable(conn))
net/bluetooth/hci_conn.c
658
if (conn->mode != HCI_CM_ACTIVE || !(conn->link_policy & HCI_LP_SNIFF))
net/bluetooth/hci_conn.c
661
if (lmp_sniffsubr_capable(hdev) && lmp_sniffsubr_capable(conn)) {
net/bluetooth/hci_conn.c
663
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
670
if (!test_and_set_bit(HCI_CONN_MODE_CHANGE_PEND, &conn->flags)) {
net/bluetooth/hci_conn.c
672
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
68
void hci_connect_le_scan_cleanup(struct hci_conn *conn, u8 status)
net/bluetooth/hci_conn.c
683
struct hci_conn *conn = container_of(work, struct hci_conn,
net/bluetooth/hci_conn.c
686
hci_send_cmd(conn->hdev, HCI_OP_USER_CONFIRM_REPLY, sizeof(conn->dst),
net/bluetooth/hci_conn.c
687
&conn->dst);
net/bluetooth/hci_conn.c
709
struct hci_conn *conn = container_of(work, struct hci_conn,
net/bluetooth/hci_conn.c
71
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
711
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
720
if (conn->role == HCI_ROLE_SLAVE) {
net/bluetooth/hci_conn.c
724
hci_conn_failed(conn, HCI_ERROR_ADVERTISING_TIMEOUT);
net/bluetooth/hci_conn.c
729
hci_abort_conn(conn, HCI_ERROR_REMOTE_USER_TERM);
net/bluetooth/hci_conn.c
748
static void bis_list(struct hci_conn *conn, void *data)
net/bluetooth/hci_conn.c
753
if (bacmp(&conn->dst, BDADDR_ANY))
net/bluetooth/hci_conn.c
756
if (d->big != conn->iso_qos.bcast.big || d->bis == BT_ISO_QOS_BIS_UNSET ||
net/bluetooth/hci_conn.c
757
d->bis != conn->iso_qos.bcast.bis)
net/bluetooth/hci_conn.c
76
bdaddr = &conn->dst;
net/bluetooth/hci_conn.c
77
bdaddr_type = conn->dst_type;
net/bluetooth/hci_conn.c
785
static int hci_le_terminate_big(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_conn.c
790
bt_dev_dbg(hdev, "big 0x%2.2x bis 0x%2.2x", conn->iso_qos.bcast.big,
net/bluetooth/hci_conn.c
791
conn->iso_qos.bcast.bis);
net/bluetooth/hci_conn.c
797
d->big = conn->iso_qos.bcast.big;
net/bluetooth/hci_conn.c
798
d->bis = conn->iso_qos.bcast.bis;
net/bluetooth/hci_conn.c
799
d->big_term = test_and_clear_bit(HCI_CONN_BIG_CREATED, &conn->flags);
net/bluetooth/hci_conn.c
825
static void find_bis(struct hci_conn *conn, void *data)
net/bluetooth/hci_conn.c
830
if (d->big != conn->iso_qos.bcast.big)
net/bluetooth/hci_conn.c
836
static int hci_le_big_terminate(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_conn.c
841
bt_dev_dbg(hdev, "hcon %p big 0x%2.2x sync_handle 0x%4.4x", conn,
net/bluetooth/hci_conn.c
842
conn->iso_qos.bcast.big, conn->sync_handle);
net/bluetooth/hci_conn.c
848
d->big = conn->iso_qos.bcast.big;
net/bluetooth/hci_conn.c
849
d->sync_handle = conn->sync_handle;
net/bluetooth/hci_conn.c
851
if (conn->type == PA_LINK &&
net/bluetooth/hci_conn.c
852
test_and_clear_bit(HCI_CONN_PA_SYNC, &conn->flags)) {
net/bluetooth/hci_conn.c
862
if (test_and_clear_bit(HCI_CONN_BIG_SYNC, &conn->flags)) {
net/bluetooth/hci_conn.c
889
static void bis_cleanup(struct hci_conn *conn)
net/bluetooth/hci_conn.c
891
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
894
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/hci_conn.c
896
if (conn->role == HCI_ROLE_MASTER) {
net/bluetooth/hci_conn.c
897
if (!test_and_clear_bit(HCI_CONN_PER_ADV, &conn->flags))
net/bluetooth/hci_conn.c
904
conn->iso_qos.bcast.big,
net/bluetooth/hci_conn.c
91
if (params->conn) {
net/bluetooth/hci_conn.c
911
conn->iso_qos.bcast.big,
net/bluetooth/hci_conn.c
918
conn->iso_qos.bcast.big,
net/bluetooth/hci_conn.c
92
hci_conn_drop(params->conn);
net/bluetooth/hci_conn.c
924
hci_le_terminate_big(hdev, conn);
net/bluetooth/hci_conn.c
926
hci_le_big_terminate(hdev, conn);
net/bluetooth/hci_conn.c
93
hci_conn_put(params->conn);
net/bluetooth/hci_conn.c
94
params->conn = NULL;
net/bluetooth/hci_conn.c
945
static void find_cis(struct hci_conn *conn, void *data)
net/bluetooth/hci_conn.c
950
if (!bacmp(&conn->dst, BDADDR_ANY) || d->cig != conn->iso_qos.ucast.cig)
net/bluetooth/hci_conn.c
960
static void cis_cleanup(struct hci_conn *conn)
net/bluetooth/hci_conn.c
962
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
965
if (conn->iso_qos.ucast.cig == BT_ISO_QOS_CIG_UNSET)
net/bluetooth/hci_conn.c
969
d.cig = conn->iso_qos.ucast.cig;
net/bluetooth/hci_conn.c
982
hci_le_remove_cig(hdev, conn->iso_qos.ucast.cig);
net/bluetooth/hci_conn.c
995
struct hci_conn *conn;
net/bluetooth/hci_core.c
1094
static bool hci_persistent_key(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_core.c
1110
if (!conn)
net/bluetooth/hci_core.c
1114
if (conn->type == LE_LINK)
net/bluetooth/hci_core.c
1118
if (conn->auth_type > 0x01 && conn->remote_auth > 0x01)
net/bluetooth/hci_core.c
1122
if (conn->auth_type == 0x02 || conn->auth_type == 0x03)
net/bluetooth/hci_core.c
1126
if (conn->remote_auth == 0x02 || conn->remote_auth == 0x03)
net/bluetooth/hci_core.c
1236
struct link_key *hci_add_link_key(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_core.c
1248
old_key_type = conn ? conn->key_type : 0xff;
net/bluetooth/hci_core.c
1261
(!conn || conn->remote_auth == 0xff) && old_key_type == 0xff) {
net/bluetooth/hci_core.c
1263
if (conn)
net/bluetooth/hci_core.c
1264
conn->key_type = type;
net/bluetooth/hci_core.c
1277
*persistent = hci_persistent_key(hdev, conn, type,
net/bluetooth/hci_core.c
2266
if (params->conn) {
net/bluetooth/hci_core.c
2267
hci_conn_drop(params->conn);
net/bluetooth/hci_core.c
2268
hci_conn_put(params->conn);
net/bluetooth/hci_core.c
3046
static int hci_send_conn_frame(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_core.c
3049
hci_conn_tx_queue(conn, skb);
net/bluetooth/hci_core.c
3186
struct hci_conn *conn = chan->conn;
net/bluetooth/hci_core.c
3187
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_core.c
3195
hci_add_acl_hdr(skb, conn->handle, flags);
net/bluetooth/hci_core.c
3224
hci_add_acl_hdr(skb, conn->handle, flags);
net/bluetooth/hci_core.c
3239
struct hci_dev *hdev = chan->conn->hdev;
net/bluetooth/hci_core.c
3249
void hci_send_sco(struct hci_conn *conn, struct sk_buff *skb)
net/bluetooth/hci_core.c
3251
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_core.c
3256
hdr.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_core.c
3265
skb_queue_tail(&conn->data_q, skb);
net/bluetooth/hci_core.c
3267
bt_dev_dbg(hdev, "hcon %p queued %d", conn,
net/bluetooth/hci_core.c
3268
skb_queue_len(&conn->data_q));
net/bluetooth/hci_core.c
3286
static void hci_queue_iso(struct hci_conn *conn, struct sk_buff_head *queue,
net/bluetooth/hci_core.c
3289
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_core.c
3301
hci_add_iso_hdr(skb, conn->handle, flags);
net/bluetooth/hci_core.c
3322
hci_add_iso_hdr(skb, conn->handle, flags);
net/bluetooth/hci_core.c
3330
bt_dev_dbg(hdev, "hcon %p queued %d", conn, skb_queue_len(queue));
net/bluetooth/hci_core.c
3333
void hci_send_iso(struct hci_conn *conn, struct sk_buff *skb)
net/bluetooth/hci_core.c
3335
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_core.c
3339
hci_queue_iso(conn, &conn->data_q, skb);
net/bluetooth/hci_core.c
3347
static inline void hci_quote_sent(struct hci_conn *conn, int num, int *quote)
net/bluetooth/hci_core.c
3352
if (!conn) {
net/bluetooth/hci_core.c
3357
hdev = conn->hdev;
net/bluetooth/hci_core.c
3359
switch (conn->type) {
net/bluetooth/hci_core.c
3377
bt_dev_err(hdev, "unknown link type %d", conn->type);
net/bluetooth/hci_core.c
3388
struct hci_conn *conn = NULL, *c;
net/bluetooth/hci_core.c
3412
conn = c;
net/bluetooth/hci_core.c
3421
hci_quote_sent(conn, num, quote);
net/bluetooth/hci_core.c
3423
BT_DBG("conn %p quote %d", conn, *quote);
net/bluetooth/hci_core.c
3424
return conn;
net/bluetooth/hci_core.c
3454
struct hci_conn *conn;
net/bluetooth/hci_core.c
3461
list_for_each_entry_rcu(conn, &h->list, list) {
net/bluetooth/hci_core.c
3464
if (conn->type != type)
net/bluetooth/hci_core.c
3467
if (conn->state != BT_CONNECTED && conn->state != BT_CONFIG)
net/bluetooth/hci_core.c
3472
list_for_each_entry_rcu(tmp, &conn->chan_list, list) {
net/bluetooth/hci_core.c
3490
if (conn->sent < min) {
net/bluetooth/hci_core.c
3491
min = conn->sent;
net/bluetooth/hci_core.c
3505
hci_quote_sent(chan->conn, num, quote);
net/bluetooth/hci_core.c
3514
struct hci_conn *conn;
net/bluetooth/hci_core.c
3521
list_for_each_entry_rcu(conn, &h->list, list) {
net/bluetooth/hci_core.c
3524
if (conn->type != type)
net/bluetooth/hci_core.c
3527
if (conn->state != BT_CONNECTED && conn->state != BT_CONFIG)
net/bluetooth/hci_core.c
3532
list_for_each_entry_rcu(chan, &conn->chan_list, list) {
net/bluetooth/hci_core.c
3600
struct hci_conn *conn;
net/bluetooth/hci_core.c
3618
while (*cnt && (conn = hci_low_sent(hdev, type, &quote))) {
net/bluetooth/hci_core.c
3619
while (quote-- && (skb = skb_dequeue(&conn->data_q))) {
net/bluetooth/hci_core.c
3621
hci_send_conn_frame(hdev, conn, skb);
net/bluetooth/hci_core.c
3623
conn->sent++;
net/bluetooth/hci_core.c
3624
if (conn->sent == ~0)
net/bluetooth/hci_core.c
3625
conn->sent = 0;
net/bluetooth/hci_core.c
3661
hci_conn_enter_active_mode(chan->conn,
net/bluetooth/hci_core.c
3664
hci_send_conn_frame(hdev, chan->conn, skb);
net/bluetooth/hci_core.c
3669
chan->conn->sent++;
net/bluetooth/hci_core.c
3720
hci_send_conn_frame(hdev, chan->conn, skb);
net/bluetooth/hci_core.c
3725
chan->conn->sent++;
net/bluetooth/hci_core.c
3740
struct hci_conn *conn;
net/bluetooth/hci_core.c
3753
while (*cnt && (conn = hci_low_sent(hdev, type, &quote))) {
net/bluetooth/hci_core.c
3754
while (quote-- && (skb = skb_dequeue(&conn->data_q))) {
net/bluetooth/hci_core.c
3757
hci_send_conn_frame(hdev, conn, skb);
net/bluetooth/hci_core.c
3760
conn->sent++;
net/bluetooth/hci_core.c
3761
if (conn->sent == ~0)
net/bluetooth/hci_core.c
3762
conn->sent = 0;
net/bluetooth/hci_debugfs.c
1260
void hci_debugfs_create_conn(struct hci_conn *conn)
net/bluetooth/hci_debugfs.c
1262
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_debugfs.c
1265
if (IS_ERR_OR_NULL(hdev->debugfs) || conn->debugfs)
net/bluetooth/hci_debugfs.c
1268
snprintf(name, sizeof(name), "%u", conn->handle);
net/bluetooth/hci_debugfs.c
1269
conn->debugfs = debugfs_create_dir(name, hdev->debugfs);
net/bluetooth/hci_debugfs.h
25
void hci_debugfs_create_conn(struct hci_conn *conn);
net/bluetooth/hci_debugfs.h
42
static inline void hci_debugfs_create_conn(struct hci_conn *conn)
net/bluetooth/hci_event.c
1076
struct hci_conn *conn;
net/bluetooth/hci_event.c
1094
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
1095
if (conn) {
net/bluetooth/hci_event.c
1096
conn->clock = le32_to_cpu(rp->clock);
net/bluetooth/hci_event.c
1097
conn->clock_accuracy = le16_to_cpu(rp->accuracy);
net/bluetooth/hci_event.c
1160
struct hci_conn *conn;
net/bluetooth/hci_event.c
1176
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->bdaddr);
net/bluetooth/hci_event.c
1177
if (conn)
net/bluetooth/hci_event.c
1178
conn->pin_length = cp->pin_len;
net/bluetooth/hci_event.c
1564
struct hci_conn *conn;
net/bluetooth/hci_event.c
1568
conn = hci_lookup_le_connect(hdev);
net/bluetooth/hci_event.c
1569
if (conn)
net/bluetooth/hci_event.c
1571
&conn->le_conn_timeout,
net/bluetooth/hci_event.c
1572
conn->conn_timeout);
net/bluetooth/hci_event.c
1607
struct hci_conn *conn;
net/bluetooth/hci_event.c
1616
conn = hci_lookup_le_connect(hdev);
net/bluetooth/hci_event.c
1617
if (conn)
net/bluetooth/hci_event.c
1619
&conn->le_conn_timeout,
net/bluetooth/hci_event.c
1620
conn->conn_timeout);
net/bluetooth/hci_event.c
166
struct hci_conn *conn;
net/bluetooth/hci_event.c
175
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
176
if (conn)
net/bluetooth/hci_event.c
177
conn->role = rp->role;
net/bluetooth/hci_event.c
188
struct hci_conn *conn;
net/bluetooth/hci_event.c
197
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
198
if (conn)
net/bluetooth/hci_event.c
199
conn->link_policy = __le16_to_cpu(rp->policy);
net/bluetooth/hci_event.c
210
struct hci_conn *conn;
net/bluetooth/hci_event.c
2169
struct hci_conn *conn;
net/bluetooth/hci_event.c
2178
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
2179
if (conn)
net/bluetooth/hci_event.c
2180
conn->rssi = rp->rssi;
net/bluetooth/hci_event.c
2192
struct hci_conn *conn;
net/bluetooth/hci_event.c
2205
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
2206
if (!conn)
net/bluetooth/hci_event.c
2211
conn->tx_power = rp->tx_power;
net/bluetooth/hci_event.c
2214
conn->max_tx_power = rp->tx_power;
net/bluetooth/hci_event.c
224
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
225
if (conn)
net/bluetooth/hci_event.c
2255
struct hci_conn *conn;
net/bluetooth/hci_event.c
226
conn->link_policy = get_unaligned_le16(sent + 2);
net/bluetooth/hci_event.c
2265
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->bdaddr);
net/bluetooth/hci_event.c
2267
bt_dev_dbg(hdev, "bdaddr %pMR hcon %p", &cp->bdaddr, conn);
net/bluetooth/hci_event.c
2270
if (conn && conn->state == BT_CONNECT) {
net/bluetooth/hci_event.c
2271
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
2272
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
2273
hci_conn_del(conn);
net/bluetooth/hci_event.c
2276
if (!conn) {
net/bluetooth/hci_event.c
2277
conn = hci_conn_add_unset(hdev, ACL_LINK, &cp->bdaddr,
net/bluetooth/hci_event.c
2279
if (IS_ERR(conn))
net/bluetooth/hci_event.c
2280
bt_dev_err(hdev, "connection err: %ld", PTR_ERR(conn));
net/bluetooth/hci_event.c
2313
if (link && link->conn) {
net/bluetooth/hci_event.c
2314
link->conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
2316
hci_connect_cfm(link->conn, status);
net/bluetooth/hci_event.c
2317
hci_conn_del(link->conn);
net/bluetooth/hci_event.c
2327
struct hci_conn *conn;
net/bluetooth/hci_event.c
2340
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2341
if (conn) {
net/bluetooth/hci_event.c
2342
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
2343
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
2344
hci_conn_drop(conn);
net/bluetooth/hci_event.c
2354
struct hci_conn *conn;
net/bluetooth/hci_event.c
2367
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2368
if (conn) {
net/bluetooth/hci_event.c
2369
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
2370
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
2371
hci_conn_drop(conn);
net/bluetooth/hci_event.c
2379
struct hci_conn *conn)
net/bluetooth/hci_event.c
2381
if (conn->state != BT_CONFIG || !conn->out)
net/bluetooth/hci_event.c
2384
if (conn->pending_sec_level == BT_SECURITY_SDP)
net/bluetooth/hci_event.c
2391
if (!hci_conn_ssp_enabled(conn) && !(conn->auth_type & 0x01) &&
net/bluetooth/hci_event.c
2392
conn->pending_sec_level != BT_SECURITY_FIPS &&
net/bluetooth/hci_event.c
2393
conn->pending_sec_level != BT_SECURITY_HIGH &&
net/bluetooth/hci_event.c
2394
conn->pending_sec_level != BT_SECURITY_MEDIUM)
net/bluetooth/hci_event.c
2441
static void hci_check_pending_name(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_event.c
2452
if (conn && (conn->state == BT_CONFIG || conn->state == BT_CONNECTED))
net/bluetooth/hci_event.c
2453
mgmt_device_connected(hdev, conn, name, name_len);
net/bluetooth/hci_event.c
2488
struct hci_conn *conn;
net/bluetooth/hci_event.c
2503
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->bdaddr);
net/bluetooth/hci_event.c
2506
hci_check_pending_name(hdev, conn, &cp->bdaddr, NULL, 0);
net/bluetooth/hci_event.c
2508
if (!conn)
net/bluetooth/hci_event.c
2511
if (!hci_outgoing_auth_needed(hdev, conn))
net/bluetooth/hci_event.c
2514
if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->flags)) {
net/bluetooth/hci_event.c
2517
set_bit(HCI_CONN_AUTH_INITIATOR, &conn->flags);
net/bluetooth/hci_event.c
2519
auth_cp.handle = __cpu_to_le16(conn->handle);
net/bluetooth/hci_event.c
2531
struct hci_conn *conn;
net/bluetooth/hci_event.c
2544
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2545
if (conn) {
net/bluetooth/hci_event.c
2546
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
2547
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
2548
hci_conn_drop(conn);
net/bluetooth/hci_event.c
2558
struct hci_conn *conn;
net/bluetooth/hci_event.c
2571
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2572
if (conn) {
net/bluetooth/hci_event.c
2573
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
2574
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
2575
hci_conn_drop(conn);
net/bluetooth/hci_event.c
2596
if (link && link->conn) {
net/bluetooth/hci_event.c
2597
link->conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
2599
hci_connect_cfm(link->conn, status);
net/bluetooth/hci_event.c
2600
hci_conn_del(link->conn);
net/bluetooth/hci_event.c
2642
struct hci_conn *conn;
net/bluetooth/hci_event.c
2655
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2656
if (conn) {
net/bluetooth/hci_event.c
2657
clear_bit(HCI_CONN_MODE_CHANGE_PEND, &conn->flags);
net/bluetooth/hci_event.c
2659
if (test_and_clear_bit(HCI_CONN_SCO_SETUP_PEND, &conn->flags))
net/bluetooth/hci_event.c
2660
hci_sco_setup(conn, status);
net/bluetooth/hci_event.c
2669
struct hci_conn *conn;
net/bluetooth/hci_event.c
2682
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2683
if (conn) {
net/bluetooth/hci_event.c
2684
clear_bit(HCI_CONN_MODE_CHANGE_PEND, &conn->flags);
net/bluetooth/hci_event.c
2686
if (test_and_clear_bit(HCI_CONN_SCO_SETUP_PEND, &conn->flags))
net/bluetooth/hci_event.c
2687
hci_sco_setup(conn, status);
net/bluetooth/hci_event.c
2697
struct hci_conn *conn;
net/bluetooth/hci_event.c
2714
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2715
if (!conn)
net/bluetooth/hci_event.c
2719
mgmt_disconnect_failed(hdev, &conn->dst, conn->type,
net/bluetooth/hci_event.c
2720
conn->dst_type, status);
net/bluetooth/hci_event.c
2722
if (conn->type == LE_LINK && conn->role == HCI_ROLE_SLAVE) {
net/bluetooth/hci_event.c
2723
hdev->cur_adv_instance = conn->adv_instance;
net/bluetooth/hci_event.c
2728
hci_disconn_cfm(conn, HCI_ERROR_UNSPECIFIED);
net/bluetooth/hci_event.c
2737
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
2739
mgmt_conn = test_and_clear_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags);
net/bluetooth/hci_event.c
2741
if (conn->type == ACL_LINK) {
net/bluetooth/hci_event.c
2742
if (test_and_clear_bit(HCI_CONN_FLUSH_KEY, &conn->flags))
net/bluetooth/hci_event.c
2743
hci_remove_link_key(hdev, &conn->dst);
net/bluetooth/hci_event.c
2746
params = hci_conn_params_lookup(hdev, &conn->dst, conn->dst_type);
net/bluetooth/hci_event.c
2765
mgmt_device_disconnected(hdev, &conn->dst, conn->type, conn->dst_type,
net/bluetooth/hci_event.c
2768
hci_disconn_cfm(conn, cp->reason);
net/bluetooth/hci_event.c
2776
hci_conn_del(conn);
net/bluetooth/hci_event.c
2807
struct hci_conn *conn;
net/bluetooth/hci_event.c
2809
conn = hci_conn_hash_lookup_le(hdev, peer_addr,
net/bluetooth/hci_event.c
2811
if (!conn)
net/bluetooth/hci_event.c
2820
conn->init_addr_type = own_address_type;
net/bluetooth/hci_event.c
2822
bacpy(&conn->init_addr, &hdev->random_addr);
net/bluetooth/hci_event.c
2824
bacpy(&conn->init_addr, &hdev->bdaddr);
net/bluetooth/hci_event.c
2826
conn->resp_addr_type = peer_addr_type;
net/bluetooth/hci_event.c
2827
bacpy(&conn->resp_addr, peer_addr);
net/bluetooth/hci_event.c
2883
struct hci_conn *conn;
net/bluetooth/hci_event.c
2896
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2897
if (conn) {
net/bluetooth/hci_event.c
2898
conn->le_tx_def_phys = cp->tx_phys;
net/bluetooth/hci_event.c
2899
conn->le_rx_def_phys = cp->rx_phys;
net/bluetooth/hci_event.c
2908
struct hci_conn *conn;
net/bluetooth/hci_event.c
2921
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2922
if (conn && conn->state == BT_CONFIG)
net/bluetooth/hci_event.c
2923
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
2931
struct hci_conn *conn;
net/bluetooth/hci_event.c
2944
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2945
if (!conn)
net/bluetooth/hci_event.c
2948
if (conn->state != BT_CONNECTED)
net/bluetooth/hci_event.c
2951
hci_disconnect(conn, HCI_ERROR_AUTH_FAILURE);
net/bluetooth/hci_event.c
2952
hci_conn_drop(conn);
net/bluetooth/hci_event.c
2961
struct hci_conn *conn;
net/bluetooth/hci_event.c
2974
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->bdaddr);
net/bluetooth/hci_event.c
2975
if (conn)
net/bluetooth/hci_event.c
2976
clear_bit(HCI_CONN_RSWITCH_PEND, &conn->flags);
net/bluetooth/hci_event.c
3084
static int hci_read_enc_key_size(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_event.c
3087
u8 *key_enc_size = hci_conn_key_enc_size(conn);
net/bluetooth/hci_event.c
3090
conn->enc_key_size = HCI_LINK_KEY_SIZE;
net/bluetooth/hci_event.c
3094
bt_dev_dbg(hdev, "hcon %p", conn);
net/bluetooth/hci_event.c
3097
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_event.c
3105
conn->enc_key_size = *key_enc_size;
net/bluetooth/hci_event.c
3107
conn->enc_key_size = hdev->min_enc_key_size;
net/bluetooth/hci_event.c
3116
struct hci_conn *conn;
net/bluetooth/hci_event.c
3133
conn = hci_conn_hash_lookup_ba(hdev, ev->link_type, &ev->bdaddr);
net/bluetooth/hci_event.c
3134
if (!conn ||
net/bluetooth/hci_event.c
3135
(conn->role == HCI_ROLE_MASTER && conn->state != BT_CONNECT)) {
net/bluetooth/hci_event.c
3155
conn = hci_conn_add_unset(hdev, ev->link_type,
net/bluetooth/hci_event.c
3158
if (IS_ERR(conn)) {
net/bluetooth/hci_event.c
3159
bt_dev_err(hdev, "connection err: %ld", PTR_ERR(conn));
net/bluetooth/hci_event.c
3166
conn = hci_conn_hash_lookup_ba(hdev, ESCO_LINK,
net/bluetooth/hci_event.c
3168
if (!conn)
net/bluetooth/hci_event.c
3171
conn->type = SCO_LINK;
net/bluetooth/hci_event.c
3181
if (!HCI_CONN_HANDLE_UNSET(conn->handle)) {
net/bluetooth/hci_event.c
3187
status = hci_conn_set_handle(conn, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
3191
if (conn->type == ACL_LINK) {
net/bluetooth/hci_event.c
3192
conn->state = BT_CONFIG;
net/bluetooth/hci_event.c
3193
hci_conn_hold(conn);
net/bluetooth/hci_event.c
3195
if (!conn->out && !hci_conn_ssp_enabled(conn) &&
net/bluetooth/hci_event.c
3197
conn->disc_timeout = HCI_PAIRING_TIMEOUT;
net/bluetooth/hci_event.c
3199
conn->disc_timeout = HCI_DISCONN_TIMEOUT;
net/bluetooth/hci_event.c
3201
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
3203
hci_debugfs_create_conn(conn);
net/bluetooth/hci_event.c
3204
hci_conn_add_sysfs(conn);
net/bluetooth/hci_event.c
3207
set_bit(HCI_CONN_AUTH, &conn->flags);
net/bluetooth/hci_event.c
3210
set_bit(HCI_CONN_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
3213
if (ev->encr_mode == 1 && !test_bit(HCI_CONN_ENCRYPT, &conn->flags) &&
net/bluetooth/hci_event.c
3219
set_bit(HCI_CONN_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
3220
hci_read_enc_key_size(hdev, conn);
net/bluetooth/hci_event.c
3221
hci_encrypt_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3226
if (conn->type == ACL_LINK) {
net/bluetooth/hci_event.c
3236
if (!conn->out && hdev->hci_ver < BLUETOOTH_VER_2_0) {
net/bluetooth/hci_event.c
3239
cp.pkt_type = cpu_to_le16(conn->pkt_type);
net/bluetooth/hci_event.c
3245
if (conn->type == ACL_LINK)
net/bluetooth/hci_event.c
3246
hci_sco_setup(conn, ev->status);
net/bluetooth/hci_event.c
3250
hci_conn_failed(conn, status);
net/bluetooth/hci_event.c
3252
switch (conn->setting & SCO_AIRMODE_MASK) {
net/bluetooth/hci_event.c
3259
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
3281
struct hci_conn *conn;
net/bluetooth/hci_event.c
3334
conn = hci_conn_hash_lookup_ba(hdev, ev->link_type,
net/bluetooth/hci_event.c
3336
if (!conn) {
net/bluetooth/hci_event.c
3337
conn = hci_conn_add_unset(hdev, ev->link_type, &ev->bdaddr, 0,
net/bluetooth/hci_event.c
3339
if (IS_ERR(conn)) {
net/bluetooth/hci_event.c
3340
bt_dev_err(hdev, "connection err: %ld", PTR_ERR(conn));
net/bluetooth/hci_event.c
3345
memcpy(conn->dev_class, ev->dev_class, 3);
net/bluetooth/hci_event.c
3350
conn->state = BT_CONNECT;
net/bluetooth/hci_event.c
3362
conn->state = BT_CONNECT;
net/bluetooth/hci_event.c
3365
cp.pkt_type = cpu_to_le16(conn->pkt_type);
net/bluetooth/hci_event.c
3376
conn->state = BT_CONNECT2;
net/bluetooth/hci_event.c
3377
hci_connect_cfm(conn, 0);
net/bluetooth/hci_event.c
3390
struct hci_conn *conn;
net/bluetooth/hci_event.c
3397
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
3398
if (!conn)
net/bluetooth/hci_event.c
3402
mgmt_disconnect_failed(hdev, &conn->dst, conn->type,
net/bluetooth/hci_event.c
3403
conn->dst_type, ev->status);
net/bluetooth/hci_event.c
3407
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
3409
mgmt_connected = test_and_clear_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags);
net/bluetooth/hci_event.c
3411
if (test_bit(HCI_CONN_AUTH_FAILURE, &conn->flags))
net/bluetooth/hci_event.c
3416
mgmt_device_disconnected(hdev, &conn->dst, conn->type, conn->dst_type,
net/bluetooth/hci_event.c
3419
if (conn->type == ACL_LINK) {
net/bluetooth/hci_event.c
3420
if (test_and_clear_bit(HCI_CONN_FLUSH_KEY, &conn->flags))
net/bluetooth/hci_event.c
3421
hci_remove_link_key(hdev, &conn->dst);
net/bluetooth/hci_event.c
3429
if (conn->type == LE_LINK) {
net/bluetooth/hci_event.c
3430
params = hci_conn_params_lookup(hdev, &conn->dst,
net/bluetooth/hci_event.c
3431
conn->dst_type);
net/bluetooth/hci_event.c
3453
hci_disconn_cfm(conn, ev->reason);
net/bluetooth/hci_event.c
3465
if (conn->type == LE_LINK && conn->role == HCI_ROLE_SLAVE) {
net/bluetooth/hci_event.c
3466
hdev->cur_adv_instance = conn->adv_instance;
net/bluetooth/hci_event.c
3470
hci_conn_del(conn);
net/bluetooth/hci_event.c
3480
struct hci_conn *conn;
net/bluetooth/hci_event.c
3486
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
3487
if (!conn)
net/bluetooth/hci_event.c
3491
clear_bit(HCI_CONN_AUTH_FAILURE, &conn->flags);
net/bluetooth/hci_event.c
3492
set_bit(HCI_CONN_AUTH, &conn->flags);
net/bluetooth/hci_event.c
3493
conn->sec_level = conn->pending_sec_level;
net/bluetooth/hci_event.c
3496
set_bit(HCI_CONN_AUTH_FAILURE, &conn->flags);
net/bluetooth/hci_event.c
3498
mgmt_auth_failed(conn, ev->status);
net/bluetooth/hci_event.c
3501
clear_bit(HCI_CONN_AUTH_PEND, &conn->flags);
net/bluetooth/hci_event.c
3503
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
3504
if (!ev->status && hci_conn_ssp_enabled(conn)) {
net/bluetooth/hci_event.c
3511
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
3512
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3513
hci_conn_drop(conn);
net/bluetooth/hci_event.c
3516
hci_auth_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3518
hci_conn_hold(conn);
net/bluetooth/hci_event.c
3519
conn->disc_timeout = HCI_DISCONN_TIMEOUT;
net/bluetooth/hci_event.c
3520
hci_conn_drop(conn);
net/bluetooth/hci_event.c
3523
if (test_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags)) {
net/bluetooth/hci_event.c
3531
clear_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags);
net/bluetooth/hci_event.c
3532
hci_encrypt_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3544
struct hci_conn *conn;
net/bluetooth/hci_event.c
3550
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
3556
hci_check_pending_name(hdev, conn, &ev->bdaddr, ev->name,
net/bluetooth/hci_event.c
3559
hci_check_pending_name(hdev, conn, &ev->bdaddr, NULL, 0);
net/bluetooth/hci_event.c
3562
if (!conn)
net/bluetooth/hci_event.c
3565
if (!hci_outgoing_auth_needed(hdev, conn))
net/bluetooth/hci_event.c
3568
if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->flags)) {
net/bluetooth/hci_event.c
3571
set_bit(HCI_CONN_AUTH_INITIATOR, &conn->flags);
net/bluetooth/hci_event.c
3573
cp.handle = __cpu_to_le16(conn->handle);
net/bluetooth/hci_event.c
3585
struct hci_conn *conn;
net/bluetooth/hci_event.c
3591
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
3592
if (!conn)
net/bluetooth/hci_event.c
3598
set_bit(HCI_CONN_AUTH, &conn->flags);
net/bluetooth/hci_event.c
3599
set_bit(HCI_CONN_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
3600
conn->sec_level = conn->pending_sec_level;
net/bluetooth/hci_event.c
3603
if (conn->key_type == HCI_LK_AUTH_COMBINATION_P256)
net/bluetooth/hci_event.c
3604
set_bit(HCI_CONN_FIPS, &conn->flags);
net/bluetooth/hci_event.c
3606
if ((conn->type == ACL_LINK && ev->encrypt == 0x02) ||
net/bluetooth/hci_event.c
3607
conn->type == LE_LINK)
net/bluetooth/hci_event.c
3608
set_bit(HCI_CONN_AES_CCM, &conn->flags);
net/bluetooth/hci_event.c
3610
clear_bit(HCI_CONN_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
3611
clear_bit(HCI_CONN_AES_CCM, &conn->flags);
net/bluetooth/hci_event.c
3618
if (ev->status && conn->type == LE_LINK) {
net/bluetooth/hci_event.c
3623
clear_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags);
net/bluetooth/hci_event.c
3626
if (!hci_conn_check_link_mode(conn))
net/bluetooth/hci_event.c
3629
if (ev->status && conn->state == BT_CONNECTED) {
net/bluetooth/hci_event.c
3631
set_bit(HCI_CONN_AUTH_FAILURE, &conn->flags);
net/bluetooth/hci_event.c
3636
hci_encrypt_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3637
hci_disconnect(conn, HCI_ERROR_AUTH_FAILURE);
net/bluetooth/hci_event.c
3638
hci_conn_drop(conn);
net/bluetooth/hci_event.c
3643
if (!ev->status && ev->encrypt && conn->type == ACL_LINK) {
net/bluetooth/hci_event.c
3644
if (hci_read_enc_key_size(hdev, conn))
net/bluetooth/hci_event.c
3663
if (test_bit(HCI_CONN_ENCRYPT, &conn->flags) &&
net/bluetooth/hci_event.c
3664
test_bit(HCI_CONN_AES_CCM, &conn->flags) &&
net/bluetooth/hci_event.c
3665
((conn->type == ACL_LINK && lmp_ping_capable(hdev)) ||
net/bluetooth/hci_event.c
3666
(conn->type == LE_LINK && (hdev->le_features[0] & HCI_LE_PING)))) {
net/bluetooth/hci_event.c
3669
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_event.c
3671
if (hci_send_cmd(conn->hdev, HCI_OP_WRITE_AUTH_PAYLOAD_TO,
net/bluetooth/hci_event.c
3677
hci_encrypt_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3687
struct hci_conn *conn;
net/bluetooth/hci_event.c
3693
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
3694
if (conn) {
net/bluetooth/hci_event.c
3696
set_bit(HCI_CONN_SECURE, &conn->flags);
net/bluetooth/hci_event.c
3698
clear_bit(HCI_CONN_AUTH_PEND, &conn->flags);
net/bluetooth/hci_event.c
3700
hci_key_change_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3710
struct hci_conn *conn;
net/bluetooth/hci_event.c
3716
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
3717
if (!conn)
net/bluetooth/hci_event.c
3721
memcpy(conn->features[0], ev->features, 8);
net/bluetooth/hci_event.c
3723
if (conn->state != BT_CONFIG)
net/bluetooth/hci_event.c
3727
lmp_ext_feat_capable(conn)) {
net/bluetooth/hci_event.c
3739
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/hci_event.c
3743
mgmt_device_connected(hdev, conn, NULL, 0);
net/bluetooth/hci_event.c
3746
if (!hci_outgoing_auth_needed(hdev, conn)) {
net/bluetooth/hci_event.c
3747
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
3748
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3749
hci_conn_drop(conn);
net/bluetooth/hci_event.c
3803
struct hci_conn *conn, *tmp;
net/bluetooth/hci_event.c
3807
list_for_each_entry_safe(conn, tmp, &hdev->conn_hash.list, list) {
net/bluetooth/hci_event.c
3808
if (conn->type != CIS_LINK ||
net/bluetooth/hci_event.c
3809
conn->state == BT_OPEN || conn->iso_qos.ucast.cig != cig)
net/bluetooth/hci_event.c
3812
if (HCI_CONN_HANDLE_UNSET(conn->handle))
net/bluetooth/hci_event.c
3813
hci_conn_failed(conn, status);
net/bluetooth/hci_event.c
3822
struct hci_conn *conn;
net/bluetooth/hci_event.c
3858
conn = hci_conn_hash_lookup_cis(hdev, NULL, 0, rp->cig_id,
net/bluetooth/hci_event.c
3860
if (!conn || !bacmp(&conn->dst, BDADDR_ANY))
net/bluetooth/hci_event.c
3863
if (conn->state != BT_BOUND && conn->state != BT_CONNECT)
net/bluetooth/hci_event.c
3866
if (hci_conn_set_handle(conn, __le16_to_cpu(rp->handle[i])))
net/bluetooth/hci_event.c
3869
if (conn->state == BT_CONNECT)
net/bluetooth/hci_event.c
3887
struct hci_conn *conn;
net/bluetooth/hci_event.c
3897
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
3898
if (!conn)
net/bluetooth/hci_event.c
3902
hci_connect_cfm(conn, rp->status);
net/bluetooth/hci_event.c
3903
hci_conn_del(conn);
net/bluetooth/hci_event.c
3911
if (conn->iso_qos.ucast.out.sdu && !conn->iso_qos.ucast.in.sdu)
net/bluetooth/hci_event.c
3912
hci_connect_cfm(conn, rp->status);
net/bluetooth/hci_event.c
3919
hci_connect_cfm(conn, rp->status);
net/bluetooth/hci_event.c
3922
if (!rp->status && test_bit(HCI_CONN_BIG_SYNC, &conn->flags))
net/bluetooth/hci_event.c
3923
mgmt_device_connected(hdev, conn, NULL, 0);
net/bluetooth/hci_event.c
3956
struct hci_conn *conn;
net/bluetooth/hci_event.c
3969
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
3970
if (conn && conn->state == BT_CONFIG)
net/bluetooth/hci_event.c
3971
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
4329
struct hci_conn *conn;
net/bluetooth/hci_event.c
4334
conn = hci_conn_hash_lookup_handle(hdev, handle);
net/bluetooth/hci_event.c
4335
if (conn) {
net/bluetooth/hci_event.c
4337
&conn->flags))
net/bluetooth/hci_event.c
4339
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
4340
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
4341
hci_conn_del(conn);
net/bluetooth/hci_event.c
4447
struct hci_conn *conn;
net/bluetooth/hci_event.c
4453
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
4454
if (conn) {
net/bluetooth/hci_event.c
4456
conn->role = ev->role;
net/bluetooth/hci_event.c
4458
clear_bit(HCI_CONN_RSWITCH_PEND, &conn->flags);
net/bluetooth/hci_event.c
4460
hci_role_switch_cfm(conn, ev->status, ev->role);
net/bluetooth/hci_event.c
4482
struct hci_conn *conn;
net/bluetooth/hci_event.c
4489
conn = hci_conn_hash_lookup_handle(hdev, handle);
net/bluetooth/hci_event.c
4490
if (!conn)
net/bluetooth/hci_event.c
4497
if (conn->sent >= count) {
net/bluetooth/hci_event.c
4498
conn->sent -= count;
net/bluetooth/hci_event.c
4501
conn, conn->sent, count);
net/bluetooth/hci_event.c
4502
conn->sent = 0;
net/bluetooth/hci_event.c
4506
hci_conn_tx_dequeue(conn);
net/bluetooth/hci_event.c
4508
switch (conn->type) {
net/bluetooth/hci_event.c
4545
conn->type, conn);
net/bluetooth/hci_event.c
4559
struct hci_conn *conn;
net/bluetooth/hci_event.c
4565
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
4566
if (conn) {
net/bluetooth/hci_event.c
4567
conn->mode = ev->mode;
net/bluetooth/hci_event.c
4570
&conn->flags)) {
net/bluetooth/hci_event.c
4571
if (conn->mode == HCI_CM_ACTIVE)
net/bluetooth/hci_event.c
4572
set_bit(HCI_CONN_POWER_SAVE, &conn->flags);
net/bluetooth/hci_event.c
4574
clear_bit(HCI_CONN_POWER_SAVE, &conn->flags);
net/bluetooth/hci_event.c
4577
if (test_and_clear_bit(HCI_CONN_SCO_SETUP_PEND, &conn->flags))
net/bluetooth/hci_event.c
4578
hci_sco_setup(conn, ev->status);
net/bluetooth/hci_event.c
4588
struct hci_conn *conn;
net/bluetooth/hci_event.c
4594
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
4595
if (!conn)
net/bluetooth/hci_event.c
4598
if (conn->state == BT_CONNECTED) {
net/bluetooth/hci_event.c
4599
hci_conn_hold(conn);
net/bluetooth/hci_event.c
4600
conn->disc_timeout = HCI_PAIRING_TIMEOUT;
net/bluetooth/hci_event.c
4601
hci_conn_drop(conn);
net/bluetooth/hci_event.c
4605
!test_bit(HCI_CONN_AUTH_INITIATOR, &conn->flags)) {
net/bluetooth/hci_event.c
4611
if (conn->pending_sec_level == BT_SECURITY_HIGH)
net/bluetooth/hci_event.c
4623
static void conn_set_key(struct hci_conn *conn, u8 key_type, u8 pin_len)
net/bluetooth/hci_event.c
4628
conn->pin_length = pin_len;
net/bluetooth/hci_event.c
4629
conn->key_type = key_type;
net/bluetooth/hci_event.c
4638
conn->pending_sec_level = BT_SECURITY_HIGH;
net/bluetooth/hci_event.c
4640
conn->pending_sec_level = BT_SECURITY_MEDIUM;
net/bluetooth/hci_event.c
4644
conn->pending_sec_level = BT_SECURITY_MEDIUM;
net/bluetooth/hci_event.c
4647
conn->pending_sec_level = BT_SECURITY_HIGH;
net/bluetooth/hci_event.c
4650
conn->pending_sec_level = BT_SECURITY_FIPS;
net/bluetooth/hci_event.c
4660
struct hci_conn *conn;
net/bluetooth/hci_event.c
4678
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
4679
if (conn) {
net/bluetooth/hci_event.c
4680
clear_bit(HCI_CONN_NEW_LINK_KEY, &conn->flags);
net/bluetooth/hci_event.c
4684
conn->auth_type != 0xff && (conn->auth_type & 0x01)) {
net/bluetooth/hci_event.c
4690
(conn->pending_sec_level == BT_SECURITY_HIGH ||
net/bluetooth/hci_event.c
4691
conn->pending_sec_level == BT_SECURITY_FIPS)) {
net/bluetooth/hci_event.c
4696
conn_set_key(conn, key->type, key->pin_len);
net/bluetooth/hci_event.c
4717
struct hci_conn *conn;
net/bluetooth/hci_event.c
4726
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
4727
if (!conn)
net/bluetooth/hci_event.c
4734
hci_disconnect(conn, HCI_ERROR_AUTH_FAILURE);
net/bluetooth/hci_event.c
4735
hci_conn_drop(conn);
net/bluetooth/hci_event.c
4739
hci_conn_hold(conn);
net/bluetooth/hci_event.c
4740
conn->disc_timeout = HCI_DISCONN_TIMEOUT;
net/bluetooth/hci_event.c
4741
hci_conn_drop(conn);
net/bluetooth/hci_event.c
4743
set_bit(HCI_CONN_NEW_LINK_KEY, &conn->flags);
net/bluetooth/hci_event.c
4744
conn_set_key(conn, ev->key_type, conn->pin_length);
net/bluetooth/hci_event.c
4749
key = hci_add_link_key(hdev, conn, &ev->bdaddr, ev->link_key,
net/bluetooth/hci_event.c
4758
conn_set_key(conn, key->type, key->pin_len);
net/bluetooth/hci_event.c
4775
clear_bit(HCI_CONN_FLUSH_KEY, &conn->flags);
net/bluetooth/hci_event.c
4777
set_bit(HCI_CONN_FLUSH_KEY, &conn->flags);
net/bluetooth/hci_event.c
4787
struct hci_conn *conn;
net/bluetooth/hci_event.c
4793
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
4794
if (conn && !ev->status) {
net/bluetooth/hci_event.c
4797
ie = hci_inquiry_cache_lookup(hdev, &conn->dst);
net/bluetooth/hci_event.c
4811
struct hci_conn *conn;
net/bluetooth/hci_event.c
4817
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
4818
if (conn && !ev->status)
net/bluetooth/hci_event.c
4819
conn->pkt_type = __le16_to_cpu(ev->pkt_type);
net/bluetooth/hci_event.c
4934
struct hci_conn *conn;
net/bluetooth/hci_event.c
4940
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
4941
if (!conn)
net/bluetooth/hci_event.c
4945
memcpy(conn->features[ev->page], ev->features, 8);
net/bluetooth/hci_event.c
4950
ie = hci_inquiry_cache_lookup(hdev, &conn->dst);
net/bluetooth/hci_event.c
4955
set_bit(HCI_CONN_SSP_ENABLED, &conn->flags);
net/bluetooth/hci_event.c
4965
clear_bit(HCI_CONN_SSP_ENABLED, &conn->flags);
net/bluetooth/hci_event.c
4969
set_bit(HCI_CONN_SC_ENABLED, &conn->flags);
net/bluetooth/hci_event.c
4972
if (conn->state != BT_CONFIG)
net/bluetooth/hci_event.c
4975
if (!ev->status && !test_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags)) {
net/bluetooth/hci_event.c
4978
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/hci_event.c
4982
mgmt_device_connected(hdev, conn, NULL, 0);
net/bluetooth/hci_event.c
4985
if (!hci_outgoing_auth_needed(hdev, conn)) {
net/bluetooth/hci_event.c
4986
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
4987
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
4988
hci_conn_drop(conn);
net/bluetooth/hci_event.c
4999
struct hci_conn *conn;
net/bluetooth/hci_event.c
5020
conn = hci_conn_hash_lookup_ba(hdev, ev->link_type, &ev->bdaddr);
net/bluetooth/hci_event.c
5021
if (!conn) {
net/bluetooth/hci_event.c
5034
conn = hci_conn_hash_lookup_ba(hdev, ESCO_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5035
if (!conn)
net/bluetooth/hci_event.c
5045
if (!HCI_CONN_HANDLE_UNSET(conn->handle)) {
net/bluetooth/hci_event.c
5052
status = hci_conn_set_handle(conn, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
5054
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
5058
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
5059
conn->type = ev->link_type;
net/bluetooth/hci_event.c
5061
hci_debugfs_create_conn(conn);
net/bluetooth/hci_event.c
5062
hci_conn_add_sysfs(conn);
net/bluetooth/hci_event.c
5073
if (conn->out) {
net/bluetooth/hci_event.c
5074
conn->pkt_type = (hdev->esco_type & SCO_ESCO_MASK) |
net/bluetooth/hci_event.c
5076
if (hci_setup_sync(conn, conn->parent->handle))
net/bluetooth/hci_event.c
5082
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
5090
if (conn->codec.data_path == 0 && hdev->notify) {
net/bluetooth/hci_event.c
5101
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
5103
hci_conn_del(conn);
net/bluetooth/hci_event.c
5185
struct hci_conn *conn;
net/bluetooth/hci_event.c
5192
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
5193
if (!conn)
net/bluetooth/hci_event.c
5199
if (conn->type != LE_LINK)
net/bluetooth/hci_event.c
5203
conn->sec_level = conn->pending_sec_level;
net/bluetooth/hci_event.c
5205
clear_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags);
net/bluetooth/hci_event.c
5207
if (ev->status && conn->state == BT_CONNECTED) {
net/bluetooth/hci_event.c
5208
hci_disconnect(conn, HCI_ERROR_AUTH_FAILURE);
net/bluetooth/hci_event.c
5209
hci_conn_drop(conn);
net/bluetooth/hci_event.c
5213
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
5215
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
5217
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
5218
hci_conn_drop(conn);
net/bluetooth/hci_event.c
5220
hci_auth_cfm(conn, ev->status);
net/bluetooth/hci_event.c
5222
hci_conn_hold(conn);
net/bluetooth/hci_event.c
5223
conn->disc_timeout = HCI_DISCONN_TIMEOUT;
net/bluetooth/hci_event.c
5224
hci_conn_drop(conn);
net/bluetooth/hci_event.c
5231
static u8 hci_get_auth_req(struct hci_conn *conn)
net/bluetooth/hci_event.c
5234
if (conn->remote_auth == HCI_AT_NO_BONDING ||
net/bluetooth/hci_event.c
5235
conn->remote_auth == HCI_AT_NO_BONDING_MITM)
net/bluetooth/hci_event.c
5236
return conn->remote_auth | (conn->auth_type & 0x01);
net/bluetooth/hci_event.c
5241
if (conn->remote_cap != HCI_IO_NO_INPUT_OUTPUT &&
net/bluetooth/hci_event.c
5242
conn->io_capability != HCI_IO_NO_INPUT_OUTPUT)
net/bluetooth/hci_event.c
5243
return conn->remote_auth | 0x01;
net/bluetooth/hci_event.c
5246
return (conn->remote_auth & ~0x01) | (conn->auth_type & 0x01);
net/bluetooth/hci_event.c
5249
static u8 bredr_oob_data_present(struct hci_conn *conn)
net/bluetooth/hci_event.c
5251
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_event.c
5254
data = hci_find_remote_oob_data(hdev, &conn->dst, BDADDR_BREDR);
net/bluetooth/hci_event.c
5295
struct hci_conn *conn;
net/bluetooth/hci_event.c
5301
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5302
if (!conn || !hci_dev_test_flag(hdev, HCI_SSP_ENABLED))
net/bluetooth/hci_event.c
5306
set_bit(HCI_CONN_SSP_ENABLED, &conn->flags);
net/bluetooth/hci_event.c
5308
hci_conn_hold(conn);
net/bluetooth/hci_event.c
5317
test_bit(HCI_CONN_AUTH_INITIATOR, &conn->flags) ||
net/bluetooth/hci_event.c
5318
(conn->remote_auth & ~0x01) == HCI_AT_NO_BONDING) {
net/bluetooth/hci_event.c
5324
cp.capability = (conn->io_capability == 0x04) ?
net/bluetooth/hci_event.c
5325
HCI_IO_DISPLAY_YESNO : conn->io_capability;
net/bluetooth/hci_event.c
5328
if (conn->remote_auth == 0xff) {
net/bluetooth/hci_event.c
5332
if (conn->io_capability != HCI_IO_NO_INPUT_OUTPUT &&
net/bluetooth/hci_event.c
5333
conn->auth_type != HCI_AT_NO_BONDING)
net/bluetooth/hci_event.c
5334
conn->auth_type |= 0x01;
net/bluetooth/hci_event.c
5336
conn->auth_type = hci_get_auth_req(conn);
net/bluetooth/hci_event.c
5343
conn->auth_type &= HCI_AT_NO_BONDING_MITM;
net/bluetooth/hci_event.c
5345
cp.authentication = conn->auth_type;
net/bluetooth/hci_event.c
5346
cp.oob_data = bredr_oob_data_present(conn);
net/bluetooth/hci_event.c
5368
struct hci_conn *conn;
net/bluetooth/hci_event.c
5374
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5375
if (!conn)
net/bluetooth/hci_event.c
5378
conn->remote_cap = ev->capability;
net/bluetooth/hci_event.c
5379
conn->remote_auth = ev->authentication;
net/bluetooth/hci_event.c
5390
struct hci_conn *conn;
net/bluetooth/hci_event.c
5399
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5400
if (!conn)
net/bluetooth/hci_event.c
5403
loc_mitm = (conn->auth_type & 0x01);
net/bluetooth/hci_event.c
5404
rem_mitm = (conn->remote_auth & 0x01);
net/bluetooth/hci_event.c
5411
if (conn->pending_sec_level > BT_SECURITY_MEDIUM &&
net/bluetooth/hci_event.c
5412
conn->remote_cap == HCI_IO_NO_INPUT_OUTPUT) {
net/bluetooth/hci_event.c
5420
if ((!loc_mitm || conn->remote_cap == HCI_IO_NO_INPUT_OUTPUT) &&
net/bluetooth/hci_event.c
5421
(!rem_mitm || conn->io_capability == HCI_IO_NO_INPUT_OUTPUT)) {
net/bluetooth/hci_event.c
5427
if (!test_bit(HCI_CONN_AUTH_PEND, &conn->flags) &&
net/bluetooth/hci_event.c
5428
conn->io_capability != HCI_IO_NO_INPUT_OUTPUT) {
net/bluetooth/hci_event.c
5449
queue_delayed_work(conn->hdev->workqueue,
net/bluetooth/hci_event.c
5450
&conn->auto_accept_work, delay);
net/bluetooth/hci_event.c
5482
struct hci_conn *conn;
net/bluetooth/hci_event.c
5488
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5489
if (!conn)
net/bluetooth/hci_event.c
5492
conn->passkey_notify = __le32_to_cpu(ev->passkey);
net/bluetooth/hci_event.c
5493
conn->passkey_entered = 0;
net/bluetooth/hci_event.c
5496
mgmt_user_passkey_notify(hdev, &conn->dst, conn->type,
net/bluetooth/hci_event.c
5497
conn->dst_type, conn->passkey_notify,
net/bluetooth/hci_event.c
5498
conn->passkey_entered);
net/bluetooth/hci_event.c
5508
struct hci_conn *conn;
net/bluetooth/hci_event.c
5514
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5515
if (!conn)
net/bluetooth/hci_event.c
5520
conn->passkey_entered = 0;
net/bluetooth/hci_event.c
5524
conn->passkey_entered++;
net/bluetooth/hci_event.c
5528
conn->passkey_entered--;
net/bluetooth/hci_event.c
5532
conn->passkey_entered = 0;
net/bluetooth/hci_event.c
5540
mgmt_user_passkey_notify(hdev, &conn->dst, conn->type,
net/bluetooth/hci_event.c
5541
conn->dst_type, conn->passkey_notify,
net/bluetooth/hci_event.c
5542
conn->passkey_entered);
net/bluetooth/hci_event.c
5552
struct hci_conn *conn;
net/bluetooth/hci_event.c
5558
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5559
if (!conn || !hci_conn_ssp_enabled(conn))
net/bluetooth/hci_event.c
5563
conn->remote_auth = 0xff;
net/bluetooth/hci_event.c
5570
if (!test_bit(HCI_CONN_AUTH_PEND, &conn->flags) && ev->status)
net/bluetooth/hci_event.c
5571
mgmt_auth_failed(conn, ev->status);
net/bluetooth/hci_event.c
5573
hci_conn_drop(conn);
net/bluetooth/hci_event.c
5584
struct hci_conn *conn;
net/bluetooth/hci_event.c
5590
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5591
if (conn)
net/bluetooth/hci_event.c
5592
memcpy(conn->features[1], ev->features, 8);
net/bluetooth/hci_event.c
5655
static void le_conn_update_addr(struct hci_conn *conn, bdaddr_t *bdaddr,
net/bluetooth/hci_event.c
5658
if (conn->out) {
net/bluetooth/hci_event.c
5659
conn->dst_type = bdaddr_type;
net/bluetooth/hci_event.c
5660
conn->resp_addr_type = bdaddr_type;
net/bluetooth/hci_event.c
5661
bacpy(&conn->resp_addr, bdaddr);
net/bluetooth/hci_event.c
5667
conn->init_addr_type = ADDR_LE_DEV_RANDOM;
net/bluetooth/hci_event.c
5668
bacpy(&conn->init_addr, local_rpa);
net/bluetooth/hci_event.c
5669
} else if (hci_dev_test_flag(conn->hdev, HCI_PRIVACY)) {
net/bluetooth/hci_event.c
5670
conn->init_addr_type = ADDR_LE_DEV_RANDOM;
net/bluetooth/hci_event.c
5671
bacpy(&conn->init_addr, &conn->hdev->rpa);
net/bluetooth/hci_event.c
5673
hci_copy_identity_address(conn->hdev, &conn->init_addr,
net/bluetooth/hci_event.c
5674
&conn->init_addr_type);
net/bluetooth/hci_event.c
5677
conn->resp_addr_type = conn->hdev->adv_addr_type;
net/bluetooth/hci_event.c
5682
conn->resp_addr_type = ADDR_LE_DEV_RANDOM;
net/bluetooth/hci_event.c
5683
bacpy(&conn->resp_addr, local_rpa);
net/bluetooth/hci_event.c
5684
} else if (conn->hdev->adv_addr_type == ADDR_LE_DEV_RANDOM) {
net/bluetooth/hci_event.c
5688
if (!ext_adv_capable(conn->hdev))
net/bluetooth/hci_event.c
5689
bacpy(&conn->resp_addr,
net/bluetooth/hci_event.c
5690
&conn->hdev->random_addr);
net/bluetooth/hci_event.c
5692
bacpy(&conn->resp_addr, &conn->hdev->bdaddr);
net/bluetooth/hci_event.c
5695
conn->init_addr_type = bdaddr_type;
net/bluetooth/hci_event.c
5696
bacpy(&conn->init_addr, bdaddr);
net/bluetooth/hci_event.c
5703
conn->le_conn_min_interval = conn->hdev->le_conn_min_interval;
net/bluetooth/hci_event.c
5704
conn->le_conn_max_interval = conn->hdev->le_conn_max_interval;
net/bluetooth/hci_event.c
5715
struct hci_conn *conn;
net/bluetooth/hci_event.c
5737
conn = hci_conn_hash_lookup_role(hdev, LE_LINK, role, bdaddr);
net/bluetooth/hci_event.c
5738
if (!conn ||
net/bluetooth/hci_event.c
5739
(conn->role == HCI_ROLE_MASTER && conn->state != BT_CONNECT)) {
net/bluetooth/hci_event.c
5746
conn = hci_conn_add_unset(hdev, LE_LINK, bdaddr, bdaddr_type,
net/bluetooth/hci_event.c
5748
if (IS_ERR(conn)) {
net/bluetooth/hci_event.c
5749
bt_dev_err(hdev, "connection err: %ld", PTR_ERR(conn));
net/bluetooth/hci_event.c
5761
if (conn->out) {
net/bluetooth/hci_event.c
5762
conn->resp_addr_type = bdaddr_type;
net/bluetooth/hci_event.c
5763
bacpy(&conn->resp_addr, bdaddr);
net/bluetooth/hci_event.c
5765
conn->init_addr_type = ADDR_LE_DEV_RANDOM;
net/bluetooth/hci_event.c
5766
bacpy(&conn->init_addr, &hdev->rpa);
net/bluetooth/hci_event.c
5769
&conn->init_addr,
net/bluetooth/hci_event.c
5770
&conn->init_addr_type);
net/bluetooth/hci_event.c
5774
cancel_delayed_work(&conn->le_conn_timeout);
net/bluetooth/hci_event.c
5783
if (!HCI_CONN_HANDLE_UNSET(conn->handle)) {
net/bluetooth/hci_event.c
5788
le_conn_update_addr(conn, bdaddr, bdaddr_type, local_rpa);
net/bluetooth/hci_event.c
5799
irk = hci_get_irk(hdev, &conn->dst, conn->dst_type);
net/bluetooth/hci_event.c
5801
bacpy(&conn->dst, &irk->bdaddr);
net/bluetooth/hci_event.c
5802
conn->dst_type = irk->addr_type;
net/bluetooth/hci_event.c
5805
conn->dst_type = ev_bdaddr_type(hdev, conn->dst_type, NULL);
net/bluetooth/hci_event.c
5811
if (status || hci_conn_set_handle(conn, handle))
net/bluetooth/hci_event.c
5815
if (test_bit(HCI_CONN_CANCEL, &conn->flags)) {
net/bluetooth/hci_event.c
5816
hci_conn_drop(conn);
net/bluetooth/hci_event.c
5820
if (conn->dst_type == ADDR_LE_DEV_PUBLIC)
net/bluetooth/hci_event.c
5826
if (hci_bdaddr_list_lookup(&hdev->reject_list, &conn->dst, addr_type)) {
net/bluetooth/hci_event.c
5827
hci_conn_drop(conn);
net/bluetooth/hci_event.c
5831
mgmt_device_connected(hdev, conn, NULL, 0);
net/bluetooth/hci_event.c
5833
conn->sec_level = BT_SECURITY_LOW;
net/bluetooth/hci_event.c
5834
conn->state = BT_CONFIG;
net/bluetooth/hci_event.c
5841
conn->adv_instance = hdev->cur_adv_instance;
net/bluetooth/hci_event.c
5843
conn->le_conn_interval = interval;
net/bluetooth/hci_event.c
5844
conn->le_conn_latency = latency;
net/bluetooth/hci_event.c
5845
conn->le_supv_timeout = supervision_timeout;
net/bluetooth/hci_event.c
5847
hci_debugfs_create_conn(conn);
net/bluetooth/hci_event.c
5848
hci_conn_add_sysfs(conn);
net/bluetooth/hci_event.c
5850
err = hci_le_read_remote_features(conn);
net/bluetooth/hci_event.c
5852
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
5853
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
5856
params = hci_pend_le_action_lookup(&hdev->pend_le_conns, &conn->dst,
net/bluetooth/hci_event.c
5857
conn->dst_type);
net/bluetooth/hci_event.c
5860
if (params->conn) {
net/bluetooth/hci_event.c
5861
hci_conn_drop(params->conn);
net/bluetooth/hci_event.c
5862
hci_conn_put(params->conn);
net/bluetooth/hci_event.c
5863
params->conn = NULL;
net/bluetooth/hci_event.c
5905
struct hci_conn *conn;
net/bluetooth/hci_event.c
5912
conn = hci_conn_hash_lookup_pa_sync_handle(hdev, handle);
net/bluetooth/hci_event.c
5913
if (conn) {
net/bluetooth/hci_event.c
5914
clear_bit(HCI_CONN_BIG_SYNC, &conn->flags);
net/bluetooth/hci_event.c
5915
clear_bit(HCI_CONN_PA_SYNC, &conn->flags);
net/bluetooth/hci_event.c
5916
hci_disconn_cfm(conn, HCI_ERROR_REMOTE_USER_TERM);
net/bluetooth/hci_event.c
5917
hci_conn_del(conn);
net/bluetooth/hci_event.c
5927
struct hci_conn *conn;
net/bluetooth/hci_event.c
5969
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->conn_handle));
net/bluetooth/hci_event.c
5970
if (conn) {
net/bluetooth/hci_event.c
5974
conn->adv_instance = ev->handle;
net/bluetooth/hci_event.c
5977
bacmp(&conn->resp_addr, BDADDR_ANY))
net/bluetooth/hci_event.c
5981
bacpy(&conn->resp_addr, &hdev->random_addr);
net/bluetooth/hci_event.c
5986
bacpy(&conn->resp_addr, &adv->random_addr);
net/bluetooth/hci_event.c
6009
struct hci_conn *pa_sync, *conn;
net/bluetooth/hci_event.c
6018
conn = hci_conn_hash_lookup_create_pa_sync(hdev);
net/bluetooth/hci_event.c
6019
if (!conn) {
net/bluetooth/hci_event.c
6026
conn->sync_handle = le16_to_cpu(ev->sync_handle);
net/bluetooth/hci_event.c
6027
conn->sid = HCI_SID_INVALID;
net/bluetooth/hci_event.c
6063
struct hci_conn *conn;
net/bluetooth/hci_event.c
6072
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
6073
if (conn) {
net/bluetooth/hci_event.c
6074
conn->le_conn_interval = le16_to_cpu(ev->interval);
net/bluetooth/hci_event.c
6075
conn->le_conn_latency = le16_to_cpu(ev->latency);
net/bluetooth/hci_event.c
6076
conn->le_supv_timeout = le16_to_cpu(ev->supervision_timeout);
net/bluetooth/hci_event.c
6088
struct hci_conn *conn;
net/bluetooth/hci_event.c
6139
conn = hci_connect_le(hdev, addr, addr_type, addr_resolved,
net/bluetooth/hci_event.c
6142
if (!IS_ERR(conn)) {
net/bluetooth/hci_event.c
6153
params->conn = hci_conn_get(conn);
net/bluetooth/hci_event.c
6155
return conn;
net/bluetooth/hci_event.c
6158
switch (PTR_ERR(conn)) {
net/bluetooth/hci_event.c
6167
BT_DBG("Failed to connect: err %ld", PTR_ERR(conn));
net/bluetooth/hci_event.c
6182
struct hci_conn *conn;
net/bluetooth/hci_event.c
6268
conn = check_pending_le_conn(hdev, bdaddr, bdaddr_type, bdaddr_resolved,
net/bluetooth/hci_event.c
6270
if (!ext_adv && conn && type == LE_ADV_IND &&
net/bluetooth/hci_event.c
6275
memcpy(conn->le_adv_data, data, len);
net/bluetooth/hci_event.c
6276
conn->le_adv_data_len = len;
net/bluetooth/hci_event.c
6518
struct hci_conn *conn;
net/bluetooth/hci_event.c
6520
conn = hci_conn_hash_lookup_create_pa_sync(hdev);
net/bluetooth/hci_event.c
6521
if (conn && conn->sid == HCI_SID_INVALID)
net/bluetooth/hci_event.c
6522
conn->sid = info->sid;
net/bluetooth/hci_event.c
6545
struct hci_conn *pa_sync, *conn;
net/bluetooth/hci_event.c
6554
conn = hci_conn_hash_lookup_create_pa_sync(hdev);
net/bluetooth/hci_event.c
6555
if (!conn) {
net/bluetooth/hci_event.c
6562
clear_bit(HCI_CONN_CREATE_PA_SYNC, &conn->flags);
net/bluetooth/hci_event.c
6564
conn->sync_handle = le16_to_cpu(ev->handle);
net/bluetooth/hci_event.c
6565
conn->sid = HCI_SID_INVALID;
net/bluetooth/hci_event.c
6640
struct hci_conn *conn;
net/bluetooth/hci_event.c
6646
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
6647
if (conn) {
net/bluetooth/hci_event.c
6649
memcpy(conn->le_features, ev->features, 8);
net/bluetooth/hci_event.c
6652
if (!(conn->le_features[1] & HCI_LE_PHY_2M)) {
net/bluetooth/hci_event.c
6653
conn->le_tx_def_phys &= ~HCI_LE_SET_PHY_2M;
net/bluetooth/hci_event.c
6654
conn->le_rx_def_phys &= ~HCI_LE_SET_PHY_2M;
net/bluetooth/hci_event.c
6657
if (!(conn->le_features[1] & HCI_LE_PHY_CODED)) {
net/bluetooth/hci_event.c
6658
conn->le_tx_def_phys &= ~HCI_LE_SET_PHY_CODED;
net/bluetooth/hci_event.c
6659
conn->le_rx_def_phys &= ~HCI_LE_SET_PHY_CODED;
net/bluetooth/hci_event.c
6663
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
6675
if (!conn->out && ev->status == HCI_ERROR_UNSUPPORTED_REMOTE_FEATURE &&
net/bluetooth/hci_event.c
6681
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
6682
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
6695
struct hci_conn *conn;
net/bluetooth/hci_event.c
6702
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
6703
if (conn == NULL)
net/bluetooth/hci_event.c
6706
ltk = hci_find_ltk(hdev, &conn->dst, conn->dst_type, conn->role);
net/bluetooth/hci_event.c
6722
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_event.c
6724
conn->pending_sec_level = smp_ltk_sec_level(ltk);
net/bluetooth/hci_event.c
6726
conn->enc_key_size = ltk->enc_size;
net/bluetooth/hci_event.c
6737
set_bit(HCI_CONN_STK_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
6741
clear_bit(HCI_CONN_STK_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
6871
struct hci_conn *conn;
net/bluetooth/hci_event.c
6880
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
6881
if (!conn)
net/bluetooth/hci_event.c
6884
conn->le_tx_phy = ev->tx_phy;
net/bluetooth/hci_event.c
6885
conn->le_rx_phy = ev->rx_phy;
net/bluetooth/hci_event.c
6910
struct hci_conn *conn;
net/bluetooth/hci_event.c
6920
conn = hci_conn_hash_lookup_handle(hdev, handle);
net/bluetooth/hci_event.c
6921
if (!conn) {
net/bluetooth/hci_event.c
6928
if (conn->type != CIS_LINK) {
net/bluetooth/hci_event.c
6935
qos = &conn->iso_qos;
net/bluetooth/hci_event.c
6937
pending = test_and_clear_bit(HCI_CONN_CREATE_CIS, &conn->flags);
net/bluetooth/hci_event.c
6954
switch (conn->role) {
net/bluetooth/hci_event.c
6988
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
6989
hci_debugfs_create_conn(conn);
net/bluetooth/hci_event.c
6990
hci_conn_add_sysfs(conn);
net/bluetooth/hci_event.c
6991
hci_iso_setup_path(conn);
net/bluetooth/hci_event.c
6995
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
6996
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
6997
hci_conn_del(conn);
net/bluetooth/hci_event.c
7088
struct hci_conn *conn;
net/bluetooth/hci_event.c
7100
while ((conn = hci_conn_hash_lookup_big_state(hdev, ev->handle,
net/bluetooth/hci_event.c
7104
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
7105
hci_conn_del(conn);
net/bluetooth/hci_event.c
7114
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
7115
hci_conn_del(conn);
net/bluetooth/hci_event.c
7119
if (hci_conn_set_handle(conn,
net/bluetooth/hci_event.c
7128
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
7129
hci_conn_del(conn);
net/bluetooth/hci_event.c
7133
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
7134
set_bit(HCI_CONN_BIG_CREATED, &conn->flags);
net/bluetooth/hci_event.c
7135
hci_debugfs_create_conn(conn);
net/bluetooth/hci_event.c
7136
hci_conn_add_sysfs(conn);
net/bluetooth/hci_event.c
7137
hci_iso_setup_path(conn);
net/bluetooth/hci_event.c
7159
struct hci_conn *bis, *conn;
net/bluetooth/hci_event.c
7170
conn = hci_conn_hash_lookup_big_sync_pend(hdev, ev->handle,
net/bluetooth/hci_event.c
7172
if (!conn) {
net/bluetooth/hci_event.c
7179
clear_bit(HCI_CONN_CREATE_BIG_SYNC, &conn->flags);
net/bluetooth/hci_event.c
718
struct hci_conn *conn;
net/bluetooth/hci_event.c
7181
conn->num_bis = 0;
net/bluetooth/hci_event.c
7182
memset(conn->bis, 0, sizeof(conn->bis));
net/bluetooth/hci_event.c
7204
bis->sync_handle = conn->sync_handle;
net/bluetooth/hci_event.c
728
conn = hci_conn_hash_lookup_handle(hdev, handle);
net/bluetooth/hci_event.c
729
if (!conn) {
net/bluetooth/hci_event.c
7311
struct hci_conn *conn;
net/bluetooth/hci_event.c
7317
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
7318
if (!conn)
net/bluetooth/hci_event.c
7322
memcpy(conn->le_features, ev->features, 248);
net/bluetooth/hci_event.c
7325
if (!(conn->le_features[1] & HCI_LE_PHY_2M)) {
net/bluetooth/hci_event.c
7326
conn->le_tx_def_phys &= ~HCI_LE_SET_PHY_2M;
net/bluetooth/hci_event.c
7327
conn->le_rx_def_phys &= ~HCI_LE_SET_PHY_2M;
net/bluetooth/hci_event.c
7330
if (!(conn->le_features[1] & HCI_LE_PHY_CODED)) {
net/bluetooth/hci_event.c
7331
conn->le_tx_def_phys &= ~HCI_LE_SET_PHY_CODED;
net/bluetooth/hci_event.c
7332
conn->le_rx_def_phys &= ~HCI_LE_SET_PHY_CODED;
net/bluetooth/hci_event.c
7336
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
7348
if (!conn->out &&
net/bluetooth/hci_event.c
7355
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
7356
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
741
conn->enc_key_size = 0;
net/bluetooth/hci_event.c
743
u8 *key_enc_size = hci_conn_key_enc_size(conn);
net/bluetooth/hci_event.c
745
conn->enc_key_size = rp->key_size;
net/bluetooth/hci_event.c
752
if (conn->enc_key_size < hdev->min_enc_key_size ||
net/bluetooth/hci_event.c
753
(key_enc_size && conn->enc_key_size < *key_enc_size)) {
net/bluetooth/hci_event.c
763
clear_bit(HCI_CONN_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
764
clear_bit(HCI_CONN_AES_CCM, &conn->flags);
net/bluetooth/hci_event.c
768
if (key_enc_size && *key_enc_size != conn->enc_key_size)
net/bluetooth/hci_event.c
769
*key_enc_size = conn->enc_key_size;
net/bluetooth/hci_event.c
772
hci_encrypt_cfm(conn, status);
net/bluetooth/hci_event.c
801
struct hci_conn *conn;
net/bluetooth/hci_event.c
810
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
811
if (conn)
net/bluetooth/hci_event.c
812
conn->auth_payload_timeout = __le16_to_cpu(rp->timeout);
net/bluetooth/hci_event.c
823
struct hci_conn *conn;
net/bluetooth/hci_event.c
834
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
835
if (!conn) {
net/bluetooth/hci_event.c
841
conn->auth_payload_timeout = get_unaligned_le16(sent + 2);
net/bluetooth/hci_sync.c
2873
struct hci_conn *conn;
net/bluetooth/hci_sync.c
2877
conn = hci_conn_hash_lookup_create_pa_sync(hdev);
net/bluetooth/hci_sync.c
2878
if (conn) {
net/bluetooth/hci_sync.c
2883
bacpy(&pa.addr, &conn->dst);
net/bluetooth/hci_sync.c
2884
pa.addr_type = conn->dst_type;
net/bluetooth/hci_sync.c
3049
struct hci_conn *conn;
net/bluetooth/hci_sync.c
3053
conn = hci_conn_hash_lookup_ba(hdev, PA_LINK,
net/bluetooth/hci_sync.c
3055
if (conn) {
net/bluetooth/hci_sync.c
3056
struct bt_iso_qos *qos = &conn->iso_qos;
net/bluetooth/hci_sync.c
3565
struct hci_conn *conn;
net/bluetooth/hci_sync.c
3567
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &b->bdaddr);
net/bluetooth/hci_sync.c
3568
if (!conn)
net/bluetooth/hci_sync.c
3571
if (conn->state != BT_CONNECTED && conn->state != BT_CONFIG)
net/bluetooth/hci_sync.c
5397
if (p->conn) {
net/bluetooth/hci_sync.c
5398
hci_conn_drop(p->conn);
net/bluetooth/hci_sync.c
5399
hci_conn_put(p->conn);
net/bluetooth/hci_sync.c
5400
p->conn = NULL;
net/bluetooth/hci_sync.c
5715
static int hci_disconnect_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
5720
if (conn->type == BIS_LINK || conn->type == PA_LINK) {
net/bluetooth/hci_sync.c
5725
hci_conn_failed(conn, reason);
net/bluetooth/hci_sync.c
5732
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
5751
struct hci_conn *conn, u8 reason)
net/bluetooth/hci_sync.c
5756
if (test_bit(HCI_CONN_SCANNING, &conn->flags))
net/bluetooth/hci_sync.c
5759
if (conn->role == HCI_ROLE_SLAVE ||
net/bluetooth/hci_sync.c
5760
test_and_set_bit(HCI_CONN_CANCEL, &conn->flags))
net/bluetooth/hci_sync.c
5767
static int hci_connect_cancel_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
5770
if (conn->type == LE_LINK)
net/bluetooth/hci_sync.c
5771
return hci_le_connect_cancel_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5773
if (conn->type == CIS_LINK) {
net/bluetooth/hci_sync.c
5782
if (test_bit(HCI_CONN_CREATE_CIS, &conn->flags))
net/bluetooth/hci_sync.c
5783
return hci_disconnect_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5789
if (conn->type == BIS_LINK || conn->type == PA_LINK) {
net/bluetooth/hci_sync.c
5806
6, &conn->dst,
net/bluetooth/hci_sync.c
5811
6, &conn->dst, HCI_CMD_TIMEOUT);
net/bluetooth/hci_sync.c
5814
static int hci_reject_sco_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
5820
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/hci_sync.c
5833
static int hci_le_reject_cis_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
5839
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
5846
static int hci_reject_conn_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
5851
if (conn->type == CIS_LINK)
net/bluetooth/hci_sync.c
5852
return hci_le_reject_cis_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5854
if (conn->type == BIS_LINK || conn->type == PA_LINK)
net/bluetooth/hci_sync.c
5857
if (conn->type == SCO_LINK || conn->type == ESCO_LINK)
net/bluetooth/hci_sync.c
5858
return hci_reject_sco_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5861
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/hci_sync.c
5868
int hci_abort_conn_sync(struct hci_dev *hdev, struct hci_conn *conn, u8 reason)
net/bluetooth/hci_sync.c
5871
u16 handle = conn->handle;
net/bluetooth/hci_sync.c
5875
switch (conn->state) {
net/bluetooth/hci_sync.c
5878
err = hci_disconnect_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5881
err = hci_connect_cancel_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5884
err = hci_reject_conn_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5898
if (!c || c != conn) {
net/bluetooth/hci_sync.c
5909
conn->state = BT_CLOSED;
net/bluetooth/hci_sync.c
5910
hci_disconn_cfm(conn, reason);
net/bluetooth/hci_sync.c
5911
hci_conn_del(conn);
net/bluetooth/hci_sync.c
5913
hci_conn_failed(conn, reason);
net/bluetooth/hci_sync.c
5924
struct hci_conn *conn;
net/bluetooth/hci_sync.c
5927
while ((conn = list_first_or_null_rcu(head, struct hci_conn, list))) {
net/bluetooth/hci_sync.c
5929
conn = hci_conn_get(conn);
net/bluetooth/hci_sync.c
5936
hci_abort_conn_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5937
hci_conn_put(conn);
net/bluetooth/hci_sync.c
6536
static bool conn_use_rpa(struct hci_conn *conn)
net/bluetooth/hci_sync.c
6538
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_sync.c
6544
struct hci_conn *conn)
net/bluetooth/hci_sync.c
6552
err = hci_update_random_address_sync(hdev, false, conn_use_rpa(conn),
net/bluetooth/hci_sync.c
6560
err = hci_get_random_address(hdev, false, conn_use_rpa(conn), NULL,
net/bluetooth/hci_sync.c
6574
cp.peer_addr_type = conn->dst_type;
net/bluetooth/hci_sync.c
6575
bacpy(&cp.peer_addr, &conn->dst);
net/bluetooth/hci_sync.c
6612
struct hci_conn *conn)
net/bluetooth/hci_sync.c
6620
return hci_le_ext_directed_advertising_sync(hdev, conn);
net/bluetooth/hci_sync.c
6632
status = hci_update_random_address_sync(hdev, false, conn_use_rpa(conn),
net/bluetooth/hci_sync.c
6648
cp.direct_addr_type = conn->dst_type;
net/bluetooth/hci_sync.c
6649
bacpy(&cp.direct_addr, &conn->dst);
net/bluetooth/hci_sync.c
6663
static void set_ext_conn_params(struct hci_conn *conn,
net/bluetooth/hci_sync.c
6666
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_sync.c
6672
p->conn_interval_min = cpu_to_le16(conn->le_conn_min_interval);
net/bluetooth/hci_sync.c
6673
p->conn_interval_max = cpu_to_le16(conn->le_conn_max_interval);
net/bluetooth/hci_sync.c
6674
p->conn_latency = cpu_to_le16(conn->le_conn_latency);
net/bluetooth/hci_sync.c
6675
p->supervision_timeout = cpu_to_le16(conn->le_supv_timeout);
net/bluetooth/hci_sync.c
6681
struct hci_conn *conn, u8 own_addr_type)
net/bluetooth/hci_sync.c
6693
bacpy(&cp->peer_addr, &conn->dst);
net/bluetooth/hci_sync.c
6694
cp->peer_addr_type = conn->dst_type;
net/bluetooth/hci_sync.c
6699
if (scan_1m(hdev) && (conn->le_adv_phy == HCI_ADV_PHY_1M ||
net/bluetooth/hci_sync.c
6700
conn->le_adv_sec_phy == HCI_ADV_PHY_1M)) {
net/bluetooth/hci_sync.c
6702
set_ext_conn_params(conn, p);
net/bluetooth/hci_sync.c
6708
if (scan_2m(hdev) && (conn->le_adv_phy == HCI_ADV_PHY_2M ||
net/bluetooth/hci_sync.c
6709
conn->le_adv_sec_phy == HCI_ADV_PHY_2M)) {
net/bluetooth/hci_sync.c
6711
set_ext_conn_params(conn, p);
net/bluetooth/hci_sync.c
6717
if (scan_coded(hdev) && (conn->le_adv_phy == HCI_ADV_PHY_CODED ||
net/bluetooth/hci_sync.c
6718
conn->le_adv_sec_phy == HCI_ADV_PHY_CODED)) {
net/bluetooth/hci_sync.c
6720
set_ext_conn_params(conn, p);
net/bluetooth/hci_sync.c
6728
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
6737
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
6739
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
6742
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/hci_sync.c
6744
clear_bit(HCI_CONN_SCANNING, &conn->flags);
net/bluetooth/hci_sync.c
6745
conn->state = BT_CONNECT;
net/bluetooth/hci_sync.c
6748
if (conn->role == HCI_ROLE_SLAVE) {
net/bluetooth/hci_sync.c
6755
conn->state = BT_OPEN;
net/bluetooth/hci_sync.c
6756
hci_abort_conn_sync(hdev, conn,
net/bluetooth/hci_sync.c
6764
err = hci_le_directed_advertising_sync(hdev, conn);
net/bluetooth/hci_sync.c
6774
params = hci_conn_params_lookup(hdev, &conn->dst, conn->dst_type);
net/bluetooth/hci_sync.c
6776
conn->le_conn_min_interval = params->conn_min_interval;
net/bluetooth/hci_sync.c
6777
conn->le_conn_max_interval = params->conn_max_interval;
net/bluetooth/hci_sync.c
6778
conn->le_conn_latency = params->conn_latency;
net/bluetooth/hci_sync.c
6779
conn->le_supv_timeout = params->supervision_timeout;
net/bluetooth/hci_sync.c
6781
conn->le_conn_min_interval = hdev->le_conn_min_interval;
net/bluetooth/hci_sync.c
6782
conn->le_conn_max_interval = hdev->le_conn_max_interval;
net/bluetooth/hci_sync.c
6783
conn->le_conn_latency = hdev->le_conn_latency;
net/bluetooth/hci_sync.c
6784
conn->le_supv_timeout = hdev->le_supv_timeout;
net/bluetooth/hci_sync.c
6803
err = hci_update_random_address_sync(hdev, false, conn_use_rpa(conn),
net/bluetooth/hci_sync.c
6811
set_bit(HCI_CONN_CREATE, &conn->flags);
net/bluetooth/hci_sync.c
6815
err = hci_le_ext_create_conn_sync(hdev, conn, own_addr_type);
net/bluetooth/hci_sync.c
6824
bacpy(&cp.peer_addr, &conn->dst);
net/bluetooth/hci_sync.c
6825
cp.peer_addr_type = conn->dst_type;
net/bluetooth/hci_sync.c
6827
cp.conn_interval_min = cpu_to_le16(conn->le_conn_min_interval);
net/bluetooth/hci_sync.c
6828
cp.conn_interval_max = cpu_to_le16(conn->le_conn_max_interval);
net/bluetooth/hci_sync.c
6829
cp.conn_latency = cpu_to_le16(conn->le_conn_latency);
net/bluetooth/hci_sync.c
6830
cp.supervision_timeout = cpu_to_le16(conn->le_supv_timeout);
net/bluetooth/hci_sync.c
6845
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
6848
clear_bit(HCI_CONN_CREATE, &conn->flags);
net/bluetooth/hci_sync.c
6851
hci_le_connect_cancel_sync(hdev, conn, 0x00);
net/bluetooth/hci_sync.c
6862
struct hci_conn *conn;
net/bluetooth/hci_sync.c
6894
list_for_each_entry_rcu(conn, &hdev->conn_hash.list, list) {
net/bluetooth/hci_sync.c
6895
if (test_bit(HCI_CONN_CREATE_CIS, &conn->flags))
net/bluetooth/hci_sync.c
6900
list_for_each_entry_rcu(conn, &hdev->conn_hash.list, list) {
net/bluetooth/hci_sync.c
6903
if (hci_conn_check_create_cis(conn))
net/bluetooth/hci_sync.c
6906
cig = conn->iso_qos.ucast.cig;
net/bluetooth/hci_sync.c
6924
list_for_each_entry_rcu(conn, &hdev->conn_hash.list, list) {
net/bluetooth/hci_sync.c
6927
if (hci_conn_check_create_cis(conn) ||
net/bluetooth/hci_sync.c
6928
conn->iso_qos.ucast.cig != cig)
net/bluetooth/hci_sync.c
6931
set_bit(HCI_CONN_CREATE_CIS, &conn->flags);
net/bluetooth/hci_sync.c
6932
cis->acl_handle = cpu_to_le16(conn->parent->handle);
net/bluetooth/hci_sync.c
6933
cis->cis_handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
6934
timeout = conn->conn_timeout;
net/bluetooth/hci_sync.c
7078
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7083
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
7101
conn->state = BT_CONNECT;
net/bluetooth/hci_sync.c
7102
conn->out = true;
net/bluetooth/hci_sync.c
7103
conn->role = HCI_ROLE_MASTER;
net/bluetooth/hci_sync.c
7105
conn->attempt++;
net/bluetooth/hci_sync.c
7108
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/hci_sync.c
7111
ie = hci_inquiry_cache_lookup(hdev, &conn->dst);
net/bluetooth/hci_sync.c
7120
memcpy(conn->dev_class, ie->data.dev_class, 3);
net/bluetooth/hci_sync.c
7123
cp.pkt_type = cpu_to_le16(conn->pkt_type);
net/bluetooth/hci_sync.c
7132
set_bit(HCI_CONN_CREATE, &conn->flags);
net/bluetooth/hci_sync.c
7137
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
7139
clear_bit(HCI_CONN_CREATE, &conn->flags);
net/bluetooth/hci_sync.c
7147
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7149
hci_conn_put(conn);
net/bluetooth/hci_sync.c
7152
int hci_connect_acl_sync(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_sync.c
7157
hci_conn_get(conn),
net/bluetooth/hci_sync.c
7160
hci_conn_put(conn);
net/bluetooth/hci_sync.c
7166
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7175
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
7179
hci_connect_le_scan_cleanup(conn, 0x00);
net/bluetooth/hci_sync.c
7184
if (conn != hci_lookup_le_connect(hdev))
net/bluetooth/hci_sync.c
7188
flush_delayed_work(&conn->le_conn_timeout);
net/bluetooth/hci_sync.c
7189
hci_conn_failed(conn, bt_status(err));
net/bluetooth/hci_sync.c
7194
hci_conn_put(conn);
net/bluetooth/hci_sync.c
7197
int hci_connect_le_sync(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_sync.c
7202
hci_conn_get(conn),
net/bluetooth/hci_sync.c
7205
hci_conn_put(conn);
net/bluetooth/hci_sync.c
7210
struct hci_conn *conn)
net/bluetooth/hci_sync.c
7223
if (test_bit(HCI_CONN_CREATE, &conn->flags)) {
net/bluetooth/hci_sync.c
7231
entry = _hci_cmd_sync_lookup_entry(hdev, hci_acl_create_conn_sync, conn,
net/bluetooth/hci_sync.c
7244
struct hci_conn *conn)
net/bluetooth/hci_sync.c
7254
if (test_bit(HCI_CONN_CREATE, &conn->flags)) {
net/bluetooth/hci_sync.c
7259
entry = _hci_cmd_sync_lookup_entry(hdev, hci_le_create_conn_sync, conn,
net/bluetooth/hci_sync.c
7272
struct hci_conn *conn)
net/bluetooth/hci_sync.c
7281
if (test_bit(HCI_CONN_CREATE_CIS, &conn->flags))
net/bluetooth/hci_sync.c
7288
int hci_cancel_connect_sync(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_sync.c
7290
switch (conn->type) {
net/bluetooth/hci_sync.c
7292
return hci_acl_cancel_create_conn_sync(hdev, conn);
net/bluetooth/hci_sync.c
7294
return hci_le_cancel_create_conn_sync(hdev, conn);
net/bluetooth/hci_sync.c
7296
return hci_cis_cancel_create_conn_sync(hdev, conn);
net/bluetooth/hci_sync.c
7302
int hci_le_conn_update_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
7308
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
7322
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7332
if (hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
7333
clear_bit(HCI_CONN_CREATE_PA_SYNC, &conn->flags);
net/bluetooth/hci_sync.c
7353
hci_conn_put(conn);
net/bluetooth/hci_sync.c
7356
static int hci_le_past_params_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
7384
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
7390
struct hci_conn *conn = data, *le;
net/bluetooth/hci_sync.c
7391
struct bt_iso_qos *qos = &conn->iso_qos;
net/bluetooth/hci_sync.c
7394
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
7397
if (conn->sync_handle != HCI_SYNC_HANDLE_INVALID)
net/bluetooth/hci_sync.c
7407
if (conn->sid == HCI_SID_INVALID &&
net/bluetooth/hci_sync.c
7418
set_bit(HCI_CONN_CREATE_PA_SYNC, &conn->flags);
net/bluetooth/hci_sync.c
7430
le = hci_conn_hash_lookup_le(hdev, &conn->dst, conn->dst_type);
net/bluetooth/hci_sync.c
7443
err = hci_le_past_params_sync(hdev, conn, le_handle,
net/bluetooth/hci_sync.c
7455
if (conn->sid == HCI_SID_INVALID) {
net/bluetooth/hci_sync.c
7458
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
7465
cp.sid = conn->sid;
net/bluetooth/hci_sync.c
7466
cp.addr_type = conn->dst_type;
net/bluetooth/hci_sync.c
7467
bacpy(&cp.addr, &conn->dst);
net/bluetooth/hci_sync.c
7486
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
7500
int hci_connect_pa_sync(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_sync.c
7505
hci_conn_get(conn),
net/bluetooth/hci_sync.c
7508
hci_conn_put(conn);
net/bluetooth/hci_sync.c
7514
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7521
clear_bit(HCI_CONN_CREATE_BIG_SYNC, &conn->flags);
net/bluetooth/hci_sync.c
7524
hci_conn_put(conn);
net/bluetooth/hci_sync.c
7531
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7532
struct bt_iso_qos *qos = &conn->iso_qos;
net/bluetooth/hci_sync.c
7535
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
7538
set_bit(HCI_CONN_CREATE_BIG_SYNC, &conn->flags);
net/bluetooth/hci_sync.c
7542
cp->sync_handle = cpu_to_le16(conn->sync_handle);
net/bluetooth/hci_sync.c
7547
cp->num_bis = conn->num_bis;
net/bluetooth/hci_sync.c
7548
memcpy(cp->bis, conn->bis, conn->num_bis);
net/bluetooth/hci_sync.c
7565
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
7572
int hci_connect_big_sync(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_sync.c
7576
if (!conn)
net/bluetooth/hci_sync.c
7580
hci_conn_get(conn),
net/bluetooth/hci_sync.c
7583
hci_conn_put(conn);
net/bluetooth/hci_sync.c
7588
struct hci_conn *conn;
net/bluetooth/hci_sync.c
7598
hci_conn_put(past->conn);
net/bluetooth/hci_sync.c
7610
if (!hci_conn_valid(hdev, past->conn) ||
net/bluetooth/hci_sync.c
7618
cp.adv_handle = past->conn->iso_qos.bcast.bis;
net/bluetooth/hci_sync.c
7633
if (!hci_conn_valid(hdev, past->conn) ||
net/bluetooth/hci_sync.c
7641
cp.sync_handle = cpu_to_le16(past->conn->sync_handle);
net/bluetooth/hci_sync.c
7649
int hci_past_sync(struct hci_conn *conn, struct hci_conn *le)
net/bluetooth/hci_sync.c
7654
if (conn->type != BIS_LINK && conn->type != PA_LINK)
net/bluetooth/hci_sync.c
7657
if (!past_sender_capable(conn->hdev))
net/bluetooth/hci_sync.c
7664
data->conn = hci_conn_get(conn);
net/bluetooth/hci_sync.c
7667
if (conn->role == HCI_ROLE_MASTER)
net/bluetooth/hci_sync.c
7668
err = hci_cmd_sync_queue_once(conn->hdev,
net/bluetooth/hci_sync.c
7672
err = hci_cmd_sync_queue_once(conn->hdev, hci_le_past_sync,
net/bluetooth/hci_sync.c
7676
hci_conn_put(data->conn);
net/bluetooth/hci_sync.c
7686
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7690
hci_conn_drop(conn);
net/bluetooth/hci_sync.c
7691
hci_conn_put(conn);
net/bluetooth/hci_sync.c
7697
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7701
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
7716
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7719
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
7730
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
7741
int hci_le_read_remote_features(struct hci_conn *conn)
net/bluetooth/hci_sync.c
7743
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_sync.c
7755
if (conn->out || (hdev->le_features[0] & HCI_LE_PERIPHERAL_FEATURES)) {
net/bluetooth/hci_sync.c
7758
hci_conn_hold(hci_conn_get(conn)),
net/bluetooth/hci_sync.c
7761
hci_conn_drop(conn);
net/bluetooth/hci_sync.c
7762
hci_conn_put(conn);
net/bluetooth/hci_sync.c
7790
int hci_acl_change_pkt_type(struct hci_conn *conn, u16 pkt_type)
net/bluetooth/hci_sync.c
7792
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_sync.c
7800
cp->handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
7830
int hci_le_set_phy(struct hci_conn *conn, u8 tx_phys, u8 rx_phys)
net/bluetooth/hci_sync.c
7832
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_sync.c
7841
cp->handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sysfs.c
15
struct hci_conn *conn = to_hci_conn(dev);
net/bluetooth/hci_sysfs.c
16
kfree(conn);
net/bluetooth/hci_sysfs.c
24
void hci_conn_init_sysfs(struct hci_conn *conn)
net/bluetooth/hci_sysfs.c
26
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_sysfs.c
28
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/hci_sysfs.c
30
conn->dev.type = &bt_link;
net/bluetooth/hci_sysfs.c
31
conn->dev.class = &bt_class;
net/bluetooth/hci_sysfs.c
32
conn->dev.parent = &hdev->dev;
net/bluetooth/hci_sysfs.c
34
device_initialize(&conn->dev);
net/bluetooth/hci_sysfs.c
37
void hci_conn_add_sysfs(struct hci_conn *conn)
net/bluetooth/hci_sysfs.c
39
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_sysfs.c
41
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/hci_sysfs.c
43
if (device_is_registered(&conn->dev))
net/bluetooth/hci_sysfs.c
46
dev_set_name(&conn->dev, "%s:%d", hdev->name, conn->handle);
net/bluetooth/hci_sysfs.c
48
if (device_add(&conn->dev) < 0)
net/bluetooth/hci_sysfs.c
52
void hci_conn_del_sysfs(struct hci_conn *conn)
net/bluetooth/hci_sysfs.c
54
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_sysfs.c
56
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/hci_sysfs.c
58
if (!device_is_registered(&conn->dev)) {
net/bluetooth/hci_sysfs.c
62
put_device(&conn->dev);
net/bluetooth/hci_sysfs.c
72
dev = device_find_any_child(&conn->dev);
net/bluetooth/hci_sysfs.c
79
device_unregister(&conn->dev);
net/bluetooth/hidp/core.c
1005
if (session->conn)
net/bluetooth/hidp/core.c
1006
l2cap_conn_put(session->conn);
net/bluetooth/hidp/core.c
1062
struct l2cap_conn *conn;
net/bluetooth/hidp/core.c
1065
conn = session->conn;
net/bluetooth/hidp/core.c
1066
if (conn)
net/bluetooth/hidp/core.c
1067
session->conn = NULL;
net/bluetooth/hidp/core.c
1070
if (conn) {
net/bluetooth/hidp/core.c
1071
l2cap_unregister_user(conn, &session->user);
net/bluetooth/hidp/core.c
1072
l2cap_conn_put(conn);
net/bluetooth/hidp/core.c
1136
static int hidp_session_probe(struct l2cap_conn *conn,
net/bluetooth/hidp/core.c
1197
static void hidp_session_remove(struct l2cap_conn *conn,
net/bluetooth/hidp/core.c
1210
if (session->conn) {
net/bluetooth/hidp/core.c
1211
l2cap_conn_put(session->conn);
net/bluetooth/hidp/core.c
1212
session->conn = NULL;
net/bluetooth/hidp/core.c
1401
struct l2cap_conn *conn;
net/bluetooth/hidp/core.c
1413
conn = NULL;
net/bluetooth/hidp/core.c
1415
if (chan->conn)
net/bluetooth/hidp/core.c
1416
conn = l2cap_conn_get(chan->conn);
net/bluetooth/hidp/core.c
1419
if (!conn)
net/bluetooth/hidp/core.c
1423
intr_sock, req, conn);
net/bluetooth/hidp/core.c
1427
ret = l2cap_register_user(conn, &session->user);
net/bluetooth/hidp/core.c
1436
l2cap_conn_put(conn);
net/bluetooth/hidp/core.c
62
static int hidp_session_probe(struct l2cap_conn *conn,
net/bluetooth/hidp/core.c
64
static void hidp_session_remove(struct l2cap_conn *conn,
net/bluetooth/hidp/core.c
719
input->dev.parent = &session->conn->hcon->dev;
net/bluetooth/hidp/core.c
809
hid->dev.parent = &session->conn->hcon->dev;
net/bluetooth/hidp/core.c
930
struct l2cap_conn *conn)
net/bluetooth/hidp/core.c
951
session->conn = l2cap_conn_get(conn);
net/bluetooth/hidp/core.c
983
l2cap_conn_put(session->conn);
net/bluetooth/hidp/hidp.h
147
struct l2cap_conn *conn;
net/bluetooth/iso.c
107
struct iso_conn *conn = container_of(ref, struct iso_conn, ref);
net/bluetooth/iso.c
109
BT_DBG("conn %p", conn);
net/bluetooth/iso.c
111
if (conn->hcon) {
net/bluetooth/iso.c
1119
static struct hci_dev *iso_conn_get_hdev(struct iso_conn *conn)
net/bluetooth/iso.c
112
spin_lock(&conn->hcon->proto_lock);
net/bluetooth/iso.c
1123
iso_conn_lock(conn);
net/bluetooth/iso.c
1124
if (conn->hcon)
net/bluetooth/iso.c
1125
hdev = hci_dev_hold(conn->hcon->hdev);
net/bluetooth/iso.c
1126
iso_conn_unlock(conn);
net/bluetooth/iso.c
1139
if (sk->sk_type != SOCK_SEQPACKET || !iso_pi(sk)->conn)
net/bluetooth/iso.c
115
if (conn->hcon->iso_data == conn) {
net/bluetooth/iso.c
1157
hdev = iso_conn_get_hdev(iso_pi(sk)->conn);
net/bluetooth/iso.c
116
conn->hcon->iso_data = NULL;
net/bluetooth/iso.c
1161
bis = iso_pi(sk)->conn->hcon;
net/bluetooth/iso.c
117
if (!test_and_set_bit(ISO_CONN_DROPPED, conn->flags))
net/bluetooth/iso.c
1171
if (!iso_pi(sk)->conn || iso_pi(sk)->conn->hcon != bis) {
net/bluetooth/iso.c
118
hci_conn_drop(conn->hcon);
net/bluetooth/iso.c
121
spin_unlock(&conn->hcon->proto_lock);
net/bluetooth/iso.c
124
kfree_skb(conn->rx_skb);
net/bluetooth/iso.c
126
kfree(conn);
net/bluetooth/iso.c
129
static void iso_conn_put(struct iso_conn *conn)
net/bluetooth/iso.c
1298
struct iso_conn *conn;
net/bluetooth/iso.c
131
if (!conn)
net/bluetooth/iso.c
134
BT_DBG("conn %p refcnt %d", conn, kref_read(&conn->ref));
net/bluetooth/iso.c
1348
conn = iso_conn_add(hcon);
net/bluetooth/iso.c
1349
if (!conn) {
net/bluetooth/iso.c
1355
err = iso_chan_add(conn, sk, NULL);
net/bluetooth/iso.c
1356
iso_conn_put(conn);
net/bluetooth/iso.c
148
kref_put(&conn->ref, iso_conn_free);
net/bluetooth/iso.c
153
static struct iso_conn *iso_conn_hold_unless_zero(struct iso_conn *conn)
net/bluetooth/iso.c
1542
struct hci_conn *hcon = iso_pi(sk)->conn ?
net/bluetooth/iso.c
1543
iso_pi(sk)->conn->hcon : NULL;
net/bluetooth/iso.c
155
if (!conn)
net/bluetooth/iso.c
158
BT_DBG("conn %p refcnt %u", conn, kref_read(&conn->ref));
net/bluetooth/iso.c
1598
mtu = iso_pi(sk)->conn->hcon->mtu;
net/bluetooth/iso.c
160
if (!kref_get_unless_zero(&conn->ref))
net/bluetooth/iso.c
163
return conn;
net/bluetooth/iso.c
1647
static void iso_conn_defer_accept(struct hci_conn *conn)
net/bluetooth/iso.c
1650
struct hci_dev *hdev = conn->hdev;
net/bluetooth/iso.c
1652
BT_DBG("conn %p", conn);
net/bluetooth/iso.c
1654
conn->state = BT_CONFIG;
net/bluetooth/iso.c
1656
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/iso.c
166
static struct iso_conn *iso_conn_hold(struct iso_conn *conn)
net/bluetooth/iso.c
1665
struct iso_conn *conn;
net/bluetooth/iso.c
168
BT_DBG("conn %p refcnt %u", conn, kref_read(&conn->ref));
net/bluetooth/iso.c
1693
conn = iso_pi(sk)->conn;
net/bluetooth/iso.c
1694
if (!conn || !conn->hcon)
net/bluetooth/iso.c
1698
err = hci_conn_big_create_sync(hdev, conn->hcon,
net/bluetooth/iso.c
170
kref_get(&conn->ref);
net/bluetooth/iso.c
171
return conn;
net/bluetooth/iso.c
174
static struct sock *iso_sock_hold(struct iso_conn *conn)
net/bluetooth/iso.c
1740
iso_conn_defer_accept(pi->conn->hcon);
net/bluetooth/iso.c
176
if (!conn || !bt_sock_linked(&iso_sk_list, conn->sk))
net/bluetooth/iso.c
179
sock_hold(conn->sk);
net/bluetooth/iso.c
181
return conn->sk;
net/bluetooth/iso.c
2016
base_len = iso_pi(sk)->conn->hcon->le_per_adv_data_len;
net/bluetooth/iso.c
2017
base = iso_pi(sk)->conn->hcon->le_per_adv_data;
net/bluetooth/iso.c
206
if (!iso_pi(sk)->conn)
net/bluetooth/iso.c
2157
static void iso_conn_ready(struct iso_conn *conn)
net/bluetooth/iso.c
2167
BT_DBG("conn %p", conn);
net/bluetooth/iso.c
2169
iso_conn_lock(conn);
net/bluetooth/iso.c
2170
sk = iso_sock_hold(conn);
net/bluetooth/iso.c
2171
iso_conn_unlock(conn);
net/bluetooth/iso.c
2179
if (!conn->sk) {
net/bluetooth/iso.c
2188
if (conn->hcon->type == BIS_LINK &&
net/bluetooth/iso.c
2189
conn->hcon->role == HCI_ROLE_MASTER &&
net/bluetooth/iso.c
2190
!bacmp(&conn->hcon->dst, BDADDR_ANY)) {
net/bluetooth/iso.c
2191
struct hci_conn *bis = conn->hcon;
net/bluetooth/iso.c
2207
hcon = conn->hcon;
net/bluetooth/iso.c
231
struct iso_conn *conn;
net/bluetooth/iso.c
2314
iso_chan_add(conn, sk, parent);
net/bluetooth/iso.c
235
conn = iso_conn_hold_unless_zero(hcon->iso_data);
net/bluetooth/iso.c
236
if (conn) {
net/bluetooth/iso.c
237
if (!conn->hcon) {
net/bluetooth/iso.c
238
iso_conn_lock(conn);
net/bluetooth/iso.c
239
conn->hcon = hcon;
net/bluetooth/iso.c
240
iso_conn_unlock(conn);
net/bluetooth/iso.c
243
return conn;
net/bluetooth/iso.c
2452
hcon = iso_pi(sk)->conn ? iso_pi(sk)->conn->hcon : NULL;
net/bluetooth/iso.c
246
conn = kzalloc_obj(*conn, GFP_ATOMIC);
net/bluetooth/iso.c
247
if (!conn) {
net/bluetooth/iso.c
2494
hcon = iso_pi(sk)->conn ? iso_pi(sk)->conn->hcon : NULL;
net/bluetooth/iso.c
252
kref_init(&conn->ref);
net/bluetooth/iso.c
253
spin_lock_init(&conn->lock);
net/bluetooth/iso.c
255
hcon->iso_data = conn;
net/bluetooth/iso.c
256
conn->hcon = hcon;
net/bluetooth/iso.c
257
conn->tx_sn = 0;
net/bluetooth/iso.c
2572
lockdep_assert_held(&link->conn->hdev->lock);
net/bluetooth/iso.c
2573
iso_conn_del(link->conn, bt_to_errno(status));
net/bluetooth/iso.c
2593
struct iso_conn *conn;
net/bluetooth/iso.c
2595
conn = iso_conn_add(hcon);
net/bluetooth/iso.c
2596
if (conn) {
net/bluetooth/iso.c
2597
iso_conn_ready(conn);
net/bluetooth/iso.c
2598
iso_conn_put(conn);
net/bluetooth/iso.c
261
BT_DBG("hcon %p conn %p", hcon, conn);
net/bluetooth/iso.c
2620
struct iso_conn *conn;
net/bluetooth/iso.c
263
return conn;
net/bluetooth/iso.c
2634
conn = iso_conn_hold_unless_zero(hcon->iso_data);
net/bluetooth/iso.c
2641
if (!conn) {
net/bluetooth/iso.c
2649
BT_DBG("conn %p len %d pb 0x%x ts 0x%x", conn, skb->len, pb, ts);
net/bluetooth/iso.c
2654
if (conn->rx_skb || conn->rx_len) {
net/bluetooth/iso.c
2656
kfree_skb(conn->rx_skb);
net/bluetooth/iso.c
2657
conn->rx_skb = NULL;
net/bluetooth/iso.c
2658
conn->rx_len = 0;
net/bluetooth/iso.c
269
struct iso_conn *conn;
net/bluetooth/iso.c
2699
iso_recv_frame(conn, skb);
net/bluetooth/iso.c
2716
conn->rx_skb = bt_skb_alloc(len, GFP_KERNEL);
net/bluetooth/iso.c
2717
if (!conn->rx_skb)
net/bluetooth/iso.c
272
conn = iso_pi(sk)->conn;
net/bluetooth/iso.c
2720
hci_skb_pkt_status(conn->rx_skb) = flags & 0x03;
net/bluetooth/iso.c
2721
hci_skb_pkt_seqnum(conn->rx_skb) = sn;
net/bluetooth/iso.c
2722
skb_copy_from_linear_data(skb, skb_put(conn->rx_skb, skb->len),
net/bluetooth/iso.c
2724
conn->rx_len = len - skb->len;
net/bluetooth/iso.c
2728
hwts = skb_hwtstamps(conn->rx_skb);
net/bluetooth/iso.c
273
iso_pi(sk)->conn = NULL;
net/bluetooth/iso.c
2738
conn->rx_len);
net/bluetooth/iso.c
2740
if (!conn->rx_skb) {
net/bluetooth/iso.c
2746
if (skb->len > conn->rx_len) {
net/bluetooth/iso.c
2748
skb->len, conn->rx_len);
net/bluetooth/iso.c
2749
kfree_skb(conn->rx_skb);
net/bluetooth/iso.c
275
BT_DBG("sk %p, conn %p, err %d", sk, conn, err);
net/bluetooth/iso.c
2750
conn->rx_skb = NULL;
net/bluetooth/iso.c
2751
conn->rx_len = 0;
net/bluetooth/iso.c
2755
skb_copy_from_linear_data(skb, skb_put(conn->rx_skb, skb->len),
net/bluetooth/iso.c
2757
conn->rx_len -= skb->len;
net/bluetooth/iso.c
2762
if (!conn->rx_len) {
net/bluetooth/iso.c
2763
struct sk_buff *rx_skb = conn->rx_skb;
net/bluetooth/iso.c
2769
conn->rx_skb = NULL;
net/bluetooth/iso.c
277
if (conn) {
net/bluetooth/iso.c
2770
iso_recv_frame(conn, rx_skb);
net/bluetooth/iso.c
2773
skb->len, conn->rx_len);
net/bluetooth/iso.c
2774
kfree_skb(conn->rx_skb);
net/bluetooth/iso.c
2775
conn->rx_skb = NULL;
net/bluetooth/iso.c
2776
conn->rx_len = 0;
net/bluetooth/iso.c
278
iso_conn_lock(conn);
net/bluetooth/iso.c
2785
iso_conn_put(conn);
net/bluetooth/iso.c
279
conn->sk = NULL;
net/bluetooth/iso.c
280
iso_conn_unlock(conn);
net/bluetooth/iso.c
281
iso_conn_put(conn);
net/bluetooth/iso.c
301
struct iso_conn *conn;
net/bluetooth/iso.c
305
conn = iso_conn_hold_unless_zero(hcon->iso_data);
net/bluetooth/iso.c
307
if (!conn)
net/bluetooth/iso.c
310
BT_DBG("hcon %p conn %p, err %d", hcon, conn, err);
net/bluetooth/iso.c
313
iso_conn_lock(conn);
net/bluetooth/iso.c
314
sk = iso_sock_hold(conn);
net/bluetooth/iso.c
315
iso_conn_unlock(conn);
net/bluetooth/iso.c
331
iso_conn_lock(conn);
net/bluetooth/iso.c
332
conn->hcon = NULL;
net/bluetooth/iso.c
334
iso_conn_unlock(conn);
net/bluetooth/iso.c
337
iso_conn_put(conn);
net/bluetooth/iso.c
340
static int __iso_chan_add(struct iso_conn *conn, struct sock *sk,
net/bluetooth/iso.c
343
BT_DBG("conn %p", conn);
net/bluetooth/iso.c
345
if (iso_pi(sk)->conn == conn && conn->sk == sk)
net/bluetooth/iso.c
348
if (conn->sk) {
net/bluetooth/iso.c
353
if (!conn->hcon) {
net/bluetooth/iso.c
358
iso_pi(sk)->conn = iso_conn_hold(conn);
net/bluetooth/iso.c
359
conn->sk = sk;
net/bluetooth/iso.c
360
clear_bit(ISO_CONN_DROPPED, conn->flags);
net/bluetooth/iso.c
368
static int iso_chan_add(struct iso_conn *conn, struct sock *sk,
net/bluetooth/iso.c
373
iso_conn_lock(conn);
net/bluetooth/iso.c
374
err = __iso_chan_add(conn, sk, parent);
net/bluetooth/iso.c
375
iso_conn_unlock(conn);
net/bluetooth/iso.c
390
struct iso_conn *conn;
net/bluetooth/iso.c
459
conn = iso_conn_add(hcon);
net/bluetooth/iso.c
460
if (!conn) {
net/bluetooth/iso.c
466
err = iso_chan_add(conn, sk, NULL);
net/bluetooth/iso.c
467
iso_conn_put(conn);
net/bluetooth/iso.c
494
struct iso_conn *conn;
net/bluetooth/iso.c
564
conn = iso_conn_add(hcon);
net/bluetooth/iso.c
565
if (!conn) {
net/bluetooth/iso.c
571
err = iso_chan_add(conn, sk, NULL);
net/bluetooth/iso.c
572
iso_conn_put(conn);
net/bluetooth/iso.c
600
return &iso_pi(sk)->conn->hcon->iso_qos;
net/bluetooth/iso.c
608
struct iso_conn *conn = iso_pi(sk)->conn;
net/bluetooth/iso.c
622
hdr->sn = cpu_to_le16(conn->tx_sn++);
net/bluetooth/iso.c
628
hci_send_iso(conn->hcon, skb);
net/bluetooth/iso.c
636
static void iso_recv_frame(struct iso_conn *conn, struct sk_buff *skb)
net/bluetooth/iso.c
640
iso_conn_lock(conn);
net/bluetooth/iso.c
641
sk = iso_sock_hold(conn);
net/bluetooth/iso.c
642
iso_conn_unlock(conn);
net/bluetooth/iso.c
81
struct iso_conn *conn;
net/bluetooth/iso.c
815
iso_conn_put(iso_pi(sk)->conn);
net/bluetooth/iso.c
837
if (iso_pi(parent)->conn && iso_pi(parent)->conn->hcon) {
net/bluetooth/iso.c
864
if (iso_pi(sk)->conn) {
net/bluetooth/iso.c
865
iso_conn_lock(iso_pi(sk)->conn);
net/bluetooth/iso.c
866
iso_pi(sk)->conn->sk = NULL;
net/bluetooth/iso.c
867
iso_conn_unlock(iso_pi(sk)->conn);
net/bluetooth/iso.c
882
struct hci_conn *hcon = iso_pi(sk)->conn->hcon;
net/bluetooth/iso.c
895
set_bit(ISO_CONN_DROPPED, iso_pi(sk)->conn->flags);
net/bluetooth/iso.c
905
if (!test_and_set_bit(ISO_CONN_DROPPED, iso_pi(sk)->conn->flags))
net/bluetooth/iso.c
906
hci_conn_drop(iso_pi(sk)->conn->hcon);
net/bluetooth/iso.c
921
if (iso_pi(sk)->conn->hcon)
net/bluetooth/iso.c
928
if (iso_pi(sk)->conn->hcon &&
net/bluetooth/iso.c
929
(test_bit(HCI_CONN_PA_SYNC, &iso_pi(sk)->conn->hcon->flags) ||
net/bluetooth/iso.c
930
test_bit(HCI_CONN_PA_SYNC_FAILED, &iso_pi(sk)->conn->hcon->flags)))
net/bluetooth/l2cap_core.c
1003
static void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len,
net/bluetooth/l2cap_core.c
1006
struct sk_buff *skb = l2cap_build_cmd(conn, code, ident, len, data);
net/bluetooth/l2cap_core.c
1016
if (lmp_no_flush_capable(conn->hcon->hdev) ||
net/bluetooth/l2cap_core.c
1017
conn->hcon->type == LE_LINK)
net/bluetooth/l2cap_core.c
1025
l2cap_send_acl(conn, skb, flags);
net/bluetooth/l2cap_core.c
1030
struct hci_conn *hcon = chan->conn->hcon;
net/bluetooth/l2cap_core.c
104
list_for_each_entry(c, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1048
hci_send_acl(chan->conn->hchan, skb, flags);
net/bluetooth/l2cap_core.c
114
static struct l2cap_chan *l2cap_get_chan_by_scid(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
119
c = __l2cap_get_chan_by_scid(conn, cid);
net/bluetooth/l2cap_core.c
1272
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1278
chan->ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
1282
l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_REQ, sizeof(req), &req);
net/bluetooth/l2cap_core.c
1313
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1320
chan->imtu = chan->conn->mtu;
net/bluetooth/l2cap_core.c
133
static struct l2cap_chan *l2cap_get_chan_by_dcid(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
1331
chan->ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
1333
l2cap_send_cmd(conn, chan->ident, L2CAP_LE_CONN_REQ,
net/bluetooth/l2cap_core.c
1349
struct l2cap_ecred_conn_data *conn = data;
net/bluetooth/l2cap_core.c
1352
if (chan == conn->chan)
net/bluetooth/l2cap_core.c
1361
if (conn->pid != pid || chan->psm != conn->chan->psm || chan->ident ||
net/bluetooth/l2cap_core.c
1371
chan->ident = conn->chan->ident;
net/bluetooth/l2cap_core.c
1374
conn->pdu.scid[conn->count] = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
1376
conn->count++;
net/bluetooth/l2cap_core.c
138
c = __l2cap_get_chan_by_dcid(conn, cid);
net/bluetooth/l2cap_core.c
1381
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1399
chan->ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
1405
__l2cap_chan_list(conn, l2cap_ecred_defer_connect, &data);
net/bluetooth/l2cap_core.c
1407
l2cap_send_cmd(conn, chan->ident, L2CAP_ECRED_CONN_REQ,
net/bluetooth/l2cap_core.c
1414
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1416
if (!smp_conn_security(conn->hcon, chan->sec_level))
net/bluetooth/l2cap_core.c
1434
if (chan->conn->hcon->type == LE_LINK) {
net/bluetooth/l2cap_core.c
1441
static void l2cap_request_info(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
1445
if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_SENT)
net/bluetooth/l2cap_core.c
1450
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_SENT;
net/bluetooth/l2cap_core.c
1451
conn->info_ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
1453
schedule_delayed_work(&conn->info_timer, L2CAP_INFO_TIMEOUT);
net/bluetooth/l2cap_core.c
1455
l2cap_send_cmd(conn, conn->info_ident, L2CAP_INFO_REQ,
net/bluetooth/l2cap_core.c
1483
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1485
if (conn->hcon->type == LE_LINK) {
net/bluetooth/l2cap_core.c
149
static struct l2cap_chan *__l2cap_get_chan_by_ident(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
1490
if (!(conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_SENT)) {
net/bluetooth/l2cap_core.c
1491
l2cap_request_info(conn);
net/bluetooth/l2cap_core.c
1495
if (!(conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE))
net/bluetooth/l2cap_core.c
1502
if (l2cap_check_enc_key_size(conn->hcon, chan))
net/bluetooth/l2cap_core.c
1526
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1529
if (!conn)
net/bluetooth/l2cap_core.c
154
list_for_each_entry(c, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1540
l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_DISCONN_REQ,
net/bluetooth/l2cap_core.c
1547
static void l2cap_conn_start(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
1551
BT_DBG("conn %p", conn);
net/bluetooth/l2cap_core.c
1553
list_for_each_entry_safe(chan, tmp, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1569
if (!l2cap_mode_supported(chan->mode, conn->feat_mask)
net/bluetooth/l2cap_core.c
1577
if (l2cap_check_enc_key_size(conn->hcon, chan))
net/bluetooth/l2cap_core.c
1604
l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP,
net/bluetooth/l2cap_core.c
1614
l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
net/bluetooth/l2cap_core.c
1623
static void l2cap_le_conn_ready(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
1625
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
1628
BT_DBG("%s conn %p", hdev->name, conn);
net/bluetooth/l2cap_core.c
1651
l2cap_send_cmd(conn, l2cap_get_ident(conn),
net/bluetooth/l2cap_core.c
1656
static void l2cap_conn_ready(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
1659
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
1661
BT_DBG("conn %p", conn);
net/bluetooth/l2cap_core.c
1664
l2cap_request_info(conn);
net/bluetooth/l2cap_core.c
1666
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
1668
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1675
if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE)
net/bluetooth/l2cap_core.c
1684
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
1687
l2cap_le_conn_ready(conn);
net/bluetooth/l2cap_core.c
1689
queue_work(hcon->hdev->workqueue, &conn->pending_rx_work);
net/bluetooth/l2cap_core.c
1693
static void l2cap_conn_unreliable(struct l2cap_conn *conn, int err)
net/bluetooth/l2cap_core.c
1697
BT_DBG("conn %p", conn);
net/bluetooth/l2cap_core.c
1699
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1707
struct l2cap_conn *conn = container_of(work, struct l2cap_conn,
net/bluetooth/l2cap_core.c
1710
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_DONE;
net/bluetooth/l2cap_core.c
1711
conn->info_ident = 0;
net/bluetooth/l2cap_core.c
1713
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
1714
l2cap_conn_start(conn);
net/bluetooth/l2cap_core.c
1715
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
1731
int l2cap_register_user(struct l2cap_conn *conn, struct l2cap_user *user)
net/bluetooth/l2cap_core.c
1741
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
1749
if (!conn->hchan) {
net/bluetooth/l2cap_core.c
1754
ret = user->probe(conn, user);
net/bluetooth/l2cap_core.c
1758
list_add(&user->list, &conn->users);
net/bluetooth/l2cap_core.c
1762
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
1767
void l2cap_unregister_user(struct l2cap_conn *conn, struct l2cap_user *user)
net/bluetooth/l2cap_core.c
1769
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
1775
user->remove(conn, user);
net/bluetooth/l2cap_core.c
1778
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
1782
static void l2cap_unregister_all_users(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
1786
while (!list_empty(&conn->users)) {
net/bluetooth/l2cap_core.c
1787
user = list_first_entry(&conn->users, struct l2cap_user, list);
net/bluetooth/l2cap_core.c
1789
user->remove(conn, user);
net/bluetooth/l2cap_core.c
1795
struct l2cap_conn *conn = hcon->l2cap_data;
net/bluetooth/l2cap_core.c
1798
if (!conn)
net/bluetooth/l2cap_core.c
1801
BT_DBG("hcon %p conn %p, err %d", hcon, conn, err);
net/bluetooth/l2cap_core.c
1803
disable_delayed_work_sync(&conn->info_timer);
net/bluetooth/l2cap_core.c
1804
disable_delayed_work_sync(&conn->id_addr_timer);
net/bluetooth/l2cap_core.c
1806
cancel_work_sync(&conn->pending_rx_work);
net/bluetooth/l2cap_core.c
1808
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
1810
kfree_skb(conn->rx_skb);
net/bluetooth/l2cap_core.c
1812
skb_queue_purge(&conn->pending_rx);
net/bluetooth/l2cap_core.c
1813
ida_destroy(&conn->tx_ida);
net/bluetooth/l2cap_core.c
1815
l2cap_unregister_all_users(conn);
net/bluetooth/l2cap_core.c
1821
list_for_each_entry_safe(chan, l, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1833
hci_chan_del(conn->hchan);
net/bluetooth/l2cap_core.c
1834
conn->hchan = NULL;
net/bluetooth/l2cap_core.c
1837
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
1838
l2cap_conn_put(conn);
net/bluetooth/l2cap_core.c
1843
struct l2cap_conn *conn = container_of(ref, struct l2cap_conn, ref);
net/bluetooth/l2cap_core.c
1845
hci_conn_put(conn->hcon);
net/bluetooth/l2cap_core.c
1846
kfree(conn);
net/bluetooth/l2cap_core.c
1849
struct l2cap_conn *l2cap_conn_get(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
1851
kref_get(&conn->ref);
net/bluetooth/l2cap_core.c
1852
return conn;
net/bluetooth/l2cap_core.c
1856
void l2cap_conn_put(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
1858
kref_put(&conn->ref, l2cap_conn_free);
net/bluetooth/l2cap_core.c
2237
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2252
count = min_t(unsigned int, conn->mtu, len);
net/bluetooth/l2cap_core.c
2280
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2288
count = min_t(unsigned int, (conn->mtu - hlen), len);
net/bluetooth/l2cap_core.c
2312
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2319
count = min_t(unsigned int, (conn->mtu - L2CAP_HDR_SIZE), len);
net/bluetooth/l2cap_core.c
2343
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2350
if (!conn)
net/bluetooth/l2cap_core.c
2361
count = min_t(unsigned int, (conn->mtu - hlen), len);
net/bluetooth/l2cap_core.c
239
static u16 l2cap_alloc_cid(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
2410
pdu_len = chan->conn->mtu;
net/bluetooth/l2cap_core.c
243
if (conn->hcon->type == LE_LINK)
net/bluetooth/l2cap_core.c
2466
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2473
if (!conn)
net/bluetooth/l2cap_core.c
2481
count = min_t(unsigned int, (conn->mtu - hlen), len);
net/bluetooth/l2cap_core.c
249
if (!__l2cap_get_chan_by_scid(conn, cid))
net/bluetooth/l2cap_core.c
2986
static void l2cap_raw_recv(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/l2cap_core.c
2991
BT_DBG("conn %p", conn);
net/bluetooth/l2cap_core.c
2993
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
3010
static struct sk_buff *l2cap_build_cmd(struct l2cap_conn *conn, u8 code,
net/bluetooth/l2cap_core.c
3019
conn, code, ident, dlen);
net/bluetooth/l2cap_core.c
3021
if (conn->mtu < L2CAP_HDR_SIZE + L2CAP_CMD_HDR_SIZE)
net/bluetooth/l2cap_core.c
3025
count = min_t(unsigned int, conn->mtu, len);
net/bluetooth/l2cap_core.c
3034
if (conn->hcon->type == LE_LINK)
net/bluetooth/l2cap_core.c
3055
count = min_t(unsigned int, conn->mtu, len);
net/bluetooth/l2cap_core.c
3258
static inline bool __l2cap_ews_supported(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
3260
return (conn->feat_mask & L2CAP_FEAT_EXT_WINDOW);
net/bluetooth/l2cap_core.c
3263
static inline bool __l2cap_efs_supported(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
3265
return (conn->feat_mask & L2CAP_FEAT_EXT_FLOW);
net/bluetooth/l2cap_core.c
3278
__l2cap_ews_supported(chan->conn)) {
net/bluetooth/l2cap_core.c
3292
struct hci_conn *conn = chan->conn->hcon;
net/bluetooth/l2cap_core.c
3299
if (!(conn->pkt_type & HCI_2DH1))
net/bluetooth/l2cap_core.c
3305
if (!(conn->pkt_type & HCI_3DH1))
net/bluetooth/l2cap_core.c
3311
if (!(conn->pkt_type & HCI_2DH3))
net/bluetooth/l2cap_core.c
3317
if (!(conn->pkt_type & HCI_3DH3))
net/bluetooth/l2cap_core.c
3323
if (!(conn->pkt_type & HCI_2DH5))
net/bluetooth/l2cap_core.c
3329
if (!(conn->pkt_type & HCI_3DH5))
net/bluetooth/l2cap_core.c
3352
if (__l2cap_efs_supported(chan->conn))
net/bluetooth/l2cap_core.c
3357
chan->mode = l2cap_select_mode(rfc.mode, chan->conn->feat_mask);
net/bluetooth/l2cap_core.c
3374
if (!(chan->conn->feat_mask & L2CAP_FEAT_ERTM) &&
net/bluetooth/l2cap_core.c
3375
!(chan->conn->feat_mask & L2CAP_FEAT_STREAMING))
net/bluetooth/l2cap_core.c
3395
size = min_t(u16, L2CAP_DEFAULT_MAX_PDU_SIZE, chan->conn->mtu -
net/bluetooth/l2cap_core.c
3415
if (chan->conn->feat_mask & L2CAP_FEAT_FCS)
net/bluetooth/l2cap_core.c
3432
size = min_t(u16, L2CAP_DEFAULT_MAX_PDU_SIZE, chan->conn->mtu -
net/bluetooth/l2cap_core.c
3443
if (chan->conn->feat_mask & L2CAP_FEAT_FCS)
net/bluetooth/l2cap_core.c
3546
chan->conn->feat_mask);
net/bluetooth/l2cap_core.c
3551
if (__l2cap_efs_supported(chan->conn))
net/bluetooth/l2cap_core.c
3645
chan->conn->mtu - L2CAP_EXT_HDR_SIZE -
net/bluetooth/l2cap_core.c
3676
chan->conn->mtu - L2CAP_EXT_HDR_SIZE -
net/bluetooth/l2cap_core.c
3844
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
3854
l2cap_send_cmd(conn, chan->ident, L2CAP_LE_CONN_RSP, sizeof(rsp),
net/bluetooth/l2cap_core.c
3912
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
3930
__l2cap_chan_list_id(conn, id, l2cap_ecred_list_defer, &result);
net/bluetooth/l2cap_core.c
3939
__l2cap_chan_list_id(conn, id, l2cap_ecred_rsp_defer, &data);
net/bluetooth/l2cap_core.c
3941
l2cap_send_cmd(conn, id, L2CAP_ECRED_CONN_RSP,
net/bluetooth/l2cap_core.c
3949
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
3961
l2cap_send_cmd(conn, chan->ident, rsp_code, sizeof(rsp), &rsp);
net/bluetooth/l2cap_core.c
3966
l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
net/bluetooth/l2cap_core.c
4030
static inline int l2cap_command_rej(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4042
if ((conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_SENT) &&
net/bluetooth/l2cap_core.c
4043
cmd->ident == conn->info_ident) {
net/bluetooth/l2cap_core.c
4044
cancel_delayed_work(&conn->info_timer);
net/bluetooth/l2cap_core.c
4046
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_DONE;
net/bluetooth/l2cap_core.c
4047
conn->info_ident = 0;
net/bluetooth/l2cap_core.c
4049
l2cap_conn_start(conn);
net/bluetooth/l2cap_core.c
406
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
4063
static struct l2cap_chan *l2cap_new_connection(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4075
__l2cap_chan_add(conn, chan);
net/bluetooth/l2cap_core.c
4087
static void l2cap_connect(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd,
net/bluetooth/l2cap_core.c
4101
pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, &conn->hcon->src,
net/bluetooth/l2cap_core.c
4102
&conn->hcon->dst, ACL_LINK);
net/bluetooth/l2cap_core.c
4112
(!hci_conn_check_link_mode(conn->hcon) ||
net/bluetooth/l2cap_core.c
4113
!l2cap_check_enc_key_size(conn->hcon, pchan))) {
net/bluetooth/l2cap_core.c
4114
conn->disc_reason = HCI_ERROR_AUTH_FAILURE;
net/bluetooth/l2cap_core.c
4128
if (__l2cap_get_chan_by_dcid(conn, scid)) {
net/bluetooth/l2cap_core.c
4133
chan = l2cap_new_connection(conn, pchan);
net/bluetooth/l2cap_core.c
4142
conn->hcon->disc_timeout = HCI_DISCONN_TIMEOUT;
net/bluetooth/l2cap_core.c
4144
bacpy(&chan->src, &conn->hcon->src);
net/bluetooth/l2cap_core.c
4145
bacpy(&chan->dst, &conn->hcon->dst);
net/bluetooth/l2cap_core.c
4146
chan->src_type = bdaddr_src_type(conn->hcon);
net/bluetooth/l2cap_core.c
4147
chan->dst_type = bdaddr_dst_type(conn->hcon);
net/bluetooth/l2cap_core.c
4157
if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE) {
net/bluetooth/l2cap_core.c
416
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
4185
l2cap_send_cmd(conn, cmd->ident, rsp_code, sizeof(rsp), &rsp);
net/bluetooth/l2cap_core.c
4194
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_SENT;
net/bluetooth/l2cap_core.c
4195
conn->info_ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
4197
schedule_delayed_work(&conn->info_timer, L2CAP_INFO_TIMEOUT);
net/bluetooth/l2cap_core.c
4199
l2cap_send_cmd(conn, conn->info_ident, L2CAP_INFO_REQ,
net/bluetooth/l2cap_core.c
4207
l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
net/bluetooth/l2cap_core.c
4216
static int l2cap_connect_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4222
l2cap_connect(conn, cmd, data, L2CAP_CONN_RSP);
net/bluetooth/l2cap_core.c
4226
static int l2cap_connect_create_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4252
chan = __l2cap_get_chan_by_scid(conn, scid);
net/bluetooth/l2cap_core.c
4256
chan = __l2cap_get_chan_by_ident(conn, cmd->ident);
net/bluetooth/l2cap_core.c
4271
if (__l2cap_get_chan_by_dcid(conn, dcid)) {
net/bluetooth/l2cap_core.c
4284
l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
net/bluetooth/l2cap_core.c
4318
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
4320
BT_DBG("conn %p chan %p ident %d flags 0x%4.4x", conn, chan, ident,
net/bluetooth/l2cap_core.c
4326
l2cap_send_cmd(conn, ident, L2CAP_CONF_RSP,
net/bluetooth/l2cap_core.c
4331
static void cmd_reject_invalid_cid(struct l2cap_conn *conn, u8 ident,
net/bluetooth/l2cap_core.c
4340
l2cap_send_cmd(conn, ident, L2CAP_COMMAND_REJ, sizeof(rej), &rej);
net/bluetooth/l2cap_core.c
4343
static inline int l2cap_config_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4361
chan = l2cap_get_chan_by_scid(conn, dcid);
net/bluetooth/l2cap_core.c
4363
cmd_reject_invalid_cid(conn, cmd->ident, dcid, 0);
net/bluetooth/l2cap_core.c
4369
cmd_reject_invalid_cid(conn, cmd->ident, chan->scid,
net/bluetooth/l2cap_core.c
4377
l2cap_send_cmd(conn, cmd->ident, L2CAP_CONF_RSP,
net/bluetooth/l2cap_core.c
4389
l2cap_send_cmd(conn, cmd->ident, L2CAP_CONF_RSP,
net/bluetooth/l2cap_core.c
439
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
4403
l2cap_send_cmd(conn, cmd->ident, L2CAP_CONF_RSP, len, rsp);
net/bluetooth/l2cap_core.c
4432
l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
net/bluetooth/l2cap_core.c
4454
static inline int l2cap_config_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4474
chan = l2cap_get_chan_by_scid(conn, scid);
net/bluetooth/l2cap_core.c
4520
l2cap_send_cmd(conn, l2cap_get_ident(conn),
net/bluetooth/l2cap_core.c
4561
static inline int l2cap_disconnect_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4578
chan = l2cap_get_chan_by_scid(conn, dcid);
net/bluetooth/l2cap_core.c
4580
cmd_reject_invalid_cid(conn, cmd->ident, dcid, scid);
net/bluetooth/l2cap_core.c
4586
l2cap_send_cmd(conn, cmd->ident, L2CAP_DISCONN_RSP, sizeof(rsp), &rsp);
net/bluetooth/l2cap_core.c
4600
static inline int l2cap_disconnect_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4616
chan = l2cap_get_chan_by_scid(conn, scid);
net/bluetooth/l2cap_core.c
4637
static inline int l2cap_information_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4662
l2cap_send_cmd(conn, cmd->ident, L2CAP_INFO_RSP, sizeof(buf),
net/bluetooth/l2cap_core.c
4670
rsp->data[0] = conn->local_fixed_chan;
net/bluetooth/l2cap_core.c
4672
l2cap_send_cmd(conn, cmd->ident, L2CAP_INFO_RSP, sizeof(buf),
net/bluetooth/l2cap_core.c
4678
l2cap_send_cmd(conn, cmd->ident, L2CAP_INFO_RSP, sizeof(rsp),
net/bluetooth/l2cap_core.c
4685
static inline int l2cap_information_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4701
if (cmd->ident != conn->info_ident ||
net/bluetooth/l2cap_core.c
4702
conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE)
net/bluetooth/l2cap_core.c
4705
cancel_delayed_work(&conn->info_timer);
net/bluetooth/l2cap_core.c
4708
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_DONE;
net/bluetooth/l2cap_core.c
4709
conn->info_ident = 0;
net/bluetooth/l2cap_core.c
4711
l2cap_conn_start(conn);
net/bluetooth/l2cap_core.c
4719
conn->feat_mask = get_unaligned_le32(rsp->data);
net/bluetooth/l2cap_core.c
4721
if (conn->feat_mask & L2CAP_FEAT_FIXED_CHAN) {
net/bluetooth/l2cap_core.c
4725
conn->info_ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
4727
l2cap_send_cmd(conn, conn->info_ident,
net/bluetooth/l2cap_core.c
4730
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_DONE;
net/bluetooth/l2cap_core.c
4731
conn->info_ident = 0;
net/bluetooth/l2cap_core.c
4733
l2cap_conn_start(conn);
net/bluetooth/l2cap_core.c
4739
conn->remote_fixed_chan = rsp->data[0];
net/bluetooth/l2cap_core.c
4740
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_DONE;
net/bluetooth/l2cap_core.c
4741
conn->info_ident = 0;
net/bluetooth/l2cap_core.c
4743
l2cap_conn_start(conn);
net/bluetooth/l2cap_core.c
4750
static inline int l2cap_conn_param_update_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4754
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
4783
l2cap_send_cmd(conn, cmd->ident, L2CAP_CONN_PARAM_UPDATE_RSP,
net/bluetooth/l2cap_core.c
4792
static int l2cap_le_connect_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4797
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
4819
chan = __l2cap_get_chan_by_ident(conn, cmd->ident);
net/bluetooth/l2cap_core.c
4833
if (__l2cap_get_chan_by_dcid(conn, dcid)) {
net/bluetooth/l2cap_core.c
4877
static void l2cap_put_ident(struct l2cap_conn *conn, u8 code, u8 id)
net/bluetooth/l2cap_core.c
4893
if (ida_find_first_range(&conn->tx_ida, id, id) >= 0)
net/bluetooth/l2cap_core.c
4894
ida_free(&conn->tx_ida, id);
net/bluetooth/l2cap_core.c
4898
static inline int l2cap_bredr_sig_cmd(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4904
l2cap_put_ident(conn, cmd->code, cmd->ident);
net/bluetooth/l2cap_core.c
4908
l2cap_command_rej(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4912
err = l2cap_connect_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4916
l2cap_connect_create_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4920
err = l2cap_config_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4924
l2cap_config_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4928
err = l2cap_disconnect_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
493
if (chan->conn)
net/bluetooth/l2cap_core.c
4932
l2cap_disconnect_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4936
l2cap_send_cmd(conn, cmd->ident, L2CAP_ECHO_RSP, cmd_len, data);
net/bluetooth/l2cap_core.c
494
l2cap_conn_put(chan->conn);
net/bluetooth/l2cap_core.c
4943
err = l2cap_information_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4947
l2cap_information_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4959
static int l2cap_le_connect_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
50
static struct sk_buff *l2cap_build_cmd(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5000
pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, &conn->hcon->src,
net/bluetooth/l2cap_core.c
5001
&conn->hcon->dst, LE_LINK);
net/bluetooth/l2cap_core.c
5010
if (!smp_sufficient_security(conn->hcon, pchan->sec_level,
net/bluetooth/l2cap_core.c
5019
if (!l2cap_check_enc_key_size(conn->hcon, pchan)) {
net/bluetooth/l2cap_core.c
5033
if (__l2cap_get_chan_by_dcid(conn, scid)) {
net/bluetooth/l2cap_core.c
5039
chan = l2cap_new_connection(conn, pchan);
net/bluetooth/l2cap_core.c
5045
bacpy(&chan->src, &conn->hcon->src);
net/bluetooth/l2cap_core.c
5046
bacpy(&chan->dst, &conn->hcon->dst);
net/bluetooth/l2cap_core.c
5047
chan->src_type = bdaddr_src_type(conn->hcon);
net/bluetooth/l2cap_core.c
5048
chan->dst_type = bdaddr_dst_type(conn->hcon);
net/bluetooth/l2cap_core.c
5097
l2cap_send_cmd(conn, cmd->ident, L2CAP_LE_CONN_RSP, sizeof(rsp), &rsp);
net/bluetooth/l2cap_core.c
5102
static inline int l2cap_le_credits(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5119
chan = l2cap_get_chan_by_dcid(conn, cid);
net/bluetooth/l2cap_core.c
5149
static inline int l2cap_ecred_conn_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5173
__l2cap_chan_list_id(conn, cmd->ident, l2cap_ecred_list_defer,
net/bluetooth/l2cap_core.c
52
static void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len,
net/bluetooth/l2cap_core.c
5216
pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, &conn->hcon->src,
net/bluetooth/l2cap_core.c
5217
&conn->hcon->dst, LE_LINK);
net/bluetooth/l2cap_core.c
5225
if (!smp_sufficient_security(conn->hcon, pchan->sec_level,
net/bluetooth/l2cap_core.c
5256
if (__l2cap_get_chan_by_dcid(conn, scid)) {
net/bluetooth/l2cap_core.c
5261
chan = l2cap_new_connection(conn, pchan);
net/bluetooth/l2cap_core.c
5267
bacpy(&chan->src, &conn->hcon->src);
net/bluetooth/l2cap_core.c
5268
bacpy(&chan->dst, &conn->hcon->dst);
net/bluetooth/l2cap_core.c
5269
chan->src_type = bdaddr_src_type(conn->hcon);
net/bluetooth/l2cap_core.c
5270
chan->dst_type = bdaddr_dst_type(conn->hcon);
net/bluetooth/l2cap_core.c
5311
l2cap_send_cmd(conn, cmd->ident, L2CAP_ECRED_CONN_RSP,
net/bluetooth/l2cap_core.c
5317
static inline int l2cap_ecred_conn_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5322
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
5341
list_for_each_entry_safe(chan, tmp, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
5364
orig = __l2cap_get_chan_by_dcid(conn, dcid);
net/bluetooth/l2cap_core.c
5444
static inline int l2cap_ecred_reconf_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5497
chan[i] = __l2cap_get_chan_by_dcid(conn, scid);
net/bluetooth/l2cap_core.c
5536
l2cap_send_cmd(conn, cmd->ident, L2CAP_ECRED_RECONF_RSP, sizeof(rsp),
net/bluetooth/l2cap_core.c
5542
static inline int l2cap_ecred_reconf_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5558
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
5565
list_for_each_entry_safe(chan, tmp, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
5582
static inline int l2cap_le_command_rej(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5592
chan = __l2cap_get_chan_by_ident(conn, cmd->ident);
net/bluetooth/l2cap_core.c
5609
static inline int l2cap_le_sig_cmd(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5615
l2cap_put_ident(conn, cmd->code, cmd->ident);
net/bluetooth/l2cap_core.c
5619
l2cap_le_command_rej(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5623
err = l2cap_conn_param_update_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5630
l2cap_le_connect_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5634
err = l2cap_le_connect_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5638
err = l2cap_le_credits(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5642
err = l2cap_ecred_conn_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5646
err = l2cap_ecred_conn_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5650
err = l2cap_ecred_reconf_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5654
err = l2cap_ecred_reconf_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5658
err = l2cap_disconnect_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5662
l2cap_disconnect_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5674
static inline void l2cap_le_sig_channel(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5677
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
5700
err = l2cap_le_sig_cmd(conn, cmd, len, skb->data);
net/bluetooth/l2cap_core.c
5707
l2cap_send_cmd(conn, cmd->ident, L2CAP_COMMAND_REJ,
net/bluetooth/l2cap_core.c
5715
static inline void l2cap_sig_send_rej(struct l2cap_conn *conn, u16 ident)
net/bluetooth/l2cap_core.c
5720
l2cap_send_cmd(conn, ident, L2CAP_COMMAND_REJ, sizeof(rej), &rej);
net/bluetooth/l2cap_core.c
5723
static inline void l2cap_sig_send_mtu_rej(struct l2cap_conn *conn, u8 ident)
net/bluetooth/l2cap_core.c
5729
l2cap_send_cmd(conn, ident, L2CAP_COMMAND_REJ, sizeof(rej), &rej);
net/bluetooth/l2cap_core.c
5732
static inline void l2cap_sig_channel(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5735
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
5739
l2cap_raw_recv(conn, skb);
net/bluetooth/l2cap_core.c
5777
l2cap_sig_send_mtu_rej(conn, ident);
net/bluetooth/l2cap_core.c
5794
l2cap_sig_send_rej(conn, cmd->ident);
net/bluetooth/l2cap_core.c
5799
err = l2cap_bredr_sig_cmd(conn, cmd, len, skb->data);
net/bluetooth/l2cap_core.c
5802
l2cap_sig_send_rej(conn, cmd->ident);
net/bluetooth/l2cap_core.c
5810
l2cap_sig_send_rej(conn, 0);
net/bluetooth/l2cap_core.c
603
chan->mps = min_t(u16, chan->imtu, chan->conn->mtu - L2CAP_HDR_SIZE);
net/bluetooth/l2cap_core.c
620
void __l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
622
BT_DBG("conn %p, psm 0x%2.2x, dcid 0x%4.4x", conn,
net/bluetooth/l2cap_core.c
625
conn->disc_reason = HCI_ERROR_REMOTE_USER_TERM;
net/bluetooth/l2cap_core.c
627
chan->conn = l2cap_conn_get(conn);
net/bluetooth/l2cap_core.c
632
chan->scid = l2cap_alloc_cid(conn);
net/bluetooth/l2cap_core.c
633
if (conn->hcon->type == ACL_LINK)
net/bluetooth/l2cap_core.c
6508
chan->conn->mtu = chan->conn->hcon->mtu;
net/bluetooth/l2cap_core.c
6575
chan->conn->mtu = chan->conn->hcon->mtu;
net/bluetooth/l2cap_core.c
667
hci_conn_hold(conn->hcon);
net/bluetooth/l2cap_core.c
670
list_add_tail(&chan->list, &conn->chan_l);
net/bluetooth/l2cap_core.c
673
void l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
675
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
676
__l2cap_chan_add(conn, chan);
net/bluetooth/l2cap_core.c
677
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
6778
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
6799
ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
6801
l2cap_send_cmd(conn, ident, L2CAP_LE_CREDITS, sizeof(pkt), &pkt);
net/bluetooth/l2cap_core.c
6810
ida_free(&conn->tx_ida, ident);
net/bluetooth/l2cap_core.c
6969
static void l2cap_data_channel(struct l2cap_conn *conn, u16 cid,
net/bluetooth/l2cap_core.c
6974
chan = l2cap_get_chan_by_scid(conn, cid);
net/bluetooth/l2cap_core.c
701
hci_conn_drop(chan->conn->hcon);
net/bluetooth/l2cap_core.c
7035
static void l2cap_conless_channel(struct l2cap_conn *conn, __le16 psm,
net/bluetooth/l2cap_core.c
7038
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
7076
static void l2cap_recv_frame(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/l2cap_core.c
7079
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
7085
skb_queue_tail(&conn->pending_rx, skb);
net/bluetooth/l2cap_core.c
7112
l2cap_sig_channel(conn, skb);
net/bluetooth/l2cap_core.c
7123
l2cap_conless_channel(conn, psm, skb);
net/bluetooth/l2cap_core.c
7127
l2cap_le_sig_channel(conn, skb);
net/bluetooth/l2cap_core.c
7131
l2cap_data_channel(conn, cid, skb);
net/bluetooth/l2cap_core.c
7138
struct l2cap_conn *conn = container_of(work, struct l2cap_conn,
net/bluetooth/l2cap_core.c
7144
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
7146
while ((skb = skb_dequeue(&conn->pending_rx)))
net/bluetooth/l2cap_core.c
7147
l2cap_recv_frame(conn, skb);
net/bluetooth/l2cap_core.c
7149
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
7154
struct l2cap_conn *conn = hcon->l2cap_data;
net/bluetooth/l2cap_core.c
7157
if (conn)
net/bluetooth/l2cap_core.c
7158
return conn;
net/bluetooth/l2cap_core.c
7164
conn = kzalloc_obj(*conn);
net/bluetooth/l2cap_core.c
7165
if (!conn) {
net/bluetooth/l2cap_core.c
7170
kref_init(&conn->ref);
net/bluetooth/l2cap_core.c
7171
hcon->l2cap_data = conn;
net/bluetooth/l2cap_core.c
7172
conn->hcon = hci_conn_get(hcon);
net/bluetooth/l2cap_core.c
7173
conn->hchan = hchan;
net/bluetooth/l2cap_core.c
7175
BT_DBG("hcon %p conn %p hchan %p", hcon, conn, hchan);
net/bluetooth/l2cap_core.c
7177
conn->mtu = hcon->mtu;
net/bluetooth/l2cap_core.c
7178
conn->feat_mask = 0;
net/bluetooth/l2cap_core.c
7180
conn->local_fixed_chan = L2CAP_FC_SIG_BREDR | L2CAP_FC_CONNLESS;
net/bluetooth/l2cap_core.c
7185
conn->local_fixed_chan |= L2CAP_FC_SMP_BREDR;
net/bluetooth/l2cap_core.c
7187
mutex_init(&conn->lock);
net/bluetooth/l2cap_core.c
7189
INIT_LIST_HEAD(&conn->chan_l);
net/bluetooth/l2cap_core.c
7190
INIT_LIST_HEAD(&conn->users);
net/bluetooth/l2cap_core.c
7192
INIT_DELAYED_WORK(&conn->info_timer, l2cap_info_timeout);
net/bluetooth/l2cap_core.c
7193
ida_init(&conn->tx_ida);
net/bluetooth/l2cap_core.c
7195
skb_queue_head_init(&conn->pending_rx);
net/bluetooth/l2cap_core.c
7196
INIT_WORK(&conn->pending_rx_work, process_pending_rx);
net/bluetooth/l2cap_core.c
7197
INIT_DELAYED_WORK(&conn->id_addr_timer, l2cap_conn_update_id_addr);
net/bluetooth/l2cap_core.c
7199
conn->disc_reason = HCI_ERROR_REMOTE_USER_TERM;
net/bluetooth/l2cap_core.c
7201
return conn;
net/bluetooth/l2cap_core.c
7246
struct l2cap_conn *conn;
net/bluetooth/l2cap_core.c
734
static void __l2cap_chan_list_id(struct l2cap_conn *conn, u16 id,
net/bluetooth/l2cap_core.c
7355
conn = l2cap_conn_add(hcon);
net/bluetooth/l2cap_core.c
7356
if (!conn) {
net/bluetooth/l2cap_core.c
7369
l2cap_chan_list(conn, l2cap_chan_by_pid, &data);
net/bluetooth/l2cap_core.c
7379
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
7382
if (cid && __l2cap_get_chan_by_dcid(conn, cid)) {
net/bluetooth/l2cap_core.c
739
list_for_each_entry_safe(chan, l, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
7392
__l2cap_chan_add(conn, chan);
net/bluetooth/l2cap_core.c
7420
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
7430
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
7437
chan->ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
7439
l2cap_send_cmd(conn, chan->ident, L2CAP_ECRED_RECONF_REQ,
net/bluetooth/l2cap_core.c
745
static void __l2cap_chan_list(struct l2cap_conn *conn, l2cap_chan_func_t func,
net/bluetooth/l2cap_core.c
750
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
7527
struct l2cap_conn *conn;
net/bluetooth/l2cap_core.c
7541
conn = l2cap_conn_add(hcon);
net/bluetooth/l2cap_core.c
7542
if (!conn)
net/bluetooth/l2cap_core.c
755
void l2cap_chan_list(struct l2cap_conn *conn, l2cap_chan_func_t func,
net/bluetooth/l2cap_core.c
7561
if (__l2cap_get_chan_by_dcid(conn, pchan->scid))
net/bluetooth/l2cap_core.c
7565
chan = l2cap_new_connection(conn, pchan);
net/bluetooth/l2cap_core.c
758
if (!conn)
net/bluetooth/l2cap_core.c
7580
l2cap_conn_ready(conn);
net/bluetooth/l2cap_core.c
7585
struct l2cap_conn *conn = hcon->l2cap_data;
net/bluetooth/l2cap_core.c
7589
if (!conn)
net/bluetooth/l2cap_core.c
7591
return conn->disc_reason;
net/bluetooth/l2cap_core.c
761
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
762
__l2cap_chan_list(conn, func, data);
net/bluetooth/l2cap_core.c
7623
struct l2cap_conn *conn = hcon->l2cap_data;
net/bluetooth/l2cap_core.c
7626
if (!conn)
net/bluetooth/l2cap_core.c
7629
BT_DBG("conn %p status 0x%2.2x encrypt %u", conn, status, encrypt);
net/bluetooth/l2cap_core.c
763
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
7631
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
7633
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
7687
l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP,
net/bluetooth/l2cap_core.c
7694
l2cap_send_cmd(conn, l2cap_get_ident(conn),
net/bluetooth/l2cap_core.c
770
struct l2cap_conn *conn = container_of(work, struct l2cap_conn,
net/bluetooth/l2cap_core.c
7705
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
7709
static int l2cap_recv_frag(struct l2cap_conn *conn, struct sk_buff *skb,
net/bluetooth/l2cap_core.c
7712
if (!conn->rx_skb) {
net/bluetooth/l2cap_core.c
7714
conn->rx_skb = bt_skb_alloc(len, GFP_KERNEL);
net/bluetooth/l2cap_core.c
7715
if (!conn->rx_skb)
net/bluetooth/l2cap_core.c
7718
conn->rx_len = len;
net/bluetooth/l2cap_core.c
772
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
7720
skb_set_delivery_time(conn->rx_skb, skb->tstamp,
net/bluetooth/l2cap_core.c
7726
skb_copy_from_linear_data(skb, skb_put(conn->rx_skb, len), len);
net/bluetooth/l2cap_core.c
7728
conn->rx_len -= len;
net/bluetooth/l2cap_core.c
7733
static int l2cap_recv_len(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/l2cap_core.c
7739
len = l2cap_recv_frag(conn, skb, L2CAP_LEN_SIZE - conn->rx_skb->len);
net/bluetooth/l2cap_core.c
7742
if (len < 0 || conn->rx_skb->len < L2CAP_LEN_SIZE)
net/bluetooth/l2cap_core.c
7745
rx_skb = conn->rx_skb;
net/bluetooth/l2cap_core.c
775
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
7751
conn->rx_len = len + (L2CAP_HDR_SIZE - L2CAP_LEN_SIZE);
net/bluetooth/l2cap_core.c
7758
conn->rx_skb = NULL;
net/bluetooth/l2cap_core.c
7761
len = l2cap_recv_frag(conn, rx_skb,
net/bluetooth/l2cap_core.c
7768
static void l2cap_recv_reset(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
777
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
7770
kfree_skb(conn->rx_skb);
net/bluetooth/l2cap_core.c
7771
conn->rx_skb = NULL;
net/bluetooth/l2cap_core.c
7772
conn->rx_len = 0;
net/bluetooth/l2cap_core.c
7793
struct l2cap_conn *conn;
net/bluetooth/l2cap_core.c
7808
conn = hcon->l2cap_data;
net/bluetooth/l2cap_core.c
7810
if (!conn)
net/bluetooth/l2cap_core.c
7811
conn = l2cap_conn_add(hcon);
net/bluetooth/l2cap_core.c
7813
conn = l2cap_conn_hold_unless_zero(conn);
net/bluetooth/l2cap_core.c
7818
if (!conn) {
net/bluetooth/l2cap_core.c
7823
BT_DBG("conn %p len %u flags 0x%x", conn, skb->len, flags);
net/bluetooth/l2cap_core.c
7825
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
7831
if (conn->rx_skb) {
net/bluetooth/l2cap_core.c
7833
l2cap_recv_reset(conn);
net/bluetooth/l2cap_core.c
7834
l2cap_conn_unreliable(conn, ECOMM);
net/bluetooth/l2cap_core.c
784
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
7842
l2cap_recv_frag(conn, skb, conn->mtu);
net/bluetooth/l2cap_core.c
7850
l2cap_recv_frame(conn, skb);
net/bluetooth/l2cap_core.c
7874
l2cap_recv_frame(conn, skb);
net/bluetooth/l2cap_core.c
7875
l2cap_conn_unreliable(conn, ECOMM);
net/bluetooth/l2cap_core.c
7880
if (l2cap_recv_frag(conn, skb, len) < 0)
net/bluetooth/l2cap_core.c
7886
BT_DBG("Cont: frag len %u (expecting %u)", skb->len, conn->rx_len);
net/bluetooth/l2cap_core.c
7888
if (!conn->rx_skb) {
net/bluetooth/l2cap_core.c
789
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
7890
l2cap_conn_unreliable(conn, ECOMM);
net/bluetooth/l2cap_core.c
7895
if (conn->rx_skb->len < L2CAP_LEN_SIZE) {
net/bluetooth/l2cap_core.c
7896
if (l2cap_recv_len(conn, skb) < 0) {
net/bluetooth/l2cap_core.c
7897
l2cap_conn_unreliable(conn, ECOMM);
net/bluetooth/l2cap_core.c
7902
if (conn->rx_skb->len < L2CAP_LEN_SIZE)
net/bluetooth/l2cap_core.c
7906
if (skb->len > conn->rx_len) {
net/bluetooth/l2cap_core.c
7908
skb->len, conn->rx_len);
net/bluetooth/l2cap_core.c
7909
l2cap_recv_reset(conn);
net/bluetooth/l2cap_core.c
7910
l2cap_conn_unreliable(conn, ECOMM);
net/bluetooth/l2cap_core.c
7915
l2cap_recv_frag(conn, skb, skb->len);
net/bluetooth/l2cap_core.c
7917
if (!conn->rx_len) {
net/bluetooth/l2cap_core.c
7922
struct sk_buff *rx_skb = conn->rx_skb;
net/bluetooth/l2cap_core.c
7923
conn->rx_skb = NULL;
net/bluetooth/l2cap_core.c
7924
l2cap_recv_frame(conn, rx_skb);
net/bluetooth/l2cap_core.c
7932
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
7933
l2cap_conn_put(conn);
net/bluetooth/l2cap_core.c
806
l2cap_send_cmd(conn, chan->ident, L2CAP_LE_CONN_RSP, sizeof(rsp),
net/bluetooth/l2cap_core.c
819
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
835
l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP, sizeof(rsp), &rsp);
net/bluetooth/l2cap_core.c
840
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
860
if (conn->hcon->type == ACL_LINK)
net/bluetooth/l2cap_core.c
862
else if (conn->hcon->type == LE_LINK) {
net/bluetooth/l2cap_core.c
87
static struct l2cap_chan *__l2cap_get_chan_by_dcid(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
92
list_for_each_entry(c, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
944
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
947
if (conn->hcon->type == LE_LINK)
net/bluetooth/l2cap_core.c
948
return smp_conn_security(conn->hcon, chan->sec_level);
net/bluetooth/l2cap_core.c
952
return hci_conn_security(conn->hcon, chan->sec_level, auth_type,
net/bluetooth/l2cap_core.c
956
static int l2cap_get_ident(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
962
if (conn->hcon->type == LE_LINK)
net/bluetooth/l2cap_core.c
973
ident = ida_alloc_range(&conn->tx_ida, READ_ONCE(conn->tx_ident) + 1,
net/bluetooth/l2cap_core.c
977
ident = ida_alloc_range(&conn->tx_ida, 1, max, GFP_ATOMIC);
net/bluetooth/l2cap_core.c
988
WRITE_ONCE(conn->tx_ident, ident);
net/bluetooth/l2cap_core.c
99
static struct l2cap_chan *__l2cap_get_chan_by_scid(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
993
static void l2cap_send_acl(struct l2cap_conn *conn, struct sk_buff *skb,
net/bluetooth/l2cap_core.c
997
if (hci_conn_valid(conn->hcon->hdev, conn->hcon))
net/bluetooth/l2cap_core.c
998
hci_send_acl(conn->hchan, skb, flags);
net/bluetooth/l2cap_sock.c
1000
conn = chan->conn;
net/bluetooth/l2cap_sock.c
1003
if (!conn || !lmp_no_flush_capable(conn->hcon->hdev)) {
net/bluetooth/l2cap_sock.c
1096
if (!chan->conn)
net/bluetooth/l2cap_sock.c
1099
conn = chan->conn;
net/bluetooth/l2cap_sock.c
1100
err = hci_conn_set_phy(conn->hcon, phys);
net/bluetooth/l2cap_sock.c
1371
struct l2cap_conn *conn;
net/bluetooth/l2cap_sock.c
1430
conn = l2cap_conn_hold_unless_zero(chan->conn);
net/bluetooth/l2cap_sock.c
1433
if (conn)
net/bluetooth/l2cap_sock.c
1435
mutex_lock(&conn->lock);
net/bluetooth/l2cap_sock.c
1441
if (conn) {
net/bluetooth/l2cap_sock.c
1442
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_sock.c
1443
l2cap_conn_put(conn);
net/bluetooth/l2cap_sock.c
1551
if (chan->conn)
net/bluetooth/l2cap_sock.c
541
cinfo.hci_handle = chan->conn->hcon->handle;
net/bluetooth/l2cap_sock.c
542
memcpy(cinfo.dev_class, chan->conn->hcon->dev_class, 3);
net/bluetooth/l2cap_sock.c
593
if (chan->conn) {
net/bluetooth/l2cap_sock.c
594
sec.level = chan->conn->hcon->sec_level;
net/bluetooth/l2cap_sock.c
597
sec.key_size = chan->conn->hcon->enc_key_size;
net/bluetooth/l2cap_sock.c
686
opt = hci_conn_get_phy(chan->conn->hcon);
net/bluetooth/l2cap_sock.c
902
struct l2cap_conn *conn;
net/bluetooth/l2cap_sock.c
941
if (!chan->conn)
net/bluetooth/l2cap_sock.c
944
conn = chan->conn;
net/bluetooth/l2cap_sock.c
948
if (smp_conn_security(conn->hcon, sec.level)) {
net/bluetooth/mgmt.c
10026
void mgmt_connect_failed(struct hci_dev *hdev, struct hci_conn *conn, u8 status)
net/bluetooth/mgmt.c
10030
if (test_and_clear_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags)) {
net/bluetooth/mgmt.c
10031
mgmt_device_disconnected(hdev, &conn->dst, conn->type,
net/bluetooth/mgmt.c
10032
conn->dst_type,
net/bluetooth/mgmt.c
10037
bacpy(&ev.addr.bdaddr, &conn->dst);
net/bluetooth/mgmt.c
10038
ev.addr.type = link_to_bdaddr(conn->type, conn->dst_type);
net/bluetooth/mgmt.c
10174
void mgmt_auth_failed(struct hci_conn *conn, u8 hci_status)
net/bluetooth/mgmt.c
10180
bacpy(&ev.addr.bdaddr, &conn->dst);
net/bluetooth/mgmt.c
10181
ev.addr.type = link_to_bdaddr(conn->type, conn->dst_type);
net/bluetooth/mgmt.c
10184
cmd = remove_pairing(conn);
net/bluetooth/mgmt.c
10186
mgmt_event(MGMT_EV_AUTH_FAILED, conn->hdev, &ev, sizeof(ev),
net/bluetooth/mgmt.c
3102
struct hci_conn *conn;
net/bluetooth/mgmt.c
3107
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
net/bluetooth/mgmt.c
3110
conn = hci_conn_hash_lookup_le(hdev, &cp->addr.bdaddr,
net/bluetooth/mgmt.c
3113
if (conn)
net/bluetooth/mgmt.c
3114
hci_conn_get(conn);
net/bluetooth/mgmt.c
3118
if (!conn)
net/bluetooth/mgmt.c
3124
hci_abort_conn(conn, HCI_ERROR_REMOTE_USER_TERM);
net/bluetooth/mgmt.c
3125
hci_conn_put(conn);
net/bluetooth/mgmt.c
3137
struct hci_conn *conn;
net/bluetooth/mgmt.c
3173
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
net/bluetooth/mgmt.c
3176
conn = NULL;
net/bluetooth/mgmt.c
3202
conn = hci_conn_hash_lookup_le(hdev, &cp->addr.bdaddr, addr_type);
net/bluetooth/mgmt.c
3203
if (!conn) {
net/bluetooth/mgmt.c
3212
set_bit(HCI_CONN_PARAM_REMOVAL_PEND, &conn->flags);
net/bluetooth/mgmt.c
3227
conn = NULL;
net/bluetooth/mgmt.c
3233
if (!conn) {
net/bluetooth/mgmt.c
3271
struct hci_conn *conn;
net/bluetooth/mgmt.c
3276
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
net/bluetooth/mgmt.c
3279
conn = hci_conn_hash_lookup_le(hdev, &cp->addr.bdaddr,
net/bluetooth/mgmt.c
3282
if (conn)
net/bluetooth/mgmt.c
3283
hci_conn_get(conn);
net/bluetooth/mgmt.c
3287
if (!conn)
net/bluetooth/mgmt.c
3293
hci_abort_conn(conn, HCI_ERROR_REMOTE_USER_TERM);
net/bluetooth/mgmt.c
3294
hci_conn_put(conn);
net/bluetooth/mgmt.c
3445
struct hci_conn *conn;
net/bluetooth/mgmt.c
3461
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->addr.bdaddr);
net/bluetooth/mgmt.c
3462
if (!conn) {
net/bluetooth/mgmt.c
3468
if (conn->pending_sec_level == BT_SECURITY_HIGH && cp->pin_len != 16) {
net/bluetooth/mgmt.c
3527
static struct mgmt_pending_cmd *remove_pairing(struct hci_conn *conn)
net/bluetooth/mgmt.c
3529
struct hci_dev *hdev = conn->hdev;
net/bluetooth/mgmt.c
3538
if (cmd->user_data != conn)
net/bluetooth/mgmt.c
3555
struct hci_conn *conn;
net/bluetooth/mgmt.c
3563
conn = cmd->user_data;
net/bluetooth/mgmt.c
3564
if (bacmp(bdaddr, &conn->dst) != 0)
net/bluetooth/mgmt.c
3580
struct hci_conn *conn = cmd->user_data;
net/bluetooth/mgmt.c
3583
bacpy(&rp.addr.bdaddr, &conn->dst);
net/bluetooth/mgmt.c
3584
rp.addr.type = link_to_bdaddr(conn->type, conn->dst_type);
net/bluetooth/mgmt.c
3590
conn->connect_cfm_cb = NULL;
net/bluetooth/mgmt.c
3591
conn->security_cfm_cb = NULL;
net/bluetooth/mgmt.c
3592
conn->disconn_cfm_cb = NULL;
net/bluetooth/mgmt.c
3594
hci_conn_drop(conn);
net/bluetooth/mgmt.c
3599
clear_bit(HCI_CONN_PARAM_REMOVAL_PEND, &conn->flags);
net/bluetooth/mgmt.c
3601
hci_conn_put(conn);
net/bluetooth/mgmt.c
3606
void mgmt_smp_complete(struct hci_conn *conn, bool complete)
net/bluetooth/mgmt.c
3611
cmd = remove_pairing(conn);
net/bluetooth/mgmt.c
3618
static void pairing_complete_cb(struct hci_conn *conn, u8 status)
net/bluetooth/mgmt.c
3624
cmd = remove_pairing(conn);
net/bluetooth/mgmt.c
3634
static void le_pairing_complete_cb(struct hci_conn *conn, u8 status)
net/bluetooth/mgmt.c
3643
cmd = remove_pairing(conn);
net/bluetooth/mgmt.c
3660
struct hci_conn *conn;
net/bluetooth/mgmt.c
3699
conn = hci_connect_acl(hdev, &cp->addr.bdaddr, sec_level,
net/bluetooth/mgmt.c
3724
conn = hci_connect_le_scan(hdev, &cp->addr.bdaddr, addr_type,
net/bluetooth/mgmt.c
3729
if (IS_ERR(conn)) {
net/bluetooth/mgmt.c
3732
if (PTR_ERR(conn) == -EBUSY)
net/bluetooth/mgmt.c
3734
else if (PTR_ERR(conn) == -EOPNOTSUPP)
net/bluetooth/mgmt.c
3736
else if (PTR_ERR(conn) == -ECONNREFUSED)
net/bluetooth/mgmt.c
3746
if (conn->connect_cfm_cb) {
net/bluetooth/mgmt.c
3747
hci_conn_drop(conn);
net/bluetooth/mgmt.c
3756
hci_conn_drop(conn);
net/bluetooth/mgmt.c
3764
conn->connect_cfm_cb = pairing_complete_cb;
net/bluetooth/mgmt.c
3765
conn->security_cfm_cb = pairing_complete_cb;
net/bluetooth/mgmt.c
3766
conn->disconn_cfm_cb = pairing_complete_cb;
net/bluetooth/mgmt.c
3768
conn->connect_cfm_cb = le_pairing_complete_cb;
net/bluetooth/mgmt.c
3769
conn->security_cfm_cb = le_pairing_complete_cb;
net/bluetooth/mgmt.c
3770
conn->disconn_cfm_cb = le_pairing_complete_cb;
net/bluetooth/mgmt.c
3773
conn->io_capability = cp->io_cap;
net/bluetooth/mgmt.c
3774
cmd->user_data = hci_conn_get(conn);
net/bluetooth/mgmt.c
3776
if ((conn->state == BT_CONNECTED || conn->state == BT_CONFIG) &&
net/bluetooth/mgmt.c
3777
hci_conn_security(conn, sec_level, auth_type, true)) {
net/bluetooth/mgmt.c
3794
struct hci_conn *conn;
net/bluetooth/mgmt.c
3814
conn = hci_conn_get(cmd->user_data);
net/bluetooth/mgmt.c
3832
if (conn->conn_reason == CONN_REASON_PAIR_DEVICE)
net/bluetooth/mgmt.c
3833
hci_abort_conn(conn, HCI_ERROR_REMOTE_USER_TERM);
net/bluetooth/mgmt.c
3835
hci_conn_put(conn);
net/bluetooth/mgmt.c
3847
struct hci_conn *conn;
net/bluetooth/mgmt.c
3860
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &addr->bdaddr);
net/bluetooth/mgmt.c
3862
conn = hci_conn_hash_lookup_le(hdev, &addr->bdaddr,
net/bluetooth/mgmt.c
3865
if (!conn) {
net/bluetooth/mgmt.c
3873
err = smp_user_confirm_reply(conn, mgmt_op, passkey);
net/bluetooth/mgmt.c
5197
struct hci_conn *conn;
net/bluetooth/mgmt.c
5199
conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, addr);
net/bluetooth/mgmt.c
5200
if (!conn)
net/bluetooth/mgmt.c
5203
if (conn->dst_type != type)
net/bluetooth/mgmt.c
5206
if (conn->state != BT_CONNECTED)
net/bluetooth/mgmt.c
7431
struct hci_conn *conn = cmd->user_data;
net/bluetooth/mgmt.c
7442
rp.rssi = conn->rssi;
net/bluetooth/mgmt.c
7443
rp.tx_power = conn->tx_power;
net/bluetooth/mgmt.c
7444
rp.max_tx_power = conn->max_tx_power;
net/bluetooth/mgmt.c
7451
if (conn)
net/bluetooth/mgmt.c
7452
hci_conn_put(conn);
net/bluetooth/mgmt.c
7464
struct hci_conn *conn;
net/bluetooth/mgmt.c
7472
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
net/bluetooth/mgmt.c
7475
conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->addr.bdaddr);
net/bluetooth/mgmt.c
7477
if (!conn || conn->state != BT_CONNECTED) {
net/bluetooth/mgmt.c
7482
cmd->user_data = hci_conn_get(conn);
net/bluetooth/mgmt.c
7483
handle = cpu_to_le16(conn->handle);
net/bluetooth/mgmt.c
7494
conn->tx_power == HCI_TX_POWER_INVALID))
net/bluetooth/mgmt.c
7498
if (!err && conn->max_tx_power == HCI_TX_POWER_INVALID)
net/bluetooth/mgmt.c
7509
struct hci_conn *conn;
net/bluetooth/mgmt.c
7534
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
net/bluetooth/mgmt.c
7537
conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->addr.bdaddr);
net/bluetooth/mgmt.c
7539
if (!conn || conn->state != BT_CONNECTED) {
net/bluetooth/mgmt.c
7555
if (time_after(jiffies, conn->conn_info_timestamp +
net/bluetooth/mgmt.c
7557
!conn->conn_info_timestamp) {
net/bluetooth/mgmt.c
7579
conn->conn_info_timestamp = jiffies;
net/bluetooth/mgmt.c
7582
rp.rssi = conn->rssi;
net/bluetooth/mgmt.c
7583
rp.tx_power = conn->tx_power;
net/bluetooth/mgmt.c
7584
rp.max_tx_power = conn->max_tx_power;
net/bluetooth/mgmt.c
7600
struct hci_conn *conn = cmd->user_data;
net/bluetooth/mgmt.c
7614
if (conn) {
net/bluetooth/mgmt.c
7615
rp.piconet_clock = cpu_to_le32(conn->clock);
net/bluetooth/mgmt.c
7616
rp.accuracy = cpu_to_le16(conn->clock_accuracy);
net/bluetooth/mgmt.c
7620
if (conn)
net/bluetooth/mgmt.c
7621
hci_conn_put(conn);
net/bluetooth/mgmt.c
7634
struct hci_conn *conn;
net/bluetooth/mgmt.c
7642
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->addr.bdaddr);
net/bluetooth/mgmt.c
7643
if (!conn || conn->state != BT_CONNECTED) {
net/bluetooth/mgmt.c
7648
cmd->user_data = hci_conn_get(conn);
net/bluetooth/mgmt.c
7649
hci_cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/mgmt.c
7663
struct hci_conn *conn;
net/bluetooth/mgmt.c
7687
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
net/bluetooth/mgmt.c
7689
if (!conn || conn->state != BT_CONNECTED) {
net/bluetooth/mgmt.c
7697
conn = NULL;
net/bluetooth/mgmt.c
8018
struct hci_conn *conn = data;
net/bluetooth/mgmt.c
8024
if (!hci_conn_valid(hdev, conn) || conn->role != HCI_ROLE_MASTER)
net/bluetooth/mgmt.c
8027
params = hci_conn_params_lookup(hdev, &conn->dst, conn->dst_type);
net/bluetooth/mgmt.c
8038
return hci_le_conn_update_sync(hdev, conn, &local);
net/bluetooth/mgmt.c
8145
struct hci_conn *conn;
net/bluetooth/mgmt.c
8151
conn = hci_conn_hash_lookup_le(hdev, &hci_param->addr,
net/bluetooth/mgmt.c
8153
if (conn && conn->role == HCI_ROLE_MASTER &&
net/bluetooth/mgmt.c
8154
(conn->le_conn_min_interval != min ||
net/bluetooth/mgmt.c
8155
conn->le_conn_max_interval != max ||
net/bluetooth/mgmt.c
8156
conn->le_conn_latency != latency ||
net/bluetooth/mgmt.c
8157
conn->le_supv_timeout != timeout)) {
net/bluetooth/mgmt.c
8158
hci_conn_get(conn);
net/bluetooth/mgmt.c
8160
conn,
net/bluetooth/mgmt.c
8162
hci_conn_put(conn);
net/bluetooth/mgmt.c
9873
void mgmt_device_connected(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/mgmt.c
9881
if (test_and_set_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags))
net/bluetooth/mgmt.c
9885
if (conn->le_adv_data_len > 0)
net/bluetooth/mgmt.c
9887
sizeof(*ev) + conn->le_adv_data_len);
net/bluetooth/mgmt.c
9891
eir_precalc_len(sizeof(conn->dev_class)));
net/bluetooth/mgmt.c
9897
bacpy(&ev->addr.bdaddr, &conn->dst);
net/bluetooth/mgmt.c
9898
ev->addr.type = link_to_bdaddr(conn->type, conn->dst_type);
net/bluetooth/mgmt.c
9900
if (conn->out)
net/bluetooth/mgmt.c
9909
if (conn->le_adv_data_len > 0) {
net/bluetooth/mgmt.c
9910
skb_put_data(skb, conn->le_adv_data, conn->le_adv_data_len);
net/bluetooth/mgmt.c
9911
eir_len = conn->le_adv_data_len;
net/bluetooth/mgmt.c
9916
if (memcmp(conn->dev_class, "\0\0\0", sizeof(conn->dev_class)))
net/bluetooth/mgmt.c
9918
conn->dev_class, sizeof(conn->dev_class));
net/bluetooth/rfcomm/core.c
1337
struct l2cap_conn *conn = l2cap_pi(sk)->chan->conn;
net/bluetooth/rfcomm/core.c
1351
hci_conn_switch_role(conn->hcon, 0x00);
net/bluetooth/rfcomm/core.c
212
struct l2cap_conn *conn = l2cap_pi(sk)->chan->conn;
net/bluetooth/rfcomm/core.c
2191
static void rfcomm_security_cfm(struct hci_conn *conn, u8 status, u8 encrypt)
net/bluetooth/rfcomm/core.c
2196
BT_DBG("conn %p status 0x%02x encrypt 0x%02x", conn, status, encrypt);
net/bluetooth/rfcomm/core.c
2198
s = rfcomm_session_get(&conn->hdev->bdaddr, &conn->dst);
net/bluetooth/rfcomm/core.c
2226
if (!status && hci_conn_check_secure(conn, d->sec_level))
net/bluetooth/rfcomm/core.c
229
return hci_conn_security(conn->hcon, d->sec_level, auth_type,
net/bluetooth/rfcomm/sock.c
746
struct l2cap_conn *conn;
net/bluetooth/rfcomm/sock.c
797
conn = l2cap_pi(l2cap_sk)->chan->conn;
net/bluetooth/rfcomm/sock.c
800
cinfo.hci_handle = conn->hcon->handle;
net/bluetooth/rfcomm/sock.c
801
memcpy(cinfo.dev_class, conn->hcon->dev_class, 3);
net/bluetooth/rfcomm/tty.c
175
struct hci_conn *conn;
net/bluetooth/rfcomm/tty.c
185
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &dev->dst);
net/bluetooth/rfcomm/tty.c
190
if (conn && device_is_registered(&conn->dev))
net/bluetooth/rfcomm/tty.c
191
device_move(dev->tty_dev, &conn->dev, DPM_ORDER_DEV_AFTER_PARENT);
net/bluetooth/sco.c
100
if (!conn)
net/bluetooth/sco.c
103
BT_DBG("conn %p refcnt %d", conn, kref_read(&conn->ref));
net/bluetooth/sco.c
105
kref_put(&conn->ref, sco_conn_free);
net/bluetooth/sco.c
108
static struct sco_conn *sco_conn_hold(struct sco_conn *conn)
net/bluetooth/sco.c
110
BT_DBG("conn %p refcnt %u", conn, kref_read(&conn->ref));
net/bluetooth/sco.c
112
kref_get(&conn->ref);
net/bluetooth/sco.c
113
return conn;
net/bluetooth/sco.c
1130
opts.mtu = sco_pi(sk)->conn->mtu;
net/bluetooth/sco.c
1149
cinfo.hci_handle = sco_pi(sk)->conn->hcon->handle;
net/bluetooth/sco.c
1150
memcpy(cinfo.dev_class, sco_pi(sk)->conn->hcon->dev_class, 3);
net/bluetooth/sco.c
116
static struct sco_conn *sco_conn_hold_unless_zero(struct sco_conn *conn)
net/bluetooth/sco.c
118
if (!conn)
net/bluetooth/sco.c
121
BT_DBG("conn %p refcnt %u", conn, kref_read(&conn->ref));
net/bluetooth/sco.c
1220
phys = hci_conn_get_phy(sco_pi(sk)->conn->hcon);
net/bluetooth/sco.c
123
if (!kref_get_unless_zero(&conn->ref))
net/bluetooth/sco.c
1241
val = sco_pi(sk)->conn->mtu;
net/bluetooth/sco.c
126
return conn;
net/bluetooth/sco.c
129
static struct sock *sco_sock_hold(struct sco_conn *conn)
net/bluetooth/sco.c
131
if (!conn || !bt_sock_linked(&sco_sk_list, conn->sk))
net/bluetooth/sco.c
134
sock_hold(conn->sk);
net/bluetooth/sco.c
136
return conn->sk;
net/bluetooth/sco.c
1406
static void sco_conn_ready(struct sco_conn *conn)
net/bluetooth/sco.c
141
struct sco_conn *conn = container_of(work, struct sco_conn,
net/bluetooth/sco.c
1410
sco_conn_lock(conn);
net/bluetooth/sco.c
1411
sk = sco_sock_hold(conn);
net/bluetooth/sco.c
1412
sco_conn_unlock(conn);
net/bluetooth/sco.c
1414
BT_DBG("conn %p", conn);
net/bluetooth/sco.c
1422
if (conn->sk) {
net/bluetooth/sco.c
1431
if (!conn->hcon)
net/bluetooth/sco.c
1434
lockdep_assert_held(&conn->hcon->hdev->lock);
net/bluetooth/sco.c
1436
parent = sco_get_sock_listen(&conn->hcon->src);
net/bluetooth/sco.c
1442
sco_conn_lock(conn);
net/bluetooth/sco.c
145
conn = sco_conn_hold_unless_zero(conn);
net/bluetooth/sco.c
1456
bacpy(&sco_pi(sk)->src, &conn->hcon->src);
net/bluetooth/sco.c
1457
bacpy(&sco_pi(sk)->dst, &conn->hcon->dst);
net/bluetooth/sco.c
1459
__sco_chan_add(conn, sk, parent);
net/bluetooth/sco.c
146
if (!conn)
net/bluetooth/sco.c
1470
sco_conn_unlock(conn);
net/bluetooth/sco.c
149
sco_conn_lock(conn);
net/bluetooth/sco.c
150
if (!conn->hcon) {
net/bluetooth/sco.c
151
sco_conn_unlock(conn);
net/bluetooth/sco.c
1512
struct sco_conn *conn;
net/bluetooth/sco.c
1514
conn = sco_conn_add(hci_conn_hold(hcon));
net/bluetooth/sco.c
1515
if (conn) {
net/bluetooth/sco.c
1516
sco_conn_ready(conn);
net/bluetooth/sco.c
1517
sco_conn_put(conn);
net/bluetooth/sco.c
152
sco_conn_put(conn);
net/bluetooth/sco.c
1538
struct sco_conn *conn;
net/bluetooth/sco.c
1549
conn = sco_conn_hold_unless_zero(hcon->sco_data);
net/bluetooth/sco.c
155
sk = sco_sock_hold(conn);
net/bluetooth/sco.c
1554
if (!conn) {
net/bluetooth/sco.c
1559
BT_DBG("conn %p len %u", conn, skb->len);
net/bluetooth/sco.c
156
sco_conn_unlock(conn);
net/bluetooth/sco.c
1562
sco_recv_frame(conn, skb);
net/bluetooth/sco.c
1566
sco_conn_put(conn);
net/bluetooth/sco.c
157
sco_conn_put(conn);
net/bluetooth/sco.c
173
if (!sco_pi(sk)->conn)
net/bluetooth/sco.c
177
cancel_delayed_work(&sco_pi(sk)->conn->timeout_work);
net/bluetooth/sco.c
178
schedule_delayed_work(&sco_pi(sk)->conn->timeout_work, timeout);
net/bluetooth/sco.c
183
if (!sco_pi(sk)->conn)
net/bluetooth/sco.c
187
cancel_delayed_work(&sco_pi(sk)->conn->timeout_work);
net/bluetooth/sco.c
196
struct sco_conn *conn = hcon->sco_data;
net/bluetooth/sco.c
198
conn = sco_conn_hold_unless_zero(conn);
net/bluetooth/sco.c
199
if (conn) {
net/bluetooth/sco.c
200
if (!conn->hcon) {
net/bluetooth/sco.c
201
sco_conn_lock(conn);
net/bluetooth/sco.c
202
conn->hcon = hcon;
net/bluetooth/sco.c
203
sco_conn_unlock(conn);
net/bluetooth/sco.c
208
return conn;
net/bluetooth/sco.c
211
conn = kzalloc_obj(struct sco_conn);
net/bluetooth/sco.c
212
if (!conn)
net/bluetooth/sco.c
215
kref_init(&conn->ref);
net/bluetooth/sco.c
216
spin_lock_init(&conn->lock);
net/bluetooth/sco.c
217
INIT_DELAYED_WORK(&conn->timeout_work, sco_sock_timeout);
net/bluetooth/sco.c
219
hcon->sco_data = conn;
net/bluetooth/sco.c
220
conn->hcon = hcon;
net/bluetooth/sco.c
221
conn->mtu = hcon->mtu;
net/bluetooth/sco.c
224
conn->mtu = hcon->mtu;
net/bluetooth/sco.c
226
conn->mtu = 60;
net/bluetooth/sco.c
228
BT_DBG("hcon %p conn %p", hcon, conn);
net/bluetooth/sco.c
230
return conn;
net/bluetooth/sco.c
237
struct sco_conn *conn;
net/bluetooth/sco.c
239
conn = sco_pi(sk)->conn;
net/bluetooth/sco.c
240
sco_pi(sk)->conn = NULL;
net/bluetooth/sco.c
242
BT_DBG("sk %p, conn %p, err %d", sk, conn, err);
net/bluetooth/sco.c
244
if (conn) {
net/bluetooth/sco.c
245
sco_conn_lock(conn);
net/bluetooth/sco.c
246
conn->sk = NULL;
net/bluetooth/sco.c
247
sco_conn_unlock(conn);
net/bluetooth/sco.c
248
sco_conn_put(conn);
net/bluetooth/sco.c
260
struct sco_conn *conn = hcon->sco_data;
net/bluetooth/sco.c
263
conn = sco_conn_hold_unless_zero(conn);
net/bluetooth/sco.c
264
if (!conn)
net/bluetooth/sco.c
267
BT_DBG("hcon %p conn %p, err %d", hcon, conn, err);
net/bluetooth/sco.c
269
sco_conn_lock(conn);
net/bluetooth/sco.c
270
sk = sco_sock_hold(conn);
net/bluetooth/sco.c
271
sco_conn_unlock(conn);
net/bluetooth/sco.c
272
sco_conn_put(conn);
net/bluetooth/sco.c
285
static void __sco_chan_add(struct sco_conn *conn, struct sock *sk,
net/bluetooth/sco.c
288
BT_DBG("conn %p", conn);
net/bluetooth/sco.c
290
sco_pi(sk)->conn = sco_conn_hold(conn);
net/bluetooth/sco.c
291
conn->sk = sk;
net/bluetooth/sco.c
297
static int sco_chan_add(struct sco_conn *conn, struct sock *sk,
net/bluetooth/sco.c
302
sco_conn_lock(conn);
net/bluetooth/sco.c
303
if (conn->sk || sco_pi(sk)->conn)
net/bluetooth/sco.c
306
__sco_chan_add(conn, sk, parent);
net/bluetooth/sco.c
308
sco_conn_unlock(conn);
net/bluetooth/sco.c
314
struct sco_conn *conn;
net/bluetooth/sco.c
359
conn = sco_conn_add(hcon);
net/bluetooth/sco.c
360
if (!conn) {
net/bluetooth/sco.c
373
sco_conn_put(conn);
net/bluetooth/sco.c
378
err = sco_chan_add(conn, sk, NULL);
net/bluetooth/sco.c
379
sco_conn_put(conn);
net/bluetooth/sco.c
407
struct sco_conn *conn = sco_pi(sk)->conn;
net/bluetooth/sco.c
411
if (len > conn->mtu)
net/bluetooth/sco.c
417
hci_send_sco(conn->hcon, skb);
net/bluetooth/sco.c
422
static void sco_recv_frame(struct sco_conn *conn, struct sk_buff *skb)
net/bluetooth/sco.c
426
sco_conn_lock(conn);
net/bluetooth/sco.c
427
sk = sco_sock_hold(conn);
net/bluetooth/sco.c
428
sco_conn_unlock(conn);
net/bluetooth/sco.c
500
sco_conn_put(sco_pi(sk)->conn);
net/bluetooth/sco.c
537
if (sco_pi(sk)->conn) {
net/bluetooth/sco.c
538
sco_conn_lock(sco_pi(sk)->conn);
net/bluetooth/sco.c
539
sco_pi(sk)->conn->sk = NULL;
net/bluetooth/sco.c
540
sco_conn_unlock(sco_pi(sk)->conn);
net/bluetooth/sco.c
577
struct sco_conn *conn;
net/bluetooth/sco.c
580
conn = sco_pi(sk)->conn;
net/bluetooth/sco.c
581
if (conn)
net/bluetooth/sco.c
582
sco_conn_hold(conn);
net/bluetooth/sco.c
585
if (conn)
net/bluetooth/sco.c
586
disable_delayed_work_sync(&conn->timeout_work);
net/bluetooth/sco.c
592
if (conn)
net/bluetooth/sco.c
593
sco_conn_put(conn);
net/bluetooth/sco.c
71
struct sco_conn *conn;
net/bluetooth/sco.c
80
struct sco_conn *conn = container_of(ref, struct sco_conn, ref);
net/bluetooth/sco.c
82
BT_DBG("conn %p", conn);
net/bluetooth/sco.c
84
if (conn->sk)
net/bluetooth/sco.c
85
sco_pi(conn->sk)->conn = NULL;
net/bluetooth/sco.c
87
if (conn->hcon) {
net/bluetooth/sco.c
88
conn->hcon->sco_data = NULL;
net/bluetooth/sco.c
89
hci_conn_drop(conn->hcon);
net/bluetooth/sco.c
893
static void sco_conn_defer_accept(struct hci_conn *conn, u16 setting)
net/bluetooth/sco.c
895
struct hci_dev *hdev = conn->hdev;
net/bluetooth/sco.c
897
BT_DBG("conn %p", conn);
net/bluetooth/sco.c
899
conn->state = BT_CONFIG;
net/bluetooth/sco.c
904
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/sco.c
911
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/sco.c
912
cp.pkt_type = cpu_to_le16(conn->pkt_type);
net/bluetooth/sco.c
920
if (conn->pkt_type & ESCO_2EV3)
net/bluetooth/sco.c
93
disable_delayed_work_sync(&conn->timeout_work);
net/bluetooth/sco.c
95
kfree(conn);
net/bluetooth/sco.c
956
sco_conn_defer_accept(pi->conn->hcon, pi->setting);
net/bluetooth/sco.c
98
static void sco_conn_put(struct sco_conn *conn)
net/bluetooth/smp.c
1011
static void smp_notify_keys(struct l2cap_conn *conn)
net/bluetooth/smp.c
1013
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
1015
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
1050
&conn->id_addr_timer,
net/bluetooth/smp.c
1090
key = hci_add_link_key(hdev, smp->conn->hcon, &hcon->dst,
net/bluetooth/smp.c
1109
struct hci_conn *hcon = smp->conn->hcon;
net/bluetooth/smp.c
1181
struct hci_conn *hcon = smp->conn->hcon;
net/bluetooth/smp.c
1217
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
1218
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
1222
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/smp.c
1274
smp_send_cmd(conn, SMP_CMD_ENCRYPT_INFO, sizeof(enc), &enc);
net/bluetooth/smp.c
1285
smp_send_cmd(conn, SMP_CMD_INITIATOR_IDENT, sizeof(ident),
net/bluetooth/smp.c
1297
smp_send_cmd(conn, SMP_CMD_IDENT_INFO, sizeof(idinfo), &idinfo);
net/bluetooth/smp.c
1308
smp_send_cmd(conn, SMP_CMD_IDENT_ADDR_INFO, sizeof(addrinfo),
net/bluetooth/smp.c
1331
smp_send_cmd(conn, SMP_CMD_SIGN_INFO, sizeof(sign), &sign);
net/bluetooth/smp.c
1343
smp_notify_keys(conn);
net/bluetooth/smp.c
1345
smp_chan_destroy(conn);
net/bluetooth/smp.c
1352
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
1354
bt_dev_dbg(conn->hcon->hdev, "conn %p", conn);
net/bluetooth/smp.c
1356
hci_disconnect(conn->hcon, HCI_ERROR_AUTH_FAILURE);
net/bluetooth/smp.c
1359
static struct smp_chan *smp_chan_create(struct l2cap_conn *conn)
net/bluetooth/smp.c
1361
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
1362
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
1375
smp->conn = conn;
net/bluetooth/smp.c
1393
struct hci_conn *hcon = smp->conn->hcon;
net/bluetooth/smp.c
1414
struct hci_conn *hcon = smp->conn->hcon;
net/bluetooth/smp.c
1445
smp_send_cmd(smp->conn, SMP_CMD_DHKEY_CHECK, sizeof(check), &check);
net/bluetooth/smp.c
1450
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
1451
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
1464
smp_send_cmd(conn, SMP_CMD_PAIRING_CONFIRM, sizeof(cfm), &cfm);
net/bluetooth/smp.c
1471
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
1472
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
1503
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM,
net/bluetooth/smp.c
1531
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM,
net/bluetooth/smp.c
1557
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
1558
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
1565
smp_failure(smp->conn, SMP_PASSKEY_ENTRY_FAILED);
net/bluetooth/smp.c
1568
smp_failure(smp->conn, SMP_NUMERIC_COMP_FAILED);
net/bluetooth/smp.c
1599
struct l2cap_conn *conn = hcon->l2cap_data;
net/bluetooth/smp.c
1605
if (!conn)
net/bluetooth/smp.c
1608
bt_dev_dbg(conn->hcon->hdev, "");
net/bluetooth/smp.c
1610
chan = conn->smp;
net/bluetooth/smp.c
1631
bt_dev_dbg(conn->hcon->hdev, "PassKey: %u", value);
net/bluetooth/smp.c
1639
smp_failure(conn, SMP_PASSKEY_ENTRY_FAILED);
net/bluetooth/smp.c
1643
smp_failure(conn, SMP_PASSKEY_ENTRY_FAILED);
net/bluetooth/smp.c
1654
smp_failure(conn, rsp);
net/bluetooth/smp.c
1666
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
1667
struct hci_dev *hdev = conn->hcon->hdev;
net/bluetooth/smp.c
1687
req->max_key_size = conn->hcon->enc_key_size;
net/bluetooth/smp.c
1697
rsp->max_key_size = conn->hcon->enc_key_size;
net/bluetooth/smp.c
1704
static u8 smp_cmd_pairing_req(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
1707
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
1708
struct hci_dev *hdev = conn->hcon->hdev;
net/bluetooth/smp.c
1713
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/smp.c
1722
smp = smp_chan_create(conn);
net/bluetooth/smp.c
1749
if (conn->hcon->type == ACL_LINK) {
net/bluetooth/smp.c
1751
if (!test_bit(HCI_CONN_AES_CCM, &conn->hcon->flags) &&
net/bluetooth/smp.c
1763
if (check_enc_key_size(conn, key_size))
net/bluetooth/smp.c
1771
smp_send_cmd(conn, SMP_CMD_PAIRING_RSP, sizeof(rsp), &rsp);
net/bluetooth/smp.c
1777
build_pairing_cmd(conn, req, &rsp, auth);
net/bluetooth/smp.c
1786
if (conn->hcon->io_capability == HCI_IO_NO_INPUT_OUTPUT)
net/bluetooth/smp.c
1791
if (sec_level > conn->hcon->pending_sec_level)
net/bluetooth/smp.c
1792
conn->hcon->pending_sec_level = sec_level;
net/bluetooth/smp.c
1795
if (conn->hcon->pending_sec_level >= BT_SECURITY_HIGH) {
net/bluetooth/smp.c
1798
method = get_auth_method(smp, conn->hcon->io_capability,
net/bluetooth/smp.c
1809
if (check_enc_key_size(conn, key_size))
net/bluetooth/smp.c
1817
smp_send_cmd(conn, SMP_CMD_PAIRING_RSP, sizeof(rsp), &rsp);
net/bluetooth/smp.c
1837
ret = tk_request(conn, 0, auth, rsp.io_capability, req->io_capability);
net/bluetooth/smp.c
1846
struct hci_dev *hdev = smp->conn->hcon->hdev;
net/bluetooth/smp.c
1892
smp_send_cmd(smp->conn, SMP_CMD_PUBLIC_KEY, 64, smp->local_pk);
net/bluetooth/smp.c
1897
static u8 smp_cmd_pairing_rsp(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
1900
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
1902
struct hci_dev *hdev = conn->hcon->hdev;
net/bluetooth/smp.c
1906
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/smp.c
1919
if (check_enc_key_size(conn, key_size))
net/bluetooth/smp.c
1946
if (conn->hcon->type == ACL_LINK) {
net/bluetooth/smp.c
1955
else if (conn->hcon->pending_sec_level > BT_SECURITY_HIGH)
net/bluetooth/smp.c
1956
conn->hcon->pending_sec_level = BT_SECURITY_HIGH;
net/bluetooth/smp.c
1959
if (conn->hcon->pending_sec_level >= BT_SECURITY_HIGH) {
net/bluetooth/smp.c
1984
ret = tk_request(conn, 0, auth, req->io_capability, rsp->io_capability);
net/bluetooth/smp.c
1999
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
2001
bt_dev_dbg(conn->hcon->hdev, "");
net/bluetooth/smp.c
2007
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM, sizeof(smp->prnd),
net/bluetooth/smp.c
2021
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
2022
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2046
if (tk_request(conn, 0, auth, rsp->io_capability, req->io_capability)) {
net/bluetooth/smp.c
2056
static u8 smp_cmd_pairing_confirm(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2058
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2060
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2063
bt_dev_dbg(hdev, "conn %p %s", conn,
net/bluetooth/smp.c
2088
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM, sizeof(smp->prnd),
net/bluetooth/smp.c
2102
static u8 smp_cmd_pairing_random(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2104
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2106
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2111
bt_dev_dbg(hcon->hdev, "conn %p", conn);
net/bluetooth/smp.c
2136
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM,
net/bluetooth/smp.c
2156
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM, sizeof(smp->prnd),
net/bluetooth/smp.c
2196
static bool smp_ltk_encrypt(struct l2cap_conn *conn, u8 sec_level)
net/bluetooth/smp.c
2199
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2247
if (smp->conn->hcon->type == ACL_LINK)
net/bluetooth/smp.c
2250
build_pairing_cmd(smp->conn, &cp, NULL, auth);
net/bluetooth/smp.c
2255
smp_send_cmd(smp->conn, SMP_CMD_PAIRING_REQ, sizeof(cp), &cp);
net/bluetooth/smp.c
2261
static u8 smp_cmd_security_req(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2264
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2269
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/smp.c
2292
smp_ltk_encrypt(conn, hcon->sec_level);
net/bluetooth/smp.c
2299
if (smp_ltk_encrypt(conn, hcon->pending_sec_level))
net/bluetooth/smp.c
2302
smp = smp_chan_create(conn);
net/bluetooth/smp.c
2322
smp_send_cmd(smp->conn, SMP_CMD_SECURITY_REQ, sizeof(cp), &cp);
net/bluetooth/smp.c
2330
struct l2cap_conn *conn = hcon->l2cap_data;
net/bluetooth/smp.c
2336
bt_dev_dbg(hcon->hdev, "conn %p hcon %p level 0x%2.2x", conn, hcon,
net/bluetooth/smp.c
2340
if (!conn)
net/bluetooth/smp.c
2353
if (smp_ltk_encrypt(conn, hcon->pending_sec_level))
net/bluetooth/smp.c
2356
chan = conn->smp;
net/bluetooth/smp.c
2370
smp = smp_chan_create(conn);
net/bluetooth/smp.c
2412
struct l2cap_conn *conn;
net/bluetooth/smp.c
2424
conn = hcon->l2cap_data;
net/bluetooth/smp.c
2425
if (!conn)
net/bluetooth/smp.c
2428
chan = conn->smp;
net/bluetooth/smp.c
2443
smp_failure(conn, 0);
net/bluetooth/smp.c
2445
smp_failure(conn, SMP_UNSPECIFIED);
net/bluetooth/smp.c
2455
static int smp_cmd_encrypt_info(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2458
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2461
bt_dev_dbg(conn->hcon->hdev, "conn %p", conn);
net/bluetooth/smp.c
2467
if (hci_is_blocked_key(conn->hcon->hdev, HCI_BLOCKED_KEY_TYPE_LTK,
net/bluetooth/smp.c
2469
bt_dev_warn_ratelimited(conn->hcon->hdev,
net/bluetooth/smp.c
2471
&conn->hcon->dst);
net/bluetooth/smp.c
2484
static int smp_cmd_initiator_ident(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2487
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2489
struct hci_dev *hdev = conn->hcon->hdev;
net/bluetooth/smp.c
2490
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2494
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/smp.c
2520
static int smp_cmd_ident_info(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2523
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2526
bt_dev_dbg(conn->hcon->hdev, "");
net/bluetooth/smp.c
2532
if (hci_is_blocked_key(conn->hcon->hdev, HCI_BLOCKED_KEY_TYPE_IRK,
net/bluetooth/smp.c
2534
bt_dev_warn_ratelimited(conn->hcon->hdev,
net/bluetooth/smp.c
2536
&conn->hcon->dst);
net/bluetooth/smp.c
2549
static int smp_cmd_ident_addr_info(struct l2cap_conn *conn,
net/bluetooth/smp.c
2553
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2555
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2608
smp->remote_irk = hci_add_irk(conn->hcon->hdev, &smp->id_addr,
net/bluetooth/smp.c
2618
static int smp_cmd_sign_info(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2621
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2625
bt_dev_dbg(conn->hcon->hdev, "conn %p", conn);
net/bluetooth/smp.c
2637
if (conn->hcon->sec_level > BT_SECURITY_MEDIUM)
net/bluetooth/smp.c
2692
static int smp_cmd_public_key(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2695
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2696
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2703
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/smp.c
2795
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM,
net/bluetooth/smp.c
2826
smp_send_cmd(conn, SMP_CMD_PAIRING_CONFIRM, sizeof(cfm), &cfm);
net/bluetooth/smp.c
2832
static int smp_cmd_dhkey_check(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2835
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2836
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2842
bt_dev_dbg(hcon->hdev, "conn %p", conn);
net/bluetooth/smp.c
2897
static int smp_cmd_keypress_notify(struct l2cap_conn *conn,
net/bluetooth/smp.c
2902
bt_dev_dbg(conn->hcon->hdev, "value 0x%02x", kp->value);
net/bluetooth/smp.c
2909
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
2910
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2945
smp_failure(conn, SMP_KEY_REJECTED);
net/bluetooth/smp.c
2959
reason = smp_cmd_pairing_req(conn, skb);
net/bluetooth/smp.c
2963
smp_failure(conn, 0);
net/bluetooth/smp.c
2968
reason = smp_cmd_pairing_rsp(conn, skb);
net/bluetooth/smp.c
2972
reason = smp_cmd_security_req(conn, skb);
net/bluetooth/smp.c
2976
reason = smp_cmd_pairing_confirm(conn, skb);
net/bluetooth/smp.c
2980
reason = smp_cmd_pairing_random(conn, skb);
net/bluetooth/smp.c
2984
reason = smp_cmd_encrypt_info(conn, skb);
net/bluetooth/smp.c
2988
reason = smp_cmd_initiator_ident(conn, skb);
net/bluetooth/smp.c
2992
reason = smp_cmd_ident_info(conn, skb);
net/bluetooth/smp.c
2996
reason = smp_cmd_ident_addr_info(conn, skb);
net/bluetooth/smp.c
3000
reason = smp_cmd_sign_info(conn, skb);
net/bluetooth/smp.c
3004
reason = smp_cmd_public_key(conn, skb);
net/bluetooth/smp.c
3008
reason = smp_cmd_dhkey_check(conn, skb);
net/bluetooth/smp.c
3012
reason = smp_cmd_keypress_notify(conn, skb);
net/bluetooth/smp.c
3024
smp_failure(conn, reason);
net/bluetooth/smp.c
3039
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
3041
bt_dev_dbg(conn->hcon->hdev, "chan %p", chan);
net/bluetooth/smp.c
3044
smp_chan_destroy(conn);
net/bluetooth/smp.c
3046
conn->smp = NULL;
net/bluetooth/smp.c
3052
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
3053
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
3089
if (!(conn->remote_fixed_chan & L2CAP_FC_SMP_BREDR))
net/bluetooth/smp.c
3096
smp = smp_chan_create(conn);
net/bluetooth/smp.c
3112
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
3113
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
3135
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
3136
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
3146
conn->smp = chan;
net/bluetooth/smp.c
3156
bt_dev_dbg(chan->conn->hcon->hdev, "chan %p", chan);
net/bluetooth/smp.c
3165
hci_disconnect(chan->conn->hcon, HCI_ERROR_AUTH_FAILURE);
net/bluetooth/smp.c
567
static void smp_send_cmd(struct l2cap_conn *conn, u8 code, u16 len, void *data)
net/bluetooth/smp.c
569
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
577
bt_dev_dbg(conn->hcon->hdev, "code 0x%2.2x", code);
net/bluetooth/smp.c
625
static void build_pairing_cmd(struct l2cap_conn *conn,
net/bluetooth/smp.c
629
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
631
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
680
req->io_capability = conn->hcon->io_capability;
net/bluetooth/smp.c
691
rsp->io_capability = conn->hcon->io_capability;
net/bluetooth/smp.c
701
static u8 check_enc_key_size(struct l2cap_conn *conn, __u8 max_key_size)
net/bluetooth/smp.c
703
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
704
struct hci_dev *hdev = conn->hcon->hdev;
net/bluetooth/smp.c
707
if (conn->hcon->pending_sec_level == BT_SECURITY_FIPS &&
net/bluetooth/smp.c
720
static void smp_chan_destroy(struct l2cap_conn *conn)
net/bluetooth/smp.c
722
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
724
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
773
static void smp_failure(struct l2cap_conn *conn, u8 reason)
net/bluetooth/smp.c
775
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
776
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
779
smp_send_cmd(conn, SMP_CMD_PAIRING_FAIL, sizeof(reason),
net/bluetooth/smp.c
785
smp_chan_destroy(conn);
net/bluetooth/smp.c
827
static int tk_request(struct l2cap_conn *conn, u8 remote_oob, u8 auth,
net/bluetooth/smp.c
830
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
831
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
927
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
93
struct l2cap_conn *conn;
net/bluetooth/smp.c
931
bt_dev_dbg(conn->hcon->hdev, "conn %p", conn);
net/bluetooth/smp.c
934
conn->hcon->init_addr_type, &conn->hcon->init_addr,
net/bluetooth/smp.c
935
conn->hcon->resp_addr_type, &conn->hcon->resp_addr,
net/bluetooth/smp.c
942
smp_send_cmd(smp->conn, SMP_CMD_PAIRING_CONFIRM, sizeof(cp), &cp);
net/bluetooth/smp.c
954
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
955
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
959
bt_dev_dbg(conn->hcon->hdev, "conn %p %s", conn,
net/bluetooth/smp.c
993
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM, sizeof(smp->prnd),
net/bluetooth/smp.h
187
int smp_user_confirm_reply(struct hci_conn *conn, u16 mgmt_op, __le32 passkey);
net/mac80211/ibss.c
745
struct ieee80211_conn_settings conn = {
net/mac80211/ibss.c
755
conn.mode = IEEE80211_CONN_MODE_LEGACY;
net/mac80211/ibss.c
758
conn.bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/ibss.c
770
vht_cap_info, &conn,
net/mac80211/ieee80211_i.h
1037
struct ieee80211_conn_settings conn;
net/mac80211/ieee80211_i.h
2427
struct ieee80211_conn_settings *conn,
net/mac80211/ieee80211_i.h
2765
const struct ieee80211_conn_settings *conn);
net/mac80211/ieee80211_i.h
2772
const struct ieee80211_conn_settings *conn);
net/mac80211/ieee80211_i.h
2796
struct ieee80211_conn_settings *conn);
net/mac80211/ieee80211_i.h
2799
struct ieee80211_conn_settings *conn)
net/mac80211/ieee80211_i.h
2801
ieee80211_chandef_downgrade(&chanreq->oper, conn);
net/mac80211/ieee80211_i.h
2802
if (WARN_ON(!conn))
net/mac80211/ieee80211_i.h
2804
if (conn->mode < IEEE80211_CONN_MODE_EHT)
net/mac80211/ieee80211_i.h
2806
conn->dbe_enabled = false;
net/mac80211/ieee80211_i.h
2996
struct ieee80211_conn_settings *conn,
net/mac80211/ieee80211_i.h
456
struct ieee80211_conn_settings conn;
net/mac80211/mesh.c
1267
struct ieee80211_conn_settings conn = ieee80211_conn_settings_unlimited;
net/mac80211/mesh.c
1278
conn.mode = IEEE80211_CONN_MODE_LEGACY;
net/mac80211/mesh.c
1279
conn.bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mesh.c
1282
conn.mode = IEEE80211_CONN_MODE_HT;
net/mac80211/mesh.c
1283
conn.bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mesh.c
1286
conn.mode = IEEE80211_CONN_MODE_HT;
net/mac80211/mesh.c
1287
conn.bw_limit = IEEE80211_CONN_BW_LIMIT_40;
net/mac80211/mesh.c
1299
vht_cap_info, &conn,
net/mac80211/mlme.c
10012
&conn);
net/mac80211/mlme.c
10016
&conn, false,
net/mac80211/mlme.c
10060
struct ieee80211_conn_settings *conn,
net/mac80211/mlme.c
10104
if (conn->mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
10190
if (assoc_data->link[link_id].conn.mode < IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
10205
if (assoc_data->link[link_id].conn.mode < IEEE80211_CONN_MODE_VHT)
net/mac80211/mlme.c
10422
assoc_data->link[i].conn = link->u.mgd.conn;
net/mac80211/mlme.c
10424
assoc_data->link[i].conn =
net/mac80211/mlme.c
10428
&assoc_data->link[i].conn);
net/mac80211/mlme.c
10434
if (assoc_data->link[i].conn.mode < IEEE80211_CONN_MODE_EHT) {
net/mac80211/mlme.c
10473
assoc_data->link[0].conn = sdata->deflink.u.mgd.conn;
net/mac80211/mlme.c
10475
assoc_data->link[0].conn =
net/mac80211/mlme.c
10479
&assoc_data->link[0].conn);
net/mac80211/mlme.c
10546
override = link->u.mgd.conn.mode !=
net/mac80211/mlme.c
10547
assoc_data->link[assoc_link_id].conn.mode ||
net/mac80211/mlme.c
10548
link->u.mgd.conn.bw_limit !=
net/mac80211/mlme.c
10549
assoc_data->link[assoc_link_id].conn.bw_limit;
net/mac80211/mlme.c
10550
link->u.mgd.conn = assoc_data->link[assoc_link_id].conn;
net/mac80211/mlme.c
10552
ieee80211_setup_assoc_link(sdata, assoc_data, req, &link->u.mgd.conn,
net/mac80211/mlme.c
10607
&assoc_data->link[i].conn,
net/mac80211/mlme.c
10623
&assoc_data->link[assoc_link_id].conn,
net/mac80211/mlme.c
11035
link->u.mgd.conn = add_links_data->link[link_id].conn;
net/mac80211/mlme.c
11037
true, &link->u.mgd.conn,
net/mac80211/mlme.c
11407
data->link[link_id].conn =
net/mac80211/mlme.c
11414
&data->link[link_id].conn);
net/mac80211/mlme.c
11425
if (data->link[link_id].conn.mode <
net/mac80211/mlme.c
11456
&data->link[link_id].conn,
net/mac80211/mlme.c
1160
struct ieee80211_conn_settings *conn,
net/mac80211/mlme.c
1165
if (conn->mode < IEEE80211_CONN_MODE_EHT)
net/mac80211/mlme.c
1175
struct ieee80211_conn_settings *conn,
net/mac80211/mlme.c
1213
.conn = conn,
net/mac80211/mlme.c
1218
parse_params.mode = conn->mode;
net/mac80211/mlme.c
1226
conn->dbe_enabled = ap_chan_out.dbe_used;
net/mac80211/mlme.c
1229
if (WARN_ON(ap_mode > conn->mode)) {
net/mac80211/mlme.c
1234
if (conn->mode != ap_mode) {
net/mac80211/mlme.c
1235
conn->mode = ap_mode;
net/mac80211/mlme.c
1286
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mlme.c
1289
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1290
conn->bw_limit,
net/mac80211/mlme.c
1295
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1296
conn->bw_limit,
net/mac80211/mlme.c
1301
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1302
conn->bw_limit,
net/mac80211/mlme.c
1310
if (conn->mode >= IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
1312
if (conn->mode >= IEEE80211_CONN_MODE_VHT)
net/mac80211/mlme.c
1314
if (conn->mode >= IEEE80211_CONN_MODE_HE)
net/mac80211/mlme.c
1316
if (conn->mode >= IEEE80211_CONN_MODE_EHT)
net/mac80211/mlme.c
1318
if (conn->mode >= IEEE80211_CONN_MODE_UHR)
net/mac80211/mlme.c
1334
ieee80211_set_chanreq_ap(sdata, chanreq, conn, ap_chandef);
net/mac80211/mlme.c
1346
ieee80211_chanreq_downgrade(chanreq, conn);
net/mac80211/mlme.c
1349
if (conn->mode >= IEEE80211_CONN_MODE_HE &&
net/mac80211/mlme.c
1352
conn->mode = IEEE80211_CONN_MODE_VHT;
net/mac80211/mlme.c
1353
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1354
conn->bw_limit,
net/mac80211/mlme.c
1358
if (conn->mode >= IEEE80211_CONN_MODE_EHT &&
net/mac80211/mlme.c
1361
conn->mode = IEEE80211_CONN_MODE_HE;
net/mac80211/mlme.c
1362
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1363
conn->bw_limit,
net/mac80211/mlme.c
1367
if (conn->mode >= IEEE80211_CONN_MODE_UHR &&
net/mac80211/mlme.c
1370
conn->mode = IEEE80211_CONN_MODE_EHT;
net/mac80211/mlme.c
1372
if (chanreq->oper.width != ap_chandef->width || ap_mode != conn->mode)
net/mac80211/mlme.c
1376
if (conn->mode >= IEEE80211_CONN_MODE_HT &&
net/mac80211/mlme.c
1379
conn->mode = IEEE80211_CONN_MODE_LEGACY;
net/mac80211/mlme.c
1380
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mlme.c
1385
if (conn->mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
1388
conn->mode = IEEE80211_CONN_MODE_HT;
net/mac80211/mlme.c
1389
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1390
conn->bw_limit,
net/mac80211/mlme.c
1396
if (conn->mode >= IEEE80211_CONN_MODE_HE &&
net/mac80211/mlme.c
1402
conn->mode = IEEE80211_CONN_MODE_VHT;
net/mac80211/mlme.c
1407
if (conn->mode >= IEEE80211_CONN_MODE_EHT &&
net/mac80211/mlme.c
1410
conn->mode = IEEE80211_CONN_MODE_HE;
net/mac80211/mlme.c
1411
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1412
conn->bw_limit,
net/mac80211/mlme.c
1418
if (conn->mode >= IEEE80211_CONN_MODE_EHT &&
net/mac80211/mlme.c
1420
conn->bw_limit == IEEE80211_CONN_BW_LIMIT_40) {
net/mac80211/mlme.c
1421
conn->mode = IEEE80211_CONN_MODE_HE;
net/mac80211/mlme.c
1427
if (ap_mode != conn->mode) {
net/mac80211/mlme.c
1434
ieee80211_conn_mode_str(conn->mode),
net/mac80211/mlme.c
1435
20 * (1 << conn->bw_limit));
net/mac80211/mlme.c
1442
if (conn->dbe_enabled && link_sta)
net/mac80211/mlme.c
1474
if (link->u.mgd.conn.dbe_enabled) {
net/mac80211/mlme.c
1576
if (link->u.mgd.conn.dbe_enabled)
net/mac80211/mlme.c
1605
.conn = &link->u.mgd.conn,
net/mac80211/mlme.c
1607
.cur_dbe_used = link->u.mgd.conn.dbe_enabled,
net/mac80211/mlme.c
1636
if (link->u.mgd.conn.mode == IEEE80211_CONN_MODE_LEGACY ||
net/mac80211/mlme.c
1637
link->u.mgd.conn.mode == IEEE80211_CONN_MODE_S1G)
net/mac80211/mlme.c
1646
link->u.mgd.conn.dbe_enabled = ap_chan_out.dbe_used;
net/mac80211/mlme.c
1648
if (ap_mode != link->u.mgd.conn.mode) {
net/mac80211/mlme.c
1652
ieee80211_conn_mode_str(link->u.mgd.conn.mode),
net/mac80211/mlme.c
1658
ieee80211_set_chanreq_ap(sdata, &chanreq, &link->u.mgd.conn,
net/mac80211/mlme.c
1680
while (link->u.mgd.conn.bw_limit <
net/mac80211/mlme.c
1687
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
171
const struct ieee80211_conn_settings *conn;
net/mac80211/mlme.c
1819
const struct ieee80211_conn_settings *conn)
net/mac80211/mlme.c
1854
if (conn->bw_limit <= IEEE80211_CONN_BW_LIMIT_20) {
net/mac80211/mlme.c
1893
const struct ieee80211_conn_settings *conn)
net/mac80211/mlme.c
1910
if (conn->bw_limit <= IEEE80211_CONN_BW_LIMIT_80) {
net/mac80211/mlme.c
200
const struct ieee80211_conn_settings *conn = data->conn;
net/mac80211/mlme.c
2264
assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
2268
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
2278
assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
2283
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
2295
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
2297
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
2324
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_EHT)
net/mac80211/mlme.c
2326
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_UHR)
net/mac80211/mlme.c
2336
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_EHT)
net/mac80211/mlme.c
2338
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
2340
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_UHR)
net/mac80211/mlme.c
238
if (conn->mode < IEEE80211_CONN_MODE_HE)
net/mac80211/mlme.c
2674
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE &&
net/mac80211/mlme.c
2719
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_EHT &&
net/mac80211/mlme.c
282
if (conn->mode < IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
2911
link->u.mgd.conn.dbe_enabled = false;
net/mac80211/mlme.c
2985
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
3031
link->u.mgd.conn.dbe_enabled = false;
net/mac80211/mlme.c
310
if (conn->mode < IEEE80211_CONN_MODE_VHT)
net/mac80211/mlme.c
3265
&link->u.mgd.conn,
net/mac80211/mlme.c
3449
ieee80211_set_chanreq_ap(sdata, &link->csa.chanreq, &link->u.mgd.conn,
net/mac80211/mlme.c
362
if (conn->mode < IEEE80211_CONN_MODE_HE ||
net/mac80211/mlme.c
370
if (conn->mode < IEEE80211_CONN_MODE_EHT ||
net/mac80211/mlme.c
404
if (conn->mode < IEEE80211_CONN_MODE_UHR || !uhr_oper || !elems->ml_basic)
net/mac80211/mlme.c
5116
if (!link->u.mgd.conn.dbe_enabled)
net/mac80211/mlme.c
5863
.mode = link->u.mgd.conn.mode,
net/mac80211/mlme.c
5952
(link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT &&
net/mac80211/mlme.c
5954
(is_5ghz && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
5992
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
5998
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
6006
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT) {
net/mac80211/mlme.c
6013
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT) {
net/mac80211/mlme.c
6028
if (!is_6ghz && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT &&
net/mac80211/mlme.c
6036
if (is_5ghz && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
6061
if (elems->ht_cap_elem && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
6067
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT) {
net/mac80211/mlme.c
6105
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE &&
net/mac80211/mlme.c
6126
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_EHT) {
net/mac80211/mlme.c
6159
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_UHR) {
net/mac80211/mlme.c
6186
link->u.mgd.conn.mode == IEEE80211_CONN_MODE_S1G &&
net/mac80211/mlme.c
6373
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
6386
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_VHT)
net/mac80211/mlme.c
6405
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_HE)
net/mac80211/mlme.c
6461
struct ieee80211_conn_settings *conn)
net/mac80211/mlme.c
6472
conn->mode = IEEE80211_CONN_MODE_S1G;
net/mac80211/mlme.c
6473
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mlme.c
6478
conn->mode = IEEE80211_CONN_MODE_LEGACY;
net/mac80211/mlme.c
6479
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mlme.c
6516
conn->mode = IEEE80211_CONN_MODE_HT;
net/mac80211/mlme.c
6517
conn->bw_limit = sta_ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40 ?
net/mac80211/mlme.c
6534
if (conn->bw_limit == IEEE80211_CONN_BW_LIMIT_20) {
net/mac80211/mlme.c
6563
conn->mode = IEEE80211_CONN_MODE_VHT;
net/mac80211/mlme.c
6564
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_160;
net/mac80211/mlme.c
6571
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_80;
net/mac80211/mlme.c
6591
conn->mode = IEEE80211_CONN_MODE_HE;
net/mac80211/mlme.c
6600
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mlme.c
6607
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mlme.c
6614
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
6615
conn->bw_limit,
net/mac80211/mlme.c
6625
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
6626
conn->bw_limit,
net/mac80211/mlme.c
6645
conn->mode = IEEE80211_CONN_MODE_EHT;
net/mac80211/mlme.c
6650
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_320;
net/mac80211/mlme.c
6667
conn->mode = IEEE80211_CONN_MODE_UHR;
net/mac80211/mlme.c
6672
ieee80211_conn_mode_str(conn->mode),
net/mac80211/mlme.c
6673
20 * (1 << conn->bw_limit));
net/mac80211/mlme.c
6681
struct ieee80211_conn_settings *conn)
net/mac80211/mlme.c
6685
conn);
net/mac80211/mlme.c
6693
struct ieee80211_conn_settings *conn)
net/mac80211/mlme.c
6702
conn->mode = min_t(enum ieee80211_conn_mode,
net/mac80211/mlme.c
6703
conn->mode, tmp.mode);
net/mac80211/mlme.c
6704
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
6705
conn->bw_limit, tmp.bw_limit);
net/mac80211/mlme.c
6713
struct ieee80211_conn_settings *conn,
net/mac80211/mlme.c
6726
elems = ieee80211_determine_chan_mode(sdata, conn, cbss,
net/mac80211/mlme.c
6743
if (link && is_6ghz && conn->mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
6789
ieee80211_chanreq_downgrade(&chanreq, conn);
net/mac80211/mlme.c
7045
link->u.mgd.conn = assoc_data->link[link_id].conn;
net/mac80211/mlme.c
7049
true, &link->u.mgd.conn,
net/mac80211/mlme.c
7176
assoc_data->link[assoc_data->assoc_link_id].conn.mode;
net/mac80211/mlme.c
8083
.mode = link->u.mgd.conn.mode,
net/mac80211/mlme.c
9547
struct ieee80211_conn_settings *conn,
net/mac80211/mlme.c
9697
link->u.mgd.conn = *conn;
net/mac80211/mlme.c
9710
mlo, &link->u.mgd.conn,
net/mac80211/mlme.c
9718
*conn = link->u.mgd.conn;
net/mac80211/mlme.c
9852
struct ieee80211_conn_settings conn;
net/mac80211/spectmgmt.c
104
if (conn->mode < IEEE80211_CONN_MODE_VHT)
net/mac80211/spectmgmt.c
144
struct ieee80211_conn_settings *conn,
net/mac80211/spectmgmt.c
160
if (conn->mode < IEEE80211_CONN_MODE_HE) {
net/mac80211/spectmgmt.c
206
if (conn->mode < IEEE80211_CONN_MODE_EHT) {
net/mac80211/spectmgmt.c
224
struct ieee80211_conn_settings *conn,
net/mac80211/spectmgmt.c
246
if (conn->mode < IEEE80211_CONN_MODE_HT ||
net/mac80211/spectmgmt.c
247
conn->bw_limit < IEEE80211_CONN_BW_LIMIT_40) {
net/mac80211/spectmgmt.c
252
if (conn->mode < IEEE80211_CONN_MODE_VHT)
net/mac80211/spectmgmt.c
306
} else if (conn->mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/spectmgmt.c
359
validate_chandef_by_6ghz_he_eht_oper(sdata, conn, &new_chandef);
net/mac80211/spectmgmt.c
361
validate_chandef_by_ht_vht_oper(sdata, conn, vht_cap_info,
net/mac80211/spectmgmt.c
369
while (conn->bw_limit <
net/mac80211/spectmgmt.c
74
struct ieee80211_conn_settings *conn,
net/mac80211/spectmgmt.c
83
if (conn->mode < IEEE80211_CONN_MODE_HT ||
net/mac80211/spectmgmt.c
84
conn->bw_limit < IEEE80211_CONN_BW_LIMIT_40) {
net/mac80211/tdls.c
1392
if (sdata->deflink.u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT)
net/mac80211/tests/chan-mode.c
152
struct ieee80211_conn_settings conn = {
net/mac80211/tests/chan-mode.c
245
elems = ieee80211_determine_chan_mode(t_sdata->sdata, &conn, &cbss,
net/mac80211/tests/chan-mode.c
259
KUNIT_ASSERT_EQ(test, conn.mode, params->expected_mode);
net/mac80211/tests/chan-mode.c
260
KUNIT_ASSERT_EQ(test, conn.bw_limit, params->expected_bw_limit);
net/mac80211/util.c
2593
ieee80211_get_adjusted_he_cap(const struct ieee80211_conn_settings *conn,
net/mac80211/util.c
2601
switch (conn->bw_limit) {
net/mac80211/util.c
2621
if (conn->bw_limit < IEEE80211_CONN_BW_LIMIT_40) {
net/mac80211/util.c
2629
if (conn->bw_limit < IEEE80211_CONN_BW_LIMIT_160) {
net/mac80211/util.c
2644
const struct ieee80211_conn_settings *conn)
net/mac80211/util.c
2652
if (!conn)
net/mac80211/util.c
2653
conn = &ieee80211_conn_settings_unlimited;
net/mac80211/util.c
2660
ieee80211_get_adjusted_he_cap(conn, he_cap, &elem);
net/mac80211/util.c
3761
struct ieee80211_conn_settings *conn)
net/mac80211/util.c
3767
if (!conn)
net/mac80211/util.c
3768
conn = &_ignored;
net/mac80211/util.c
3781
conn->mode = IEEE80211_CONN_MODE_LEGACY;
net/mac80211/util.c
3782
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/util.c
3788
if (conn->mode == IEEE80211_CONN_MODE_VHT)
net/mac80211/util.c
3789
conn->mode = IEEE80211_CONN_MODE_HT;
net/mac80211/util.c
3790
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/util.c
3795
if (conn->mode == IEEE80211_CONN_MODE_VHT)
net/mac80211/util.c
3796
conn->mode = IEEE80211_CONN_MODE_HT;
net/mac80211/util.c
3797
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_40;
net/mac80211/util.c
3802
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_80;
net/mac80211/util.c
3806
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_80;
net/mac80211/util.c
3810
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_160;
net/mac80211/util.c
3819
conn->mode = IEEE80211_CONN_MODE_S1G;
net/mac80211/util.c
3820
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/util.c
4550
const struct ieee80211_conn_settings *conn)
net/mac80211/util.c
4563
if (!conn)
net/mac80211/util.c
4564
conn = &ieee80211_conn_settings_unlimited;
net/mac80211/util.c
4574
ieee80211_get_adjusted_he_cap(conn, he_cap, &he);
net/mac80211/util.c
4578
if (conn->bw_limit < IEEE80211_CONN_BW_LIMIT_80)
net/mac80211/util.c
4582
if (conn->bw_limit < IEEE80211_CONN_BW_LIMIT_160) {
net/mac80211/util.c
4591
if (conn->bw_limit < IEEE80211_CONN_BW_LIMIT_320) {
net/mac80211/util.c
4602
if (conn->bw_limit == IEEE80211_CONN_BW_LIMIT_20)
net/mptcp/bpf.c
18
return mptcp_sk(mptcp_subflow_ctx(sk)->conn);
net/mptcp/ctrl.c
558
mptcp_early_fallback(mptcp_sk(subflow->conn), subflow,
net/mptcp/fastopen.c
24
sk = subflow->conn;
net/mptcp/mptcp_diag.c
107
sk = ctx->conn;
net/mptcp/options.c
1136
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
1146
mptcp_data_lock(subflow->conn);
net/mptcp/options.c
1148
__mptcp_check_push(subflow->conn, sk);
net/mptcp/options.c
1155
__mptcp_data_acked(subflow->conn);
net/mptcp/options.c
1156
mptcp_data_unlock(subflow->conn);
net/mptcp/options.c
1342
msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
1449
msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
454
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
539
u64 data_fin_tx_seq = READ_ONCE(mptcp_sk(subflow->conn)->write_seq) - 1;
net/mptcp/options.c
566
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
663
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
702
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
768
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
812
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/pm.c
695
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/pm.c
855
struct sock *sk = subflow->conn;
net/mptcp/pm.c
869
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/pm_netlink.c
469
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/protocol.c
3760
struct sock *sk = subflow->conn;
net/mptcp/protocol.c
3814
sk = subflow->conn;
net/mptcp/protocol.c
3859
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/protocol.c
4261
new_mptcp_sock = subflow->conn;
net/mptcp/protocol.h
1288
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/protocol.h
1307
struct sock *sk = subflow->conn;
net/mptcp/protocol.h
623
struct sock *conn; /* parent mptcp_sock */
net/mptcp/subflow.c
1198
WRITE_ONCE(mptcp_sk(subflow->conn)->use_64bit_ack, !!mpext->dsn64);
net/mptcp/subflow.c
1364
msk = mptcp_sk(subflow->conn);
net/mptcp/subflow.c
1481
const struct sock *sk = subflow->conn;
net/mptcp/subflow.c
1489
struct sock *sk = mptcp_subflow_ctx(ssk)->conn;
net/mptcp/subflow.c
1510
struct sock *parent = subflow->conn;
net/mptcp/subflow.c
1546
struct sock *sk = mptcp_subflow_ctx(ssk)->conn;
net/mptcp/subflow.c
1830
subflow->conn = sk;
net/mptcp/subflow.c
1877
struct sock *parent = subflow->conn;
net/mptcp/subflow.c
1925
if (!subflow || !subflow->conn)
net/mptcp/subflow.c
1928
sk = subflow->conn;
net/mptcp/subflow.c
2013
sk = ctx->conn;
net/mptcp/subflow.c
433
struct sock *sk = subflow->conn;
net/mptcp/subflow.c
530
struct sock *parent = subflow->conn;
net/mptcp/subflow.c
633
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/subflow.c
790
if (ctx->conn)
net/mptcp/subflow.c
791
sock_put(ctx->conn);
net/mptcp/subflow.c
823
pr_debug("listener=%p, req=%p, conn=%p\n", listener, req, listener->conn);
net/mptcp/subflow.c
883
ctx->conn = mptcp_sk_clone_init(listener->conn, &mp_opt, child, req);
net/mptcp/subflow.c
884
if (!ctx->conn)
net/mptcp/subflow.c
888
owner = mptcp_sk(ctx->conn);
net/mptcp/subflow.c
923
ctx->conn = (struct sock *)owner;
net/mptcp/subflow.c
954
!mptcp_subflow_ctx(child)->conn));
net/mptcp/token.c
154
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/token.c
156
struct sock *sk = subflow->conn;
net/mptcp/token_test.c
80
ctx->conn = (struct sock *)msk;
net/netfilter/nf_conncount.c
103
struct nf_conncount_tuple *conn)
net/netfilter/nf_conncount.c
110
found = nf_conntrack_find_get(net, &conn->zone, &conn->tuple);
net/netfilter/nf_conncount.c
113
b = conn->jiffies32;
net/netfilter/nf_conncount.c
122
if (conn->cpu == cpu || age >= 2) {
net/netfilter/nf_conncount.c
123
conn_free(list, conn);
net/netfilter/nf_conncount.c
174
struct nf_conncount_tuple *conn, *conn_n;
net/netfilter/nf_conncount.c
205
list_for_each_entry_safe(conn, conn_n, &list->head, node) {
net/netfilter/nf_conncount.c
209
found = find_or_evict(net, list, conn);
net/netfilter/nf_conncount.c
213
if (nf_ct_tuple_equal(&conn->tuple, &tuple) &&
net/netfilter/nf_conncount.c
214
nf_ct_zone_id(&conn->zone, IP_CT_DIR_ORIGINAL) ==
net/netfilter/nf_conncount.c
225
if (nf_ct_tuple_equal(&conn->tuple, &tuple) &&
net/netfilter/nf_conncount.c
241
conn_free(list, conn);
net/netfilter/nf_conncount.c
257
conn = kmem_cache_alloc(conncount_conn_cachep, GFP_ATOMIC);
net/netfilter/nf_conncount.c
258
if (conn == NULL) {
net/netfilter/nf_conncount.c
263
conn->tuple = tuple;
net/netfilter/nf_conncount.c
264
conn->zone = *zone;
net/netfilter/nf_conncount.c
265
conn->cpu = raw_smp_processor_id();
net/netfilter/nf_conncount.c
266
conn->jiffies32 = (u32)jiffies;
net/netfilter/nf_conncount.c
267
list_add_tail(&conn->node, &list->head);
net/netfilter/nf_conncount.c
307
struct nf_conncount_tuple *conn, *conn_n;
net/netfilter/nf_conncount.c
316
list_for_each_entry_safe(conn, conn_n, &list->head, node) {
net/netfilter/nf_conncount.c
317
found = find_or_evict(net, list, conn);
net/netfilter/nf_conncount.c
331
conn_free(list, conn);
net/netfilter/nf_conncount.c
415
struct nf_conncount_tuple *conn;
net/netfilter/nf_conncount.c
466
conn = kmem_cache_alloc(conncount_conn_cachep, GFP_ATOMIC);
net/netfilter/nf_conncount.c
467
if (conn == NULL) {
net/netfilter/nf_conncount.c
472
conn->tuple = tuple;
net/netfilter/nf_conncount.c
473
conn->zone = *zone;
net/netfilter/nf_conncount.c
474
conn->cpu = raw_smp_processor_id();
net/netfilter/nf_conncount.c
475
conn->jiffies32 = (u32)jiffies;
net/netfilter/nf_conncount.c
479
list_add(&conn->node, &rbconn->list.head);
net/netfilter/nf_conncount.c
710
struct nf_conncount_tuple *conn, *conn_n;
net/netfilter/nf_conncount.c
712
list_for_each_entry_safe(conn, conn_n, &list->head, node)
net/netfilter/nf_conncount.c
713
kmem_cache_free(conncount_conn_cachep, conn);
net/netfilter/nf_conncount.c
76
static inline bool already_closed(const struct nf_conn *conn)
net/netfilter/nf_conncount.c
78
if (nf_ct_protonum(conn) == IPPROTO_TCP)
net/netfilter/nf_conncount.c
79
return conn->proto.tcp.state == TCP_CONNTRACK_TIME_WAIT ||
net/netfilter/nf_conncount.c
80
conn->proto.tcp.state == TCP_CONNTRACK_CLOSE;
net/netfilter/nf_conncount.c
91
struct nf_conncount_tuple *conn)
net/netfilter/nf_conncount.c
96
list_del(&conn->node);
net/netfilter/nf_conncount.c
98
kmem_cache_free(conncount_conn_cachep, conn);
net/rds/cong.c
186
void rds_cong_add_conn(struct rds_connection *conn)
net/rds/cong.c
190
rdsdebug("conn %p now on map %p\n", conn, conn->c_lcong);
net/rds/cong.c
192
list_add_tail(&conn->c_map_item, &conn->c_lcong->m_conn_list);
net/rds/cong.c
196
void rds_cong_remove_conn(struct rds_connection *conn)
net/rds/cong.c
200
rdsdebug("removing conn %p from map %p\n", conn, conn->c_lcong);
net/rds/cong.c
202
list_del_init(&conn->c_map_item);
net/rds/cong.c
206
int rds_cong_get_maps(struct rds_connection *conn)
net/rds/cong.c
208
conn->c_lcong = rds_cong_from_addr(&conn->c_laddr);
net/rds/cong.c
209
conn->c_fcong = rds_cong_from_addr(&conn->c_faddr);
net/rds/cong.c
211
if (!(conn->c_lcong && conn->c_fcong))
net/rds/cong.c
219
struct rds_connection *conn;
net/rds/cong.c
224
list_for_each_entry(conn, &map->m_conn_list, c_map_item) {
net/rds/cong.c
225
struct rds_conn_path *cp = &conn->c_path[0];
net/rds/cong.c
228
if (!test_and_set_bit(0, &conn->c_map_queued) &&
net/rds/cong.c
418
struct rds_message *rds_cong_update_alloc(struct rds_connection *conn)
net/rds/cong.c
420
struct rds_cong_map *map = conn->c_lcong;
net/rds/connection.c
116
struct rds_connection *conn = cp->cp_conn;
net/rds/connection.c
119
&conn->c_laddr, &conn->c_faddr);
net/rds/connection.c
131
static void __rds_conn_path_init(struct rds_connection *conn,
net/rds/connection.c
140
cp->cp_conn = conn;
net/rds/connection.c
169
struct rds_connection *conn, *parent = NULL;
net/rds/connection.c
178
conn = rds_conn_lookup(net, head, laddr, faddr, trans, tos, dev_if);
net/rds/connection.c
179
if (conn &&
net/rds/connection.c
180
conn->c_loopback &&
net/rds/connection.c
181
conn->c_trans != &rds_loop_transport &&
net/rds/connection.c
188
parent = conn;
net/rds/connection.c
189
conn = parent->c_passive;
net/rds/connection.c
192
if (conn)
net/rds/connection.c
195
conn = kmem_cache_zalloc(rds_conn_slab, gfp);
net/rds/connection.c
196
if (!conn) {
net/rds/connection.c
197
conn = ERR_PTR(-ENOMEM);
net/rds/connection.c
200
conn->c_path = kzalloc_objs(struct rds_conn_path, npaths, gfp);
net/rds/connection.c
201
if (!conn->c_path) {
net/rds/connection.c
202
kmem_cache_free(rds_conn_slab, conn);
net/rds/connection.c
203
conn = ERR_PTR(-ENOMEM);
net/rds/connection.c
207
INIT_HLIST_NODE(&conn->c_hash_node);
net/rds/connection.c
208
conn->c_laddr = *laddr;
net/rds/connection.c
209
conn->c_isv6 = !ipv6_addr_v4mapped(laddr);
net/rds/connection.c
210
conn->c_faddr = *faddr;
net/rds/connection.c
211
conn->c_dev_if = dev_if;
net/rds/connection.c
212
conn->c_tos = tos;
net/rds/connection.c
221
conn->c_bound_if = dev_if;
net/rds/connection.c
224
conn->c_bound_if = 0;
net/rds/connection.c
226
rds_conn_net_set(conn, net);
net/rds/connection.c
228
ret = rds_cong_get_maps(conn);
net/rds/connection.c
230
kfree(conn->c_path);
net/rds/connection.c
231
kmem_cache_free(rds_conn_slab, conn);
net/rds/connection.c
232
conn = ERR_PTR(ret);
net/rds/connection.c
241
loop_trans = rds_trans_get_preferred(net, faddr, conn->c_dev_if);
net/rds/connection.c
244
conn->c_loopback = 1;
net/rds/connection.c
258
kfree(conn->c_path);
net/rds/connection.c
259
kmem_cache_free(rds_conn_slab, conn);
net/rds/connection.c
260
conn = ERR_PTR(-EOPNOTSUPP);
net/rds/connection.c
266
conn->c_trans = trans;
net/rds/connection.c
268
init_waitqueue_head(&conn->c_hs_waitq);
net/rds/connection.c
270
__rds_conn_path_init(conn, &conn->c_path[i],
net/rds/connection.c
272
conn->c_path[i].cp_index = i;
net/rds/connection.c
273
conn->c_path[i].cp_wq =
net/rds/connection.c
276
if (!conn->c_path[i].cp_wq)
net/rds/connection.c
277
conn->c_path[i].cp_wq = rds_wq;
net/rds/connection.c
280
if (rds_destroy_pending(conn))
net/rds/connection.c
283
ret = trans->conn_alloc(conn, GFP_ATOMIC);
net/rds/connection.c
286
free_cp = conn->c_path;
net/rds/connection.c
287
kmem_cache_free(rds_conn_slab, conn);
net/rds/connection.c
288
conn = ERR_PTR(ret);
net/rds/connection.c
293
conn, laddr, faddr,
net/rds/connection.c
308
trans->conn_free(conn->c_path[0].cp_transport_data);
net/rds/connection.c
309
free_cp = conn->c_path;
net/rds/connection.c
310
kmem_cache_free(rds_conn_slab, conn);
net/rds/connection.c
311
conn = parent->c_passive;
net/rds/connection.c
313
parent->c_passive = conn;
net/rds/connection.c
314
rds_cong_add_conn(conn);
net/rds/connection.c
328
cp = &conn->c_path[i];
net/rds/connection.c
336
free_cp = conn->c_path;
net/rds/connection.c
337
kmem_cache_free(rds_conn_slab, conn);
net/rds/connection.c
338
conn = found;
net/rds/connection.c
340
conn->c_my_gen_num = rds_gen_num;
net/rds/connection.c
341
conn->c_peer_gen_num = 0;
net/rds/connection.c
342
hlist_add_head_rcu(&conn->c_hash_node, head);
net/rds/connection.c
343
rds_cong_add_conn(conn);
net/rds/connection.c
358
return conn;
net/rds/connection.c
383
struct rds_connection *conn = cp->cp_conn;
net/rds/connection.c
414
conn->c_trans->conn_path_shutdown(cp);
net/rds/connection.c
448
if (!hlist_unhashed(&conn->c_hash_node)) {
net/rds/connection.c
450
if (conn->c_trans->t_mp_capable &&
net/rds/connection.c
452
rds_send_ping(conn, 0);
net/rds/connection.c
461
if (conn->c_trans->conn_slots_available)
net/rds/connection.c
462
conn->c_trans->conn_slots_available(conn, false);
net/rds/connection.c
513
void rds_conn_destroy(struct rds_connection *conn)
net/rds/connection.c
518
int npaths = (conn->c_trans->t_mp_capable ? RDS_MPATH_WORKERS : 1);
net/rds/connection.c
521
"%pI4\n", conn, &conn->c_laddr,
net/rds/connection.c
522
&conn->c_faddr);
net/rds/connection.c
526
hlist_del_init_rcu(&conn->c_hash_node);
net/rds/connection.c
532
cp = &conn->c_path[i];
net/rds/connection.c
542
rds_cong_remove_conn(conn);
net/rds/connection.c
544
kfree(conn->c_path);
net/rds/connection.c
545
kmem_cache_free(rds_conn_slab, conn);
net/rds/connection.c
574
struct rds_connection *conn;
net/rds/connection.c
590
hlist_for_each_entry_rcu(conn, head, c_hash_node) {
net/rds/connection.c
595
if (!net_eq(rds_conn_net(conn), net))
net/rds/connection.c
597
if (!isv6 && conn->c_isv6)
net/rds/connection.c
600
npaths = (conn->c_trans->t_mp_capable ?
net/rds/connection.c
604
cp = &conn->c_path[j];
net/rds/connection.c
618
&conn->c_laddr,
net/rds/connection.c
619
&conn->c_faddr,
net/rds/connection.c
697
struct rds_connection *conn;
net/rds/connection.c
707
hlist_for_each_entry_rcu(conn, head, c_hash_node) {
net/rds/connection.c
709
if (!net_eq(rds_conn_net(conn), net))
net/rds/connection.c
720
if (!visitor(conn, buffer))
net/rds/connection.c
746
struct rds_connection *conn;
net/rds/connection.c
756
hlist_for_each_entry_rcu(conn, head, c_hash_node) {
net/rds/connection.c
760
if (!net_eq(rds_conn_net(conn), net))
net/rds/connection.c
771
cp = conn->c_path;
net/rds/connection.c
801
struct rds_connection *conn = cp->cp_conn;
net/rds/connection.c
803
if (conn->c_isv6)
net/rds/connection.c
808
cinfo->laddr = conn->c_laddr.s6_addr32[3];
net/rds/connection.c
809
cinfo->faddr = conn->c_faddr.s6_addr32[3];
net/rds/connection.c
810
cinfo->tos = conn->c_tos;
net/rds/connection.c
811
strscpy_pad(cinfo->transport, conn->c_trans->t_name);
net/rds/connection.c
830
struct rds_connection *conn = cp->cp_conn;
net/rds/connection.c
834
cinfo6->laddr = conn->c_laddr;
net/rds/connection.c
835
cinfo6->faddr = conn->c_faddr;
net/rds/connection.c
836
strscpy_pad(cinfo6->transport, conn->c_trans->t_name);
net/rds/connection.c
90
struct rds_connection *conn, *ret = NULL;
net/rds/connection.c
92
hlist_for_each_entry_rcu(conn, head, c_hash_node) {
net/rds/connection.c
93
if (ipv6_addr_equal(&conn->c_faddr, faddr) &&
net/rds/connection.c
94
ipv6_addr_equal(&conn->c_laddr, laddr) &&
net/rds/connection.c
95
conn->c_trans == trans &&
net/rds/connection.c
950
void rds_conn_drop(struct rds_connection *conn)
net/rds/connection.c
952
WARN_ON(conn->c_trans->t_mp_capable);
net/rds/connection.c
953
rds_conn_path_drop(&conn->c_path[0], false);
net/rds/connection.c
96
conn->c_tos == tos &&
net/rds/connection.c
97
net == rds_conn_net(conn) &&
net/rds/connection.c
977
void rds_check_all_paths(struct rds_connection *conn)
net/rds/connection.c
98
conn->c_dev_if == dev_if) {
net/rds/connection.c
982
rds_conn_path_connect_if_down(&conn->c_path[i]);
net/rds/connection.c
983
} while (++i < conn->c_npaths);
net/rds/connection.c
986
void rds_conn_connect_if_down(struct rds_connection *conn)
net/rds/connection.c
988
WARN_ON(conn->c_trans->t_mp_capable);
net/rds/connection.c
989
rds_conn_path_connect_if_down(&conn->c_path[0]);
net/rds/connection.c
99
ret = conn;
net/rds/ib.c
292
static int rds_ib_conn_info_visitor(struct rds_connection *conn,
net/rds/ib.c
296
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib.c
299
if (conn->c_trans != &rds_ib_transport)
net/rds/ib.c
301
if (conn->c_isv6)
net/rds/ib.c
304
iinfo->src_addr = conn->c_laddr.s6_addr32[3];
net/rds/ib.c
305
iinfo->dst_addr = conn->c_faddr.s6_addr32[3];
net/rds/ib.c
307
iinfo->tos = conn->c_tos;
net/rds/ib.c
313
if (rds_conn_state(conn) == RDS_CONN_UP) {
net/rds/ib.c
331
static int rds6_ib_conn_info_visitor(struct rds_connection *conn,
net/rds/ib.c
335
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib.c
338
if (conn->c_trans != &rds_ib_transport)
net/rds/ib.c
341
iinfo6->src_addr = conn->c_laddr;
net/rds/ib.c
342
iinfo6->dst_addr = conn->c_faddr;
net/rds/ib.c
344
iinfo6->tos = conn->c_tos;
net/rds/ib.c
351
if (rds_conn_state(conn) == RDS_CONN_UP) {
net/rds/ib.c
526
static bool rds_ib_is_unloading(struct rds_connection *conn)
net/rds/ib.c
528
struct rds_conn_path *cp = &conn->c_path[0];
net/rds/ib.c
79
rds_conn_connect_if_down(ic->conn);
net/rds/ib.c
90
rds_conn_path_drop(&ic->conn->c_path[0], true);
net/rds/ib.h
147
struct rds_connection *conn;
net/rds/ib.h
368
int rds_ib_conn_alloc(struct rds_connection *conn, gfp_t gfp);
net/rds/ib.h
373
void __rds_ib_conn_error(struct rds_connection *conn, const char *, ...);
net/rds/ib.h
377
void rds_ib_cm_connect_complete(struct rds_connection *conn,
net/rds/ib.h
380
#define rds_ib_conn_error(conn, fmt...) \
net/rds/ib.h
381
__rds_ib_conn_error(conn, KERN_WARNING "RDS/IB: " fmt)
net/rds/ib.h
387
void rds_ib_add_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn);
net/rds/ib.h
388
void rds_ib_remove_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn);
net/rds/ib.h
395
int rds_ib_recv_path(struct rds_conn_path *conn);
net/rds/ib.h
398
void rds_ib_recv_refill(struct rds_connection *conn, int prefill, gfp_t gfp);
net/rds/ib.h
425
int rds_ib_xmit(struct rds_connection *conn, struct rds_message *rm,
net/rds/ib.h
430
int rds_ib_xmit_rdma(struct rds_connection *conn, struct rm_rdma_op *op);
net/rds/ib.h
431
void rds_ib_send_add_credits(struct rds_connection *conn, unsigned int credits);
net/rds/ib.h
432
void rds_ib_advertise_credits(struct rds_connection *conn, unsigned int posted);
net/rds/ib.h
435
int rds_ib_xmit_atomic(struct rds_connection *conn, struct rm_atomic_op *op);
net/rds/ib_cm.c
1002
rdsdebug("created cm id %p for conn %p\n", ic->i_cm_id, conn);
net/rds/ib_cm.c
1004
if (ipv6_addr_v4mapped(&conn->c_faddr)) {
net/rds/ib_cm.c
1009
sin->sin_addr.s_addr = conn->c_laddr.s6_addr32[3];
net/rds/ib_cm.c
1014
sin->sin_addr.s_addr = conn->c_faddr.s6_addr32[3];
net/rds/ib_cm.c
1021
sin6->sin6_addr = conn->c_laddr;
net/rds/ib_cm.c
1023
sin6->sin6_scope_id = conn->c_dev_if;
net/rds/ib_cm.c
1027
sin6->sin6_addr = conn->c_faddr;
net/rds/ib_cm.c
1029
sin6->sin6_scope_id = conn->c_dev_if;
net/rds/ib_cm.c
1048
struct rds_connection *conn = cp->cp_conn;
net/rds/ib_cm.c
1049
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_cm.c
1066
struct rds_connection *conn = cp->cp_conn;
net/rds/ib_cm.c
1067
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_cm.c
108
rds_ib_set_protocol(conn, RDS_PROTOCOL(major, minor));
net/rds/ib_cm.c
109
rds_ib_set_flow_control(conn, be32_to_cpu(credit));
net/rds/ib_cm.c
112
if (conn->c_version < RDS_PROTOCOL_VERSION) {
net/rds/ib_cm.c
113
if (conn->c_version != RDS_PROTOCOL_COMPAT_VERSION) {
net/rds/ib_cm.c
115
&conn->c_laddr, &conn->c_faddr,
net/rds/ib_cm.c
116
RDS_PROTOCOL_MAJOR(conn->c_version),
net/rds/ib_cm.c
117
RDS_PROTOCOL_MINOR(conn->c_version));
net/rds/ib_cm.c
1172
rds_ib_remove_conn(ic->rds_ibdev, conn);
net/rds/ib_cm.c
118
rds_conn_destroy(conn);
net/rds/ib_cm.c
1219
int rds_ib_conn_alloc(struct rds_connection *conn, gfp_t gfp)
net/rds/ib_cm.c
125
&conn->c_laddr, &conn->c_faddr, conn->c_tos,
net/rds/ib_cm.c
1255
ic->conn = conn;
net/rds/ib_cm.c
1256
conn->c_transport_data = ic;
net/rds/ib_cm.c
126
RDS_PROTOCOL_MAJOR(conn->c_version),
net/rds/ib_cm.c
1263
rdsdebug("conn %p conn ic %p\n", conn, conn->c_transport_data);
net/rds/ib_cm.c
127
RDS_PROTOCOL_MINOR(conn->c_version),
net/rds/ib_cm.c
1298
__rds_ib_conn_error(struct rds_connection *conn, const char *fmt, ...)
net/rds/ib_cm.c
1302
rds_conn_drop(conn);
net/rds/ib_cm.c
143
rds_ib_recv_refill(conn, 1, GFP_KERNEL);
net/rds/ib_cm.c
146
err = rds_ib_update_ipaddr(ic->rds_ibdev, &conn->c_laddr);
net/rds/ib_cm.c
155
rds_send_drop_acked(conn, be64_to_cpu(ack_seq),
net/rds/ib_cm.c
159
conn->c_proposed_version = conn->c_version;
net/rds/ib_cm.c
160
rds_connect_complete(conn);
net/rds/ib_cm.c
163
static void rds_ib_cm_fill_conn_param(struct rds_connection *conn,
net/rds/ib_cm.c
171
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_cm.c
186
dp->ricp_v6.dp_saddr = conn->c_laddr;
net/rds/ib_cm.c
187
dp->ricp_v6.dp_daddr = conn->c_faddr;
net/rds/ib_cm.c
196
dp->ricp_v6.dp_cmn.ricpc_dp_toss = conn->c_tos;
net/rds/ib_cm.c
201
dp->ricp_v4.dp_saddr = conn->c_laddr.s6_addr32[3];
net/rds/ib_cm.c
202
dp->ricp_v4.dp_daddr = conn->c_faddr.s6_addr32[3];
net/rds/ib_cm.c
211
dp->ricp_v4.dp_cmn.ricpc_dp_toss = conn->c_tos;
net/rds/ib_cm.c
249
struct rds_connection *conn = context;
net/rds/ib_cm.c
250
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_cm.c
252
rdsdebug("conn %p cq %p\n", conn, cq);
net/rds/ib_cm.c
285
struct rds_connection *conn = ic->conn;
net/rds/ib_cm.c
297
if (rds_conn_up(conn) &&
net/rds/ib_cm.c
298
(!test_bit(RDS_LL_SEND_FULL, &conn->c_flags) ||
net/rds/ib_cm.c
299
test_bit(0, &conn->c_map_queued)))
net/rds/ib_cm.c
300
rds_send_xmit(&ic->conn->c_path[0]);
net/rds/ib_cm.c
325
struct rds_connection *conn = ic->conn;
net/rds/ib_cm.c
330
rds_conn_drop(conn);
net/rds/ib_cm.c
346
rds_send_drop_acked(conn, state.ack_recv, NULL);
net/rds/ib_cm.c
350
if (rds_conn_up(conn))
net/rds/ib_cm.c
356
struct rds_connection *conn = data;
net/rds/ib_cm.c
357
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_cm.c
359
rdsdebug("conn %p ic %p event %u (%s)\n", conn, ic, event->event,
net/rds/ib_cm.c
369
&conn->c_laddr, &conn->c_faddr);
net/rds/ib_cm.c
370
rds_conn_drop(conn);
net/rds/ib_cm.c
377
struct rds_connection *conn = context;
net/rds/ib_cm.c
378
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_cm.c
380
rdsdebug("conn %p cq %p\n", conn, cq);
net/rds/ib_cm.c
49
static void rds_ib_set_protocol(struct rds_connection *conn, unsigned int version)
net/rds/ib_cm.c
502
static int rds_ib_setup_qp(struct rds_connection *conn)
net/rds/ib_cm.c
504
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_cm.c
51
conn->c_version = version;
net/rds/ib_cm.c
527
rds_ib_add_conn(rds_ibdev, conn);
net/rds/ib_cm.c
546
rds_ib_cq_event_handler, conn,
net/rds/ib_cm.c
560
rds_ib_cq_event_handler, conn,
net/rds/ib_cm.c
57
static void rds_ib_set_flow_control(struct rds_connection *conn, u32 credits)
net/rds/ib_cm.c
585
attr.qp_context = conn;
net/rds/ib_cm.c
59
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_cm.c
64
rds_ib_send_add_credits(conn, credits);
net/rds/ib_cm.c
652
rdsdebug("conn %p pd %p cq %p %p\n", conn, ic->i_pd,
net/rds/ib_cm.c
687
rds_ib_remove_conn(rds_ibdev, conn);
net/rds/ib_cm.c
696
const union rds_ib_conn_priv *dp = event->param.conn.private_data;
net/rds/ib_cm.c
713
if (!event->param.conn.private_data_len) {
net/rds/ib_cm.c
732
if (event->param.conn.private_data_len < data_len || major == 0)
net/rds/ib_cm.c
74
void rds_ib_cm_connect_complete(struct rds_connection *conn, struct rdma_cm_event *event)
net/rds/ib_cm.c
76
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_cm.c
789
struct rds_connection *conn = NULL;
net/rds/ib_cm.c
810
dp = event->param.conn.private_data;
net/rds/ib_cm.c
84
dp = event->param.conn.private_data;
net/rds/ib_cm.c
85
if (conn->c_isv6) {
net/rds/ib_cm.c
86
if (event->param.conn.private_data_len >=
net/rds/ib_cm.c
860
conn = rds_conn_create(&init_net, daddr6, saddr6,
net/rds/ib_cm.c
863
if (IS_ERR(conn)) {
net/rds/ib_cm.c
864
rdsdebug("rds_conn_create failed (%ld)\n", PTR_ERR(conn));
net/rds/ib_cm.c
865
conn = NULL;
net/rds/ib_cm.c
876
mutex_lock(&conn->c_cm_lock);
net/rds/ib_cm.c
877
if (!rds_conn_transition(conn, RDS_CONN_DOWN, RDS_CONN_CONNECTING)) {
net/rds/ib_cm.c
878
if (rds_conn_state(conn) == RDS_CONN_UP) {
net/rds/ib_cm.c
880
rds_conn_drop(conn);
net/rds/ib_cm.c
883
if (rds_conn_state(conn) == RDS_CONN_CONNECTING) {
net/rds/ib_cm.c
890
ic = conn->c_transport_data;
net/rds/ib_cm.c
892
rds_ib_set_protocol(conn, version);
net/rds/ib_cm.c
893
rds_ib_set_flow_control(conn, be32_to_cpu(dp_cmn->ricpc_credit));
net/rds/ib_cm.c
898
rds_send_drop_acked(conn, be64_to_cpu(dp_cmn->ricpc_ack_seq),
net/rds/ib_cm.c
905
cm_id->context = conn;
net/rds/ib_cm.c
911
err = rds_ib_setup_qp(conn);
net/rds/ib_cm.c
913
rds_ib_conn_error(conn, "rds_ib_setup_qp failed (%d)\n", err);
net/rds/ib_cm.c
917
rds_ib_cm_fill_conn_param(conn, &conn_param, &dp_rep, version,
net/rds/ib_cm.c
918
event->param.conn.responder_resources,
net/rds/ib_cm.c
919
event->param.conn.initiator_depth, isv6);
net/rds/ib_cm.c
924
rds_ib_conn_error(conn, "rdma_accept failed\n");
net/rds/ib_cm.c
927
if (conn)
net/rds/ib_cm.c
928
mutex_unlock(&conn->c_cm_lock);
net/rds/ib_cm.c
938
struct rds_connection *conn = cm_id->context;
net/rds/ib_cm.c
939
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_cm.c
946
rds_ib_set_protocol(conn, RDS_PROTOCOL_4_1);
net/rds/ib_cm.c
949
ret = rds_ib_setup_qp(conn);
net/rds/ib_cm.c
951
rds_ib_conn_error(conn, "rds_ib_setup_qp failed (%d)\n", ret);
net/rds/ib_cm.c
955
rds_ib_cm_fill_conn_param(conn, &conn_param, &dp,
net/rds/ib_cm.c
956
conn->c_proposed_version,
net/rds/ib_cm.c
960
rds_ib_conn_error(conn, "rdma_connect_locked failed (%d)\n",
net/rds/ib_cm.c
977
struct rds_connection *conn = cp->cp_conn;
net/rds/ib_cm.c
98
} else if (event->param.conn.private_data_len >=
net/rds/ib_cm.c
983
ic = conn->c_transport_data;
net/rds/ib_cm.c
988
if (conn->c_isv6)
net/rds/ib_cm.c
993
ic->i_cm_id = rdma_create_id(&init_net, handler, conn,
net/rds/ib_frmr.c
333
if (rds_conn_up(ic->conn))
net/rds/ib_frmr.c
334
rds_ib_conn_error(ic->conn,
net/rds/ib_frmr.c
336
&ic->conn->c_laddr,
net/rds/ib_frmr.c
337
&ic->conn->c_faddr,
net/rds/ib_mr.h
121
struct rds_connection *conn, u64 start, u64 length,
net/rds/ib_rdma.c
122
void rds_ib_add_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn)
net/rds/ib_rdma.c
124
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_rdma.c
141
void rds_ib_remove_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn)
net/rds/ib_rdma.c
143
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_rdma.c
172
rds_conn_destroy(ic->conn);
net/rds/ib_rdma.c
548
struct rds_connection *conn,
net/rds/ib_rdma.c
607
if (conn) {
net/rds/ib_rdma.c
608
ic = conn->c_transport_data;
net/rds/ib_recv.c
1006
rds_ib_process_recv(conn, recv, wc->byte_len, state);
net/rds/ib_recv.c
1009
if (rds_conn_up(conn) || rds_conn_connecting(conn))
net/rds/ib_recv.c
1010
rds_ib_conn_error(conn, "recv completion on <%pI6c,%pI6c, %d> had status %u (%s), vendor err 0x%x, disconnecting and reconnecting\n",
net/rds/ib_recv.c
1011
&conn->c_laddr, &conn->c_faddr,
net/rds/ib_recv.c
1012
conn->c_tos, wc->status,
net/rds/ib_recv.c
1037
rds_ib_recv_refill(conn, 0, GFP_NOWAIT);
net/rds/ib_recv.c
1044
struct rds_connection *conn = cp->cp_conn;
net/rds/ib_recv.c
1045
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_recv.c
1047
rdsdebug("conn %p\n", conn);
net/rds/ib_recv.c
1048
if (rds_conn_up(conn)) {
net/rds/ib_recv.c
1050
rds_ib_recv_refill(conn, 0, GFP_KERNEL);
net/rds/ib_recv.c
271
rds_inc_init(&ibinc->ii_inc, ic->conn, &ic->conn->c_faddr);
net/rds/ib_recv.c
308
static int rds_ib_recv_refill_one(struct rds_connection *conn,
net/rds/ib_recv.c
311
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_recv.c
359
static int acquire_refill(struct rds_connection *conn)
net/rds/ib_recv.c
361
return test_and_set_bit(RDS_RECV_REFILL, &conn->c_flags) == 0;
net/rds/ib_recv.c
364
static void release_refill(struct rds_connection *conn)
net/rds/ib_recv.c
366
clear_bit(RDS_RECV_REFILL, &conn->c_flags);
net/rds/ib_recv.c
374
if (waitqueue_active(&conn->c_waitq))
net/rds/ib_recv.c
375
wake_up_all(&conn->c_waitq);
net/rds/ib_recv.c
383
void rds_ib_recv_refill(struct rds_connection *conn, int prefill, gfp_t gfp)
net/rds/ib_recv.c
385
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_recv.c
397
if (!acquire_refill(conn))
net/rds/ib_recv.c
400
while ((prefill || rds_conn_up(conn)) &&
net/rds/ib_recv.c
409
ret = rds_ib_recv_refill_one(conn, recv, gfp);
net/rds/ib_recv.c
422
rds_ib_conn_error(conn, "recv post on "
net/rds/ib_recv.c
424
"reconnecting\n", &conn->c_faddr,
net/rds/ib_recv.c
439
rds_ib_advertise_credits(conn, posted);
net/rds/ib_recv.c
444
release_refill(conn);
net/rds/ib_recv.c
456
if (rds_conn_up(conn) &&
net/rds/ib_recv.c
460
queue_delayed_work(conn->c_path->cp_wq, &conn->c_recv_w, 1);
net/rds/ib_recv.c
689
rds_ib_conn_error(ic->conn, "sending ack failed\n");
net/rds/ib_recv.c
784
static void rds_ib_cong_recv(struct rds_connection *conn,
net/rds/ib_recv.c
801
map = conn->c_fcong;
net/rds/ib_recv.c
849
static void rds_ib_process_recv(struct rds_connection *conn,
net/rds/ib_recv.c
853
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_recv.c
864
rds_ib_conn_error(conn, "incoming message "
net/rds/ib_recv.c
868
&conn->c_faddr);
net/rds/ib_recv.c
879
rds_ib_conn_error(conn, "incoming message "
net/rds/ib_recv.c
882
&conn->c_faddr);
net/rds/ib_recv.c
893
rds_ib_send_add_credits(conn, ihdr->h_credit);
net/rds/ib_recv.c
945
rds_ib_conn_error(conn,
net/rds/ib_recv.c
961
rds_ib_cong_recv(conn, ibinc);
net/rds/ib_recv.c
963
rds_recv_incoming(conn, &conn->c_faddr, &conn->c_laddr,
net/rds/ib_recv.c
988
struct rds_connection *conn = ic->conn;
net/rds/ib_send.c
1021
"returned %d\n", &conn->c_faddr, ret);
net/rds/ib_send.c
1039
struct rds_connection *conn = cp->cp_conn;
net/rds/ib_send.c
1040
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_send.c
248
struct rds_connection *conn = ic->conn;
net/rds/ib_send.c
300
if (test_and_clear_bit(RDS_LL_SEND_FULL, &conn->c_flags) ||
net/rds/ib_send.c
301
test_bit(0, &conn->c_map_queued))
net/rds/ib_send.c
302
queue_delayed_work(conn->c_path->cp_wq, &conn->c_send_w, 0);
net/rds/ib_send.c
305
if (wc->status != IB_WC_SUCCESS && rds_conn_up(conn)) {
net/rds/ib_send.c
306
rds_ib_conn_error(conn, "send completion on <%pI6c,%pI6c,%d> had status %u (%s), vendor err 0x%x, disconnecting and reconnecting\n",
net/rds/ib_send.c
307
&conn->c_laddr, &conn->c_faddr,
net/rds/ib_send.c
308
conn->c_tos, wc->status,
net/rds/ib_send.c
381
struct rds_connection *conn = ic->i_cm_id->context;
net/rds/ib_send.c
384
set_bit(RDS_LL_SEND_FULL, &conn->c_flags);
net/rds/ib_send.c
410
void rds_ib_send_add_credits(struct rds_connection *conn, unsigned int credits)
net/rds/ib_send.c
412
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_send.c
420
test_bit(RDS_LL_SEND_FULL, &conn->c_flags) ? ", ll_send_full" : "");
net/rds/ib_send.c
423
if (test_and_clear_bit(RDS_LL_SEND_FULL, &conn->c_flags))
net/rds/ib_send.c
424
queue_delayed_work(conn->c_path->cp_wq, &conn->c_send_w, 0);
net/rds/ib_send.c
431
void rds_ib_advertise_credits(struct rds_connection *conn, unsigned int posted)
net/rds/ib_send.c
433
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_send.c
486
int rds_ib_xmit(struct rds_connection *conn, struct rds_message *rm,
net/rds/ib_send.c
489
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_send.c
512
if (conn->c_loopback
net/rds/ib_send.c
514
rds_cong_map_updated(conn->c_fcong, ~(u64) 0);
net/rds/ib_send.c
528
set_bit(RDS_LL_SEND_FULL, &conn->c_flags);
net/rds/ib_send.c
543
set_bit(RDS_LL_SEND_FULL, &conn->c_flags);
net/rds/ib_send.c
758
rds_ib_send_add_credits(conn, credit_alloc - i);
net/rds/ib_send.c
771
"returned %d\n", &conn->c_faddr, ret);
net/rds/ib_send.c
779
rds_ib_conn_error(ic->conn, "ib_post_send failed\n");
net/rds/ib_send.c
794
int rds_ib_xmit_atomic(struct rds_connection *conn, struct rm_atomic_op *op)
net/rds/ib_send.c
796
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_send.c
865
"returned %d\n", &conn->c_faddr, ret);
net/rds/ib_send.c
880
int rds_ib_xmit_rdma(struct rds_connection *conn, struct rm_rdma_op *op)
net/rds/ib_send.c
882
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/loop.c
126
struct rds_connection *conn;
net/rds/loop.c
135
static int rds_loop_conn_alloc(struct rds_connection *conn, gfp_t gfp)
net/rds/loop.c
145
lc->conn = conn;
net/rds/loop.c
146
conn->c_transport_data = lc;
net/rds/loop.c
191
WARN_ON(lc->conn->c_passive);
net/rds/loop.c
192
rds_conn_destroy(lc->conn);
net/rds/loop.c
203
struct net *c_net = read_pnet(&lc->conn->c_net);
net/rds/loop.c
212
WARN_ON(lc->conn->c_passive);
net/rds/loop.c
213
rds_conn_destroy(lc->conn);
net/rds/loop.c
53
static bool rds_loop_is_unloading(struct rds_connection *conn)
net/rds/loop.c
75
static int rds_loop_xmit(struct rds_connection *conn, struct rds_message *rm,
net/rds/loop.c
85
rds_cong_map_updated(conn->c_fcong, ~(u64) 0);
net/rds/loop.c
86
ret = min_t(int, ret, sgp->length - conn->c_xmit_data_off);
net/rds/loop.c
92
rds_inc_init(&rm->m_inc, conn, &conn->c_laddr);
net/rds/loop.c
96
rds_recv_incoming(conn, &conn->c_laddr, &conn->c_faddr, &rm->m_inc,
net/rds/loop.c
99
rds_send_drop_acked(conn, be64_to_cpu(rm->m_inc.i_hdr.h_sequence),
net/rds/rdma_transport.c
102
if (conn) {
net/rds/rdma_transport.c
105
ibic = conn->c_transport_data;
net/rds/rdma_transport.c
108
TOS_TO_SL(conn->c_tos);
net/rds/rdma_transport.c
111
rds_conn_drop(conn);
net/rds/rdma_transport.c
117
if (conn)
net/rds/rdma_transport.c
118
trans->cm_connect_complete(conn, event);
net/rds/rdma_transport.c
122
if (!conn)
net/rds/rdma_transport.c
129
&conn->c_laddr, &conn->c_faddr);
net/rds/rdma_transport.c
131
if (!conn->c_tos)
net/rds/rdma_transport.c
132
conn->c_proposed_version = RDS_PROTOCOL_COMPAT_VERSION;
net/rds/rdma_transport.c
134
rds_conn_drop(conn);
net/rds/rdma_transport.c
145
if (conn)
net/rds/rdma_transport.c
146
rds_conn_drop(conn);
net/rds/rdma_transport.c
150
if (!conn)
net/rds/rdma_transport.c
153
"%pI6c->%pI6c\n", &conn->c_laddr,
net/rds/rdma_transport.c
154
&conn->c_faddr);
net/rds/rdma_transport.c
155
rds_conn_drop(conn);
net/rds/rdma_transport.c
159
if (conn) {
net/rds/rdma_transport.c
161
&conn->c_laddr, &conn->c_faddr);
net/rds/rdma_transport.c
162
rds_conn_drop(conn);
net/rds/rdma_transport.c
174
if (conn)
net/rds/rdma_transport.c
175
mutex_unlock(&conn->c_cm_lock);
net/rds/rdma_transport.c
54
struct rds_connection *conn = cm_id->context;
net/rds/rdma_transport.c
60
rdsdebug("conn %p id %p handling event %u (%s)\n", conn, cm_id,
net/rds/rdma_transport.c
68
if (conn) {
net/rds/rdma_transport.c
69
mutex_lock(&conn->c_cm_lock);
net/rds/rdma_transport.c
74
if (rds_conn_state(conn) == RDS_CONN_DISCONNECTING) {
net/rds/rdma_transport.c
89
if (conn) {
net/rds/rdma_transport.c
90
rdma_set_service_type(cm_id, conn->c_tos);
net/rds/rds.h
1035
void rds_connect_path_complete(struct rds_conn_path *conn, int curr);
net/rds/rds.h
1036
void rds_connect_complete(struct rds_connection *conn);
net/rds/rds.h
178
struct net *rds_conn_net(struct rds_connection *conn)
net/rds/rds.h
180
return read_pnet(&conn->c_net);
net/rds/rds.h
184
void rds_conn_net_set(struct rds_connection *conn, struct net *net)
net/rds/rds.h
186
write_pnet(&conn->c_net, net);
net/rds/rds.h
539
int (*conn_alloc)(struct rds_connection *conn, gfp_t gfp);
net/rds/rds.h
552
void (*conn_slots_available)(struct rds_connection *conn, bool fan_out);
net/rds/rds.h
565
void (*conn_path_shutdown)(struct rds_conn_path *conn);
net/rds/rds.h
584
int (*xmit)(struct rds_connection *conn, struct rds_message *rm,
net/rds/rds.h
586
int (*xmit_rdma)(struct rds_connection *conn, struct rm_rdma_op *op);
net/rds/rds.h
587
int (*xmit_atomic)(struct rds_connection *conn, struct rm_atomic_op *op);
net/rds/rds.h
595
void (*cm_connect_complete)(struct rds_connection *conn,
net/rds/rds.h
603
struct rds_connection *conn,
net/rds/rds.h
608
bool (*t_unloading)(struct rds_connection *conn);
net/rds/rds.h
780
int rds_cong_get_maps(struct rds_connection *conn);
net/rds/rds.h
781
void rds_cong_add_conn(struct rds_connection *conn);
net/rds/rds.h
782
void rds_cong_remove_conn(struct rds_connection *conn);
net/rds/rds.h
792
struct rds_message *rds_cong_update_alloc(struct rds_connection *conn);
net/rds/rds.h
810
void rds_conn_destroy(struct rds_connection *conn);
net/rds/rds.h
811
void rds_conn_drop(struct rds_connection *conn);
net/rds/rds.h
813
void rds_conn_connect_if_down(struct rds_connection *conn);
net/rds/rds.h
815
void rds_check_all_paths(struct rds_connection *conn);
net/rds/rds.h
835
rds_conn_transition(struct rds_connection *conn, int old, int new)
net/rds/rds.h
837
WARN_ON(conn->c_trans->t_mp_capable);
net/rds/rds.h
838
return rds_conn_path_transition(&conn->c_path[0], old, new);
net/rds/rds.h
848
rds_conn_state(struct rds_connection *conn)
net/rds/rds.h
850
WARN_ON(conn->c_trans->t_mp_capable);
net/rds/rds.h
851
return rds_conn_path_state(&conn->c_path[0]);
net/rds/rds.h
867
rds_conn_up(struct rds_connection *conn)
net/rds/rds.h
869
WARN_ON(conn->c_trans->t_mp_capable);
net/rds/rds.h
870
return rds_conn_path_up(&conn->c_path[0]);
net/rds/rds.h
880
rds_conn_connecting(struct rds_connection *conn)
net/rds/rds.h
882
WARN_ON(conn->c_trans->t_mp_capable);
net/rds/rds.h
883
return rds_conn_path_connecting(&conn->c_path[0]);
net/rds/rds.h
924
void rds_inc_init(struct rds_incoming *inc, struct rds_connection *conn,
net/rds/rds.h
926
void rds_inc_path_init(struct rds_incoming *inc, struct rds_conn_path *conn,
net/rds/rds.h
929
void rds_recv_incoming(struct rds_connection *conn, struct in6_addr *saddr,
net/rds/rds.h
946
void rds_send_path_reset(struct rds_conn_path *conn);
net/rds/rds.h
951
void rds_send_drop_acked(struct rds_connection *conn, u64 ack,
net/rds/rds.h
955
void rds_send_ping(struct rds_connection *conn, int cp_index);
net/rds/rds.h
982
static inline bool rds_destroy_pending(struct rds_connection *conn)
net/rds/rds.h
984
return !check_net(rds_conn_net(conn)) ||
net/rds/rds.h
985
(conn->c_trans->t_unloading && conn->c_trans->t_unloading(conn));
net/rds/recv.c
133
static void rds_conn_peer_gen_update(struct rds_connection *conn,
net/rds/recv.c
140
WARN_ON(conn->c_trans->t_type != RDS_TRANS_TCP);
net/rds/recv.c
142
if (conn->c_peer_gen_num != 0 &&
net/rds/recv.c
143
peer_gen_num != conn->c_peer_gen_num) {
net/rds/recv.c
147
cp = &conn->c_path[i];
net/rds/recv.c
159
conn->c_peer_gen_num = peer_gen_num;
net/rds/recv.c
200
struct rds_connection *conn)
net/rds/recv.c
214
new_npaths = conn->c_npaths;
net/rds/recv.c
239
conn->c_with_sport_idx = new_with_sport_idx;
net/rds/recv.c
241
if (new_npaths > 1 && new_npaths != conn->c_npaths) {
net/rds/recv.c
246
struct rds_conn_path *cp0 = conn->c_path;
net/rds/recv.c
250
conn->c_cp0_mprds_catchup_tx_seq = cp0->cp_next_tx_seq;
net/rds/recv.c
258
conn->c_npaths = max_t(int, new_npaths, 1);
net/rds/recv.c
260
conn->c_ping_triggered = 0;
net/rds/recv.c
261
rds_conn_peer_gen_update(conn, new_peer_gen_num);
net/rds/recv.c
263
if (conn->c_npaths > 1 &&
net/rds/recv.c
264
conn->c_trans->conn_slots_available)
net/rds/recv.c
265
conn->c_trans->conn_slots_available(conn, fan_out);
net/rds/recv.c
286
static void rds_start_mprds(struct rds_connection *conn)
net/rds/recv.c
291
if (conn->c_npaths > 1 &&
net/rds/recv.c
292
rds_addr_cmp(&conn->c_laddr, &conn->c_faddr) < 0) {
net/rds/recv.c
293
for (i = 0; i < conn->c_npaths; i++) {
net/rds/recv.c
294
cp = &conn->c_path[i];
net/rds/recv.c
316
void rds_recv_incoming(struct rds_connection *conn, struct in6_addr *saddr,
net/rds/recv.c
325
inc->i_conn = conn;
net/rds/recv.c
327
if (conn->c_trans->t_mp_capable)
net/rds/recv.c
330
cp = &conn->c_path[0];
net/rds/recv.c
333
"flags 0x%x rx_jiffies %lu\n", conn,
net/rds/recv.c
396
rs = rds_find_bound(daddr, inc->i_hdr.h_dport, conn->c_bound_if);
net/rds/recv.c
410
if (!net_eq(sock_net(rds_rs_to_sk(rs)), rds_conn_net(conn))) {
net/rds/recv.c
44
void rds_inc_init(struct rds_incoming *inc, struct rds_connection *conn,
net/rds/recv.c
49
inc->i_conn = conn;
net/rds/send.c
1137
struct rds_connection *conn;
net/rds/send.c
128
static bool rds_mprds_cp0_catchup(struct rds_connection *conn)
net/rds/send.c
130
struct rds_conn_path *cp0 = conn->c_path;
net/rds/send.c
1321
conn = rs->rs_conn;
net/rds/send.c
1323
conn = rds_conn_create_outgoing(sock_net(sock->sk),
net/rds/send.c
1328
if (IS_ERR(conn)) {
net/rds/send.c
1329
ret = PTR_ERR(conn);
net/rds/send.c
1332
rs->rs_conn = conn;
net/rds/send.c
1335
if (conn->c_trans->t_mp_capable) {
net/rds/send.c
1339
cpath = &conn->c_path[RDS_MPATH_HASH(rs, conn->c_npaths ? : 1)];
net/rds/send.c
1341
cpath = &conn->c_path[0];
net/rds/send.c
1349
if (conn->c_trans->t_mp_capable &&
net/rds/send.c
1350
!rds_conn_path_up(&conn->c_path[0])) {
net/rds/send.c
1356
&conn->c_path[0].cp_flags))
net/rds/send.c
1357
queue_delayed_work(conn->c_path[0].cp_wq,
net/rds/send.c
1358
&conn->c_path[0].cp_conn_w, 0);
net/rds/send.c
1359
rds_send_ping(conn, 0);
net/rds/send.c
1369
if (rm->rdma.op_active && !conn->c_trans->xmit_rdma) {
net/rds/send.c
1371
&rm->rdma, conn->c_trans->xmit_rdma);
net/rds/send.c
1376
if (rm->atomic.op_active && !conn->c_trans->xmit_atomic) {
net/rds/send.c
1378
&rm->atomic, conn->c_trans->xmit_atomic);
net/rds/send.c
1383
if (rds_destroy_pending(conn)) {
net/rds/send.c
1389
rds_check_all_paths(conn);
net/rds/send.c
1391
ret = rds_cong_wait(conn->c_fcong, dport, nonblock, rs);
net/rds/send.c
1396
while (!rds_send_queue_rm(rs, conn, cpath, rm, rs->rs_bound_port,
net/rds/send.c
1406
rds_send_queue_rm(rs, conn, cpath, rm,
net/rds/send.c
144
conn->c_cp0_mprds_catchup_tx_seq) {
net/rds/send.c
1550
rds_send_ping(struct rds_connection *conn, int cp_index)
net/rds/send.c
1553
struct rds_conn_path *cp = &conn->c_path[cp_index];
net/rds/send.c
1556
if (conn->c_ping_triggered) {
net/rds/send.c
1560
conn->c_ping_triggered = 1;
net/rds/send.c
161
conn->c_cp0_mprds_catchup_tx_seq) {
net/rds/send.c
189
struct rds_connection *conn = cp->cp_conn;
net/rds/send.c
243
if (conn->c_trans->xmit_path_prepare)
net/rds/send.c
244
conn->c_trans->xmit_path_prepare(cp);
net/rds/send.c
269
if (!rm && test_and_clear_bit(0, &conn->c_map_queued)) {
net/rds/send.c
270
rm = rds_cong_update_alloc(conn);
net/rds/send.c
305
if (cp->cp_index > 0 && rds_mprds_cp0_catchup(conn)) {
net/rds/send.c
374
ret = conn->c_trans->xmit_rdma(conn, &rm->rdma);
net/rds/send.c
390
ret = conn->c_trans->xmit_atomic(conn, &rm->atomic);
net/rds/send.c
425
ret = conn->c_trans->xmit(conn, rm,
net/rds/send.c
479
if (conn->c_trans->xmit_path_complete)
net/rds/send.c
480
conn->c_trans->xmit_path_complete(cp);
net/rds/send.c
512
if ((test_bit(0, &conn->c_map_queued) ||
net/rds/send.c
773
void rds_send_drop_acked(struct rds_connection *conn, u64 ack,
net/rds/send.c
776
WARN_ON(conn->c_trans->t_mp_capable);
net/rds/send.c
777
rds_send_path_drop_acked(&conn->c_path[0], ack, is_acked);
net/rds/send.c
784
struct rds_connection *conn;
net/rds/send.c
814
conn = rm->m_inc.i_conn;
net/rds/send.c
815
if (conn->c_trans->t_mp_capable)
net/rds/send.c
818
cp = &conn->c_path[0];
net/rds/send.c
877
static int rds_send_queue_rm(struct rds_sock *rs, struct rds_connection *conn,
net/rds/send.c
922
rm->m_inc.i_conn = conn;
net/rds/tcp.c
395
static int rds_tcp_conn_alloc(struct rds_connection *conn, gfp_t gfp)
net/rds/tcp.c
415
conn->c_path[i].cp_transport_data = tc;
net/rds/tcp.c
416
tc->t_cpath = &conn->c_path[i];
net/rds/tcp.c
420
conn->c_path[i].cp_transport_data);
net/rds/tcp.c
424
tc = conn->c_path[i].cp_transport_data;
net/rds/tcp.c
432
rds_tcp_conn_free(conn->c_path[j].cp_transport_data);
net/rds/tcp.c
437
static bool list_has_conn(struct list_head *list, struct rds_connection *conn)
net/rds/tcp.c
442
if (tc->t_cpath->cp_conn == conn)
net/rds/tcp.c
453
static bool rds_tcp_is_unloading(struct rds_connection *conn)
net/rds/tcp.h
109
int rds_tcp_xmit(struct rds_connection *conn, struct rds_message *rm,
net/rds/tcp.h
86
void rds_tcp_conn_path_shutdown(struct rds_conn_path *conn);
net/rds/tcp.h
93
void rds_tcp_conn_slots_available(struct rds_connection *conn, bool fan_out);
net/rds/tcp_connect.c
109
struct rds_connection *conn = cp->cp_conn;
net/rds/tcp_connect.c
124
if (ipv6_addr_v4mapped(&conn->c_laddr)) {
net/rds/tcp_connect.c
125
ret = sock_create_kern(rds_conn_net(conn), PF_INET,
net/rds/tcp_connect.c
129
ret = sock_create_kern(rds_conn_net(conn), PF_INET6,
net/rds/tcp_connect.c
144
sin6.sin6_addr = conn->c_laddr;
net/rds/tcp_connect.c
147
sin6.sin6_scope_id = conn->c_dev_if;
net/rds/tcp_connect.c
152
sin.sin_addr.s_addr = conn->c_laddr.s6_addr32[3];
net/rds/tcp_connect.c
159
inet_get_local_port_range(rds_conn_net(conn), &port_low, &port_high);
net/rds/tcp_connect.c
180
ret, &conn->c_laddr);
net/rds/tcp_connect.c
186
sin6.sin6_addr = conn->c_faddr;
net/rds/tcp_connect.c
189
sin6.sin6_scope_id = conn->c_dev_if;
net/rds/tcp_connect.c
194
sin.sin_addr.s_addr = conn->c_faddr.s6_addr32[3];
net/rds/tcp_connect.c
207
rdsdebug("connect to address %pI6c returned %d\n", &conn->c_faddr, ret);
net/rds/tcp_listen.c
108
void rds_tcp_conn_slots_available(struct rds_connection *conn, bool fan_out)
net/rds/tcp_listen.c
115
if (rds_destroy_pending(conn))
net/rds/tcp_listen.c
118
tc = conn->c_path->cp_transport_data;
net/rds/tcp_listen.c
128
if (fan_out && conn->c_with_sport_idx && sock &&
net/rds/tcp_listen.c
129
rds_addr_cmp(&conn->c_laddr, &conn->c_faddr) > 0) {
net/rds/tcp_listen.c
132
npaths = max_t(int, 1, conn->c_npaths);
net/rds/tcp_listen.c
135
rds_conn_path_drop(conn->c_path, 0);
net/rds/tcp_listen.c
156
struct rds_connection *conn;
net/rds/tcp_listen.c
226
conn = rds_conn_create(sock_net(listen_sock->sk),
net/rds/tcp_listen.c
230
if (IS_ERR(conn)) {
net/rds/tcp_listen.c
231
ret = PTR_ERR(conn);
net/rds/tcp_listen.c
239
if (rds_addr_cmp(&conn->c_faddr, &conn->c_laddr) < 0) {
net/rds/tcp_listen.c
247
rs_tcp = rds_tcp_accept_one_path(conn, new_sock);
net/rds/tcp_listen.c
270
if (conn->c_npaths <= 1)
net/rds/tcp_listen.c
271
rds_conn_path_connect_if_down(&conn->c_path[0]);
net/rds/tcp_listen.c
324
if (conn->c_npaths == 0)
net/rds/tcp_listen.c
77
rds_tcp_accept_one_path(struct rds_connection *conn, struct socket *sock)
net/rds/tcp_listen.c
81
if (conn->c_with_sport_idx)
net/rds/tcp_listen.c
87
npaths = max_t(int, 1, conn->c_npaths);
net/rds/tcp_listen.c
98
struct rds_conn_path *cp = &conn->c_path[i];
net/rds/tcp_recv.c
106
static void rds_tcp_cong_recv(struct rds_connection *conn,
net/rds/tcp_recv.c
122
map = conn->c_fcong;
net/rds/tcp_recv.c
238
struct rds_connection *conn = cp->cp_conn;
net/rds/tcp_recv.c
241
rds_tcp_cong_recv(conn, tinc);
net/rds/tcp_recv.c
243
rds_recv_incoming(conn, &conn->c_faddr,
net/rds/tcp_recv.c
244
&conn->c_laddr,
net/rds/tcp_send.c
155
&conn->c_faddr, cp->cp_index, ret);
net/rds/tcp_send.c
70
int rds_tcp_xmit(struct rds_connection *conn, struct rds_message *rm,
net/rds/threads.c
100
void rds_connect_complete(struct rds_connection *conn)
net/rds/threads.c
102
rds_connect_path_complete(&conn->c_path[0], RDS_CONN_CONNECTING);
net/rds/threads.c
127
struct rds_connection *conn = cp->cp_conn;
net/rds/threads.c
130
conn, &conn->c_laddr, &conn->c_faddr,
net/rds/threads.c
134
if (conn->c_trans->t_type == RDS_TRANS_TCP &&
net/rds/threads.c
135
rds_addr_cmp(&conn->c_laddr, &conn->c_faddr) >= 0)
net/rds/threads.c
151
conn, &conn->c_laddr, &conn->c_faddr);
net/rds/threads.c
167
struct rds_connection *conn = cp->cp_conn;
net/rds/threads.c
176
ret = conn->c_trans->conn_path_connect(cp);
net/rds/threads.c
178
conn, &conn->c_laddr, &conn->c_faddr, ret);
net/rxrpc/ar-internal.h
1015
static inline rxrpc_serial_t rxrpc_get_next_serial(struct rxrpc_connection *conn)
net/rxrpc/ar-internal.h
1019
serial = conn->tx_serial;
net/rxrpc/ar-internal.h
1022
conn->tx_serial = serial + 1;
net/rxrpc/ar-internal.h
1029
static inline rxrpc_serial_t rxrpc_get_next_serials(struct rxrpc_connection *conn,
net/rxrpc/ar-internal.h
1034
serial = conn->tx_serial;
net/rxrpc/ar-internal.h
1037
conn->tx_serial = serial + n;
net/rxrpc/ar-internal.h
1054
struct rxrpc_connection *conn,
net/rxrpc/ar-internal.h
1177
void rxrpc_conn_retransmit_call(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/ar-internal.h
1179
int rxrpc_abort_conn(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/ar-internal.h
1183
bool rxrpc_input_conn_packet(struct rxrpc_connection *conn, struct sk_buff *skb);
net/rxrpc/ar-internal.h
1184
void rxrpc_input_conn_event(struct rxrpc_connection *conn, struct sk_buff *skb);
net/rxrpc/ar-internal.h
1186
static inline bool rxrpc_is_conn_aborted(const struct rxrpc_connection *conn)
net/rxrpc/ar-internal.h
1189
return smp_load_acquire(&conn->state) == RXRPC_CONN_ABORTED;
net/rxrpc/ar-internal.h
1198
void rxrpc_poke_conn(struct rxrpc_connection *conn, enum rxrpc_conn_trace why);
net/rxrpc/ar-internal.h
1216
static inline bool rxrpc_conn_is_client(const struct rxrpc_connection *conn)
net/rxrpc/ar-internal.h
1218
return conn->out_clientflag;
net/rxrpc/ar-internal.h
1221
static inline bool rxrpc_conn_is_service(const struct rxrpc_connection *conn)
net/rxrpc/ar-internal.h
1223
return !rxrpc_conn_is_client(conn);
net/rxrpc/ar-internal.h
1226
static inline void rxrpc_reduce_conn_timer(struct rxrpc_connection *conn,
net/rxrpc/ar-internal.h
1229
timer_reduce(&conn->timer, expire_at);
net/rxrpc/ar-internal.h
1285
void rxrpc_post_response(struct rxrpc_connection *conn, struct sk_buff *skb);
net/rxrpc/ar-internal.h
1396
void rxrpc_send_conn_abort(struct rxrpc_connection *conn);
net/rxrpc/ar-internal.h
1399
void rxrpc_send_response(struct rxrpc_connection *conn, struct sk_buff *skb);
net/rxrpc/ar-internal.h
1406
void rxrpc_input_probe_for_pmtud(struct rxrpc_connection *conn, rxrpc_serial_t acked_serial,
net/rxrpc/ar-internal.h
244
struct rxrpc_connection *conn; /* Connection referred to */
net/rxrpc/ar-internal.h
310
bool (*validate_challenge)(struct rxrpc_connection *conn,
net/rxrpc/ar-internal.h
316
int (*challenge_to_recvmsg)(struct rxrpc_connection *conn,
net/rxrpc/ar-internal.h
325
int (*respond_to_challenge)(struct rxrpc_connection *conn,
net/rxrpc/ar-internal.h
329
int (*verify_response)(struct rxrpc_connection *conn,
net/rxrpc/ar-internal.h
337
int (*default_decode_ticket)(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/ar-internal.h
715
struct rxrpc_connection *conn; /* connection carrying call */
net/rxrpc/call_accept.c
207
struct rxrpc_connection *conn = b->conn_backlog[tail];
net/rxrpc/call_accept.c
209
list_del(&conn->link);
net/rxrpc/call_accept.c
210
list_del(&conn->proc_link);
net/rxrpc/call_accept.c
212
kfree(conn);
net/rxrpc/call_accept.c
248
struct rxrpc_connection *conn,
net/rxrpc/call_accept.c
278
if (!conn) {
net/rxrpc/call_accept.c
293
conn = b->conn_backlog[conn_tail];
net/rxrpc/call_accept.c
297
conn->local = rxrpc_get_local(local, rxrpc_local_get_prealloc_conn);
net/rxrpc/call_accept.c
298
conn->peer = peer;
net/rxrpc/call_accept.c
299
rxrpc_see_connection(conn, rxrpc_conn_see_new_service_conn);
net/rxrpc/call_accept.c
300
rxrpc_new_incoming_connection(rx, conn, sec, skb);
net/rxrpc/call_accept.c
302
rxrpc_get_connection(conn, rxrpc_conn_get_service_conn);
net/rxrpc/call_accept.c
303
atomic_inc(&conn->active);
net/rxrpc/call_accept.c
313
call->local = rxrpc_get_local(conn->local, rxrpc_local_get_call);
net/rxrpc/call_accept.c
314
call->conn = conn;
net/rxrpc/call_accept.c
315
call->security = conn->security;
net/rxrpc/call_accept.c
316
call->security_ix = conn->security_ix;
net/rxrpc/call_accept.c
317
call->peer = rxrpc_get_peer(conn->peer, rxrpc_peer_get_accept);
net/rxrpc/call_accept.c
337
struct rxrpc_connection *conn,
net/rxrpc/call_accept.c
368
if (!conn) {
net/rxrpc/call_accept.c
382
call = rxrpc_alloc_incoming_call(rx, local, peer, conn, sec, peer_srx,
net/rxrpc/call_accept.c
394
conn = call->conn;
net/rxrpc/call_accept.c
400
spin_lock(&conn->state_lock);
net/rxrpc/call_accept.c
401
if (conn->state == RXRPC_CONN_SERVICE_UNSECURED) {
net/rxrpc/call_accept.c
402
conn->state = RXRPC_CONN_SERVICE_CHALLENGING;
net/rxrpc/call_accept.c
403
set_bit(RXRPC_CONN_EV_CHALLENGE, &call->conn->events);
net/rxrpc/call_accept.c
404
rxrpc_queue_conn(call->conn, rxrpc_conn_queue_challenge);
net/rxrpc/call_accept.c
406
spin_unlock(&conn->state_lock);
net/rxrpc/call_accept.c
84
struct rxrpc_connection *conn;
net/rxrpc/call_accept.c
86
conn = rxrpc_prealloc_service_connection(rxnet, gfp);
net/rxrpc/call_accept.c
87
if (!conn)
net/rxrpc/call_accept.c
89
b->conn_backlog[head] = conn;
net/rxrpc/call_event.c
491
(int)call->conn->hi_serial - (int)call->rx_serial > 0) {
net/rxrpc/call_object.c
445
struct rxrpc_connection *conn = call->conn;
net/rxrpc/call_object.c
449
_enter(",%d", call->conn->debug_id);
net/rxrpc/call_object.c
460
spin_lock(&conn->state_lock);
net/rxrpc/call_object.c
462
switch (conn->state) {
net/rxrpc/call_object.c
471
rxrpc_set_call_completion(call, conn->completion,
net/rxrpc/call_object.c
472
conn->abort_code, conn->error);
net/rxrpc/call_object.c
487
conn->channels[chan].call_counter = call->call_id;
net/rxrpc/call_object.c
488
conn->channels[chan].call_id = call->call_id;
net/rxrpc/call_object.c
489
conn->channels[chan].call = call;
net/rxrpc/call_object.c
490
spin_unlock(&conn->state_lock);
net/rxrpc/call_object.c
492
spin_lock(&conn->peer->lock);
net/rxrpc/call_object.c
493
hlist_add_head(&call->error_link, &conn->peer->error_targets);
net/rxrpc/call_object.c
494
spin_unlock(&conn->peer->lock);
net/rxrpc/call_object.c
567
struct rxrpc_connection *conn = call->conn;
net/rxrpc/call_object.c
599
_debug("RELEASE CALL %p (%d CONN %p)", call, call->debug_id, conn);
net/rxrpc/call_object.c
694
rxrpc_put_connection(call->conn, rxrpc_conn_put_call);
net/rxrpc/conn_client.c
154
struct rxrpc_connection *conn;
net/rxrpc/conn_client.c
161
conn = rxrpc_alloc_connection(rxnet, GFP_ATOMIC | __GFP_NOWARN);
net/rxrpc/conn_client.c
162
if (!conn)
net/rxrpc/conn_client.c
165
id = idr_alloc_cyclic(&local->conn_ids, conn, 1, 0x40000000,
net/rxrpc/conn_client.c
168
kfree(conn);
net/rxrpc/conn_client.c
172
refcount_set(&conn->ref, 1);
net/rxrpc/conn_client.c
173
conn->proto.cid = id << RXRPC_CIDSHIFT;
net/rxrpc/conn_client.c
174
conn->proto.epoch = local->rxnet->epoch;
net/rxrpc/conn_client.c
175
conn->out_clientflag = RXRPC_CLIENT_INITIATED;
net/rxrpc/conn_client.c
176
conn->bundle = rxrpc_get_bundle(bundle, rxrpc_bundle_get_client_conn);
net/rxrpc/conn_client.c
177
conn->local = rxrpc_get_local(bundle->local, rxrpc_local_get_client_conn);
net/rxrpc/conn_client.c
178
conn->peer = rxrpc_get_peer(bundle->peer, rxrpc_peer_get_client_conn);
net/rxrpc/conn_client.c
179
conn->key = key_get(bundle->key);
net/rxrpc/conn_client.c
180
conn->security = bundle->security;
net/rxrpc/conn_client.c
181
conn->exclusive = bundle->exclusive;
net/rxrpc/conn_client.c
182
conn->upgrade = bundle->upgrade;
net/rxrpc/conn_client.c
183
conn->orig_service_id = bundle->service_id;
net/rxrpc/conn_client.c
184
conn->security_level = bundle->security_level;
net/rxrpc/conn_client.c
185
conn->state = RXRPC_CONN_CLIENT_UNSECURED;
net/rxrpc/conn_client.c
186
conn->service_id = conn->orig_service_id;
net/rxrpc/conn_client.c
188
if (conn->security == &rxrpc_no_security)
net/rxrpc/conn_client.c
189
conn->state = RXRPC_CONN_CLIENT;
net/rxrpc/conn_client.c
193
list_add_tail(&conn->proc_link, &rxnet->conn_proc_list);
net/rxrpc/conn_client.c
196
rxrpc_see_connection(conn, rxrpc_conn_new_client);
net/rxrpc/conn_client.c
199
trace_rxrpc_client(conn, -1, rxrpc_client_alloc);
net/rxrpc/conn_client.c
200
return conn;
net/rxrpc/conn_client.c
206
static bool rxrpc_may_reuse_conn(struct rxrpc_connection *conn)
net/rxrpc/conn_client.c
211
if (!conn)
net/rxrpc/conn_client.c
214
rxnet = conn->rxnet;
net/rxrpc/conn_client.c
215
if (test_bit(RXRPC_CONN_DONT_REUSE, &conn->flags))
net/rxrpc/conn_client.c
218
if ((conn->state != RXRPC_CONN_CLIENT_UNSECURED &&
net/rxrpc/conn_client.c
219
conn->state != RXRPC_CONN_CLIENT) ||
net/rxrpc/conn_client.c
220
conn->proto.epoch != rxnet->epoch)
net/rxrpc/conn_client.c
229
id_cursor = idr_get_cursor(&conn->local->conn_ids);
net/rxrpc/conn_client.c
230
id = conn->proto.cid >> RXRPC_CIDSHIFT;
net/rxrpc/conn_client.c
241
set_bit(RXRPC_CONN_DONT_REUSE, &conn->flags);
net/rxrpc/conn_client.c
341
struct rxrpc_connection *conn, *old;
net/rxrpc/conn_client.c
353
conn = rxrpc_alloc_client_connection(bundle);
net/rxrpc/conn_client.c
354
if (IS_ERR(conn)) {
net/rxrpc/conn_client.c
355
bundle->alloc_error = PTR_ERR(conn);
net/rxrpc/conn_client.c
360
conn->bundle_shift = shift;
net/rxrpc/conn_client.c
361
bundle->conns[slot] = conn;
net/rxrpc/conn_client.c
362
bundle->conn_ids[slot] = conn->debug_id;
net/rxrpc/conn_client.c
412
static void rxrpc_activate_one_channel(struct rxrpc_connection *conn,
net/rxrpc/conn_client.c
415
struct rxrpc_channel *chan = &conn->channels[channel];
net/rxrpc/conn_client.c
416
struct rxrpc_bundle *bundle = conn->bundle;
net/rxrpc/conn_client.c
421
_enter("C=%x,%u", conn->debug_id, channel);
net/rxrpc/conn_client.c
425
trace_rxrpc_client(conn, channel, rxrpc_client_chan_activate);
net/rxrpc/conn_client.c
430
clear_bit(RXRPC_CONN_FINAL_ACK_0 + channel, &conn->flags);
net/rxrpc/conn_client.c
431
clear_bit(conn->bundle_shift + channel, &bundle->avail_chans);
net/rxrpc/conn_client.c
434
call->conn = rxrpc_get_connection(conn, rxrpc_conn_get_activate_call);
net/rxrpc/conn_client.c
435
call->cid = conn->proto.cid | channel;
net/rxrpc/conn_client.c
437
call->dest_srx.srx_service = conn->service_id;
net/rxrpc/conn_client.c
459
static void rxrpc_unidle_conn(struct rxrpc_connection *conn)
net/rxrpc/conn_client.c
46
struct rxrpc_connection *conn)
net/rxrpc/conn_client.c
461
if (!list_empty(&conn->cache_link)) {
net/rxrpc/conn_client.c
462
list_del_init(&conn->cache_link);
net/rxrpc/conn_client.c
463
rxrpc_put_connection(conn, rxrpc_conn_put_unidle);
net/rxrpc/conn_client.c
472
struct rxrpc_connection *conn;
net/rxrpc/conn_client.c
48
idr_remove(&local->conn_ids, conn->proto.cid >> RXRPC_CIDSHIFT);
net/rxrpc/conn_client.c
491
conn = bundle->conns[slot];
net/rxrpc/conn_client.c
492
if (!conn)
net/rxrpc/conn_client.c
496
set_bit(RXRPC_CONN_PROBING_FOR_UPGRADE, &conn->flags);
net/rxrpc/conn_client.c
497
rxrpc_unidle_conn(conn);
net/rxrpc/conn_client.c
500
conn->act_chans |= 1 << channel;
net/rxrpc/conn_client.c
501
rxrpc_activate_one_channel(conn, channel);
net/rxrpc/conn_client.c
536
struct rxrpc_connection *conn = call->conn;
net/rxrpc/conn_client.c
537
struct rxrpc_channel *chan = &conn->channels[channel];
net/rxrpc/conn_client.c
547
set_bit(RXRPC_CONN_DONT_REUSE, &conn->flags);
net/rxrpc/conn_client.c
548
trace_rxrpc_client(conn, channel, rxrpc_client_exposed);
net/rxrpc/conn_client.c
56
struct rxrpc_connection *conn;
net/rxrpc/conn_client.c
575
struct rxrpc_connection *conn;
net/rxrpc/conn_client.c
587
conn = call->conn;
net/rxrpc/conn_client.c
588
if (!conn) {
net/rxrpc/conn_client.c
60
idr_for_each_entry(&local->conn_ids, conn, id) {
net/rxrpc/conn_client.c
601
chan = &conn->channels[channel];
net/rxrpc/conn_client.c
602
trace_rxrpc_client(conn, channel, rxrpc_client_chan_disconnect);
net/rxrpc/conn_client.c
607
may_reuse = rxrpc_may_reuse_conn(conn);
net/rxrpc/conn_client.c
62
conn, refcount_read(&conn->ref));
net/rxrpc/conn_client.c
620
__rxrpc_disconnect_call(conn, call);
net/rxrpc/conn_client.c
622
if (test_and_clear_bit(RXRPC_CONN_PROBING_FOR_UPGRADE, &conn->flags)) {
net/rxrpc/conn_client.c
623
trace_rxrpc_client(conn, channel, rxrpc_client_to_active);
net/rxrpc/conn_client.c
632
trace_rxrpc_client(conn, channel, rxrpc_client_chan_pass);
net/rxrpc/conn_client.c
633
rxrpc_activate_one_channel(conn, channel);
net/rxrpc/conn_client.c
647
set_bit(RXRPC_CONN_FINAL_ACK_0 + channel, &conn->flags);
net/rxrpc/conn_client.c
648
rxrpc_reduce_conn_timer(conn, final_ack_at);
net/rxrpc/conn_client.c
653
set_bit(conn->bundle_shift + channel, &conn->bundle->avail_chans);
net/rxrpc/conn_client.c
654
conn->act_chans &= ~(1 << channel);
net/rxrpc/conn_client.c
660
if (!conn->act_chans) {
net/rxrpc/conn_client.c
661
trace_rxrpc_client(conn, channel, rxrpc_client_to_idle);
net/rxrpc/conn_client.c
662
conn->idle_timestamp = jiffies;
net/rxrpc/conn_client.c
664
rxrpc_get_connection(conn, rxrpc_conn_get_idle);
net/rxrpc/conn_client.c
665
list_move_tail(&conn->cache_link, &local->idle_client_conns);
net/rxrpc/conn_client.c
674
static void rxrpc_unbundle_conn(struct rxrpc_connection *conn)
net/rxrpc/conn_client.c
676
struct rxrpc_bundle *bundle = conn->bundle;
net/rxrpc/conn_client.c
680
_enter("C=%x", conn->debug_id);
net/rxrpc/conn_client.c
682
if (conn->flags & RXRPC_CONN_FINAL_ACK_MASK)
net/rxrpc/conn_client.c
683
rxrpc_process_delayed_final_acks(conn, true);
net/rxrpc/conn_client.c
685
bindex = conn->bundle_shift / RXRPC_MAXCALLS;
net/rxrpc/conn_client.c
686
if (bundle->conns[bindex] == conn) {
net/rxrpc/conn_client.c
691
clear_bit(conn->bundle_shift + i, &bundle->avail_chans);
net/rxrpc/conn_client.c
692
rxrpc_put_client_connection_id(bundle->local, conn);
net/rxrpc/conn_client.c
694
rxrpc_put_connection(conn, rxrpc_conn_put_unbundle);
net/rxrpc/conn_client.c
726
void rxrpc_kill_client_conn(struct rxrpc_connection *conn)
net/rxrpc/conn_client.c
728
struct rxrpc_local *local = conn->local;
net/rxrpc/conn_client.c
731
_enter("C=%x", conn->debug_id);
net/rxrpc/conn_client.c
733
trace_rxrpc_client(conn, -1, rxrpc_client_cleanup);
net/rxrpc/conn_client.c
736
rxrpc_put_client_connection_id(local, conn);
net/rxrpc/conn_client.c
748
struct rxrpc_connection *conn;
net/rxrpc/conn_client.c
760
conn = list_first_entry_or_null(&local->idle_client_conns,
net/rxrpc/conn_client.c
762
if (!conn)
net/rxrpc/conn_client.c
774
if (conn->local->service_closed)
net/rxrpc/conn_client.c
777
conn_expires_at = conn->idle_timestamp + expiry;
net/rxrpc/conn_client.c
784
atomic_dec(&conn->active);
net/rxrpc/conn_client.c
785
trace_rxrpc_client(conn, -1, rxrpc_client_discard);
net/rxrpc/conn_client.c
786
list_del_init(&conn->cache_link);
net/rxrpc/conn_client.c
788
rxrpc_unbundle_conn(conn);
net/rxrpc/conn_client.c
790
rxrpc_put_connection(conn, rxrpc_conn_put_discard_idle);
net/rxrpc/conn_client.c
815
struct rxrpc_connection *conn;
net/rxrpc/conn_client.c
823
while ((conn = list_first_entry_or_null(&local->idle_client_conns,
net/rxrpc/conn_client.c
825
list_del_init(&conn->cache_link);
net/rxrpc/conn_client.c
826
atomic_dec(&conn->active);
net/rxrpc/conn_client.c
827
trace_rxrpc_client(conn, -1, rxrpc_client_discard);
net/rxrpc/conn_client.c
828
rxrpc_unbundle_conn(conn);
net/rxrpc/conn_client.c
829
rxrpc_put_connection(conn, rxrpc_conn_put_local_dead);
net/rxrpc/conn_event.c
105
_enter("%d", conn->debug_id);
net/rxrpc/conn_event.c
115
chan = &conn->channels[channel];
net/rxrpc/conn_event.c
124
msg.msg_name = &conn->peer->srx.transport;
net/rxrpc/conn_event.c
125
msg.msg_namelen = conn->peer->srx.transport_len;
net/rxrpc/conn_event.c
137
serial = rxrpc_get_next_serial(conn);
net/rxrpc/conn_event.c
139
pkt.whdr.epoch = htonl(conn->proto.epoch);
net/rxrpc/conn_event.c
140
pkt.whdr.cid = htonl(conn->proto.cid | channel);
net/rxrpc/conn_event.c
145
pkt.whdr.flags = conn->out_clientflag;
net/rxrpc/conn_event.c
147
pkt.whdr.securityIndex = conn->security_ix;
net/rxrpc/conn_event.c
149
pkt.whdr.serviceId = htons(conn->service_id);
net/rxrpc/conn_event.c
161
if_mtu = conn->peer->if_mtu - conn->peer->hdrsize;
net/rxrpc/conn_event.c
162
if (conn->peer->ackr_adv_pmtud) {
net/rxrpc/conn_event.c
163
max_mtu = umax(conn->peer->max_data, rxrpc_rx_mtu);
net/rxrpc/conn_event.c
196
ret = kernel_sendmsg(conn->local->socket, &msg, iov, ioc, len);
net/rxrpc/conn_event.c
197
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/conn_event.c
211
static void rxrpc_abort_calls(struct rxrpc_connection *conn)
net/rxrpc/conn_event.c
216
_enter("{%d},%x", conn->debug_id, conn->abort_code);
net/rxrpc/conn_event.c
219
call = conn->channels[i].call;
net/rxrpc/conn_event.c
22
static bool rxrpc_set_conn_aborted(struct rxrpc_connection *conn,
net/rxrpc/conn_event.c
223
conn->completion,
net/rxrpc/conn_event.c
224
conn->abort_code,
net/rxrpc/conn_event.c
225
conn->error);
net/rxrpc/conn_event.c
243
static int rxrpc_verify_response(struct rxrpc_connection *conn,
net/rxrpc/conn_event.c
258
ret = conn->security->verify_response(conn, skb, buffer, len);
net/rxrpc/conn_event.c
268
static int rxrpc_process_event(struct rxrpc_connection *conn,
net/rxrpc/conn_event.c
275
if (conn->state == RXRPC_CONN_ABORTED)
net/rxrpc/conn_event.c
278
_enter("{%d},{%u,%%%u},", conn->debug_id, sp->hdr.type, sp->hdr.serial);
net/rxrpc/conn_event.c
28
if (conn->state != RXRPC_CONN_ABORTED) {
net/rxrpc/conn_event.c
282
ret = conn->security->respond_to_challenge(conn, skb);
net/rxrpc/conn_event.c
283
sp->chall.conn = NULL;
net/rxrpc/conn_event.c
284
rxrpc_put_connection(conn, rxrpc_conn_put_challenge_input);
net/rxrpc/conn_event.c
288
spin_lock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
289
if (conn->state != RXRPC_CONN_SERVICE_CHALLENGING) {
net/rxrpc/conn_event.c
29
spin_lock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
290
spin_unlock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
293
spin_unlock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
295
ret = rxrpc_verify_response(conn, skb);
net/rxrpc/conn_event.c
299
ret = conn->security->init_connection_security(
net/rxrpc/conn_event.c
30
if (conn->state != RXRPC_CONN_ABORTED) {
net/rxrpc/conn_event.c
300
conn, conn->key->payload.data[0]);
net/rxrpc/conn_event.c
304
spin_lock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
305
if (conn->state == RXRPC_CONN_SERVICE_CHALLENGING) {
net/rxrpc/conn_event.c
306
conn->state = RXRPC_CONN_SERVICE;
net/rxrpc/conn_event.c
309
spin_unlock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
31
conn->abort_code = abort_code;
net/rxrpc/conn_event.c
317
conn, rxrpc_conn_get_poke_secured);
net/rxrpc/conn_event.c
32
conn->error = err;
net/rxrpc/conn_event.c
320
skb_queue_head(&conn->local->rx_queue, skb);
net/rxrpc/conn_event.c
321
rxrpc_wake_up_io_thread(conn->local);
net/rxrpc/conn_event.c
33
conn->completion = compl;
net/rxrpc/conn_event.c
334
static void rxrpc_secure_connection(struct rxrpc_connection *conn)
net/rxrpc/conn_event.c
336
if (conn->security->issue_challenge(conn) < 0)
net/rxrpc/conn_event.c
337
rxrpc_abort_conn(conn, NULL, RX_CALL_DEAD, -ENOMEM,
net/rxrpc/conn_event.c
344
void rxrpc_process_delayed_final_acks(struct rxrpc_connection *conn, bool force)
net/rxrpc/conn_event.c
35
smp_store_release(&conn->state, RXRPC_CONN_ABORTED);
net/rxrpc/conn_event.c
354
struct rxrpc_channel *chan = &conn->channels[channel];
net/rxrpc/conn_event.c
357
if (!test_bit(RXRPC_CONN_FINAL_ACK_0 + channel, &conn->flags))
net/rxrpc/conn_event.c
36
set_bit(RXRPC_CONN_DONT_REUSE, &conn->flags);
net/rxrpc/conn_event.c
37
set_bit(RXRPC_CONN_EV_ABORT_CALLS, &conn->events);
net/rxrpc/conn_event.c
370
&conn->flags))
net/rxrpc/conn_event.c
371
rxrpc_conn_retransmit_call(conn, NULL, channel);
net/rxrpc/conn_event.c
378
rxrpc_reduce_conn_timer(conn, next_j);
net/rxrpc/conn_event.c
384
static void rxrpc_do_process_connection(struct rxrpc_connection *conn)
net/rxrpc/conn_event.c
388
if (test_and_clear_bit(RXRPC_CONN_EV_CHALLENGE, &conn->events))
net/rxrpc/conn_event.c
389
rxrpc_secure_connection(conn);
net/rxrpc/conn_event.c
393
while ((skb = skb_dequeue(&conn->rx_queue))) {
net/rxrpc/conn_event.c
395
rxrpc_process_event(conn, skb);
net/rxrpc/conn_event.c
40
spin_unlock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
402
struct rxrpc_connection *conn =
net/rxrpc/conn_event.c
405
rxrpc_see_connection(conn, rxrpc_conn_see_work);
net/rxrpc/conn_event.c
407
if (__rxrpc_use_local(conn->local, rxrpc_local_use_conn_work)) {
net/rxrpc/conn_event.c
408
rxrpc_do_process_connection(conn);
net/rxrpc/conn_event.c
409
rxrpc_unuse_local(conn->local, rxrpc_local_unuse_conn_work);
net/rxrpc/conn_event.c
418
static void rxrpc_post_packet_to_conn(struct rxrpc_connection *conn,
net/rxrpc/conn_event.c
421
_enter("%p,%p", conn, skb);
net/rxrpc/conn_event.c
424
skb_queue_tail(&conn->rx_queue, skb);
net/rxrpc/conn_event.c
425
rxrpc_queue_conn(conn, rxrpc_conn_queue_rx_work);
net/rxrpc/conn_event.c
433
static bool rxrpc_post_challenge(struct rxrpc_connection *conn,
net/rxrpc/conn_event.c
441
sp->chall.conn =
net/rxrpc/conn_event.c
442
rxrpc_get_connection(conn, rxrpc_conn_get_challenge_input);
net/rxrpc/conn_event.c
444
if (!conn->security->challenge_to_recvmsg) {
net/rxrpc/conn_event.c
445
rxrpc_post_packet_to_conn(conn, skb);
net/rxrpc/conn_event.c
451
for (int i = 0; i < ARRAY_SIZE(conn->channels); i++) {
net/rxrpc/conn_event.c
452
if (conn->channels[i].call) {
net/rxrpc/conn_event.c
453
call = conn->channels[i].call;
net/rxrpc/conn_event.c
469
rxrpc_put_connection(conn, rxrpc_conn_put_challenge_input);
net/rxrpc/conn_event.c
470
sp->chall.conn = NULL;
net/rxrpc/conn_event.c
478
rxrpc_put_connection(conn, rxrpc_conn_put_challenge_input);
net/rxrpc/conn_event.c
479
sp->chall.conn = NULL;
net/rxrpc/conn_event.c
484
rxrpc_post_packet_to_conn(conn, skb);
net/rxrpc/conn_event.c
49
int rxrpc_abort_conn(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/conn_event.c
491
bool rxrpc_input_conn_packet(struct rxrpc_connection *conn, struct sk_buff *skb)
net/rxrpc/conn_event.c
501
if (rxrpc_is_conn_aborted(conn))
net/rxrpc/conn_event.c
503
rxrpc_input_conn_abort(conn, skb);
net/rxrpc/conn_event.c
504
rxrpc_abort_calls(conn);
net/rxrpc/conn_event.c
509
if (rxrpc_is_conn_aborted(conn)) {
net/rxrpc/conn_event.c
510
if (conn->completion == RXRPC_CALL_LOCALLY_ABORTED)
net/rxrpc/conn_event.c
511
rxrpc_send_conn_abort(conn);
net/rxrpc/conn_event.c
514
if (!conn->security->validate_challenge(conn, skb))
net/rxrpc/conn_event.c
516
return rxrpc_post_challenge(conn, skb);
net/rxrpc/conn_event.c
519
if (rxrpc_is_conn_aborted(conn)) {
net/rxrpc/conn_event.c
520
if (conn->completion == RXRPC_CALL_LOCALLY_ABORTED)
net/rxrpc/conn_event.c
521
rxrpc_send_conn_abort(conn);
net/rxrpc/conn_event.c
524
rxrpc_post_packet_to_conn(conn, skb);
net/rxrpc/conn_event.c
53
u32 cid = conn->proto.cid, call = 0, seq = 0;
net/rxrpc/conn_event.c
536
void rxrpc_input_conn_event(struct rxrpc_connection *conn, struct sk_buff *skb)
net/rxrpc/conn_event.c
540
if (test_and_clear_bit(RXRPC_CONN_EV_ABORT_CALLS, &conn->events))
net/rxrpc/conn_event.c
541
rxrpc_abort_calls(conn);
net/rxrpc/conn_event.c
543
if (conn->tx_response) {
net/rxrpc/conn_event.c
546
spin_lock_irq(&conn->local->lock);
net/rxrpc/conn_event.c
547
skb = conn->tx_response;
net/rxrpc/conn_event.c
548
conn->tx_response = NULL;
net/rxrpc/conn_event.c
549
spin_unlock_irq(&conn->local->lock);
net/rxrpc/conn_event.c
551
if (conn->state != RXRPC_CONN_ABORTED)
net/rxrpc/conn_event.c
552
rxrpc_send_response(conn, skb);
net/rxrpc/conn_event.c
559
if (conn->state != RXRPC_CONN_SERVICE)
net/rxrpc/conn_event.c
563
rxrpc_call_is_secure(conn->channels[loop].call);
net/rxrpc/conn_event.c
569
if (conn->flags & RXRPC_CONN_FINAL_ACK_MASK)
net/rxrpc/conn_event.c
570
rxrpc_process_delayed_final_acks(conn, false);
net/rxrpc/conn_event.c
576
void rxrpc_post_response(struct rxrpc_connection *conn, struct sk_buff *skb)
net/rxrpc/conn_event.c
579
struct rxrpc_local *local = conn->local;
net/rxrpc/conn_event.c
585
old = conn->tx_response;
net/rxrpc/conn_event.c
591
conn->tx_response = skb;
net/rxrpc/conn_event.c
595
conn->tx_response = skb;
net/rxrpc/conn_event.c
598
rxrpc_poke_conn(conn, rxrpc_conn_get_poke_response);
net/rxrpc/conn_event.c
63
if (rxrpc_set_conn_aborted(conn, abort_code, err,
net/rxrpc/conn_event.c
66
rxrpc_poke_conn(conn, rxrpc_conn_get_poke_abort);
net/rxrpc/conn_event.c
74
static void rxrpc_input_conn_abort(struct rxrpc_connection *conn,
net/rxrpc/conn_event.c
77
trace_rxrpc_rx_conn_abort(conn, skb);
net/rxrpc/conn_event.c
78
rxrpc_set_conn_aborted(conn, skb->priority, -ECONNABORTED,
net/rxrpc/conn_event.c
85
void rxrpc_conn_retransmit_call(struct rxrpc_connection *conn,
net/rxrpc/conn_object.c
101
struct rxrpc_connection *conn;
net/rxrpc/conn_object.c
110
conn = idr_find(&local->conn_ids, sp->hdr.cid >> RXRPC_CIDSHIFT);
net/rxrpc/conn_object.c
111
if (!conn || refcount_read(&conn->ref) == 0) {
net/rxrpc/conn_object.c
116
if (conn->proto.epoch != sp->hdr.epoch ||
net/rxrpc/conn_object.c
117
conn->local != local)
net/rxrpc/conn_object.c
120
peer = conn->peer;
net/rxrpc/conn_object.c
138
_leave(" = %p", conn);
net/rxrpc/conn_object.c
139
return conn;
net/rxrpc/conn_object.c
151
void __rxrpc_disconnect_call(struct rxrpc_connection *conn,
net/rxrpc/conn_object.c
155
&conn->channels[call->cid & RXRPC_CHANNELMASK];
net/rxrpc/conn_object.c
157
_enter("%d,%x", conn->debug_id, call->cid);
net/rxrpc/conn_object.c
193
struct rxrpc_connection *conn = call->conn;
net/rxrpc/conn_object.c
209
__rxrpc_disconnect_call(conn, call);
net/rxrpc/conn_object.c
210
conn->idle_timestamp = jiffies;
net/rxrpc/conn_object.c
211
if (atomic_dec_and_test(&conn->active))
net/rxrpc/conn_object.c
212
rxrpc_set_service_reap_timer(conn->rxnet,
net/rxrpc/conn_object.c
223
void rxrpc_queue_conn(struct rxrpc_connection *conn, enum rxrpc_conn_trace why)
net/rxrpc/conn_object.c
225
if (atomic_read(&conn->active) >= 0 &&
net/rxrpc/conn_object.c
226
rxrpc_queue_work(&conn->processor))
net/rxrpc/conn_object.c
227
rxrpc_see_connection(conn, why);
net/rxrpc/conn_object.c
233
void rxrpc_see_connection(struct rxrpc_connection *conn,
net/rxrpc/conn_object.c
236
if (conn) {
net/rxrpc/conn_object.c
237
int r = refcount_read(&conn->ref);
net/rxrpc/conn_object.c
239
trace_rxrpc_conn(conn->debug_id, r, why);
net/rxrpc/conn_object.c
246
struct rxrpc_connection *rxrpc_get_connection(struct rxrpc_connection *conn,
net/rxrpc/conn_object.c
251
__refcount_inc(&conn->ref, &r);
net/rxrpc/conn_object.c
252
trace_rxrpc_conn(conn->debug_id, r + 1, why);
net/rxrpc/conn_object.c
253
return conn;
net/rxrpc/conn_object.c
26
void rxrpc_poke_conn(struct rxrpc_connection *conn, enum rxrpc_conn_trace why)
net/rxrpc/conn_object.c
260
rxrpc_get_connection_maybe(struct rxrpc_connection *conn,
net/rxrpc/conn_object.c
265
if (conn) {
net/rxrpc/conn_object.c
266
if (__refcount_inc_not_zero(&conn->ref, &r))
net/rxrpc/conn_object.c
267
trace_rxrpc_conn(conn->debug_id, r + 1, why);
net/rxrpc/conn_object.c
269
conn = NULL;
net/rxrpc/conn_object.c
271
return conn;
net/rxrpc/conn_object.c
28
struct rxrpc_local *local = conn->local;
net/rxrpc/conn_object.c
289
struct rxrpc_connection *conn =
net/rxrpc/conn_object.c
291
struct rxrpc_net *rxnet = conn->rxnet;
net/rxrpc/conn_object.c
293
_enter("{%d,u=%d}", conn->debug_id, refcount_read(&conn->ref));
net/rxrpc/conn_object.c
295
trace_rxrpc_conn(conn->debug_id, refcount_read(&conn->ref),
net/rxrpc/conn_object.c
297
kfree(conn);
net/rxrpc/conn_object.c
308
struct rxrpc_connection *conn =
net/rxrpc/conn_object.c
310
struct rxrpc_net *rxnet = conn->rxnet;
net/rxrpc/conn_object.c
312
ASSERT(!conn->channels[0].call &&
net/rxrpc/conn_object.c
313
!conn->channels[1].call &&
net/rxrpc/conn_object.c
314
!conn->channels[2].call &&
net/rxrpc/conn_object.c
315
!conn->channels[3].call);
net/rxrpc/conn_object.c
316
ASSERT(list_empty(&conn->cache_link));
net/rxrpc/conn_object.c
318
timer_delete_sync(&conn->timer);
net/rxrpc/conn_object.c
319
cancel_work_sync(&conn->processor); /* Processing may restart the timer */
net/rxrpc/conn_object.c
320
timer_delete_sync(&conn->timer);
net/rxrpc/conn_object.c
323
list_del_init(&conn->proc_link);
net/rxrpc/conn_object.c
326
if (conn->pmtud_probe) {
net/rxrpc/conn_object.c
327
trace_rxrpc_pmtud_lost(conn, 0);
net/rxrpc/conn_object.c
328
conn->peer->pmtud_probing = false;
net/rxrpc/conn_object.c
329
conn->peer->pmtud_pending = true;
net/rxrpc/conn_object.c
332
rxrpc_purge_queue(&conn->rx_queue);
net/rxrpc/conn_object.c
333
rxrpc_free_skb(conn->tx_response, rxrpc_skb_put_response);
net/rxrpc/conn_object.c
335
rxrpc_kill_client_conn(conn);
net/rxrpc/conn_object.c
337
conn->security->clear(conn);
net/rxrpc/conn_object.c
338
key_put(conn->key);
net/rxrpc/conn_object.c
339
rxrpc_put_bundle(conn->bundle, rxrpc_bundle_put_conn);
net/rxrpc/conn_object.c
340
rxrpc_put_peer(conn->peer, rxrpc_peer_put_conn);
net/rxrpc/conn_object.c
341
rxrpc_put_local(conn->local, rxrpc_local_put_kill_conn);
net/rxrpc/conn_object.c
347
rxrpc_purge_queue(&conn->rx_queue);
net/rxrpc/conn_object.c
349
page_frag_cache_drain(&conn->tx_data_alloc);
net/rxrpc/conn_object.c
35
busy = !list_empty(&conn->attend_link);
net/rxrpc/conn_object.c
350
call_rcu(&conn->rcu, rxrpc_rcu_free_connection);
net/rxrpc/conn_object.c
356
void rxrpc_put_connection(struct rxrpc_connection *conn,
net/rxrpc/conn_object.c
363
if (!conn)
net/rxrpc/conn_object.c
366
debug_id = conn->debug_id;
net/rxrpc/conn_object.c
367
dead = __refcount_dec_and_test(&conn->ref, &r);
net/rxrpc/conn_object.c
37
rxrpc_get_connection(conn, why);
net/rxrpc/conn_object.c
370
timer_delete(&conn->timer);
net/rxrpc/conn_object.c
371
cancel_work(&conn->processor);
net/rxrpc/conn_object.c
373
if (in_softirq() || work_busy(&conn->processor) ||
net/rxrpc/conn_object.c
374
timer_pending(&conn->timer))
net/rxrpc/conn_object.c
378
schedule_work(&conn->destructor);
net/rxrpc/conn_object.c
38
list_add_tail(&conn->attend_link, &local->conn_attend_q);
net/rxrpc/conn_object.c
380
rxrpc_clean_up_connection(&conn->destructor);
net/rxrpc/conn_object.c
389
struct rxrpc_connection *conn, *_p;
net/rxrpc/conn_object.c
403
list_for_each_entry_safe(conn, _p, &rxnet->service_conns, link) {
net/rxrpc/conn_object.c
404
ASSERTCMP(atomic_read(&conn->active), >=, 0);
net/rxrpc/conn_object.c
405
if (likely(atomic_read(&conn->active) > 0))
net/rxrpc/conn_object.c
407
if (conn->state == RXRPC_CONN_SERVICE_PREALLOC)
net/rxrpc/conn_object.c
410
if (rxnet->live && !conn->local->dead) {
net/rxrpc/conn_object.c
411
idle_timestamp = READ_ONCE(conn->idle_timestamp);
net/rxrpc/conn_object.c
413
if (conn->local->service_closed)
net/rxrpc/conn_object.c
417
conn->debug_id, atomic_read(&conn->active),
net/rxrpc/conn_object.c
431
if (!atomic_try_cmpxchg(&conn->active, &active, -1))
net/rxrpc/conn_object.c
433
rxrpc_see_connection(conn, rxrpc_conn_see_reap_service);
net/rxrpc/conn_object.c
435
if (rxrpc_conn_is_client(conn))
net/rxrpc/conn_object.c
438
rxrpc_unpublish_service_conn(conn);
net/rxrpc/conn_object.c
440
list_move_tail(&conn->link, &graveyard);
net/rxrpc/conn_object.c
451
conn = list_entry(graveyard.next, struct rxrpc_connection,
net/rxrpc/conn_object.c
453
list_del_init(&conn->link);
net/rxrpc/conn_object.c
455
ASSERTCMP(atomic_read(&conn->active), ==, -1);
net/rxrpc/conn_object.c
456
rxrpc_put_connection(conn, rxrpc_conn_put_service_reaped);
net/rxrpc/conn_object.c
46
struct rxrpc_connection *conn =
net/rxrpc/conn_object.c
468
struct rxrpc_connection *conn, *_p;
net/rxrpc/conn_object.c
480
list_for_each_entry_safe(conn, _p, &rxnet->service_conns, link) {
net/rxrpc/conn_object.c
482
conn, refcount_read(&conn->ref));
net/rxrpc/conn_object.c
49
rxrpc_poke_conn(conn, rxrpc_conn_get_poke_timer);
net/rxrpc/conn_object.c
58
struct rxrpc_connection *conn;
net/rxrpc/conn_object.c
62
conn = kzalloc_obj(struct rxrpc_connection, gfp);
net/rxrpc/conn_object.c
63
if (conn) {
net/rxrpc/conn_object.c
64
INIT_LIST_HEAD(&conn->cache_link);
net/rxrpc/conn_object.c
65
timer_setup(&conn->timer, &rxrpc_connection_timer, 0);
net/rxrpc/conn_object.c
66
INIT_WORK(&conn->processor, rxrpc_process_connection);
net/rxrpc/conn_object.c
67
INIT_WORK(&conn->destructor, rxrpc_clean_up_connection);
net/rxrpc/conn_object.c
68
INIT_LIST_HEAD(&conn->proc_link);
net/rxrpc/conn_object.c
69
INIT_LIST_HEAD(&conn->link);
net/rxrpc/conn_object.c
70
INIT_LIST_HEAD(&conn->attend_link);
net/rxrpc/conn_object.c
71
mutex_init(&conn->security_lock);
net/rxrpc/conn_object.c
72
mutex_init(&conn->tx_data_alloc_lock);
net/rxrpc/conn_object.c
73
skb_queue_head_init(&conn->rx_queue);
net/rxrpc/conn_object.c
74
conn->rxnet = rxnet;
net/rxrpc/conn_object.c
75
conn->security = &rxrpc_no_security;
net/rxrpc/conn_object.c
76
rwlock_init(&conn->security_use_lock);
net/rxrpc/conn_object.c
77
spin_lock_init(&conn->state_lock);
net/rxrpc/conn_object.c
78
conn->debug_id = atomic_inc_return(&rxrpc_debug_id);
net/rxrpc/conn_object.c
79
conn->idle_timestamp = jiffies;
net/rxrpc/conn_object.c
82
_leave(" = %p{%d}", conn, conn ? conn->debug_id : 0);
net/rxrpc/conn_object.c
83
return conn;
net/rxrpc/conn_service.c
110
&conn->service_node,
net/rxrpc/conn_service.c
123
struct rxrpc_connection *conn = rxrpc_alloc_connection(rxnet, gfp);
net/rxrpc/conn_service.c
125
if (conn) {
net/rxrpc/conn_service.c
129
conn->state = RXRPC_CONN_SERVICE_PREALLOC;
net/rxrpc/conn_service.c
130
refcount_set(&conn->ref, 2);
net/rxrpc/conn_service.c
134
list_add_tail(&conn->link, &rxnet->service_conns);
net/rxrpc/conn_service.c
135
list_add_tail(&conn->proc_link, &rxnet->conn_proc_list);
net/rxrpc/conn_service.c
138
rxrpc_see_connection(conn, rxrpc_conn_new_service);
net/rxrpc/conn_service.c
141
return conn;
net/rxrpc/conn_service.c
149
struct rxrpc_connection *conn,
net/rxrpc/conn_service.c
157
conn->proto.epoch = sp->hdr.epoch;
net/rxrpc/conn_service.c
158
conn->proto.cid = sp->hdr.cid & RXRPC_CIDMASK;
net/rxrpc/conn_service.c
159
conn->orig_service_id = sp->hdr.serviceId;
net/rxrpc/conn_service.c
160
conn->service_id = sp->hdr.serviceId;
net/rxrpc/conn_service.c
161
conn->security_ix = sp->hdr.securityIndex;
net/rxrpc/conn_service.c
162
conn->out_clientflag = 0;
net/rxrpc/conn_service.c
163
conn->security = sec;
net/rxrpc/conn_service.c
164
if (conn->security_ix)
net/rxrpc/conn_service.c
165
conn->state = RXRPC_CONN_SERVICE_UNSECURED;
net/rxrpc/conn_service.c
167
conn->state = RXRPC_CONN_SERVICE;
net/rxrpc/conn_service.c
174
conn->service_id == rx->service_upgrade.from)
net/rxrpc/conn_service.c
175
conn->service_id = rx->service_upgrade.to;
net/rxrpc/conn_service.c
177
atomic_set(&conn->active, 1);
net/rxrpc/conn_service.c
180
rxrpc_publish_service_conn(conn->peer, conn);
net/rxrpc/conn_service.c
187
void rxrpc_unpublish_service_conn(struct rxrpc_connection *conn)
net/rxrpc/conn_service.c
189
struct rxrpc_peer *peer = conn->peer;
net/rxrpc/conn_service.c
192
if (test_and_clear_bit(RXRPC_CONN_IN_SERVICE_CONNS, &conn->flags))
net/rxrpc/conn_service.c
193
rb_erase(&conn->service_node, &peer->service_conns);
net/rxrpc/conn_service.c
24
struct rxrpc_connection *conn = NULL;
net/rxrpc/conn_service.c
43
conn = rb_entry(p, struct rxrpc_connection, service_node);
net/rxrpc/conn_service.c
45
if (conn->proto.index_key < k.index_key)
net/rxrpc/conn_service.c
47
else if (conn->proto.index_key > k.index_key)
net/rxrpc/conn_service.c
51
conn = NULL;
net/rxrpc/conn_service.c
56
_leave(" = %d", conn ? conn->debug_id : -1);
net/rxrpc/conn_service.c
57
return conn;
net/rxrpc/conn_service.c
65
struct rxrpc_connection *conn)
net/rxrpc/conn_service.c
68
struct rxrpc_conn_proto k = conn->proto;
net/rxrpc/conn_service.c
88
rb_link_node_rcu(&conn->service_node, parent, pp);
net/rxrpc/conn_service.c
89
rb_insert_color(&conn->service_node, &peer->service_conns);
net/rxrpc/conn_service.c
91
set_bit(RXRPC_CONN_IN_SERVICE_CONNS, &conn->flags);
net/rxrpc/conn_service.c
93
_leave(" = %d [new]", conn->debug_id);
net/rxrpc/insecure.c
11
static int none_init_connection_security(struct rxrpc_connection *conn,
net/rxrpc/insecure.c
42
static bool none_validate_challenge(struct rxrpc_connection *conn,
net/rxrpc/insecure.c
45
rxrpc_abort_conn(conn, skb, RX_PROTOCOL_ERROR, -EPROTO,
net/rxrpc/insecure.c
56
static int none_verify_response(struct rxrpc_connection *conn,
net/rxrpc/insecure.c
60
return rxrpc_abort_conn(conn, response_skb, RX_PROTOCOL_ERROR, -EPROTO,
net/rxrpc/insecure.c
64
static void none_clear(struct rxrpc_connection *conn)
net/rxrpc/io_thread.c
12
static int rxrpc_input_packet_on_conn(struct rxrpc_connection *conn,
net/rxrpc/io_thread.c
197
struct rxrpc_connection *conn;
net/rxrpc/io_thread.c
284
conn = rxrpc_find_client_connection_rcu(local, &peer_srx, skb);
net/rxrpc/io_thread.c
285
conn = rxrpc_get_connection_maybe(conn, rxrpc_conn_get_call_input);
net/rxrpc/io_thread.c
287
if (!conn)
net/rxrpc/io_thread.c
290
ret = rxrpc_input_packet_on_conn(conn, &peer_srx, skb);
net/rxrpc/io_thread.c
291
rxrpc_put_connection(conn, rxrpc_conn_put_call_input);
net/rxrpc/io_thread.c
307
conn = rxrpc_find_service_conn_rcu(peer, skb);
net/rxrpc/io_thread.c
308
conn = rxrpc_get_connection_maybe(conn, rxrpc_conn_get_call_input);
net/rxrpc/io_thread.c
309
if (conn) {
net/rxrpc/io_thread.c
311
ret = rxrpc_input_packet_on_conn(conn, &peer_srx, skb);
net/rxrpc/io_thread.c
312
rxrpc_put_connection(conn, rxrpc_conn_put_call_input);
net/rxrpc/io_thread.c
327
static int rxrpc_input_packet_on_conn(struct rxrpc_connection *conn,
net/rxrpc/io_thread.c
336
if (sp->hdr.securityIndex != conn->security_ix)
net/rxrpc/io_thread.c
340
if (sp->hdr.serviceId != conn->service_id) {
net/rxrpc/io_thread.c
343
if (!test_bit(RXRPC_CONN_PROBING_FOR_UPGRADE, &conn->flags))
net/rxrpc/io_thread.c
346
old_id = cmpxchg(&conn->service_id, conn->orig_service_id,
net/rxrpc/io_thread.c
348
if (old_id != conn->orig_service_id &&
net/rxrpc/io_thread.c
353
if (after(sp->hdr.serial, conn->hi_serial))
net/rxrpc/io_thread.c
354
conn->hi_serial = sp->hdr.serial;
net/rxrpc/io_thread.c
358
return rxrpc_input_conn_packet(conn, skb);
net/rxrpc/io_thread.c
362
conn->pmtud_probe &&
net/rxrpc/io_thread.c
363
after_eq(sp->ack.acked_serial, conn->pmtud_probe))
net/rxrpc/io_thread.c
364
rxrpc_input_probe_for_pmtud(conn, sp->ack.acked_serial, false);
net/rxrpc/io_thread.c
368
chan = &conn->channels[channel];
net/rxrpc/io_thread.c
382
if (rxrpc_conn_is_service(conn) &&
net/rxrpc/io_thread.c
394
rxrpc_conn_retransmit_call(conn, skb, channel);
net/rxrpc/io_thread.c
418
return rxrpc_new_incoming_call(conn->local, conn->peer, conn,
net/rxrpc/io_thread.c
432
struct rxrpc_connection *conn;
net/rxrpc/io_thread.c
505
while ((conn = list_first_entry_or_null(&conn_attend_q,
net/rxrpc/io_thread.c
509
list_del_init(&conn->attend_link);
net/rxrpc/io_thread.c
511
rxrpc_input_conn_event(conn, NULL);
net/rxrpc/io_thread.c
512
rxrpc_put_connection(conn, rxrpc_conn_put_poke);
net/rxrpc/key.c
651
int rxrpc_get_server_data_key(struct rxrpc_connection *conn,
net/rxrpc/key.c
689
conn->key = key;
net/rxrpc/oob.c
180
struct rxrpc_connection *conn;
net/rxrpc/oob.c
199
conn = sp->chall.conn;
net/rxrpc/oob.c
201
if (!conn->security->sendmsg_respond_to_challenge)
net/rxrpc/oob.c
204
rxrpc_abort_conn(conn, NULL, p->abort_code, -ECONNABORTED,
net/rxrpc/oob.c
208
ret = conn->security->sendmsg_respond_to_challenge(skb, msg);
net/rxrpc/oob.c
218
rxrpc_put_connection(sp->chall.conn, rxrpc_conn_put_oob);
net/rxrpc/oob.c
282
*_peer = sp->chall.conn->peer;
net/rxrpc/oob.c
283
*_peer_appdata = sp->chall.conn->peer->app_data;
net/rxrpc/oob.c
332
rxrpc_put_connection(sp->chall.conn, rxrpc_conn_put_oob);
net/rxrpc/oob.c
357
*_peer = sp->chall.conn->peer;
net/rxrpc/oob.c
358
*_peer_appdata = sp->chall.conn->peer->app_data;
net/rxrpc/oob.c
384
rxrpc_abort_conn(sp->chall.conn, NULL, abort_code, error, why);
net/rxrpc/output.c
170
*_ack_serial = rxrpc_get_next_serial(call->conn);
net/rxrpc/output.c
172
whdr->epoch = htonl(call->conn->proto.epoch);
net/rxrpc/output.c
178
whdr->flags = call->conn->out_clientflag | RXRPC_SLOW_START_OK;
net/rxrpc/output.c
249
struct rxrpc_connection *conn;
net/rxrpc/output.c
257
conn = call->conn;
net/rxrpc/output.c
273
rxrpc_local_dont_fragment(conn->local, why == rxrpc_propose_ack_ping_for_mtu_probe);
net/rxrpc/output.c
275
ret = do_udp_sendmsg(conn->local->socket, &msg, len);
net/rxrpc/output.c
282
rxrpc_input_probe_for_pmtud(conn, serial, true);
net/rxrpc/output.c
289
call->conn->pmtud_probe = serial;
net/rxrpc/output.c
290
call->conn->pmtud_call = call->debug_id;
net/rxrpc/output.c
364
struct rxrpc_connection *conn;
net/rxrpc/output.c
384
conn = call->conn;
net/rxrpc/output.c
392
pkt.whdr.epoch = htonl(conn->proto.epoch);
net/rxrpc/output.c
397
pkt.whdr.flags = conn->out_clientflag;
net/rxrpc/output.c
407
serial = rxrpc_get_next_serial(conn);
net/rxrpc/output.c
411
ret = do_udp_sendmsg(conn->local->socket, &msg, sizeof(pkt));
net/rxrpc/output.c
412
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/output.c
434
struct rxrpc_connection *conn = call->conn;
net/rxrpc/output.c
444
if (test_bit(RXRPC_CONN_PROBING_FOR_UPGRADE, &conn->flags) &&
net/rxrpc/output.c
549
serial = rxrpc_get_next_serials(call->conn, req->n);
net/rxrpc/output.c
551
whdr->epoch = htonl(call->conn->proto.epoch);
net/rxrpc/output.c
561
whdr->serviceId = htons(call->conn->service_id);
net/rxrpc/output.c
642
struct rxrpc_connection *conn = call->conn;
net/rxrpc/output.c
680
rxrpc_local_dont_fragment(conn->local, false);
net/rxrpc/output.c
683
rxrpc_local_dont_fragment(conn->local, true);
net/rxrpc/output.c
701
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/output.c
713
ret = do_udp_sendmsg(conn->local->socket, &msg, len);
net/rxrpc/output.c
714
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/output.c
750
void rxrpc_send_conn_abort(struct rxrpc_connection *conn)
net/rxrpc/output.c
760
msg.msg_name = &conn->peer->srx.transport;
net/rxrpc/output.c
761
msg.msg_namelen = conn->peer->srx.transport_len;
net/rxrpc/output.c
766
whdr.epoch = htonl(conn->proto.epoch);
net/rxrpc/output.c
767
whdr.cid = htonl(conn->proto.cid);
net/rxrpc/output.c
771
whdr.flags = conn->out_clientflag;
net/rxrpc/output.c
773
whdr.securityIndex = conn->security_ix;
net/rxrpc/output.c
775
whdr.serviceId = htons(conn->service_id);
net/rxrpc/output.c
777
word = htonl(conn->abort_code);
net/rxrpc/output.c
786
serial = rxrpc_get_next_serial(conn);
net/rxrpc/output.c
790
ret = do_udp_sendmsg(conn->local->socket, &msg, len);
net/rxrpc/output.c
792
trace_rxrpc_tx_fail(conn->debug_id, serial, ret,
net/rxrpc/output.c
798
trace_rxrpc_tx_packet(conn->debug_id, &whdr, rxrpc_tx_point_conn_abort);
net/rxrpc/output.c
800
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/output.c
927
void rxrpc_send_response(struct rxrpc_connection *conn, struct sk_buff *response)
net/rxrpc/output.c
931
struct bio_vec *bvec = conn->local->bvec;
net/rxrpc/output.c
938
_enter("C=%x,%x", conn->debug_id, sp->resp.challenge_serial);
net/rxrpc/output.c
946
if (WARN_ON_ONCE(nr_sg > ARRAY_SIZE(conn->local->bvec)))
net/rxrpc/output.c
954
msg.msg_name = &conn->peer->srx.transport;
net/rxrpc/output.c
955
msg.msg_namelen = conn->peer->srx.transport_len;
net/rxrpc/output.c
960
serial = rxrpc_get_next_serials(conn, 1);
net/rxrpc/output.c
963
trace_rxrpc_tx_response(conn, serial, sp);
net/rxrpc/output.c
970
rxrpc_local_dont_fragment(conn->local, false);
net/rxrpc/output.c
972
ret = do_udp_sendmsg(conn->local->socket, &msg, len);
net/rxrpc/output.c
976
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/output.c
980
trace_rxrpc_tx_fail(conn->debug_id, serial, ret,
net/rxrpc/peer_event.c
382
void rxrpc_input_probe_for_pmtud(struct rxrpc_connection *conn, rxrpc_serial_t acked_serial,
net/rxrpc/peer_event.c
385
struct rxrpc_peer *peer = conn->peer;
net/rxrpc/peer_event.c
393
conn->pmtud_probe = 0;
net/rxrpc/peer_event.c
401
if (sendmsg_fail || after(acked_serial, conn->pmtud_probe)) {
net/rxrpc/peer_event.c
404
trace_rxrpc_pmtud_lost(conn, acked_serial);
net/rxrpc/peer_event.c
405
conn->pmtud_probe = 0;
net/rxrpc/peer_event.c
431
trace_rxrpc_pmtud_rx(conn, acked_serial);
net/rxrpc/peer_event.c
432
conn->pmtud_probe = 0;
net/rxrpc/proc.c
146
struct rxrpc_connection *conn;
net/rxrpc/proc.c
161
conn = list_entry(v, struct rxrpc_connection, proc_link);
net/rxrpc/proc.c
162
if (conn->state == RXRPC_CONN_SERVICE_PREALLOC) {
net/rxrpc/proc.c
168
scnprintf(lbuff, sizeof(lbuff), "%pISpc", &conn->local->srx.transport);
net/rxrpc/proc.c
169
scnprintf(rbuff, sizeof(rbuff), "%pISpc", &conn->peer->srx.transport);
net/rxrpc/proc.c
171
state = rxrpc_is_conn_aborted(conn) ?
net/rxrpc/proc.c
172
rxrpc_call_completions[conn->completion] :
net/rxrpc/proc.c
173
rxrpc_conn_states[conn->state];
net/rxrpc/proc.c
179
conn->service_id,
net/rxrpc/proc.c
180
conn->proto.cid,
net/rxrpc/proc.c
181
rxrpc_conn_is_service(conn) ? "Svc" : "Clt",
net/rxrpc/proc.c
182
refcount_read(&conn->ref),
net/rxrpc/proc.c
183
atomic_read(&conn->active),
net/rxrpc/proc.c
185
key_serial(conn->key),
net/rxrpc/proc.c
186
conn->tx_serial,
net/rxrpc/proc.c
187
conn->hi_serial,
net/rxrpc/proc.c
188
conn->channels[0].call_id,
net/rxrpc/proc.c
189
conn->channels[1].call_id,
net/rxrpc/proc.c
190
conn->channels[2].call_id,
net/rxrpc/proc.c
191
conn->channels[3].call_id);
net/rxrpc/recvmsg.c
225
struct rxrpc_connection *conn = sp->chall.conn;
net/rxrpc/recvmsg.c
227
return conn->security->challenge_to_recvmsg(conn, challenge, msg);
net/rxrpc/rxgk.c
1013
static int rxgk_respond_to_challenge(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
1017
_enter("{%d,%x}", conn->debug_id, key_serial(conn->key));
net/rxrpc/rxgk.c
1019
if (key_validate(conn->key) < 0)
net/rxrpc/rxgk.c
1020
return rxrpc_abort_conn(conn, NULL, RXGK_EXPIRED, -EPROTO,
net/rxrpc/rxgk.c
1023
return rxgk_construct_response(conn, challenge, appdata);
net/rxrpc/rxgk.c
1026
static int rxgk_respond_to_challenge_no_appdata(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
1031
return rxgk_respond_to_challenge(conn, challenge, &appdata);
net/rxrpc/rxgk.c
1049
return rxgk_respond_to_challenge(csp->chall.conn, challenge, appdata);
net/rxrpc/rxgk.c
1088
static int rxgk_verify_authenticator(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
1099
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1101
if (memcmp(p, conn->rxgk.nonce, 20) != 0)
net/rxrpc/rxgk.c
1102
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1108
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
111
gk = conn->rxgk.keys[key_number & mask];
net/rxrpc/rxgk.c
1113
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1121
if (level != conn->security_level ||
net/rxrpc/rxgk.c
1122
epoch != conn->proto.epoch ||
net/rxrpc/rxgk.c
1123
cid != conn->proto.cid ||
net/rxrpc/rxgk.c
1125
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1129
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1136
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1139
if (call_id < conn->channels[i].call_counter)
net/rxrpc/rxgk.c
1140
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1143
if (call_id > conn->channels[i].call_counter) {
net/rxrpc/rxgk.c
1144
if (conn->channels[i].call)
net/rxrpc/rxgk.c
1145
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1148
conn->channels[i].call_counter = call_id;
net/rxrpc/rxgk.c
1165
static int rxgk_verify_response(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
1180
_enter("{%d}", conn->debug_id);
net/rxrpc/rxgk.c
1195
trace_rxrpc_rx_response(conn, sp->hdr.serial, 0, sp->hdr.cksum, resp_token_len);
net/rxrpc/rxgk.c
120
mutex_unlock(&conn->security_lock);
net/rxrpc/rxgk.c
1219
ret = rxgk_extract_token(conn, skb, resp_token, resp_token_len, &key);
net/rxrpc/rxgk.c
1232
conn->security_level = token->rxgk->level;
net/rxrpc/rxgk.c
1233
conn->rxgk.start_time = __be64_to_cpu(rhdr->start_time);
net/rxrpc/rxgk.c
1235
gk = rxgk_generate_transport_key(conn, token->rxgk, sp->hdr.cksum, GFP_NOFS);
net/rxrpc/rxgk.c
1243
trace_rxrpc_rx_response(conn, sp->hdr.serial, krb5->etype, sp->hdr.cksum,
net/rxrpc/rxgk.c
1249
rxrpc_abort_conn(conn, skb, RXGK_SEALEDINCON, ret,
net/rxrpc/rxgk.c
125
trace_rxrpc_rxgk_rekey(conn, current_key,
net/rxrpc/rxgk.c
1254
ret = rxgk_verify_authenticator(conn, krb5, skb, auth, auth_len);
net/rxrpc/rxgk.c
1258
conn->key = key;
net/rxrpc/rxgk.c
1269
ret = rxrpc_abort_conn(conn, skb, RXGK_INCONSISTENCY, -EPROTO,
net/rxrpc/rxgk.c
1273
ret = rxrpc_abort_conn(conn, skb, RXGK_PACKETSHORT, -EPROTO,
net/rxrpc/rxgk.c
1277
ret = rxrpc_abort_conn(conn, skb, RXGK_PACKETSHORT, -EPROTO,
net/rxrpc/rxgk.c
1286
ret = rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EKEYREJECTED,
net/rxrpc/rxgk.c
1290
ret = rxrpc_abort_conn(conn, skb, KRB5_PROG_KEYTYPE_NOSUPP,
net/rxrpc/rxgk.c
130
set_bit(RXRPC_CONN_DONT_REUSE, &conn->flags);
net/rxrpc/rxgk.c
1306
static void rxgk_clear(struct rxrpc_connection *conn)
net/rxrpc/rxgk.c
1310
for (i = 0; i < ARRAY_SIZE(conn->rxgk.keys); i++)
net/rxrpc/rxgk.c
1311
rxgk_put(conn->rxgk.keys[i]);
net/rxrpc/rxgk.c
133
if (WARN_ON(conn->rxgk.keys[key_number & mask]))
net/rxrpc/rxgk.c
138
gk = conn->rxgk.keys[current_key & mask];
net/rxrpc/rxgk.c
139
gk = rxgk_generate_transport_key(conn, gk->key, key_number, GFP_NOFS);
net/rxrpc/rxgk.c
141
mutex_unlock(&conn->security_lock);
net/rxrpc/rxgk.c
145
write_lock(&conn->security_use_lock);
net/rxrpc/rxgk.c
148
conn->rxgk.key_number = current_key;
net/rxrpc/rxgk.c
149
dead = conn->rxgk.keys[(current_key - 2) & mask];
net/rxrpc/rxgk.c
150
conn->rxgk.keys[(current_key - 2) & mask] = NULL;
net/rxrpc/rxgk.c
152
conn->rxgk.keys[current_key & mask] = gk;
net/rxrpc/rxgk.c
153
write_unlock(&conn->security_use_lock);
net/rxrpc/rxgk.c
157
mutex_unlock(&conn->security_lock);
net/rxrpc/rxgk.c
167
static struct rxgk_context *rxgk_get_key(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
171
unsigned int key_number, current_key, mask = ARRAY_SIZE(conn->rxgk.keys) - 1;
net/rxrpc/rxgk.c
174
conn->rxgk.key_number, specific_key_number ? *specific_key_number : -1);
net/rxrpc/rxgk.c
176
read_lock(&conn->security_use_lock);
net/rxrpc/rxgk.c
178
current_key = conn->rxgk.key_number;
net/rxrpc/rxgk.c
196
gk = conn->rxgk.keys[key_number & mask];
net/rxrpc/rxgk.c
212
read_unlock(&conn->security_use_lock);
net/rxrpc/rxgk.c
219
gk = conn->rxgk.keys[current_key & mask];
net/rxrpc/rxgk.c
223
read_unlock(&conn->security_use_lock);
net/rxrpc/rxgk.c
224
return rxgk_rekey(conn, specific_key_number);
net/rxrpc/rxgk.c
226
read_unlock(&conn->security_use_lock);
net/rxrpc/rxgk.c
233
static int rxgk_init_connection_security(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
240
conn->debug_id, conn->rxgk.key_number, key_serial(conn->key));
net/rxrpc/rxgk.c
242
conn->security_ix = token->security_index;
net/rxrpc/rxgk.c
243
conn->security_level = token->rxgk->level;
net/rxrpc/rxgk.c
245
if (rxrpc_conn_is_client(conn)) {
net/rxrpc/rxgk.c
246
conn->rxgk.start_time = ktime_get();
net/rxrpc/rxgk.c
247
do_div(conn->rxgk.start_time, 100);
net/rxrpc/rxgk.c
250
gk = rxgk_generate_transport_key(conn, token->rxgk, conn->rxgk.key_number,
net/rxrpc/rxgk.c
254
conn->rxgk.enctype = gk->krb5->etype;
net/rxrpc/rxgk.c
255
conn->rxgk.keys[gk->key_number & 3] = gk;
net/rxrpc/rxgk.c
257
switch (conn->security_level) {
net/rxrpc/rxgk.c
290
switch (call->conn->security_level) {
net/rxrpc/rxgk.c
304
gk = rxgk_get_key(call->conn, NULL);
net/rxrpc/rxgk.c
358
hdr->epoch = htonl(call->conn->proto.epoch);
net/rxrpc/rxgk.c
401
hdr->epoch = htonl(call->conn->proto.epoch);
net/rxrpc/rxgk.c
436
call->debug_id, key_serial(call->conn->key), txb->seq, txb->len);
net/rxrpc/rxgk.c
438
gk = rxgk_get_key(call->conn, NULL);
net/rxrpc/rxgk.c
442
ret = key_validate(call->conn->key);
net/rxrpc/rxgk.c
451
switch (call->conn->security_level) {
net/rxrpc/rxgk.c
495
hdr->epoch = htonl(call->conn->proto.epoch);
net/rxrpc/rxgk.c
563
if (ntohl(hdr->epoch) != call->conn->proto.epoch ||
net/rxrpc/rxgk.c
594
call->debug_id, key_serial(call->conn->key), sp->hdr.seq);
net/rxrpc/rxgk.c
596
gk = rxgk_get_key(call->conn, &key_number);
net/rxrpc/rxgk.c
608
switch (call->conn->security_level) {
net/rxrpc/rxgk.c
640
static int rxgk_issue_challenge(struct rxrpc_connection *conn)
net/rxrpc/rxgk.c
646
size_t len = sizeof(*whdr) + sizeof(conn->rxgk.nonce);
net/rxrpc/rxgk.c
650
_enter("{%d}", conn->debug_id);
net/rxrpc/rxgk.c
652
get_random_bytes(&conn->rxgk.nonce, sizeof(conn->rxgk.nonce));
net/rxrpc/rxgk.c
655
page = rxgk_alloc_packet(sizeof(*whdr) + sizeof(conn->rxgk.nonce));
net/rxrpc/rxgk.c
662
msg.msg_name = &conn->peer->srx.transport;
net/rxrpc/rxgk.c
663
msg.msg_namelen = conn->peer->srx.transport_len;
net/rxrpc/rxgk.c
669
whdr->epoch = htonl(conn->proto.epoch);
net/rxrpc/rxgk.c
670
whdr->cid = htonl(conn->proto.cid);
net/rxrpc/rxgk.c
674
whdr->flags = conn->out_clientflag;
net/rxrpc/rxgk.c
676
whdr->securityIndex = conn->security_ix;
net/rxrpc/rxgk.c
678
whdr->serviceId = htons(conn->service_id);
net/rxrpc/rxgk.c
680
memcpy(whdr + 1, conn->rxgk.nonce, sizeof(conn->rxgk.nonce));
net/rxrpc/rxgk.c
682
serial = rxrpc_get_next_serials(conn, 1);
net/rxrpc/rxgk.c
685
trace_rxrpc_tx_challenge(conn, serial, 0, *(u32 *)&conn->rxgk.nonce);
net/rxrpc/rxgk.c
687
ret = do_udp_sendmsg(conn->local->socket, &msg, len);
net/rxrpc/rxgk.c
689
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/rxgk.c
692
trace_rxrpc_tx_fail(conn->debug_id, serial, ret,
net/rxrpc/rxgk.c
698
trace_rxrpc_tx_packet(conn->debug_id, whdr,
net/rxrpc/rxgk.c
708
static bool rxgk_validate_challenge(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
714
if (!conn->key) {
net/rxrpc/rxgk.c
715
rxrpc_abort_conn(conn, skb, RX_PROTOCOL_ERROR, -EPROTO,
net/rxrpc/rxgk.c
720
if (key_validate(conn->key) < 0) {
net/rxrpc/rxgk.c
721
rxrpc_abort_conn(conn, skb, RXGK_EXPIRED, -EPROTO,
net/rxrpc/rxgk.c
728
rxrpc_abort_conn(conn, skb, RXGK_PACKETSHORT, -EPROTO,
net/rxrpc/rxgk.c
733
trace_rxrpc_rx_challenge(conn, sp->hdr.serial, 0, *(u32 *)nonce, 0);
net/rxrpc/rxgk.c
747
return sp->chall.conn->rxgk.enctype;
net/rxrpc/rxgk.c
755
static int rxgk_challenge_to_recvmsg(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
761
chall.base.service_id = conn->service_id;
net/rxrpc/rxgk.c
762
chall.base.security_index = conn->security_ix;
net/rxrpc/rxgk.c
763
chall.enctype = conn->rxgk.enctype;
net/rxrpc/rxgk.c
789
static noinline ssize_t rxgk_insert_response_header(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
807
h.whdr.epoch = htonl(conn->proto.epoch);
net/rxrpc/rxgk.c
808
h.whdr.cid = htonl(conn->proto.cid);
net/rxrpc/rxgk.c
813
h.whdr.flags = conn->out_clientflag;
net/rxrpc/rxgk.c
815
h.whdr.securityIndex = conn->security_ix;
net/rxrpc/rxgk.c
817
h.whdr.serviceId = htons(conn->service_id);
net/rxrpc/rxgk.c
818
h.start_time_msw = htonl(upper_32_bits(conn->rxgk.start_time));
net/rxrpc/rxgk.c
819
h.start_time_lsw = htonl(lower_32_bits(conn->rxgk.start_time));
net/rxrpc/rxgk.c
838
static ssize_t rxgk_construct_authenticator(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
86
static struct rxgk_context *rxgk_rekey(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
881
b.level = htonl(conn->security_level);
net/rxrpc/rxgk.c
882
b.epoch = htonl(conn->proto.epoch);
net/rxrpc/rxgk.c
883
b.cid = htonl(conn->proto.cid);
net/rxrpc/rxgk.c
885
b.call_numbers[0] = htonl(conn->channels[0].call_counter);
net/rxrpc/rxgk.c
886
b.call_numbers[1] = htonl(conn->channels[1].call_counter);
net/rxrpc/rxgk.c
887
b.call_numbers[2] = htonl(conn->channels[2].call_counter);
net/rxrpc/rxgk.c
888
b.call_numbers[3] = htonl(conn->channels[3].call_counter);
net/rxrpc/rxgk.c
896
static ssize_t rxgk_encrypt_authenticator(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
90
unsigned int key_number, current_key, mask = ARRAY_SIZE(conn->rxgk.keys) - 1;
net/rxrpc/rxgk.c
924
static int rxgk_construct_response(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
935
gk = rxgk_get_key(conn, NULL);
net/rxrpc/rxgk.c
95
mutex_lock(&conn->security_lock);
net/rxrpc/rxgk.c
952
ret = rxgk_insert_response_header(conn, gk, response, 0);
net/rxrpc/rxgk.c
967
ret = rxgk_construct_authenticator(conn, challenge, appdata, response,
net/rxrpc/rxgk.c
97
current_key = conn->rxgk.key_number;
net/rxrpc/rxgk.c
973
ret = rxgk_encrypt_authenticator(conn, gk, response,
net/rxrpc/rxgk.c
999
rxrpc_post_response(conn, response);
net/rxrpc/rxgk_app.c
176
int rxgk_extract_token(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/rxgk_app.c
216
server_key = rxrpc_look_up_server_security(conn, skb, kvno, enctype);
net/rxrpc/rxgk_app.c
238
return rxrpc_abort_conn(conn, skb, ec, ret,
net/rxrpc/rxgk_app.c
243
ret = conn->security->default_decode_ticket(conn, skb, ticket,
net/rxrpc/rxgk_app.c
261
return rxrpc_abort_conn(conn, skb, RXGK_BADKEYNO, -EKEYREJECTED,
net/rxrpc/rxgk_app.c
264
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EKEYREJECTED,
net/rxrpc/rxgk_app.c
273
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EKEYREJECTED,
net/rxrpc/rxgk_app.c
276
return rxrpc_abort_conn(conn, skb, KRB5_PROG_KEYTYPE_NOSUPP,
net/rxrpc/rxgk_app.c
288
return rxrpc_abort_conn(conn, skb, RXGK_PACKETSHORT, -EPROTO,
net/rxrpc/rxgk_app.c
42
int rxgk_yfs_decode_ticket(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/rxgk_app.c
58
return rxrpc_abort_conn(conn, skb, RXGK_INCONSISTENCY, -EPROTO,
net/rxrpc/rxgk_app.c
67
return rxrpc_abort_conn(conn, skb, RXGK_INCONSISTENCY, -EPROTO,
net/rxrpc/rxgk_common.h
43
int rxgk_yfs_decode_ticket(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/rxgk_common.h
46
int rxgk_extract_token(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/rxgk_common.h
54
struct rxgk_context *rxgk_generate_transport_key(struct rxrpc_connection *conn,
net/rxrpc/rxgk_kdf.c
104
bool service = rxrpc_conn_is_service(conn);
net/rxrpc/rxgk_kdf.c
115
ret = rxgk_derive_transport_key(conn, gk, rxgk, &TK, gfp);
net/rxrpc/rxgk_kdf.c
134
switch (conn->security_level) {
net/rxrpc/rxgk_kdf.c
161
switch (conn->security_level) {
net/rxrpc/rxgk_kdf.c
205
struct rxgk_context *rxgk_generate_transport_key(struct rxrpc_connection *conn,
net/rxrpc/rxgk_kdf.c
227
ret = rxgk_set_up_ciphers(conn, gk, key, gfp);
net/rxrpc/rxgk_kdf.c
56
static int rxgk_derive_transport_key(struct rxrpc_connection *conn,
net/rxrpc/rxgk_kdf.c
80
info[0] = htonl(conn->proto.epoch);
net/rxrpc/rxgk_kdf.c
81
info[1] = htonl(conn->proto.cid);
net/rxrpc/rxgk_kdf.c
82
info[2] = htonl(conn->rxgk.start_time >> 32);
net/rxrpc/rxgk_kdf.c
83
info[3] = htonl(conn->rxgk.start_time >> 0);
net/rxrpc/rxgk_kdf.c
95
static int rxgk_set_up_ciphers(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
1006
ret = rxrpc_abort_conn(conn, skb, RXKADPACKETSHORT, -EPROTO,
net/rxrpc/rxkad.c
1011
ret = rxkad_decrypt_ticket(conn, server_key, skb, ticket, ticket_len,
net/rxrpc/rxkad.c
1018
rxkad_decrypt_response(conn, response, &session_key);
net/rxrpc/rxkad.c
1020
if (ntohl(response->encrypted.epoch) != conn->proto.epoch ||
net/rxrpc/rxkad.c
1021
ntohl(response->encrypted.cid) != conn->proto.cid ||
net/rxrpc/rxkad.c
1022
ntohl(response->encrypted.securityIndex) != conn->security_ix) {
net/rxrpc/rxkad.c
1023
ret = rxrpc_abort_conn(conn, skb, RXKADSEALEDINCON, -EPROTO,
net/rxrpc/rxkad.c
103
_enter("{%d},{%x}", conn->debug_id, key_serial(conn->key));
net/rxrpc/rxkad.c
1032
ret = rxrpc_abort_conn(conn, skb, RXKADSEALEDINCON, -EPROTO,
net/rxrpc/rxkad.c
1039
u32 counter = READ_ONCE(conn->channels[i].call_counter);
net/rxrpc/rxkad.c
1042
ret = rxrpc_abort_conn(conn, skb, RXKADSEALEDINCON, -EPROTO,
net/rxrpc/rxkad.c
1048
ret = rxrpc_abort_conn(conn, skb, RXKADSEALEDINCON, -EPROTO,
net/rxrpc/rxkad.c
105
conn->security_ix = token->security_index;
net/rxrpc/rxkad.c
1054
if (conn->channels[i].call) {
net/rxrpc/rxkad.c
1055
ret = rxrpc_abort_conn(conn, skb, RXKADSEALEDINCON, -EPROTO,
net/rxrpc/rxkad.c
1059
conn->channels[i].call_counter = call_id;
net/rxrpc/rxkad.c
1063
if (ntohl(response->encrypted.inc_nonce) != conn->rxkad.nonce + 1) {
net/rxrpc/rxkad.c
1064
ret = rxrpc_abort_conn(conn, skb, RXKADOUTOFSEQUENCE, -EPROTO,
net/rxrpc/rxkad.c
1071
ret = rxrpc_abort_conn(conn, skb, RXKADLEVELFAIL, -EPROTO,
net/rxrpc/rxkad.c
1075
conn->security_level = level;
net/rxrpc/rxkad.c
1080
ret = rxrpc_get_server_data_key(conn, &session_key, expiry, kvno);
net/rxrpc/rxkad.c
1091
static void rxkad_clear(struct rxrpc_connection *conn)
net/rxrpc/rxkad.c
1095
kfree_sensitive(conn->rxkad.cipher);
net/rxrpc/rxkad.c
1096
conn->rxkad.cipher = NULL;
net/rxrpc/rxkad.c
114
switch (conn->security_level) {
net/rxrpc/rxkad.c
124
rxkad_prime_packet_security(conn, ci);
net/rxrpc/rxkad.c
126
conn->rxkad.cipher = ci;
net/rxrpc/rxkad.c
146
switch (call->conn->security_level) {
net/rxrpc/rxkad.c
182
static void rxkad_prime_packet_security(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
190
if (!conn->key)
net/rxrpc/rxkad.c
192
token = conn->key->payload.data[0];
net/rxrpc/rxkad.c
194
tmpbuf[0] = htonl(conn->proto.epoch);
net/rxrpc/rxkad.c
195
tmpbuf[1] = htonl(conn->proto.cid);
net/rxrpc/rxkad.c
197
tmpbuf[3] = htonl(conn->security_ix);
net/rxrpc/rxkad.c
202
memcpy(&conn->rxkad.csum_iv, &tmpbuf[2], sizeof(conn->rxkad.csum_iv));
net/rxrpc/rxkad.c
238
fcrypt_pcbc_encrypt(call->conn->rxkad.cipher, zero_iv, hdr, hdr, 1);
net/rxrpc/rxkad.c
269
token = call->conn->key->payload.data[0];
net/rxrpc/rxkad.c
270
fcrypt_pcbc_encrypt(call->conn->rxkad.cipher, token->kad->session_key,
net/rxrpc/rxkad.c
287
call->debug_id, key_serial(call->conn->key),
net/rxrpc/rxkad.c
290
if (!call->conn->rxkad.cipher)
net/rxrpc/rxkad.c
293
ret = key_validate(call->conn->key);
net/rxrpc/rxkad.c
304
fcrypt_pcbc_encrypt(call->conn->rxkad.cipher,
net/rxrpc/rxkad.c
305
call->conn->rxkad.csum_iv.x, crypto.buf, crypto.buf,
net/rxrpc/rxkad.c
314
switch (call->conn->security_level) {
net/rxrpc/rxkad.c
367
fcrypt_pcbc_decrypt(call->conn->rxkad.cipher, zero_iv, data, data, 1);
net/rxrpc/rxkad.c
415
token = call->conn->key->payload.data[0];
net/rxrpc/rxkad.c
416
fcrypt_pcbc_decrypt(call->conn->rxkad.cipher, token->kad->session_key,
net/rxrpc/rxkad.c
459
call->debug_id, key_serial(call->conn->key), seq);
net/rxrpc/rxkad.c
461
if (!call->conn->rxkad.cipher)
net/rxrpc/rxkad.c
47
static void rxkad_prime_packet_security(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
471
fcrypt_pcbc_encrypt(call->conn->rxkad.cipher,
net/rxrpc/rxkad.c
472
call->conn->rxkad.csum_iv.x, crypto.buf, crypto.buf,
net/rxrpc/rxkad.c
486
switch (call->conn->security_level) {
net/rxrpc/rxkad.c
507
static int rxkad_issue_challenge(struct rxrpc_connection *conn)
net/rxrpc/rxkad.c
517
_enter("{%d}", conn->debug_id);
net/rxrpc/rxkad.c
519
get_random_bytes(&conn->rxkad.nonce, sizeof(conn->rxkad.nonce));
net/rxrpc/rxkad.c
522
challenge.nonce = htonl(conn->rxkad.nonce);
net/rxrpc/rxkad.c
526
msg.msg_name = &conn->peer->srx.transport;
net/rxrpc/rxkad.c
527
msg.msg_namelen = conn->peer->srx.transport_len;
net/rxrpc/rxkad.c
532
whdr.epoch = htonl(conn->proto.epoch);
net/rxrpc/rxkad.c
533
whdr.cid = htonl(conn->proto.cid);
net/rxrpc/rxkad.c
537
whdr.flags = conn->out_clientflag;
net/rxrpc/rxkad.c
539
whdr.securityIndex = conn->security_ix;
net/rxrpc/rxkad.c
541
whdr.serviceId = htons(conn->service_id);
net/rxrpc/rxkad.c
550
serial = rxrpc_get_next_serial(conn);
net/rxrpc/rxkad.c
553
trace_rxrpc_tx_challenge(conn, serial, 0, conn->rxkad.nonce);
net/rxrpc/rxkad.c
555
ret = kernel_sendmsg(conn->local->socket, &msg, iov, 2, len);
net/rxrpc/rxkad.c
557
trace_rxrpc_tx_fail(conn->debug_id, serial, ret,
net/rxrpc/rxkad.c
562
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/rxkad.c
563
trace_rxrpc_tx_packet(conn->debug_id, &whdr,
net/rxrpc/rxkad.c
587
static bool rxkad_validate_challenge(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
595
_enter("{%d,%x}", conn->debug_id, key_serial(conn->key));
net/rxrpc/rxkad.c
597
if (!conn->key) {
net/rxrpc/rxkad.c
598
rxrpc_abort_conn(conn, skb, RX_PROTOCOL_ERROR, -EPROTO,
net/rxrpc/rxkad.c
603
ret = key_validate(conn->key);
net/rxrpc/rxkad.c
605
rxrpc_abort_conn(conn, skb, RXKADEXPIRED, ret,
net/rxrpc/rxkad.c
612
rxrpc_abort_conn(conn, skb, RXKADPACKETSHORT, -EPROTO,
net/rxrpc/rxkad.c
621
trace_rxrpc_rx_challenge(conn, sp->hdr.serial, version,
net/rxrpc/rxkad.c
625
rxrpc_abort_conn(conn, skb, RXKADINCONSISTENCY, -EPROTO,
net/rxrpc/rxkad.c
630
if (conn->security_level < min_level) {
net/rxrpc/rxkad.c
631
rxrpc_abort_conn(conn, skb, RXKADLEVELFAIL, -EACCES,
net/rxrpc/rxkad.c
642
int rxkad_insert_response_header(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
655
h.whdr.epoch = htonl(conn->proto.epoch);
net/rxrpc/rxkad.c
656
h.whdr.cid = htonl(conn->proto.cid);
net/rxrpc/rxkad.c
661
h.whdr.flags = conn->out_clientflag;
net/rxrpc/rxkad.c
663
h.whdr.securityIndex = conn->security_ix;
net/rxrpc/rxkad.c
665
h.whdr.serviceId = htons(conn->service_id);
net/rxrpc/rxkad.c
668
h.resp.encrypted.epoch = htonl(conn->proto.epoch);
net/rxrpc/rxkad.c
669
h.resp.encrypted.cid = htonl(conn->proto.cid);
net/rxrpc/rxkad.c
671
h.resp.encrypted.securityIndex = htonl(conn->security_ix);
net/rxrpc/rxkad.c
672
h.resp.encrypted.call_id[0] = htonl(conn->channels[0].call_counter);
net/rxrpc/rxkad.c
673
h.resp.encrypted.call_id[1] = htonl(conn->channels[1].call_counter);
net/rxrpc/rxkad.c
674
h.resp.encrypted.call_id[2] = htonl(conn->channels[2].call_counter);
net/rxrpc/rxkad.c
675
h.resp.encrypted.call_id[3] = htonl(conn->channels[3].call_counter);
net/rxrpc/rxkad.c
677
h.resp.encrypted.level = htonl(conn->security_level);
net/rxrpc/rxkad.c
685
fcrypt_pcbc_encrypt(conn->rxkad.cipher, token->kad->session_key,
net/rxrpc/rxkad.c
697
static int rxkad_respond_to_challenge(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
706
_enter("{%d,%x}", conn->debug_id, key_serial(conn->key));
net/rxrpc/rxkad.c
708
ret = key_validate(conn->key);
net/rxrpc/rxkad.c
710
return rxrpc_abort_conn(conn, challenge, RXKADEXPIRED, ret,
net/rxrpc/rxkad.c
713
token = conn->key->payload.data[0];
net/rxrpc/rxkad.c
728
ret = rxkad_insert_response_header(conn, token, challenge, response,
net/rxrpc/rxkad.c
742
rxrpc_post_response(conn, response);
net/rxrpc/rxkad.c
773
return rxkad_respond_to_challenge(csp->chall.conn, challenge);
net/rxrpc/rxkad.c
796
static int rxkad_decrypt_ticket(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
810
_enter("{%d},{%x}", conn->debug_id, key_serial(server_key));
net/rxrpc/rxkad.c
817
return rxrpc_abort_conn(conn, skb, RXKADBADTICKET, -EPROTO,
net/rxrpc/rxkad.c
832
conn, skb, RXKADBADTICKET, -EPROTO, \
net/rxrpc/rxkad.c
837
conn, skb, RXKADBADTICKET, -EPROTO, \
net/rxrpc/rxkad.c
861
return rxrpc_abort_conn(conn, skb, RXKADBADTICKET, -EPROTO,
net/rxrpc/rxkad.c
895
return rxrpc_abort_conn(conn, skb, RXKADNOAUTH, -EKEYREJECTED,
net/rxrpc/rxkad.c
898
return rxrpc_abort_conn(conn, skb, RXKADEXPIRED, -EKEYEXPIRED,
net/rxrpc/rxkad.c
916
static void rxkad_decrypt_response(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
937
static int rxkad_verify_response(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
951
_enter("{%d}", conn->debug_id);
net/rxrpc/rxkad.c
953
server_key = rxrpc_look_up_server_security(conn, skb, 0, 0);
net/rxrpc/rxkad.c
958
return rxrpc_abort_conn(conn, skb, RXKADUNKNOWNKEY, ret,
net/rxrpc/rxkad.c
961
return rxrpc_abort_conn(conn, skb, RXKADEXPIRED, ret,
net/rxrpc/rxkad.c
964
return rxrpc_abort_conn(conn, skb, RXKADNOAUTH, ret,
net/rxrpc/rxkad.c
97
static int rxkad_init_connection_security(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
971
ret = rxrpc_abort_conn(conn, skb, RXKADPACKETSHORT, -EPROTO,
net/rxrpc/rxkad.c
980
trace_rxrpc_rx_response(conn, sp->hdr.serial, version, kvno, ticket_len);
net/rxrpc/rxkad.c
986
ret = rxrpc_abort_conn(conn, skb, RXKADINCONSISTENCY, -EPROTO,
net/rxrpc/rxkad.c
992
ret = rxrpc_abort_conn(conn, skb, RXKADTICKETLEN, -EPROTO,
net/rxrpc/rxkad.c
998
ret = rxrpc_abort_conn(conn, skb, RXKADUNKNOWNKEY, -EPROTO,
net/rxrpc/security.c
101
int rxrpc_init_client_conn_security(struct rxrpc_connection *conn)
net/rxrpc/security.c
104
struct key *key = conn->key;
net/rxrpc/security.c
107
_enter("{%d},{%x}", conn->debug_id, key_serial(key));
net/rxrpc/security.c
110
if (token->security_index == conn->security->security_index)
net/rxrpc/security.c
116
mutex_lock(&conn->security_lock);
net/rxrpc/security.c
117
if (conn->state == RXRPC_CONN_CLIENT_UNSECURED) {
net/rxrpc/security.c
118
ret = conn->security->init_connection_security(conn, token);
net/rxrpc/security.c
120
spin_lock_irq(&conn->state_lock);
net/rxrpc/security.c
121
if (conn->state == RXRPC_CONN_CLIENT_UNSECURED)
net/rxrpc/security.c
122
conn->state = RXRPC_CONN_CLIENT;
net/rxrpc/security.c
123
spin_unlock_irq(&conn->state_lock);
net/rxrpc/security.c
126
mutex_unlock(&conn->security_lock);
net/rxrpc/security.c
161
struct key *rxrpc_look_up_server_security(struct rxrpc_connection *conn,
net/rxrpc/security.c
184
read_lock(&conn->local->services_lock);
net/rxrpc/security.c
186
rx = conn->local->service;
net/rxrpc/security.c
208
read_unlock(&conn->local->services_lock);
net/rxrpc/sendmsg.c
346
if (call->conn->state == RXRPC_CONN_CLIENT_UNSECURED) {
net/rxrpc/sendmsg.c
347
ret = rxrpc_init_client_conn_security(call->conn);
net/rxrpc/sendmsg.c
409
txb = call->conn->security->alloc_txbuf(call, remain, sk->sk_allocation);
net/rxrpc/txbuf.c
37
mutex_lock(&call->conn->tx_data_alloc_lock);
net/rxrpc/txbuf.c
38
buf = page_frag_alloc_align(&call->conn->tx_data_alloc, total, gfp,
net/rxrpc/txbuf.c
40
mutex_unlock(&call->conn->tx_data_alloc_lock);
net/rxrpc/txbuf.c
52
txb->flags = call->conn->out_clientflag;
net/smc/af_smc.c
1010
struct smc_connection *conn = &smc->conn;
net/smc/af_smc.c
1011
struct smc_link_group *lgr = conn->lgr;
net/smc/af_smc.c
1014
if (smc_conn_lgr_valid(conn))
net/smc/af_smc.c
1017
smc_conn_free(conn);
net/smc/af_smc.c
1298
link = smc->conn.lnk;
net/smc/af_smc.c
1303
struct smc_link *l = &smc->conn.lgr->lnk[i];
net/smc/af_smc.c
1319
smc_switch_link_and_count(&smc->conn, link);
net/smc/af_smc.c
1331
if (smc_rmb_rtoken_handling(&smc->conn, link, aclc)) {
net/smc/af_smc.c
1345
if (smc->conn.sndbuf_desc->is_vm) {
net/smc/af_smc.c
1346
if (smcr_lgr_reg_sndbufs(link, smc->conn.sndbuf_desc)) {
net/smc/af_smc.c
1351
if (smcr_lgr_reg_rmbs(link, smc->conn.rmb_desc)) {
net/smc/af_smc.c
1465
if (smc_ism_support_dmb_nocopy(smc->conn.lgr->smcd)) {
net/smc/af_smc.c
1874
struct smc_link *link = smc->conn.lnk;
net/smc/af_smc.c
1879
if (smc->conn.sndbuf_desc->is_vm) {
net/smc/af_smc.c
1880
if (smcr_link_reg_buf(link, smc->conn.sndbuf_desc))
net/smc/af_smc.c
1885
if (smcr_link_reg_buf(link, smc->conn.rmb_desc))
net/smc/af_smc.c
1910
smc->conn.rmb_desc->is_conf_rkey = true;
net/smc/af_smc.c
2283
struct smc_connection *conn = &new_smc->conn;
net/smc/af_smc.c
2287
if (conn->sndbuf_desc->is_vm) {
net/smc/af_smc.c
2288
if (smcr_lgr_reg_sndbufs(conn->lnk,
net/smc/af_smc.c
2289
conn->sndbuf_desc))
net/smc/af_smc.c
2292
if (smcr_lgr_reg_rmbs(conn->lnk, conn->rmb_desc))
net/smc/af_smc.c
232
if (smc->conn.tx_in_release_sock) {
net/smc/af_smc.c
233
smc_tx_pending(&smc->conn);
net/smc/af_smc.c
234
smc->conn.tx_in_release_sock = false;
net/smc/af_smc.c
2428
struct smc_link *link = new_smc->conn.lnk;
net/smc/af_smc.c
2434
if (smc_rmb_rtoken_handling(&new_smc->conn, link, cclc))
net/smc/af_smc.c
2573
smc_ism_support_dmb_nocopy(new_smc->conn.lgr->smcd)) {
net/smc/af_smc.c
2770
} else if (!atomic_read(&smc_sk(nsk)->conn.bytes_to_rcv)) {
net/smc/af_smc.c
2916
atomic_read(&smc->conn.sndbuf_space)) ||
net/smc/af_smc.c
2926
if (atomic_read(&smc->conn.sndbuf_space))
net/smc/af_smc.c
2930
if (atomic_read(&smc->conn.bytes_to_rcv))
net/smc/af_smc.c
2936
if (smc->conn.urg_state == SMC_URG_VALID)
net/smc/af_smc.c
3142
smc_tx_pending(&smc->conn);
net/smc/af_smc.c
3143
cancel_delayed_work(&smc->conn.tx_work);
net/smc/af_smc.c
3153
smc_tx_pending(&smc->conn);
net/smc/af_smc.c
3154
cancel_delayed_work(&smc->conn.tx_work);
net/smc/af_smc.c
3200
struct smc_connection *conn;
net/smc/af_smc.c
3205
conn = &smc->conn;
net/smc/af_smc.c
322
smc_conn_free(&smc->conn);
net/smc/af_smc.c
3226
answ = atomic_read(&smc->conn.bytes_to_rcv);
net/smc/af_smc.c
3238
answ = smc->conn.sndbuf_desc->len -
net/smc/af_smc.c
3239
atomic_read(&smc->conn.sndbuf_space);
net/smc/af_smc.c
3251
answ = smc_tx_prepared_sends(&smc->conn);
net/smc/af_smc.c
3262
smc_curs_copy(&cons, &conn->local_tx_ctrl.cons, conn);
net/smc/af_smc.c
3263
smc_curs_copy(&urg, &conn->urg_curs, conn);
net/smc/af_smc.c
3264
answ = smc_curs_diff(conn->rmb_desc->len,
net/smc/af_smc.c
406
INIT_DELAYED_WORK(&smc->conn.tx_work, smc_tx_work);
net/smc/af_smc.c
411
spin_lock_init(&smc->conn.send_lock);
net/smc/af_smc.c
620
struct smc_link *link = smc->conn.lnk;
net/smc/af_smc.c
651
if (smc->conn.sndbuf_desc->is_vm) {
net/smc/af_smc.c
652
if (smcr_link_reg_buf(link, smc->conn.sndbuf_desc))
net/smc/af_smc.c
657
if (smcr_link_reg_buf(link, smc->conn.rmb_desc))
net/smc/af_smc.c
661
smc->conn.rmb_desc->is_conf_rkey = true;
net/smc/af_smc.c
710
if (smc->conn.lgr->is_smcd) {
net/smc/af_smc.c
711
memcpy(smc->conn.lgr->negotiated_eid, clc->d1.eid,
net/smc/af_smc.c
715
memcpy(smc->conn.lgr->negotiated_eid, clc->r1.eid,
net/smc/af_smc.c
720
smc->conn.lgr->peer_os = fce->os_type;
net/smc/af_smc.c
721
smc->conn.lgr->peer_smc_release = fce->release;
net/smc/af_smc.c
723
memcpy(smc->conn.lgr->peer_hostname, fce->hostname,
net/smc/af_smc.c
732
smc->conn.peer_rmbe_idx = clc->r0.rmbe_idx;
net/smc/af_smc.c
733
smc->conn.local_tx_ctrl.token = ntohl(clc->r0.rmbe_alert_token);
net/smc/af_smc.c
734
smc->conn.peer_rmbe_size = bufsize;
net/smc/af_smc.c
735
atomic_set(&smc->conn.peer_rmbe_space, smc->conn.peer_rmbe_size);
net/smc/af_smc.c
736
smc->conn.tx_off = bufsize * (smc->conn.peer_rmbe_idx - 1);
net/smc/af_smc.c
744
smc->conn.peer_rmbe_idx = clc->d0.dmbe_idx;
net/smc/af_smc.c
745
smc->conn.peer_token = ntohll(clc->d0.token);
net/smc/af_smc.c
747
smc->conn.peer_rmbe_size = bufsize - sizeof(struct smcd_cdc_msg);
net/smc/af_smc.c
748
atomic_set(&smc->conn.peer_rmbe_space, smc->conn.peer_rmbe_size);
net/smc/af_smc.c
749
smc->conn.tx_off = bufsize * smc->conn.peer_rmbe_idx;
net/smc/af_smc.c
755
if (smc->conn.lgr->is_smcd)
net/smc/smc.h
299
struct smc_connection conn; /* smc connection */
net/smc/smc_cdc.c
106
pend->conn = conn;
net/smc/smc_cdc.c
107
pend->cursor = conn->tx_curs_sent;
net/smc/smc_cdc.c
108
pend->p_cursor = conn->local_tx_ctrl.prod;
net/smc/smc_cdc.c
109
pend->ctrl_seq = conn->tx_cdc_seq;
net/smc/smc_cdc.c
112
int smc_cdc_msg_send(struct smc_connection *conn,
net/smc/smc_cdc.c
116
struct smc_link *link = conn->lnk;
net/smc/smc_cdc.c
120
smc_cdc_add_pending_send(conn, pend);
net/smc/smc_cdc.c
122
conn->tx_cdc_seq++;
net/smc/smc_cdc.c
123
conn->local_tx_ctrl.seqno = conn->tx_cdc_seq;
net/smc/smc_cdc.c
124
smc_host_msg_to_cdc((struct smc_cdc_msg *)wr_buf, conn, &cfed);
net/smc/smc_cdc.c
126
atomic_inc(&conn->cdc_pend_tx_wr);
net/smc/smc_cdc.c
131
smc_curs_copy(&conn->rx_curs_confirmed, &cfed, conn);
net/smc/smc_cdc.c
132
conn->local_rx_ctrl.prod_flags.cons_curs_upd_req = 0;
net/smc/smc_cdc.c
134
conn->tx_cdc_seq--;
net/smc/smc_cdc.c
135
conn->local_tx_ctrl.seqno = conn->tx_cdc_seq;
net/smc/smc_cdc.c
136
atomic_dec(&conn->cdc_pend_tx_wr);
net/smc/smc_cdc.c
143
int smcr_cdc_msg_send_validation(struct smc_connection *conn,
net/smc/smc_cdc.c
147
struct smc_host_cdc_msg *local = &conn->local_tx_ctrl;
net/smc/smc_cdc.c
148
struct smc_link *link = conn->lnk;
net/smc/smc_cdc.c
155
peer->seqno = htons(conn->tx_cdc_seq_fin); /* seqno last compl. tx */
net/smc/smc_cdc.c
162
smc_cdc_add_pending_send(conn, pend);
net/smc/smc_cdc.c
164
atomic_inc(&conn->cdc_pend_tx_wr);
net/smc/smc_cdc.c
169
atomic_dec(&conn->cdc_pend_tx_wr);
net/smc/smc_cdc.c
174
static int smcr_cdc_get_slot_and_msg_send(struct smc_connection *conn)
net/smc/smc_cdc.c
183
link = conn->lnk;
net/smc/smc_cdc.c
186
rc = smc_cdc_get_free_slot(conn, link, &wr_buf, NULL, &pend);
net/smc/smc_cdc.c
190
spin_lock_bh(&conn->send_lock);
net/smc/smc_cdc.c
191
if (link != conn->lnk) {
net/smc/smc_cdc.c
193
spin_unlock_bh(&conn->send_lock);
net/smc/smc_cdc.c
202
rc = smc_cdc_msg_send(conn, wr_buf, pend);
net/smc/smc_cdc.c
203
spin_unlock_bh(&conn->send_lock);
net/smc/smc_cdc.c
209
int smc_cdc_get_slot_and_msg_send(struct smc_connection *conn)
net/smc/smc_cdc.c
213
if (!smc_conn_lgr_valid(conn) ||
net/smc/smc_cdc.c
214
(conn->lgr->is_smcd && conn->lgr->peer_shutdown))
net/smc/smc_cdc.c
217
if (conn->lgr->is_smcd) {
net/smc/smc_cdc.c
218
spin_lock_bh(&conn->send_lock);
net/smc/smc_cdc.c
219
rc = smcd_cdc_msg_send(conn);
net/smc/smc_cdc.c
220
spin_unlock_bh(&conn->send_lock);
net/smc/smc_cdc.c
222
rc = smcr_cdc_get_slot_and_msg_send(conn);
net/smc/smc_cdc.c
228
void smc_cdc_wait_pend_tx_wr(struct smc_connection *conn)
net/smc/smc_cdc.c
230
wait_event(conn->cdc_pend_tx_wq, !atomic_read(&conn->cdc_pend_tx_wr));
net/smc/smc_cdc.c
237
int smcd_cdc_msg_send(struct smc_connection *conn)
net/smc/smc_cdc.c
239
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_cdc.c
246
curs.acurs.counter = atomic64_read(&conn->local_tx_ctrl.prod.acurs);
net/smc/smc_cdc.c
249
curs.acurs.counter = atomic64_read(&conn->local_tx_ctrl.cons.acurs);
net/smc/smc_cdc.c
252
cdc.cons.prod_flags = conn->local_tx_ctrl.prod_flags;
net/smc/smc_cdc.c
253
cdc.cons.conn_state_flags = conn->local_tx_ctrl.conn_state_flags;
net/smc/smc_cdc.c
254
rc = smcd_tx_ism_write(conn, &cdc, sizeof(cdc), 0, 1);
net/smc/smc_cdc.c
257
smc_curs_copy(&conn->rx_curs_confirmed, &curs, conn);
net/smc/smc_cdc.c
258
conn->local_rx_ctrl.prod_flags.cons_curs_upd_req = 0;
net/smc/smc_cdc.c
260
if (smc_ism_support_dmb_nocopy(conn->lgr->smcd))
net/smc/smc_cdc.c
268
diff = smc_curs_diff(conn->sndbuf_desc->len, &conn->tx_curs_fin,
net/smc/smc_cdc.c
269
&conn->tx_curs_sent);
net/smc/smc_cdc.c
272
atomic_add(diff, &conn->sndbuf_space);
net/smc/smc_cdc.c
275
smc_curs_copy(&conn->tx_curs_fin, &conn->tx_curs_sent, conn);
net/smc/smc_cdc.c
291
struct smc_connection *conn = &smc->conn;
net/smc/smc_cdc.c
295
smc_curs_copy(&conn->urg_curs, &conn->local_rx_ctrl.prod, conn);
net/smc/smc_cdc.c
296
conn->urg_state = SMC_URG_VALID;
net/smc/smc_cdc.c
300
base = (char *)conn->rmb_desc->cpu_addr + conn->rx_off;
net/smc/smc_cdc.c
301
if (conn->urg_curs.count)
net/smc/smc_cdc.c
302
conn->urg_rx_byte = *(base + conn->urg_curs.count - 1);
net/smc/smc_cdc.c
304
conn->urg_rx_byte = *(base + conn->rmb_desc->len - 1);
net/smc/smc_cdc.c
31
struct smc_connection *conn = cdcpend->conn;
net/smc/smc_cdc.c
311
struct smc_connection *conn = &smc->conn;
net/smc/smc_cdc.c
316
diff = conn->local_rx_ctrl.seqno - recv_seq;
net/smc/smc_cdc.c
319
conn->out_of_sync = 1; /* prevent any further receives */
net/smc/smc_cdc.c
320
spin_lock_bh(&conn->send_lock);
net/smc/smc_cdc.c
321
conn->local_tx_ctrl.conn_state_flags.peer_conn_abort = 1;
net/smc/smc_cdc.c
322
conn->lnk = link;
net/smc/smc_cdc.c
323
spin_unlock_bh(&conn->send_lock);
net/smc/smc_cdc.c
325
if (!queue_work(smc_close_wq, &conn->abort_work))
net/smc/smc_cdc.c
334
struct smc_connection *conn = &smc->conn;
net/smc/smc_cdc.c
337
smc_curs_copy(&prod_old, &conn->local_rx_ctrl.prod, conn);
net/smc/smc_cdc.c
338
smc_curs_copy(&cons_old, &conn->local_rx_ctrl.cons, conn);
net/smc/smc_cdc.c
339
smc_cdc_msg_to_host(&conn->local_rx_ctrl, cdc, conn);
net/smc/smc_cdc.c
341
diff_cons = smc_curs_diff(conn->peer_rmbe_size, &cons_old,
net/smc/smc_cdc.c
342
&conn->local_rx_ctrl.cons);
net/smc/smc_cdc.c
348
atomic_add(diff_cons, &conn->peer_rmbe_space);
net/smc/smc_cdc.c
356
if (conn->lgr->is_smcd &&
net/smc/smc_cdc.c
357
smc_ism_support_dmb_nocopy(conn->lgr->smcd)) {
net/smc/smc_cdc.c
36
sndbuf_desc = conn->sndbuf_desc;
net/smc/smc_cdc.c
361
diff_tx = smc_curs_diff(conn->sndbuf_desc->len,
net/smc/smc_cdc.c
362
&conn->tx_curs_fin,
net/smc/smc_cdc.c
363
&conn->local_rx_ctrl.cons);
net/smc/smc_cdc.c
366
atomic_add(diff_tx, &conn->sndbuf_space);
net/smc/smc_cdc.c
369
smc_curs_copy(&conn->tx_curs_fin,
net/smc/smc_cdc.c
37
smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_cdc.c
370
&conn->local_rx_ctrl.cons, conn);
net/smc/smc_cdc.c
376
diff_prod = smc_curs_diff(conn->rmb_desc->len, &prod_old,
net/smc/smc_cdc.c
377
&conn->local_rx_ctrl.prod);
net/smc/smc_cdc.c
379
if (conn->local_rx_ctrl.prod_flags.urg_data_present)
net/smc/smc_cdc.c
383
atomic_add(diff_prod, &conn->bytes_to_rcv);
net/smc/smc_cdc.c
388
if (conn->local_rx_ctrl.prod_flags.write_blocked)
net/smc/smc_cdc.c
390
if (conn->local_rx_ctrl.prod_flags.urg_data_pending)
net/smc/smc_cdc.c
391
conn->urg_state = SMC_URG_NOTYET;
net/smc/smc_cdc.c
395
if ((diff_cons && smc_tx_prepared_sends(conn)) ||
net/smc/smc_cdc.c
396
conn->local_rx_ctrl.prod_flags.cons_curs_upd_req ||
net/smc/smc_cdc.c
397
conn->local_rx_ctrl.prod_flags.urg_data_pending) {
net/smc/smc_cdc.c
399
smc_tx_pending(conn);
net/smc/smc_cdc.c
401
conn->tx_in_release_sock = true;
net/smc/smc_cdc.c
404
if (diff_cons && conn->urg_tx_pend &&
net/smc/smc_cdc.c
405
atomic_read(&conn->peer_rmbe_space) == conn->peer_rmbe_size) {
net/smc/smc_cdc.c
407
conn->urg_tx_pend = false;
net/smc/smc_cdc.c
41
&cdcpend->conn->tx_curs_fin,
net/smc/smc_cdc.c
411
if (conn->local_rx_ctrl.conn_state_flags.peer_conn_abort) {
net/smc/smc_cdc.c
413
conn->local_tx_ctrl.conn_state_flags.peer_conn_abort = 1;
net/smc/smc_cdc.c
415
if (smc_cdc_rxed_any_close_or_senddone(conn)) {
net/smc/smc_cdc.c
421
if (!queue_work(smc_close_wq, &conn->close_work))
net/smc/smc_cdc.c
444
struct smc_connection *conn = from_tasklet(conn, t, rx_tsklet);
net/smc/smc_cdc.c
449
if (!conn || conn->killed)
net/smc/smc_cdc.c
45
atomic_add(diff, &cdcpend->conn->sndbuf_space);
net/smc/smc_cdc.c
452
data_cdc = (struct smcd_cdc_msg *)conn->rmb_desc->cpu_addr;
net/smc/smc_cdc.c
453
smcd_curs_copy(&cdc.prod, &data_cdc->prod, conn);
net/smc/smc_cdc.c
454
smcd_curs_copy(&cdc.cons, &data_cdc->cons, conn);
net/smc/smc_cdc.c
455
smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_cdc.c
462
void smcd_cdc_rx_init(struct smc_connection *conn)
net/smc/smc_cdc.c
464
tasklet_setup(&conn->rx_tsklet, smcd_cdc_rx_tsklet);
net/smc/smc_cdc.c
474
struct smc_connection *conn;
net/smc/smc_cdc.c
48
smc_curs_copy(&conn->tx_curs_fin, &cdcpend->cursor, conn);
net/smc/smc_cdc.c
485
conn = smc_lgr_find_conn(ntohl(cdc->token), lgr);
net/smc/smc_cdc.c
486
if (!conn || conn->out_of_sync) {
net/smc/smc_cdc.c
49
smc_curs_copy(&conn->local_tx_ctrl_fin, &cdcpend->p_cursor,
net/smc/smc_cdc.c
490
smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_cdc.c
499
conn->local_rx_ctrl.seqno))
net/smc/smc_cdc.c
50
conn);
net/smc/smc_cdc.c
51
conn->tx_cdc_seq_fin = cdcpend->ctrl_seq;
net/smc/smc_cdc.c
54
if (atomic_dec_and_test(&conn->cdc_pend_tx_wr)) {
net/smc/smc_cdc.c
60
conn->tx_in_release_sock = true;
net/smc/smc_cdc.c
62
smc_tx_pending(conn);
net/smc/smc_cdc.c
64
if (unlikely(wq_has_sleeper(&conn->cdc_pend_tx_wq)))
net/smc/smc_cdc.c
65
wake_up(&conn->cdc_pend_tx_wq);
net/smc/smc_cdc.c
67
WARN_ON(atomic_read(&conn->cdc_pend_tx_wr) < 0);
net/smc/smc_cdc.c
73
int smc_cdc_get_free_slot(struct smc_connection *conn,
net/smc/smc_cdc.c
84
if (conn->killed) {
net/smc/smc_cdc.c
94
static inline void smc_cdc_add_pending_send(struct smc_connection *conn,
net/smc/smc_cdc.h
103
struct smc_connection *conn)
net/smc/smc_cdc.h
108
spin_lock_irqsave(&conn->acurs_lock, flags);
net/smc/smc_cdc.h
110
spin_unlock_irqrestore(&conn->acurs_lock, flags);
net/smc/smc_cdc.h
118
struct smc_connection *conn)
net/smc/smc_cdc.h
123
spin_lock_irqsave(&conn->acurs_lock, flags);
net/smc/smc_cdc.h
125
spin_unlock_irqrestore(&conn->acurs_lock, flags);
net/smc/smc_cdc.h
133
struct smc_connection *conn)
net/smc/smc_cdc.h
138
spin_lock_irqsave(&conn->acurs_lock, flags);
net/smc/smc_cdc.h
140
spin_unlock_irqrestore(&conn->acurs_lock, flags);
net/smc/smc_cdc.h
198
struct smc_connection *conn)
net/smc/smc_cdc.h
200
smc_curs_copy(save, local, conn);
net/smc/smc_cdc.h
207
struct smc_connection *conn,
net/smc/smc_cdc.h
210
struct smc_host_cdc_msg *local = &conn->local_tx_ctrl;
net/smc/smc_cdc.h
216
smc_host_cursor_to_cdc(&peer->prod, &local->prod, save, conn);
net/smc/smc_cdc.h
217
smc_host_cursor_to_cdc(&peer->cons, &local->cons, save, conn);
net/smc/smc_cdc.h
224
struct smc_connection *conn)
net/smc/smc_cdc.h
229
smc_curs_copy(&old, local, conn);
net/smc/smc_cdc.h
230
smc_curs_copy_net(&net, peer, conn);
net/smc/smc_cdc.h
238
smc_curs_copy(local, &temp, conn);
net/smc/smc_cdc.h
243
struct smc_connection *conn)
net/smc/smc_cdc.h
249
smc_cdc_cursor_to_host(&local->prod, &peer->prod, conn);
net/smc/smc_cdc.h
250
smc_cdc_cursor_to_host(&local->cons, &peer->cons, conn);
net/smc/smc_cdc.h
257
struct smc_connection *conn)
net/smc/smc_cdc.h
263
smc_curs_copy(&local->prod, &temp, conn);
net/smc/smc_cdc.h
267
smc_curs_copy(&local->cons, &temp, conn);
net/smc/smc_cdc.h
274
struct smc_connection *conn)
net/smc/smc_cdc.h
276
if (conn->lgr->is_smcd)
net/smc/smc_cdc.h
277
smcd_cdc_msg_to_host(local, (struct smcd_cdc_msg *)peer, conn);
net/smc/smc_cdc.h
279
smcr_cdc_msg_to_host(local, peer, conn);
net/smc/smc_cdc.h
283
struct smc_connection *conn; /* socket connection */
net/smc/smc_cdc.h
289
int smc_cdc_get_free_slot(struct smc_connection *conn,
net/smc/smc_cdc.h
294
void smc_cdc_wait_pend_tx_wr(struct smc_connection *conn);
net/smc/smc_cdc.h
295
int smc_cdc_msg_send(struct smc_connection *conn, struct smc_wr_buf *wr_buf,
net/smc/smc_cdc.h
297
int smc_cdc_get_slot_and_msg_send(struct smc_connection *conn);
net/smc/smc_cdc.h
298
int smcd_cdc_msg_send(struct smc_connection *conn);
net/smc/smc_cdc.h
299
int smcr_cdc_msg_send_validation(struct smc_connection *conn,
net/smc/smc_cdc.h
303
void smcd_cdc_rx_init(struct smc_connection *conn);
net/smc/smc_cdc.h
77
static inline bool smc_cdc_rxed_any_close(struct smc_connection *conn)
net/smc/smc_cdc.h
79
return conn->local_rx_ctrl.conn_state_flags.peer_conn_abort ||
net/smc/smc_cdc.h
80
conn->local_rx_ctrl.conn_state_flags.peer_conn_closed;
net/smc/smc_cdc.h
84
struct smc_connection *conn)
net/smc/smc_cdc.h
86
return smc_cdc_rxed_any_close(conn) ||
net/smc/smc_cdc.h
87
conn->local_rx_ctrl.conn_state_flags.peer_done_writing;
net/smc/smc_clc.c
1047
smcd_clc_prep_confirm_accept(struct smc_connection *conn,
net/smc/smc_clc.c
1055
struct smcd_dev *smcd = conn->lgr->smcd;
net/smc/smc_clc.c
1066
clc->d0.token = htonll(conn->rmb_desc->token);
net/smc/smc_clc.c
1067
clc->d0.dmbe_size = conn->rmbe_size_comp;
net/smc/smc_clc.c
1069
memcpy(&clc->d0.linkid, conn->lgr->id, SMC_LGR_ID_SIZE);
net/smc/smc_clc.c
1091
smcr_clc_prep_confirm_accept(struct smc_connection *conn,
net/smc/smc_clc.c
1100
struct smc_link *link = conn->lnk;
net/smc/smc_clc.c
1114
htonl(conn->rmb_desc->mr[link->link_idx]->rkey);
net/smc/smc_clc.c
1116
clc->r0.rmbe_alert_token = htonl(conn->alert_token_local);
net/smc/smc_clc.c
1125
clc->r0.rmbe_size = conn->rmbe_size_comp;
net/smc/smc_clc.c
1126
clc->r0.rmb_dma_addr = conn->rmb_desc->is_vm ?
net/smc/smc_clc.c
1127
cpu_to_be64((uintptr_t)conn->rmb_desc->cpu_addr) :
net/smc/smc_clc.c
1129
(conn->rmb_desc->sgt[link->link_idx].sgl));
net/smc/smc_clc.c
1161
struct smc_connection *conn = &smc->conn;
net/smc/smc_clc.c
1172
if (conn->lgr->is_smcd)
net/smc/smc_clc.c
1173
smcd_clc_prep_confirm_accept(conn, clc, first_contact,
net/smc/smc_clc.c
1177
smcr_clc_prep_confirm_accept(conn, clc, first_contact,
net/smc/smc_clc.c
1196
if (!conn->lgr->is_smcd) {
net/smc/smc_clc.c
792
smc->conn.lgr) {
net/smc/smc_clc.c
793
smc->conn.lgr->sync_err = 1;
net/smc/smc_clc.c
794
smc_lgr_terminate_sched(smc->conn.lgr);
net/smc/smc_clc.c
820
if ((!smc_conn_lgr_valid(&smc->conn) || !smc->conn.lgr->is_smcd) &&
net/smc/smc_close.c
100
conn->local_tx_ctrl.conn_state_flags.peer_conn_closed = 1;
net/smc/smc_close.c
101
if (conn->killed)
net/smc/smc_close.c
104
return smc_cdc_get_slot_and_msg_send(conn);
net/smc/smc_close.c
107
int smc_close_abort(struct smc_connection *conn)
net/smc/smc_close.c
109
conn->local_tx_ctrl.conn_state_flags.peer_conn_abort = 1;
net/smc/smc_close.c
111
return smc_cdc_get_slot_and_msg_send(conn);
net/smc/smc_close.c
119
if (cancel_work_sync(&smc->conn.close_work))
net/smc/smc_close.c
121
cancel_delayed_work_sync(&smc->conn.tx_work);
net/smc/smc_close.c
157
smc_conn_free(&smc->conn);
net/smc/smc_close.c
168
smc_conn_free(&smc->conn);
net/smc/smc_close.c
187
static inline bool smc_close_sent_any_close(struct smc_connection *conn)
net/smc/smc_close.c
189
return conn->local_tx_ctrl.conn_state_flags.peer_conn_abort ||
net/smc/smc_close.c
190
conn->local_tx_ctrl.conn_state_flags.peer_conn_closed;
net/smc/smc_close.c
196
&smc->conn.local_tx_ctrl.conn_state_flags;
net/smc/smc_close.c
197
struct smc_connection *conn = &smc->conn;
net/smc/smc_close.c
233
cancel_delayed_work_sync(&conn->tx_work);
net/smc/smc_close.c
237
rc = smc_close_final(conn);
net/smc/smc_close.c
256
!smc_close_sent_any_close(conn)) {
net/smc/smc_close.c
258
rc = smc_close_final(conn);
net/smc/smc_close.c
264
if (!smc_cdc_rxed_any_close(conn))
net/smc/smc_close.c
267
cancel_delayed_work_sync(&conn->tx_work);
net/smc/smc_close.c
273
rc = smc_close_final(conn);
net/smc/smc_close.c
274
if (smc_cdc_rxed_any_close(conn)) {
net/smc/smc_close.c
286
!smc_close_sent_any_close(conn)) {
net/smc/smc_close.c
288
rc = smc_close_final(conn);
net/smc/smc_close.c
296
rc = smc_close_abort(conn);
net/smc/smc_close.c
315
&smc->conn.local_tx_ctrl.conn_state_flags;
net/smc/smc_close.c
331
!smc_close_sent_any_close(&smc->conn))
net/smc/smc_close.c
358
struct smc_connection *conn = container_of(work,
net/smc/smc_close.c
361
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_close.c
370
rxflags = &conn->local_rx_ctrl.conn_state_flags;
net/smc/smc_close.c
375
cancel_delayed_work_sync(&conn->tx_work);
net/smc/smc_close.c
396
if (!smc_cdc_rxed_any_close(conn))
net/smc/smc_close.c
399
smc_close_sent_any_close(conn)) {
net/smc/smc_close.c
409
if (smc_cdc_rxed_any_close(conn)) {
net/smc/smc_close.c
436
smc_conn_free(conn);
net/smc/smc_close.c
449
struct smc_connection *conn = &smc->conn;
net/smc/smc_close.c
465
cancel_delayed_work_sync(&conn->tx_work);
net/smc/smc_close.c
470
rc = smc_close_wr(conn);
net/smc/smc_close.c
475
if (!smc_cdc_rxed_any_close(conn))
net/smc/smc_close.c
478
cancel_delayed_work_sync(&conn->tx_work);
net/smc/smc_close.c
483
rc = smc_close_wr(conn);
net/smc/smc_close.c
505
INIT_WORK(&smc->conn.close_work, smc_close_passive_work);
net/smc/smc_close.c
57
if (!smc_tx_prepared_sends(&smc->conn))
net/smc/smc_close.c
61
smc_tx_pending(&smc->conn);
net/smc/smc_close.c
69
!smc_tx_prepared_sends(&smc->conn) ||
net/smc/smc_close.c
72
smc->conn.killed,
net/smc/smc_close.c
88
static int smc_close_wr(struct smc_connection *conn)
net/smc/smc_close.c
90
conn->local_tx_ctrl.conn_state_flags.peer_done_writing = 1;
net/smc/smc_close.c
92
return smc_cdc_get_slot_and_msg_send(conn);
net/smc/smc_close.c
95
static int smc_close_final(struct smc_connection *conn)
net/smc/smc_close.c
97
if (atomic_read(&conn->bytes_to_rcv))
net/smc/smc_close.c
98
conn->local_tx_ctrl.conn_state_flags.peer_conn_abort = 1;
net/smc/smc_close.h
27
int smc_close_abort(struct smc_connection *conn);
net/smc/smc_core.c
101
static void smc_lgr_add_alert_token(struct smc_connection *conn)
net/smc/smc_core.c
1019
static int smc_write_space(struct smc_connection *conn)
net/smc/smc_core.c
1021
int buffer_len = conn->peer_rmbe_size;
net/smc/smc_core.c
1026
smc_curs_copy(&prod, &conn->local_tx_ctrl.prod, conn);
net/smc/smc_core.c
1027
smc_curs_copy(&cons, &conn->local_rx_ctrl.cons, conn);
net/smc/smc_core.c
1036
struct smc_connection *conn = &smc->conn;
net/smc/smc_core.c
104
u32 token = conn->alert_token_local;
net/smc/smc_core.c
1041
smc_curs_copy(&conn->tx_curs_sent, &conn->tx_curs_fin, conn);
net/smc/smc_core.c
1042
smc_curs_copy(&fin, &conn->local_tx_ctrl_fin, conn);
net/smc/smc_core.c
1044
smc_curs_copy(&conn->local_tx_ctrl.prod, &fin, conn);
net/smc/smc_core.c
1045
smc_curs_copy(&cons, &conn->local_rx_ctrl.cons, conn);
net/smc/smc_core.c
1047
if (smc_curs_comp(conn->peer_rmbe_size, &cons, &fin) < 0) {
net/smc/smc_core.c
1051
diff = smc_curs_diff(conn->peer_rmbe_size, &fin, &cons);
net/smc/smc_core.c
1052
smc_curs_add(conn->sndbuf_desc->len,
net/smc/smc_core.c
1053
&conn->tx_curs_sent, diff);
net/smc/smc_core.c
1054
smc_curs_add(conn->sndbuf_desc->len,
net/smc/smc_core.c
1055
&conn->tx_curs_fin, diff);
net/smc/smc_core.c
1058
atomic_add(diff, &conn->sndbuf_space);
net/smc/smc_core.c
106
link = &conn->lgr->conns_all.rb_node;
net/smc/smc_core.c
1061
smc_curs_add(conn->peer_rmbe_size,
net/smc/smc_core.c
1062
&conn->local_tx_ctrl.prod, diff);
net/smc/smc_core.c
1063
smc_curs_add(conn->peer_rmbe_size,
net/smc/smc_core.c
1064
&conn->local_tx_ctrl_fin, diff);
net/smc/smc_core.c
1067
atomic_set(&smc->conn.peer_rmbe_space, smc_write_space(conn));
net/smc/smc_core.c
1071
rc = smcr_cdc_msg_send_validation(conn, pend, wr_buf);
net/smc/smc_core.c
1073
queue_delayed_work(conn->lgr->tx_wq, &conn->tx_work, 0);
net/smc/smc_core.c
1077
smc_wr_tx_put_slot(conn->lnk,
net/smc/smc_core.c
1083
void smc_switch_link_and_count(struct smc_connection *conn,
net/smc/smc_core.c
1086
atomic_dec(&conn->lnk->conn_cnt);
net/smc/smc_core.c
1088
smcr_link_put(conn->lnk);
net/smc/smc_core.c
1089
conn->lnk = to_lnk;
net/smc/smc_core.c
1090
atomic_inc(&conn->lnk->conn_cnt);
net/smc/smc_core.c
1092
smcr_link_hold(conn->lnk);
net/smc/smc_core.c
1100
struct smc_connection *conn;
net/smc/smc_core.c
1126
conn = rb_entry(node, struct smc_connection, alert_node);
net/smc/smc_core.c
1127
if (conn->lnk != from_lnk)
net/smc/smc_core.c
1129
smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
1142
spin_lock_bh(&conn->send_lock);
net/smc/smc_core.c
1143
smc_switch_link_and_count(conn, to_lnk);
net/smc/smc_core.c
1144
spin_unlock_bh(&conn->send_lock);
net/smc/smc_core.c
1150
rc = smc_cdc_get_free_slot(conn, to_lnk, &wr_buf, NULL, &pend);
net/smc/smc_core.c
1154
spin_lock_bh(&conn->send_lock);
net/smc/smc_core.c
1155
smc_switch_link_and_count(conn, to_lnk);
net/smc/smc_core.c
1157
spin_unlock_bh(&conn->send_lock);
net/smc/smc_core.c
118
rb_link_node(&conn->alert_node, parent, link);
net/smc/smc_core.c
119
rb_insert_color(&conn->alert_node, &conn->lgr->conns_all);
net/smc/smc_core.c
1208
static void smcd_buf_detach(struct smc_connection *conn)
net/smc/smc_core.c
1210
struct smcd_dev *smcd = conn->lgr->smcd;
net/smc/smc_core.c
1211
u64 peer_token = conn->peer_token;
net/smc/smc_core.c
1213
if (!conn->sndbuf_desc)
net/smc/smc_core.c
1218
kfree(conn->sndbuf_desc);
net/smc/smc_core.c
1219
conn->sndbuf_desc = NULL;
net/smc/smc_core.c
1222
static void smc_buf_unuse(struct smc_connection *conn,
net/smc/smc_core.c
1225
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
1229
if (conn->sndbuf_desc) {
net/smc/smc_core.c
123
static int smcr_lgr_conn_assign_link(struct smc_connection *conn, bool first)
net/smc/smc_core.c
1230
bufsize = conn->sndbuf_desc->len;
net/smc/smc_core.c
1231
if (!is_smcd && conn->sndbuf_desc->is_vm) {
net/smc/smc_core.c
1232
smcr_buf_unuse(conn->sndbuf_desc, false, lgr);
net/smc/smc_core.c
1234
memzero_explicit(conn->sndbuf_desc->cpu_addr, bufsize);
net/smc/smc_core.c
1235
WRITE_ONCE(conn->sndbuf_desc->used, 0);
net/smc/smc_core.c
1239
if (conn->rmb_desc) {
net/smc/smc_core.c
1240
bufsize = conn->rmb_desc->len;
net/smc/smc_core.c
1242
smcr_buf_unuse(conn->rmb_desc, true, lgr);
net/smc/smc_core.c
1245
memzero_explicit(conn->rmb_desc->cpu_addr, bufsize);
net/smc/smc_core.c
1246
WRITE_ONCE(conn->rmb_desc->used, 0);
net/smc/smc_core.c
1253
void smc_conn_free(struct smc_connection *conn)
net/smc/smc_core.c
1255
struct smc_link_group *lgr = conn->lgr;
net/smc/smc_core.c
1257
if (!lgr || conn->freed)
net/smc/smc_core.c
1263
conn->freed = 1;
net/smc/smc_core.c
1264
if (!smc_conn_lgr_valid(conn))
net/smc/smc_core.c
1272
smc_ism_unset_conn(conn);
net/smc/smc_core.c
1274
smcd_buf_detach(conn);
net/smc/smc_core.c
1275
tasklet_kill(&conn->rx_tsklet);
net/smc/smc_core.c
1277
smc_cdc_wait_pend_tx_wr(conn);
net/smc/smc_core.c
1278
if (current_work() != &conn->abort_work)
net/smc/smc_core.c
1279
cancel_work_sync(&conn->abort_work);
net/smc/smc_core.c
1282
smc_buf_unuse(conn, lgr); /* allow buffer reuse */
net/smc/smc_core.c
1283
smc_lgr_unregister_conn(conn);
net/smc/smc_core.c
1290
smcr_link_put(conn->lnk); /* link_hold in smc_conn_create() */
net/smc/smc_core.c
130
conn->lnk = NULL; /* reset conn->lnk first */
net/smc/smc_core.c
132
struct smc_link *lnk = &conn->lgr->lnk[i];
net/smc/smc_core.c
136
if (conn->lgr->role == SMC_CLNT) {
net/smc/smc_core.c
137
conn->lnk = lnk; /* temporary, SMC server assigns link*/
net/smc/smc_core.c
140
if (conn->lgr->conns_num % 2) {
net/smc/smc_core.c
144
lnk2 = &conn->lgr->lnk[j];
net/smc/smc_core.c
147
conn->lnk = lnk2;
net/smc/smc_core.c
1515
static void smc_conn_kill(struct smc_connection *conn, bool soft)
net/smc/smc_core.c
1517
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
1519
if (conn->lgr->is_smcd && conn->lgr->peer_shutdown)
net/smc/smc_core.c
152
if (!conn->lnk)
net/smc/smc_core.c
1520
conn->local_tx_ctrl.conn_state_flags.peer_conn_abort = 1;
net/smc/smc_core.c
1522
smc_close_abort(conn);
net/smc/smc_core.c
1523
conn->killed = 1;
net/smc/smc_core.c
1526
if (conn->lgr->is_smcd) {
net/smc/smc_core.c
1527
smc_ism_unset_conn(conn);
net/smc/smc_core.c
1528
if (smc_ism_support_dmb_nocopy(conn->lgr->smcd))
net/smc/smc_core.c
1529
smcd_buf_detach(conn);
net/smc/smc_core.c
153
conn->lnk = lnk;
net/smc/smc_core.c
1531
tasklet_kill(&conn->rx_tsklet);
net/smc/smc_core.c
1533
tasklet_unlock_wait(&conn->rx_tsklet);
net/smc/smc_core.c
1535
smc_cdc_wait_pend_tx_wr(conn);
net/smc/smc_core.c
1537
smc_lgr_unregister_conn(conn);
net/smc/smc_core.c
156
if (!conn->lnk)
net/smc/smc_core.c
1561
struct smc_connection *conn;
net/smc/smc_core.c
1575
conn = rb_entry(node, struct smc_connection, alert_node);
net/smc/smc_core.c
1576
smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
158
atomic_inc(&conn->lnk->conn_cnt);
net/smc/smc_core.c
1580
smc_conn_kill(conn, soft);
net/smc/smc_core.c
167
static int smc_lgr_register_conn(struct smc_connection *conn, bool first)
net/smc/smc_core.c
169
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
173
if (!conn->lgr->is_smcd) {
net/smc/smc_core.c
174
rc = smcr_lgr_conn_assign_link(conn, first);
net/smc/smc_core.c
1746
struct smc_connection *conn = container_of(work,
net/smc/smc_core.c
1749
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
1752
smc_conn_kill(conn, true);
net/smc/smc_core.c
176
conn->lgr = NULL;
net/smc/smc_core.c
184
while (!conn->alert_token_local) {
net/smc/smc_core.c
185
conn->alert_token_local = atomic_inc_return(&nexttoken);
net/smc/smc_core.c
186
if (smc_lgr_find_conn(conn->alert_token_local, conn->lgr))
net/smc/smc_core.c
187
conn->alert_token_local = 0;
net/smc/smc_core.c
189
smc_lgr_add_alert_token(conn);
net/smc/smc_core.c
190
conn->lgr->conns_num++;
net/smc/smc_core.c
196
static void __smc_lgr_unregister_conn(struct smc_connection *conn)
net/smc/smc_core.c
1978
struct smc_connection *conn = &smc->conn;
net/smc/smc_core.c
198
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
199
struct smc_link_group *lgr = conn->lgr;
net/smc/smc_core.c
201
rb_erase(&conn->alert_node, &lgr->conns_all);
net/smc/smc_core.c
2015
conn->lgr = lgr;
net/smc/smc_core.c
2016
rc = smc_lgr_register_conn(conn, false);
net/smc/smc_core.c
202
if (conn->lnk)
net/smc/smc_core.c
203
atomic_dec(&conn->lnk->conn_cnt);
net/smc/smc_core.c
2042
lgr = conn->lgr;
net/smc/smc_core.c
2044
rc = smc_lgr_register_conn(conn, true);
net/smc/smc_core.c
205
conn->alert_token_local = 0;
net/smc/smc_core.c
2051
smc_lgr_hold(conn->lgr); /* lgr_put in smc_conn_free() */
net/smc/smc_core.c
2052
if (!conn->lgr->is_smcd)
net/smc/smc_core.c
2053
smcr_link_hold(conn->lnk); /* link_put in smc_conn_free() */
net/smc/smc_core.c
2054
conn->freed = 0;
net/smc/smc_core.c
2055
conn->local_tx_ctrl.common.type = SMC_CDC_MSG_TYPE;
net/smc/smc_core.c
2056
conn->local_tx_ctrl.len = SMC_WR_TX_SIZE;
net/smc/smc_core.c
2057
conn->urg_state = SMC_URG_READ;
net/smc/smc_core.c
2058
init_waitqueue_head(&conn->cdc_pend_tx_wq);
net/smc/smc_core.c
2059
INIT_WORK(&smc->conn.abort_work, smc_conn_abort_work);
net/smc/smc_core.c
2061
conn->rx_off = sizeof(struct smcd_cdc_msg);
net/smc/smc_core.c
2062
smcd_cdc_rx_init(conn); /* init tasklet for this conn */
net/smc/smc_core.c
2064
conn->rx_off = 0;
net/smc/smc_core.c
2067
spin_lock_init(&conn->acurs_lock);
net/smc/smc_core.c
211
static void smc_lgr_unregister_conn(struct smc_connection *conn)
net/smc/smc_core.c
213
struct smc_link_group *lgr = conn->lgr;
net/smc/smc_core.c
215
if (!smc_conn_lgr_valid(conn))
net/smc/smc_core.c
218
if (conn->alert_token_local) {
net/smc/smc_core.c
219
__smc_lgr_unregister_conn(conn);
net/smc/smc_core.c
2429
struct smc_connection *conn = &smc->conn;
net/smc/smc_core.c
2430
struct smc_link_group *lgr = conn->lgr;
net/smc/smc_core.c
2502
conn->rmb_desc = buf_desc;
net/smc/smc_core.c
2503
conn->rmbe_size_comp = bufsize_comp;
net/smc/smc_core.c
2505
atomic_set(&conn->bytes_to_rcv, 0);
net/smc/smc_core.c
2506
conn->rmbe_update_limit =
net/smc/smc_core.c
2509
smc_ism_set_conn(conn); /* map RMB/smcd_dev to conn */
net/smc/smc_core.c
2511
conn->sndbuf_desc = buf_desc;
net/smc/smc_core.c
2513
atomic_set(&conn->sndbuf_space, bufsize);
net/smc/smc_core.c
2518
void smc_sndbuf_sync_sg_for_device(struct smc_connection *conn)
net/smc/smc_core.c
2520
if (!conn->sndbuf_desc->is_dma_need_sync)
net/smc/smc_core.c
2522
if (!smc_conn_lgr_valid(conn) || conn->lgr->is_smcd ||
net/smc/smc_core.c
2523
!smc_link_active(conn->lnk))
net/smc/smc_core.c
2525
smc_ib_sync_sg_for_device(conn->lnk, conn->sndbuf_desc, DMA_TO_DEVICE);
net/smc/smc_core.c
2528
void smc_rmb_sync_sg_for_cpu(struct smc_connection *conn)
net/smc/smc_core.c
2532
if (!conn->rmb_desc->is_dma_need_sync)
net/smc/smc_core.c
2534
if (!smc_conn_lgr_valid(conn) || conn->lgr->is_smcd)
net/smc/smc_core.c
2537
if (!smc_link_active(&conn->lgr->lnk[i]))
net/smc/smc_core.c
2539
smc_ib_sync_sg_for_cpu(&conn->lgr->lnk[i], conn->rmb_desc,
net/smc/smc_core.c
2556
smc_ism_support_dmb_nocopy(smc->conn.lgr->smcd))
net/smc/smc_core.c
2566
if (rc && smc->conn.sndbuf_desc) {
net/smc/smc_core.c
2567
down_write(&smc->conn.lgr->sndbufs_lock);
net/smc/smc_core.c
2568
smc_lgr_buf_list_del(smc->conn.lgr, false,
net/smc/smc_core.c
2569
smc->conn.sndbuf_desc);
net/smc/smc_core.c
2570
up_write(&smc->conn.lgr->sndbufs_lock);
net/smc/smc_core.c
2571
smc_buf_free(smc->conn.lgr, false, smc->conn.sndbuf_desc);
net/smc/smc_core.c
2572
smc->conn.sndbuf_desc = NULL;
net/smc/smc_core.c
2579
struct smc_connection *conn = &smc->conn;
net/smc/smc_core.c
2580
struct smcd_dev *smcd = conn->lgr->smcd;
net/smc/smc_core.c
2581
u64 peer_token = conn->peer_token;
net/smc/smc_core.c
2602
conn->sndbuf_desc = buf_desc;
net/smc/smc_core.c
2603
conn->sndbuf_desc->used = 1;
net/smc/smc_core.c
2604
atomic_set(&conn->sndbuf_space, conn->sndbuf_desc->len);
net/smc/smc_core.c
2716
int smc_rmb_rtoken_handling(struct smc_connection *conn,
net/smc/smc_core.c
2720
conn->rtoken_idx = smc_rtoken_add(lnk, clc->r0.rmb_dma_addr,
net/smc/smc_core.c
2722
if (conn->rtoken_idx < 0)
net/smc/smc_core.c
2723
return conn->rtoken_idx;
net/smc/smc_core.c
996
smc->conn.lgr = lgr;
net/smc/smc_core.h
487
static inline bool smc_conn_lgr_valid(struct smc_connection *conn)
net/smc/smc_core.h
489
return conn->lgr && conn->alert_token_local;
net/smc/smc_core.h
586
int smc_rmb_rtoken_handling(struct smc_connection *conn, struct smc_link *link,
net/smc/smc_core.h
594
void smc_sndbuf_sync_sg_for_device(struct smc_connection *conn);
net/smc/smc_core.h
595
void smc_rmb_sync_sg_for_cpu(struct smc_connection *conn);
net/smc/smc_core.h
598
void smc_conn_free(struct smc_connection *conn);
net/smc/smc_core.h
608
void smc_switch_link_and_count(struct smc_connection *conn,
net/smc/smc_diag.c
107
smc->conn.alert_token_local) {
net/smc/smc_diag.c
108
struct smc_connection *conn = &smc->conn;
net/smc/smc_diag.c
110
.token = conn->alert_token_local,
net/smc/smc_diag.c
111
.sndbuf_size = conn->sndbuf_desc ?
net/smc/smc_diag.c
112
conn->sndbuf_desc->len : 0,
net/smc/smc_diag.c
113
.rmbe_size = conn->rmb_desc ? conn->rmb_desc->len : 0,
net/smc/smc_diag.c
114
.peer_rmbe_size = conn->peer_rmbe_size,
net/smc/smc_diag.c
116
.rx_prod.wrap = conn->local_rx_ctrl.prod.wrap,
net/smc/smc_diag.c
117
.rx_prod.count = conn->local_rx_ctrl.prod.count,
net/smc/smc_diag.c
118
.rx_cons.wrap = conn->local_rx_ctrl.cons.wrap,
net/smc/smc_diag.c
119
.rx_cons.count = conn->local_rx_ctrl.cons.count,
net/smc/smc_diag.c
121
.tx_prod.wrap = conn->local_tx_ctrl.prod.wrap,
net/smc/smc_diag.c
122
.tx_prod.count = conn->local_tx_ctrl.prod.count,
net/smc/smc_diag.c
123
.tx_cons.wrap = conn->local_tx_ctrl.cons.wrap,
net/smc/smc_diag.c
124
.tx_cons.count = conn->local_tx_ctrl.cons.count,
net/smc/smc_diag.c
127
*(u8 *)&conn->local_tx_ctrl.prod_flags,
net/smc/smc_diag.c
129
*(u8 *)&conn->local_tx_ctrl.conn_state_flags,
net/smc/smc_diag.c
130
.rx_prod_flags = *(u8 *)&conn->local_rx_ctrl.prod_flags,
net/smc/smc_diag.c
132
*(u8 *)&conn->local_rx_ctrl.conn_state_flags,
net/smc/smc_diag.c
134
.tx_prep.wrap = conn->tx_curs_prep.wrap,
net/smc/smc_diag.c
135
.tx_prep.count = conn->tx_curs_prep.count,
net/smc/smc_diag.c
136
.tx_sent.wrap = conn->tx_curs_sent.wrap,
net/smc/smc_diag.c
137
.tx_sent.count = conn->tx_curs_sent.count,
net/smc/smc_diag.c
138
.tx_fin.wrap = conn->tx_curs_fin.wrap,
net/smc/smc_diag.c
139
.tx_fin.count = conn->tx_curs_fin.count,
net/smc/smc_diag.c
146
if (smc_conn_lgr_valid(&smc->conn) && !smc->conn.lgr->is_smcd &&
net/smc/smc_diag.c
148
!list_empty(&smc->conn.lgr->list)) {
net/smc/smc_diag.c
149
struct smc_link *link = smc->conn.lnk;
net/smc/smc_diag.c
152
.role = smc->conn.lgr->role,
net/smc/smc_diag.c
165
if (smc_conn_lgr_valid(&smc->conn) && smc->conn.lgr->is_smcd &&
net/smc/smc_diag.c
167
!list_empty(&smc->conn.lgr->list) && smc->conn.rmb_desc) {
net/smc/smc_diag.c
168
struct smc_connection *conn = &smc->conn;
net/smc/smc_diag.c
170
struct smcd_dev *smcd = conn->lgr->smcd;
net/smc/smc_diag.c
175
dinfo.linkid = *((u32 *)conn->lgr->id);
net/smc/smc_diag.c
176
dinfo.peer_gid = conn->lgr->peer_gid.gid;
net/smc/smc_diag.c
177
dinfo.peer_gid_ext = conn->lgr->peer_gid.gid_ext;
net/smc/smc_diag.c
181
dinfo.token = conn->rmb_desc->token;
net/smc/smc_diag.c
182
dinfo.peer_token = conn->peer_token;
net/smc/smc_diag.c
93
else if (smc_conn_lgr_valid(&smc->conn) && smc->conn.lgr->is_smcd)
net/smc/smc_ism.c
107
void smc_ism_set_conn(struct smc_connection *conn)
net/smc/smc_ism.c
111
spin_lock_irqsave(&conn->lgr->smcd->lock, flags);
net/smc/smc_ism.c
112
conn->lgr->smcd->conn[conn->rmb_desc->sba_idx] = conn;
net/smc/smc_ism.c
113
spin_unlock_irqrestore(&conn->lgr->smcd->lock, flags);
net/smc/smc_ism.c
117
void smc_ism_unset_conn(struct smc_connection *conn)
net/smc/smc_ism.c
121
if (!conn->rmb_desc)
net/smc/smc_ism.c
124
spin_lock_irqsave(&conn->lgr->smcd->lock, flags);
net/smc/smc_ism.c
125
conn->lgr->smcd->conn[conn->rmb_desc->sba_idx] = NULL;
net/smc/smc_ism.c
126
spin_unlock_irqrestore(&conn->lgr->smcd->lock, flags);
net/smc/smc_ism.c
470
smcd = kzalloc_flex(*smcd, conn, max_dmbs);
net/smc/smc_ism.c
598
struct smc_connection *conn = NULL;
net/smc/smc_ism.c
602
conn = smcd->conn[dmbno];
net/smc/smc_ism.c
603
if (conn && !conn->killed)
net/smc/smc_ism.c
604
tasklet_schedule(&conn->rx_tsklet);
net/smc/smc_ism.h
45
void smc_ism_set_conn(struct smc_connection *conn);
net/smc/smc_ism.h
46
void smc_ism_unset_conn(struct smc_connection *conn);
net/smc/smc_rx.c
102
struct smc_connection *conn = &smc->conn;
net/smc/smc_rx.c
105
smc_curs_copy(&cons, &conn->local_tx_ctrl.cons, conn);
net/smc/smc_rx.c
119
struct smc_connection *conn;
net/smc/smc_rx.c
126
conn = &smc->conn;
net/smc/smc_rx.c
130
if (atomic_sub_and_test(priv->len, &conn->splice_pending))
net/smc/smc_rx.c
159
struct smc_link_group *lgr = smc->conn.lgr;
net/smc/smc_rx.c
168
nr_pages = !lgr->is_smcd && smc->conn.rmb_desc->is_vm ?
net/smc/smc_rx.c
187
(!lgr->is_smcd && !smc->conn.rmb_desc->is_vm)) {
net/smc/smc_rx.c
191
partial[0].offset = src - (char *)smc->conn.rmb_desc->cpu_addr;
net/smc/smc_rx.c
194
pages[0] = smc->conn.rmb_desc->pages;
net/smc/smc_rx.c
222
if (!lgr->is_smcd && smc->conn.rmb_desc->is_vm) {
net/smc/smc_rx.c
226
get_page(smc->conn.rmb_desc->pages);
net/smc/smc_rx.c
228
atomic_add(bytes, &smc->conn.splice_pending);
net/smc/smc_rx.c
248
static int smc_rx_data_available_and_no_splice_pend(struct smc_connection *conn, size_t peeked)
net/smc/smc_rx.c
250
return smc_rx_data_available(conn, peeked) &&
net/smc/smc_rx.c
251
!atomic_read(&conn->splice_pending);
net/smc/smc_rx.c
264
int (*fcrit)(struct smc_connection *conn, size_t baseline))
net/smc/smc_rx.c
267
struct smc_connection *conn = &smc->conn;
net/smc/smc_rx.c
269
&conn->local_tx_ctrl.conn_state_flags;
net/smc/smc_rx.c
273
if (fcrit(conn, peeked))
net/smc/smc_rx.c
281
conn->killed ||
net/smc/smc_rx.c
282
fcrit(conn, peeked),
net/smc/smc_rx.c
292
struct smc_connection *conn = &smc->conn;
net/smc/smc_rx.c
298
!(conn->urg_state == SMC_URG_VALID) ||
net/smc/smc_rx.c
299
conn->urg_state == SMC_URG_READ)
net/smc/smc_rx.c
303
if (conn->urg_state == SMC_URG_VALID) {
net/smc/smc_rx.c
305
smc->conn.urg_state = SMC_URG_READ;
net/smc/smc_rx.c
309
rc = memcpy_to_msg(msg, &conn->urg_rx_byte, 1);
net/smc/smc_rx.c
311
smc_curs_copy(&cons, &conn->local_tx_ctrl.cons, conn);
net/smc/smc_rx.c
312
if (smc_curs_diff(conn->rmb_desc->len, &cons,
net/smc/smc_rx.c
313
&conn->urg_curs) > 1)
net/smc/smc_rx.c
314
conn->urg_rx_skip_pend = true;
net/smc/smc_rx.c
335
struct smc_connection *conn = &smc->conn;
net/smc/smc_rx.c
337
if (smc_rx_data_available(conn, peeked))
net/smc/smc_rx.c
339
else if (conn->urg_state == SMC_URG_VALID)
net/smc/smc_rx.c
357
struct smc_connection *conn = &smc->conn;
net/smc/smc_rx.c
358
int (*func)(struct smc_connection *conn, size_t baseline);
net/smc/smc_rx.c
379
readable = atomic_read(&conn->bytes_to_rcv);
net/smc/smc_rx.c
380
if (readable >= conn->rmb_desc->len)
net/smc/smc_rx.c
381
SMC_STAT_RMB_RX_FULL(smc, !conn->lnk);
net/smc/smc_rx.c
384
SMC_STAT_RMB_RX_SIZE_SMALL(smc, !conn->lnk);
net/smc/smc_rx.c
386
rcvbuf_base = conn->rx_off + conn->rmb_desc->cpu_addr;
net/smc/smc_rx.c
392
if (conn->killed)
net/smc/smc_rx.c
436
if (!smc_rx_data_available(conn, peeked_bytes)) {
net/smc/smc_rx.c
444
readable = smc_rx_data_available(conn, peeked_bytes);
net/smc/smc_rx.c
445
splbytes = atomic_read(&conn->splice_pending);
net/smc/smc_rx.c
455
smc_curs_copy(&cons, &conn->local_tx_ctrl.cons, conn);
net/smc/smc_rx.c
457
smc_curs_add(conn->rmb_desc->len, &cons, peeked_bytes);
net/smc/smc_rx.c
460
smc_curs_add(conn->rmb_desc->len, &cons, splbytes);
net/smc/smc_rx.c
461
if (conn->urg_state == SMC_URG_VALID &&
net/smc/smc_rx.c
469
chunk_len = min_t(size_t, copylen, conn->rmb_desc->len -
net/smc/smc_rx.c
473
smc_rmb_sync_sg_for_cpu(conn);
net/smc/smc_rx.c
508
atomic_sub(copylen, &conn->bytes_to_rcv);
net/smc/smc_rx.c
525
atomic_set(&smc->conn.splice_pending, 0);
net/smc/smc_rx.c
526
smc->conn.urg_state = SMC_URG_READ;
net/smc/smc_rx.c
62
struct smc_connection *conn = &smc->conn;
net/smc/smc_rx.c
67
smc_curs_add(conn->rmb_desc->len, &cons, len);
net/smc/smc_rx.c
70
if (conn->urg_state == SMC_URG_VALID || conn->urg_rx_skip_pend) {
net/smc/smc_rx.c
71
diff = smc_curs_comp(conn->rmb_desc->len, &cons,
net/smc/smc_rx.c
72
&conn->urg_curs);
net/smc/smc_rx.c
77
conn->urg_state = SMC_URG_READ;
net/smc/smc_rx.c
83
smc_curs_add(conn->rmb_desc->len, &cons, 1);
net/smc/smc_rx.c
84
conn->urg_rx_skip_pend = false;
net/smc/smc_rx.c
87
conn->urg_state = SMC_URG_READ;
net/smc/smc_rx.c
91
smc_curs_copy(&conn->local_tx_ctrl.cons, &cons, conn);
net/smc/smc_rx.c
95
smc_tx_consumer_update(conn, force);
net/smc/smc_rx.h
25
int (*fcrit)(struct smc_connection *conn, size_t baseline));
net/smc/smc_rx.h
26
static inline int smc_rx_data_available(struct smc_connection *conn, size_t peeked)
net/smc/smc_rx.h
28
return atomic_read(&conn->bytes_to_rcv) - peeked;
net/smc/smc_stats.h
117
bool is_smcd = !__smc->conn.lnk; \
net/smc/smc_stats.h
132
bool is_smcd = !__smc->conn.lnk; \
net/smc/smc_stats.h
230
bool is_smcd = !(__smc)->conn.lnk; \
net/smc/smc_tracepoint.h
54
__string(name, smc->conn.lnk ? smc->conn.lnk->ibname : "")
net/smc/smc_tx.c
112
if (atomic_read(&conn->sndbuf_space) && !conn->urg_tx_pend)
net/smc/smc_tx.c
118
smc_cdc_rxed_any_close(conn) ||
net/smc/smc_tx.c
119
(atomic_read(&conn->sndbuf_space) &&
net/smc/smc_tx.c
120
!conn->urg_tx_pend),
net/smc/smc_tx.c
147
struct smc_connection *conn = &smc->conn;
net/smc/smc_tx.c
150
corking_size = min_t(unsigned int, conn->sndbuf_desc->len >> 1,
net/smc/smc_tx.c
153
if (atomic_read(&conn->cdc_pend_tx_wr) == 0 ||
net/smc/smc_tx.c
154
smc_tx_prepared_sends(conn) > corking_size)
net/smc/smc_tx.c
161
struct smc_connection *conn = &smc->conn;
net/smc/smc_tx.c
172
atomic_read(&conn->sndbuf_space))
net/smc/smc_tx.c
185
struct smc_connection *conn = &smc->conn;
net/smc/smc_tx.c
204
if (len > conn->sndbuf_desc->len)
net/smc/smc_tx.c
205
SMC_STAT_RMB_TX_SIZE_SMALL(smc, !conn->lnk);
net/smc/smc_tx.c
207
if (len > conn->peer_rmbe_size)
net/smc/smc_tx.c
208
SMC_STAT_RMB_TX_PEER_SIZE_SMALL(smc, !conn->lnk);
net/smc/smc_tx.c
216
conn->killed)
net/smc/smc_tx.c
218
if (smc_cdc_rxed_any_close(conn))
net/smc/smc_tx.c
222
conn->local_tx_ctrl.prod_flags.urg_data_pending = 1;
net/smc/smc_tx.c
224
if (!atomic_read(&conn->sndbuf_space) || conn->urg_tx_pend) {
net/smc/smc_tx.c
235
writespace = atomic_read(&conn->sndbuf_space);
net/smc/smc_tx.c
239
sndbuf_base = conn->sndbuf_desc->cpu_addr;
net/smc/smc_tx.c
240
smc_curs_copy(&prep, &conn->tx_curs_prep, conn);
net/smc/smc_tx.c
244
chunk_len = min_t(size_t, copylen, conn->sndbuf_desc->len -
net/smc/smc_tx.c
252
smc_sndbuf_sync_sg_for_device(conn);
net/smc/smc_tx.c
267
smc_sndbuf_sync_sg_for_device(conn);
net/smc/smc_tx.c
269
smc_curs_add(conn->sndbuf_desc->len, &prep, copylen);
net/smc/smc_tx.c
270
smc_curs_copy(&conn->tx_curs_prep, &prep, conn);
net/smc/smc_tx.c
273
atomic_sub(copylen, &conn->sndbuf_space);
net/smc/smc_tx.c
280
conn->urg_tx_pend = true;
net/smc/smc_tx.c
285
smc_tx_sndbuf_nonempty(conn);
net/smc/smc_tx.c
303
int smcd_tx_ism_write(struct smc_connection *conn, void *data, size_t len,
net/smc/smc_tx.c
308
rc = smc_ism_write(conn->lgr->smcd, conn->peer_token,
net/smc/smc_tx.c
309
conn->peer_rmbe_idx, signal, conn->tx_off + offset,
net/smc/smc_tx.c
312
conn->local_tx_ctrl.conn_state_flags.peer_conn_abort = 1;
net/smc/smc_tx.c
317
static int smc_tx_rdma_write(struct smc_connection *conn, int peer_rmbe_offset,
net/smc/smc_tx.c
320
struct smc_link_group *lgr = conn->lgr;
net/smc/smc_tx.c
321
struct smc_link *link = conn->lnk;
net/smc/smc_tx.c
327
lgr->rtokens[conn->rtoken_idx][link->link_idx].dma_addr +
net/smc/smc_tx.c
329
conn->tx_off +
net/smc/smc_tx.c
332
rdma_wr->rkey = lgr->rtokens[conn->rtoken_idx][link->link_idx].rkey;
net/smc/smc_tx.c
340
static inline void smc_tx_advance_cursors(struct smc_connection *conn,
net/smc/smc_tx.c
345
smc_curs_add(conn->peer_rmbe_size, prod, len);
net/smc/smc_tx.c
349
atomic_sub(len, &conn->peer_rmbe_space);
net/smc/smc_tx.c
352
smc_curs_add(conn->sndbuf_desc->len, sent, len);
net/smc/smc_tx.c
356
static int smcr_tx_rdma_writes(struct smc_connection *conn, size_t len,
net/smc/smc_tx.c
361
struct smc_link *link = conn->lnk;
net/smc/smc_tx.c
364
sg_dma_address(conn->sndbuf_desc->sgt[link->link_idx].sgl);
net/smc/smc_tx.c
365
u64 virt_addr = (uintptr_t)conn->sndbuf_desc->cpu_addr;
net/smc/smc_tx.c
386
sge[srcchunk].addr = conn->sndbuf_desc->is_vm ?
net/smc/smc_tx.c
389
if (conn->sndbuf_desc->is_vm)
net/smc/smc_tx.c
391
conn->sndbuf_desc->mr[link->link_idx]->lkey;
net/smc/smc_tx.c
395
if (src_off >= conn->sndbuf_desc->len)
net/smc/smc_tx.c
396
src_off -= conn->sndbuf_desc->len;
net/smc/smc_tx.c
404
rc = smc_tx_rdma_write(conn, dst_off, num_sges, wr);
net/smc/smc_tx.c
413
src_len = min_t(int, dst_len, conn->sndbuf_desc->len -
net/smc/smc_tx.c
421
static int smcd_tx_rdma_writes(struct smc_connection *conn, size_t len,
net/smc/smc_tx.c
429
if (conn->sndbuf_desc->is_attached)
net/smc/smc_tx.c
434
void *data = conn->sndbuf_desc->cpu_addr + src_off;
net/smc/smc_tx.c
436
rc = smcd_tx_ism_write(conn, data, src_len, dst_off +
net/smc/smc_tx.c
442
if (src_off >= conn->sndbuf_desc->len)
net/smc/smc_tx.c
443
src_off -= conn->sndbuf_desc->len;
net/smc/smc_tx.c
457
src_len = min_t(int, dst_len, conn->sndbuf_desc->len - src_off);
net/smc/smc_tx.c
466
static int smc_tx_rdma_writes(struct smc_connection *conn,
net/smc/smc_tx.c
476
smc_curs_copy(&sent, &conn->tx_curs_sent, conn);
net/smc/smc_tx.c
477
smc_curs_copy(&prep, &conn->tx_curs_prep, conn);
net/smc/smc_tx.c
479
to_send = smc_curs_diff(conn->sndbuf_desc->len, &sent, &prep);
net/smc/smc_tx.c
48
if (atomic_read(&smc->conn.sndbuf_space) && sock) {
net/smc/smc_tx.c
485
rmbespace = atomic_read(&conn->peer_rmbe_space);
net/smc/smc_tx.c
487
struct smc_sock *smc = container_of(conn, struct smc_sock,
net/smc/smc_tx.c
488
conn);
net/smc/smc_tx.c
489
SMC_STAT_RMB_TX_PEER_FULL(smc, !conn->lnk);
net/smc/smc_tx.c
492
smc_curs_copy(&prod, &conn->local_tx_ctrl.prod, conn);
net/smc/smc_tx.c
493
smc_curs_copy(&cons, &conn->local_rx_ctrl.cons, conn);
net/smc/smc_tx.c
496
pflags = &conn->local_tx_ctrl.prod_flags;
net/smc/smc_tx.c
50
SMC_STAT_RMB_TX_FULL(smc, !smc->conn.lnk);
net/smc/smc_tx.c
510
conn->peer_rmbe_size - prod.count, len);
net/smc/smc_tx.c
519
if (sent.count + dst_len <= conn->sndbuf_desc->len) {
net/smc/smc_tx.c
524
src_len = conn->sndbuf_desc->len - sent.count;
net/smc/smc_tx.c
527
if (conn->lgr->is_smcd)
net/smc/smc_tx.c
528
rc = smcd_tx_rdma_writes(conn, len, sent.count, src_len,
net/smc/smc_tx.c
531
rc = smcr_tx_rdma_writes(conn, len, sent.count, src_len,
net/smc/smc_tx.c
536
if (conn->urg_tx_pend && len == to_send)
net/smc/smc_tx.c
538
smc_tx_advance_cursors(conn, &prod, &sent, len);
net/smc/smc_tx.c
540
smc_curs_copy(&conn->local_tx_ctrl.prod, &prod, conn);
net/smc/smc_tx.c
542
smc_curs_copy(&conn->tx_curs_sent, &sent, conn);/* src: local sndbuf */
net/smc/smc_tx.c
550
static int smcr_tx_sndbuf_nonempty(struct smc_connection *conn)
net/smc/smc_tx.c
552
struct smc_cdc_producer_flags *pflags = &conn->local_tx_ctrl.prod_flags;
net/smc/smc_tx.c
553
struct smc_link *link = conn->lnk;
net/smc/smc_tx.c
561
rc = smc_cdc_get_free_slot(conn, link, &wr_buf, &wr_rdma_buf, &pend);
net/smc/smc_tx.c
566
container_of(conn, struct smc_sock, conn);
net/smc/smc_tx.c
570
if (conn->killed)
net/smc/smc_tx.c
573
mod_delayed_work(conn->lgr->tx_wq, &conn->tx_work,
net/smc/smc_tx.c
579
spin_lock_bh(&conn->send_lock);
net/smc/smc_tx.c
580
if (link != conn->lnk) {
net/smc/smc_tx.c
588
rc = smc_tx_rdma_writes(conn, wr_rdma_buf);
net/smc/smc_tx.c
596
rc = smc_cdc_msg_send(conn, wr_buf, pend);
net/smc/smc_tx.c
603
spin_unlock_bh(&conn->send_lock);
net/smc/smc_tx.c
608
static int smcd_tx_sndbuf_nonempty(struct smc_connection *conn)
net/smc/smc_tx.c
610
struct smc_cdc_producer_flags *pflags = &conn->local_tx_ctrl.prod_flags;
net/smc/smc_tx.c
613
spin_lock_bh(&conn->send_lock);
net/smc/smc_tx.c
615
rc = smc_tx_rdma_writes(conn, NULL);
net/smc/smc_tx.c
617
rc = smcd_cdc_msg_send(conn);
net/smc/smc_tx.c
623
spin_unlock_bh(&conn->send_lock);
net/smc/smc_tx.c
627
int smc_tx_sndbuf_nonempty(struct smc_connection *conn)
net/smc/smc_tx.c
629
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_tx.c
633
if (unlikely(smc_tx_prepared_sends(conn) <= 0))
net/smc/smc_tx.c
637
if (unlikely(atomic_read(&conn->peer_rmbe_space) <= 0)) {
net/smc/smc_tx.c
638
SMC_STAT_RMB_TX_PEER_FULL(smc, !conn->lnk);
net/smc/smc_tx.c
642
if (conn->killed ||
net/smc/smc_tx.c
643
conn->local_rx_ctrl.conn_state_flags.peer_conn_abort) {
net/smc/smc_tx.c
647
if (conn->lgr->is_smcd)
net/smc/smc_tx.c
648
rc = smcd_tx_sndbuf_nonempty(conn);
net/smc/smc_tx.c
650
rc = smcr_tx_sndbuf_nonempty(conn);
net/smc/smc_tx.c
665
void smc_tx_pending(struct smc_connection *conn)
net/smc/smc_tx.c
667
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_tx.c
673
rc = smc_tx_sndbuf_nonempty(conn);
net/smc/smc_tx.c
674
if (!rc && conn->local_rx_ctrl.prod_flags.write_blocked &&
net/smc/smc_tx.c
675
!atomic_read(&conn->bytes_to_rcv))
net/smc/smc_tx.c
676
conn->local_rx_ctrl.prod_flags.write_blocked = 0;
net/smc/smc_tx.c
685
struct smc_connection *conn = container_of(to_delayed_work(work),
net/smc/smc_tx.c
688
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_tx.c
691
smc_tx_pending(conn);
net/smc/smc_tx.c
695
void smc_tx_consumer_update(struct smc_connection *conn, bool force)
net/smc/smc_tx.c
698
int sender_free = conn->rmb_desc->len;
net/smc/smc_tx.c
701
smc_curs_copy(&cons, &conn->local_tx_ctrl.cons, conn);
net/smc/smc_tx.c
702
smc_curs_copy(&cfed, &conn->rx_curs_confirmed, conn);
net/smc/smc_tx.c
703
to_confirm = smc_curs_diff(conn->rmb_desc->len, &cfed, &cons);
net/smc/smc_tx.c
704
if (to_confirm > conn->rmbe_update_limit) {
net/smc/smc_tx.c
705
smc_curs_copy(&prod, &conn->local_rx_ctrl.prod, conn);
net/smc/smc_tx.c
706
sender_free = conn->rmb_desc->len -
net/smc/smc_tx.c
707
smc_curs_diff_large(conn->rmb_desc->len,
net/smc/smc_tx.c
711
if (conn->local_rx_ctrl.prod_flags.cons_curs_upd_req ||
net/smc/smc_tx.c
713
((to_confirm > conn->rmbe_update_limit) &&
net/smc/smc_tx.c
714
((sender_free <= (conn->rmb_desc->len / 2)) ||
net/smc/smc_tx.c
715
conn->local_rx_ctrl.prod_flags.write_blocked))) {
net/smc/smc_tx.c
716
if (conn->killed ||
net/smc/smc_tx.c
717
conn->local_rx_ctrl.conn_state_flags.peer_conn_abort)
net/smc/smc_tx.c
719
if ((smc_cdc_get_slot_and_msg_send(conn) < 0) &&
net/smc/smc_tx.c
720
!conn->killed) {
net/smc/smc_tx.c
721
queue_delayed_work(conn->lgr->tx_wq, &conn->tx_work,
net/smc/smc_tx.c
726
if (conn->local_rx_ctrl.prod_flags.write_blocked &&
net/smc/smc_tx.c
727
!atomic_read(&conn->bytes_to_rcv))
net/smc/smc_tx.c
728
conn->local_rx_ctrl.prod_flags.write_blocked = 0;
net/smc/smc_tx.c
80
struct smc_connection *conn = &smc->conn;
net/smc/smc_tx.c
92
conn->killed ||
net/smc/smc_tx.c
93
conn->local_tx_ctrl.conn_state_flags.peer_done_writing) {
net/smc/smc_tx.c
97
if (smc_cdc_rxed_any_close(conn)) {
net/smc/smc_tx.h
21
static inline int smc_tx_prepared_sends(struct smc_connection *conn)
net/smc/smc_tx.h
25
smc_curs_copy(&sent, &conn->tx_curs_sent, conn);
net/smc/smc_tx.h
26
smc_curs_copy(&prep, &conn->tx_curs_prep, conn);
net/smc/smc_tx.h
27
return smc_curs_diff(conn->sndbuf_desc->len, &sent, &prep);
net/smc/smc_tx.h
30
void smc_tx_pending(struct smc_connection *conn);
net/smc/smc_tx.h
34
int smc_tx_sndbuf_nonempty(struct smc_connection *conn);
net/smc/smc_tx.h
36
void smc_tx_consumer_update(struct smc_connection *conn, bool force);
net/smc/smc_tx.h
37
int smcd_tx_ism_write(struct smc_connection *conn, void *data, size_t len,
net/sunrpc/xprtrdma/svc_rdma_transport.c
320
handle_connect_req(cma_id, &event->param.conn);
net/sunrpc/xprtrdma/verbs.c
264
rpcrdma_update_cm_private(ep, &event->param.conn);
net/tipc/node.c
1519
struct tipc_sock_conn *conn, *safe;
net/tipc/node.c
1545
list_for_each_entry_safe(conn, safe, conns, list) {
net/tipc/node.c
1548
conn->peer_node, conn->port,
net/tipc/node.c
1549
conn->peer_port, TIPC_ERR_NO_NODE);
net/tipc/node.c
1552
list_del(&conn->list);
net/tipc/node.c
1553
kfree(conn);
net/tipc/node.c
695
struct tipc_sock_conn *conn;
net/tipc/node.c
706
conn = kmalloc_obj(*conn, GFP_ATOMIC);
net/tipc/node.c
707
if (!conn) {
net/tipc/node.c
711
conn->peer_node = dnode;
net/tipc/node.c
712
conn->port = port;
net/tipc/node.c
713
conn->peer_port = peer_port;
net/tipc/node.c
716
list_add_tail(&conn->list, &node->conn_sks);
net/tipc/node.c
726
struct tipc_sock_conn *conn, *safe;
net/tipc/node.c
736
list_for_each_entry_safe(conn, safe, &node->conn_sks, list) {
net/tipc/node.c
737
if (port != conn->port)
net/tipc/node.c
739
list_del(&conn->list);
net/tipc/node.c
740
kfree(conn);
net/wireless/sme.c
122
memcpy(request->req.ssids[0].ssid, wdev->conn->params.ssid,
net/wireless/sme.c
123
wdev->conn->params.ssid_len);
net/wireless/sme.c
124
request->req.ssids[0].ssid_len = wdev->conn->params.ssid_len;
net/wireless/sme.c
136
wdev->conn->state = CFG80211_CONN_SCANNING;
net/wireless/sme.c
1559
if (wdev->conn)
net/wireless/sme.c
157
if (!wdev->conn)
net/wireless/sme.c
160
params = &wdev->conn->params;
net/wireless/sme.c
162
switch (wdev->conn->state) {
net/wireless/sme.c
171
wdev->conn->state = CFG80211_CONN_AUTHENTICATING;
net/wireless/sme.c
191
wdev->conn->state = CFG80211_CONN_ASSOCIATING;
net/wireless/sme.c
192
if (wdev->conn->prev_bssid_valid)
net/wireless/sme.c
193
req.prev_bssid = wdev->conn->prev_bssid;
net/wireless/sme.c
263
if (!wdev->conn ||
net/wireless/sme.c
264
wdev->conn->state == CFG80211_CONN_CONNECTED)
net/wireless/sme.c
267
if (wdev->conn->params.bssid) {
net/wireless/sme.c
268
memcpy(bssid_buf, wdev->conn->params.bssid, ETH_ALEN);
net/wireless/sme.c
284
static void cfg80211_step_auth_next(struct cfg80211_conn *conn,
net/wireless/sme.c
287
memcpy(conn->bssid, bss->bssid, ETH_ALEN);
net/wireless/sme.c
288
conn->params.bssid = conn->bssid;
net/wireless/sme.c
289
conn->params.channel = bss->channel;
net/wireless/sme.c
290
conn->state = CFG80211_CONN_AUTHENTICATE_NEXT;
net/wireless/sme.c
301
bss = cfg80211_get_bss(wdev->wiphy, wdev->conn->params.channel,
net/wireless/sme.c
302
wdev->conn->params.bssid,
net/wireless/sme.c
303
wdev->conn->params.ssid,
net/wireless/sme.c
304
wdev->conn->params.ssid_len,
net/wireless/sme.c
306
IEEE80211_PRIVACY(wdev->conn->params.privacy));
net/wireless/sme.c
310
cfg80211_step_auth_next(wdev->conn, bss);
net/wireless/sme.c
324
if (!wdev->conn)
net/wireless/sme.c
327
if (wdev->conn->state != CFG80211_CONN_SCANNING &&
net/wireless/sme.c
328
wdev->conn->state != CFG80211_CONN_SCAN_AGAIN)
net/wireless/sme.c
347
if (!wdev->conn || wdev->conn->state == CFG80211_CONN_CONNECTED)
net/wireless/sme.c
351
wdev->conn->auto_auth &&
net/wireless/sme.c
352
wdev->conn->params.auth_type != NL80211_AUTHTYPE_NETWORK_EAP) {
net/wireless/sme.c
354
switch (wdev->conn->params.auth_type) {
net/wireless/sme.c
357
wdev->conn->params.auth_type =
net/wireless/sme.c
360
wdev->conn->params.auth_type =
net/wireless/sme.c
364
wdev->conn->params.auth_type =
net/wireless/sme.c
369
wdev->conn->params.auth_type =
net/wireless/sme.c
373
wdev->conn->state = CFG80211_CONN_AUTHENTICATE_NEXT;
net/wireless/sme.c
383
} else if (wdev->conn->state == CFG80211_CONN_AUTHENTICATING) {
net/wireless/sme.c
384
wdev->conn->state = CFG80211_CONN_ASSOCIATE_NEXT;
net/wireless/sme.c
393
if (!wdev->conn)
net/wireless/sme.c
397
wdev->conn->state = CFG80211_CONN_CONNECTED;
net/wireless/sme.c
401
if (wdev->conn->prev_bssid_valid) {
net/wireless/sme.c
407
wdev->conn->prev_bssid_valid = false;
net/wireless/sme.c
408
wdev->conn->state = CFG80211_CONN_ASSOCIATE_NEXT;
net/wireless/sme.c
413
wdev->conn->state = CFG80211_CONN_ASSOC_FAILED;
net/wireless/sme.c
427
if (!wdev->conn)
net/wireless/sme.c
430
wdev->conn->state = CFG80211_CONN_AUTH_FAILED_TIMEOUT;
net/wireless/sme.c
438
if (!wdev->conn)
net/wireless/sme.c
441
wdev->conn->state = CFG80211_CONN_DEAUTH;
net/wireless/sme.c
449
if (!wdev->conn)
net/wireless/sme.c
452
wdev->conn->state = CFG80211_CONN_ASSOC_FAILED_TIMEOUT;
net/wireless/sme.c
460
if (!wdev->conn)
net/wireless/sme.c
463
wdev->conn->state = CFG80211_CONN_ABANDON;
net/wireless/sme.c
56
if (!wdev->conn)
net/wireless/sme.c
570
if (wdev->conn)
net/wireless/sme.c
573
wdev->conn = kzalloc_obj(*wdev->conn);
net/wireless/sme.c
574
if (!wdev->conn)
net/wireless/sme.c
580
memcpy(&wdev->conn->params, connect, sizeof(*connect));
net/wireless/sme.c
582
wdev->conn->params.bssid = wdev->conn->bssid;
net/wireless/sme.c
583
memcpy(wdev->conn->bssid, connect->bssid, ETH_ALEN);
net/wireless/sme.c
587
&wdev->conn->ie,
net/wireless/sme.c
588
&wdev->conn->params.ie_len)) {
net/wireless/sme.c
589
kfree(wdev->conn);
net/wireless/sme.c
59
kfree(wdev->conn->ie);
net/wireless/sme.c
590
wdev->conn = NULL;
net/wireless/sme.c
593
wdev->conn->params.ie = wdev->conn->ie;
net/wireless/sme.c
596
wdev->conn->auto_auth = true;
net/wireless/sme.c
598
wdev->conn->params.auth_type =
net/wireless/sme.c
60
kfree(wdev->conn);
net/wireless/sme.c
601
wdev->conn->auto_auth = false;
net/wireless/sme.c
604
wdev->conn->params.ssid = wdev->u.client.ssid;
net/wireless/sme.c
605
wdev->conn->params.ssid_len = wdev->u.client.ssid_len;
net/wireless/sme.c
608
bss = cfg80211_get_bss(wdev->wiphy, wdev->conn->params.channel,
net/wireless/sme.c
609
wdev->conn->params.bssid,
net/wireless/sme.c
61
wdev->conn = NULL;
net/wireless/sme.c
610
wdev->conn->params.ssid,
net/wireless/sme.c
611
wdev->conn->params.ssid_len,
net/wireless/sme.c
613
IEEE80211_PRIVACY(wdev->conn->params.privacy));
net/wireless/sme.c
616
memcpy(wdev->conn->prev_bssid, prev_bssid, ETH_ALEN);
net/wireless/sme.c
617
wdev->conn->prev_bssid_valid = true;
net/wireless/sme.c
624
cfg80211_step_auth_next(wdev->conn, bss);
net/wireless/sme.c
638
wdev->conn->state = CFG80211_CONN_SCAN_AGAIN;
net/wireless/sme.c
653
if (!wdev->conn)
net/wireless/sme.c
659
if (wdev->conn->state == CFG80211_CONN_SCANNING ||
net/wireless/sme.c
660
wdev->conn->state == CFG80211_CONN_SCAN_AGAIN) {
net/wireless/sme.c
667
wdev->conn->params.bssid,
net/wireless/sme.c
696
if (wdev->conn || wdev->connected ||
net/wireless/sme.c
75
if (wdev->conn->params.channel)
net/wireless/sme.c
86
if (wdev->conn->params.channel) {
net/wireless/sme.c
87
enum nl80211_band band = wdev->conn->params.channel->band;
net/wireless/sme.c
95
request->req.channels[0] = wdev->conn->params.channel;
net/wireless/wext-sme.c
158
if (wdev->conn) {
net/wireless/wext-sme.c
248
if (wdev->conn) {
net/wireless/wext-sme.c
342
if (wdev->conn)
net/wireless/wext-sme.c
90
if (wdev->conn) {
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
150
#define VDO_IDH(usbh, usbd, ufp_cable, is_modal, dfp, conn, vid) \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
152
| (is_modal) << 26 | ((dfp) & 0x7) << 23 | ((conn) & 0x3) << 21 \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
226
#define VDO_UFP(ver, cap, conn, vcpwr, vcr, vbr, alt, spd) \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
227
(((ver) & 0x7) << 29 | ((cap) & 0xf) << 24 | ((conn) & 0x3) << 22 \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
248
#define VDO_DFP(ver, cap, conn, pnum) \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
249
(((ver) & 0x7) << 29 | ((cap) & 0x7) << 24 | ((conn) & 0x3) << 22 \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
364
#define VDO_PCABLE(hw, fw, ver, conn, lat, term, vbm, cur, spd) \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
366
| ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
368
#define VDO_ACABLE1(hw, fw, ver, conn, lat, term, vbm, sbu, sbut, cur, vbt, sopp, spd) \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
370
| ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \
sound/firewire/bebob/bebob_stream.c
379
struct cmp_connection *conn;
sound/firewire/bebob/bebob_stream.c
384
conn = &bebob->out_conn;
sound/firewire/bebob/bebob_stream.c
386
conn = &bebob->in_conn;
sound/firewire/bebob/bebob_stream.c
388
err = cmp_connection_check_used(conn, &used);
sound/firewire/bebob/bebob_stream.c
392
(conn->direction == CMP_OUTPUT) ? 'o' : 'i',
sound/firewire/bebob/bebob_stream.c
393
conn->pcr_index);
sound/firewire/bebob/bebob_stream.c
408
struct cmp_connection *conn;
sound/firewire/bebob/bebob_stream.c
412
conn = &bebob->in_conn;
sound/firewire/bebob/bebob_stream.c
414
conn = &bebob->out_conn;
sound/firewire/bebob/bebob_stream.c
423
err = cmp_connection_establish(conn);
sound/firewire/bebob/bebob_stream.c
428
conn->resources.channel, conn->speed);
sound/firewire/bebob/bebob_stream.c
435
struct cmp_connection *conn;
sound/firewire/bebob/bebob_stream.c
441
conn = &bebob->out_conn;
sound/firewire/bebob/bebob_stream.c
445
conn = &bebob->in_conn;
sound/firewire/bebob/bebob_stream.c
454
err = cmp_connection_init(conn, bebob->unit, dir_conn, 0);
sound/firewire/bebob/bebob_stream.c
460
cmp_connection_destroy(conn);
sound/firewire/bebob/bebob_stream.c
505
struct cmp_connection *conn;
sound/firewire/bebob/bebob_stream.c
511
conn = &bebob->out_conn;
sound/firewire/bebob/bebob_stream.c
515
conn = &bebob->in_conn;
sound/firewire/bebob/bebob_stream.c
522
return cmp_connection_reserve(conn, amdtp_stream_get_max_payload(stream));
sound/firewire/fireworks/fireworks_stream.c
107
struct cmp_connection *conn;
sound/firewire/fireworks/fireworks_stream.c
112
conn = &efw->out_conn;
sound/firewire/fireworks/fireworks_stream.c
114
conn = &efw->in_conn;
sound/firewire/fireworks/fireworks_stream.c
116
err = cmp_connection_check_used(conn, &used);
sound/firewire/fireworks/fireworks_stream.c
120
(conn->direction == CMP_OUTPUT) ? 'o' : 'i',
sound/firewire/fireworks/fireworks_stream.c
121
conn->pcr_index);
sound/firewire/fireworks/fireworks_stream.c
13
struct cmp_connection *conn;
sound/firewire/fireworks/fireworks_stream.c
164
struct cmp_connection *conn;
sound/firewire/fireworks/fireworks_stream.c
170
conn = &efw->out_conn;
sound/firewire/fireworks/fireworks_stream.c
174
conn = &efw->in_conn;
sound/firewire/fireworks/fireworks_stream.c
182
return cmp_connection_reserve(conn, amdtp_stream_get_max_payload(stream));
sound/firewire/fireworks/fireworks_stream.c
19
conn = &efw->out_conn;
sound/firewire/fireworks/fireworks_stream.c
23
conn = &efw->in_conn;
sound/firewire/fireworks/fireworks_stream.c
28
err = cmp_connection_init(conn, efw->unit, c_dir, 0);
sound/firewire/fireworks/fireworks_stream.c
35
cmp_connection_destroy(conn);
sound/firewire/fireworks/fireworks_stream.c
68
struct cmp_connection *conn;
sound/firewire/fireworks/fireworks_stream.c
72
conn = &efw->out_conn;
sound/firewire/fireworks/fireworks_stream.c
74
conn = &efw->in_conn;
sound/firewire/fireworks/fireworks_stream.c
77
err = cmp_connection_establish(conn);
sound/firewire/fireworks/fireworks_stream.c
83
conn->resources.channel, conn->speed);
sound/firewire/fireworks/fireworks_stream.c
85
cmp_connection_break(conn);
sound/firewire/oxfw/oxfw-stream.c
105
struct cmp_connection *conn;
sound/firewire/oxfw/oxfw-stream.c
109
conn = &oxfw->in_conn;
sound/firewire/oxfw/oxfw-stream.c
111
conn = &oxfw->out_conn;
sound/firewire/oxfw/oxfw-stream.c
113
err = cmp_connection_establish(conn);
sound/firewire/oxfw/oxfw-stream.c
118
conn->resources.channel, conn->speed);
sound/firewire/oxfw/oxfw-stream.c
120
cmp_connection_break(conn);
sound/firewire/oxfw/oxfw-stream.c
130
struct cmp_connection *conn;
sound/firewire/oxfw/oxfw-stream.c
135
conn = &oxfw->out_conn;
sound/firewire/oxfw/oxfw-stream.c
137
conn = &oxfw->in_conn;
sound/firewire/oxfw/oxfw-stream.c
139
err = cmp_connection_check_used(conn, &used);
sound/firewire/oxfw/oxfw-stream.c
143
(conn->direction == CMP_OUTPUT) ? 'o' : 'i',
sound/firewire/oxfw/oxfw-stream.c
144
conn->pcr_index);
sound/firewire/oxfw/oxfw-stream.c
153
struct cmp_connection *conn;
sound/firewire/oxfw/oxfw-stream.c
172
conn = &oxfw->out_conn;
sound/firewire/oxfw/oxfw-stream.c
183
conn = &oxfw->in_conn;
sound/firewire/oxfw/oxfw-stream.c
188
err = cmp_connection_init(conn, oxfw->unit, c_dir, 0);
sound/firewire/oxfw/oxfw-stream.c
194
cmp_connection_destroy(conn);
sound/firewire/oxfw/oxfw-stream.c
206
struct cmp_connection *conn;
sound/firewire/oxfw/oxfw-stream.c
213
conn = &oxfw->in_conn;
sound/firewire/oxfw/oxfw-stream.c
217
conn = &oxfw->out_conn;
sound/firewire/oxfw/oxfw-stream.c
250
return cmp_connection_reserve(conn, amdtp_stream_get_max_payload(stream));
sound/firewire/oxfw/oxfw-stream.c
423
struct cmp_connection *conn;
sound/firewire/oxfw/oxfw-stream.c
426
conn = &oxfw->out_conn;
sound/firewire/oxfw/oxfw-stream.c
428
conn = &oxfw->in_conn;
sound/firewire/oxfw/oxfw-stream.c
431
cmp_connection_destroy(conn);
sound/hda/codecs/generic.c
389
const hda_nid_t *conn;
sound/hda/codecs/generic.c
397
nums = snd_hda_get_conn_list(codec, to_nid, &conn);
sound/hda/codecs/generic.c
399
if (conn[i] != from_nid) {
sound/hda/codecs/generic.c
404
get_wcaps_type(get_wcaps(codec, conn[i])) != AC_WID_AUD_OUT ||
sound/hda/codecs/generic.c
405
is_dac_already_used(codec, conn[i]))
sound/hda/codecs/generic.c
416
type = get_wcaps_type(get_wcaps(codec, conn[i]));
sound/hda/codecs/generic.c
420
if (__parse_nid_path(codec, from_nid, conn[i],
sound/hda/codecs/generic.c
427
path->path[path->depth] = conn[i];
sound/hda/codecs/generic.c
4917
const hda_nid_t *conn;
sound/hda/codecs/generic.c
4920
nums = snd_hda_get_conn_list(codec, mix, &conn);
sound/hda/codecs/generic.c
4926
else if (nid_has_volume(codec, conn[i], HDA_OUTPUT))
sound/hda/codecs/generic.c
4927
update_amp(codec, conn[i], HDA_OUTPUT, 0,
sound/hda/codecs/generic.c
690
hda_nid_t conn;
sound/hda/codecs/generic.c
698
if (snd_hda_get_connections(codec, nid, &conn, 1) < 0)
sound/hda/codecs/generic.c
700
return !!(get_wcaps(codec, conn) & AC_WCAP_STEREO);
sound/hda/codecs/generic.c
786
const hda_nid_t *conn;
sound/hda/codecs/generic.c
791
nums = snd_hda_get_conn_list(codec, nid, &conn);
sound/hda/codecs/generic.c
810
if (conn[n] != spec->mixer_merge_nid)
sound/hda/codecs/realtek/alc269.c
2594
static const hda_nid_t conn[] = { 0x02, 0x03 };
sound/hda/codecs/realtek/alc269.c
2595
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2604
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
2605
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2614
static const hda_nid_t conn[] = { 0x02, 0x03 };
sound/hda/codecs/realtek/alc269.c
2615
snd_hda_override_conn_list(codec, 0x15, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2675
static const hda_nid_t conn[] = { 0x02, 0x03 }; /* exclude 0x06 */
sound/hda/codecs/realtek/alc269.c
2683
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2730
static const hda_nid_t conn[] = { 0x02, 0x03 }; /* exclude 0x06 */
sound/hda/codecs/realtek/alc269.c
2741
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2937
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
2957
snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2958
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2975
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
2992
snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2993
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3007
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
3017
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3502
static const hda_nid_t conn[] = { 0x02, 0x03 };
sound/hda/codecs/realtek/alc269.c
3521
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3535
static const hda_nid_t conn[] = { 0x02, 0x03 };
sound/hda/codecs/realtek/alc269.c
3549
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3560
static const hda_nid_t conn[] = { 0x02, 0x03 }; /* exclude 0x06 */
sound/hda/codecs/realtek/alc269.c
3568
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3614
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
3619
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3648
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
3656
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3675
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
3680
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3753
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
3758
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3791
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
3800
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3823
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
3830
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc882.c
102
static const hda_nid_t conn[] = { 0x0c, 0x0d, 0x0e, 0x0f, 0x26 };
sound/hda/codecs/realtek/alc882.c
103
snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc882.c
104
snd_hda_override_conn_list(codec, 0x15, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc882.c
105
snd_hda_override_conn_list(codec, 0x18, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc882.c
106
snd_hda_override_conn_list(codec, 0x1a, ARRAY_SIZE(conn), conn);
sound/hda/codecs/via.c
728
hda_nid_t conn[8];
sound/hda/codecs/via.c
733
nums = snd_hda_get_connections(codec, spec->gen.mixer_nid, conn,
sound/hda/codecs/via.c
734
ARRAY_SIZE(conn) - 1);
sound/hda/codecs/via.c
739
if (get_wcaps_type(get_wcaps(codec, conn[i])) == AC_WID_AUD_OUT)
sound/hda/codecs/via.c
748
conn[nums++] = nid;
sound/hda/codecs/via.c
751
nums, conn);
sound/hda/common/auto_parser.c
198
short assoc, loc, conn, dev;
sound/hda/common/auto_parser.c
208
conn = get_defcfg_connect(def_conf);
sound/hda/common/auto_parser.c
209
if (conn == AC_JACK_PORT_NONE)
sound/hda/common/auto_parser.c
216
if (conn == AC_JACK_PORT_FIXED ||
sound/hda/common/auto_parser.c
217
conn == AC_JACK_PORT_BOTH)
sound/hda/common/auto_parser.c
457
unsigned int conn = get_defcfg_connect(def_conf);
sound/hda/common/auto_parser.c
458
if (conn == AC_JACK_PORT_NONE)
sound/hda/common/auto_parser.c
461
if (conn == AC_JACK_PORT_FIXED || conn == AC_JACK_PORT_BOTH)
sound/hda/common/codec.c
276
const hda_nid_t *conn;
sound/hda/common/codec.c
279
nums = snd_hda_get_conn_list(codec, mux, &conn);
sound/hda/common/codec.c
281
if (conn[i] == nid)
sound/hda/common/codec.c
291
unsigned int type = get_wcaps_type(get_wcaps(codec, conn[i]));
sound/hda/common/codec.c
294
if (snd_hda_get_conn_index(codec, conn[i], nid, recursive) >= 0)
sound/hda/common/jack.c
596
unsigned int def_conf, conn;
sound/hda/common/jack.c
606
conn = get_defcfg_connect(def_conf);
sound/hda/common/jack.c
607
if (conn == AC_JACK_PORT_NONE)
sound/hda/common/jack.c
609
phantom_jack = (conn != AC_JACK_PORT_COMPLEX) ||
sound/hda/common/proc.c
115
hda_nid_t conn;
sound/hda/common/proc.c
126
if (snd_hda_get_raw_connections(codec, nid, &conn, 1) < 0)
sound/hda/common/proc.c
129
wcaps = snd_hda_param_read(codec, conn, AC_PAR_AUDIO_WIDGET_CAP);
sound/hda/common/proc.c
600
unsigned int wid_type, hda_nid_t *conn,
sound/hda/common/proc.c
617
snd_iprintf(buffer, " 0x%02x", conn[c]);
sound/hda/common/proc.c
627
memcmp(list, conn, conn_len) != 0)) {
sound/hda/common/proc.c
723
hda_nid_t *conn;
sound/hda/common/proc.c
729
conn = kmalloc_objs(hda_nid_t, conn_len);
sound/hda/common/proc.c
730
if (!conn)
sound/hda/common/proc.c
737
if (snd_hda_get_raw_connections(codec, nid, conn, conn_len) < 0)
sound/hda/common/proc.c
741
snd_iprintf(buffer, " 0x%02x", conn[c]);
sound/hda/common/proc.c
747
kfree(conn);
sound/hda/common/proc.c
845
hda_nid_t *conn = NULL;
sound/hda/common/proc.c
885
conn = kmalloc_objs(hda_nid_t, conn_len);
sound/hda/common/proc.c
886
if (!conn)
sound/hda/common/proc.c
888
if (snd_hda_get_raw_connections(codec, nid, conn,
sound/hda/common/proc.c
958
conn, conn_len);
sound/hda/common/proc.c
966
kfree(conn);
sound/soc/mediatek/common/mtk-dsp-sof-common.c
100
if (!strcmp(be->dai_link->name, conn->sof_link))
sound/soc/mediatek/common/mtk-dsp-sof-common.c
185
const struct sof_conn_stream *conn = &sof_priv->conn_streams[i];
sound/soc/mediatek/common/mtk-dsp-sof-common.c
189
if (!strcmp(rtd->dai_link->name, conn->sof_link)) {
sound/soc/mediatek/common/mtk-dsp-sof-common.c
201
struct snd_soc_dapm_widget *widget = snd_soc_dai_get_widget(cpu_dai, conn->stream_dir);
sound/soc/mediatek/common/mtk-dsp-sof-common.c
204
if (conn->stream_dir == SNDRV_PCM_STREAM_CAPTURE && widget) {
sound/soc/mediatek/common/mtk-dsp-sof-common.c
206
route.source = conn->sof_dma;
sound/soc/mediatek/common/mtk-dsp-sof-common.c
210
} else if (conn->stream_dir == SNDRV_PCM_STREAM_PLAYBACK && widget) {
sound/soc/mediatek/common/mtk-dsp-sof-common.c
213
route.sink = conn->sof_dma;
sound/soc/mediatek/common/mtk-dsp-sof-common.c
25
const struct sof_conn_stream *conn = &sof_priv->conn_streams[i];
sound/soc/mediatek/common/mtk-dsp-sof-common.c
27
if (conn->normal_link && strcmp(rtd->dai_link->name, conn->normal_link))
sound/soc/mediatek/common/mtk-dsp-sof-common.c
31
if (strcmp(runtime->dai_link->name, conn->sof_link))
sound/soc/mediatek/common/mtk-dsp-sof-common.c
35
if (snd_soc_dai_stream_active(cpu_dai, conn->stream_dir) > 0) {
sound/soc/mediatek/common/mtk-dsp-sof-common.c
98
const struct sof_conn_stream *conn = &sof_priv->conn_streams[i];
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
125
enum conn conn;
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
133
const char *family_str, *type, *conn, *hops, *result, *flags;
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
143
conn = "known";
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
144
if (test->conn == UNKNOWN_CONN)
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
145
conn = "unknown";
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
162
type, result, conn, hops, flags);
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
265
if (test->conn == UNKNOWN_CONN)
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
27
int *server, int *conn,
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
41
*conn = connect_to_addr(type, &ss, slen, NULL);
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
42
if (*conn < 0)
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
49
if (CHECK_FAIL(getsockname(*conn, (struct sockaddr *)dst, &slen)))
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
53
if (CHECK_FAIL(getpeername(*conn, (struct sockaddr *)src, &slen)))
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
59
close(*conn);
tools/testing/selftests/bpf/prog_tests/cls_redirect.c
60
*conn = -1;
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1043
int err, map, conn, peer;
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1053
if (create_pair(AF_VSOCK, SOCK_STREAM, &conn, &peer))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1062
err = bpf_map_update_elem(map, &zero, &conn, BPF_ANY);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1069
err = poll_read(conn, IO_TIMEOUT_SEC);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1073
if (xrecv_nonblock(conn, &buf, 1, 0) != 1)
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1078
xclose(conn);
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
156
struct connection *conn, int len)
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
161
err = recv(conn->server_fd, rx_buffer, len, 0);
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
173
struct connection *conn = NULL;
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
176
conn = malloc(sizeof(struct connection));
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
177
if (!conn)
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
178
return conn;
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
184
free(conn);
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
191
free(conn);
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
195
conn->server_fd = server_fd;
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
196
conn->client_fd = client_fd;
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
198
return conn;
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
202
struct connection *conn)
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
204
close(conn->server_fd);
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
205
close(conn->client_fd);
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
206
free(conn);
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
211
struct connection *conn;
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
214
conn = connect_client_to_server(cfg);
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
215
if (!ASSERT_OK_PTR(conn, "connect to server"))
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
218
err = send(conn->client_fd, tx_buffer, DEFAULT_TEST_DATA_SIZE, 0);
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
221
if (check_server_rx_data(cfg, conn, DEFAULT_TEST_DATA_SIZE))
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
229
err = send(conn->client_fd, tx_buffer, GSO_TEST_DATA_SIZE, 0);
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
232
if (check_server_rx_data(cfg, conn, DEFAULT_TEST_DATA_SIZE))
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
237
disconnect_client_from_server(cfg, conn);
tools/testing/selftests/net/busy_poller.c
279
int conn;
tools/testing/selftests/net/busy_poller.c
325
conn = accept(sockfd, NULL, NULL);
tools/testing/selftests/net/busy_poller.c
326
if (conn == -1)
tools/testing/selftests/net/busy_poller.c
330
setnonblock(conn);
tools/testing/selftests/net/busy_poller.c
331
epoll_ctl_add(epfd, conn,
tools/testing/selftests/net/reuseport_bpf.c
218
int epfd, conn, i, sport, expected;
tools/testing/selftests/net/reuseport_bpf.c
246
conn = accept(ev.data.fd, NULL, NULL);
tools/testing/selftests/net/reuseport_bpf.c
247
if (conn < 0)
tools/testing/selftests/net/reuseport_bpf.c
249
i = recvmsg(conn, &msg, 0);
tools/testing/selftests/net/reuseport_bpf.c
250
close(conn);