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/atm/idt77252.c
1412
u32 conn, stat;
drivers/atm/idt77252.c
1443
conn = le32_to_cpu(tsqe->word_1);
drivers/atm/idt77252.c
1454
vc = card->vcs[conn & 0x1fff];
drivers/atm/idt77252.c
1457
card->name, conn & 0x1fff);
drivers/atm/idt77252.c
1469
conn = le32_to_cpu(tsqe->word_1);
drivers/atm/idt77252.c
1471
vc = card->vcs[conn & 0x1fff];
drivers/atm/idt77252.c
1484
conn = le32_to_cpu(tsqe->word_1);
drivers/atm/idt77252.c
1486
vpi = (conn >> SAR_TBD_VPI_SHIFT) & 0x00ff;
drivers/atm/idt77252.c
1487
vci = (conn >> SAR_TBD_VCI_SHIFT) & 0xffff;
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
2050
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
1104
if (device->state.conn < C_CONNECTED && assume_peer_has_space) {
drivers/block/drbd/drbd_nl.c
1198
if (device->state.conn < C_WF_REPORT_PARAMS)
drivers/block/drbd/drbd_nl.c
1398
if (device->state.conn < C_CONNECTED)
drivers/block/drbd/drbd_nl.c
1623
if (device->state.conn >= C_CONNECTED) {
drivers/block/drbd/drbd_nl.c
2102
if (device->state.conn == C_CONNECTED) {
drivers/block/drbd/drbd_nl.c
2214
if (device->state.conn == C_SYNC_SOURCE ||
drivers/block/drbd/drbd_nl.c
2215
device->state.conn == C_SYNC_TARGET ||
drivers/block/drbd/drbd_nl.c
2216
device->state.conn == C_PAUSED_SYNC_S ||
drivers/block/drbd/drbd_nl.c
2217
device->state.conn == C_PAUSED_SYNC_T) {
drivers/block/drbd/drbd_nl.c
2236
if (device->state.conn == C_VERIFY_S ||
drivers/block/drbd/drbd_nl.c
2237
device->state.conn == C_VERIFY_T) {
drivers/block/drbd/drbd_nl.c
2507
max_t(enum drbd_conns, C_WF_REPORT_PARAMS, device->state.conn);
drivers/block/drbd/drbd_nl.c
2646
rv = conn_request_state(connection, NS(conn, C_UNCONNECTED), CS_VERBOSE);
drivers/block/drbd/drbd_nl.c
2670
rv = conn_request_state(connection, NS(conn, C_DISCONNECTING),
drivers/block/drbd/drbd_nl.c
2680
rv = conn_request_state(connection, NS2(conn, C_DISCONNECTING, pdsk, D_OUTDATED), 0);
drivers/block/drbd/drbd_nl.c
2683
rv = conn_request_state(connection, NS(conn, C_DISCONNECTING), CS_VERBOSE);
drivers/block/drbd/drbd_nl.c
2693
rv = conn_request_state(connection, NS2(conn, C_DISCONNECTING,
drivers/block/drbd/drbd_nl.c
2696
rv = conn_request_state(connection, NS(conn, C_DISCONNECTING),
drivers/block/drbd/drbd_nl.c
2718
rv2 = conn_request_state(connection, NS(conn, C_STANDALONE),
drivers/block/drbd/drbd_nl.c
2782
_drbd_request_state(device, NS(conn, C_WF_SYNC_UUID), CS_VERBOSE + CS_SERIALIZE);
drivers/block/drbd/drbd_nl.c
2823
if (device->state.conn > C_CONNECTED) {
drivers/block/drbd/drbd_nl.c
2864
if (device->state.conn != C_CONNECTED && !rs.resize_force) {
drivers/block/drbd/drbd_nl.c
2901
if (device->state.conn == C_CONNECTED) {
drivers/block/drbd/drbd_nl.c
2990
if (device->state.conn == C_STANDALONE && device->state.role == R_SECONDARY) {
drivers/block/drbd/drbd_nl.c
2998
retcode = drbd_request_state(device, NS(conn, C_STARTING_SYNC_T));
drivers/block/drbd/drbd_nl.c
3068
if (device->state.conn == C_STANDALONE && device->state.role == R_PRIMARY) {
drivers/block/drbd/drbd_nl.c
3079
retcode = drbd_request_state(device, NS(conn, C_STARTING_SYNC_S));
drivers/block/drbd/drbd_nl.c
3123
if (s.conn == C_PAUSED_SYNC_S || s.conn == C_PAUSED_SYNC_T) {
drivers/block/drbd/drbd_nl.c
3185
if (device->state.conn < C_CONNECTED)
drivers/block/drbd/drbd_nl.c
3803
if (C_SYNC_SOURCE <= device->state.conn &&
drivers/block/drbd/drbd_nl.c
3804
C_PAUSED_SYNC_T >= device->state.conn) {
drivers/block/drbd/drbd_nl.c
4111
retcode = drbd_request_state(device, NS(conn, C_VERIFY_S));
drivers/block/drbd/drbd_nl.c
4156
if (device->state.conn == C_CONNECTED &&
drivers/block/drbd/drbd_nl.c
4161
} else if (device->state.conn != C_STANDALONE) {
drivers/block/drbd/drbd_nl.c
4369
_drbd_request_state(device, NS(conn, C_WF_REPORT_PARAMS),
drivers/block/drbd/drbd_nl.c
731
if (((device->state.conn < C_CONNECTED ||
drivers/block/drbd/drbd_nl.c
744
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
2028
pcmd = (device->state.conn >= C_SYNC_SOURCE &&
drivers/block/drbd/drbd_receiver.c
2029
device->state.conn <= C_PAUSED_SYNC_T &&
drivers/block/drbd/drbd_receiver.c
2348
_conn_request_state(connection, NS(conn, C_TIMEOUT), CS_HARD);
drivers/block/drbd/drbd_receiver.c
2504
if (device->state.conn == C_SYNC_TARGET)
drivers/block/drbd/drbd_receiver.c
2601
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
3589
conn_request_state(connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
3752
if (device->state.conn == C_WF_REPORT_PARAMS) {
drivers/block/drbd/drbd_receiver.c
3766
if (device->state.conn == C_WF_REPORT_PARAMS) {
drivers/block/drbd/drbd_receiver.c
3860
conn_request_state(peer_device->connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
3915
if (device->state.conn == C_WF_REPORT_PARAMS)
drivers/block/drbd/drbd_receiver.c
3924
(device->state.conn < C_CONNECTED || device->state.pdsk == D_DISKLESS)) {
drivers/block/drbd/drbd_receiver.c
3927
conn_request_state(peer_device->connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4000
conn_request_state(peer_device->connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4025
if (device->state.conn > C_WF_REPORT_PARAMS) {
drivers/block/drbd/drbd_receiver.c
4033
(dd == DS_GREW && device->state.conn == C_CONNECTED)) {
drivers/block/drbd/drbd_receiver.c
4071
if ((device->state.conn < C_CONNECTED || device->state.pdsk == D_DISKLESS) &&
drivers/block/drbd/drbd_receiver.c
4077
conn_request_state(peer_device->connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4083
device->state.conn == C_CONNECTED &&
drivers/block/drbd/drbd_receiver.c
4113
if (device->state.conn >= C_CONNECTED && device->state.disk < D_INCONSISTENT)
drivers/block/drbd/drbd_receiver.c
4143
ms.conn = c_tab[ps.conn];
drivers/block/drbd/drbd_receiver.c
4241
if (os.conn <= C_TEAR_DOWN)
drivers/block/drbd/drbd_receiver.c
4252
os.conn > C_CONNECTED && os.disk == D_UP_TO_DATE) {
drivers/block/drbd/drbd_receiver.c
4259
if (peer_state.conn > C_CONNECTED &&
drivers/block/drbd/drbd_receiver.c
4260
peer_state.conn < C_SYNC_SOURCE)
drivers/block/drbd/drbd_receiver.c
4266
else if (os.conn >= C_SYNC_SOURCE &&
drivers/block/drbd/drbd_receiver.c
4267
peer_state.conn == C_CONNECTED) {
drivers/block/drbd/drbd_receiver.c
4275
if (os.conn == C_VERIFY_T && os.disk == D_UP_TO_DATE &&
drivers/block/drbd/drbd_receiver.c
4276
peer_state.conn == C_CONNECTED && real_peer_disk == D_UP_TO_DATE) {
drivers/block/drbd/drbd_receiver.c
4288
os.conn == C_CONNECTED && peer_state.conn > C_SYNC_SOURCE)
drivers/block/drbd/drbd_receiver.c
4291
if (ns.conn == C_WF_REPORT_PARAMS)
drivers/block/drbd/drbd_receiver.c
4292
ns.conn = C_CONNECTED;
drivers/block/drbd/drbd_receiver.c
4294
if (peer_state.conn == C_AHEAD)
drivers/block/drbd/drbd_receiver.c
4295
ns.conn = C_BEHIND;
drivers/block/drbd/drbd_receiver.c
4321
cr = (os.conn < C_CONNECTED);
drivers/block/drbd/drbd_receiver.c
4324
cr |= (os.conn == C_CONNECTED &&
drivers/block/drbd/drbd_receiver.c
4332
cr |= (os.conn == C_CONNECTED &&
drivers/block/drbd/drbd_receiver.c
4333
(peer_state.conn >= C_STARTING_SYNC_S &&
drivers/block/drbd/drbd_receiver.c
4334
peer_state.conn <= C_WF_BITMAP_T));
drivers/block/drbd/drbd_receiver.c
4337
ns.conn = drbd_sync_handshake(peer_device, peer_state.role, real_peer_disk);
drivers/block/drbd/drbd_receiver.c
4340
if (ns.conn == C_MASK) {
drivers/block/drbd/drbd_receiver.c
4341
ns.conn = C_CONNECTED;
drivers/block/drbd/drbd_receiver.c
4351
D_ASSERT(device, os.conn == C_WF_REPORT_PARAMS);
drivers/block/drbd/drbd_receiver.c
4352
conn_request_state(peer_device->connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4365
if ((ns.conn == C_CONNECTED || ns.conn == C_WF_BITMAP_S) && ns.disk == D_NEGOTIATING)
drivers/block/drbd/drbd_receiver.c
4367
cs_flags = CS_VERBOSE + (os.conn < C_CONNECTED && ns.conn >= C_CONNECTED ? 0 : CS_HARD);
drivers/block/drbd/drbd_receiver.c
4368
if (ns.pdsk == D_CONSISTENT && drbd_suspended(device) && ns.conn == C_CONNECTED && os.conn < C_CONNECTED &&
drivers/block/drbd/drbd_receiver.c
4377
conn_request_state(peer_device->connection, NS2(conn, C_PROTOCOL_ERROR, susp, 0), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4385
conn_request_state(peer_device->connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4389
if (os.conn > C_WF_REPORT_PARAMS) {
drivers/block/drbd/drbd_receiver.c
4390
if (ns.conn > C_CONNECTED && peer_state.conn <= C_CONNECTED &&
drivers/block/drbd/drbd_receiver.c
4419
device->state.conn == C_WF_SYNC_UUID ||
drivers/block/drbd/drbd_receiver.c
4420
device->state.conn == C_BEHIND ||
drivers/block/drbd/drbd_receiver.c
4421
device->state.conn < C_CONNECTED ||
drivers/block/drbd/drbd_receiver.c
4583
conn_request_state(peer_device->connection, NS(conn, C_PROTOCOL_ERROR), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4695
if (device->state.conn == C_WF_BITMAP_T) {
drivers/block/drbd/drbd_receiver.c
4702
rv = _drbd_request_state(device, NS(conn, C_WF_SYNC_UUID), CS_VERBOSE);
drivers/block/drbd/drbd_receiver.c
4704
} else if (device->state.conn != C_WF_BITMAP_S) {
drivers/block/drbd/drbd_receiver.c
4708
drbd_conn_str(device->state.conn));
drivers/block/drbd/drbd_receiver.c
4714
if (!err && device->state.conn == C_WF_BITMAP_S)
drivers/block/drbd/drbd_receiver.c
4746
switch (device->state.conn) {
drivers/block/drbd/drbd_receiver.c
4753
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
4918
conn_request_state(connection, NS(conn, C_PROTOCOL_ERROR), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4935
conn_request_state(connection, NS(conn, C_NETWORK_FAILURE), CS_HARD);
drivers/block/drbd/drbd_receiver.c
4970
_conn_request_state(connection, NS(conn, C_UNCONNECTED), CS_VERBOSE);
drivers/block/drbd/drbd_receiver.c
4975
conn_request_state(connection, NS(conn, C_STANDALONE), CS_VERBOSE | CS_HARD);
drivers/block/drbd/drbd_receiver.c
5360
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
5646
if (device->state.conn == C_AHEAD &&
drivers/block/drbd/drbd_receiver.c
5888
conn_request_state(connection, NS(conn, C_NETWORK_FAILURE), CS_HARD);
drivers/block/drbd/drbd_receiver.c
5893
conn_request_state(connection, NS(conn, C_DISCONNECTING), CS_HARD);
drivers/block/drbd/drbd_receiver.c
5924
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
1105
struct acpi_gpio_connection *conn;
drivers/gpio/gpiolib-acpi-core.c
1113
list_for_each_entry(conn, &achip->conns, node) {
drivers/gpio/gpiolib-acpi-core.c
1114
if (conn->pin == pin) {
drivers/gpio/gpiolib-acpi-core.c
1116
desc = conn->desc;
drivers/gpio/gpiolib-acpi-core.c
1147
conn = kzalloc_obj(*conn);
drivers/gpio/gpiolib-acpi-core.c
1148
if (!conn) {
drivers/gpio/gpiolib-acpi-core.c
1155
conn->pin = pin;
drivers/gpio/gpiolib-acpi-core.c
1156
conn->desc = desc;
drivers/gpio/gpiolib-acpi-core.c
1157
list_add_tail(&conn->node, &achip->conns);
drivers/gpio/gpiolib-acpi-core.c
1205
struct acpi_gpio_connection *conn, *tmp;
drivers/gpio/gpiolib-acpi-core.c
1216
list_for_each_entry_safe_reverse(conn, tmp, &achip->conns, node) {
drivers/gpio/gpiolib-acpi-core.c
1217
gpiochip_free_own_desc(conn->desc);
drivers/gpio/gpiolib-acpi-core.c
1218
list_del(&conn->node);
drivers/gpio/gpiolib-acpi-core.c
1219
kfree(conn);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8297
amdgpu_dm_connector_atomic_check(struct drm_connector *conn,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8301
drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8303
drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8306
struct amdgpu_dm_connector *aconn = to_amdgpu_dm_connector(conn);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
8314
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
1488
static int cdns_mhdp_connector_detect(struct drm_connector *conn,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1492
struct cdns_mhdp_device *mhdp = connector_to_mhdp(conn);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1551
enum drm_mode_status cdns_mhdp_mode_valid(struct drm_connector *conn,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1554
struct cdns_mhdp_device *mhdp = connector_to_mhdp(conn);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1568
static int cdns_mhdp_connector_atomic_check(struct drm_connector *conn,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1571
struct cdns_mhdp_device *mhdp = connector_to_mhdp(conn);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1579
old_state = drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1580
new_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1626
struct drm_connector *conn = &mhdp->connector;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1630
conn->polled = DRM_CONNECTOR_POLL_HPD;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1632
ret = drm_connector_init(bridge->dev, conn, &cdns_mhdp_conn_funcs,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1639
drm_connector_helper_add(conn, &cdns_mhdp_conn_helper_funcs);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1641
ret = drm_display_info_set_bus_formats(&conn->display_info,
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1646
ret = drm_connector_attach_encoder(conn, bridge->encoder);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
1653
ret = drm_connector_attach_content_protection_property(conn, true);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2295
struct drm_connector *conn;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2299
conn = &mhdp->connector;
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2302
mutex_lock(&conn->dev->mode_config.mutex);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2308
drm_connector_set_link_status_property(conn, DRM_MODE_LINK_STATUS_BAD);
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
2309
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
1657
struct drm_connector *conn;
drivers/gpu/drm/drm_atomic.c
1688
for_each_new_connector_in_state(state, conn, conn_state, i) {
drivers/gpu/drm/drm_atomic.c
1689
ret = drm_atomic_connector_check(conn, conn_state);
drivers/gpu/drm/drm_atomic.c
1692
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
3757
drm_for_each_connector_iter(conn, &conn_iter) {
drivers/gpu/drm/drm_atomic_helper.c
3760
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/drm_atomic_uapi.c
1381
struct drm_connector *conn;
drivers/gpu/drm/drm_atomic_uapi.c
1448
for_each_new_connector_in_state(state, conn, conn_state, i) {
drivers/gpu/drm/drm_atomic_uapi.c
1457
fence_ptr = get_out_fence_for_connector(state, conn);
drivers/gpu/drm/drm_atomic_uapi.c
1471
wb_conn = drm_connector_to_writeback(conn);
drivers/gpu/drm/drm_atomic_uapi.c
803
struct drm_connector *conn = conn_state->connector;
drivers/gpu/drm/drm_atomic_uapi.c
810
drm_dbg_atomic(conn->dev,
drivers/gpu/drm/drm_atomic_uapi.c
814
drm_dbg_atomic(conn->dev,
drivers/gpu/drm/drm_bridge.c
1158
struct drm_connector *conn = conn_state->connector;
drivers/gpu/drm/drm_bridge.c
1196
if (conn->display_info.num_bus_formats &&
drivers/gpu/drm/drm_bridge.c
1197
conn->display_info.bus_formats)
drivers/gpu/drm/drm_bridge.c
1198
out_bus_fmts[0] = conn->display_info.bus_formats[0];
drivers/gpu/drm/drm_bridge.c
1217
struct drm_connector *conn,
drivers/gpu/drm/drm_bridge.c
1242
output_flags = conn->display_info.bus_flags;
drivers/gpu/drm/drm_bridge.c
1284
struct drm_connector *conn = conn_state->connector;
drivers/gpu/drm/drm_bridge.c
1308
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
600
struct drm_connector *conn;
drivers/gpu/drm/i915/display/g4x_hdmi.c
622
drm_for_each_connector_iter(conn, &conn_iter) {
drivers/gpu/drm/i915/display/g4x_hdmi.c
627
if (!connector_is_hdmi(conn))
drivers/gpu/drm/i915/display/g4x_hdmi.c
631
conn->base.id, conn->name);
drivers/gpu/drm/i915/display/g4x_hdmi.c
633
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
3334
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_ddi.c
3340
for_each_new_connector_in_state(&state->base, conn, conn_state, i) {
drivers/gpu/drm/i915/display/intel_display.c
1320
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
1323
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
1387
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
1390
for_each_old_connector_in_state(&state->base, conn, old_conn_state, i) {
drivers/gpu/drm/i915/display/intel_display.c
1410
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
1413
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_new_connector_in_state(&state->base, conn, conn_state, i) {
drivers/gpu/drm/i915/display/intel_display.c
857
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
860
for_each_new_connector_in_state(&state->base, conn, conn_state, i) {
drivers/gpu/drm/i915/display/intel_display.c
878
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_display.c
881
for_each_old_connector_in_state(&state->base, conn, old_conn_state, i) {
drivers/gpu/drm/i915/display/intel_psr.c
3343
struct drm_connector *conn;
drivers/gpu/drm/i915/display/intel_psr.c
3357
drm_for_each_connector_iter(conn, &conn_iter) {
drivers/gpu/drm/i915/display/intel_psr.c
3361
if (conn->connector_type != DRM_MODE_CONNECTOR_eDP)
drivers/gpu/drm/i915/display/intel_psr.c
3364
conn_state = drm_atomic_get_connector_state(state, conn);
drivers/gpu/drm/i915/display/intel_sdvo.c
2514
static int intel_sdvo_atomic_check(struct drm_connector *conn,
drivers/gpu/drm/i915/display/intel_sdvo.c
2518
drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/i915/display/intel_sdvo.c
2520
drm_atomic_get_old_connector_state(state, conn);
drivers/gpu/drm/i915/display/intel_sdvo.c
2536
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_state_test.c
123
conn = &priv->connectors[i];
drivers/gpu/drm/tests/drm_atomic_state_test.c
125
ret = drmm_connector_init(drm, conn, &dummy_connector_funcs,
drivers/gpu/drm/tests/drm_atomic_state_test.c
129
drm_connector_helper_add(conn, &dummy_connector_helper_funcs);
drivers/gpu/drm/tests/drm_atomic_state_test.c
133
drm_connector_attach_encoder(conn, &priv->encoders[i]);
drivers/gpu/drm/tests/drm_atomic_state_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(HDMI_COLORSPACE_YUV420));
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
248
static int vc4_txp_connector_atomic_check(struct drm_connector *conn,
drivers/gpu/drm/vc4/vc4_txp.c
256
conn_state = drm_atomic_get_new_connector_state(state, conn);
drivers/gpu/drm/vc4/vc4_txp.c
287
static void vc4_txp_connector_atomic_commit(struct drm_connector *conn,
drivers/gpu/drm/vc4/vc4_txp.c
290
struct drm_device *drm = conn->dev;
drivers/gpu/drm/vc4/vc4_txp.c
292
conn);
drivers/gpu/drm/vc4/vc4_txp.c
293
struct vc4_txp *txp = connector_to_vc4_txp(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
179
struct drm_connector conn;
drivers/gpu/drm/virtio/virtgpu_vq.c
921
new_edid = drm_edid_read_custom(&output->conn, virtio_get_edid_block, resp);
drivers/gpu/drm/virtio/virtgpu_vq.c
922
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
106
struct coresight_connection *conn)
drivers/hwtracing/coresight/coresight-core.c
1066
struct coresight_connection *conn;
drivers/hwtracing/coresight/coresight-core.c
1077
conn = src_csdev->pdata->out_conns[i];
drivers/hwtracing/coresight/coresight-core.c
108
return conn->filter_src_fwnode && (conn->filter_src_dev != src);
drivers/hwtracing/coresight/coresight-core.c
1080
if (conn->filter_src_fwnode && !conn->filter_src_dev) {
drivers/hwtracing/coresight/coresight-core.c
1082
(conn->filter_src_fwnode == dst_csdev->dev.fwnode) &&
drivers/hwtracing/coresight/coresight-core.c
1084
conn->filter_src_dev = dst_csdev;
drivers/hwtracing/coresight/coresight-core.c
1090
if (conn->dest_dev)
drivers/hwtracing/coresight/coresight-core.c
1100
conn->dest_fwnode);
drivers/hwtracing/coresight/coresight-core.c
1103
if (dst_csdev && conn->dest_fwnode == dst_csdev->dev.fwnode) {
drivers/hwtracing/coresight/coresight-core.c
1104
ret = coresight_make_links(src_csdev, conn, dst_csdev);
drivers/hwtracing/coresight/coresight-core.c
1112
conn->dest_dev = dst_csdev;
drivers/hwtracing/coresight/coresight-core.c
1113
conn->src_dev = src_csdev;
drivers/hwtracing/coresight/coresight-core.c
1115
ret = coresight_add_in_conn(conn);
drivers/hwtracing/coresight/coresight-core.c
1156
struct coresight_connection *conn;
drivers/hwtracing/coresight/coresight-core.c
1167
conn = csdev->pdata->out_conns[i];
drivers/hwtracing/coresight/coresight-core.c
1168
if (conn->filter_src_fwnode) {
drivers/hwtracing/coresight/coresight-core.c
1169
conn->filter_src_dev = NULL;
drivers/hwtracing/coresight/coresight-core.c
117
struct coresight_connection *conn;
drivers/hwtracing/coresight/coresight-core.c
1170
fwnode_handle_put(conn->filter_src_fwnode);
drivers/hwtracing/coresight/coresight-core.c
1173
if (!conn->dest_dev)
drivers/hwtracing/coresight/coresight-core.c
1176
for (j = 0; j < conn->dest_dev->pdata->nr_inconns; ++j)
drivers/hwtracing/coresight/coresight-core.c
1177
if (conn->dest_dev->pdata->in_conns[j] == conn) {
drivers/hwtracing/coresight/coresight-core.c
1178
conn->dest_dev->pdata->in_conns[j] = NULL;
drivers/hwtracing/coresight/coresight-core.c
1189
conn = csdev->pdata->in_conns[i];
drivers/hwtracing/coresight/coresight-core.c
1191
if (!conn)
drivers/hwtracing/coresight/coresight-core.c
1194
conn->src_dev->orphan = true;
drivers/hwtracing/coresight/coresight-core.c
1195
coresight_remove_links(conn->src_dev, conn);
drivers/hwtracing/coresight/coresight-core.c
1196
conn->dest_dev = NULL;
drivers/hwtracing/coresight/coresight-core.c
120
conn = csdev->pdata->out_conns[i];
drivers/hwtracing/coresight/coresight-core.c
121
if (coresight_blocks_source(trace_src, conn))
drivers/hwtracing/coresight/coresight-core.c
123
if (conn->dest_dev == out_dev)
drivers/hwtracing/coresight/coresight-core.c
124
return conn;
drivers/hwtracing/coresight/coresight-core.c
1490
struct coresight_connection *conn;
drivers/hwtracing/coresight/coresight-core.c
1493
conn = pdata->in_conns[i];
drivers/hwtracing/coresight/coresight-core.c
1494
if (conn &&
drivers/hwtracing/coresight/coresight-core.c
1495
coresight_compare_type(type, subtype, conn->src_dev->type,
drivers/hwtracing/coresight/coresight-core.c
1496
conn->src_dev->subtype))
drivers/hwtracing/coresight/coresight-core.c
1497
return conn->src_dev;
drivers/hwtracing/coresight/coresight-core.c
1509
struct coresight_connection *conn;
drivers/hwtracing/coresight/coresight-core.c
1512
conn = pdata->out_conns[i];
drivers/hwtracing/coresight/coresight-core.c
1513
if (conn->dest_dev &&
drivers/hwtracing/coresight/coresight-core.c
1514
coresight_compare_type(type, subtype, conn->dest_dev->type,
drivers/hwtracing/coresight/coresight-core.c
1515
conn->dest_dev->subtype))
drivers/hwtracing/coresight/coresight-core.c
1516
return conn->dest_dev;
drivers/hwtracing/coresight/coresight-core.c
274
struct coresight_connection conn = {};
drivers/hwtracing/coresight/coresight-core.c
278
conn.dest_fwnode = fwnode_handle_get(dev_fwnode(&helper->dev));
drivers/hwtracing/coresight/coresight-core.c
279
conn.dest_dev = helper;
drivers/hwtracing/coresight/coresight-core.c
280
conn.dest_port = conn.src_port = -1;
drivers/hwtracing/coresight/coresight-core.c
281
conn.src_dev = csdev;
drivers/hwtracing/coresight/coresight-core.c
289
if (csdev->pdata->out_conns[i]->dest_fwnode == conn.dest_fwnode)
drivers/hwtracing/coresight/coresight-core.c
293
&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
234
conn.src_port = endpoint.port;
drivers/hwtracing/coresight/coresight-platform.c
243
conn.dest_fwnode = fwnode_handle_get(rdev_fwnode);
drivers/hwtracing/coresight/coresight-platform.c
244
conn.dest_port = rendpoint.port;
drivers/hwtracing/coresight/coresight-platform.c
251
conn.filter_src_fwnode =
drivers/hwtracing/coresight/coresight-platform.c
253
if (IS_ERR(conn.filter_src_fwnode)) {
drivers/hwtracing/coresight/coresight-platform.c
254
conn.filter_src_fwnode = NULL;
drivers/hwtracing/coresight/coresight-platform.c
256
conn.filter_src_dev =
drivers/hwtracing/coresight/coresight-platform.c
257
coresight_find_csdev_by_fwnode(conn.filter_src_fwnode);
drivers/hwtracing/coresight/coresight-platform.c
258
if (conn.filter_src_dev &&
drivers/hwtracing/coresight/coresight-platform.c
259
!coresight_is_device_source(conn.filter_src_dev)) {
drivers/hwtracing/coresight/coresight-platform.c
261
conn.src_port, dev_name(&conn.filter_src_dev->dev));
drivers/hwtracing/coresight/coresight-platform.c
262
conn.filter_src_dev = NULL;
drivers/hwtracing/coresight/coresight-platform.c
263
conn.filter_src_fwnode = NULL;
drivers/hwtracing/coresight/coresight-platform.c
267
new_conn = coresight_add_out_conn(dev, pdata, &conn);
drivers/hwtracing/coresight/coresight-platform.c
269
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
55
conn = devm_kmalloc(dev, sizeof(struct coresight_connection),
drivers/hwtracing/coresight/coresight-platform.c
57
if (!conn)
drivers/hwtracing/coresight/coresight-platform.c
623
struct coresight_connection *conn)
drivers/hwtracing/coresight/coresight-platform.c
648
conn->src_port = fields[0].integer.value;
drivers/hwtracing/coresight/coresight-platform.c
649
conn->dest_port = fields[1].integer.value;
drivers/hwtracing/coresight/coresight-platform.c
65
*conn = *new_conn;
drivers/hwtracing/coresight/coresight-platform.c
66
pdata->out_conns[pdata->nr_outconns - 1] = conn;
drivers/hwtracing/coresight/coresight-platform.c
661
conn->dest_fwnode = fwnode_handle_get(&r_adev->fwnode);
drivers/hwtracing/coresight/coresight-platform.c
668
conn->dest_port = fields[0].integer.value;
drivers/hwtracing/coresight/coresight-platform.c
67
return conn;
drivers/hwtracing/coresight/coresight-platform.c
689
struct coresight_connection conn, zero_conn = {};
drivers/hwtracing/coresight/coresight-platform.c
709
conn = zero_conn;
drivers/hwtracing/coresight/coresight-platform.c
710
dir = acpi_coresight_parse_link(adev, link, &conn);
drivers/hwtracing/coresight/coresight-platform.c
717
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
608
struct coresight_connection *conn,
drivers/hwtracing/coresight/coresight-sysfs.c
616
if (conn->dest_port == -1 && conn->src_port == -1)
drivers/hwtracing/coresight/coresight-sysfs.c
621
"out:%d", conn->src_port);
drivers/hwtracing/coresight/coresight-sysfs.c
625
"in:%d", conn->dest_port);
drivers/hwtracing/coresight/coresight-sysfs.c
643
conn->link = link;
drivers/hwtracing/coresight/coresight-sysfs.c
656
struct coresight_connection *conn)
drivers/hwtracing/coresight/coresight-sysfs.c
658
if (!orig || !conn->link)
drivers/hwtracing/coresight/coresight-sysfs.c
661
coresight_remove_sysfs_link(conn->link);
drivers/hwtracing/coresight/coresight-sysfs.c
663
devm_kfree(&conn->dest_dev->dev, conn->link->target_name);
drivers/hwtracing/coresight/coresight-sysfs.c
664
devm_kfree(&orig->dev, conn->link->orig_name);
drivers/hwtracing/coresight/coresight-sysfs.c
665
devm_kfree(&orig->dev, conn->link);
drivers/hwtracing/coresight/coresight-sysfs.c
666
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
1388
if (isert_conn->conn) {
drivers/infiniband/ulp/isert/ib_isert.c
1389
struct iscsi_login *login = isert_conn->conn->conn_login;
drivers/infiniband/ulp/isert/ib_isert.c
1404
isert_rdma_rw_ctx_destroy(struct isert_cmd *cmd, struct isert_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
1412
if (isert_prot_cmd(conn, se_cmd)) {
drivers/infiniband/ulp/isert/ib_isert.c
1413
rdma_rw_ctx_destroy_signature(&cmd->rw, conn->qp,
drivers/infiniband/ulp/isert/ib_isert.c
1414
conn->cm_id->port_num, se_cmd->t_data_sg,
drivers/infiniband/ulp/isert/ib_isert.c
1418
rdma_rw_ctx_destroy(&cmd->rw, conn->qp, conn->cm_id->port_num,
drivers/infiniband/ulp/isert/ib_isert.c
1429
struct isert_conn *isert_conn = isert_cmd->conn;
drivers/infiniband/ulp/isert/ib_isert.c
1430
struct iscsit_conn *conn = isert_conn->conn;
drivers/infiniband/ulp/isert/ib_isert.c
1437
spin_lock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1440
spin_unlock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1462
spin_lock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1465
spin_unlock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1477
spin_lock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1480
spin_unlock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1583
iscsit_cause_connection_reinstatement(isert_conn->conn, 0);
drivers/infiniband/ulp/isert/ib_isert.c
1606
ret = isert_put_response(isert_conn->conn, isert_cmd->iscsit_cmd);
drivers/infiniband/ulp/isert/ib_isert.c
1626
iscsit_cause_connection_reinstatement(isert_conn->conn, 0);
drivers/infiniband/ulp/isert/ib_isert.c
1662
struct isert_conn *isert_conn = isert_cmd->conn;
drivers/infiniband/ulp/isert/ib_isert.c
1670
iscsit_tmr_post_handler(cmd, cmd->conn);
drivers/infiniband/ulp/isert/ib_isert.c
1679
iscsit_logout_post_handler(cmd, cmd->conn);
drivers/infiniband/ulp/isert/ib_isert.c
1698
iscsit_cause_connection_reinstatement(isert_conn->conn, 0);
drivers/infiniband/ulp/isert/ib_isert.c
1715
iscsit_cause_connection_reinstatement(isert_conn->conn, 0);
drivers/infiniband/ulp/isert/ib_isert.c
1757
isert_put_response(struct iscsit_conn *conn, struct iscsit_cmd *cmd)
drivers/infiniband/ulp/isert/ib_isert.c
1760
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1766
iscsit_build_rsp_pdu(cmd, conn, true, hdr);
drivers/infiniband/ulp/isert/ib_isert.c
1808
isert_aborted_task(struct iscsit_conn *conn, struct iscsit_cmd *cmd)
drivers/infiniband/ulp/isert/ib_isert.c
1811
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1813
spin_lock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1816
spin_unlock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
1824
isert_get_sup_prot_ops(struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
1826
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1829
if (conn->tpg->tpg_attrib.t10_pi) {
drivers/infiniband/ulp/isert/ib_isert.c
1844
isert_put_nopin(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/infiniband/ulp/isert/ib_isert.c
1848
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1852
iscsit_build_nopin_rsp(cmd, conn, (struct iscsi_nopin *)
drivers/infiniband/ulp/isert/ib_isert.c
1864
isert_put_logout_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
1867
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1871
iscsit_build_logout_rsp(cmd, conn, (struct iscsi_logout_rsp *)
drivers/infiniband/ulp/isert/ib_isert.c
1882
isert_put_tm_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
1885
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1889
iscsit_build_task_mgt_rsp(cmd, conn, (struct iscsi_tm_rsp *)
drivers/infiniband/ulp/isert/ib_isert.c
1900
isert_put_reject(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
1903
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1912
iscsit_build_reject(cmd, conn, hdr);
drivers/infiniband/ulp/isert/ib_isert.c
1935
isert_put_text_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
1938
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
1946
rc = iscsit_build_text_rsp(cmd, conn, hdr, ISCSI_INFINIBAND);
drivers/infiniband/ulp/isert/ib_isert.c
2034
isert_rdma_rw_ctx_post(struct isert_cmd *cmd, struct isert_conn *conn,
drivers/infiniband/ulp/isert/ib_isert.c
2039
u8 port_num = conn->cm_id->port_num;
drivers/infiniband/ulp/isert/ib_isert.c
2057
if (isert_prot_cmd(conn, se_cmd)) {
drivers/infiniband/ulp/isert/ib_isert.c
2065
ret = rdma_rw_ctx_signature_init(&cmd->rw, conn->qp, port_num,
drivers/infiniband/ulp/isert/ib_isert.c
2070
ret = rdma_rw_ctx_init(&cmd->rw, conn->qp, port_num,
drivers/infiniband/ulp/isert/ib_isert.c
2083
ret = rdma_rw_ctx_post(&cmd->rw, conn->qp, port_num, cqe, chain_wr);
drivers/infiniband/ulp/isert/ib_isert.c
2090
isert_put_datain(struct iscsit_conn *conn, struct iscsit_cmd *cmd)
drivers/infiniband/ulp/isert/ib_isert.c
2094
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
2111
iscsit_build_rsp_pdu(cmd, conn, true, (struct iscsi_scsi_rsp *)
drivers/infiniband/ulp/isert/ib_isert.c
2131
isert_get_dataout(struct iscsit_conn *conn, struct iscsit_cmd *cmd, bool recovery)
drivers/infiniband/ulp/isert/ib_isert.c
2140
ret = isert_rdma_rw_ctx_post(isert_cmd, conn->context,
drivers/infiniband/ulp/isert/ib_isert.c
2149
isert_immediate_queue(struct iscsit_conn *conn, struct iscsit_cmd *cmd, int state)
drivers/infiniband/ulp/isert/ib_isert.c
2156
spin_lock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
2158
spin_unlock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
2162
ret = isert_put_nopin(cmd, conn, false);
drivers/infiniband/ulp/isert/ib_isert.c
2174
isert_response_queue(struct iscsit_conn *conn, struct iscsit_cmd *cmd, int state)
drivers/infiniband/ulp/isert/ib_isert.c
2176
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
2181
ret = isert_put_logout_rsp(cmd, conn);
drivers/infiniband/ulp/isert/ib_isert.c
2186
ret = isert_put_nopin(cmd, conn, true);
drivers/infiniband/ulp/isert/ib_isert.c
2189
ret = isert_put_tm_rsp(cmd, conn);
drivers/infiniband/ulp/isert/ib_isert.c
2192
ret = isert_put_reject(cmd, conn);
drivers/infiniband/ulp/isert/ib_isert.c
2195
ret = isert_put_text_rsp(cmd, conn);
drivers/infiniband/ulp/isert/ib_isert.c
2202
ret = isert_put_response(conn, cmd);
drivers/infiniband/ulp/isert/ib_isert.c
2334
isert_get_login_rx(struct iscsit_conn *conn, struct iscsi_login *login)
drivers/infiniband/ulp/isert/ib_isert.c
2336
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
2359
isert_info("before login_comp conn: %p\n", conn);
drivers/infiniband/ulp/isert/ib_isert.c
2370
isert_set_conn_info(struct iscsi_np *np, struct iscsit_conn *conn,
drivers/infiniband/ulp/isert/ib_isert.c
2376
conn->login_family = np->np_sockaddr.ss_family;
drivers/infiniband/ulp/isert/ib_isert.c
2378
conn->login_sockaddr = cm_route->addr.dst_addr;
drivers/infiniband/ulp/isert/ib_isert.c
2379
conn->local_sockaddr = cm_route->addr.src_addr;
drivers/infiniband/ulp/isert/ib_isert.c
2383
isert_accept_np(struct iscsi_np *np, struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
2417
conn->context = isert_conn;
drivers/infiniband/ulp/isert/ib_isert.c
2418
isert_conn->conn = conn;
drivers/infiniband/ulp/isert/ib_isert.c
2421
isert_set_conn_info(np, conn, isert_conn);
drivers/infiniband/ulp/isert/ib_isert.c
2497
struct iscsit_conn *conn = isert_conn->conn;
drivers/infiniband/ulp/isert/ib_isert.c
2503
wait_for_completion_timeout(&conn->conn_logout_comp,
drivers/infiniband/ulp/isert/ib_isert.c
2509
isert_wait4cmds(struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
2511
isert_info("iscsit_conn %p\n", conn);
drivers/infiniband/ulp/isert/ib_isert.c
2513
if (conn->sess) {
drivers/infiniband/ulp/isert/ib_isert.c
2514
target_stop_cmd_counter(conn->cmd_cnt);
drivers/infiniband/ulp/isert/ib_isert.c
2515
target_wait_for_cmds(conn->cmd_cnt);
drivers/infiniband/ulp/isert/ib_isert.c
2529
isert_put_unsol_pending_cmds(struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
2534
spin_lock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
2535
list_for_each_entry_safe(cmd, tmp, &conn->conn_cmd_list, i_conn_node) {
drivers/infiniband/ulp/isert/ib_isert.c
2537
(cmd->write_data_done < conn->sess->sess_ops->FirstBurstLength) &&
drivers/infiniband/ulp/isert/ib_isert.c
2541
spin_unlock_bh(&conn->cmd_lock);
drivers/infiniband/ulp/isert/ib_isert.c
2548
isert_info("conn %p dropping cmd %p\n", conn, cmd);
drivers/infiniband/ulp/isert/ib_isert.c
2554
static void isert_wait_conn(struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
2556
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
2565
isert_put_unsol_pending_cmds(conn);
drivers/infiniband/ulp/isert/ib_isert.c
2566
isert_wait4cmds(conn);
drivers/infiniband/ulp/isert/ib_isert.c
2572
static void isert_free_conn(struct iscsit_conn *conn)
drivers/infiniband/ulp/isert/ib_isert.c
2574
struct isert_conn *isert_conn = conn->context;
drivers/infiniband/ulp/isert/ib_isert.c
2580
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
1835
msg = ev->param.conn.private_data;
drivers/infiniband/ulp/rtrs/rtrs-clt.c
1836
len = ev->param.conn.private_data_len;
drivers/infiniband/ulp/rtrs/rtrs-srv.c
2030
return rtrs_rdma_connect(cm_id, ev->param.conn.private_data,
drivers/infiniband/ulp/rtrs/rtrs-srv.c
2031
ev->param.conn.private_data_len);
drivers/infiniband/ulp/srp/ib_srp.c
2585
opcode = *(u8 *) event->param.conn.private_data;
drivers/infiniband/ulp/srp/ib_srp.c
2589
event->param.conn.private_data;
drivers/infiniband/ulp/srp/ib_srp.c
2658
srp_cm_rep_handler(NULL, event->param.conn.private_data, ch);
drivers/infiniband/ulp/srpt/ib_srpt.c
2616
if (event->param.conn.private_data_len < sizeof(*req_rdma))
drivers/infiniband/ulp/srpt/ib_srpt.c
2620
req_rdma = event->param.conn.private_data;
drivers/infiniband/ulp/srpt/ib_srpt.c
2768
event->param.conn.private_data,
drivers/infiniband/ulp/srpt/ib_srpt.c
2769
event->param.conn.private_data_len);
drivers/isdn/hardware/mISDN/hfcpci.c
1340
hc->hw.conn &= ~0x18;
drivers/isdn/hardware/mISDN/hfcpci.c
1347
hc->hw.conn &= ~0x03;
drivers/isdn/hardware/mISDN/hfcpci.c
1369
hc->hw.conn &= ~0x18;
drivers/isdn/hardware/mISDN/hfcpci.c
1376
hc->hw.conn &= ~0x03;
drivers/isdn/hardware/mISDN/hfcpci.c
1399
hc->hw.conn &= 0xc7;
drivers/isdn/hardware/mISDN/hfcpci.c
1400
hc->hw.conn |= 0x08;
drivers/isdn/hardware/mISDN/hfcpci.c
1408
hc->hw.conn &= 0xf8;
drivers/isdn/hardware/mISDN/hfcpci.c
1409
hc->hw.conn |= 0x01;
drivers/isdn/hardware/mISDN/hfcpci.c
1424
Write_hfc(hc, HFCPCI_CONNECT, hc->hw.conn);
drivers/isdn/hardware/mISDN/hfcpci.c
1456
hc->hw.conn &= ~0x18;
drivers/isdn/hardware/mISDN/hfcpci.c
1466
hc->hw.conn &= ~0x03;
drivers/isdn/hardware/mISDN/hfcpci.c
1481
hc->hw.conn &= ~0x18;
drivers/isdn/hardware/mISDN/hfcpci.c
1488
hc->hw.conn &= ~0x03;
drivers/isdn/hardware/mISDN/hfcpci.c
1499
Write_hfc(hc, HFCPCI_CONNECT, hc->hw.conn);
drivers/isdn/hardware/mISDN/hfcpci.c
1807
hc->hw.conn = (hc->hw.conn & ~7) | 6;
drivers/isdn/hardware/mISDN/hfcpci.c
1808
Write_hfc(hc, HFCPCI_CONNECT, hc->hw.conn);
drivers/isdn/hardware/mISDN/hfcpci.c
1819
hc->hw.conn = (hc->hw.conn & ~0x38) | 0x30;
drivers/isdn/hardware/mISDN/hfcpci.c
1820
Write_hfc(hc, HFCPCI_CONNECT, hc->hw.conn);
drivers/isdn/hardware/mISDN/hfcpci.c
1825
hc->hw.conn = (hc->hw.conn & ~0x3f) | 0x09;
drivers/isdn/hardware/mISDN/hfcpci.c
1826
Write_hfc(hc, HFCPCI_CONNECT, hc->hw.conn);
drivers/isdn/hardware/mISDN/hfcpci.c
1857
hc->hw.conn = (hc->hw.conn & ~0x3f) | 0x36;
drivers/isdn/hardware/mISDN/hfcpci.c
1858
Write_hfc(hc, HFCPCI_CONNECT, hc->hw.conn);
drivers/isdn/hardware/mISDN/hfcpci.c
1863
hc->hw.conn = (hc->hw.conn & ~0x3f) | 0x09;
drivers/isdn/hardware/mISDN/hfcpci.c
1864
Write_hfc(hc, HFCPCI_CONNECT, hc->hw.conn);
drivers/isdn/hardware/mISDN/hfcpci.c
270
hc->hw.conn = 0x09;
drivers/isdn/hardware/mISDN/hfcpci.c
272
hc->hw.conn = 0x36; /* set data flow directions */
drivers/isdn/hardware/mISDN/hfcpci.c
285
Write_hfc(hc, HFCPCI_CONNECT, hc->hw.conn);
drivers/isdn/hardware/mISDN/hfcpci.c
88
unsigned char conn;
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
670
struct mei_connect_client_data conn;
drivers/misc/mei/main.c
695
if (copy_from_user(&conn, (char __user *)data, sizeof(conn))) {
drivers/misc/mei/main.c
700
cl_uuid = conn.in_client_uuid;
drivers/misc/mei/main.c
701
props = &conn.out_client_properties;
drivers/misc/mei/main.c
716
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
3113
struct ath6kl_sta *conn;
drivers/net/wireless/ath/ath6kl/cfg80211.c
3123
conn = ath6kl_find_sta(vif, mgmt->da);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3124
if (!conn)
drivers/net/wireless/ath/ath6kl/cfg80211.c
3127
if (conn->sta_flags & STA_PS_SLEEP) {
drivers/net/wireless/ath/ath6kl/cfg80211.c
3128
if (!(conn->sta_flags & STA_PS_POLLED)) {
drivers/net/wireless/ath/ath6kl/cfg80211.c
3142
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3143
is_psq_empty = skb_queue_empty(&conn->psq) &&
drivers/net/wireless/ath/ath6kl/cfg80211.c
3144
(conn->mgmt_psq_len == 0);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3145
list_add_tail(&mgmt_buf->list, &conn->mgmt_psq);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3146
conn->mgmt_psq_len++;
drivers/net/wireless/ath/ath6kl/cfg80211.c
3147
spin_unlock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3156
conn->aid, 1);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3164
spin_lock_bh(&conn->psq_lock);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3165
if (!skb_queue_empty(&conn->psq) || (conn->mgmt_psq_len != 0))
drivers/net/wireless/ath/ath6kl/cfg80211.c
3167
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
1217
struct wmi_connect_cmd conn;
drivers/net/wireless/ath/wil6210/cfg80211.c
1332
memset(&conn, 0, sizeof(conn));
drivers/net/wireless/ath/wil6210/cfg80211.c
1333
conn.network_type = network_type;
drivers/net/wireless/ath/wil6210/cfg80211.c
1336
conn.dot11_auth_mode = WMI_AUTH11_SHARED;
drivers/net/wireless/ath/wil6210/cfg80211.c
1337
conn.auth_mode = WMI_AUTH_WPA2_PSK;
drivers/net/wireless/ath/wil6210/cfg80211.c
1338
conn.pairwise_crypto_type = WMI_CRYPT_AES_GCMP;
drivers/net/wireless/ath/wil6210/cfg80211.c
1339
conn.pairwise_crypto_len = 16;
drivers/net/wireless/ath/wil6210/cfg80211.c
1340
conn.group_crypto_type = WMI_CRYPT_AES_GCMP;
drivers/net/wireless/ath/wil6210/cfg80211.c
1341
conn.group_crypto_len = 16;
drivers/net/wireless/ath/wil6210/cfg80211.c
1343
conn.dot11_auth_mode = WMI_AUTH11_WSC;
drivers/net/wireless/ath/wil6210/cfg80211.c
1344
conn.auth_mode = WMI_AUTH_NONE;
drivers/net/wireless/ath/wil6210/cfg80211.c
1347
conn.dot11_auth_mode = WMI_AUTH11_OPEN;
drivers/net/wireless/ath/wil6210/cfg80211.c
1348
conn.auth_mode = WMI_AUTH_NONE;
drivers/net/wireless/ath/wil6210/cfg80211.c
1351
conn.ssid_len = min_t(u8, ssid_eid[1], 32);
drivers/net/wireless/ath/wil6210/cfg80211.c
1352
memcpy(conn.ssid, ssid_eid+2, conn.ssid_len);
drivers/net/wireless/ath/wil6210/cfg80211.c
1353
conn.channel = ch - 1;
drivers/net/wireless/ath/wil6210/cfg80211.c
1356
sme->edmg.channels, &conn.edmg_channel);
drivers/net/wireless/ath/wil6210/cfg80211.c
1360
ether_addr_copy(conn.bssid, bss->bssid);
drivers/net/wireless/ath/wil6210/cfg80211.c
1361
ether_addr_copy(conn.dst_mac, bss->bssid);
drivers/net/wireless/ath/wil6210/cfg80211.c
1365
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
202
.conn = {
drivers/net/wireless/ti/wl18xx/main.c
343
.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
1701
if ((wl->conf.conn.suspend_wake_up_event ==
drivers/net/wireless/ti/wlcore/main.c
1702
wl->conf.conn.wake_up_event) &&
drivers/net/wireless/ti/wlcore/main.c
1703
(wl->conf.conn.suspend_listen_interval ==
drivers/net/wireless/ti/wlcore/main.c
1704
wl->conf.conn.listen_interval))
drivers/net/wireless/ti/wlcore/main.c
1708
wl->conf.conn.suspend_wake_up_event,
drivers/net/wireless/ti/wlcore/main.c
1709
wl->conf.conn.suspend_listen_interval);
drivers/net/wireless/ti/wlcore/main.c
1767
if ((wl->conf.conn.suspend_wake_up_event ==
drivers/net/wireless/ti/wlcore/main.c
1768
wl->conf.conn.wake_up_event) &&
drivers/net/wireless/ti/wlcore/main.c
1769
(wl->conf.conn.suspend_listen_interval ==
drivers/net/wireless/ti/wlcore/main.c
1770
wl->conf.conn.listen_interval))
drivers/net/wireless/ti/wlcore/main.c
1774
wl->conf.conn.wake_up_event,
drivers/net/wireless/ti/wlcore/main.c
1775
wl->conf.conn.listen_interval);
drivers/net/wireless/ti/wlcore/main.c
1831
!!wl->conf.conn.suspend_rx_ba_activity);
drivers/net/wireless/ti/wlcore/main.c
2828
u8 sta_auth = wl->conf.conn.sta_sleep_auth;
drivers/net/wireless/ti/wlcore/main.c
4563
if (wl->conf.conn.forced_ps) {
drivers/net/wireless/ti/wlcore/main.c
6218
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
1379
nvmet_rdma_parse_cm_connect_req(struct rdma_conn_param *conn,
drivers/nvme/target/rdma.c
1384
req = (struct nvme_rdma_cm_req *)conn->private_data;
drivers/nvme/target/rdma.c
1385
if (!req || conn->private_data_len == 0)
drivers/nvme/target/rdma.c
1445
ret = nvmet_rdma_parse_cm_connect_req(&event->param.conn, queue);
drivers/nvme/target/rdma.c
1605
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/greybus/loopback.c
196
#define gb_dev_loopback_ro_attr(field, 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
1002
atomic_long_inc(&conn->sess->cmd_pdus);
drivers/target/iscsi/iscsi_target.c
1060
if (payload_length && !conn->sess->sess_ops->ImmediateData) {
drivers/target/iscsi/iscsi_target.c
1084
if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
drivers/target/iscsi/iscsi_target.c
1087
payload_length, conn->conn_ops->MaxXmitDataSegmentLength);
drivers/target/iscsi/iscsi_target.c
1092
if (payload_length > conn->sess->sess_ops->FirstBurstLength) {
drivers/target/iscsi/iscsi_target.c
1095
payload_length, conn->sess->sess_ops->FirstBurstLength);
drivers/target/iscsi/iscsi_target.c
1154
conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt;
drivers/target/iscsi/iscsi_target.c
1156
cmd->targ_xfer_tag = session_get_next_ttt(conn->sess);
drivers/target/iscsi/iscsi_target.c
1163
if (!conn->sess->sess_ops->RDMAExtensions &&
drivers/target/iscsi/iscsi_target.c
1182
conn->sess->se_sess, be32_to_cpu(hdr->data_length),
drivers/target/iscsi/iscsi_target.c
1185
conn->cmd_cnt);
drivers/target/iscsi/iscsi_target.c
1190
conn->cid);
drivers/target/iscsi/iscsi_target.c
1224
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
1225
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
1226
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
1236
iscsit_start_dataout_timer(cmd, cmd->conn);
drivers/target/iscsi/iscsi_target.c
1241
int iscsit_process_scsi_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1256
cmdsn_ret = iscsit_sequence_cmd(conn, cmd,
drivers/target/iscsi/iscsi_target.c
1266
iscsit_ack_from_expstatsn(conn, be32_to_cpu(hdr->exp_statsn));
drivers/target/iscsi/iscsi_target.c
1317
rc = iscsit_dump_data_payload(cmd->conn, length, 1);
drivers/target/iscsi/iscsi_target.c
1332
cmdsn_ret = iscsit_sequence_cmd(cmd->conn, cmd,
drivers/target/iscsi/iscsi_target.c
1357
iscsit_add_cmd_to_immediate_queue(cmd, cmd->conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
1365
iscsit_handle_scsi_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1372
rc = iscsit_setup_scsi_cmd(conn, cmd, buf);
drivers/target/iscsi/iscsi_target.c
1385
rc = iscsit_process_scsi_cmd(conn, cmd, hdr);
drivers/target/iscsi/iscsi_target.c
1439
__iscsit_check_dataout_hdr(struct iscsit_conn *conn, void *buf,
drivers/target/iscsi/iscsi_target.c
1448
atomic_long_add(payload_length, &conn->sess->rx_data_octets);
drivers/target/iscsi/iscsi_target.c
1453
payload_length, conn->cid);
drivers/target/iscsi/iscsi_target.c
1459
return iscsit_dump_data_payload(conn, payload_length, 1);
drivers/target/iscsi/iscsi_target.c
1465
return iscsit_dump_data_payload(conn, payload_length, 1);
drivers/target/iscsi/iscsi_target.c
1480
if (conn->sess->sess_ops->InitialR2T) {
drivers/target/iscsi/iscsi_target.c
1507
return iscsit_dump_data_payload(conn, payload_length, 1);
drivers/target/iscsi/iscsi_target.c
1525
return iscsit_dump_data_payload(conn, payload_length, 1);
drivers/target/iscsi/iscsi_target.c
1543
iscsit_check_dataout_hdr(struct iscsit_conn *conn, void *buf,
drivers/target/iscsi/iscsi_target.c
1557
if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
drivers/target/iscsi/iscsi_target.c
1560
conn->conn_ops->MaxXmitDataSegmentLength);
drivers/target/iscsi/iscsi_target.c
1561
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR, buf);
drivers/target/iscsi/iscsi_target.c
1564
cmd = iscsit_find_cmd_from_itt_or_dump(conn, hdr->itt, payload_length);
drivers/target/iscsi/iscsi_target.c
1568
rc = __iscsit_check_dataout_hdr(conn, buf, cmd, payload_length, &success);
drivers/target/iscsi/iscsi_target.c
1578
iscsit_get_dataout(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1606
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
1613
rx_got = rx_data(conn, &cmd->iov_data[0], iov_count, rx_size);
drivers/target/iscsi/iscsi_target.c
1620
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
1646
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target.c
1657
conn->conn_transport->iscsit_get_dataout(conn, cmd, false);
drivers/target/iscsi/iscsi_target.c
1681
static int iscsit_handle_data_out(struct iscsit_conn *conn, unsigned char *buf)
drivers/target/iscsi/iscsi_target.c
1688
rc = iscsit_check_dataout_hdr(conn, buf, &cmd);
drivers/target/iscsi/iscsi_target.c
1694
rc = iscsit_get_dataout(conn, cmd, hdr);
drivers/target/iscsi/iscsi_target.c
1703
int iscsit_setup_nop_out(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1711
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
1722
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
1729
if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
drivers/target/iscsi/iscsi_target.c
1733
conn->conn_ops->MaxXmitDataSegmentLength);
drivers/target/iscsi/iscsi_target.c
1735
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
1759
conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt;
drivers/target/iscsi/iscsi_target.c
1770
int iscsit_process_nop_out(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1780
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
1783
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
1784
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
1785
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
1787
iscsit_ack_from_expstatsn(conn, be32_to_cpu(hdr->exp_statsn));
drivers/target/iscsi/iscsi_target.c
1790
iscsit_add_cmd_to_response_queue(cmd, conn,
drivers/target/iscsi/iscsi_target.c
1795
cmdsn_ret = iscsit_sequence_cmd(conn, cmd,
drivers/target/iscsi/iscsi_target.c
1808
cmd_p = iscsit_find_cmd_from_ttt(conn, be32_to_cpu(hdr->ttt));
drivers/target/iscsi/iscsi_target.c
1812
iscsit_stop_nopin_response_timer(conn);
drivers/target/iscsi/iscsi_target.c
1815
iscsit_add_cmd_to_immediate_queue(cmd_p, conn, cmd_p->i_state);
drivers/target/iscsi/iscsi_target.c
1817
iscsit_start_nopin_timer(conn);
drivers/target/iscsi/iscsi_target.c
1832
static int iscsit_handle_nop_out(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1841
ret = iscsit_setup_nop_out(conn, cmd, hdr);
drivers/target/iscsi/iscsi_target.c
1869
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
1876
rx_got = rx_data(conn, &cmd->iov_misc[0], niov, rx_size);
drivers/target/iscsi/iscsi_target.c
1882
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
1889
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/iscsi_target.c
1925
return iscsit_process_nop_out(conn, cmd, hdr);
drivers/target/iscsi/iscsi_target.c
1957
iscsit_handle_task_mgt_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
1973
hdr->rtt, hdr->refcmdsn, conn->cid);
drivers/target/iscsi/iscsi_target.c
2003
conn->sess->se_sess, 0, DMA_NONE,
drivers/target/iscsi/iscsi_target.c
2006
conn->cmd_cnt);
drivers/target/iscsi/iscsi_target.c
2063
if (iscsit_tmr_task_warm_reset(conn, tmr_req, buf) < 0) {
drivers/target/iscsi/iscsi_target.c
2069
if (iscsit_tmr_task_cold_reset(conn, tmr_req, buf) < 0) {
drivers/target/iscsi/iscsi_target.c
2083
if (iscsit_check_task_reassign_expdatasn(tmr_req, conn) < 0)
drivers/target/iscsi/iscsi_target.c
2098
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
2099
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
2100
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
2103
int cmdsn_ret = iscsit_sequence_cmd(conn, cmd, buf, hdr->cmdsn);
drivers/target/iscsi/iscsi_target.c
2113
iscsit_ack_from_expstatsn(conn, be32_to_cpu(hdr->exp_statsn));
drivers/target/iscsi/iscsi_target.c
2131
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
2139
iscsit_setup_text_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
2144
if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
drivers/target/iscsi/iscsi_target.c
2147
payload_length, conn->conn_ops->MaxXmitDataSegmentLength);
drivers/target/iscsi/iscsi_target.c
2166
conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt;
drivers/target/iscsi/iscsi_target.c
2179
iscsit_process_text_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
2213
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
2214
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
2215
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
2218
iscsit_ack_from_expstatsn(conn, be32_to_cpu(hdr->exp_statsn));
drivers/target/iscsi/iscsi_target.c
2221
cmdsn_ret = iscsit_sequence_cmd(conn, cmd,
drivers/target/iscsi/iscsi_target.c
2238
iscsit_handle_text_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
2246
rc = iscsit_setup_text_cmd(conn, cmd, hdr);
drivers/target/iscsi/iscsi_target.c
2272
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
2279
rx_got = rx_data(conn, &iov[0], niov, rx_size);
drivers/target/iscsi/iscsi_target.c
2283
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
2289
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/iscsi_target.c
2316
return iscsit_process_text_cmd(conn, cmd, hdr);
drivers/target/iscsi/iscsi_target.c
2324
int iscsit_logout_closesession(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2327
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
2330
" for SID: %u.\n", conn->cid, conn->sess->sid);
drivers/target/iscsi/iscsi_target.c
2333
atomic_set(&conn->conn_logout_remove, 1);
drivers/target/iscsi/iscsi_target.c
2334
conn->conn_logout_reason = ISCSI_LOGOUT_REASON_CLOSE_SESSION;
drivers/target/iscsi/iscsi_target.c
2336
iscsit_inc_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
2349
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
2354
int iscsit_logout_closeconnection(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2357
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
2360
" %hu on CID: %hu.\n", cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2366
if (conn->cid == cmd->logout_cid) {
drivers/target/iscsi/iscsi_target.c
2367
spin_lock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
2369
conn->conn_state = TARG_CONN_STATE_IN_LOGOUT;
drivers/target/iscsi/iscsi_target.c
2371
atomic_set(&conn->conn_logout_remove, 1);
drivers/target/iscsi/iscsi_target.c
2372
conn->conn_logout_reason = ISCSI_LOGOUT_REASON_CLOSE_CONNECTION;
drivers/target/iscsi/iscsi_target.c
2373
iscsit_inc_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
2375
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
2389
iscsit_add_cmd_to_response_queue(cmd, conn,
drivers/target/iscsi/iscsi_target.c
2397
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
2402
int iscsit_logout_removeconnforrecovery(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2404
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
2407
" CID: %hu on CID: %hu.\n", cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2413
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
2417
if (conn->cid == cmd->logout_cid) {
drivers/target/iscsi/iscsi_target.c
2420
cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2422
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
2426
iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state);
drivers/target/iscsi/iscsi_target.c
2432
iscsit_handle_logout_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
drivers/target/iscsi/iscsi_target.c
2438
struct iscsi_tiqn *tiqn = iscsit_snmp_get_tiqn(conn);
drivers/target/iscsi/iscsi_target.c
2455
hdr->cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2457
if (conn->conn_state != TARG_CONN_STATE_LOGGED_IN) {
drivers/target/iscsi/iscsi_target.c
2467
conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt;
drivers/target/iscsi/iscsi_target.c
2481
be16_to_cpu(hdr->cid) == conn->cid))
drivers/target/iscsi/iscsi_target.c
2484
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
2485
list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
2486
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
2489
iscsit_ack_from_expstatsn(conn, be32_to_cpu(hdr->exp_statsn));
drivers/target/iscsi/iscsi_target.c
2501
cmdsn_ret = iscsit_sequence_cmd(conn, cmd, buf, hdr->cmdsn);
drivers/target/iscsi/iscsi_target.c
2513
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
2524
hdr->begrun, hdr->runlength, conn->cid);
drivers/target/iscsi/iscsi_target.c
2526
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/iscsi_target.c
2529
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
2538
return iscsit_handle_recovery_datain_or_r2t(conn, buf,
drivers/target/iscsi/iscsi_target.c
2544
return iscsit_handle_status_snack(conn, hdr->itt,
drivers/target/iscsi/iscsi_target.c
2548
return iscsit_handle_data_ack(conn, be32_to_cpu(hdr->ttt),
drivers/target/iscsi/iscsi_target.c
2554
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
2559
return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
2567
static void iscsit_rx_thread_wait_for_tcp(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2569
if ((conn->sock->sk->sk_shutdown & SEND_SHUTDOWN) ||
drivers/target/iscsi/iscsi_target.c
2570
(conn->sock->sk->sk_shutdown & RCV_SHUTDOWN)) {
drivers/target/iscsi/iscsi_target.c
2572
&conn->rx_half_close_comp,
drivers/target/iscsi/iscsi_target.c
2584
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target.c
2622
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
2629
rx_got = rx_data(conn, &cmd->iov_data[0], iov_count, rx_size);
drivers/target/iscsi/iscsi_target.c
2634
iscsit_rx_thread_wait_for_tcp(conn);
drivers/target/iscsi/iscsi_target.c
2638
if (conn->conn_ops->DataDigest) {
drivers/target/iscsi/iscsi_target.c
2648
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/iscsi_target.c
2683
static void iscsit_build_conn_drop_async_message(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2689
lockdep_assert_held(&conn->sess->conn_lock);
drivers/target/iscsi/iscsi_target.c
2695
list_for_each_entry(conn_p, &conn->sess->sess_conn_list, conn_list) {
drivers/target/iscsi/iscsi_target.c
2712
cmd->logout_cid = conn->cid;
drivers/target/iscsi/iscsi_target.c
2726
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2738
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
2740
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
2741
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
2744
hdr->param2 = cpu_to_be16(conn->sess->sess_ops->DefaultTime2Wait);
drivers/target/iscsi/iscsi_target.c
2745
hdr->param3 = cpu_to_be16(conn->sess->sess_ops->DefaultTime2Retain);
drivers/target/iscsi/iscsi_target.c
2749
cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2751
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL, NULL, 0);
drivers/target/iscsi/iscsi_target.c
2754
static void iscsit_tx_thread_wait_for_tcp(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2756
if ((conn->sock->sk->sk_shutdown & SEND_SHUTDOWN) ||
drivers/target/iscsi/iscsi_target.c
2757
(conn->sock->sk->sk_shutdown & RCV_SHUTDOWN)) {
drivers/target/iscsi/iscsi_target.c
2759
&conn->tx_half_close_comp,
drivers/target/iscsi/iscsi_target.c
2765
iscsit_build_datain_pdu(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
2798
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
2799
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
2806
ntohl(hdr->offset), datain->length, conn->cid);
drivers/target/iscsi/iscsi_target.c
2810
static int iscsit_send_datain(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2836
atomic_long_add(datain.length, &conn->sess->tx_data_octets);
drivers/target/iscsi/iscsi_target.c
2847
iscsit_increment_maxcmdsn(cmd, conn->sess);
drivers/target/iscsi/iscsi_target.c
2848
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
2855
iscsit_build_datain_pdu(cmd, conn, &datain, hdr, set_statsn);
drivers/target/iscsi/iscsi_target.c
2857
ret = conn->conn_transport->iscsit_xmit_pdu(conn, cmd, dr, &datain, 0);
drivers/target/iscsi/iscsi_target.c
2871
iscsit_build_logout_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
2876
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
2904
" successful.\n", cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2923
conn->sess, cmd->logout_cid);
drivers/target/iscsi/iscsi_target.c
2936
cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2949
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
2952
iscsit_increment_maxcmdsn(cmd, conn->sess);
drivers/target/iscsi/iscsi_target.c
2953
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
2954
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
2959
cmd->logout_cid, conn->cid);
drivers/target/iscsi/iscsi_target.c
2966
iscsit_send_logout(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
2970
rc = iscsit_build_logout_rsp(cmd, conn,
drivers/target/iscsi/iscsi_target.c
2975
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL, NULL, 0);
drivers/target/iscsi/iscsi_target.c
2979
iscsit_build_nopin_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
2989
cmd->stat_sn = (nopout_response) ? conn->stat_sn++ :
drivers/target/iscsi/iscsi_target.c
2990
conn->stat_sn;
drivers/target/iscsi/iscsi_target.c
2994
iscsit_increment_maxcmdsn(cmd, conn->sess);
drivers/target/iscsi/iscsi_target.c
2996
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
2997
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
3011
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3017
iscsit_build_nopin_rsp(cmd, conn, hdr, false);
drivers/target/iscsi/iscsi_target.c
3020
" 0x%08x CID: %hu\n", hdr->ttt, cmd->stat_sn, conn->cid);
drivers/target/iscsi/iscsi_target.c
3022
ret = conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL, NULL, 0);
drivers/target/iscsi/iscsi_target.c
3035
iscsit_send_nopin(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3039
iscsit_build_nopin_rsp(cmd, conn, hdr, true);
drivers/target/iscsi/iscsi_target.c
3047
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL,
drivers/target/iscsi/iscsi_target.c
3054
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3071
if (conn->conn_transport->iscsit_get_r2t_ttt)
drivers/target/iscsi/iscsi_target.c
3072
conn->conn_transport->iscsit_get_r2t_ttt(conn, cmd, r2t);
drivers/target/iscsi/iscsi_target.c
3074
r2t->targ_xfer_tag = session_get_next_ttt(conn->sess);
drivers/target/iscsi/iscsi_target.c
3076
hdr->statsn = cpu_to_be32(conn->stat_sn);
drivers/target/iscsi/iscsi_target.c
3077
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
3078
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
3087
r2t->offset, r2t->xfer_len, conn->cid);
drivers/target/iscsi/iscsi_target.c
3093
ret = conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL, NULL, 0);
drivers/target/iscsi/iscsi_target.c
3099
iscsit_start_dataout_timer(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3110
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3123
if (conn->sess->sess_ops->DataSequenceInOrder &&
drivers/target/iscsi/iscsi_target.c
3127
while (cmd->outstanding_r2ts < conn->sess->sess_ops->MaxOutstandingR2T) {
drivers/target/iscsi/iscsi_target.c
3128
if (conn->sess->sess_ops->DataSequenceInOrder) {
drivers/target/iscsi/iscsi_target.c
3133
conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target.c
3140
conn->sess->sess_ops->MaxBurstLength -
drivers/target/iscsi/iscsi_target.c
3144
conn->sess->sess_ops->MaxBurstLength;
drivers/target/iscsi/iscsi_target.c
3149
xfer_len = conn->sess->sess_ops->MaxBurstLength;
drivers/target/iscsi/iscsi_target.c
3193
void iscsit_build_rsp_pdu(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3197
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
3199
atomic_long_inc(&conn->sess->rsp_pdus);
drivers/target/iscsi/iscsi_target.c
3216
iscsit_increment_maxcmdsn(cmd, conn->sess);
drivers/target/iscsi/iscsi_target.c
3217
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
3218
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
3223
cmd->se_cmd.scsi_status, conn->cid);
drivers/target/iscsi/iscsi_target.c
3227
static int iscsit_send_response(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3234
iscsit_build_rsp_pdu(cmd, conn, inc_stat_sn, hdr);
drivers/target/iscsi/iscsi_target.c
3262
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL, data_buf,
drivers/target/iscsi/iscsi_target.c
3284
iscsit_build_task_mgt_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3293
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
3296
iscsit_increment_maxcmdsn(cmd, conn->sess);
drivers/target/iscsi/iscsi_target.c
3297
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
3298
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
3302
cmd->init_task_tag, cmd->stat_sn, hdr->response, conn->cid);
drivers/target/iscsi/iscsi_target.c
3307
iscsit_send_task_mgt_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3311
iscsit_build_task_mgt_rsp(cmd, conn, hdr);
drivers/target/iscsi/iscsi_target.c
3313
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL, NULL, 0);
drivers/target/iscsi/iscsi_target.c
3324
struct iscsit_conn *conn = cmd->conn;
drivers/target/iscsi/iscsi_target.c
3334
buffer_len = min(conn->conn_ops->MaxRecvDataSegmentLength,
drivers/target/iscsi/iscsi_target.c
3379
cmd->conn->sess->sess_ops->InitiatorName))) {
drivers/target/iscsi/iscsi_target.c
3423
sockaddr = &conn->local_sockaddr;
drivers/target/iscsi/iscsi_target.c
3469
iscsit_build_text_rsp(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3488
cmd->targ_xfer_tag = session_get_next_ttt(conn->sess);
drivers/target/iscsi/iscsi_target.c
3495
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
3498
iscsit_increment_maxcmdsn(cmd, conn->sess);
drivers/target/iscsi/iscsi_target.c
3505
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
3506
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
3510
cmd->targ_xfer_tag, cmd->stat_sn, text_length, conn->cid,
drivers/target/iscsi/iscsi_target.c
3520
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3525
text_length = iscsit_build_text_rsp(cmd, conn, hdr,
drivers/target/iscsi/iscsi_target.c
3526
conn->conn_transport->transport_type);
drivers/target/iscsi/iscsi_target.c
3530
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL,
drivers/target/iscsi/iscsi_target.c
3536
iscsit_build_reject(struct iscsit_cmd *cmd, struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3544
cmd->stat_sn = conn->stat_sn++;
drivers/target/iscsi/iscsi_target.c
3546
hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
drivers/target/iscsi/iscsi_target.c
3547
hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn));
drivers/target/iscsi/iscsi_target.c
3554
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3558
iscsit_build_reject(cmd, conn, hdr);
drivers/target/iscsi/iscsi_target.c
3561
" CID: %hu\n", ntohl(hdr->statsn), hdr->reason, conn->cid);
drivers/target/iscsi/iscsi_target.c
3563
return conn->conn_transport->iscsit_xmit_pdu(conn, cmd, NULL,
drivers/target/iscsi/iscsi_target.c
3568
void iscsit_thread_get_cpumask(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3582
ord = conn->bitmap_id % cpumask_weight(cpu_online_mask);
drivers/target/iscsi/iscsi_target.c
3585
cpumask_set_cpu(cpu, conn->conn_cpumask);
drivers/target/iscsi/iscsi_target.c
3593
cpumask_clear(conn->conn_cpumask);
drivers/target/iscsi/iscsi_target.c
3594
ord = conn->bitmap_id % cpumask_weight(conn_allowed_cpumask);
drivers/target/iscsi/iscsi_target.c
3597
cpumask_set_cpu(cpu, conn->conn_cpumask);
drivers/target/iscsi/iscsi_target.c
3608
cpumask_setall(conn->conn_cpumask);
drivers/target/iscsi/iscsi_target.c
3611
static void iscsit_thread_reschedule(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3618
conn->allowed_cpumask)) {
drivers/target/iscsi/iscsi_target.c
3619
iscsit_thread_get_cpumask(conn);
drivers/target/iscsi/iscsi_target.c
3620
conn->conn_tx_reset_cpumask = 1;
drivers/target/iscsi/iscsi_target.c
3621
conn->conn_rx_reset_cpumask = 1;
drivers/target/iscsi/iscsi_target.c
3622
cpumask_copy(conn->allowed_cpumask,
drivers/target/iscsi/iscsi_target.c
3628
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
3640
iscsit_thread_reschedule(conn);
drivers/target/iscsi/iscsi_target.c
3647
if (!conn->conn_tx_reset_cpumask)
drivers/target/iscsi/iscsi_target.c
3650
if (!conn->conn_rx_reset_cpumask)
drivers/target/iscsi/iscsi_target.c
3659
set_cpus_allowed_ptr(p, conn->conn_cpumask);
drivers/target/iscsi/iscsi_target.c
3661
conn->conn_tx_reset_cpumask = 0;
drivers/target/iscsi/iscsi_target.c
3663
conn->conn_rx_reset_cpumask = 0;
drivers/target/iscsi/iscsi_target.c
3668
iscsit_immediate_queue(struct iscsit_conn *conn, struct iscsit_cmd *cmd, int state)
drivers/target/iscsi/iscsi_target.c
3674
ret = iscsit_send_r2t(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3679
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
3681
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
3686
iscsit_mod_nopin_response_timer(conn);
drivers/target/iscsi/iscsi_target.c
3687
ret = iscsit_send_unsolicited_nopin(cmd, conn, 1);
drivers/target/iscsi/iscsi_target.c
3692
ret = iscsit_send_unsolicited_nopin(cmd, conn, 0);
drivers/target/iscsi/iscsi_target.c
3700
conn->cid);
drivers/target/iscsi/iscsi_target.c
3712
iscsit_handle_immediate_queue(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3714
struct iscsit_transport *t = conn->conn_transport;
drivers/target/iscsi/iscsi_target.c
3720
while ((qr = iscsit_get_cmd_from_immediate_queue(conn))) {
drivers/target/iscsi/iscsi_target.c
3721
atomic_set(&conn->check_immediate_queue, 0);
drivers/target/iscsi/iscsi_target.c
3726
ret = t->iscsit_immediate_queue(conn, cmd, state);
drivers/target/iscsi/iscsi_target.c
3735
iscsit_response_queue(struct iscsit_conn *conn, struct iscsit_cmd *cmd, int state)
drivers/target/iscsi/iscsi_target.c
3742
ret = iscsit_send_datain(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3754
if (atomic_read(&conn->check_immediate_queue))
drivers/target/iscsi/iscsi_target.c
3771
ret = iscsit_send_response(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3774
ret = iscsit_send_logout(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3778
cmd, conn);
drivers/target/iscsi/iscsi_target.c
3781
ret = iscsit_send_nopin(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3784
ret = iscsit_send_reject(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3787
ret = iscsit_send_task_mgt_rsp(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3790
ret = iscsit_tmr_post_handler(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3792
iscsit_fall_back_to_erl0(conn->sess);
drivers/target/iscsi/iscsi_target.c
3795
ret = iscsit_send_text_rsp(cmd, conn);
drivers/target/iscsi/iscsi_target.c
3801
state, conn->cid);
drivers/target/iscsi/iscsi_target.c
3809
if (!iscsit_logout_post_handler(cmd, conn))
drivers/target/iscsi/iscsi_target.c
3827
cmd->i_state, conn->cid);
drivers/target/iscsi/iscsi_target.c
3831
if (atomic_read(&conn->check_immediate_queue))
drivers/target/iscsi/iscsi_target.c
3841
static int iscsit_handle_response_queue(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
3843
struct iscsit_transport *t = conn->conn_transport;
drivers/target/iscsi/iscsi_target.c
3849
while ((qr = iscsit_get_cmd_from_response_queue(conn))) {
drivers/target/iscsi/iscsi_target.c
3854
ret = t->iscsit_response_queue(conn, cmd, state);
drivers/target/iscsi/iscsi_target.c
3865
struct iscsit_conn *conn = arg;
drivers/target/iscsi/iscsi_target.c
3879
iscsit_thread_check_cpumask(conn, current, 1);
drivers/target/iscsi/iscsi_target.c
3881
wait_event_interruptible(conn->queues_wq,
drivers/target/iscsi/iscsi_target.c
3882
!iscsit_conn_all_queues_empty(conn));
drivers/target/iscsi/iscsi_target.c
3888
ret = iscsit_handle_immediate_queue(conn);
drivers/target/iscsi/iscsi_target.c
3892
ret = iscsit_handle_response_queue(conn);
drivers/target/iscsi/iscsi_target.c
3909
if (conn->conn_state != TARG_CONN_STATE_IN_LOGIN)
drivers/target/iscsi/iscsi_target.c
3910
iscsit_take_action_for_connection_exit(conn, &conn_freed);
drivers/target/iscsi/iscsi_target.c
3920
static int iscsi_target_rx_opcode(struct iscsit_conn *conn, unsigned char *buf)
drivers/target/iscsi/iscsi_target.c
3928
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
drivers/target/iscsi/iscsi_target.c
3932
ret = iscsit_handle_scsi_cmd(conn, cmd, buf);
drivers/target/iscsi/iscsi_target.c
3935
ret = iscsit_handle_data_out(conn, buf);
drivers/target/iscsi/iscsi_target.c
3940
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
drivers/target/iscsi/iscsi_target.c
3944
ret = iscsit_handle_nop_out(conn, cmd, buf);
drivers/target/iscsi/iscsi_target.c
3947
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
drivers/target/iscsi/iscsi_target.c
3951
ret = iscsit_handle_task_mgt_cmd(conn, cmd, buf);
drivers/target/iscsi/iscsi_target.c
3955
cmd = iscsit_find_cmd_from_itt(conn, hdr->itt);
drivers/target/iscsi/iscsi_target.c
3959
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
drivers/target/iscsi/iscsi_target.c
3964
ret = iscsit_handle_text_cmd(conn, cmd, buf);
drivers/target/iscsi/iscsi_target.c
3967
cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE);
drivers/target/iscsi/iscsi_target.c
3971
ret = iscsit_handle_logout_cmd(conn, cmd, buf);
drivers/target/iscsi/iscsi_target.c
3973
wait_for_completion_timeout(&conn->conn_logout_comp,
drivers/target/iscsi/iscsi_target.c
3977
ret = iscsit_handle_snack(conn, buf);
drivers/target/iscsi/iscsi_target.c
3981
if (!conn->sess->sess_ops->ErrorRecoveryLevel) {
drivers/target/iscsi/iscsi_target.c
3994
return iscsit_add_reject(conn, ISCSI_REASON_BOOKMARK_NO_RESOURCES, buf);
drivers/target/iscsi/iscsi_target.c
3997
static bool iscsi_target_check_conn_state(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4001
spin_lock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4002
ret = (conn->conn_state != TARG_CONN_STATE_LOGGED_IN);
drivers/target/iscsi/iscsi_target.c
4003
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4008
static void iscsit_get_rx_pdu(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4025
iscsit_thread_check_cpumask(conn, current, 0);
drivers/target/iscsi/iscsi_target.c
4032
ret = rx_data(conn, &iov, 1, ISCSI_HDR_LEN);
drivers/target/iscsi/iscsi_target.c
4034
iscsit_rx_thread_wait_for_tcp(conn);
drivers/target/iscsi/iscsi_target.c
4050
ret = rx_data(conn, &iov, 1, iov.iov_len);
drivers/target/iscsi/iscsi_target.c
4052
iscsit_rx_thread_wait_for_tcp(conn);
drivers/target/iscsi/iscsi_target.c
4057
if (conn->conn_ops->HeaderDigest) {
drivers/target/iscsi/iscsi_target.c
4061
ret = rx_data(conn, &iov, 1, ISCSI_CRC_LEN);
drivers/target/iscsi/iscsi_target.c
4063
iscsit_rx_thread_wait_for_tcp(conn);
drivers/target/iscsi/iscsi_target.c
4078
atomic_long_inc(&conn->sess->conn_digest_errors);
drivers/target/iscsi/iscsi_target.c
4085
if (conn->conn_state == TARG_CONN_STATE_IN_LOGOUT)
drivers/target/iscsi/iscsi_target.c
4090
if (conn->sess->sess_ops->SessionType &&
drivers/target/iscsi/iscsi_target.c
4095
iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
drivers/target/iscsi/iscsi_target.c
4100
ret = iscsi_target_rx_opcode(conn, buffer);
drivers/target/iscsi/iscsi_target.c
4111
struct iscsit_conn *conn = arg;
drivers/target/iscsi/iscsi_target.c
4123
rc = wait_for_completion_interruptible(&conn->rx_login_comp);
drivers/target/iscsi/iscsi_target.c
4124
if (rc < 0 || iscsi_target_check_conn_state(conn))
drivers/target/iscsi/iscsi_target.c
4127
if (!conn->conn_transport->iscsit_get_rx_pdu)
drivers/target/iscsi/iscsi_target.c
4130
conn->conn_transport->iscsit_get_rx_pdu(conn);
drivers/target/iscsi/iscsi_target.c
4133
atomic_set(&conn->transport_failed, 1);
drivers/target/iscsi/iscsi_target.c
4134
iscsit_take_action_for_connection_exit(conn, &conn_freed);
drivers/target/iscsi/iscsi_target.c
4146
static void iscsit_release_commands_from_conn(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4150
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
4156
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
4157
list_splice_init(&conn->conn_cmd_list, &tmp_list);
drivers/target/iscsi/iscsi_target.c
4174
&conn->conn_cmd_list);
drivers/target/iscsi/iscsi_target.c
4190
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
4205
if (!conn->conn_transport->iscsit_wait_conn) {
drivers/target/iscsi/iscsi_target.c
4206
target_stop_cmd_counter(conn->cmd_cnt);
drivers/target/iscsi/iscsi_target.c
4207
target_wait_for_cmds(conn->cmd_cnt);
drivers/target/iscsi/iscsi_target.c
4212
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4216
spin_lock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
4217
list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) {
drivers/target/iscsi/iscsi_target.c
4221
spin_unlock_bh(&conn->cmd_lock);
drivers/target/iscsi/iscsi_target.c
4225
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4227
int conn_logout = (conn->conn_state == TARG_CONN_STATE_IN_LOGOUT);
drivers/target/iscsi/iscsi_target.c
4228
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
4231
" %u\n", conn->cid, sess->sid);
drivers/target/iscsi/iscsi_target.c
4243
if (!conn->conn_transport->rdma_shutdown)
drivers/target/iscsi/iscsi_target.c
4244
complete(&conn->conn_logout_comp);
drivers/target/iscsi/iscsi_target.c
4247
if (conn->tx_thread &&
drivers/target/iscsi/iscsi_target.c
4248
cmpxchg(&conn->tx_thread_active, true, false)) {
drivers/target/iscsi/iscsi_target.c
4249
send_sig(SIGINT, conn->tx_thread, 1);
drivers/target/iscsi/iscsi_target.c
4250
kthread_stop(conn->tx_thread);
drivers/target/iscsi/iscsi_target.c
4253
if (conn->rx_thread &&
drivers/target/iscsi/iscsi_target.c
4254
cmpxchg(&conn->rx_thread_active, true, false)) {
drivers/target/iscsi/iscsi_target.c
4255
send_sig(SIGINT, conn->rx_thread, 1);
drivers/target/iscsi/iscsi_target.c
4256
kthread_stop(conn->rx_thread);
drivers/target/iscsi/iscsi_target.c
4261
bitmap_release_region(iscsit_global->ts_bitmap, conn->bitmap_id,
drivers/target/iscsi/iscsi_target.c
4265
iscsit_stop_timers_for_cmds(conn);
drivers/target/iscsi/iscsi_target.c
4266
iscsit_stop_nopin_timer(conn);
drivers/target/iscsi/iscsi_target.c
4267
iscsit_stop_nopin_response_timer(conn);
drivers/target/iscsi/iscsi_target.c
4269
if (conn->conn_transport->iscsit_wait_conn)
drivers/target/iscsi/iscsi_target.c
4270
conn->conn_transport->iscsit_wait_conn(conn);
drivers/target/iscsi/iscsi_target.c
4281
if (atomic_read(&conn->connection_recovery)) {
drivers/target/iscsi/iscsi_target.c
4282
iscsit_discard_unacknowledged_ooo_cmdsns_for_conn(conn);
drivers/target/iscsi/iscsi_target.c
4283
iscsit_prepare_cmds_for_reallegiance(conn);
drivers/target/iscsi/iscsi_target.c
4285
iscsit_clear_ooo_cmdsns_for_conn(conn);
drivers/target/iscsi/iscsi_target.c
4286
iscsit_release_commands_from_conn(conn);
drivers/target/iscsi/iscsi_target.c
4288
iscsit_free_queue_reqs_for_conn(conn);
drivers/target/iscsi/iscsi_target.c
4295
if (atomic_read(&conn->conn_logout_remove)) {
drivers/target/iscsi/iscsi_target.c
4296
if (conn->conn_logout_reason == ISCSI_LOGOUT_REASON_CLOSE_SESSION) {
drivers/target/iscsi/iscsi_target.c
4297
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4300
if (conn->conn_logout_reason == ISCSI_LOGOUT_REASON_CLOSE_CONNECTION)
drivers/target/iscsi/iscsi_target.c
4301
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4303
atomic_set(&conn->conn_logout_remove, 0);
drivers/target/iscsi/iscsi_target.c
4309
list_del(&conn->conn_list);
drivers/target/iscsi/iscsi_target.c
4316
if (atomic_read(&conn->connection_recovery))
drivers/target/iscsi/iscsi_target.c
4317
iscsit_build_conn_drop_async_message(conn);
drivers/target/iscsi/iscsi_target.c
4326
spin_lock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4327
if (atomic_read(&conn->sleep_on_conn_wait_comp)) {
drivers/target/iscsi/iscsi_target.c
4328
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4329
complete(&conn->conn_wait_comp);
drivers/target/iscsi/iscsi_target.c
4330
wait_for_completion(&conn->conn_post_wait_comp);
drivers/target/iscsi/iscsi_target.c
4331
spin_lock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4340
if (atomic_read(&conn->connection_wait_rcfr)) {
drivers/target/iscsi/iscsi_target.c
4341
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4342
complete(&conn->conn_wait_rcfr_comp);
drivers/target/iscsi/iscsi_target.c
4343
wait_for_completion(&conn->conn_post_wait_comp);
drivers/target/iscsi/iscsi_target.c
4344
spin_lock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4346
atomic_set(&conn->connection_reinstatement, 1);
drivers/target/iscsi/iscsi_target.c
4347
spin_unlock_bh(&conn->state_lock);
drivers/target/iscsi/iscsi_target.c
4353
iscsit_check_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4355
if (conn->sock)
drivers/target/iscsi/iscsi_target.c
4356
sock_release(conn->sock);
drivers/target/iscsi/iscsi_target.c
4358
if (conn->conn_transport->iscsit_free_conn)
drivers/target/iscsi/iscsi_target.c
4359
conn->conn_transport->iscsit_free_conn(conn);
drivers/target/iscsi/iscsi_target.c
4362
conn->conn_state = TARG_CONN_STATE_FREE;
drivers/target/iscsi/iscsi_target.c
4363
iscsit_free_conn(conn);
drivers/target/iscsi/iscsi_target.c
4524
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4526
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
4537
if (!conn->conn_transport->rdma_shutdown) {
drivers/target/iscsi/iscsi_target.c
4538
sleep = cmpxchg(&conn->tx_thread_active, true, false);
drivers/target/iscsi/iscsi_target.c
4543
atomic_set(&conn->conn_logout_remove, 0);
drivers/target/iscsi/iscsi_target.c
4544
complete(&conn->conn_logout_comp);
drivers/target/iscsi/iscsi_target.c
4546
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4553
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4557
if (!conn->conn_transport->rdma_shutdown) {
drivers/target/iscsi/iscsi_target.c
4558
sleep = cmpxchg(&conn->tx_thread_active, true, false);
drivers/target/iscsi/iscsi_target.c
4563
atomic_set(&conn->conn_logout_remove, 0);
drivers/target/iscsi/iscsi_target.c
4564
complete(&conn->conn_logout_comp);
drivers/target/iscsi/iscsi_target.c
4566
iscsit_cause_connection_reinstatement(conn, sleep);
drivers/target/iscsi/iscsi_target.c
4567
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4571
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target.c
4575
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target.c
4611
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target.c
4621
iscsit_logout_post_handler_closesession(conn);
drivers/target/iscsi/iscsi_target.c
4626
if (conn->cid == cmd->logout_cid) {
drivers/target/iscsi/iscsi_target.c
4631
iscsit_logout_post_handler_samecid(conn);
drivers/target/iscsi/iscsi_target.c
4637
iscsit_logout_post_handler_diffcid(conn,
drivers/target/iscsi/iscsi_target.c
4673
struct iscsit_conn *conn, *conn_tmp = NULL;
drivers/target/iscsi/iscsi_target.c
4679
list_for_each_entry_safe(conn, conn_tmp, &sess->sess_conn_list,
drivers/target/iscsi/iscsi_target.c
4684
if (list_is_last(&conn->conn_list, &sess->sess_conn_list)) {
drivers/target/iscsi/iscsi_target.c
4690
iscsit_inc_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4693
iscsit_cause_connection_reinstatement(conn, 1);
drivers/target/iscsi/iscsi_target.c
4696
iscsit_dec_conn_usage_count(conn);
drivers/target/iscsi/iscsi_target.c
4702
list_for_each_entry(conn, &sess->sess_conn_list, conn_list)
drivers/target/iscsi/iscsi_target.c
4703
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
132
static void chap_close(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_auth.c
134
kfree(conn->auth_protocol);
drivers/target/iscsi/iscsi_target_auth.c
135
conn->auth_protocol = NULL;
drivers/target/iscsi/iscsi_target_auth.c
139
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_auth.c
155
conn->auth_protocol = kzalloc_obj(struct iscsi_chap);
drivers/target/iscsi/iscsi_target_auth.c
156
if (!conn->auth_protocol)
drivers/target/iscsi/iscsi_target_auth.c
159
chap = conn->auth_protocol;
drivers/target/iscsi/iscsi_target_auth.c
177
chap_close(conn);
drivers/target/iscsi/iscsi_target_auth.c
194
chap->id = conn->tpg->tpg_chap_id++;
drivers/target/iscsi/iscsi_target_auth.c
201
if (chap_gen_challenge(conn, 1, aic_str, aic_len) < 0) {
drivers/target/iscsi/iscsi_target_auth.c
202
chap_close(conn);
drivers/target/iscsi/iscsi_target_auth.c
242
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_auth.c
259
struct iscsi_chap *chap = conn->auth_protocol;
drivers/target/iscsi/iscsi_target_auth.c
39
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_auth.c
46
struct iscsi_chap *chap = conn->auth_protocol;
drivers/target/iscsi/iscsi_target_auth.c
573
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_auth.c
580
struct iscsi_chap *chap = conn->auth_protocol;
drivers/target/iscsi/iscsi_target_auth.c
583
chap = chap_server_open(conn, auth, in_text, out_text, out_len);
drivers/target/iscsi/iscsi_target_auth.c
590
if (chap_server_compute_hash(conn, auth, in_text, out_text,
drivers/target/iscsi/iscsi_target_auth.c
592
chap_close(conn);
drivers/target/iscsi/iscsi_target_auth.c
599
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
1001
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1006
if (!iscsi_check_negotiated_keys(conn->param_list))
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
1022
static int iscsi_target_do_login(struct iscsit_conn *conn, struct iscsi_login *login)
drivers/target/iscsi/iscsi_target_nego.c
1034
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1042
if (iscsi_target_handle_csg_zero(conn, login) < 0)
drivers/target/iscsi/iscsi_target_nego.c
1047
if (iscsi_target_handle_csg_one(conn, login) < 0)
drivers/target/iscsi/iscsi_target_nego.c
1056
if (iscsi_target_sk_check_close(conn))
drivers/target/iscsi/iscsi_target_nego.c
1059
login->tsih = conn->sess->tsih;
drivers/target/iscsi/iscsi_target_nego.c
1061
iscsi_target_restore_sock_callbacks(conn);
drivers/target/iscsi/iscsi_target_nego.c
1062
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
1075
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
1108
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_nego.c
1113
struct iscsit_session *sess = conn->sess;
drivers/target/iscsi/iscsi_target_nego.c
1121
INIT_DELAYED_WORK(&conn->login_work, iscsi_target_do_login_rx);
drivers/target/iscsi/iscsi_target_nego.c
1122
iscsi_target_set_sock_callbacks(conn);
drivers/target/iscsi/iscsi_target_nego.c
1125
conn->tpg = NULL;
drivers/target/iscsi/iscsi_target_nego.c
1164
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1182
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1202
conn->tpg = iscsit_global->discovery_tpg;
drivers/target/iscsi/iscsi_target_nego.c
1203
if (iscsit_access_np(np, conn->tpg) < 0) {
drivers/target/iscsi/iscsi_target_nego.c
1204
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1206
conn->tpg = NULL;
drivers/target/iscsi/iscsi_target_nego.c
1219
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1232
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1242
conn->tpg = iscsit_get_tpg_from_np(tiqn, np, &tpg_np);
drivers/target/iscsi/iscsi_target_nego.c
1243
if (!conn->tpg) {
drivers/target/iscsi/iscsi_target_nego.c
1247
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1252
conn->tpg_np = tpg_np;
drivers/target/iscsi/iscsi_target_nego.c
1253
pr_debug("Located Portal Group Object: %hu\n", conn->tpg->tpgt);
drivers/target/iscsi/iscsi_target_nego.c
1259
if (iscsit_access_np(np, conn->tpg) < 0) {
drivers/target/iscsi/iscsi_target_nego.c
1262
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1264
conn->tpg = NULL;
drivers/target/iscsi/iscsi_target_nego.c
127
struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_nego.c
1288
&conn->tpg->tpg_se_tpg, i_buf);
drivers/target/iscsi/iscsi_target_nego.c
1292
i_buf, conn->tpg->tpgt);
drivers/target/iscsi/iscsi_target_nego.c
1293
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1311
tag_size = sizeof(struct iscsit_cmd) + conn->conn_transport->priv_size;
drivers/target/iscsi/iscsi_target_nego.c
1315
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
drivers/target/iscsi/iscsi_target_nego.c
1326
struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_nego.c
1330
if (conn->sock) {
drivers/target/iscsi/iscsi_target_nego.c
1331
struct sock *sk = conn->sock->sk;
drivers/target/iscsi/iscsi_target_nego.c
1334
set_bit(LOGIN_FLAGS_READY, &conn->login_flags);
drivers/target/iscsi/iscsi_target_nego.c
1335
set_bit(LOGIN_FLAGS_INITIAL_PDU, &conn->login_flags);
drivers/target/iscsi/iscsi_target_nego.c
1347
ret = iscsi_target_do_login(conn, login);
drivers/target/iscsi/iscsi_target_nego.c
1349
spin_lock(&conn->login_worker_lock);
drivers/target/iscsi/iscsi_target_nego.c
1351
if (iscsi_target_sk_check_and_clear(conn, LOGIN_FLAGS_INITIAL_PDU))
drivers/target/iscsi/iscsi_target_nego.c
1353
else if (!test_bit(LOGIN_FLAGS_WORKER_RUNNING, &conn->login_flags)) {
drivers/target/iscsi/iscsi_target_nego.c
1354
if (iscsit_set_login_timer_kworker(conn, NULL) < 0) {
drivers/target/iscsi/iscsi_target_nego.c
1359
schedule_delayed_work(&conn->login_work, 0);
drivers/target/iscsi/iscsi_target_nego.c
136
auth = iscsi_get_node_auth(conn);
drivers/target/iscsi/iscsi_target_nego.c
1363
spin_unlock(&conn->login_worker_lock);
drivers/target/iscsi/iscsi_target_nego.c
1367
iscsi_target_restore_sock_callbacks(conn);
drivers/target/iscsi/iscsi_target_nego.c
1368
iscsi_remove_failed_auth_entry(conn);
drivers/target/iscsi/iscsi_target_nego.c
1371
iscsit_stop_login_timer(conn);
drivers/target/iscsi/iscsi_target_nego.c
1372
cancel_delayed_work_sync(&conn->login_work);
drivers/target/iscsi/iscsi_target_nego.c
1373
iscsi_target_nego_release(conn);
drivers/target/iscsi/iscsi_target_nego.c
1379
void iscsi_target_nego_release(struct iscsit_conn *conn)
drivers/target/iscsi/iscsi_target_nego.c
1381
struct iscsi_login *login = conn->conn_login;
drivers/target/iscsi/iscsi_target_nego.c
1390
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
902
conn->param_list,
drivers/target/iscsi/iscsi_target_nego.c
903
conn->tpg->tpg_attrib.login_keys_workaround);
drivers/target/iscsi/iscsi_target_nego.c
907
if (!iscsi_check_negotiated_keys(conn->param_list)) {
drivers/target/iscsi/iscsi_target_nego.c
908
bool auth_required = iscsi_conn_auth_required(conn);
drivers/target/iscsi/iscsi_target_nego.c
915
iscsit_tx_login_rsp(conn,
drivers/target/iscsi/iscsi_target_nego.c
939
return iscsi_target_do_authentication(conn, login);
drivers/target/iscsi/iscsi_target_nego.c
942
static bool iscsi_conn_authenticated(struct iscsit_conn *conn,
drivers/target/iscsi/iscsi_target_nego.c
945
if (!iscsi_conn_auth_required(conn))
drivers/target/iscsi/iscsi_target_nego.c
954
static int iscsi_target_handle_csg_one(struct iscsit_conn *conn, struct iscsi_login *login)
drivers/target/iscsi/iscsi_target_nego.c
970
conn);
drivers/target/iscsi/iscsi_target_nego.c
972
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
978
if (iscsi_target_check_first_request(conn, login) < 0)
drivers/target/iscsi/iscsi_target_nego.c
981
if (iscsi_target_check_for_existing_instances(conn, login) < 0)
drivers/target/iscsi/iscsi_target_nego.c
989
conn->param_list,
drivers/target/iscsi/iscsi_target_nego.c
990
conn->tpg->tpg_attrib.login_keys_workaround);
drivers/target/iscsi/iscsi_target_nego.c
992
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
drivers/target/iscsi/iscsi_target_nego.c
997
if (!iscsi_conn_authenticated(conn, login)) {
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/nfsd/nfs4callback.c
1141
static int setup_callback_client(struct nfs4_client *clp, struct nfs4_cb_conn *conn, struct nfsd4_session *ses)
fs/nfsd/nfs4callback.c
1151
.address = (struct sockaddr *) &conn->cb_addr,
fs/nfsd/nfs4callback.c
1152
.addrsize = conn->cb_addrlen,
fs/nfsd/nfs4callback.c
1153
.saddress = (struct sockaddr *) &conn->cb_saddr,
fs/nfsd/nfs4callback.c
1170
args.prognumber = conn->cb_prog;
fs/nfsd/nfs4callback.c
1173
clp->cl_cb_ident = conn->cb_ident;
fs/nfsd/nfs4callback.c
1175
if (!conn->cb_xprt || !ses)
fs/nfsd/nfs4callback.c
1178
args.bc_xprt = conn->cb_xprt;
fs/nfsd/nfs4callback.c
1180
args.protocol = conn->cb_xprt->xpt_class->xcl_ident |
fs/nfsd/nfs4callback.c
1198
clp->cl_cb_conn.cb_xprt = conn->cb_xprt;
fs/nfsd/nfs4callback.c
1273
void nfsd4_change_callback(struct nfs4_client *clp, struct nfs4_cb_conn *conn)
fs/nfsd/nfs4callback.c
1277
memcpy(&clp->cl_cb_conn, conn, sizeof(struct nfs4_cb_conn));
fs/nfsd/nfs4callback.c
1655
struct nfs4_cb_conn conn;
fs/nfsd/nfs4callback.c
1689
memcpy(&conn, &cb->cb_clp->cl_cb_conn, sizeof(struct nfs4_cb_conn));
fs/nfsd/nfs4callback.c
1693
conn.cb_xprt = c->cn_xprt;
fs/nfsd/nfs4callback.c
1698
err = setup_callback_client(clp, &conn, ses);
fs/nfsd/nfs4state.c
2109
struct nfsd4_conn *conn;
fs/nfsd/nfs4state.c
2111
conn = kmalloc_obj(struct nfsd4_conn);
fs/nfsd/nfs4state.c
2112
if (!conn)
fs/nfsd/nfs4state.c
2115
conn->cn_xprt = rqstp->rq_xprt;
fs/nfsd/nfs4state.c
2116
conn->cn_flags = flags;
fs/nfsd/nfs4state.c
2117
INIT_LIST_HEAD(&conn->cn_xpt_user.list);
fs/nfsd/nfs4state.c
2118
return conn;
fs/nfsd/nfs4state.c
2121
static void __nfsd4_hash_conn(struct nfsd4_conn *conn, struct nfsd4_session *ses)
fs/nfsd/nfs4state.c
2123
conn->cn_session = ses;
fs/nfsd/nfs4state.c
2124
list_add(&conn->cn_persession, &ses->se_conns);
fs/nfsd/nfs4state.c
2127
static void nfsd4_hash_conn(struct nfsd4_conn *conn, struct nfsd4_session *ses)
fs/nfsd/nfs4state.c
2132
__nfsd4_hash_conn(conn, ses);
fs/nfsd/nfs4state.c
2136
static int nfsd4_register_conn(struct nfsd4_conn *conn)
fs/nfsd/nfs4state.c
2138
conn->cn_xpt_user.callback = nfsd4_conn_lost;
fs/nfsd/nfs4state.c
2139
return register_xpt_user(conn->cn_xprt, &conn->cn_xpt_user);
fs/nfsd/nfs4state.c
2142
static void nfsd4_init_conn(struct svc_rqst *rqstp, struct nfsd4_conn *conn, struct nfsd4_session *ses)
fs/nfsd/nfs4state.c
2146
nfsd4_hash_conn(conn, ses);
fs/nfsd/nfs4state.c
2147
ret = nfsd4_register_conn(conn);
fs/nfsd/nfs4state.c
2150
nfsd4_conn_lost(&conn->cn_xpt_user);
fs/nfsd/nfs4state.c
3450
struct nfs4_cb_conn *conn = &clp->cl_cb_conn;
fs/nfsd/nfs4state.c
3465
conn->cb_addrlen = rpc_uaddr2sockaddr(clp->net, se->se_callback_addr_val,
fs/nfsd/nfs4state.c
3467
(struct sockaddr *)&conn->cb_addr,
fs/nfsd/nfs4state.c
3468
sizeof(conn->cb_addr));
fs/nfsd/nfs4state.c
3470
if (!conn->cb_addrlen || conn->cb_addr.ss_family != expected_family)
fs/nfsd/nfs4state.c
3473
if (conn->cb_addr.ss_family == AF_INET6)
fs/nfsd/nfs4state.c
3474
((struct sockaddr_in6 *)&conn->cb_addr)->sin6_scope_id = scopeid;
fs/nfsd/nfs4state.c
3476
conn->cb_prog = se->se_callback_prog;
fs/nfsd/nfs4state.c
3477
conn->cb_ident = se->se_callback_ident;
fs/nfsd/nfs4state.c
3478
memcpy(&conn->cb_saddr, &rqstp->rq_daddr, rqstp->rq_daddrlen);
fs/nfsd/nfs4state.c
3479
trace_nfsd_cb_args(clp, conn);
fs/nfsd/nfs4state.c
3482
conn->cb_addr.ss_family = AF_UNSPEC;
fs/nfsd/nfs4state.c
3483
conn->cb_addrlen = 0;
fs/nfsd/nfs4state.c
3972
struct nfsd4_conn *conn;
fs/nfsd/nfs4state.c
3991
conn = alloc_conn_from_crses(rqstp, cr_ses);
fs/nfsd/nfs4state.c
3992
if (!conn)
fs/nfsd/nfs4state.c
4076
nfsd4_init_conn(rqstp, conn, new);
fs/nfsd/nfs4state.c
4096
free_conn(conn);
fs/nfsd/nfs4state.c
4152
struct nfsd4_session *session, u32 req, struct nfsd4_conn **conn)
fs/nfsd/nfs4state.c
4175
if (status == nfs_ok && conn)
fs/nfsd/nfs4state.c
4176
*conn = c;
fs/nfsd/nfs4state.c
4186
struct nfsd4_conn *conn;
fs/nfsd/nfs4state.c
4202
bcts->dir, &conn);
fs/nfsd/nfs4state.c
4206
conn->cn_flags |= NFS4_CDFC4_BACK;
fs/nfsd/nfs4state.c
4215
conn = alloc_conn(rqstp, bcts->dir);
fs/nfsd/nfs4state.c
4217
if (!conn)
fs/nfsd/nfs4state.c
4219
nfsd4_init_conn(rqstp, conn, session);
fs/nfsd/nfs4state.c
4392
struct nfsd4_conn *conn;
fs/nfsd/nfs4state.c
4405
conn = alloc_conn(rqstp, NFS4_CDFC4_FORE);
fs/nfsd/nfs4state.c
4406
if (!conn)
fs/nfsd/nfs4state.c
4454
status = nfsd4_sequence_check_conn(conn, session);
fs/nfsd/nfs4state.c
4455
conn = NULL;
fs/nfsd/nfs4state.c
4533
if (conn)
fs/nfsd/nfs4state.c
4534
free_conn(conn);
fs/nfsd/trace.h
1525
const struct nfs4_cb_conn *conn
fs/nfsd/trace.h
1527
TP_ARGS(clp, conn),
fs/nfsd/trace.h
1533
__sockaddr(addr, conn->cb_addrlen)
fs/nfsd/trace.h
1538
__entry->prog = conn->cb_prog;
fs/nfsd/trace.h
1539
__entry->ident = conn->cb_ident;
fs/nfsd/trace.h
1540
__assign_sockaddr(addr, &conn->cb_addr, conn->cb_addrlen);
fs/notify/fanotify/fanotify_user.c
1371
struct fsnotify_mark_connector *conn;
fs/notify/fanotify/fanotify_user.c
1386
conn = READ_ONCE(old->connector);
fs/notify/fanotify/fanotify_user.c
1387
if (!conn)
fs/notify/fanotify/fanotify_user.c
1389
old_sb = fsnotify_connector_sb(conn);
fs/notify/fsnotify.c
381
struct fsnotify_mark_connector *conn;
fs/notify/fsnotify.c
384
conn = srcu_dereference(*connp, &fsnotify_mark_srcu);
fs/notify/fsnotify.c
385
if (conn)
fs/notify/fsnotify.c
386
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
1041
struct fsnotify_mark_connector *conn;
fs/notify/mark.c
1046
conn = fsnotify_grab_connector(connp);
fs/notify/mark.c
1047
if (!conn)
fs/notify/mark.c
1056
hlist_for_each_entry(mark, &conn->list, obj_list) {
fs/notify/mark.c
1058
spin_unlock(&conn->lock);
fs/notify/mark.c
1063
spin_lock(&conn->lock);
fs/notify/mark.c
1070
objp = fsnotify_detach_connector_from_object(conn, &type);
fs/notify/mark.c
1071
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
241
static void *__fsnotify_recalc_mask(struct fsnotify_mark_connector *conn)
fs/notify/mark.c
247
assert_spin_locked(&conn->lock);
fs/notify/mark.c
249
if (!fsnotify_valid_obj_type(conn->type))
fs/notify/mark.c
251
hlist_for_each_entry(mark, &conn->list, obj_list) {
fs/notify/mark.c
255
if (conn->type == FSNOTIFY_OBJ_TYPE_INODE &&
fs/notify/mark.c
263
WRITE_ONCE(*fsnotify_conn_mask_p(conn), new_mask);
fs/notify/mark.c
265
return fsnotify_update_iref(conn, want_iref);
fs/notify/mark.c
269
struct fsnotify_mark_connector *conn)
fs/notify/mark.c
271
if (conn->type != FSNOTIFY_OBJ_TYPE_INODE)
fs/notify/mark.c
274
return fsnotify_inode_watches_children(fsnotify_conn_inode(conn));
fs/notify/mark.c
278
struct fsnotify_mark_connector *conn)
fs/notify/mark.c
280
if (conn->type != FSNOTIFY_OBJ_TYPE_INODE)
fs/notify/mark.c
283
fsnotify_set_children_dentry_flags(fsnotify_conn_inode(conn));
fs/notify/mark.c
292
void fsnotify_recalc_mask(struct fsnotify_mark_connector *conn)
fs/notify/mark.c
296
if (!conn)
fs/notify/mark.c
299
spin_lock(&conn->lock);
fs/notify/mark.c
300
update_children = !fsnotify_conn_watches_children(conn);
fs/notify/mark.c
301
__fsnotify_recalc_mask(conn);
fs/notify/mark.c
302
update_children &= fsnotify_conn_watches_children(conn);
fs/notify/mark.c
303
spin_unlock(&conn->lock);
fs/notify/mark.c
310
fsnotify_conn_set_children_dentry_flags(conn);
fs/notify/mark.c
316
struct fsnotify_mark_connector *conn, *free;
fs/notify/mark.c
319
conn = connector_destroy_list;
fs/notify/mark.c
324
while (conn) {
fs/notify/mark.c
325
free = conn;
fs/notify/mark.c
326
conn = conn->destroy_next;
fs/notify/mark.c
331
static void fsnotify_untrack_connector(struct fsnotify_mark_connector *conn);
fs/notify/mark.c
334
struct fsnotify_mark_connector *conn,
fs/notify/mark.c
337
fsnotify_connp_t *connp = fsnotify_object_connp(conn->obj, conn->type);
fs/notify/mark.c
338
struct super_block *sb = fsnotify_connector_sb(conn);
fs/notify/mark.c
341
*type = conn->type;
fs/notify/mark.c
342
if (conn->type == FSNOTIFY_OBJ_TYPE_DETACHED)
fs/notify/mark.c
345
if (conn->type == FSNOTIFY_OBJ_TYPE_INODE) {
fs/notify/mark.c
346
inode = fsnotify_conn_inode(conn);
fs/notify/mark.c
348
fsnotify_untrack_connector(conn);
fs/notify/mark.c
351
if (!(conn->flags & FSNOTIFY_CONN_FLAG_HAS_IREF))
fs/notify/mark.c
353
} else if (conn->type == FSNOTIFY_OBJ_TYPE_VFSMOUNT) {
fs/notify/mark.c
354
fsnotify_conn_mount(conn)->mnt_fsnotify_mask = 0;
fs/notify/mark.c
355
} else if (conn->type == FSNOTIFY_OBJ_TYPE_SB) {
fs/notify/mark.c
356
fsnotify_conn_sb(conn)->s_fsnotify_mask = 0;
fs/notify/mark.c
357
} else if (conn->type == FSNOTIFY_OBJ_TYPE_MNTNS) {
fs/notify/mark.c
358
fsnotify_conn_mntns(conn)->n_fsnotify_mask = 0;
fs/notify/mark.c
362
conn->obj = NULL;
fs/notify/mark.c
363
conn->type = FSNOTIFY_OBJ_TYPE_DETACHED;
fs/notify/mark.c
365
fsnotify_update_sb_watchers(sb, conn);
fs/notify/mark.c
393
struct fsnotify_mark_connector *conn = READ_ONCE(mark->connector);
fs/notify/mark.c
399
if (!conn) {
fs/notify/mark.c
409
if (!refcount_dec_and_lock(&mark->refcnt, &conn->lock))
fs/notify/mark.c
413
if (hlist_empty(&conn->list)) {
fs/notify/mark.c
414
objp = fsnotify_detach_connector_from_object(conn, &type);
fs/notify/mark.c
417
struct super_block *sb = fsnotify_connector_sb(conn);
fs/notify/mark.c
421
fsnotify_update_sb_watchers(sb, conn);
fs/notify/mark.c
422
objp = __fsnotify_recalc_mask(conn);
fs/notify/mark.c
423
type = conn->type;
fs/notify/mark.c
426
spin_unlock(&conn->lock);
fs/notify/mark.c
432
conn->destroy_next = connector_destroy_list;
fs/notify/mark.c
433
connector_destroy_list = conn;
fs/notify/mark.c
719
static void fsnotify_init_connector(struct fsnotify_mark_connector *conn,
fs/notify/mark.c
722
spin_lock_init(&conn->lock);
fs/notify/mark.c
723
INIT_HLIST_HEAD(&conn->list);
fs/notify/mark.c
724
conn->flags = 0;
fs/notify/mark.c
725
conn->prio = 0;
fs/notify/mark.c
726
conn->type = obj_type;
fs/notify/mark.c
727
conn->obj = obj;
fs/notify/mark.c
749
static void fsnotify_untrack_connector(struct fsnotify_mark_connector *conn)
fs/notify/mark.c
754
if (conn->type != FSNOTIFY_OBJ_TYPE_INODE)
fs/notify/mark.c
757
iconn = container_of(conn, struct fsnotify_inode_mark_connector, common);
fs/notify/mark.c
758
sbinfo = fsnotify_sb_info(fsnotify_conn_inode(conn)->i_sb);
fs/notify/mark.c
767
struct fsnotify_mark_connector *conn;
fs/notify/mark.c
772
conn = fsnotify_alloc_inode_connector(inode);
fs/notify/mark.c
774
conn = kmem_cache_alloc(fsnotify_mark_connector_cachep,
fs/notify/mark.c
776
if (conn)
fs/notify/mark.c
777
fsnotify_init_connector(conn, obj, obj_type);
fs/notify/mark.c
779
if (!conn)
fs/notify/mark.c
786
if (cmpxchg(connp, NULL, conn)) {
fs/notify/mark.c
788
fsnotify_untrack_connector(conn);
fs/notify/mark.c
789
kfree(conn);
fs/notify/mark.c
803
struct fsnotify_mark_connector *conn;
fs/notify/mark.c
807
conn = srcu_dereference(*connp, &fsnotify_mark_srcu);
fs/notify/mark.c
808
if (!conn)
fs/notify/mark.c
810
spin_lock(&conn->lock);
fs/notify/mark.c
811
if (conn->type == FSNOTIFY_OBJ_TYPE_DETACHED) {
fs/notify/mark.c
812
spin_unlock(&conn->lock);
fs/notify/mark.c
818
return conn;
fs/notify/mark.c
832
struct fsnotify_mark_connector *conn;
fs/notify/mark.c
853
conn = fsnotify_grab_connector(connp);
fs/notify/mark.c
854
if (!conn) {
fs/notify/mark.c
863
if (hlist_empty(&conn->list)) {
fs/notify/mark.c
864
hlist_add_head_rcu(&mark->obj_list, &conn->list);
fs/notify/mark.c
869
hlist_for_each_entry(lmark, &conn->list, obj_list) {
fs/notify/mark.c
891
fsnotify_update_sb_watchers(sb, conn);
fs/notify/mark.c
897
WRITE_ONCE(mark->connector, conn);
fs/notify/mark.c
899
spin_unlock(&conn->lock);
fs/notify/mark.c
970
struct fsnotify_mark_connector *conn;
fs/notify/mark.c
976
conn = fsnotify_grab_connector(connp);
fs/notify/mark.c
977
if (!conn)
fs/notify/mark.c
980
hlist_for_each_entry(mark, &conn->list, obj_list) {
fs/notify/mark.c
984
spin_unlock(&conn->lock);
fs/notify/mark.c
988
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
3326
struct ocfs2_cluster_connection *conn = NULL;
fs/ocfs2/dlmglue.c
3352
&conn);
fs/ocfs2/dlmglue.c
3358
status = ocfs2_cluster_this_node(conn, &osb->node_num);
fs/ocfs2/dlmglue.c
3363
ocfs2_cluster_disconnect(conn, 0);
fs/ocfs2/dlmglue.c
3373
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
1002
conn->cc_lockspace = fsdlm;
fs/ocfs2/stack_user.c
1004
rc = ocfs2_live_connection_attach(conn, lc);
fs/ocfs2/stack_user.c
1009
rc = get_protocol_version(conn);
fs/ocfs2/stack_user.c
1013
user_cluster_disconnect(conn);
fs/ocfs2/stack_user.c
1024
if (fs_protocol_compare(&running_proto, &conn->cc_version)) {
fs/ocfs2/stack_user.c
1028
conn->cc_version.pv_major, conn->cc_version.pv_minor,
fs/ocfs2/stack_user.c
1042
static int user_cluster_this_node(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
1046
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
673
static int user_dlm_lock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
684
return dlm_lock(conn->cc_lockspace, mode, &lksb->lksb_fsdlm,
fs/ocfs2/stack_user.c
690
static int user_dlm_unlock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
694
return dlm_unlock(conn->cc_lockspace, lksb->lksb_fsdlm.sb_lkid,
fs/ocfs2/stack_user.c
722
static int user_plock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
737
return dlm_posix_cancel(conn->cc_lockspace, ino, file, fl);
fs/ocfs2/stack_user.c
739
return dlm_posix_get(conn->cc_lockspace, ino, file, fl);
fs/ocfs2/stack_user.c
741
return dlm_posix_unlock(conn->cc_lockspace, ino, file, fl);
fs/ocfs2/stack_user.c
743
return dlm_posix_lock(conn->cc_lockspace, ino, file, cmd, fl);
fs/ocfs2/stack_user.c
795
struct ocfs2_cluster_connection *conn = arg;
fs/ocfs2/stack_user.c
796
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
800
static int sync_unlock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
804
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
806
error = dlm_unlock(conn->cc_lockspace, lksb->sb_lkid, 0, lksb, conn);
fs/ocfs2/stack_user.c
823
static int sync_lock(struct ocfs2_cluster_connection *conn,
fs/ocfs2/stack_user.c
828
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
830
error = dlm_lock(conn->cc_lockspace, mode, lksb, flags,
fs/ocfs2/stack_user.c
832
0, sync_wait_cb, conn, NULL);
fs/ocfs2/stack_user.c
852
static int version_lock(struct ocfs2_cluster_connection *conn, int mode,
fs/ocfs2/stack_user.c
855
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
856
return sync_lock(conn, mode, flags,
fs/ocfs2/stack_user.c
860
static int version_unlock(struct ocfs2_cluster_connection *conn)
fs/ocfs2/stack_user.c
862
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
863
return sync_unlock(conn, &lc->oc_version_lksb, VERSION_LOCK);
fs/ocfs2/stack_user.c
877
static int get_protocol_version(struct ocfs2_cluster_connection *conn)
fs/ocfs2/stack_user.c
880
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
889
ret = version_lock(conn, DLM_LOCK_EX,
fs/ocfs2/stack_user.c
892
conn->cc_version.pv_major = running_proto.pv_major;
fs/ocfs2/stack_user.c
893
conn->cc_version.pv_minor = running_proto.pv_minor;
fs/ocfs2/stack_user.c
895
version_lock(conn, DLM_LOCK_PR, DLM_LKF_CONVERT|DLM_LKF_VALBLK);
fs/ocfs2/stack_user.c
897
ret = version_lock(conn, DLM_LOCK_PR, DLM_LKF_VALBLK);
fs/ocfs2/stack_user.c
908
conn->cc_version.pv_major = pv.pv_major;
fs/ocfs2/stack_user.c
909
conn->cc_version.pv_minor = pv.pv_minor;
fs/ocfs2/stack_user.c
921
struct ocfs2_cluster_connection *conn = arg;
fs/ocfs2/stack_user.c
924
conn->cc_recovery_handler(slot->nodeid, conn->cc_recovery_data);
fs/ocfs2/stack_user.c
932
struct ocfs2_cluster_connection *conn = arg;
fs/ocfs2/stack_user.c
933
struct ocfs2_live_connection *lc = conn->cc_private;
fs/ocfs2/stack_user.c
952
static int user_cluster_disconnect(struct ocfs2_cluster_connection *conn)
fs/ocfs2/stack_user.c
954
version_unlock(conn);
fs/ocfs2/stack_user.c
955
dlm_release_lockspace(conn->cc_lockspace, DLM_RELEASE_NORMAL);
fs/ocfs2/stack_user.c
956
conn->cc_lockspace = NULL;
fs/ocfs2/stack_user.c
957
ocfs2_live_connection_drop(conn->cc_private);
fs/ocfs2/stack_user.c
958
conn->cc_private = NULL;
fs/ocfs2/stack_user.c
962
static int user_cluster_connect(struct ocfs2_cluster_connection *conn)
fs/ocfs2/stack_user.c
968
BUG_ON(conn == NULL);
fs/ocfs2/stack_user.c
977
conn->cc_private = lc;
fs/ocfs2/stack_user.c
980
rc = dlm_new_lockspace(conn->cc_name, conn->cc_cluster_name,
fs/ocfs2/stack_user.c
982
&ocfs2_ls_ops, conn, &ops_rv, &fsdlm);
fs/ocfs2/stack_user.c
989
conn->cc_name, rc);
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
17
const struct smbdirect_socket_parameters *smbd_get_parameters(struct smbd_connection *conn)
fs/smb/client/smbdirect.c
19
struct smbdirect_socket *sc = &conn->socket;
fs/smb/client/smbdirect.c
385
peer_initiator_depth = event->param.conn.responder_resources;
fs/smb/client/smbdirect.c
386
peer_responder_resources = event->param.conn.initiator_depth;
fs/smb/client/smbdirect.c
393
peer_initiator_depth = event->param.conn.initiator_depth;
fs/smb/client/smbdirect.c
394
peer_responder_resources = event->param.conn.responder_resources;
fs/smb/client/smbdirect.c
397
event->param.conn.private_data_len == 8) {
fs/smb/client/smbdirect.c
403
const __be32 *ird_ord_hdr = event->param.conn.private_data;
fs/smb/client/smbdirect.c
414
if ((u32)event->param.conn.initiator_depth != ird32 ||
fs/smb/client/smbdirect.c
415
(u32)event->param.conn.responder_resources != ord32) {
fs/smb/client/smbdirect.h
47
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
139
int ksmbd_auth_ntlmv2(struct ksmbd_conn *conn, struct ksmbd_session *sess,
fs/smb/server/auth.c
153
rc = calc_ntlmv2_hash(conn, sess, ntlmv2_hash, domain_name);
fs/smb/server/auth.c
186
int blob_len, struct ksmbd_conn *conn,
fs/smb/server/auth.c
217
dn_len, true, conn->local_nls);
fs/smb/server/auth.c
224
ret = ksmbd_auth_ntlmv2(conn, sess,
fs/smb/server/auth.c
227
domain_name, conn->ntlmssp.cryptkey);
fs/smb/server/auth.c
231
if (conn->ntlmssp.client_flags & NTLMSSP_NEGOTIATE_KEY_XCH) {
fs/smb/server/auth.c
266
int blob_len, struct ksmbd_conn *conn)
fs/smb/server/auth.c
280
conn->ntlmssp.client_flags = le32_to_cpu(negblob->NegotiateFlags);
fs/smb/server/auth.c
293
struct ksmbd_conn *conn)
fs/smb/server/auth.c
300
int cflags = conn->ntlmssp.client_flags;
fs/smb/server/auth.c
315
if (cflags & NTLMSSP_NEGOTIATE_SEAL && smb3_encryption_negotiated(conn))
fs/smb/server/auth.c
324
if (conn->use_spnego &&
fs/smb/server/auth.c
338
conn->local_nls);
fs/smb/server/auth.c
354
get_random_bytes(conn->ntlmssp.cryptkey, sizeof(__u64));
fs/smb/server/auth.c
355
memcpy(chgblob->Challenge, conn->ntlmssp.cryptkey,
fs/smb/server/auth.c
472
void ksmbd_sign_smb2_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov,
fs/smb/server/auth.c
493
int ksmbd_sign_smb3_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov,
fs/smb/server/auth.c
541
static void generate_key(struct ksmbd_conn *conn, struct ksmbd_session *sess,
fs/smb/server/auth.c
560
(conn->cipher_type == SMB2_ENCRYPTION_AES256_CCM ||
fs/smb/server/auth.c
561
conn->cipher_type == SMB2_ENCRYPTION_AES256_GCM))
fs/smb/server/auth.c
571
struct ksmbd_conn *conn,
fs/smb/server/auth.c
577
chann = lookup_chann_list(sess, conn);
fs/smb/server/auth.c
581
if (conn->dialect >= SMB30_PROT_ID && signing->binding)
fs/smb/server/auth.c
586
generate_key(conn, sess, signing->label, signing->context, key,
fs/smb/server/auth.c
589
if (!(conn->dialect >= SMB30_PROT_ID && signing->binding))
fs/smb/server/auth.c
598
struct ksmbd_conn *conn)
fs/smb/server/auth.c
606
d.binding = conn->binding;
fs/smb/server/auth.c
608
return generate_smb3signingkey(sess, conn, &d);
fs/smb/server/auth.c
612
struct ksmbd_conn *conn)
fs/smb/server/auth.c
618
if (conn->binding) {
fs/smb/server/auth.c
621
preauth_sess = ksmbd_preauth_session_lookup(conn, sess->id);
fs/smb/server/auth.c
629
d.binding = conn->binding;
fs/smb/server/auth.c
631
return generate_smb3signingkey(sess, conn, &d);
fs/smb/server/auth.c
639
static void generate_smb3encryptionkey(struct ksmbd_conn *conn,
fs/smb/server/auth.c
643
generate_key(conn, sess, ptwin->encryption.label,
fs/smb/server/auth.c
647
generate_key(conn, sess, ptwin->decryption.label,
fs/smb/server/auth.c
652
ksmbd_debug(AUTH, "Cipher type %d\n", conn->cipher_type);
fs/smb/server/auth.c
656
void ksmbd_gen_smb30_encryptionkey(struct ksmbd_conn *conn,
fs/smb/server/auth.c
674
generate_smb3encryptionkey(conn, sess, &twin);
fs/smb/server/auth.c
677
void ksmbd_gen_smb311_encryptionkey(struct ksmbd_conn *conn,
fs/smb/server/auth.c
695
generate_smb3encryptionkey(conn, sess, &twin);
fs/smb/server/auth.c
698
int ksmbd_gen_preauth_integrity_hash(struct ksmbd_conn *conn, char *buf,
fs/smb/server/auth.c
706
if (conn->preauth_info->Preauth_HashId !=
fs/smb/server/auth.c
726
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
826
struct ksmbd_conn *conn = work->conn;
fs/smb/server/auth.c
849
if (conn->cipher_type == SMB2_ENCRYPTION_AES128_GCM ||
fs/smb/server/auth.c
850
conn->cipher_type == SMB2_ENCRYPTION_AES256_GCM)
fs/smb/server/auth.c
859
if (conn->cipher_type == SMB2_ENCRYPTION_AES128_GCM ||
fs/smb/server/auth.c
860
conn->cipher_type == SMB2_ENCRYPTION_AES256_GCM)
fs/smb/server/auth.c
865
if (conn->cipher_type == SMB2_ENCRYPTION_AES256_CCM ||
fs/smb/server/auth.c
866
conn->cipher_type == SMB2_ENCRYPTION_AES256_GCM)
fs/smb/server/auth.c
906
if (conn->cipher_type == SMB2_ENCRYPTION_AES128_GCM ||
fs/smb/server/auth.c
907
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
55
void ksmbd_sign_smb2_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov,
fs/smb/server/auth.h
57
int ksmbd_sign_smb3_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov,
fs/smb/server/auth.h
60
struct ksmbd_conn *conn);
fs/smb/server/auth.h
62
struct ksmbd_conn *conn);
fs/smb/server/auth.h
63
void ksmbd_gen_smb30_encryptionkey(struct ksmbd_conn *conn,
fs/smb/server/auth.h
65
void ksmbd_gen_smb311_encryptionkey(struct ksmbd_conn *conn,
fs/smb/server/auth.h
67
int ksmbd_gen_preauth_integrity_hash(struct ksmbd_conn *conn, char *buf,
fs/smb/server/connection.c
100
conn->transport->ops->free_transport(conn->transport);
fs/smb/server/connection.c
101
kfree(conn);
fs/smb/server/connection.c
112
struct ksmbd_conn *conn;
fs/smb/server/connection.c
114
conn = kzalloc_obj(struct ksmbd_conn, KSMBD_DEFAULT_GFP);
fs/smb/server/connection.c
115
if (!conn)
fs/smb/server/connection.c
118
conn->need_neg = true;
fs/smb/server/connection.c
119
ksmbd_conn_set_new(conn);
fs/smb/server/connection.c
120
conn->local_nls = load_nls("utf8");
fs/smb/server/connection.c
121
if (!conn->local_nls)
fs/smb/server/connection.c
122
conn->local_nls = load_nls_default();
fs/smb/server/connection.c
124
conn->um = utf8_load(UNICODE_AGE(12, 1, 0));
fs/smb/server/connection.c
126
conn->um = ERR_PTR(-EOPNOTSUPP);
fs/smb/server/connection.c
127
if (IS_ERR(conn->um))
fs/smb/server/connection.c
128
conn->um = NULL;
fs/smb/server/connection.c
129
atomic_set(&conn->req_running, 0);
fs/smb/server/connection.c
130
atomic_set(&conn->r_count, 0);
fs/smb/server/connection.c
131
atomic_set(&conn->refcnt, 1);
fs/smb/server/connection.c
132
conn->total_credits = 1;
fs/smb/server/connection.c
133
conn->outstanding_credits = 0;
fs/smb/server/connection.c
135
init_waitqueue_head(&conn->req_running_q);
fs/smb/server/connection.c
136
init_waitqueue_head(&conn->r_count_q);
fs/smb/server/connection.c
137
INIT_LIST_HEAD(&conn->requests);
fs/smb/server/connection.c
138
INIT_LIST_HEAD(&conn->async_requests);
fs/smb/server/connection.c
139
spin_lock_init(&conn->request_lock);
fs/smb/server/connection.c
140
spin_lock_init(&conn->credits_lock);
fs/smb/server/connection.c
141
ida_init(&conn->async_ida);
fs/smb/server/connection.c
142
xa_init(&conn->sessions);
fs/smb/server/connection.c
144
spin_lock_init(&conn->llist_lock);
fs/smb/server/connection.c
145
INIT_LIST_HEAD(&conn->lock_list);
fs/smb/server/connection.c
147
init_rwsem(&conn->session_lock);
fs/smb/server/connection.c
149
return conn;
fs/smb/server/connection.c
172
struct ksmbd_conn *conn = work->conn;
fs/smb/server/connection.c
175
if (conn->ops->get_cmd_val(work) != SMB2_CANCEL_HE)
fs/smb/server/connection.c
176
requests_queue = &conn->requests;
fs/smb/server/connection.c
178
atomic_inc(&conn->req_running);
fs/smb/server/connection.c
180
spin_lock(&conn->request_lock);
fs/smb/server/connection.c
182
spin_unlock(&conn->request_lock);
fs/smb/server/connection.c
188
struct ksmbd_conn *conn = work->conn;
fs/smb/server/connection.c
190
atomic_dec(&conn->req_running);
fs/smb/server/connection.c
191
if (waitqueue_active(&conn->req_running_q))
fs/smb/server/connection.c
192
wake_up(&conn->req_running_q);
fs/smb/server/connection.c
198
spin_lock(&conn->request_lock);
fs/smb/server/connection.c
200
spin_unlock(&conn->request_lock);
fs/smb/server/connection.c
204
wake_up_all(&conn->req_running_q);
fs/smb/server/connection.c
207
void ksmbd_conn_lock(struct ksmbd_conn *conn)
fs/smb/server/connection.c
209
mutex_lock(&conn->srv_mutex);
fs/smb/server/connection.c
212
void ksmbd_conn_unlock(struct ksmbd_conn *conn)
fs/smb/server/connection.c
214
mutex_unlock(&conn->srv_mutex);
fs/smb/server/connection.c
219
struct ksmbd_conn *conn;
fs/smb/server/connection.c
223
hash_for_each(conn_list, bkt, conn, hlist) {
fs/smb/server/connection.c
224
if (conn->binding || xa_load(&conn->sessions, sess_id))
fs/smb/server/connection.c
225
WRITE_ONCE(conn->status, status);
fs/smb/server/connection.c
230
void ksmbd_conn_wait_idle(struct ksmbd_conn *conn)
fs/smb/server/connection.c
232
wait_event(conn->req_running_q, atomic_read(&conn->req_running) < 2);
fs/smb/server/connection.c
237
struct ksmbd_conn *conn;
fs/smb/server/connection.c
246
hash_for_each(conn_list, bkt, conn, hlist) {
fs/smb/server/connection.c
247
if (conn->binding || xa_load(&conn->sessions, sess_id)) {
fs/smb/server/connection.c
248
if (conn == curr_conn)
fs/smb/server/connection.c
250
if (atomic_read(&conn->req_running) >= rcount) {
fs/smb/server/connection.c
251
rc = wait_event_timeout(conn->req_running_q,
fs/smb/server/connection.c
252
atomic_read(&conn->req_running) < rcount,
fs/smb/server/connection.c
269
struct ksmbd_conn *conn = work->conn;
fs/smb/server/connection.c
283
ksmbd_conn_lock(conn);
fs/smb/server/connection.c
284
sent = conn->transport->ops->writev(conn->transport, work->iov,
fs/smb/server/connection.c
289
ksmbd_conn_unlock(conn);
fs/smb/server/connection.c
299
int ksmbd_conn_rdma_read(struct ksmbd_conn *conn,
fs/smb/server/connection.c
306
if (conn->transport->ops->rdma_read)
fs/smb/server/connection.c
307
ret = conn->transport->ops->rdma_read(conn->transport,
fs/smb/server/connection.c
31
struct ksmbd_conn *conn;
fs/smb/server/connection.c
313
int ksmbd_conn_rdma_write(struct ksmbd_conn *conn,
fs/smb/server/connection.c
320
if (conn->transport->ops->rdma_write)
fs/smb/server/connection.c
321
ret = conn->transport->ops->rdma_write(conn->transport,
fs/smb/server/connection.c
327
bool ksmbd_conn_alive(struct ksmbd_conn *conn)
fs/smb/server/connection.c
332
if (ksmbd_conn_exiting(conn))
fs/smb/server/connection.c
338
if (atomic_read(&conn->stats.open_files_count) > 0)
fs/smb/server/connection.c
347
time_after(jiffies, conn->last_active + server_conf.deadtime)) {
fs/smb/server/connection.c
369
struct ksmbd_conn *conn = (struct ksmbd_conn *)p;
fs/smb/server/connection.c
370
struct ksmbd_transport *t = conn->transport;
fs/smb/server/connection.c
375
mutex_init(&conn->srv_mutex);
fs/smb/server/connection.c
382
conn->last_active = jiffies;
fs/smb/server/connection.c
384
while (ksmbd_conn_alive(conn)) {
fs/smb/server/connection.c
388
kvfree(conn->request_buf);
fs/smb/server/connection.c
389
conn->request_buf = NULL;
fs/smb/server/connection.c
392
if (atomic_read(&conn->req_running) + 1 > max_req) {
fs/smb/server/connection.c
393
wait_event_interruptible(conn->req_running_q,
fs/smb/server/connection.c
394
atomic_read(&conn->req_running) < max_req);
fs/smb/server/connection.c
40
hash_for_each(conn_list, i, conn, hlist) {
fs/smb/server/connection.c
405
if (ksmbd_conn_good(conn))
fs/smb/server/connection.c
407
SMB3_MAX_MSGSIZE + conn->vals->max_write_size;
fs/smb/server/connection.c
41
jiffies_to_timespec64(jiffies - conn->last_active, &t);
fs/smb/server/connection.c
414
READ_ONCE(conn->status));
fs/smb/server/connection.c
430
conn->request_buf = kvmalloc(size, KSMBD_DEFAULT_GFP);
fs/smb/server/connection.c
431
if (!conn->request_buf)
fs/smb/server/connection.c
434
memcpy(conn->request_buf, hdr_buf, sizeof(hdr_buf));
fs/smb/server/connection.c
440
size = t->ops->read(t, conn->request_buf + 4, pdu_size, 2);
fs/smb/server/connection.c
45
if (!conn->inet_addr)
fs/smb/server/connection.c
452
if (!ksmbd_smb_request(conn))
fs/smb/server/connection.c
455
if (((struct smb2_hdr *)smb_get_msg(conn->request_buf))->ProtocolId ==
fs/smb/server/connection.c
46
seq_printf(m, "%-20pI6c", &conn->inet6_addr);
fs/smb/server/connection.c
466
if (default_conn_ops.process_fn(conn)) {
fs/smb/server/connection.c
473
ksmbd_conn_set_releasing(conn);
fs/smb/server/connection.c
475
ksmbd_debug(CONN, "Wait for all pending requests(%d)\n", atomic_read(&conn->r_count));
fs/smb/server/connection.c
476
wait_event(conn->r_count_q, atomic_read(&conn->r_count) == 0);
fs/smb/server/connection.c
479
utf8_unload(conn->um);
fs/smb/server/connection.c
480
unload_nls(conn->local_nls);
fs/smb/server/connection.c
482
default_conn_ops.terminate_fn(conn);
fs/smb/server/connection.c
49
seq_printf(m, "%-20pI4", &conn->inet_addr);
fs/smb/server/connection.c
494
void ksmbd_conn_r_count_inc(struct ksmbd_conn *conn)
fs/smb/server/connection.c
496
atomic_inc(&conn->r_count);
fs/smb/server/connection.c
499
void ksmbd_conn_r_count_dec(struct ksmbd_conn *conn)
fs/smb/server/connection.c
506
atomic_inc(&conn->refcnt);
fs/smb/server/connection.c
507
if (!atomic_dec_return(&conn->r_count) && waitqueue_active(&conn->r_count_q))
fs/smb/server/connection.c
508
wake_up(&conn->r_count_q);
fs/smb/server/connection.c
51
conn->dialect,
fs/smb/server/connection.c
510
if (atomic_dec_and_test(&conn->refcnt))
fs/smb/server/connection.c
511
kfree(conn);
fs/smb/server/connection.c
52
conn->total_credits,
fs/smb/server/connection.c
53
atomic_read(&conn->stats.open_files_count),
fs/smb/server/connection.c
538
struct ksmbd_conn *conn;
fs/smb/server/connection.c
54
atomic_read(&conn->req_running),
fs/smb/server/connection.c
544
hash_for_each(conn_list, bkt, conn, hlist) {
fs/smb/server/connection.c
545
t = conn->transport;
fs/smb/server/connection.c
546
ksmbd_conn_set_exiting(conn);
fs/smb/server/connection.c
90
void ksmbd_conn_free(struct ksmbd_conn *conn)
fs/smb/server/connection.c
93
hash_del(&conn->hlist);
fs/smb/server/connection.c
96
xa_destroy(&conn->sessions);
fs/smb/server/connection.c
97
kvfree(conn->request_buf);
fs/smb/server/connection.c
98
kfree(conn->preauth_info);
fs/smb/server/connection.c
99
if (atomic_dec_and_test(&conn->refcnt)) {
fs/smb/server/connection.h
125
int (*process_fn)(struct ksmbd_conn *conn);
fs/smb/server/connection.h
126
int (*terminate_fn)(struct ksmbd_conn *conn);
fs/smb/server/connection.h
150
struct ksmbd_conn *conn;
fs/smb/server/connection.h
162
bool ksmbd_conn_alive(struct ksmbd_conn *conn);
fs/smb/server/connection.h
163
void ksmbd_conn_wait_idle(struct ksmbd_conn *conn);
fs/smb/server/connection.h
166
void ksmbd_conn_free(struct ksmbd_conn *conn);
fs/smb/server/connection.h
169
int ksmbd_conn_rdma_read(struct ksmbd_conn *conn,
fs/smb/server/connection.h
173
int ksmbd_conn_rdma_write(struct ksmbd_conn *conn,
fs/smb/server/connection.h
183
void ksmbd_conn_lock(struct ksmbd_conn *conn);
fs/smb/server/connection.h
184
void ksmbd_conn_unlock(struct ksmbd_conn *conn);
fs/smb/server/connection.h
185
void ksmbd_conn_r_count_inc(struct ksmbd_conn *conn);
fs/smb/server/connection.h
186
void ksmbd_conn_r_count_dec(struct ksmbd_conn *conn);
fs/smb/server/connection.h
194
static inline bool ksmbd_conn_good(struct ksmbd_conn *conn)
fs/smb/server/connection.h
196
return READ_ONCE(conn->status) == KSMBD_SESS_GOOD;
fs/smb/server/connection.h
199
static inline bool ksmbd_conn_need_negotiate(struct ksmbd_conn *conn)
fs/smb/server/connection.h
201
return READ_ONCE(conn->status) == KSMBD_SESS_NEED_NEGOTIATE;
fs/smb/server/connection.h
204
static inline bool ksmbd_conn_need_setup(struct ksmbd_conn *conn)
fs/smb/server/connection.h
206
return READ_ONCE(conn->status) == KSMBD_SESS_NEED_SETUP;
fs/smb/server/connection.h
209
static inline bool ksmbd_conn_need_reconnect(struct ksmbd_conn *conn)
fs/smb/server/connection.h
211
return READ_ONCE(conn->status) == KSMBD_SESS_NEED_RECONNECT;
fs/smb/server/connection.h
214
static inline bool ksmbd_conn_exiting(struct ksmbd_conn *conn)
fs/smb/server/connection.h
216
return READ_ONCE(conn->status) == KSMBD_SESS_EXITING;
fs/smb/server/connection.h
219
static inline bool ksmbd_conn_releasing(struct ksmbd_conn *conn)
fs/smb/server/connection.h
221
return READ_ONCE(conn->status) == KSMBD_SESS_RELEASING;
fs/smb/server/connection.h
224
static inline void ksmbd_conn_set_new(struct ksmbd_conn *conn)
fs/smb/server/connection.h
226
WRITE_ONCE(conn->status, KSMBD_SESS_NEW);
fs/smb/server/connection.h
229
static inline void ksmbd_conn_set_good(struct ksmbd_conn *conn)
fs/smb/server/connection.h
231
WRITE_ONCE(conn->status, KSMBD_SESS_GOOD);
fs/smb/server/connection.h
234
static inline void ksmbd_conn_set_need_negotiate(struct ksmbd_conn *conn)
fs/smb/server/connection.h
236
WRITE_ONCE(conn->status, KSMBD_SESS_NEED_NEGOTIATE);
fs/smb/server/connection.h
239
static inline void ksmbd_conn_set_need_setup(struct ksmbd_conn *conn)
fs/smb/server/connection.h
241
WRITE_ONCE(conn->status, KSMBD_SESS_NEED_SETUP);
fs/smb/server/connection.h
244
static inline void ksmbd_conn_set_need_reconnect(struct ksmbd_conn *conn)
fs/smb/server/connection.h
246
WRITE_ONCE(conn->status, KSMBD_SESS_NEED_RECONNECT);
fs/smb/server/connection.h
249
static inline void ksmbd_conn_set_exiting(struct ksmbd_conn *conn)
fs/smb/server/connection.h
251
WRITE_ONCE(conn->status, KSMBD_SESS_EXITING);
fs/smb/server/connection.h
254
static inline void ksmbd_conn_set_releasing(struct ksmbd_conn *conn)
fs/smb/server/connection.h
256
WRITE_ONCE(conn->status, KSMBD_SESS_RELEASING);
fs/smb/server/ksmbd_work.c
60
ksmbd_release_id(&work->conn->async_ida, work->async_id);
fs/smb/server/ksmbd_work.h
30
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
412
static void ksmbd_expire_session(struct ksmbd_conn *conn)
fs/smb/server/mgmt/user_session.c
418
down_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
419
xa_for_each(&conn->sessions, id, sess) {
fs/smb/server/mgmt/user_session.c
424
xa_erase(&conn->sessions, sess->id);
fs/smb/server/mgmt/user_session.c
430
up_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
434
int ksmbd_session_register(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
437
sess->dialect = conn->dialect;
fs/smb/server/mgmt/user_session.c
438
memcpy(sess->ClientGUID, conn->ClientGUID, SMB2_CLIENT_GUID_SIZE);
fs/smb/server/mgmt/user_session.c
439
ksmbd_expire_session(conn);
fs/smb/server/mgmt/user_session.c
440
return xa_err(xa_store(&conn->sessions, sess->id, sess, KSMBD_DEFAULT_GFP));
fs/smb/server/mgmt/user_session.c
443
static int ksmbd_chann_del(struct ksmbd_conn *conn, struct ksmbd_session *sess)
fs/smb/server/mgmt/user_session.c
448
chann = xa_erase(&sess->ksmbd_chann_list, (long)conn);
fs/smb/server/mgmt/user_session.c
457
void ksmbd_sessions_deregister(struct ksmbd_conn *conn)
fs/smb/server/mgmt/user_session.c
463
if (conn->binding) {
fs/smb/server/mgmt/user_session.c
468
if (!ksmbd_chann_del(conn, sess) &&
fs/smb/server/mgmt/user_session.c
471
down_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
472
xa_erase(&conn->sessions, sess->id);
fs/smb/server/mgmt/user_session.c
473
up_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
480
down_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
481
xa_for_each(&conn->sessions, id, sess) {
fs/smb/server/mgmt/user_session.c
486
if (chann->conn != conn)
fs/smb/server/mgmt/user_session.c
487
ksmbd_conn_set_exiting(chann->conn);
fs/smb/server/mgmt/user_session.c
490
ksmbd_chann_del(conn, sess);
fs/smb/server/mgmt/user_session.c
492
xa_erase(&conn->sessions, sess->id);
fs/smb/server/mgmt/user_session.c
498
up_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
502
bool is_ksmbd_session_in_connection(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
507
down_read(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
508
sess = xa_load(&conn->sessions, id);
fs/smb/server/mgmt/user_session.c
510
up_read(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
513
up_read(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
518
struct ksmbd_session *ksmbd_session_lookup(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
523
down_read(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
524
sess = xa_load(&conn->sessions, id);
fs/smb/server/mgmt/user_session.c
529
up_read(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
546
struct ksmbd_session *ksmbd_session_lookup_all(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
551
sess = ksmbd_session_lookup(conn, id);
fs/smb/server/mgmt/user_session.c
552
if (!sess && conn->binding)
fs/smb/server/mgmt/user_session.c
577
struct preauth_session *ksmbd_preauth_session_alloc(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
587
memcpy(sess->Preauth_HashValue, conn->preauth_info->Preauth_HashValue,
fs/smb/server/mgmt/user_session.c
589
list_add(&sess->preauth_entry, &conn->preauth_sess_table);
fs/smb/server/mgmt/user_session.c
594
void destroy_previous_session(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
602
down_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
615
err = ksmbd_conn_wait_idle_sess_id(conn, id);
fs/smb/server/mgmt/user_session.c
626
up_write(&conn->session_lock);
fs/smb/server/mgmt/user_session.c
636
struct preauth_session *ksmbd_preauth_session_lookup(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.c
641
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
100
struct ksmbd_session *ksmbd_session_lookup_all(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
102
void destroy_previous_session(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
104
struct preauth_session *ksmbd_preauth_session_alloc(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
106
struct preauth_session *ksmbd_preauth_session_lookup(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
23
struct ksmbd_conn *conn;
fs/smb/server/mgmt/user_session.h
92
struct ksmbd_session *ksmbd_session_lookup(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
94
bool is_ksmbd_session_in_connection(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
96
int ksmbd_session_register(struct ksmbd_conn *conn,
fs/smb/server/mgmt/user_session.h
98
void ksmbd_sessions_deregister(struct ksmbd_conn *conn);
fs/smb/server/oplock.c
1060
if (!memcmp(lb->client_guid, opinfo->conn->ClientGUID,
fs/smb/server/oplock.c
1108
if (opinfo->conn == NULL || !opinfo->is_lease)
fs/smb/server/oplock.c
1113
!compare_guid_key(opinfo, fp->conn->ClientGUID,
fs/smb/server/oplock.c
1118
if (ksmbd_conn_releasing(opinfo->conn)) {
fs/smb/server/oplock.c
1152
if (opinfo->conn == NULL || !opinfo->is_lease)
fs/smb/server/oplock.c
1159
if (ksmbd_conn_releasing(opinfo->conn)) {
fs/smb/server/oplock.c
135
if (opinfo->conn && atomic_dec_and_test(&opinfo->conn->refcnt))
fs/smb/server/oplock.c
136
kfree(opinfo->conn);
fs/smb/server/oplock.c
1367
struct ksmbd_conn *conn = work->conn;
fs/smb/server/oplock.c
1378
if (brk_op->conn == NULL)
fs/smb/server/oplock.c
1384
if (ksmbd_conn_releasing(brk_op->conn)) {
fs/smb/server/oplock.c
1409
!memcmp(conn->ClientGUID, brk_op->conn->ClientGUID,
fs/smb/server/oplock.c
173
if (opinfo->conn == NULL ||
fs/smb/server/oplock.c
177
if (ksmbd_conn_releasing(opinfo->conn)) {
fs/smb/server/oplock.c
1793
struct oplock_info *lookup_lease_in_table(struct ksmbd_conn *conn,
fs/smb/server/oplock.c
1802
if (!memcmp(lt->client_guid, conn->ClientGUID,
fs/smb/server/oplock.c
1822
ret = compare_guid_key(opinfo, conn->ClientGUID,
fs/smb/server/oplock.c
1840
int smb2_check_durable_oplock(struct ksmbd_conn *conn,
fs/smb/server/oplock.c
1867
if (memcmp(conn->ClientGUID, fp->client_guid,
fs/smb/server/oplock.c
33
struct ksmbd_conn *conn = work->conn;
fs/smb/server/oplock.c
42
opinfo->conn = conn;
fs/smb/server/oplock.c
488
guid2 = opinfo->conn->ClientGUID;
fs/smb/server/oplock.c
524
if (!opinfo->is_lease || !opinfo->conn)
fs/smb/server/oplock.c
53
atomic_inc(&opinfo->conn->refcnt);
fs/smb/server/oplock.c
645
struct ksmbd_conn *conn = work->conn;
fs/smb/server/oplock.c
701
ksmbd_conn_r_count_dec(conn);
fs/smb/server/oplock.c
713
struct ksmbd_conn *conn = opinfo->conn;
fs/smb/server/oplock.c
732
work->conn = conn;
fs/smb/server/oplock.c
735
ksmbd_conn_r_count_inc(conn);
fs/smb/server/oplock.c
758
struct ksmbd_conn *conn = work->conn;
fs/smb/server/oplock.c
805
ksmbd_conn_r_count_dec(conn);
fs/smb/server/oplock.c
817
struct ksmbd_conn *conn = opinfo->conn;
fs/smb/server/oplock.c
841
work->conn = conn;
fs/smb/server/oplock.c
844
ksmbd_conn_r_count_inc(conn);
fs/smb/server/oplock.c
93
memcpy(lb->client_guid, opinfo->conn->ClientGUID,
fs/smb/server/oplock.c
955
void destroy_lease_table(struct ksmbd_conn *conn)
fs/smb/server/oplock.c
967
if (conn && memcmp(lb->client_guid, conn->ClientGUID,
fs/smb/server/oplock.h
117
struct oplock_info *lookup_lease_in_table(struct ksmbd_conn *conn,
fs/smb/server/oplock.h
121
void destroy_lease_table(struct ksmbd_conn *conn);
fs/smb/server/oplock.h
125
int smb2_check_durable_oplock(struct ksmbd_conn *conn,
fs/smb/server/oplock.h
56
struct ksmbd_conn *conn;
fs/smb/server/server.c
109
static int __process_request(struct ksmbd_work *work, struct ksmbd_conn *conn,
fs/smb/server/server.c
120
conn->ops->set_rsp_status(work, STATUS_INVALID_PARAMETER);
fs/smb/server/server.c
124
command = conn->ops->get_cmd_val(work);
fs/smb/server/server.c
128
if (command >= conn->max_cmds) {
fs/smb/server/server.c
129
conn->ops->set_rsp_status(work, STATUS_INVALID_PARAMETER);
fs/smb/server/server.c
133
cmds = &conn->cmds[command];
fs/smb/server/server.c
136
conn->ops->set_rsp_status(work, STATUS_NOT_IMPLEMENTED);
fs/smb/server/server.c
140
if (work->sess && conn->ops->is_sign_req(work, command)) {
fs/smb/server/server.c
141
ret = conn->ops->check_sign_req(work);
fs/smb/server/server.c
143
conn->ops->set_rsp_status(work, STATUS_ACCESS_DENIED);
fs/smb/server/server.c
149
if (conn->ops->inc_reqs)
fs/smb/server/server.c
150
conn->ops->inc_reqs(command);
fs/smb/server/server.c
167
struct ksmbd_conn *conn)
fs/smb/server/server.c
173
if (conn->ops->is_transform_hdr &&
fs/smb/server/server.c
174
conn->ops->is_transform_hdr(work->request_buf)) {
fs/smb/server/server.c
175
rc = conn->ops->decrypt_req(work);
fs/smb/server/server.c
181
if (conn->ops->allocate_rsp_buf(work))
fs/smb/server/server.c
184
rc = conn->ops->init_rsp_hdr(work);
fs/smb/server/server.c
187
conn->ops->set_rsp_status(work, STATUS_INVALID_HANDLE);
fs/smb/server/server.c
192
if (conn->ops->check_user_session) {
fs/smb/server/server.c
193
rc = conn->ops->check_user_session(work);
fs/smb/server/server.c
196
conn->ops->set_rsp_status(work,
fs/smb/server/server.c
199
conn->ops->set_rsp_status(work,
fs/smb/server/server.c
203
rc = conn->ops->get_ksmbd_tcon(work);
fs/smb/server/server.c
206
conn->ops->set_rsp_status(work,
fs/smb/server/server.c
209
conn->ops->set_rsp_status(work,
fs/smb/server/server.c
216
rc = __process_request(work, conn, &command);
fs/smb/server/server.c
224
if (conn->ops->set_rsp_credits) {
fs/smb/server/server.c
225
spin_lock(&conn->credits_lock);
fs/smb/server/server.c
226
rc = conn->ops->set_rsp_credits(work);
fs/smb/server/server.c
227
spin_unlock(&conn->credits_lock);
fs/smb/server/server.c
229
conn->ops->set_rsp_status(work,
fs/smb/server/server.c
239
conn->ops->is_sign_req(work, command)))
fs/smb/server/server.c
240
conn->ops->set_sign_rsp(work);
fs/smb/server/server.c
248
conn->ops->encrypt_resp) {
fs/smb/server/server.c
249
rc = conn->ops->encrypt_resp(work);
fs/smb/server/server.c
251
conn->ops->set_rsp_status(work, STATUS_DATA_ERROR);
fs/smb/server/server.c
268
struct ksmbd_conn *conn = work->conn;
fs/smb/server/server.c
270
atomic64_inc(&conn->stats.request_served);
fs/smb/server/server.c
272
__handle_ksmbd_work(work, conn);
fs/smb/server/server.c
276
ksmbd_conn_r_count_dec(conn);
fs/smb/server/server.c
286
static int queue_ksmbd_work(struct ksmbd_conn *conn)
fs/smb/server/server.c
291
err = ksmbd_init_smb_server(conn);
fs/smb/server/server.c
301
work->conn = conn;
fs/smb/server/server.c
302
work->request_buf = conn->request_buf;
fs/smb/server/server.c
303
conn->request_buf = NULL;
fs/smb/server/server.c
306
ksmbd_conn_r_count_inc(conn);
fs/smb/server/server.c
308
conn->last_active = jiffies;
fs/smb/server/server.c
314
static int ksmbd_server_process_request(struct ksmbd_conn *conn)
fs/smb/server/server.c
316
return queue_ksmbd_work(conn);
fs/smb/server/server.c
319
static int ksmbd_server_terminate_conn(struct ksmbd_conn *conn)
fs/smb/server/server.c
321
ksmbd_sessions_deregister(conn);
fs/smb/server/server.c
322
destroy_lease_table(conn);
fs/smb/server/server.c
97
if (ksmbd_conn_exiting(work->conn) ||
fs/smb/server/server.c
98
ksmbd_conn_need_reconnect(work->conn)) {
fs/smb/server/smb2misc.c
300
static int smb2_validate_credit_charge(struct ksmbd_conn *conn,
fs/smb/server/smb2misc.c
343
} else if (credit_charge > conn->vals->max_credits) {
fs/smb/server/smb2misc.c
348
spin_lock(&conn->credits_lock);
fs/smb/server/smb2misc.c
349
if (credit_charge > conn->total_credits) {
fs/smb/server/smb2misc.c
351
credit_charge, conn->total_credits);
fs/smb/server/smb2misc.c
355
if ((u64)conn->outstanding_credits + credit_charge > conn->total_credits) {
fs/smb/server/smb2misc.c
357
credit_charge, conn->outstanding_credits);
fs/smb/server/smb2misc.c
360
conn->outstanding_credits += credit_charge;
fs/smb/server/smb2misc.c
362
spin_unlock(&conn->credits_lock);
fs/smb/server/smb2misc.c
462
if ((work->conn->vals->req_capabilities & SMB2_GLOBAL_CAP_LARGE_MTU) &&
fs/smb/server/smb2misc.c
463
smb2_validate_credit_charge(work->conn, hdr))
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->signing_negotiated = true;
fs/smb/server/smb2pdu.c
1007
conn->signing_algorithm =
fs/smb/server/smb2pdu.c
1014
static __le32 deassemble_neg_contexts(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
1049
if (conn->preauth_info->Preauth_HashId)
fs/smb/server/smb2pdu.c
1052
status = decode_preauth_ctxt(conn,
fs/smb/server/smb2pdu.c
1060
if (conn->cipher_type)
fs/smb/server/smb2pdu.c
1063
decode_encrypt_ctxt(conn,
fs/smb/server/smb2pdu.c
1069
if (conn->compress_algorithm)
fs/smb/server/smb2pdu.c
1072
decode_compress_ctxt(conn,
fs/smb/server/smb2pdu.c
1080
conn->posix_ext_supported = true;
fs/smb/server/smb2pdu.c
1085
decode_sign_cap_ctxt(conn,
fs/smb/server/smb2pdu.c
1105
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
1113
conn->need_neg = false;
fs/smb/server/smb2pdu.c
1114
if (ksmbd_conn_good(conn)) {
fs/smb/server/smb2pdu.c
1120
ksmbd_conn_lock(conn);
fs/smb/server/smb2pdu.c
1136
if (conn->dialect == SMB311_PROT_ID) {
fs/smb/server/smb2pdu.c
1166
conn->cli_cap = le32_to_cpu(req->Capabilities);
fs/smb/server/smb2pdu.c
1167
switch (conn->dialect) {
fs/smb/server/smb2pdu.c
1169
conn->preauth_info =
fs/smb/server/smb2pdu.c
1172
if (!conn->preauth_info) {
fs/smb/server/smb2pdu.c
1178
status = deassemble_neg_contexts(conn, req,
fs/smb/server/smb2pdu.c
1185
kfree(conn->preauth_info);
fs/smb/server/smb2pdu.c
1186
conn->preauth_info = NULL;
fs/smb/server/smb2pdu.c
1190
rc = init_smb3_11_server(conn);
fs/smb/server/smb2pdu.c
1193
kfree(conn->preauth_info);
fs/smb/server/smb2pdu.c
1194
conn->preauth_info = NULL;
fs/smb/server/smb2pdu.c
1198
ksmbd_gen_preauth_integrity_hash(conn,
fs/smb/server/smb2pdu.c
1200
conn->preauth_info->Preauth_HashValue);
fs/smb/server/smb2pdu.c
1203
neg_ctxt_len = assemble_neg_contexts(conn, rsp);
fs/smb/server/smb2pdu.c
1206
init_smb3_02_server(conn);
fs/smb/server/smb2pdu.c
1209
init_smb3_0_server(conn);
fs/smb/server/smb2pdu.c
1212
init_smb2_1_server(conn);
fs/smb/server/smb2pdu.c
1218
conn->dialect);
fs/smb/server/smb2pdu.c
1223
rsp->Capabilities = cpu_to_le32(conn->vals->req_capabilities);
fs/smb/server/smb2pdu.c
1226
conn->connection_type = conn->dialect;
fs/smb/server/smb2pdu.c
1228
rsp->MaxTransactSize = cpu_to_le32(conn->vals->max_trans_size);
fs/smb/server/smb2pdu.c
1229
rsp->MaxReadSize = cpu_to_le32(conn->vals->max_read_size);
fs/smb/server/smb2pdu.c
1230
rsp->MaxWriteSize = cpu_to_le32(conn->vals->max_write_size);
fs/smb/server/smb2pdu.c
1232
memcpy(conn->ClientGUID, req->ClientGUID,
fs/smb/server/smb2pdu.c
1234
conn->cli_sec_mode = le16_to_cpu(req->SecurityMode);
fs/smb/server/smb2pdu.c
1237
rsp->DialectRevision = cpu_to_le16(conn->dialect);
fs/smb/server/smb2pdu.c
1255
conn->use_spnego = true;
fs/smb/server/smb2pdu.c
1260
conn->sign = true;
fs/smb/server/smb2pdu.c
1264
conn->sign = true;
fs/smb/server/smb2pdu.c
1267
conn->srv_sec_mode = le16_to_cpu(rsp->SecurityMode);
fs/smb/server/smb2pdu.c
1268
ksmbd_conn_set_need_setup(conn);
fs/smb/server/smb2pdu.c
1271
ksmbd_conn_unlock(conn);
fs/smb/server/smb2pdu.c
1285
struct ksmbd_conn *conn)
fs/smb/server/smb2pdu.c
1290
if (!conn->preauth_info)
fs/smb/server/smb2pdu.c
1293
sess->Preauth_HashValue = kmemdup(conn->preauth_info->Preauth_HashValue,
fs/smb/server/smb2pdu.c
1303
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
1307
if (conn->dialect != SMB311_PROT_ID)
fs/smb/server/smb2pdu.c
1310
if (conn->binding) {
fs/smb/server/smb2pdu.c
1313
preauth_sess = ksmbd_preauth_session_lookup(conn, sess->id);
fs/smb/server/smb2pdu.c
1315
preauth_sess = ksmbd_preauth_session_alloc(conn, sess->id);
fs/smb/server/smb2pdu.c
1323
if (alloc_preauth_hash(sess, conn))
fs/smb/server/smb2pdu.c
1328
ksmbd_gen_preauth_integrity_hash(conn, work->request_buf, preauth_hash);
fs/smb/server/smb2pdu.c
1332
static int decode_negotiation_token(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
1336
if (!conn->use_spnego)
fs/smb/server/smb2pdu.c
1339
if (ksmbd_decode_negTokenInit((char *)negblob, sz, conn)) {
fs/smb/server/smb2pdu.c
1340
if (ksmbd_decode_negTokenTarg((char *)negblob, sz, conn)) {
fs/smb/server/smb2pdu.c
1341
conn->auth_mechs |= KSMBD_AUTH_NTLMSSP;
fs/smb/server/smb2pdu.c
1342
conn->preferred_auth_mech = KSMBD_AUTH_NTLMSSP;
fs/smb/server/smb2pdu.c
1343
conn->use_spnego = false;
fs/smb/server/smb2pdu.c
1360
rc = ksmbd_decode_ntlmssp_neg_blob(negblob, negblob_len, work->conn);
fs/smb/server/smb2pdu.c
1368
if (!work->conn->use_spnego) {
fs/smb/server/smb2pdu.c
1369
sz = ksmbd_build_ntlmssp_challenge_blob(chgblob, work->conn);
fs/smb/server/smb2pdu.c
1385
sz = ksmbd_build_ntlmssp_challenge_blob(chgblob, work->conn);
fs/smb/server/smb2pdu.c
1407
static struct authenticate_message *user_authblob(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
1412
if (conn->use_spnego && conn->mechToken)
fs/smb/server/smb2pdu.c
1413
return (struct authenticate_message *)conn->mechToken;
fs/smb/server/smb2pdu.c
1420
static struct ksmbd_user *session_user(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
1428
if (conn->use_spnego && conn->mechToken)
fs/smb/server/smb2pdu.c
1429
secbuf_len = conn->mechTokenLen;
fs/smb/server/smb2pdu.c
1436
authblob = user_authblob(conn, req);
fs/smb/server/smb2pdu.c
1446
conn->local_nls);
fs/smb/server/smb2pdu.c
1462
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
1470
if (conn->use_spnego) {
fs/smb/server/smb2pdu.c
1485
user = session_user(conn, req);
fs/smb/server/smb2pdu.c
1494
destroy_previous_session(conn, user, prev_id);
fs/smb/server/smb2pdu.c
1501
if (conn->binding == false && ksmbd_anonymous_user(user)) {
fs/smb/server/smb2pdu.c
1515
if (conn->binding == false && user_guest(sess->user)) {
fs/smb/server/smb2pdu.c
1520
authblob = user_authblob(conn, req);
fs/smb/server/smb2pdu.c
1521
if (conn->use_spnego && conn->mechToken)
fs/smb/server/smb2pdu.c
1522
sz = conn->mechTokenLen;
fs/smb/server/smb2pdu.c
1525
rc = ksmbd_decode_ntlmssp_auth_blob(authblob, sz, conn, sess);
fs/smb/server/smb2pdu.c
1539
if (conn->binding)
fs/smb/server/smb2pdu.c
1545
(conn->sign || server_conf.enforced_signing)) ||
fs/smb/server/smb2pdu.c
1549
if (smb3_encryption_negotiated(conn) &&
fs/smb/server/smb2pdu.c
1551
conn->ops->generate_encryptionkey(conn, sess);
fs/smb/server/smb2pdu.c
1563
if (conn->dialect >= SMB30_PROT_ID) {
fs/smb/server/smb2pdu.c
1564
chann = lookup_chann_list(sess, conn);
fs/smb/server/smb2pdu.c
1570
chann->conn = conn;
fs/smb/server/smb2pdu.c
1572
old = xa_store(&sess->ksmbd_chann_list, (long)conn, chann,
fs/smb/server/smb2pdu.c
1582
if (conn->ops->generate_signingkey) {
fs/smb/server/smb2pdu.c
1583
rc = conn->ops->generate_signingkey(sess, conn);
fs/smb/server/smb2pdu.c
1590
if (!ksmbd_conn_lookup_dialect(conn)) {
fs/smb/server/smb2pdu.c
1602
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
1628
destroy_previous_session(conn, sess->user, prev_sess_id);
fs/smb/server/smb2pdu.c
1638
if (conn->binding)
fs/smb/server/smb2pdu.c
1644
(conn->sign || server_conf.enforced_signing)) ||
fs/smb/server/smb2pdu.c
1648
if (smb3_encryption_negotiated(conn) &&
fs/smb/server/smb2pdu.c
1650
conn->ops->generate_encryptionkey(conn, sess);
fs/smb/server/smb2pdu.c
1658
if (conn->dialect >= SMB30_PROT_ID) {
fs/smb/server/smb2pdu.c
1659
chann = lookup_chann_list(sess, conn);
fs/smb/server/smb2pdu.c
1665
chann->conn = conn;
fs/smb/server/smb2pdu.c
1667
old = xa_store(&sess->ksmbd_chann_list, (long)conn,
fs/smb/server/smb2pdu.c
1677
if (conn->ops->generate_signingkey) {
fs/smb/server/smb2pdu.c
1678
retval = conn->ops->generate_signingkey(sess, conn);
fs/smb/server/smb2pdu.c
1685
if (!ksmbd_conn_lookup_dialect(conn)) {
fs/smb/server/smb2pdu.c
1702
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
1712
if (!ksmbd_conn_need_setup(conn) && !ksmbd_conn_good(conn)) {
fs/smb/server/smb2pdu.c
1724
ksmbd_conn_lock(conn);
fs/smb/server/smb2pdu.c
1732
rc = ksmbd_session_register(conn, sess);
fs/smb/server/smb2pdu.c
1736
conn->binding = false;
fs/smb/server/smb2pdu.c
1737
} else if (conn->dialect >= SMB30_PROT_ID &&
fs/smb/server/smb2pdu.c
1748
if (conn->dialect != sess->dialect) {
fs/smb/server/smb2pdu.c
1758
if (strncmp(conn->ClientGUID, sess->ClientGUID,
fs/smb/server/smb2pdu.c
1774
if (ksmbd_conn_need_reconnect(conn)) {
fs/smb/server/smb2pdu.c
1781
if (is_ksmbd_session_in_connection(conn, sess_id)) {
fs/smb/server/smb2pdu.c
1791
conn->binding = true;
fs/smb/server/smb2pdu.c
1792
} else if ((conn->dialect < SMB30_PROT_ID ||
fs/smb/server/smb2pdu.c
1799
sess = ksmbd_session_lookup(conn,
fs/smb/server/smb2pdu.c
1811
if (ksmbd_conn_need_reconnect(conn)) {
fs/smb/server/smb2pdu.c
1818
conn->binding = false;
fs/smb/server/smb2pdu.c
1832
if (decode_negotiation_token(conn, negblob, negblob_len) == 0) {
fs/smb/server/smb2pdu.c
1833
if (conn->mechToken) {
fs/smb/server/smb2pdu.c
1834
negblob = (struct negotiate_message *)conn->mechToken;
fs/smb/server/smb2pdu.c
1835
negblob_len = conn->mechTokenLen;
fs/smb/server/smb2pdu.c
1844
if (server_conf.auth_mechs & conn->auth_mechs) {
fs/smb/server/smb2pdu.c
1849
if (conn->preferred_auth_mech &
fs/smb/server/smb2pdu.c
1857
if (!ksmbd_conn_need_reconnect(conn)) {
fs/smb/server/smb2pdu.c
1858
ksmbd_conn_set_good(conn);
fs/smb/server/smb2pdu.c
1861
} else if (conn->preferred_auth_mech == KSMBD_AUTH_NTLMSSP) {
fs/smb/server/smb2pdu.c
1873
if (!ksmbd_conn_need_reconnect(conn)) {
fs/smb/server/smb2pdu.c
1874
ksmbd_conn_set_good(conn);
fs/smb/server/smb2pdu.c
1877
if (conn->binding) {
fs/smb/server/smb2pdu.c
1881
ksmbd_preauth_session_lookup(conn, sess->id);
fs/smb/server/smb2pdu.c
1918
if (conn->use_spnego && conn->mechToken) {
fs/smb/server/smb2pdu.c
1919
kfree(conn->mechToken);
fs/smb/server/smb2pdu.c
1920
conn->mechToken = NULL;
fs/smb/server/smb2pdu.c
1953
ksmbd_conn_set_need_reconnect(conn);
fs/smb/server/smb2pdu.c
1955
ksmbd_conn_set_need_setup(conn);
fs/smb/server/smb2pdu.c
1959
conn->binding = false;
fs/smb/server/smb2pdu.c
1973
ksmbd_conn_unlock(conn);
fs/smb/server/smb2pdu.c
1985
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
2000
conn->local_nls);
fs/smb/server/smb2pdu.c
2007
name = ksmbd_extract_sharename(conn->um, treename);
fs/smb/server/smb2pdu.c
2047
if (conn->posix_ext_supported)
fs/smb/server/smb2pdu.c
2247
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
2258
ksmbd_conn_lock(conn);
fs/smb/server/smb2pdu.c
2259
if (!ksmbd_conn_good(conn)) {
fs/smb/server/smb2pdu.c
2260
ksmbd_conn_unlock(conn);
fs/smb/server/smb2pdu.c
2267
ksmbd_conn_unlock(conn);
fs/smb/server/smb2pdu.c
2270
ksmbd_conn_wait_idle(conn);
fs/smb/server/smb2pdu.c
2279
down_write(&conn->session_lock);
fs/smb/server/smb2pdu.c
2281
up_write(&conn->session_lock);
fs/smb/server/smb2pdu.c
2312
1, work->conn->local_nls);
fs/smb/server/smb2pdu.c
2674
return set_info_sec(work->conn, work->tcon, path, &sd_buf->ntsd,
fs/smb/server/smb2pdu.c
268
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
2719
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
2832
if (!memcmp(conn->ClientGUID, dh_info->fp->client_guid,
fs/smb/server/smb2pdu.c
2840
if (dh_info->fp->conn) {
fs/smb/server/smb2pdu.c
287
WARN_ON(ksmbd_conn_good(conn));
fs/smb/server/smb2pdu.c
2891
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
290
ksmbd_debug(SMB, "conn->dialect 0x%x\n", conn->dialect);
fs/smb/server/smb2pdu.c
291
rsp->DialectRevision = cpu_to_le16(conn->dialect);
fs/smb/server/smb2pdu.c
295
rsp->Capabilities = cpu_to_le32(conn->vals->req_capabilities);
fs/smb/server/smb2pdu.c
2964
work->conn->local_nls);
fs/smb/server/smb2pdu.c
297
rsp->MaxTransactSize = cpu_to_le32(conn->vals->max_trans_size);
fs/smb/server/smb2pdu.c
298
rsp->MaxReadSize = cpu_to_le32(conn->vals->max_read_size);
fs/smb/server/smb2pdu.c
299
rsp->MaxWriteSize = cpu_to_le32(conn->vals->max_write_size);
fs/smb/server/smb2pdu.c
3016
rc = smb2_check_durable_oplock(conn, share, dh_info.fp, lc, name);
fs/smb/server/smb2pdu.c
315
conn->use_spnego = true;
fs/smb/server/smb2pdu.c
317
ksmbd_conn_set_need_negotiate(conn);
fs/smb/server/smb2pdu.c
3241
rc = smb_check_perm_dacl(conn, &path, &daccess,
fs/smb/server/smb2pdu.c
329
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
338
if (conn->total_credits > conn->vals->max_credits) {
fs/smb/server/smb2pdu.c
3390
rc = smb_inherit_dacl(conn, &path, sess->user->uid,
fs/smb/server/smb2pdu.c
340
pr_err("Total credits overflow: %d\n", conn->total_credits);
fs/smb/server/smb2pdu.c
3441
rc = ksmbd_vfs_set_sd_xattr(conn,
fs/smb/server/smb2pdu.c
346
if (credit_charge > conn->total_credits) {
fs/smb/server/smb2pdu.c
348
credit_charge, conn->total_credits);
fs/smb/server/smb2pdu.c
3498
!(conn->vals->req_capabilities & SMB2_GLOBAL_CAP_LEASING))) {
fs/smb/server/smb2pdu.c
352
conn->total_credits -= credit_charge;
fs/smb/server/smb2pdu.c
353
conn->outstanding_credits -= credit_charge;
fs/smb/server/smb2pdu.c
3586
if (conn->is_aapl == false) {
fs/smb/server/smb2pdu.c
3592
conn->is_aapl = true;
fs/smb/server/smb2pdu.c
3613
memcpy(fp->client_guid, conn->ClientGUID, SMB2_CLIENT_GUID_SIZE);
fs/smb/server/smb2pdu.c
366
aux_max = conn->vals->max_credits - conn->total_credits;
fs/smb/server/smb2pdu.c
3674
conn->vals->create_lease_size);
fs/smb/server/smb2pdu.c
3675
iov_len += conn->vals->create_lease_size;
fs/smb/server/smb2pdu.c
3677
next_off = conn->vals->create_lease_size;
fs/smb/server/smb2pdu.c
369
conn->total_credits += credits_granted;
fs/smb/server/smb2pdu.c
3695
conn->vals->create_mxac_size);
fs/smb/server/smb2pdu.c
3696
iov_len += conn->vals->create_mxac_size;
fs/smb/server/smb2pdu.c
3700
next_off = conn->vals->create_mxac_size;
fs/smb/server/smb2pdu.c
3713
conn->vals->create_disk_id_size);
fs/smb/server/smb2pdu.c
3714
iov_len += conn->vals->create_disk_id_size;
fs/smb/server/smb2pdu.c
3718
next_off = conn->vals->create_disk_id_size;
fs/smb/server/smb2pdu.c
3731
conn->vals->create_durable_size);
fs/smb/server/smb2pdu.c
3732
iov_len += conn->vals->create_durable_size;
fs/smb/server/smb2pdu.c
3738
conn->vals->create_durable_v2_size);
fs/smb/server/smb2pdu.c
3739
iov_len += conn->vals->create_durable_v2_size;
fs/smb/server/smb2pdu.c
3745
next_off = conn->vals->create_durable_size;
fs/smb/server/smb2pdu.c
3754
conn->vals->create_posix_size);
fs/smb/server/smb2pdu.c
3755
iov_len += conn->vals->create_posix_size;
fs/smb/server/smb2pdu.c
379
conn->total_credits);
fs/smb/server/smb2pdu.c
3928
static int smb2_populate_readdir_entry(struct ksmbd_conn *conn, int info_level,
fs/smb/server/smb2pdu.c
3939
conn->local_nls,
fs/smb/server/smb2pdu.c
4032
if (conn->is_aapl)
fs/smb/server/smb2pdu.c
4052
if (conn->is_aapl)
fs/smb/server/smb2pdu.c
4195
rc = smb2_populate_readdir_entry(priv->work->conn,
fs/smb/server/smb2pdu.c
4377
if (out_buf_len > work->conn->vals->max_trans_size)
fs/smb/server/smb2pdu.c
4389
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
4441
conn->local_nls);
fs/smb/server/smb2pdu.c
4940
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
5014
conn->local_nls, 0);
fs/smb/server/smb2pdu.c
5028
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
5035
conv_len = ksmbd_extract_shortname(conn,
fs/smb/server/smb2pdu.c
5049
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
5115
conn->local_nls, 0);
fs/smb/server/smb2pdu.c
5133
"::$DATA", 7, conn->local_nls, 0);
fs/smb/server/smb2pdu.c
542
size_t large_sz = small_sz + work->conn->vals->max_trans_size;
fs/smb/server/smb2pdu.c
5494
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
5564
"NTFS", PATH_MAX, conn->local_nls, 0);
fs/smb/server/smb2pdu.c
5589
conn->local_nls, 0);
fs/smb/server/smb2pdu.c
5782
ppntsd_size = ksmbd_vfs_get_sd_xattr(work->conn, idmap,
fs/smb/server/smb2pdu.c
585
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
5952
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
5972
if (check_session_id(conn, sess_id)) {
fs/smb/server/smb2pdu.c
598
if (!ksmbd_conn_good(conn))
fs/smb/server/smb2pdu.c
621
work->sess = ksmbd_session_lookup_all(conn, sess_id);
fs/smb/server/smb2pdu.c
6413
return smb2_rename(work, fp, rename_info, work->conn->local_nls);
fs/smb/server/smb2pdu.c
6545
work->conn->local_nls);
fs/smb/server/smb2pdu.c
6596
return set_info_sec(fp->conn, fp->tcon, &fp->filp->f_path, pntsd,
fs/smb/server/smb2pdu.c
66
static inline bool check_session_id(struct ksmbd_conn *conn, u64 id)
fs/smb/server/smb2pdu.c
665
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
668
id = ksmbd_acquire_async_msg_id(&conn->async_ida);
fs/smb/server/smb2pdu.c
6782
if (work->conn->dialect == SMB30_PROT_ID &&
fs/smb/server/smb2pdu.c
6811
err = ksmbd_conn_rdma_write(work->conn, data_buf, length,
fs/smb/server/smb2pdu.c
6829
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
6838
unsigned int max_read_size = conn->vals->max_read_size;
fs/smb/server/smb2pdu.c
684
spin_lock(&conn->request_lock);
fs/smb/server/smb2pdu.c
685
list_add_tail(&work->async_request_entry, &conn->async_requests);
fs/smb/server/smb2pdu.c
686
spin_unlock(&conn->request_lock);
fs/smb/server/smb2pdu.c
6872
max_read_size = get_smbd_max_read_write_size(work->conn->transport);
fs/smb/server/smb2pdu.c
694
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
696
spin_lock(&conn->request_lock);
fs/smb/server/smb2pdu.c
698
spin_unlock(&conn->request_lock);
fs/smb/server/smb2pdu.c
705
ksmbd_release_id(&conn->async_ida, work->async_id);
fs/smb/server/smb2pdu.c
7082
ret = ksmbd_conn_rdma_read(work->conn, data_buf, length,
fs/smb/server/smb2pdu.c
7116
unsigned int max_write_size = work->conn->vals->max_write_size;
fs/smb/server/smb2pdu.c
7135
max_write_size = get_smbd_max_read_write_size(work->conn->transport);
fs/smb/server/smb2pdu.c
724
in_work->conn = work->conn;
fs/smb/server/smb2pdu.c
7288
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
73
sess = ksmbd_session_lookup_all(conn, id);
fs/smb/server/smb2pdu.c
7301
command_list = &conn->async_requests;
fs/smb/server/smb2pdu.c
7303
spin_lock(&conn->request_lock);
fs/smb/server/smb2pdu.c
7321
spin_unlock(&conn->request_lock);
fs/smb/server/smb2pdu.c
7323
command_list = &conn->requests;
fs/smb/server/smb2pdu.c
7325
spin_lock(&conn->request_lock);
fs/smb/server/smb2pdu.c
7340
spin_unlock(&conn->request_lock);
fs/smb/server/smb2pdu.c
7468
struct ksmbd_conn *conn;
fs/smb/server/smb2pdu.c
7582
hash_for_each(conn_list, bkt, conn, hlist) {
fs/smb/server/smb2pdu.c
7583
spin_lock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
7584
list_for_each_entry_safe(cmp_lock, tmp2, &conn->lock_list, clist) {
fs/smb/server/smb2pdu.c
7597
spin_unlock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
7619
spin_unlock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
7628
spin_unlock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
7639
spin_unlock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
7645
spin_unlock(&conn->llist_lock);
fs/smb/server/smb2pdu.c
7736
spin_lock(&work->conn->llist_lock);
fs/smb/server/smb2pdu.c
7738
&work->conn->lock_list);
fs/smb/server/smb2pdu.c
7741
spin_unlock(&work->conn->llist_lock);
fs/smb/server/smb2pdu.c
7790
spin_lock(&work->conn->llist_lock);
fs/smb/server/smb2pdu.c
7794
spin_unlock(&work->conn->llist_lock);
fs/smb/server/smb2pdu.c
7949
static int fsctl_query_iface_info_ioctl(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
8060
static int fsctl_validate_negotiate_info(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
8074
if (dialect == BAD_PROT_ID || dialect != conn->dialect) {
fs/smb/server/smb2pdu.c
8079
if (strncmp(neg_req->Guid, conn->ClientGUID, SMB2_CLIENT_GUID_SIZE)) {
fs/smb/server/smb2pdu.c
8084
if (le16_to_cpu(neg_req->SecurityMode) != conn->cli_sec_mode) {
fs/smb/server/smb2pdu.c
8089
if (le32_to_cpu(neg_req->Capabilities) != conn->cli_cap) {
fs/smb/server/smb2pdu.c
8094
neg_rsp->Capabilities = cpu_to_le32(conn->vals->req_capabilities);
fs/smb/server/smb2pdu.c
8096
neg_rsp->SecurityMode = cpu_to_le16(conn->srv_sec_mode);
fs/smb/server/smb2pdu.c
8097
neg_rsp->Dialect = cpu_to_le16(conn->dialect);
fs/smb/server/smb2pdu.c
82
struct channel *lookup_chann_list(struct ksmbd_session *sess, struct ksmbd_conn *conn)
fs/smb/server/smb2pdu.c
8251
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
8322
if (conn->dialect < SMB30_PROT_ID) {
fs/smb/server/smb2pdu.c
8338
ret = fsctl_validate_negotiate_info(conn,
fs/smb/server/smb2pdu.c
8350
ret = fsctl_query_iface_info_ioctl(conn, rsp, out_buf_len);
fs/smb/server/smb2pdu.c
842
static unsigned int assemble_neg_contexts(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
853
conn->preauth_info->Preauth_HashId);
fs/smb/server/smb2pdu.c
856
if (conn->cipher_type) {
fs/smb/server/smb2pdu.c
863
conn->cipher_type);
fs/smb/server/smb2pdu.c
869
WARN_ON(conn->compress_algorithm != SMB3_COMPRESS_NONE);
fs/smb/server/smb2pdu.c
87
chann = xa_load(&sess->ksmbd_chann_list, (long)conn);
fs/smb/server/smb2pdu.c
871
if (conn->posix_ext_supported) {
fs/smb/server/smb2pdu.c
8741
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
8755
opinfo = lookup_lease_in_table(conn, req->LeaseKey);
fs/smb/server/smb2pdu.c
881
if (conn->signing_negotiated) {
fs/smb/server/smb2pdu.c
887
conn->signing_algorithm);
fs/smb/server/smb2pdu.c
896
static __le32 decode_preauth_ctxt(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
8976
ksmbd_sign_smb2_pdu(work->conn, work->sess->sess_key, iov, 1,
fs/smb/server/smb2pdu.c
9010
ksmbd_sign_smb2_pdu(work->conn, work->sess->sess_key, iov, n_vec,
fs/smb/server/smb2pdu.c
9023
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
9047
chann = lookup_chann_list(work->sess, conn);
fs/smb/server/smb2pdu.c
9064
if (ksmbd_sign_smb3_pdu(conn, signing_key, iov, 1, signature))
fs/smb/server/smb2pdu.c
9082
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
9092
if (conn->binding == false &&
fs/smb/server/smb2pdu.c
9096
chann = lookup_chann_list(work->sess, work->conn);
fs/smb/server/smb2pdu.c
911
conn->preauth_info->Preauth_HashId = SMB2_PREAUTH_INTEGRITY_SHA512;
fs/smb/server/smb2pdu.c
9116
if (!ksmbd_sign_smb3_pdu(conn, signing_key, iov, n_vec,
fs/smb/server/smb2pdu.c
9128
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
9132
if (conn->dialect != SMB311_PROT_ID)
fs/smb/server/smb2pdu.c
9138
conn->preauth_info)
fs/smb/server/smb2pdu.c
9139
ksmbd_gen_preauth_integrity_hash(conn, work->response_buf,
fs/smb/server/smb2pdu.c
9140
conn->preauth_info->Preauth_HashValue);
fs/smb/server/smb2pdu.c
9145
if (conn->binding) {
fs/smb/server/smb2pdu.c
9148
preauth_sess = ksmbd_preauth_session_lookup(conn, sess->id);
fs/smb/server/smb2pdu.c
915
static void decode_encrypt_ctxt(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
9157
ksmbd_gen_preauth_integrity_hash(conn, work->response_buf,
fs/smb/server/smb2pdu.c
9193
fill_transform_hdr(tr_buf, work->response_buf, work->conn->cipher_type);
fs/smb/server/smb2pdu.c
9231
sess = ksmbd_session_lookup_all(work->conn, le64_to_cpu(tr_hdr->SessionId));
fs/smb/server/smb2pdu.c
9255
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb2pdu.c
9259
if (conn->dialect < SMB30_PROT_ID)
fs/smb/server/smb2pdu.c
927
conn->cipher_type = 0;
fs/smb/server/smb2pdu.c
948
conn->cipher_type = pneg_ctxt->Ciphers[i];
fs/smb/server/smb2pdu.c
960
bool smb3_encryption_negotiated(struct ksmbd_conn *conn)
fs/smb/server/smb2pdu.c
962
if (!conn->ops->generate_encryptionkey)
fs/smb/server/smb2pdu.c
969
return (conn->vals->req_capabilities & SMB2_GLOBAL_CAP_ENCRYPTION) ||
fs/smb/server/smb2pdu.c
970
conn->cipher_type;
fs/smb/server/smb2pdu.c
973
static void decode_compress_ctxt(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
976
conn->compress_algorithm = SMB3_COMPRESS_NONE;
fs/smb/server/smb2pdu.c
979
static void decode_sign_cap_ctxt(struct ksmbd_conn *conn,
fs/smb/server/smb2pdu.c
991
conn->signing_negotiated = false;
fs/smb/server/smb2pdu.h
320
void init_smb2_1_server(struct ksmbd_conn *conn);
fs/smb/server/smb2pdu.h
321
void init_smb3_0_server(struct ksmbd_conn *conn);
fs/smb/server/smb2pdu.h
322
void init_smb3_02_server(struct ksmbd_conn *conn);
fs/smb/server/smb2pdu.h
323
int init_smb3_11_server(struct ksmbd_conn *conn);
fs/smb/server/smb2pdu.h
355
struct ksmbd_conn *conn);
fs/smb/server/smb2pdu.h
362
bool smb3_encryption_negotiated(struct ksmbd_conn *conn);
fs/smb/server/smb_common.c
170
work->conn->outstanding_credits++;
fs/smb/server/smb_common.c
183
bool ksmbd_smb_request(struct ksmbd_conn *conn)
fs/smb/server/smb_common.c
187
if (conn->request_buf[0] != 0)
fs/smb/server/smb_common.c
190
proto = (__le32 *)smb_get_msg(conn->request_buf);
fs/smb/server/smb_common.c
367
unsigned int cmd = work->conn->ops->get_cmd_val(work);
fs/smb/server/smb_common.c
427
static int init_smb1_server(struct ksmbd_conn *conn)
fs/smb/server/smb_common.c
429
conn->vals = &smb1_server_values;
fs/smb/server/smb_common.c
430
conn->ops = &smb1_server_ops;
fs/smb/server/smb_common.c
431
conn->cmds = smb1_server_cmds;
fs/smb/server/smb_common.c
432
conn->max_cmds = ARRAY_SIZE(smb1_server_cmds);
fs/smb/server/smb_common.c
436
int ksmbd_init_smb_server(struct ksmbd_conn *conn)
fs/smb/server/smb_common.c
438
struct smb_hdr *rcv_hdr = (struct smb_hdr *)smb_get_msg(conn->request_buf);
fs/smb/server/smb_common.c
442
if (conn->need_neg == false) {
fs/smb/server/smb_common.c
449
return init_smb1_server(conn);
fs/smb/server/smb_common.c
450
return init_smb3_11_server(conn);
fs/smb/server/smb_common.c
462
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb_common.c
495
rc = fn(conn, info_level, d_info, &ksmbd_kstat);
fs/smb/server/smb_common.c
522
int ksmbd_extract_shortname(struct ksmbd_conn *conn, const char *longname,
fs/smb/server/smb_common.c
586
conn->local_nls, 0);
fs/smb/server/smb_common.c
591
static int __smb2_negotiate(struct ksmbd_conn *conn)
fs/smb/server/smb_common.c
593
return (conn->dialect >= SMB20_PROT_ID &&
fs/smb/server/smb_common.c
594
conn->dialect <= SMB311_PROT_ID);
fs/smb/server/smb_common.c
609
neg_rsp->DialectIndex = cpu_to_le16(work->conn->dialect);
fs/smb/server/smb_common.c
616
struct ksmbd_conn *conn = work->conn;
fs/smb/server/smb_common.c
619
conn->dialect =
fs/smb/server/smb_common.c
621
ksmbd_debug(SMB, "conn->dialect 0x%x\n", conn->dialect);
fs/smb/server/smb_common.c
629
if (__smb2_negotiate(conn)) {
fs/smb/server/smb_common.c
630
init_smb3_11_server(conn);
fs/smb/server/smb_common.h
156
int (*generate_signingkey)(struct ksmbd_session *sess, struct ksmbd_conn *conn);
fs/smb/server/smb_common.h
157
void (*generate_encryptionkey)(struct ksmbd_conn *conn, struct ksmbd_session *sess);
fs/smb/server/smb_common.h
174
bool ksmbd_smb_request(struct ksmbd_conn *conn);
fs/smb/server/smb_common.h
178
int ksmbd_init_smb_server(struct ksmbd_conn *conn);
fs/smb/server/smb_common.h
191
int ksmbd_extract_shortname(struct ksmbd_conn *conn,
fs/smb/server/smbacl.c
1065
int smb_inherit_dacl(struct ksmbd_conn *conn,
fs/smb/server/smbacl.c
1084
pntsd_size = ksmbd_vfs_get_sd_xattr(conn, idmap,
fs/smb/server/smbacl.c
1265
ksmbd_vfs_set_sd_xattr(conn, idmap, path, pntsd, pntsd_size, false);
fs/smb/server/smbacl.c
1289
int smb_check_perm_dacl(struct ksmbd_conn *conn, const struct path *path,
fs/smb/server/smbacl.c
1310
pntsd_size = ksmbd_vfs_get_sd_xattr(conn, idmap,
fs/smb/server/smbacl.c
1455
int set_info_sec(struct ksmbd_conn *conn, struct ksmbd_tree_connect *tcon,
fs/smb/server/smbacl.c
1517
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
2681
peer_initiator_depth = event->param.conn.initiator_depth;
fs/smb/server/transport_rdma.c
2682
peer_responder_resources = event->param.conn.responder_resources;
fs/smb/server/transport_rdma.c
2684
event->param.conn.private_data_len == 8) {
fs/smb/server/transport_rdma.c
2690
const __be32 *ird_ord_hdr = event->param.conn.private_data;
fs/smb/server/transport_rdma.c
2701
if ((u32)event->param.conn.initiator_depth != ird32 ||
fs/smb/server/transport_rdma.c
2702
(u32)event->param.conn.responder_resources != ord32) {
fs/smb/server/transport_rdma.c
2747
KSMBD_TRANS(t)->conn, "ksmbd:r%u",
fs/smb/server/transport_rdma.c
412
struct ksmbd_conn *conn;
fs/smb/server/transport_rdma.c
444
conn = ksmbd_conn_alloc();
fs/smb/server/transport_rdma.c
445
if (!conn)
fs/smb/server/transport_rdma.c
449
hash_add(conn_list, &conn->hlist, 0);
fs/smb/server/transport_rdma.c
452
conn->transport = KSMBD_TRANS(t);
fs/smb/server/transport_rdma.c
453
KSMBD_TRANS(t)->conn = conn;
fs/smb/server/transport_rdma.c
528
ksmbd_conn_free(KSMBD_TRANS(t)->conn);
fs/smb/server/transport_tcp.c
109
ksmbd_conn_free(KSMBD_TRANS(t)->conn);
fs/smb/server/transport_tcp.c
192
KSMBD_TRANS(t)->conn, "ksmbd:%pI6c",
fs/smb/server/transport_tcp.c
193
&KSMBD_TRANS(t)->conn->inet6_addr);
fs/smb/server/transport_tcp.c
196
KSMBD_TRANS(t)->conn, "ksmbd:%pI4",
fs/smb/server/transport_tcp.c
197
&KSMBD_TRANS(t)->conn->inet_addr);
fs/smb/server/transport_tcp.c
200
KSMBD_TRANS(t)->conn, "ksmbd:%pI4",
fs/smb/server/transport_tcp.c
201
&KSMBD_TRANS(t)->conn->inet_addr);
fs/smb/server/transport_tcp.c
221
struct ksmbd_conn *conn;
fs/smb/server/transport_tcp.c
252
hash_for_each_possible(conn_list, conn, hlist, inet_hash) {
fs/smb/server/transport_tcp.c
256
&conn->inet6_addr, 16) == 0)
fs/smb/server/transport_tcp.c
259
conn->inet_addr)
fs/smb/server/transport_tcp.c
263
conn->inet_addr)
fs/smb/server/transport_tcp.c
347
struct ksmbd_conn *conn = KSMBD_TRANS(t)->conn;
fs/smb/server/transport_tcp.c
359
if (!ksmbd_conn_alive(conn)) {
fs/smb/server/transport_tcp.c
371
} 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
1172
work->conn->um);
fs/smb/server/vfs.c
1400
int ksmbd_vfs_set_sd_xattr(struct ksmbd_conn *conn,
fs/smb/server/vfs.c
1467
int ksmbd_vfs_get_sd_xattr(struct ksmbd_conn *conn,
fs/smb/server/vfs.c
357
if (work->conn->connection_type) {
fs/smb/server/vfs.c
474
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
1002
conn = fp->conn;
fs/smb/server/vfs_cache.c
1006
if (op->conn != conn)
fs/smb/server/vfs_cache.c
1008
if (op->conn && atomic_dec_and_test(&op->conn->refcnt))
fs/smb/server/vfs_cache.c
1009
kfree(op->conn);
fs/smb/server/vfs_cache.c
1010
op->conn = NULL;
fs/smb/server/vfs_cache.c
1014
fp->conn = NULL;
fs/smb/server/vfs_cache.c
1031
atomic_sub(num, &work->conn->stats.open_files_count);
fs/smb/server/vfs_cache.c
1040
atomic_sub(num, &work->conn->stats.open_files_count);
fs/smb/server/vfs_cache.c
1094
if (!fp->is_durable || fp->conn || fp->tcon) {
fs/smb/server/vfs_cache.c
1095
pr_err("Invalid durable fd [%p:%p]\n", fp->conn, fp->tcon);
fs/smb/server/vfs_cache.c
1104
fp->conn = work->conn;
fs/smb/server/vfs_cache.c
1110
if (op->conn)
fs/smb/server/vfs_cache.c
1112
op->conn = fp->conn;
fs/smb/server/vfs_cache.c
1113
atomic_inc(&op->conn->refcnt);
fs/smb/server/vfs_cache.c
1120
fp->conn = NULL;
fs/smb/server/vfs_cache.c
466
spin_lock(&fp->conn->llist_lock);
fs/smb/server/vfs_cache.c
468
spin_unlock(&fp->conn->llist_lock);
fs/smb/server/vfs_cache.c
509
atomic_dec(&work->conn->stats.open_files_count);
fs/smb/server/vfs_cache.c
623
if (fp && (fp->conn ||
fs/smb/server/vfs_cache.c
750
fp->conn = work->conn;
fs/smb/server/vfs_cache.c
768
atomic_inc(&work->conn->stats.open_files_count);
fs/smb/server/vfs_cache.c
919
fp->conn)
fs/smb/server/vfs_cache.c
997
struct ksmbd_conn *conn;
fs/smb/server/vfs_cache.h
81
struct ksmbd_conn *conn;
include/drm/drm_connector.h
2489
void drm_connector_attach_tv_margin_properties(struct drm_connector *conn);
include/drm/drm_connector.h
2530
void drm_connector_create_privacy_screen_properties(struct drm_connector *conn);
include/drm/drm_connector.h
2531
void drm_connector_attach_privacy_screen_properties(struct drm_connector *conn);
include/drm/drm_connector.h
2577
struct drm_connector *conn;
include/dt-bindings/usb/pd.h
132
#define VDO_IDH(usbh, usbd, ufp_cable, is_modal, dfp, conn, vid) \
include/dt-bindings/usb/pd.h
134
| (is_modal) << 26 | ((dfp) & 0x7) << 23 | ((conn) & 0x3) << 21 \
include/dt-bindings/usb/pd.h
208
#define VDO_UFP(ver, cap, conn, vcpwr, vcr, vbr, alt, spd) \
include/dt-bindings/usb/pd.h
209
(((ver) & 0x7) << 29 | ((cap) & 0xf) << 24 | ((conn) & 0x3) << 22 \
include/dt-bindings/usb/pd.h
230
#define VDO_DFP(ver, cap, conn, pnum) \
include/dt-bindings/usb/pd.h
231
(((ver) & 0x7) << 29 | ((cap) & 0x7) << 24 | ((conn) & 0x3) << 22 \
include/dt-bindings/usb/pd.h
346
#define VDO_PCABLE(hw, fw, ver, conn, lat, term, vbm, cur, spd) \
include/dt-bindings/usb/pd.h
348
| ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \
include/dt-bindings/usb/pd.h
350
#define VDO_ACABLE1(hw, fw, ver, conn, lat, term, vbm, sbu, sbut, cur, vbt, sopp, spd) \
include/dt-bindings/usb/pd.h
352
| ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \
include/linux/coresight.h
690
int coresight_add_in_conn(struct coresight_connection *conn);
include/linux/drbd.h
251
unsigned conn:5 ; /* 17/32 cstates */
include/linux/drbd.h
271
unsigned conn:5 ; /* 17/32 cstates */
include/linux/fsnotify_backend.h
867
extern __u32 fsnotify_conn_mask(struct fsnotify_mark_connector *conn);
include/linux/fsnotify_backend.h
869
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
2440
void mgmt_connect_failed(struct hci_dev *hdev, struct hci_conn *conn,
include/net/bluetooth/hci_core.h
2463
void mgmt_auth_failed(struct hci_conn *conn, u8 status);
include/net/bluetooth/hci_core.h
2486
void mgmt_smp_complete(struct hci_conn *conn, bool complete);
include/net/bluetooth/hci_core.h
2497
int hci_abort_conn(struct hci_conn *conn, u8 reason);
include/net/bluetooth/hci_core.h
2498
u8 hci_le_conn_update(struct hci_conn *conn, u16 min, u16 max, u16 latency,
include/net/bluetooth/hci_core.h
2500
void hci_le_start_enc(struct hci_conn *conn, __le16 ediv, __le64 rand,
include/net/bluetooth/hci_core.h
783
void (*connect_cfm_cb) (struct hci_conn *conn, u8 status);
include/net/bluetooth/hci_core.h
784
void (*security_cfm_cb) (struct hci_conn *conn, u8 status);
include/net/bluetooth/hci_core.h
785
void (*disconn_cfm_cb) (struct hci_conn *conn, u8 reason);
include/net/bluetooth/hci_core.h
787
void (*cleanup)(struct hci_conn *conn);
include/net/bluetooth/hci_core.h
792
struct hci_conn *conn;
include/net/bluetooth/hci_core.h
798
struct hci_conn *conn;
include/net/bluetooth/hci_core.h
825
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
515
struct l2cap_conn *conn;
include/net/bluetooth/l2cap.h
680
int (*probe) (struct l2cap_conn *conn, struct l2cap_user *user);
include/net/bluetooth/l2cap.h
681
void (*remove) (struct l2cap_conn *conn, struct l2cap_user *user);
include/net/bluetooth/l2cap.h
967
void l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
968
void __l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
970
void l2cap_chan_list(struct l2cap_conn *conn, l2cap_chan_func_t func,
include/net/bluetooth/l2cap.h
975
struct l2cap_conn *l2cap_conn_get(struct l2cap_conn *conn);
include/net/bluetooth/l2cap.h
976
struct l2cap_conn *l2cap_conn_hold_unless_zero(struct l2cap_conn *conn);
include/net/bluetooth/l2cap.h
977
void l2cap_conn_put(struct l2cap_conn *conn);
include/net/bluetooth/l2cap.h
979
int l2cap_register_user(struct l2cap_conn *conn, struct l2cap_user *user);
include/net/bluetooth/l2cap.h
980
void l2cap_unregister_user(struct l2cap_conn *conn, struct l2cap_user *user);
include/net/cfg80211.h
6784
struct cfg80211_conn *conn;
include/net/llc_conn.h
112
int llc_conn_remove_acked_pdus(struct sock *conn, u8 nr, u16 *how_many_unacked);
include/net/smc.h
43
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
1192
TP_PROTO(const struct rxrpc_connection *conn, const struct sk_buff *skb),
include/trace/events/rxrpc.h
1194
TP_ARGS(conn, skb),
include/trace/events/rxrpc.h
1197
__field(unsigned int, conn)
include/trace/events/rxrpc.h
1203
__entry->conn = conn->debug_id;
include/trace/events/rxrpc.h
1209
__entry->conn,
include/trace/events/rxrpc.h
1215
TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t serial,
include/trace/events/rxrpc.h
1218
TP_ARGS(conn, serial, version, nonce),
include/trace/events/rxrpc.h
1221
__field(unsigned int, conn)
include/trace/events/rxrpc.h
1230
__entry->conn = conn->debug_id;
include/trace/events/rxrpc.h
1234
__entry->service_id = conn->service_id;
include/trace/events/rxrpc.h
1235
__entry->security_ix = conn->security_ix;
include/trace/events/rxrpc.h
1239
__entry->conn,
include/trace/events/rxrpc.h
1248
TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t serial,
include/trace/events/rxrpc.h
1251
TP_ARGS(conn, serial, version, nonce, min_level),
include/trace/events/rxrpc.h
1254
__field(unsigned int, conn)
include/trace/events/rxrpc.h
1264
__entry->conn = conn->debug_id;
include/trace/events/rxrpc.h
1269
__entry->service_id = conn->service_id;
include/trace/events/rxrpc.h
1270
__entry->security_ix = conn->security_ix;
include/trace/events/rxrpc.h
1274
__entry->conn,
include/trace/events/rxrpc.h
1284
TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t serial,
include/trace/events/rxrpc.h
1287
TP_ARGS(conn, serial, rsp),
include/trace/events/rxrpc.h
1290
__field(unsigned int, conn)
include/trace/events/rxrpc.h
1302
__entry->conn = conn->debug_id;
include/trace/events/rxrpc.h
1308
__entry->service_id = conn->service_id;
include/trace/events/rxrpc.h
1309
__entry->security_ix = conn->security_ix;
include/trace/events/rxrpc.h
1313
__entry->conn,
include/trace/events/rxrpc.h
1324
TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t serial,
include/trace/events/rxrpc.h
1327
TP_ARGS(conn, serial, version, kvno, ticket_len),
include/trace/events/rxrpc.h
1330
__field(unsigned int, conn)
include/trace/events/rxrpc.h
1339
__entry->conn = conn->debug_id;
include/trace/events/rxrpc.h
1344
__entry->security_ix = conn->security_ix;
include/trace/events/rxrpc.h
1348
__entry->conn,
include/trace/events/rxrpc.h
2245
__entry->conn_serial = call->conn->hi_serial;
include/trace/events/rxrpc.h
2477
__entry->ping_serial = call->conn->pmtud_probe;
include/trace/events/rxrpc.h
2493
TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t resp_serial),
include/trace/events/rxrpc.h
2495
TP_ARGS(conn, resp_serial),
include/trace/events/rxrpc.h
2507
__entry->peer_debug_id = conn->peer->debug_id;
include/trace/events/rxrpc.h
2508
__entry->call_debug_id = conn->pmtud_call;
include/trace/events/rxrpc.h
2509
__entry->ping_serial = conn->pmtud_probe;
include/trace/events/rxrpc.h
2511
__entry->max_data = conn->peer->max_data;
include/trace/events/rxrpc.h
2512
__entry->jumbo_max = conn->peer->pmtud_jumbo;
include/trace/events/rxrpc.h
2525
TP_PROTO(struct rxrpc_connection *conn, rxrpc_serial_t resp_serial),
include/trace/events/rxrpc.h
2527
TP_ARGS(conn, resp_serial),
include/trace/events/rxrpc.h
2537
__entry->peer_debug_id = conn->peer->debug_id;
include/trace/events/rxrpc.h
2538
__entry->call_debug_id = conn->pmtud_call;
include/trace/events/rxrpc.h
2539
__entry->ping_serial = conn->pmtud_probe;
include/trace/events/rxrpc.h
2815
TP_PROTO(struct rxrpc_connection *conn,
include/trace/events/rxrpc.h
2818
TP_ARGS(conn, current_key, requested_key),
include/trace/events/rxrpc.h
2821
__field(unsigned int, conn)
include/trace/events/rxrpc.h
2827
__entry->conn = conn->debug_id;
include/trace/events/rxrpc.h
2833
__entry->conn,
include/trace/events/rxrpc.h
775
__field(unsigned int, conn)
include/trace/events/rxrpc.h
781
__entry->conn = conn_debug_id;
include/trace/events/rxrpc.h
787
__entry->conn,
include/trace/events/rxrpc.h
793
TP_PROTO(struct rxrpc_connection *conn, int channel,
include/trace/events/rxrpc.h
796
TP_ARGS(conn, channel, op),
include/trace/events/rxrpc.h
799
__field(unsigned int, conn)
include/trace/events/rxrpc.h
807
__entry->conn = conn ? conn->debug_id : 0;
include/trace/events/rxrpc.h
809
__entry->usage = conn ? refcount_read(&conn->ref) : -2;
include/trace/events/rxrpc.h
811
__entry->cid = conn ? conn->proto.cid : 0;
include/trace/events/rxrpc.h
815
__entry->conn,
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
1775
struct io_connect *conn = io_kiocb_to_cmd(req, struct io_connect);
io_uring/net.c
1781
conn->addr = u64_to_user_ptr(READ_ONCE(sqe->addr));
io_uring/net.c
1782
conn->addr_len = READ_ONCE(sqe->addr2);
io_uring/net.c
1783
conn->in_progress = conn->seen_econnaborted = false;
io_uring/net.c
1789
return move_addr_to_kernel(conn->addr, conn->addr_len, &io->addr);
net/9p/trans_fd.c
1058
struct p9_conn *conn = list_first_entry(&p9_poll_pending_list,
net/9p/trans_fd.c
1061
list_del_init(&conn->poll_pending_link);
net/9p/trans_fd.c
1064
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
1016
*conn = (struct l2cap_conn *)hcon->l2cap_data;
net/bluetooth/6lowpan.c
1018
BT_DBG("conn %p dst %pMR type %u", *conn, &hcon->dst, hcon->dst_type);
net/bluetooth/6lowpan.c
1141
struct l2cap_conn *conn = NULL;
net/bluetooth/6lowpan.c
1149
ret = get_l2cap_conn(&buf[8], &addr, &addr_type, &conn, false);
net/bluetooth/6lowpan.c
1163
if (conn) {
net/bluetooth/6lowpan.c
1166
if (!is_bt_6lowpan(conn->hcon))
net/bluetooth/6lowpan.c
1169
peer = lookup_peer(conn);
net/bluetooth/6lowpan.c
1175
BT_DBG("conn %p dst %pMR type %d user %u", conn,
net/bluetooth/6lowpan.c
1176
&conn->hcon->dst, conn->hcon->dst_type,
net/bluetooth/6lowpan.c
1188
ret = get_l2cap_conn(&buf[11], &addr, &addr_type, &conn, true);
net/bluetooth/6lowpan.c
1192
ret = bt_6lowpan_disconnect(conn, addr_type);
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
688
SET_NETDEV_DEV(netdev, &chan->conn->hcon->hdev->dev);
net/bluetooth/6lowpan.c
693
(*dev)->hdev = chan->conn->hcon->hdev;
net/bluetooth/6lowpan.c
727
dev = lookup_dev(chan->conn);
net/bluetooth/6lowpan.c
729
BT_DBG("chan %p conn %p dev %p", chan, chan->conn, dev);
net/bluetooth/6lowpan.c
780
BT_DBG("chan %p conn %p", chan, chan->conn);
net/bluetooth/6lowpan.c
782
if (chan->conn && chan->conn->hcon) {
net/bluetooth/6lowpan.c
783
if (!is_bt_6lowpan(chan->conn->hcon))
net/bluetooth/6lowpan.c
829
BT_DBG("chan %p conn %p state %s err %d", chan, chan->conn,
net/bluetooth/6lowpan.c
855
dev = lookup_dev(chan->conn);
net/bluetooth/6lowpan.c
868
dev = lookup_dev(chan->conn);
net/bluetooth/6lowpan.c
918
static int bt_6lowpan_disconnect(struct l2cap_conn *conn, u8 dst_type)
net/bluetooth/6lowpan.c
922
BT_DBG("conn %p dst type %u", conn, dst_type);
net/bluetooth/6lowpan.c
924
peer = lookup_peer(conn);
net/bluetooth/6lowpan.c
969
struct l2cap_conn **conn, bool disconnect)
net/bluetooth/bnep/core.c
545
struct l2cap_conn *conn = l2cap_pi(session->sock->sk)->chan->conn;
net/bluetooth/bnep/core.c
547
if (!conn || !conn->hcon)
net/bluetooth/bnep/core.c
550
return &conn->hcon->dev;
net/bluetooth/hci_conn.c
1000
conn->out = true;
net/bluetooth/hci_conn.c
1004
conn->pkt_type = hdev->pkt_type & ACL_PTYPE_MASK;
net/bluetooth/hci_conn.c
1005
conn->link_policy = hdev->link_policy;
net/bluetooth/hci_conn.c
1006
conn->mtu = hdev->acl_mtu;
net/bluetooth/hci_conn.c
1010
hci_copy_identity_address(hdev, &conn->src, &conn->src_type);
net/bluetooth/hci_conn.c
1011
conn->mtu = hdev->le_mtu ? hdev->le_mtu : hdev->acl_mtu;
net/bluetooth/hci_conn.c
1015
conn->le_tx_def_phys = hdev->le_tx_def_phys;
net/bluetooth/hci_conn.c
1016
conn->le_rx_def_phys = hdev->le_tx_def_phys;
net/bluetooth/hci_conn.c
1020
hci_copy_identity_address(hdev, &conn->src, &conn->src_type);
net/bluetooth/hci_conn.c
1022
if (conn->role == HCI_ROLE_MASTER)
net/bluetooth/hci_conn.c
1023
conn->cleanup = cis_cleanup;
net/bluetooth/hci_conn.c
1025
conn->mtu = hdev->iso_mtu;
net/bluetooth/hci_conn.c
1030
hci_copy_identity_address(hdev, &conn->src, &conn->src_type);
net/bluetooth/hci_conn.c
1031
conn->cleanup = bis_cleanup;
net/bluetooth/hci_conn.c
1032
conn->mtu = hdev->iso_mtu;
net/bluetooth/hci_conn.c
1036
conn->pkt_type = (hdev->esco_type & SCO_ESCO_MASK) |
net/bluetooth/hci_conn.c
1039
conn->pkt_type = hdev->pkt_type & SCO_PTYPE_MASK;
net/bluetooth/hci_conn.c
1041
conn->mtu = hdev->sco_mtu;
net/bluetooth/hci_conn.c
1044
conn->pkt_type = hdev->esco_type & ~EDR_ESCO_MASK;
net/bluetooth/hci_conn.c
1045
conn->mtu = hdev->sco_mtu;
net/bluetooth/hci_conn.c
1049
skb_queue_head_init(&conn->data_q);
net/bluetooth/hci_conn.c
1050
skb_queue_head_init(&conn->tx_q.queue);
net/bluetooth/hci_conn.c
1052
INIT_LIST_HEAD(&conn->chan_list);
net/bluetooth/hci_conn.c
1053
INIT_LIST_HEAD(&conn->link_list);
net/bluetooth/hci_conn.c
1055
INIT_DELAYED_WORK(&conn->disc_work, hci_conn_timeout);
net/bluetooth/hci_conn.c
1056
INIT_DELAYED_WORK(&conn->auto_accept_work, hci_conn_auto_accept);
net/bluetooth/hci_conn.c
1057
INIT_DELAYED_WORK(&conn->idle_work, hci_conn_idle);
net/bluetooth/hci_conn.c
1058
INIT_DELAYED_WORK(&conn->le_conn_timeout, le_conn_timeout);
net/bluetooth/hci_conn.c
1060
atomic_set(&conn->refcnt, 0);
net/bluetooth/hci_conn.c
1064
hci_conn_hash_add(hdev, conn);
net/bluetooth/hci_conn.c
1070
if (conn->type != SCO_LINK && conn->type != ESCO_LINK) {
net/bluetooth/hci_conn.c
1075
hci_conn_init_sysfs(conn);
net/bluetooth/hci_conn.c
1076
return conn;
net/bluetooth/hci_conn.c
110
mgmt_connect_failed(hdev, conn, status);
net/bluetooth/hci_conn.c
1102
static void hci_conn_cleanup_child(struct hci_conn *conn, u8 reason)
net/bluetooth/hci_conn.c
1111
switch (conn->type) {
net/bluetooth/hci_conn.c
1114
if (HCI_CONN_HANDLE_UNSET(conn->handle))
net/bluetooth/hci_conn.c
1115
hci_conn_failed(conn, reason);
net/bluetooth/hci_conn.c
1120
if ((conn->state != BT_CONNECTED &&
net/bluetooth/hci_conn.c
1121
!test_bit(HCI_CONN_CREATE_CIS, &conn->flags)) ||
net/bluetooth/hci_conn.c
1122
test_bit(HCI_CONN_BIG_CREATED, &conn->flags))
net/bluetooth/hci_conn.c
1123
hci_conn_failed(conn, reason);
net/bluetooth/hci_conn.c
1128
static void hci_conn_unlink(struct hci_conn *conn)
net/bluetooth/hci_conn.c
1130
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1132
bt_dev_dbg(hdev, "hcon %p", conn);
net/bluetooth/hci_conn.c
1134
if (!conn->parent) {
net/bluetooth/hci_conn.c
1137
list_for_each_entry_safe(link, t, &conn->link_list, list) {
net/bluetooth/hci_conn.c
1138
struct hci_conn *child = link->conn;
net/bluetooth/hci_conn.c
1150
hci_conn_cleanup_child(child, conn->abort_reason);
net/bluetooth/hci_conn.c
1156
if (!conn->link)
net/bluetooth/hci_conn.c
1159
list_del_rcu(&conn->link->list);
net/bluetooth/hci_conn.c
1162
hci_conn_drop(conn->parent);
net/bluetooth/hci_conn.c
1163
hci_conn_put(conn->parent);
net/bluetooth/hci_conn.c
1164
conn->parent = NULL;
net/bluetooth/hci_conn.c
1166
kfree(conn->link);
net/bluetooth/hci_conn.c
1167
conn->link = NULL;
net/bluetooth/hci_conn.c
1170
void hci_conn_del(struct hci_conn *conn)
net/bluetooth/hci_conn.c
1172
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1174
BT_DBG("%s hcon %p handle %d", hdev->name, conn, conn->handle);
net/bluetooth/hci_conn.c
1176
hci_conn_unlink(conn);
net/bluetooth/hci_conn.c
1178
disable_delayed_work_sync(&conn->disc_work);
net/bluetooth/hci_conn.c
1179
disable_delayed_work_sync(&conn->auto_accept_work);
net/bluetooth/hci_conn.c
1180
disable_delayed_work_sync(&conn->idle_work);
net/bluetooth/hci_conn.c
1185
hci_conn_hash_del(hdev, conn);
net/bluetooth/hci_conn.c
1195
switch (conn->type) {
net/bluetooth/hci_conn.c
1198
hdev->acl_cnt + conn->sent > hdev->acl_pkts)
net/bluetooth/hci_conn.c
1201
hdev->acl_cnt += conn->sent;
net/bluetooth/hci_conn.c
1204
cancel_delayed_work(&conn->le_conn_timeout);
net/bluetooth/hci_conn.c
1208
hdev->le_cnt + conn->sent > hdev->le_pkts)
net/bluetooth/hci_conn.c
1211
hdev->le_cnt += conn->sent;
net/bluetooth/hci_conn.c
1215
hdev->acl_cnt + conn->sent > hdev->acl_pkts)
net/bluetooth/hci_conn.c
1218
hdev->acl_cnt += conn->sent;
net/bluetooth/hci_conn.c
1225
hdev->iso_cnt + conn->sent > hdev->iso_pkts)
net/bluetooth/hci_conn.c
1228
hdev->iso_cnt += conn->sent;
net/bluetooth/hci_conn.c
1232
skb_queue_purge(&conn->data_q);
net/bluetooth/hci_conn.c
1233
skb_queue_purge(&conn->tx_q.queue);
net/bluetooth/hci_conn.c
1240
hci_conn_cleanup(conn);
net/bluetooth/hci_conn.c
1243
hci_cmd_sync_dequeue(hdev, NULL, conn, NULL);
net/bluetooth/hci_conn.c
1307
static void hci_le_conn_failed(struct hci_conn *conn, u8 status)
net/bluetooth/hci_conn.c
1309
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1311
hci_connect_le_scan_cleanup(conn, status);
net/bluetooth/hci_conn.c
1320
void hci_conn_failed(struct hci_conn *conn, u8 status)
net/bluetooth/hci_conn.c
1322
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1326
switch (conn->type) {
net/bluetooth/hci_conn.c
1328
hci_le_conn_failed(conn, status);
net/bluetooth/hci_conn.c
1331
mgmt_connect_failed(hdev, conn, status);
net/bluetooth/hci_conn.c
1338
test_and_clear_bit(HCI_CONN_BIG_SYNC_FAILED, &conn->flags);
net/bluetooth/hci_conn.c
1339
test_and_clear_bit(HCI_CONN_PA_SYNC_FAILED, &conn->flags);
net/bluetooth/hci_conn.c
1341
conn->state = BT_CLOSED;
net/bluetooth/hci_conn.c
1342
hci_connect_cfm(conn, status);
net/bluetooth/hci_conn.c
1343
hci_conn_del(conn);
net/bluetooth/hci_conn.c
1347
u8 hci_conn_set_handle(struct hci_conn *conn, u16 handle)
net/bluetooth/hci_conn.c
1349
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1351
bt_dev_dbg(hdev, "hcon %p handle 0x%4.4x", conn, handle);
net/bluetooth/hci_conn.c
1353
if (conn->handle == handle)
net/bluetooth/hci_conn.c
1365
if (conn->abort_reason)
net/bluetooth/hci_conn.c
1366
return conn->abort_reason;
net/bluetooth/hci_conn.c
1368
if (HCI_CONN_HANDLE_UNSET(conn->handle))
net/bluetooth/hci_conn.c
1369
ida_free(&hdev->unset_handle_ida, conn->handle);
net/bluetooth/hci_conn.c
1371
conn->handle = handle;
net/bluetooth/hci_conn.c
1380
struct hci_conn *conn;
net/bluetooth/hci_conn.c
140
static void hci_conn_cleanup(struct hci_conn *conn)
net/bluetooth/hci_conn.c
1403
conn = hci_conn_hash_lookup_le(hdev, dst, dst_type);
net/bluetooth/hci_conn.c
1404
if (conn && !test_bit(HCI_CONN_SCANNING, &conn->flags)) {
net/bluetooth/hci_conn.c
142
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1428
if (conn) {
net/bluetooth/hci_conn.c
1429
bacpy(&conn->dst, dst);
net/bluetooth/hci_conn.c
1431
conn = hci_conn_add_unset(hdev, LE_LINK, dst, dst_type, role);
net/bluetooth/hci_conn.c
1432
if (IS_ERR(conn))
net/bluetooth/hci_conn.c
1433
return conn;
net/bluetooth/hci_conn.c
1434
hci_conn_hold(conn);
net/bluetooth/hci_conn.c
1435
conn->pending_sec_level = sec_level;
net/bluetooth/hci_conn.c
1438
conn->sec_level = BT_SECURITY_LOW;
net/bluetooth/hci_conn.c
1439
conn->conn_timeout = conn_timeout;
net/bluetooth/hci_conn.c
144
if (test_bit(HCI_CONN_PARAM_REMOVAL_PEND, &conn->flags))
net/bluetooth/hci_conn.c
1440
conn->le_adv_phy = phy;
net/bluetooth/hci_conn.c
1441
conn->le_adv_sec_phy = sec_phy;
net/bluetooth/hci_conn.c
1443
err = hci_connect_le_sync(hdev, conn);
net/bluetooth/hci_conn.c
1445
hci_conn_del(conn);
net/bluetooth/hci_conn.c
1449
return conn;
net/bluetooth/hci_conn.c
145
hci_conn_params_del(conn->hdev, &conn->dst, conn->dst_type);
net/bluetooth/hci_conn.c
1454
struct hci_conn *conn;
net/bluetooth/hci_conn.c
1456
conn = hci_conn_hash_lookup_le(hdev, addr, type);
net/bluetooth/hci_conn.c
1457
if (!conn)
net/bluetooth/hci_conn.c
1460
if (conn->state != BT_CONNECTED)
net/bluetooth/hci_conn.c
147
if (test_and_clear_bit(HCI_CONN_FLUSH_KEY, &conn->flags))
net/bluetooth/hci_conn.c
148
hci_remove_link_key(hdev, &conn->dst);
net/bluetooth/hci_conn.c
150
hci_chan_list_flush(conn);
net/bluetooth/hci_conn.c
1506
struct hci_conn *conn;
net/bluetooth/hci_conn.c
1513
conn = hci_conn_hash_lookup_big(hdev, big);
net/bluetooth/hci_conn.c
1514
if (!conn)
net/bluetooth/hci_conn.c
152
if (HCI_CONN_HANDLE_UNSET(conn->handle))
net/bluetooth/hci_conn.c
153
ida_free(&hdev->unset_handle_ida, conn->handle);
net/bluetooth/hci_conn.c
1530
struct hci_conn *conn;
net/bluetooth/hci_conn.c
1536
conn = hci_conn_hash_lookup_big(hdev, qos->bcast.big);
net/bluetooth/hci_conn.c
1538
if (conn) {
net/bluetooth/hci_conn.c
1542
qos->bcast.bis = conn->iso_qos.bcast.bis;
net/bluetooth/hci_conn.c
155
if (conn->cleanup)
net/bluetooth/hci_conn.c
1553
conn = hci_conn_hash_lookup_bis(hdev, BDADDR_ANY, bis);
net/bluetooth/hci_conn.c
1554
if (!conn)
net/bluetooth/hci_conn.c
156
conn->cleanup(conn);
net/bluetooth/hci_conn.c
1573
struct hci_conn *conn;
net/bluetooth/hci_conn.c
158
if (conn->type == SCO_LINK || conn->type == ESCO_LINK) {
net/bluetooth/hci_conn.c
159
switch (conn->setting & SCO_AIRMODE_MASK) {
net/bluetooth/hci_conn.c
1592
conn = hci_conn_hash_lookup_per_adv_bis(hdev, dst, qos->bcast.big,
net/bluetooth/hci_conn.c
1594
if (conn)
net/bluetooth/hci_conn.c
1600
conn = hci_conn_hash_lookup_big(hdev, qos->bcast.big);
net/bluetooth/hci_conn.c
1602
if (conn && (memcmp(qos, &conn->iso_qos, sizeof(*qos)) ||
net/bluetooth/hci_conn.c
1603
base_len != conn->le_per_adv_data_len ||
net/bluetooth/hci_conn.c
1604
memcmp(conn->le_per_adv_data, base, base_len)))
net/bluetooth/hci_conn.c
1607
conn = hci_conn_add_unset(hdev, BIS_LINK, dst, 0, HCI_ROLE_MASTER);
net/bluetooth/hci_conn.c
1608
if (IS_ERR(conn))
net/bluetooth/hci_conn.c
1609
return conn;
net/bluetooth/hci_conn.c
1611
conn->state = BT_CONNECT;
net/bluetooth/hci_conn.c
1612
conn->sid = sid;
net/bluetooth/hci_conn.c
1613
conn->conn_timeout = timeout;
net/bluetooth/hci_conn.c
1615
hci_conn_hold(conn);
net/bluetooth/hci_conn.c
1616
return conn;
net/bluetooth/hci_conn.c
1625
struct hci_conn *conn;
net/bluetooth/hci_conn.c
1644
conn = hci_conn_hash_lookup_le(hdev, dst, dst_type);
net/bluetooth/hci_conn.c
1645
if (conn) {
net/bluetooth/hci_conn.c
1646
if (conn->pending_sec_level < sec_level)
net/bluetooth/hci_conn.c
1647
conn->pending_sec_level = sec_level;
net/bluetooth/hci_conn.c
1653
conn = hci_conn_add_unset(hdev, LE_LINK, dst, dst_type,
net/bluetooth/hci_conn.c
1655
if (IS_ERR(conn))
net/bluetooth/hci_conn.c
1656
return conn;
net/bluetooth/hci_conn.c
1659
hci_conn_del(conn);
net/bluetooth/hci_conn.c
1663
conn->state = BT_CONNECT;
net/bluetooth/hci_conn.c
1664
set_bit(HCI_CONN_SCANNING, &conn->flags);
net/bluetooth/hci_conn.c
1665
conn->sec_level = BT_SECURITY_LOW;
net/bluetooth/hci_conn.c
1666
conn->pending_sec_level = sec_level;
net/bluetooth/hci_conn.c
1667
conn->conn_timeout = conn_timeout;
net/bluetooth/hci_conn.c
1668
conn->conn_reason = conn_reason;
net/bluetooth/hci_conn.c
1673
hci_conn_hold(conn);
net/bluetooth/hci_conn.c
1674
return conn;
net/bluetooth/hci_conn.c
171
debugfs_remove_recursive(conn->debugfs);
net/bluetooth/hci_conn.c
1729
struct hci_conn *conn)
net/bluetooth/hci_conn.c
173
hci_conn_del_sysfs(conn);
net/bluetooth/hci_conn.c
1734
bt_dev_dbg(hdev, "parent %p hcon %p", parent, conn);
net/bluetooth/hci_conn.c
1736
if (conn->link)
net/bluetooth/hci_conn.c
1737
return conn->link;
net/bluetooth/hci_conn.c
1739
if (conn->parent)
net/bluetooth/hci_conn.c
1746
link->conn = hci_conn_hold(conn);
net/bluetooth/hci_conn.c
1747
conn->link = link;
net/bluetooth/hci_conn.c
1748
conn->parent = hci_conn_get(parent);
net/bluetooth/hci_conn.c
178
int hci_disconnect(struct hci_conn *conn, __u8 reason)
net/bluetooth/hci_conn.c
180
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
1805
static int hci_le_create_big(struct hci_conn *conn, struct bt_iso_qos *qos)
net/bluetooth/hci_conn.c
1807
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1841
struct hci_conn *conn;
net/bluetooth/hci_conn.c
1848
conn = hci_conn_hash_lookup_cig(hdev, cig_id);
net/bluetooth/hci_conn.c
1849
if (!conn) {
net/bluetooth/hci_conn.c
1854
qos = &conn->iso_qos;
net/bluetooth/hci_conn.c
187
if (conn->type == ACL_LINK && conn->role == HCI_ROLE_MASTER &&
net/bluetooth/hci_conn.c
1872
conn = hci_conn_hash_lookup_cis(hdev, NULL, 0, cig_id, cis_id);
net/bluetooth/hci_conn.c
1873
if (!conn)
net/bluetooth/hci_conn.c
1876
qos = &conn->iso_qos;
net/bluetooth/hci_conn.c
188
(conn->state == BT_CONNECTED || conn->state == BT_CONFIG)) {
net/bluetooth/hci_conn.c
1880
cis->c_sdu = cpu_to_le16(conn->iso_qos.ucast.out.sdu);
net/bluetooth/hci_conn.c
1881
cis->p_sdu = cpu_to_le16(conn->iso_qos.ucast.in.sdu);
net/bluetooth/hci_conn.c
189
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
1901
static bool hci_le_set_cig_params(struct hci_conn *conn, struct bt_iso_qos *qos)
net/bluetooth/hci_conn.c
1903
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
192
clkoff_cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
1953
conn->iso_qos = *qos;
net/bluetooth/hci_conn.c
197
return hci_abort_conn(conn, reason);
net/bluetooth/hci_conn.c
200
static void hci_add_sco(struct hci_conn *conn, __u16 handle)
net/bluetooth/hci_conn.c
202
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
2029
bool hci_iso_setup_path(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2031
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
2036
if (conn->iso_qos.ucast.out.sdu) {
net/bluetooth/hci_conn.c
2037
cmd.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
2047
if (conn->iso_qos.ucast.in.sdu) {
net/bluetooth/hci_conn.c
2048
cmd.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
205
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2061
int hci_conn_check_create_cis(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2063
if (conn->type != CIS_LINK)
net/bluetooth/hci_conn.c
2066
if (!conn->parent || conn->parent->state != BT_CONNECTED ||
net/bluetooth/hci_conn.c
2067
conn->state != BT_CONNECT || HCI_CONN_HANDLE_UNSET(conn->handle))
net/bluetooth/hci_conn.c
207
conn->state = BT_CONNECT;
net/bluetooth/hci_conn.c
208
conn->out = true;
net/bluetooth/hci_conn.c
2080
struct hci_conn *conn;
net/bluetooth/hci_conn.c
2085
list_for_each_entry_rcu(conn, &hdev->conn_hash.list, list) {
net/bluetooth/hci_conn.c
2086
if (test_bit(HCI_CONN_CREATE_CIS, &conn->flags)) {
net/bluetooth/hci_conn.c
2091
if (!hci_conn_check_create_cis(conn))
net/bluetooth/hci_conn.c
210
conn->attempt++;
net/bluetooth/hci_conn.c
2104
static void hci_iso_qos_setup(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_conn.c
2109
qos->sdu = conn->mtu;
net/bluetooth/hci_conn.c
2118
qos->interval = conn->le_conn_interval * 1250;
net/bluetooth/hci_conn.c
2122
qos->latency = conn->le_conn_latency;
net/bluetooth/hci_conn.c
2127
struct hci_conn *conn = data;
net/bluetooth/hci_conn.c
2128
struct bt_iso_qos *qos = &conn->iso_qos;
net/bluetooth/hci_conn.c
213
cp.pkt_type = cpu_to_le16(conn->pkt_type);
net/bluetooth/hci_conn.c
2142
err = hci_start_per_adv_sync(hdev, qos->bcast.bis, conn->sid,
net/bluetooth/hci_conn.c
2143
conn->le_per_adv_data_len,
net/bluetooth/hci_conn.c
2144
conn->le_per_adv_data, flags, interval,
net/bluetooth/hci_conn.c
2149
return hci_le_create_big(conn, &conn->iso_qos);
net/bluetooth/hci_conn.c
2156
struct hci_conn *conn;
net/bluetooth/hci_conn.c
2160
conn = hci_conn_add_unset(hdev, PA_LINK, dst, dst_type, HCI_ROLE_SLAVE);
net/bluetooth/hci_conn.c
2161
if (IS_ERR(conn))
net/bluetooth/hci_conn.c
2162
return conn;
net/bluetooth/hci_conn.c
2164
conn->iso_qos = *qos;
net/bluetooth/hci_conn.c
2165
conn->sid = sid;
net/bluetooth/hci_conn.c
2166
conn->state = BT_LISTEN;
net/bluetooth/hci_conn.c
2167
conn->conn_timeout = msecs_to_jiffies(qos->bcast.sync_timeout * 10);
net/bluetooth/hci_conn.c
2169
hci_conn_hold(conn);
net/bluetooth/hci_conn.c
2171
hci_connect_pa_sync(hdev, conn);
net/bluetooth/hci_conn.c
2173
return conn;
net/bluetooth/hci_conn.c
218
static bool find_next_esco_param(struct hci_conn *conn,
net/bluetooth/hci_conn.c
2203
struct hci_conn *conn = data;
net/bluetooth/hci_conn.c
2205
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/hci_conn.c
2209
hci_connect_cfm(conn, err);
net/bluetooth/hci_conn.c
221
if (!conn->parent)
net/bluetooth/hci_conn.c
2210
hci_conn_del(conn);
net/bluetooth/hci_conn.c
2218
struct hci_conn *conn;
net/bluetooth/hci_conn.c
2224
conn = hci_conn_hash_lookup_big_state(hdev, qos->bcast.big, BT_OPEN,
net/bluetooth/hci_conn.c
2226
if (conn) {
net/bluetooth/hci_conn.c
2227
memcpy(qos, &conn->iso_qos, sizeof(*qos));
net/bluetooth/hci_conn.c
2228
conn->state = BT_CONNECTED;
net/bluetooth/hci_conn.c
2229
return conn;
net/bluetooth/hci_conn.c
2237
conn = hci_add_bis(hdev, dst, sid, qos, base_len, eir, timeout);
net/bluetooth/hci_conn.c
2238
if (IS_ERR(conn))
net/bluetooth/hci_conn.c
2239
return conn;
net/bluetooth/hci_conn.c
224
for (; conn->attempt <= size; conn->attempt++) {
net/bluetooth/hci_conn.c
2242
conn->le_tx_def_phys = qos->bcast.out.phys;
net/bluetooth/hci_conn.c
2246
memcpy(conn->le_per_adv_data, eir, sizeof(eir));
net/bluetooth/hci_conn.c
2247
conn->le_per_adv_data_len = base_len;
net/bluetooth/hci_conn.c
225
if (lmp_esco_2m_capable(conn->parent) ||
net/bluetooth/hci_conn.c
2250
hci_iso_qos_setup(hdev, conn, &qos->bcast.out,
net/bluetooth/hci_conn.c
2251
conn->le_tx_def_phys ? conn->le_tx_def_phys :
net/bluetooth/hci_conn.c
2254
conn->iso_qos = *qos;
net/bluetooth/hci_conn.c
2255
conn->state = BT_BOUND;
net/bluetooth/hci_conn.c
2259
conn->iso_qos.bcast.big);
net/bluetooth/hci_conn.c
226
(esco_param[conn->attempt - 1].pkt_type & ESCO_2EV3))
net/bluetooth/hci_conn.c
2260
if (parent && parent != conn) {
net/bluetooth/hci_conn.c
2261
link = hci_conn_link(parent, conn);
net/bluetooth/hci_conn.c
2262
hci_conn_drop(conn);
net/bluetooth/hci_conn.c
2267
return conn;
net/bluetooth/hci_conn.c
2270
int hci_past_bis(struct hci_conn *conn, bdaddr_t *dst, __u8 dst_type)
net/bluetooth/hci_conn.c
2275
le = hci_conn_hash_lookup_le(conn->hdev, dst, dst_type);
net/bluetooth/hci_conn.c
2279
return hci_past_sync(conn, le);
net/bluetooth/hci_conn.c
2282
static void bis_mark_per_adv(struct hci_conn *conn, void *data)
net/bluetooth/hci_conn.c
2287
if (bacmp(&conn->dst, BDADDR_ANY))
net/bluetooth/hci_conn.c
229
conn, conn->attempt);
net/bluetooth/hci_conn.c
2290
if (d->big != conn->iso_qos.bcast.big ||
net/bluetooth/hci_conn.c
2292
d->bis != conn->iso_qos.bcast.bis)
net/bluetooth/hci_conn.c
2295
set_bit(HCI_CONN_PER_ADV, &conn->flags);
net/bluetooth/hci_conn.c
2303
struct hci_conn *conn;
net/bluetooth/hci_conn.c
2307
conn = hci_bind_bis(hdev, dst, sid, qos, base_len, base, timeout);
net/bluetooth/hci_conn.c
2308
if (IS_ERR(conn))
net/bluetooth/hci_conn.c
2309
return conn;
net/bluetooth/hci_conn.c
2311
if (conn->state == BT_CONNECTED)
net/bluetooth/hci_conn.c
2312
return conn;
net/bluetooth/hci_conn.c
2317
if (conn->sid == HCI_SID_INVALID) {
net/bluetooth/hci_conn.c
232
return conn->attempt <= size;
net/bluetooth/hci_conn.c
2322
conn->sid = sid;
net/bluetooth/hci_conn.c
2339
err = hci_cmd_sync_queue(hdev, create_big_sync, conn,
net/bluetooth/hci_conn.c
2342
hci_conn_drop(conn);
net/bluetooth/hci_conn.c
2346
return conn;
net/bluetooth/hci_conn.c
2398
int hci_conn_check_link_mode(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2400
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2406
if (hci_dev_test_flag(conn->hdev, HCI_SC_ONLY)) {
net/bluetooth/hci_conn.c
2407
if (!hci_conn_sc_enabled(conn) ||
net/bluetooth/hci_conn.c
2408
!test_bit(HCI_CONN_AES_CCM, &conn->flags) ||
net/bluetooth/hci_conn.c
2409
conn->key_type != HCI_LK_AUTH_COMBINATION_P256)
net/bluetooth/hci_conn.c
2423
if (conn->sec_level == BT_SECURITY_FIPS &&
net/bluetooth/hci_conn.c
2424
!test_bit(HCI_CONN_AES_CCM, &conn->flags)) {
net/bluetooth/hci_conn.c
2425
bt_dev_err(conn->hdev,
net/bluetooth/hci_conn.c
2430
if (hci_conn_ssp_enabled(conn) &&
net/bluetooth/hci_conn.c
2431
!test_bit(HCI_CONN_ENCRYPT, &conn->flags))
net/bluetooth/hci_conn.c
2438
static int hci_conn_auth(struct hci_conn *conn, __u8 sec_level, __u8 auth_type)
net/bluetooth/hci_conn.c
2440
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2442
if (conn->pending_sec_level > sec_level)
net/bluetooth/hci_conn.c
2443
sec_level = conn->pending_sec_level;
net/bluetooth/hci_conn.c
2445
if (sec_level > conn->sec_level)
net/bluetooth/hci_conn.c
2446
conn->pending_sec_level = sec_level;
net/bluetooth/hci_conn.c
2447
else if (test_bit(HCI_CONN_AUTH, &conn->flags))
net/bluetooth/hci_conn.c
2451
auth_type |= (conn->auth_type & 0x01);
net/bluetooth/hci_conn.c
2453
conn->auth_type = auth_type;
net/bluetooth/hci_conn.c
2455
if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->flags)) {
net/bluetooth/hci_conn.c
2458
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
2459
hci_send_cmd(conn->hdev, HCI_OP_AUTH_REQUESTED,
net/bluetooth/hci_conn.c
2465
if (!test_bit(HCI_CONN_ENCRYPT, &conn->flags))
net/bluetooth/hci_conn.c
2466
set_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags);
net/bluetooth/hci_conn.c
2473
static void hci_conn_encrypt(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2475
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2477
if (!test_and_set_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags)) {
net/bluetooth/hci_conn.c
2479
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
2481
hci_send_cmd(conn->hdev, HCI_OP_SET_CONN_ENCRYPT, sizeof(cp),
net/bluetooth/hci_conn.c
2487
int hci_conn_security(struct hci_conn *conn, __u8 sec_level, __u8 auth_type,
net/bluetooth/hci_conn.c
2490
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2492
if (conn->type == LE_LINK)
net/bluetooth/hci_conn.c
2493
return smp_conn_security(conn, sec_level);
net/bluetooth/hci_conn.c
2501
if (sec_level == BT_SECURITY_LOW && !hci_conn_ssp_enabled(conn))
net/bluetooth/hci_conn.c
2505
if (!test_bit(HCI_CONN_AUTH, &conn->flags))
net/bluetooth/hci_conn.c
2508
switch (conn->key_type) {
net/bluetooth/hci_conn.c
2537
if (sec_level <= BT_SECURITY_MEDIUM || conn->pin_length == 16)
net/bluetooth/hci_conn.c
2545
if (test_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags))
net/bluetooth/hci_conn.c
2549
set_bit(HCI_CONN_AUTH_INITIATOR, &conn->flags);
net/bluetooth/hci_conn.c
2551
if (!hci_conn_auth(conn, sec_level, auth_type))
net/bluetooth/hci_conn.c
2555
if (test_bit(HCI_CONN_ENCRYPT, &conn->flags)) {
net/bluetooth/hci_conn.c
2559
if (!conn->enc_key_size)
net/bluetooth/hci_conn.c
2566
hci_conn_encrypt(conn);
net/bluetooth/hci_conn.c
2572
int hci_conn_check_secure(struct hci_conn *conn, __u8 sec_level)
net/bluetooth/hci_conn.c
2574
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2581
if (conn->sec_level == BT_SECURITY_HIGH ||
net/bluetooth/hci_conn.c
2582
conn->sec_level == BT_SECURITY_FIPS)
net/bluetooth/hci_conn.c
2591
int hci_conn_switch_role(struct hci_conn *conn, __u8 role)
net/bluetooth/hci_conn.c
2593
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2595
if (role == conn->role)
net/bluetooth/hci_conn.c
2598
if (!test_and_set_bit(HCI_CONN_RSWITCH_PEND, &conn->flags)) {
net/bluetooth/hci_conn.c
2600
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/hci_conn.c
2602
hci_send_cmd(conn->hdev, HCI_OP_SWITCH_ROLE, sizeof(cp), &cp);
net/bluetooth/hci_conn.c
2610
void hci_conn_enter_active_mode(struct hci_conn *conn, __u8 force_active)
net/bluetooth/hci_conn.c
2612
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
2614
BT_DBG("hcon %p mode %d", conn, conn->mode);
net/bluetooth/hci_conn.c
2616
if (conn->mode != HCI_CM_SNIFF)
net/bluetooth/hci_conn.c
2619
if (!test_bit(HCI_CONN_POWER_SAVE, &conn->flags) && !force_active)
net/bluetooth/hci_conn.c
2622
if (!test_and_set_bit(HCI_CONN_MODE_CHANGE_PEND, &conn->flags)) {
net/bluetooth/hci_conn.c
2624
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
2630
mod_delayed_work(hdev->workqueue, &conn->idle_work,
net/bluetooth/hci_conn.c
2638
struct hci_conn *conn;
net/bluetooth/hci_conn.c
2646
while ((conn = list_first_entry_or_null(head,
net/bluetooth/hci_conn.c
2649
conn->state = BT_CLOSED;
net/bluetooth/hci_conn.c
2650
hci_disconn_cfm(conn, HCI_ERROR_LOCAL_HOST_TERM);
net/bluetooth/hci_conn.c
2651
hci_conn_del(conn);
net/bluetooth/hci_conn.c
2655
static u32 get_link_mode(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2659
if (conn->role == HCI_ROLE_MASTER)
net/bluetooth/hci_conn.c
2662
if (test_bit(HCI_CONN_ENCRYPT, &conn->flags))
net/bluetooth/hci_conn.c
2665
if (test_bit(HCI_CONN_AUTH, &conn->flags))
net/bluetooth/hci_conn.c
2668
if (test_bit(HCI_CONN_SECURE, &conn->flags))
net/bluetooth/hci_conn.c
2671
if (test_bit(HCI_CONN_FIPS, &conn->flags))
net/bluetooth/hci_conn.c
2734
struct hci_conn *conn;
net/bluetooth/hci_conn.c
2741
conn = hci_conn_hash_lookup_ba(hdev, req.type, &req.bdaddr);
net/bluetooth/hci_conn.c
2742
if (conn) {
net/bluetooth/hci_conn.c
2743
bacpy(&ci.bdaddr, &conn->dst);
net/bluetooth/hci_conn.c
2744
ci.handle = conn->handle;
net/bluetooth/hci_conn.c
2745
ci.type = conn->type;
net/bluetooth/hci_conn.c
2746
ci.out = conn->out;
net/bluetooth/hci_conn.c
2747
ci.state = conn->state;
net/bluetooth/hci_conn.c
2748
ci.link_mode = get_link_mode(conn);
net/bluetooth/hci_conn.c
2752
if (!conn)
net/bluetooth/hci_conn.c
2761
struct hci_conn *conn;
net/bluetooth/hci_conn.c
2767
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &req.bdaddr);
net/bluetooth/hci_conn.c
2768
if (conn)
net/bluetooth/hci_conn.c
2769
req.type = conn->auth_type;
net/bluetooth/hci_conn.c
2772
if (!conn)
net/bluetooth/hci_conn.c
2778
struct hci_chan *hci_chan_create(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2780
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
2783
BT_DBG("%s hcon %p", hdev->name, conn);
net/bluetooth/hci_conn.c
2785
if (test_bit(HCI_CONN_DROP, &conn->flags)) {
net/bluetooth/hci_conn.c
2794
chan->conn = hci_conn_get(conn);
net/bluetooth/hci_conn.c
2798
list_add_rcu(&chan->list, &conn->chan_list);
net/bluetooth/hci_conn.c
2805
struct hci_conn *conn = chan->conn;
net/bluetooth/hci_conn.c
2806
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
2808
BT_DBG("%s hcon %p chan %p", hdev->name, conn, chan);
net/bluetooth/hci_conn.c
2815
set_bit(HCI_CONN_DROP, &conn->flags);
net/bluetooth/hci_conn.c
2817
hci_conn_put(conn);
net/bluetooth/hci_conn.c
2823
void hci_chan_list_flush(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2827
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
2829
list_for_each_entry_safe(chan, n, &conn->chan_list, list)
net/bluetooth/hci_conn.c
284
struct hci_conn *conn = conn_handle->conn;
net/bluetooth/hci_conn.c
2865
u32 hci_conn_get_phy(struct hci_conn *conn)
net/bluetooth/hci_conn.c
2873
switch (conn->type) {
net/bluetooth/hci_conn.c
2888
if (conn->pkt_type & (HCI_DM3 | HCI_DH3))
net/bluetooth/hci_conn.c
2891
if (conn->pkt_type & (HCI_DM5 | HCI_DH5))
net/bluetooth/hci_conn.c
2897
if (!(conn->pkt_type & HCI_2DH1))
net/bluetooth/hci_conn.c
2900
if (!(conn->pkt_type & HCI_2DH3))
net/bluetooth/hci_conn.c
2903
if (!(conn->pkt_type & HCI_2DH5))
net/bluetooth/hci_conn.c
2909
if (!(conn->pkt_type & HCI_3DH1))
net/bluetooth/hci_conn.c
291
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_conn.c
2912
if (!(conn->pkt_type & HCI_3DH3))
net/bluetooth/hci_conn.c
2915
if (!(conn->pkt_type & HCI_3DH5))
net/bluetooth/hci_conn.c
2924
if (!(conn->pkt_type & (ESCO_EV4 | ESCO_EV5)))
net/bluetooth/hci_conn.c
2928
if (!(conn->pkt_type & ESCO_2EV3))
net/bluetooth/hci_conn.c
2931
if (!(conn->pkt_type & ESCO_2EV5))
net/bluetooth/hci_conn.c
2935
if (!(conn->pkt_type & ESCO_3EV3))
net/bluetooth/hci_conn.c
2938
if (!(conn->pkt_type & ESCO_3EV5))
net/bluetooth/hci_conn.c
294
bt_dev_dbg(hdev, "hcon %p", conn);
net/bluetooth/hci_conn.c
2944
if (conn->le_tx_def_phys & HCI_LE_SET_PHY_1M)
net/bluetooth/hci_conn.c
2947
if (conn->le_rx_def_phys & HCI_LE_SET_PHY_1M)
net/bluetooth/hci_conn.c
2950
if (conn->le_tx_def_phys & HCI_LE_SET_PHY_2M)
net/bluetooth/hci_conn.c
2953
if (conn->le_rx_def_phys & HCI_LE_SET_PHY_2M)
net/bluetooth/hci_conn.c
2956
if (conn->le_tx_def_phys & HCI_LE_SET_PHY_CODED)
net/bluetooth/hci_conn.c
2959
if (conn->le_rx_def_phys & HCI_LE_SET_PHY_CODED)
net/bluetooth/hci_conn.c
296
configure_datapath_sync(hdev, &conn->codec);
net/bluetooth/hci_conn.c
2968
static u16 bt_phy_pkt_type(struct hci_conn *conn, u32 phys)
net/bluetooth/hci_conn.c
2970
u16 pkt_type = conn->pkt_type;
net/bluetooth/hci_conn.c
298
conn->state = BT_CONNECT;
net/bluetooth/hci_conn.c
299
conn->out = true;
net/bluetooth/hci_conn.c
301
conn->attempt++;
net/bluetooth/hci_conn.c
3044
int hci_conn_set_phy(struct hci_conn *conn, u32 phys)
net/bluetooth/hci_conn.c
3048
switch (conn->type) {
net/bluetooth/hci_conn.c
3057
return hci_acl_change_pkt_type(conn,
net/bluetooth/hci_conn.c
3058
bt_phy_pkt_type(conn, phys));
net/bluetooth/hci_conn.c
3067
return hci_le_set_phy(conn, tx_phys, rx_phys);
net/bluetooth/hci_conn.c
3075
struct hci_conn *conn = data;
net/bluetooth/hci_conn.c
3077
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_conn.c
3080
return hci_abort_conn_sync(hdev, conn, conn->abort_reason);
net/bluetooth/hci_conn.c
3083
int hci_abort_conn(struct hci_conn *conn, u8 reason)
net/bluetooth/hci_conn.c
3085
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
3090
if (conn->abort_reason)
net/bluetooth/hci_conn.c
3093
bt_dev_dbg(hdev, "handle 0x%2.2x reason 0x%2.2x", conn->handle, reason);
net/bluetooth/hci_conn.c
3095
conn->abort_reason = reason;
net/bluetooth/hci_conn.c
310
switch (conn->codec.id) {
net/bluetooth/hci_conn.c
3104
if (conn->state == BT_CONNECT && READ_ONCE(hdev->req_status) == HCI_REQ_PEND) {
net/bluetooth/hci_conn.c
3114
} else if (!hci_cancel_connect_sync(hdev, conn)) {
net/bluetooth/hci_conn.c
312
if (!find_next_esco_param(conn, esco_param_msbc,
net/bluetooth/hci_conn.c
3122
return hci_cmd_sync_run_once(hdev, abort_conn_sync, conn, NULL);
net/bluetooth/hci_conn.c
316
param = &esco_param_msbc[conn->attempt - 1];
net/bluetooth/hci_conn.c
3160
void hci_conn_tx_queue(struct hci_conn *conn, struct sk_buff *skb)
net/bluetooth/hci_conn.c
3162
struct tx_queue *comp = &conn->tx_q;
net/bluetooth/hci_conn.c
3174
switch (conn->type) {
net/bluetooth/hci_conn.c
3183
if (!hci_dev_test_flag(conn->hdev, HCI_SCO_FLOWCTL))
net/bluetooth/hci_conn.c
3223
void hci_conn_tx_dequeue(struct hci_conn *conn)
net/bluetooth/hci_conn.c
3225
struct tx_queue *comp = &conn->tx_q;
net/bluetooth/hci_conn.c
3250
u8 *hci_conn_key_enc_size(struct hci_conn *conn)
net/bluetooth/hci_conn.c
3252
if (conn->type == ACL_LINK) {
net/bluetooth/hci_conn.c
3255
key = hci_find_link_key(conn->hdev, &conn->dst);
net/bluetooth/hci_conn.c
3260
} else if (conn->type == LE_LINK) {
net/bluetooth/hci_conn.c
3263
ltk = hci_find_ltk(conn->hdev, &conn->dst, conn->dst_type,
net/bluetooth/hci_conn.c
3264
conn->role);
net/bluetooth/hci_conn.c
331
cp.in_data_path = conn->codec.data_path;
net/bluetooth/hci_conn.c
332
cp.out_data_path = conn->codec.data_path;
net/bluetooth/hci_conn.c
338
if (!find_next_esco_param(conn, esco_param_msbc,
net/bluetooth/hci_conn.c
342
param = &esco_param_msbc[conn->attempt - 1];
net/bluetooth/hci_conn.c
357
cp.in_data_path = conn->codec.data_path;
net/bluetooth/hci_conn.c
358
cp.out_data_path = conn->codec.data_path;
net/bluetooth/hci_conn.c
364
if (conn->parent && lmp_esco_capable(conn->parent)) {
net/bluetooth/hci_conn.c
365
if (!find_next_esco_param(conn, esco_param_cvsd,
net/bluetooth/hci_conn.c
368
param = &esco_param_cvsd[conn->attempt - 1];
net/bluetooth/hci_conn.c
370
if (conn->attempt > ARRAY_SIZE(sco_param_cvsd))
net/bluetooth/hci_conn.c
372
param = &sco_param_cvsd[conn->attempt - 1];
net/bluetooth/hci_conn.c
388
cp.in_data_path = conn->codec.data_path;
net/bluetooth/hci_conn.c
389
cp.out_data_path = conn->codec.data_path;
net/bluetooth/hci_conn.c
407
static bool hci_setup_sync_conn(struct hci_conn *conn, __u16 handle)
net/bluetooth/hci_conn.c
409
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
413
bt_dev_dbg(hdev, "hcon %p", conn);
net/bluetooth/hci_conn.c
415
conn->state = BT_CONNECT;
net/bluetooth/hci_conn.c
416
conn->out = true;
net/bluetooth/hci_conn.c
418
conn->attempt++;
net/bluetooth/hci_conn.c
424
cp.voice_setting = cpu_to_le16(conn->setting);
net/bluetooth/hci_conn.c
426
switch (conn->setting & SCO_AIRMODE_MASK) {
net/bluetooth/hci_conn.c
428
if (!find_next_esco_param(conn, esco_param_msbc,
net/bluetooth/hci_conn.c
431
param = &esco_param_msbc[conn->attempt - 1];
net/bluetooth/hci_conn.c
434
if (conn->parent && lmp_esco_capable(conn->parent)) {
net/bluetooth/hci_conn.c
435
if (!find_next_esco_param(conn, esco_param_cvsd,
net/bluetooth/hci_conn.c
438
param = &esco_param_cvsd[conn->attempt - 1];
net/bluetooth/hci_conn.c
440
if (conn->attempt > ARRAY_SIZE(sco_param_cvsd))
net/bluetooth/hci_conn.c
442
param = &sco_param_cvsd[conn->attempt - 1];
net/bluetooth/hci_conn.c
459
bool hci_setup_sync(struct hci_conn *conn, __u16 handle)
net/bluetooth/hci_conn.c
464
if (enhanced_sync_conn_capable(conn->hdev)) {
net/bluetooth/hci_conn.c
470
conn_handle->conn = conn;
net/bluetooth/hci_conn.c
472
result = hci_cmd_sync_queue(conn->hdev, hci_enhanced_setup_sync,
net/bluetooth/hci_conn.c
48
struct hci_conn *conn;
net/bluetooth/hci_conn.c
480
return hci_setup_sync_conn(conn, handle);
net/bluetooth/hci_conn.c
483
u8 hci_le_conn_update(struct hci_conn *conn, u16 min, u16 max, u16 latency,
net/bluetooth/hci_conn.c
486
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
492
params = hci_conn_params_lookup(hdev, &conn->dst, conn->dst_type);
net/bluetooth/hci_conn.c
503
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
519
void hci_le_start_enc(struct hci_conn *conn, __le16 ediv, __le64 rand,
net/bluetooth/hci_conn.c
522
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
525
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
529
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
538
void hci_sco_setup(struct hci_conn *conn, __u8 status)
net/bluetooth/hci_conn.c
542
link = list_first_entry_or_null(&conn->link_list, struct hci_link, list);
net/bluetooth/hci_conn.c
543
if (!link || !link->conn)
net/bluetooth/hci_conn.c
546
BT_DBG("hcon %p", conn);
net/bluetooth/hci_conn.c
549
if (lmp_esco_capable(conn->hdev))
net/bluetooth/hci_conn.c
550
hci_setup_sync(link->conn, conn->handle);
net/bluetooth/hci_conn.c
552
hci_add_sco(link->conn, conn->handle);
net/bluetooth/hci_conn.c
554
hci_connect_cfm(link->conn, status);
net/bluetooth/hci_conn.c
555
hci_conn_del(link->conn);
net/bluetooth/hci_conn.c
561
struct hci_conn *conn = container_of(work, struct hci_conn,
net/bluetooth/hci_conn.c
563
int refcnt = atomic_read(&conn->refcnt);
net/bluetooth/hci_conn.c
565
BT_DBG("hcon %p state %s", conn, state_to_string(conn->state));
net/bluetooth/hci_conn.c
579
hci_abort_conn(conn, hci_proto_disconn_ind(conn));
net/bluetooth/hci_conn.c
585
struct hci_conn *conn = container_of(work, struct hci_conn,
net/bluetooth/hci_conn.c
587
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
589
BT_DBG("hcon %p mode %d", conn, conn->mode);
net/bluetooth/hci_conn.c
591
if (!lmp_sniff_capable(hdev) || !lmp_sniff_capable(conn))
net/bluetooth/hci_conn.c
594
if (conn->mode != HCI_CM_ACTIVE || !(conn->link_policy & HCI_LP_SNIFF))
net/bluetooth/hci_conn.c
597
if (lmp_sniffsubr_capable(hdev) && lmp_sniffsubr_capable(conn)) {
net/bluetooth/hci_conn.c
599
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
606
if (!test_and_set_bit(HCI_CONN_MODE_CHANGE_PEND, &conn->flags)) {
net/bluetooth/hci_conn.c
608
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_conn.c
619
struct hci_conn *conn = container_of(work, struct hci_conn,
net/bluetooth/hci_conn.c
622
hci_send_cmd(conn->hdev, HCI_OP_USER_CONFIRM_REPLY, sizeof(conn->dst),
net/bluetooth/hci_conn.c
623
&conn->dst);
net/bluetooth/hci_conn.c
645
struct hci_conn *conn = container_of(work, struct hci_conn,
net/bluetooth/hci_conn.c
647
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
656
if (conn->role == HCI_ROLE_SLAVE) {
net/bluetooth/hci_conn.c
660
hci_conn_failed(conn, HCI_ERROR_ADVERTISING_TIMEOUT);
net/bluetooth/hci_conn.c
665
hci_abort_conn(conn, HCI_ERROR_REMOTE_USER_TERM);
net/bluetooth/hci_conn.c
684
static void bis_list(struct hci_conn *conn, void *data)
net/bluetooth/hci_conn.c
689
if (bacmp(&conn->dst, BDADDR_ANY))
net/bluetooth/hci_conn.c
692
if (d->big != conn->iso_qos.bcast.big || d->bis == BT_ISO_QOS_BIS_UNSET ||
net/bluetooth/hci_conn.c
693
d->bis != conn->iso_qos.bcast.bis)
net/bluetooth/hci_conn.c
71
void hci_connect_le_scan_cleanup(struct hci_conn *conn, u8 status)
net/bluetooth/hci_conn.c
721
static int hci_le_terminate_big(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_conn.c
726
bt_dev_dbg(hdev, "big 0x%2.2x bis 0x%2.2x", conn->iso_qos.bcast.big,
net/bluetooth/hci_conn.c
727
conn->iso_qos.bcast.bis);
net/bluetooth/hci_conn.c
733
d->big = conn->iso_qos.bcast.big;
net/bluetooth/hci_conn.c
734
d->bis = conn->iso_qos.bcast.bis;
net/bluetooth/hci_conn.c
735
d->big_term = test_and_clear_bit(HCI_CONN_BIG_CREATED, &conn->flags);
net/bluetooth/hci_conn.c
74
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
761
static void find_bis(struct hci_conn *conn, void *data)
net/bluetooth/hci_conn.c
766
if (d->big != conn->iso_qos.bcast.big)
net/bluetooth/hci_conn.c
772
static int hci_le_big_terminate(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_conn.c
777
bt_dev_dbg(hdev, "hcon %p big 0x%2.2x sync_handle 0x%4.4x", conn,
net/bluetooth/hci_conn.c
778
conn->iso_qos.bcast.big, conn->sync_handle);
net/bluetooth/hci_conn.c
784
d->big = conn->iso_qos.bcast.big;
net/bluetooth/hci_conn.c
785
d->sync_handle = conn->sync_handle;
net/bluetooth/hci_conn.c
787
if (conn->type == PA_LINK &&
net/bluetooth/hci_conn.c
788
test_and_clear_bit(HCI_CONN_PA_SYNC, &conn->flags)) {
net/bluetooth/hci_conn.c
79
bdaddr = &conn->dst;
net/bluetooth/hci_conn.c
798
if (test_and_clear_bit(HCI_CONN_BIG_SYNC, &conn->flags)) {
net/bluetooth/hci_conn.c
80
bdaddr_type = conn->dst_type;
net/bluetooth/hci_conn.c
823
static void bis_cleanup(struct hci_conn *conn)
net/bluetooth/hci_conn.c
825
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
828
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/hci_conn.c
830
if (conn->role == HCI_ROLE_MASTER) {
net/bluetooth/hci_conn.c
831
if (!test_and_clear_bit(HCI_CONN_PER_ADV, &conn->flags))
net/bluetooth/hci_conn.c
838
conn->iso_qos.bcast.big,
net/bluetooth/hci_conn.c
845
conn->iso_qos.bcast.big,
net/bluetooth/hci_conn.c
852
conn->iso_qos.bcast.big,
net/bluetooth/hci_conn.c
858
hci_le_terminate_big(hdev, conn);
net/bluetooth/hci_conn.c
860
hci_le_big_terminate(hdev, conn);
net/bluetooth/hci_conn.c
879
static void find_cis(struct hci_conn *conn, void *data)
net/bluetooth/hci_conn.c
884
if (!bacmp(&conn->dst, BDADDR_ANY) || d->cig != conn->iso_qos.ucast.cig)
net/bluetooth/hci_conn.c
894
static void cis_cleanup(struct hci_conn *conn)
net/bluetooth/hci_conn.c
896
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_conn.c
899
if (conn->iso_qos.ucast.cig == BT_ISO_QOS_CIG_UNSET)
net/bluetooth/hci_conn.c
903
d.cig = conn->iso_qos.ucast.cig;
net/bluetooth/hci_conn.c
916
hci_le_remove_cig(hdev, conn->iso_qos.ucast.cig);
net/bluetooth/hci_conn.c
929
struct hci_conn *conn;
net/bluetooth/hci_conn.c
94
if (params->conn) {
net/bluetooth/hci_conn.c
95
hci_conn_drop(params->conn);
net/bluetooth/hci_conn.c
96
hci_conn_put(params->conn);
net/bluetooth/hci_conn.c
963
conn = kzalloc_obj(*conn);
net/bluetooth/hci_conn.c
964
if (!conn)
net/bluetooth/hci_conn.c
969
bacpy(&conn->dst, dst);
net/bluetooth/hci_conn.c
97
params->conn = NULL;
net/bluetooth/hci_conn.c
970
conn->dst_type = dst_type;
net/bluetooth/hci_conn.c
972
bacpy(&conn->dst, &irk->bdaddr);
net/bluetooth/hci_conn.c
973
conn->dst_type = irk->addr_type;
net/bluetooth/hci_conn.c
976
bacpy(&conn->src, &hdev->bdaddr);
net/bluetooth/hci_conn.c
977
conn->handle = handle;
net/bluetooth/hci_conn.c
978
conn->hdev = hdev;
net/bluetooth/hci_conn.c
979
conn->type = type;
net/bluetooth/hci_conn.c
980
conn->role = role;
net/bluetooth/hci_conn.c
981
conn->mode = HCI_CM_ACTIVE;
net/bluetooth/hci_conn.c
982
conn->state = BT_OPEN;
net/bluetooth/hci_conn.c
983
conn->auth_type = HCI_AT_GENERAL_BONDING;
net/bluetooth/hci_conn.c
984
conn->io_capability = hdev->io_capability;
net/bluetooth/hci_conn.c
985
conn->remote_auth = 0xff;
net/bluetooth/hci_conn.c
986
conn->key_type = 0xff;
net/bluetooth/hci_conn.c
987
conn->rssi = HCI_RSSI_INVALID;
net/bluetooth/hci_conn.c
988
conn->tx_power = HCI_TX_POWER_INVALID;
net/bluetooth/hci_conn.c
989
conn->max_tx_power = HCI_TX_POWER_INVALID;
net/bluetooth/hci_conn.c
990
conn->sync_handle = HCI_SYNC_HANDLE_INVALID;
net/bluetooth/hci_conn.c
991
conn->sid = HCI_SID_INVALID;
net/bluetooth/hci_conn.c
993
set_bit(HCI_CONN_POWER_SAVE, &conn->flags);
net/bluetooth/hci_conn.c
994
conn->disc_timeout = HCI_DISCONN_TIMEOUT;
net/bluetooth/hci_conn.c
997
conn->auth_payload_timeout = DEFAULT_AUTH_PAYLOAD_TIMEOUT;
net/bluetooth/hci_conn.c
999
if (conn->role == HCI_ROLE_MASTER)
net/bluetooth/hci_core.c
1134
static bool hci_persistent_key(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_core.c
1150
if (!conn)
net/bluetooth/hci_core.c
1154
if (conn->type == LE_LINK)
net/bluetooth/hci_core.c
1158
if (conn->auth_type > 0x01 && conn->remote_auth > 0x01)
net/bluetooth/hci_core.c
1162
if (conn->auth_type == 0x02 || conn->auth_type == 0x03)
net/bluetooth/hci_core.c
1166
if (conn->remote_auth == 0x02 || conn->remote_auth == 0x03)
net/bluetooth/hci_core.c
1276
struct link_key *hci_add_link_key(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_core.c
1288
old_key_type = conn ? conn->key_type : 0xff;
net/bluetooth/hci_core.c
1301
(!conn || conn->remote_auth == 0xff) && old_key_type == 0xff) {
net/bluetooth/hci_core.c
1303
if (conn)
net/bluetooth/hci_core.c
1304
conn->key_type = type;
net/bluetooth/hci_core.c
1317
*persistent = hci_persistent_key(hdev, conn, type,
net/bluetooth/hci_core.c
2306
if (params->conn) {
net/bluetooth/hci_core.c
2307
hci_conn_drop(params->conn);
net/bluetooth/hci_core.c
2308
hci_conn_put(params->conn);
net/bluetooth/hci_core.c
3084
static int hci_send_conn_frame(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_core.c
3087
hci_conn_tx_queue(conn, skb);
net/bluetooth/hci_core.c
3224
struct hci_conn *conn = chan->conn;
net/bluetooth/hci_core.c
3225
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_core.c
3233
hci_add_acl_hdr(skb, conn->handle, flags);
net/bluetooth/hci_core.c
3262
hci_add_acl_hdr(skb, conn->handle, flags);
net/bluetooth/hci_core.c
3277
struct hci_dev *hdev = chan->conn->hdev;
net/bluetooth/hci_core.c
3287
void hci_send_sco(struct hci_conn *conn, struct sk_buff *skb)
net/bluetooth/hci_core.c
3289
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_core.c
3294
hdr.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_core.c
3303
skb_queue_tail(&conn->data_q, skb);
net/bluetooth/hci_core.c
3305
bt_dev_dbg(hdev, "hcon %p queued %d", conn,
net/bluetooth/hci_core.c
3306
skb_queue_len(&conn->data_q));
net/bluetooth/hci_core.c
3324
static void hci_queue_iso(struct hci_conn *conn, struct sk_buff_head *queue,
net/bluetooth/hci_core.c
3327
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_core.c
3339
hci_add_iso_hdr(skb, conn->handle, flags);
net/bluetooth/hci_core.c
3360
hci_add_iso_hdr(skb, conn->handle, flags);
net/bluetooth/hci_core.c
3368
bt_dev_dbg(hdev, "hcon %p queued %d", conn, skb_queue_len(queue));
net/bluetooth/hci_core.c
3371
void hci_send_iso(struct hci_conn *conn, struct sk_buff *skb)
net/bluetooth/hci_core.c
3373
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_core.c
3377
hci_queue_iso(conn, &conn->data_q, skb);
net/bluetooth/hci_core.c
3385
static inline void hci_quote_sent(struct hci_conn *conn, int num, int *quote)
net/bluetooth/hci_core.c
3390
if (!conn) {
net/bluetooth/hci_core.c
3395
hdev = conn->hdev;
net/bluetooth/hci_core.c
3397
switch (conn->type) {
net/bluetooth/hci_core.c
3415
bt_dev_err(hdev, "unknown link type %d", conn->type);
net/bluetooth/hci_core.c
3426
struct hci_conn *conn = NULL, *c;
net/bluetooth/hci_core.c
3450
conn = c;
net/bluetooth/hci_core.c
3459
hci_quote_sent(conn, num, quote);
net/bluetooth/hci_core.c
3461
BT_DBG("conn %p quote %d", conn, *quote);
net/bluetooth/hci_core.c
3462
return conn;
net/bluetooth/hci_core.c
3492
struct hci_conn *conn;
net/bluetooth/hci_core.c
3499
list_for_each_entry_rcu(conn, &h->list, list) {
net/bluetooth/hci_core.c
3502
if (conn->type != type)
net/bluetooth/hci_core.c
3505
if (conn->state != BT_CONNECTED && conn->state != BT_CONFIG)
net/bluetooth/hci_core.c
3510
list_for_each_entry_rcu(tmp, &conn->chan_list, list) {
net/bluetooth/hci_core.c
3528
if (conn->sent < min) {
net/bluetooth/hci_core.c
3529
min = conn->sent;
net/bluetooth/hci_core.c
3543
hci_quote_sent(chan->conn, num, quote);
net/bluetooth/hci_core.c
3552
struct hci_conn *conn;
net/bluetooth/hci_core.c
3559
list_for_each_entry_rcu(conn, &h->list, list) {
net/bluetooth/hci_core.c
3562
if (conn->type != type)
net/bluetooth/hci_core.c
3565
if (conn->state != BT_CONNECTED && conn->state != BT_CONFIG)
net/bluetooth/hci_core.c
3570
list_for_each_entry_rcu(chan, &conn->chan_list, list) {
net/bluetooth/hci_core.c
3638
struct hci_conn *conn;
net/bluetooth/hci_core.c
3656
while (*cnt && (conn = hci_low_sent(hdev, type, &quote))) {
net/bluetooth/hci_core.c
3657
while (quote-- && (skb = skb_dequeue(&conn->data_q))) {
net/bluetooth/hci_core.c
3659
hci_send_conn_frame(hdev, conn, skb);
net/bluetooth/hci_core.c
3661
conn->sent++;
net/bluetooth/hci_core.c
3662
if (conn->sent == ~0)
net/bluetooth/hci_core.c
3663
conn->sent = 0;
net/bluetooth/hci_core.c
3699
hci_conn_enter_active_mode(chan->conn,
net/bluetooth/hci_core.c
3702
hci_send_conn_frame(hdev, chan->conn, skb);
net/bluetooth/hci_core.c
3707
chan->conn->sent++;
net/bluetooth/hci_core.c
3758
hci_send_conn_frame(hdev, chan->conn, skb);
net/bluetooth/hci_core.c
3763
chan->conn->sent++;
net/bluetooth/hci_core.c
3778
struct hci_conn *conn;
net/bluetooth/hci_core.c
3791
while (*cnt && (conn = hci_low_sent(hdev, type, &quote))) {
net/bluetooth/hci_core.c
3792
while (quote-- && (skb = skb_dequeue(&conn->data_q))) {
net/bluetooth/hci_core.c
3795
hci_send_conn_frame(hdev, conn, skb);
net/bluetooth/hci_core.c
3798
conn->sent++;
net/bluetooth/hci_core.c
3799
if (conn->sent == ~0)
net/bluetooth/hci_core.c
3800
conn->sent = 0;
net/bluetooth/hci_debugfs.c
1263
void hci_debugfs_create_conn(struct hci_conn *conn)
net/bluetooth/hci_debugfs.c
1265
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_debugfs.c
1268
if (IS_ERR_OR_NULL(hdev->debugfs) || conn->debugfs)
net/bluetooth/hci_debugfs.c
1271
snprintf(name, sizeof(name), "%u", conn->handle);
net/bluetooth/hci_debugfs.c
1272
conn->debugfs = debugfs_create_dir(name, hdev->debugfs);
net/bluetooth/hci_debugfs.h
28
void hci_debugfs_create_conn(struct hci_conn *conn);
net/bluetooth/hci_debugfs.h
45
static inline void hci_debugfs_create_conn(struct hci_conn *conn)
net/bluetooth/hci_event.c
1079
struct hci_conn *conn;
net/bluetooth/hci_event.c
1097
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
1098
if (conn) {
net/bluetooth/hci_event.c
1099
conn->clock = le32_to_cpu(rp->clock);
net/bluetooth/hci_event.c
1100
conn->clock_accuracy = le16_to_cpu(rp->accuracy);
net/bluetooth/hci_event.c
1163
struct hci_conn *conn;
net/bluetooth/hci_event.c
1179
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->bdaddr);
net/bluetooth/hci_event.c
1180
if (conn)
net/bluetooth/hci_event.c
1181
conn->pin_length = cp->pin_len;
net/bluetooth/hci_event.c
1567
struct hci_conn *conn;
net/bluetooth/hci_event.c
1571
conn = hci_lookup_le_connect(hdev);
net/bluetooth/hci_event.c
1572
if (conn)
net/bluetooth/hci_event.c
1574
&conn->le_conn_timeout,
net/bluetooth/hci_event.c
1575
conn->conn_timeout);
net/bluetooth/hci_event.c
1610
struct hci_conn *conn;
net/bluetooth/hci_event.c
1619
conn = hci_lookup_le_connect(hdev);
net/bluetooth/hci_event.c
1620
if (conn)
net/bluetooth/hci_event.c
1622
&conn->le_conn_timeout,
net/bluetooth/hci_event.c
1623
conn->conn_timeout);
net/bluetooth/hci_event.c
169
struct hci_conn *conn;
net/bluetooth/hci_event.c
178
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
179
if (conn)
net/bluetooth/hci_event.c
180
conn->role = rp->role;
net/bluetooth/hci_event.c
191
struct hci_conn *conn;
net/bluetooth/hci_event.c
200
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
201
if (conn)
net/bluetooth/hci_event.c
202
conn->link_policy = __le16_to_cpu(rp->policy);
net/bluetooth/hci_event.c
213
struct hci_conn *conn;
net/bluetooth/hci_event.c
2165
struct hci_conn *conn;
net/bluetooth/hci_event.c
2174
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
2175
if (conn)
net/bluetooth/hci_event.c
2176
conn->rssi = rp->rssi;
net/bluetooth/hci_event.c
2188
struct hci_conn *conn;
net/bluetooth/hci_event.c
2201
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
2202
if (!conn)
net/bluetooth/hci_event.c
2207
conn->tx_power = rp->tx_power;
net/bluetooth/hci_event.c
2210
conn->max_tx_power = rp->tx_power;
net/bluetooth/hci_event.c
2251
struct hci_conn *conn;
net/bluetooth/hci_event.c
2261
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->bdaddr);
net/bluetooth/hci_event.c
2263
bt_dev_dbg(hdev, "bdaddr %pMR hcon %p", &cp->bdaddr, conn);
net/bluetooth/hci_event.c
2266
if (conn && conn->state == BT_CONNECT) {
net/bluetooth/hci_event.c
2267
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
2268
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
2269
hci_conn_del(conn);
net/bluetooth/hci_event.c
227
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
2272
if (!conn) {
net/bluetooth/hci_event.c
2273
conn = hci_conn_add_unset(hdev, ACL_LINK, &cp->bdaddr,
net/bluetooth/hci_event.c
2275
if (IS_ERR(conn))
net/bluetooth/hci_event.c
2276
bt_dev_err(hdev, "connection err: %ld", PTR_ERR(conn));
net/bluetooth/hci_event.c
228
if (conn)
net/bluetooth/hci_event.c
229
conn->link_policy = get_unaligned_le16(sent + 2);
net/bluetooth/hci_event.c
2309
if (link && link->conn) {
net/bluetooth/hci_event.c
2310
link->conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
2312
hci_connect_cfm(link->conn, status);
net/bluetooth/hci_event.c
2313
hci_conn_del(link->conn);
net/bluetooth/hci_event.c
2323
struct hci_conn *conn;
net/bluetooth/hci_event.c
2336
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2337
if (conn) {
net/bluetooth/hci_event.c
2338
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
2339
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
2340
hci_conn_drop(conn);
net/bluetooth/hci_event.c
2350
struct hci_conn *conn;
net/bluetooth/hci_event.c
2363
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2364
if (conn) {
net/bluetooth/hci_event.c
2365
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
2366
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
2367
hci_conn_drop(conn);
net/bluetooth/hci_event.c
2375
struct hci_conn *conn)
net/bluetooth/hci_event.c
2377
if (conn->state != BT_CONFIG || !conn->out)
net/bluetooth/hci_event.c
2380
if (conn->pending_sec_level == BT_SECURITY_SDP)
net/bluetooth/hci_event.c
2387
if (!hci_conn_ssp_enabled(conn) && !(conn->auth_type & 0x01) &&
net/bluetooth/hci_event.c
2388
conn->pending_sec_level != BT_SECURITY_FIPS &&
net/bluetooth/hci_event.c
2389
conn->pending_sec_level != BT_SECURITY_HIGH &&
net/bluetooth/hci_event.c
2390
conn->pending_sec_level != BT_SECURITY_MEDIUM)
net/bluetooth/hci_event.c
2437
static void hci_check_pending_name(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_event.c
2448
if (conn && (conn->state == BT_CONFIG || conn->state == BT_CONNECTED))
net/bluetooth/hci_event.c
2449
mgmt_device_connected(hdev, conn, name, name_len);
net/bluetooth/hci_event.c
2484
struct hci_conn *conn;
net/bluetooth/hci_event.c
2499
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->bdaddr);
net/bluetooth/hci_event.c
2502
hci_check_pending_name(hdev, conn, &cp->bdaddr, NULL, 0);
net/bluetooth/hci_event.c
2504
if (!conn)
net/bluetooth/hci_event.c
2507
if (!hci_outgoing_auth_needed(hdev, conn))
net/bluetooth/hci_event.c
2510
if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->flags)) {
net/bluetooth/hci_event.c
2513
set_bit(HCI_CONN_AUTH_INITIATOR, &conn->flags);
net/bluetooth/hci_event.c
2515
auth_cp.handle = __cpu_to_le16(conn->handle);
net/bluetooth/hci_event.c
2527
struct hci_conn *conn;
net/bluetooth/hci_event.c
2540
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2541
if (conn) {
net/bluetooth/hci_event.c
2542
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
2543
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
2544
hci_conn_drop(conn);
net/bluetooth/hci_event.c
2554
struct hci_conn *conn;
net/bluetooth/hci_event.c
2567
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2568
if (conn) {
net/bluetooth/hci_event.c
2569
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
2570
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
2571
hci_conn_drop(conn);
net/bluetooth/hci_event.c
2592
if (link && link->conn) {
net/bluetooth/hci_event.c
2593
link->conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
2595
hci_connect_cfm(link->conn, status);
net/bluetooth/hci_event.c
2596
hci_conn_del(link->conn);
net/bluetooth/hci_event.c
2638
struct hci_conn *conn;
net/bluetooth/hci_event.c
2651
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2652
if (conn) {
net/bluetooth/hci_event.c
2653
clear_bit(HCI_CONN_MODE_CHANGE_PEND, &conn->flags);
net/bluetooth/hci_event.c
2655
if (test_and_clear_bit(HCI_CONN_SCO_SETUP_PEND, &conn->flags))
net/bluetooth/hci_event.c
2656
hci_sco_setup(conn, status);
net/bluetooth/hci_event.c
2665
struct hci_conn *conn;
net/bluetooth/hci_event.c
2678
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2679
if (conn) {
net/bluetooth/hci_event.c
2680
clear_bit(HCI_CONN_MODE_CHANGE_PEND, &conn->flags);
net/bluetooth/hci_event.c
2682
if (test_and_clear_bit(HCI_CONN_SCO_SETUP_PEND, &conn->flags))
net/bluetooth/hci_event.c
2683
hci_sco_setup(conn, status);
net/bluetooth/hci_event.c
2693
struct hci_conn *conn;
net/bluetooth/hci_event.c
2710
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2711
if (!conn)
net/bluetooth/hci_event.c
2715
mgmt_disconnect_failed(hdev, &conn->dst, conn->type,
net/bluetooth/hci_event.c
2716
conn->dst_type, status);
net/bluetooth/hci_event.c
2718
if (conn->type == LE_LINK && conn->role == HCI_ROLE_SLAVE) {
net/bluetooth/hci_event.c
2719
hdev->cur_adv_instance = conn->adv_instance;
net/bluetooth/hci_event.c
2724
hci_disconn_cfm(conn, HCI_ERROR_UNSPECIFIED);
net/bluetooth/hci_event.c
2733
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
2735
mgmt_conn = test_and_clear_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags);
net/bluetooth/hci_event.c
2737
if (conn->type == ACL_LINK) {
net/bluetooth/hci_event.c
2738
if (test_and_clear_bit(HCI_CONN_FLUSH_KEY, &conn->flags))
net/bluetooth/hci_event.c
2739
hci_remove_link_key(hdev, &conn->dst);
net/bluetooth/hci_event.c
2742
params = hci_conn_params_lookup(hdev, &conn->dst, conn->dst_type);
net/bluetooth/hci_event.c
2761
mgmt_device_disconnected(hdev, &conn->dst, conn->type, conn->dst_type,
net/bluetooth/hci_event.c
2764
hci_disconn_cfm(conn, cp->reason);
net/bluetooth/hci_event.c
2772
hci_conn_del(conn);
net/bluetooth/hci_event.c
2803
struct hci_conn *conn;
net/bluetooth/hci_event.c
2805
conn = hci_conn_hash_lookup_le(hdev, peer_addr,
net/bluetooth/hci_event.c
2807
if (!conn)
net/bluetooth/hci_event.c
2816
conn->init_addr_type = own_address_type;
net/bluetooth/hci_event.c
2818
bacpy(&conn->init_addr, &hdev->random_addr);
net/bluetooth/hci_event.c
2820
bacpy(&conn->init_addr, &hdev->bdaddr);
net/bluetooth/hci_event.c
2822
conn->resp_addr_type = peer_addr_type;
net/bluetooth/hci_event.c
2823
bacpy(&conn->resp_addr, peer_addr);
net/bluetooth/hci_event.c
2879
struct hci_conn *conn;
net/bluetooth/hci_event.c
2892
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2893
if (conn) {
net/bluetooth/hci_event.c
2894
conn->le_tx_def_phys = cp->tx_phys;
net/bluetooth/hci_event.c
2895
conn->le_rx_def_phys = cp->rx_phys;
net/bluetooth/hci_event.c
2904
struct hci_conn *conn;
net/bluetooth/hci_event.c
2917
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2918
if (conn && conn->state == BT_CONFIG)
net/bluetooth/hci_event.c
2919
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
2927
struct hci_conn *conn;
net/bluetooth/hci_event.c
2940
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
2941
if (!conn)
net/bluetooth/hci_event.c
2944
if (conn->state != BT_CONNECTED)
net/bluetooth/hci_event.c
2947
hci_disconnect(conn, HCI_ERROR_AUTH_FAILURE);
net/bluetooth/hci_event.c
2948
hci_conn_drop(conn);
net/bluetooth/hci_event.c
2957
struct hci_conn *conn;
net/bluetooth/hci_event.c
2970
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->bdaddr);
net/bluetooth/hci_event.c
2971
if (conn)
net/bluetooth/hci_event.c
2972
clear_bit(HCI_CONN_RSWITCH_PEND, &conn->flags);
net/bluetooth/hci_event.c
3080
static int hci_read_enc_key_size(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_event.c
3083
u8 *key_enc_size = hci_conn_key_enc_size(conn);
net/bluetooth/hci_event.c
3086
conn->enc_key_size = HCI_LINK_KEY_SIZE;
net/bluetooth/hci_event.c
3090
bt_dev_dbg(hdev, "hcon %p", conn);
net/bluetooth/hci_event.c
3093
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_event.c
3101
conn->enc_key_size = *key_enc_size;
net/bluetooth/hci_event.c
3103
conn->enc_key_size = hdev->min_enc_key_size;
net/bluetooth/hci_event.c
3112
struct hci_conn *conn;
net/bluetooth/hci_event.c
3129
conn = hci_conn_hash_lookup_ba(hdev, ev->link_type, &ev->bdaddr);
net/bluetooth/hci_event.c
3130
if (!conn ||
net/bluetooth/hci_event.c
3131
(conn->role == HCI_ROLE_MASTER && conn->state != BT_CONNECT)) {
net/bluetooth/hci_event.c
3151
conn = hci_conn_add_unset(hdev, ev->link_type,
net/bluetooth/hci_event.c
3154
if (IS_ERR(conn)) {
net/bluetooth/hci_event.c
3155
bt_dev_err(hdev, "connection err: %ld", PTR_ERR(conn));
net/bluetooth/hci_event.c
3162
conn = hci_conn_hash_lookup_ba(hdev, ESCO_LINK,
net/bluetooth/hci_event.c
3164
if (!conn)
net/bluetooth/hci_event.c
3167
conn->type = SCO_LINK;
net/bluetooth/hci_event.c
3177
if (!HCI_CONN_HANDLE_UNSET(conn->handle)) {
net/bluetooth/hci_event.c
3183
status = hci_conn_set_handle(conn, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
3187
if (conn->type == ACL_LINK) {
net/bluetooth/hci_event.c
3188
conn->state = BT_CONFIG;
net/bluetooth/hci_event.c
3189
hci_conn_hold(conn);
net/bluetooth/hci_event.c
3191
if (!conn->out && !hci_conn_ssp_enabled(conn) &&
net/bluetooth/hci_event.c
3193
conn->disc_timeout = HCI_PAIRING_TIMEOUT;
net/bluetooth/hci_event.c
3195
conn->disc_timeout = HCI_DISCONN_TIMEOUT;
net/bluetooth/hci_event.c
3197
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
3199
hci_debugfs_create_conn(conn);
net/bluetooth/hci_event.c
3200
hci_conn_add_sysfs(conn);
net/bluetooth/hci_event.c
3203
set_bit(HCI_CONN_AUTH, &conn->flags);
net/bluetooth/hci_event.c
3206
set_bit(HCI_CONN_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
3209
if (ev->encr_mode == 1 && !test_bit(HCI_CONN_ENCRYPT, &conn->flags) &&
net/bluetooth/hci_event.c
3215
set_bit(HCI_CONN_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
3216
hci_read_enc_key_size(hdev, conn);
net/bluetooth/hci_event.c
3217
hci_encrypt_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3222
if (conn->type == ACL_LINK) {
net/bluetooth/hci_event.c
3232
if (!conn->out && hdev->hci_ver < BLUETOOTH_VER_2_0) {
net/bluetooth/hci_event.c
3235
cp.pkt_type = cpu_to_le16(conn->pkt_type);
net/bluetooth/hci_event.c
3241
if (conn->type == ACL_LINK)
net/bluetooth/hci_event.c
3242
hci_sco_setup(conn, ev->status);
net/bluetooth/hci_event.c
3246
hci_conn_failed(conn, status);
net/bluetooth/hci_event.c
3248
switch (conn->setting & SCO_AIRMODE_MASK) {
net/bluetooth/hci_event.c
3255
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
3277
struct hci_conn *conn;
net/bluetooth/hci_event.c
3330
conn = hci_conn_hash_lookup_ba(hdev, ev->link_type,
net/bluetooth/hci_event.c
3332
if (!conn) {
net/bluetooth/hci_event.c
3333
conn = hci_conn_add_unset(hdev, ev->link_type, &ev->bdaddr, 0,
net/bluetooth/hci_event.c
3335
if (IS_ERR(conn)) {
net/bluetooth/hci_event.c
3336
bt_dev_err(hdev, "connection err: %ld", PTR_ERR(conn));
net/bluetooth/hci_event.c
3341
memcpy(conn->dev_class, ev->dev_class, 3);
net/bluetooth/hci_event.c
3348
conn->state = BT_CONNECT;
net/bluetooth/hci_event.c
3360
conn->state = BT_CONNECT;
net/bluetooth/hci_event.c
3363
cp.pkt_type = cpu_to_le16(conn->pkt_type);
net/bluetooth/hci_event.c
3374
conn->state = BT_CONNECT2;
net/bluetooth/hci_event.c
3375
hci_connect_cfm(conn, 0);
net/bluetooth/hci_event.c
3405
struct hci_conn *conn;
net/bluetooth/hci_event.c
3412
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
3413
if (!conn)
net/bluetooth/hci_event.c
3417
mgmt_disconnect_failed(hdev, &conn->dst, conn->type,
net/bluetooth/hci_event.c
3418
conn->dst_type, ev->status);
net/bluetooth/hci_event.c
3422
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
3424
mgmt_connected = test_and_clear_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags);
net/bluetooth/hci_event.c
3426
if (test_bit(HCI_CONN_AUTH_FAILURE, &conn->flags))
net/bluetooth/hci_event.c
3431
mgmt_device_disconnected(hdev, &conn->dst, conn->type, conn->dst_type,
net/bluetooth/hci_event.c
3434
if (conn->type == ACL_LINK) {
net/bluetooth/hci_event.c
3435
if (test_and_clear_bit(HCI_CONN_FLUSH_KEY, &conn->flags))
net/bluetooth/hci_event.c
3436
hci_remove_link_key(hdev, &conn->dst);
net/bluetooth/hci_event.c
3444
if (conn->type == LE_LINK) {
net/bluetooth/hci_event.c
3445
params = hci_conn_params_lookup(hdev, &conn->dst,
net/bluetooth/hci_event.c
3446
conn->dst_type);
net/bluetooth/hci_event.c
3468
hci_disconn_cfm(conn, ev->reason);
net/bluetooth/hci_event.c
3480
if (conn->type == LE_LINK && conn->role == HCI_ROLE_SLAVE) {
net/bluetooth/hci_event.c
3481
hdev->cur_adv_instance = conn->adv_instance;
net/bluetooth/hci_event.c
3485
hci_conn_del(conn);
net/bluetooth/hci_event.c
3495
struct hci_conn *conn;
net/bluetooth/hci_event.c
3501
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
3502
if (!conn)
net/bluetooth/hci_event.c
3506
clear_bit(HCI_CONN_AUTH_FAILURE, &conn->flags);
net/bluetooth/hci_event.c
3507
set_bit(HCI_CONN_AUTH, &conn->flags);
net/bluetooth/hci_event.c
3508
conn->sec_level = conn->pending_sec_level;
net/bluetooth/hci_event.c
3511
set_bit(HCI_CONN_AUTH_FAILURE, &conn->flags);
net/bluetooth/hci_event.c
3513
mgmt_auth_failed(conn, ev->status);
net/bluetooth/hci_event.c
3516
clear_bit(HCI_CONN_AUTH_PEND, &conn->flags);
net/bluetooth/hci_event.c
3518
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
3519
if (!ev->status && hci_conn_ssp_enabled(conn)) {
net/bluetooth/hci_event.c
3526
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
3527
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3528
hci_conn_drop(conn);
net/bluetooth/hci_event.c
3531
hci_auth_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3533
hci_conn_hold(conn);
net/bluetooth/hci_event.c
3534
conn->disc_timeout = HCI_DISCONN_TIMEOUT;
net/bluetooth/hci_event.c
3535
hci_conn_drop(conn);
net/bluetooth/hci_event.c
3538
if (test_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags)) {
net/bluetooth/hci_event.c
3546
clear_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags);
net/bluetooth/hci_event.c
3547
hci_encrypt_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3559
struct hci_conn *conn;
net/bluetooth/hci_event.c
3565
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
3571
hci_check_pending_name(hdev, conn, &ev->bdaddr, ev->name,
net/bluetooth/hci_event.c
3574
hci_check_pending_name(hdev, conn, &ev->bdaddr, NULL, 0);
net/bluetooth/hci_event.c
3577
if (!conn)
net/bluetooth/hci_event.c
3580
if (!hci_outgoing_auth_needed(hdev, conn))
net/bluetooth/hci_event.c
3583
if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->flags)) {
net/bluetooth/hci_event.c
3586
set_bit(HCI_CONN_AUTH_INITIATOR, &conn->flags);
net/bluetooth/hci_event.c
3588
cp.handle = __cpu_to_le16(conn->handle);
net/bluetooth/hci_event.c
3600
struct hci_conn *conn;
net/bluetooth/hci_event.c
3606
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
3607
if (!conn)
net/bluetooth/hci_event.c
3613
set_bit(HCI_CONN_AUTH, &conn->flags);
net/bluetooth/hci_event.c
3614
set_bit(HCI_CONN_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
3615
conn->sec_level = conn->pending_sec_level;
net/bluetooth/hci_event.c
3618
if (conn->key_type == HCI_LK_AUTH_COMBINATION_P256)
net/bluetooth/hci_event.c
3619
set_bit(HCI_CONN_FIPS, &conn->flags);
net/bluetooth/hci_event.c
3621
if ((conn->type == ACL_LINK && ev->encrypt == 0x02) ||
net/bluetooth/hci_event.c
3622
conn->type == LE_LINK)
net/bluetooth/hci_event.c
3623
set_bit(HCI_CONN_AES_CCM, &conn->flags);
net/bluetooth/hci_event.c
3625
clear_bit(HCI_CONN_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
3626
clear_bit(HCI_CONN_AES_CCM, &conn->flags);
net/bluetooth/hci_event.c
3633
if (ev->status && conn->type == LE_LINK) {
net/bluetooth/hci_event.c
3638
clear_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags);
net/bluetooth/hci_event.c
3641
if (!hci_conn_check_link_mode(conn))
net/bluetooth/hci_event.c
3644
if (ev->status && conn->state == BT_CONNECTED) {
net/bluetooth/hci_event.c
3646
set_bit(HCI_CONN_AUTH_FAILURE, &conn->flags);
net/bluetooth/hci_event.c
3651
hci_encrypt_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3652
hci_disconnect(conn, HCI_ERROR_AUTH_FAILURE);
net/bluetooth/hci_event.c
3653
hci_conn_drop(conn);
net/bluetooth/hci_event.c
3658
if (!ev->status && ev->encrypt && conn->type == ACL_LINK) {
net/bluetooth/hci_event.c
3659
if (hci_read_enc_key_size(hdev, conn))
net/bluetooth/hci_event.c
3678
if (test_bit(HCI_CONN_ENCRYPT, &conn->flags) &&
net/bluetooth/hci_event.c
3679
test_bit(HCI_CONN_AES_CCM, &conn->flags) &&
net/bluetooth/hci_event.c
3680
((conn->type == ACL_LINK && lmp_ping_capable(hdev)) ||
net/bluetooth/hci_event.c
3681
(conn->type == LE_LINK && (hdev->le_features[0] & HCI_LE_PING)))) {
net/bluetooth/hci_event.c
3684
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_event.c
3686
if (hci_send_cmd(conn->hdev, HCI_OP_WRITE_AUTH_PAYLOAD_TO,
net/bluetooth/hci_event.c
3692
hci_encrypt_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3702
struct hci_conn *conn;
net/bluetooth/hci_event.c
3708
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
3709
if (conn) {
net/bluetooth/hci_event.c
3711
set_bit(HCI_CONN_SECURE, &conn->flags);
net/bluetooth/hci_event.c
3713
clear_bit(HCI_CONN_AUTH_PEND, &conn->flags);
net/bluetooth/hci_event.c
3715
hci_key_change_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3725
struct hci_conn *conn;
net/bluetooth/hci_event.c
3731
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
3732
if (!conn)
net/bluetooth/hci_event.c
3736
memcpy(conn->features[0], ev->features, 8);
net/bluetooth/hci_event.c
3738
if (conn->state != BT_CONFIG)
net/bluetooth/hci_event.c
3742
lmp_ext_feat_capable(conn)) {
net/bluetooth/hci_event.c
3754
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/hci_event.c
3758
mgmt_device_connected(hdev, conn, NULL, 0);
net/bluetooth/hci_event.c
3761
if (!hci_outgoing_auth_needed(hdev, conn)) {
net/bluetooth/hci_event.c
3762
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
3763
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
3764
hci_conn_drop(conn);
net/bluetooth/hci_event.c
3818
struct hci_conn *conn, *tmp;
net/bluetooth/hci_event.c
3822
list_for_each_entry_safe(conn, tmp, &hdev->conn_hash.list, list) {
net/bluetooth/hci_event.c
3823
if (conn->type != CIS_LINK ||
net/bluetooth/hci_event.c
3824
conn->state == BT_OPEN || conn->iso_qos.ucast.cig != cig)
net/bluetooth/hci_event.c
3827
if (HCI_CONN_HANDLE_UNSET(conn->handle))
net/bluetooth/hci_event.c
3828
hci_conn_failed(conn, status);
net/bluetooth/hci_event.c
3837
struct hci_conn *conn;
net/bluetooth/hci_event.c
3873
conn = hci_conn_hash_lookup_cis(hdev, NULL, 0, rp->cig_id,
net/bluetooth/hci_event.c
3875
if (!conn || !bacmp(&conn->dst, BDADDR_ANY))
net/bluetooth/hci_event.c
3878
if (conn->state != BT_BOUND && conn->state != BT_CONNECT)
net/bluetooth/hci_event.c
3881
if (hci_conn_set_handle(conn, __le16_to_cpu(rp->handle[i])))
net/bluetooth/hci_event.c
3884
if (conn->state == BT_CONNECT)
net/bluetooth/hci_event.c
3902
struct hci_conn *conn;
net/bluetooth/hci_event.c
3912
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
3913
if (!conn)
net/bluetooth/hci_event.c
3917
hci_connect_cfm(conn, rp->status);
net/bluetooth/hci_event.c
3918
hci_conn_del(conn);
net/bluetooth/hci_event.c
3926
if (conn->iso_qos.ucast.out.sdu && !conn->iso_qos.ucast.in.sdu)
net/bluetooth/hci_event.c
3927
hci_connect_cfm(conn, rp->status);
net/bluetooth/hci_event.c
3934
hci_connect_cfm(conn, rp->status);
net/bluetooth/hci_event.c
3937
if (!rp->status && test_bit(HCI_CONN_BIG_SYNC, &conn->flags))
net/bluetooth/hci_event.c
3938
mgmt_device_connected(hdev, conn, NULL, 0);
net/bluetooth/hci_event.c
3971
struct hci_conn *conn;
net/bluetooth/hci_event.c
3984
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(cp->handle));
net/bluetooth/hci_event.c
3985
if (conn && conn->state == BT_CONFIG)
net/bluetooth/hci_event.c
3986
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
4344
struct hci_conn *conn;
net/bluetooth/hci_event.c
4349
conn = hci_conn_hash_lookup_handle(hdev, handle);
net/bluetooth/hci_event.c
4350
if (conn) {
net/bluetooth/hci_event.c
4352
&conn->flags))
net/bluetooth/hci_event.c
4354
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
4355
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
4356
hci_conn_del(conn);
net/bluetooth/hci_event.c
4462
struct hci_conn *conn;
net/bluetooth/hci_event.c
4468
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
4469
if (conn) {
net/bluetooth/hci_event.c
4471
conn->role = ev->role;
net/bluetooth/hci_event.c
4473
clear_bit(HCI_CONN_RSWITCH_PEND, &conn->flags);
net/bluetooth/hci_event.c
4475
hci_role_switch_cfm(conn, ev->status, ev->role);
net/bluetooth/hci_event.c
4497
struct hci_conn *conn;
net/bluetooth/hci_event.c
4504
conn = hci_conn_hash_lookup_handle(hdev, handle);
net/bluetooth/hci_event.c
4505
if (!conn)
net/bluetooth/hci_event.c
4512
if (conn->sent >= count) {
net/bluetooth/hci_event.c
4513
conn->sent -= count;
net/bluetooth/hci_event.c
4516
conn, conn->sent, count);
net/bluetooth/hci_event.c
4517
conn->sent = 0;
net/bluetooth/hci_event.c
4521
hci_conn_tx_dequeue(conn);
net/bluetooth/hci_event.c
4523
switch (conn->type) {
net/bluetooth/hci_event.c
4560
conn->type, conn);
net/bluetooth/hci_event.c
4574
struct hci_conn *conn;
net/bluetooth/hci_event.c
4580
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
4581
if (conn) {
net/bluetooth/hci_event.c
4582
conn->mode = ev->mode;
net/bluetooth/hci_event.c
4585
&conn->flags)) {
net/bluetooth/hci_event.c
4586
if (conn->mode == HCI_CM_ACTIVE)
net/bluetooth/hci_event.c
4587
set_bit(HCI_CONN_POWER_SAVE, &conn->flags);
net/bluetooth/hci_event.c
4589
clear_bit(HCI_CONN_POWER_SAVE, &conn->flags);
net/bluetooth/hci_event.c
4592
if (test_and_clear_bit(HCI_CONN_SCO_SETUP_PEND, &conn->flags))
net/bluetooth/hci_event.c
4593
hci_sco_setup(conn, ev->status);
net/bluetooth/hci_event.c
4603
struct hci_conn *conn;
net/bluetooth/hci_event.c
4609
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
4610
if (!conn)
net/bluetooth/hci_event.c
4613
if (conn->state == BT_CONNECTED) {
net/bluetooth/hci_event.c
4614
hci_conn_hold(conn);
net/bluetooth/hci_event.c
4615
conn->disc_timeout = HCI_PAIRING_TIMEOUT;
net/bluetooth/hci_event.c
4616
hci_conn_drop(conn);
net/bluetooth/hci_event.c
4620
!test_bit(HCI_CONN_AUTH_INITIATOR, &conn->flags)) {
net/bluetooth/hci_event.c
4626
if (conn->pending_sec_level == BT_SECURITY_HIGH)
net/bluetooth/hci_event.c
4638
static void conn_set_key(struct hci_conn *conn, u8 key_type, u8 pin_len)
net/bluetooth/hci_event.c
4643
conn->pin_length = pin_len;
net/bluetooth/hci_event.c
4644
conn->key_type = key_type;
net/bluetooth/hci_event.c
4653
conn->pending_sec_level = BT_SECURITY_HIGH;
net/bluetooth/hci_event.c
4655
conn->pending_sec_level = BT_SECURITY_MEDIUM;
net/bluetooth/hci_event.c
4659
conn->pending_sec_level = BT_SECURITY_MEDIUM;
net/bluetooth/hci_event.c
4662
conn->pending_sec_level = BT_SECURITY_HIGH;
net/bluetooth/hci_event.c
4665
conn->pending_sec_level = BT_SECURITY_FIPS;
net/bluetooth/hci_event.c
4675
struct hci_conn *conn;
net/bluetooth/hci_event.c
4693
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
4694
if (conn) {
net/bluetooth/hci_event.c
4695
clear_bit(HCI_CONN_NEW_LINK_KEY, &conn->flags);
net/bluetooth/hci_event.c
4699
conn->auth_type != 0xff && (conn->auth_type & 0x01)) {
net/bluetooth/hci_event.c
4705
(conn->pending_sec_level == BT_SECURITY_HIGH ||
net/bluetooth/hci_event.c
4706
conn->pending_sec_level == BT_SECURITY_FIPS)) {
net/bluetooth/hci_event.c
4711
conn_set_key(conn, key->type, key->pin_len);
net/bluetooth/hci_event.c
4732
struct hci_conn *conn;
net/bluetooth/hci_event.c
4741
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
4742
if (!conn)
net/bluetooth/hci_event.c
4749
hci_disconnect(conn, HCI_ERROR_AUTH_FAILURE);
net/bluetooth/hci_event.c
4750
hci_conn_drop(conn);
net/bluetooth/hci_event.c
4754
hci_conn_hold(conn);
net/bluetooth/hci_event.c
4755
conn->disc_timeout = HCI_DISCONN_TIMEOUT;
net/bluetooth/hci_event.c
4756
hci_conn_drop(conn);
net/bluetooth/hci_event.c
4758
set_bit(HCI_CONN_NEW_LINK_KEY, &conn->flags);
net/bluetooth/hci_event.c
4759
conn_set_key(conn, ev->key_type, conn->pin_length);
net/bluetooth/hci_event.c
4764
key = hci_add_link_key(hdev, conn, &ev->bdaddr, ev->link_key,
net/bluetooth/hci_event.c
4773
conn_set_key(conn, key->type, key->pin_len);
net/bluetooth/hci_event.c
4790
clear_bit(HCI_CONN_FLUSH_KEY, &conn->flags);
net/bluetooth/hci_event.c
4792
set_bit(HCI_CONN_FLUSH_KEY, &conn->flags);
net/bluetooth/hci_event.c
4802
struct hci_conn *conn;
net/bluetooth/hci_event.c
4808
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
4809
if (conn && !ev->status) {
net/bluetooth/hci_event.c
4812
ie = hci_inquiry_cache_lookup(hdev, &conn->dst);
net/bluetooth/hci_event.c
4826
struct hci_conn *conn;
net/bluetooth/hci_event.c
4832
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
4833
if (conn && !ev->status)
net/bluetooth/hci_event.c
4834
conn->pkt_type = __le16_to_cpu(ev->pkt_type);
net/bluetooth/hci_event.c
4949
struct hci_conn *conn;
net/bluetooth/hci_event.c
4955
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
4956
if (!conn)
net/bluetooth/hci_event.c
4960
memcpy(conn->features[ev->page], ev->features, 8);
net/bluetooth/hci_event.c
4965
ie = hci_inquiry_cache_lookup(hdev, &conn->dst);
net/bluetooth/hci_event.c
4970
set_bit(HCI_CONN_SSP_ENABLED, &conn->flags);
net/bluetooth/hci_event.c
4980
clear_bit(HCI_CONN_SSP_ENABLED, &conn->flags);
net/bluetooth/hci_event.c
4984
set_bit(HCI_CONN_SC_ENABLED, &conn->flags);
net/bluetooth/hci_event.c
4987
if (conn->state != BT_CONFIG)
net/bluetooth/hci_event.c
4990
if (!ev->status && !test_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags)) {
net/bluetooth/hci_event.c
4993
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/hci_event.c
4997
mgmt_device_connected(hdev, conn, NULL, 0);
net/bluetooth/hci_event.c
5000
if (!hci_outgoing_auth_needed(hdev, conn)) {
net/bluetooth/hci_event.c
5001
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
5002
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
5003
hci_conn_drop(conn);
net/bluetooth/hci_event.c
5014
struct hci_conn *conn;
net/bluetooth/hci_event.c
5035
conn = hci_conn_hash_lookup_ba(hdev, ev->link_type, &ev->bdaddr);
net/bluetooth/hci_event.c
5036
if (!conn) {
net/bluetooth/hci_event.c
5049
conn = hci_conn_hash_lookup_ba(hdev, ESCO_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5050
if (!conn)
net/bluetooth/hci_event.c
5060
if (!HCI_CONN_HANDLE_UNSET(conn->handle)) {
net/bluetooth/hci_event.c
5067
status = hci_conn_set_handle(conn, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
5069
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
5073
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
5074
conn->type = ev->link_type;
net/bluetooth/hci_event.c
5076
hci_debugfs_create_conn(conn);
net/bluetooth/hci_event.c
5077
hci_conn_add_sysfs(conn);
net/bluetooth/hci_event.c
5088
if (conn->out) {
net/bluetooth/hci_event.c
5089
conn->pkt_type = (hdev->esco_type & SCO_ESCO_MASK) |
net/bluetooth/hci_event.c
5091
if (hci_setup_sync(conn, conn->parent->handle))
net/bluetooth/hci_event.c
5097
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
5105
if (conn->codec.data_path == 0 && hdev->notify) {
net/bluetooth/hci_event.c
5116
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
5118
hci_conn_del(conn);
net/bluetooth/hci_event.c
5200
struct hci_conn *conn;
net/bluetooth/hci_event.c
5207
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
5208
if (!conn)
net/bluetooth/hci_event.c
5214
if (conn->type != LE_LINK)
net/bluetooth/hci_event.c
5218
conn->sec_level = conn->pending_sec_level;
net/bluetooth/hci_event.c
5220
clear_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags);
net/bluetooth/hci_event.c
5222
if (ev->status && conn->state == BT_CONNECTED) {
net/bluetooth/hci_event.c
5223
hci_disconnect(conn, HCI_ERROR_AUTH_FAILURE);
net/bluetooth/hci_event.c
5224
hci_conn_drop(conn);
net/bluetooth/hci_event.c
5228
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
5230
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
5232
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
5233
hci_conn_drop(conn);
net/bluetooth/hci_event.c
5235
hci_auth_cfm(conn, ev->status);
net/bluetooth/hci_event.c
5237
hci_conn_hold(conn);
net/bluetooth/hci_event.c
5238
conn->disc_timeout = HCI_DISCONN_TIMEOUT;
net/bluetooth/hci_event.c
5239
hci_conn_drop(conn);
net/bluetooth/hci_event.c
5246
static u8 hci_get_auth_req(struct hci_conn *conn)
net/bluetooth/hci_event.c
5249
if (conn->remote_auth == HCI_AT_NO_BONDING ||
net/bluetooth/hci_event.c
5250
conn->remote_auth == HCI_AT_NO_BONDING_MITM)
net/bluetooth/hci_event.c
5251
return conn->remote_auth | (conn->auth_type & 0x01);
net/bluetooth/hci_event.c
5256
if (conn->remote_cap != HCI_IO_NO_INPUT_OUTPUT &&
net/bluetooth/hci_event.c
5257
conn->io_capability != HCI_IO_NO_INPUT_OUTPUT)
net/bluetooth/hci_event.c
5258
return conn->remote_auth | 0x01;
net/bluetooth/hci_event.c
5261
return (conn->remote_auth & ~0x01) | (conn->auth_type & 0x01);
net/bluetooth/hci_event.c
5264
static u8 bredr_oob_data_present(struct hci_conn *conn)
net/bluetooth/hci_event.c
5266
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_event.c
5269
data = hci_find_remote_oob_data(hdev, &conn->dst, BDADDR_BREDR);
net/bluetooth/hci_event.c
5310
struct hci_conn *conn;
net/bluetooth/hci_event.c
5316
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5317
if (!conn || !hci_dev_test_flag(hdev, HCI_SSP_ENABLED))
net/bluetooth/hci_event.c
5321
set_bit(HCI_CONN_SSP_ENABLED, &conn->flags);
net/bluetooth/hci_event.c
5323
hci_conn_hold(conn);
net/bluetooth/hci_event.c
5332
test_bit(HCI_CONN_AUTH_INITIATOR, &conn->flags) ||
net/bluetooth/hci_event.c
5333
(conn->remote_auth & ~0x01) == HCI_AT_NO_BONDING) {
net/bluetooth/hci_event.c
5339
cp.capability = (conn->io_capability == 0x04) ?
net/bluetooth/hci_event.c
5340
HCI_IO_DISPLAY_YESNO : conn->io_capability;
net/bluetooth/hci_event.c
5343
if (conn->remote_auth == 0xff) {
net/bluetooth/hci_event.c
5347
if (conn->io_capability != HCI_IO_NO_INPUT_OUTPUT &&
net/bluetooth/hci_event.c
5348
conn->auth_type != HCI_AT_NO_BONDING)
net/bluetooth/hci_event.c
5349
conn->auth_type |= 0x01;
net/bluetooth/hci_event.c
5351
conn->auth_type = hci_get_auth_req(conn);
net/bluetooth/hci_event.c
5358
conn->auth_type &= HCI_AT_NO_BONDING_MITM;
net/bluetooth/hci_event.c
5360
cp.authentication = conn->auth_type;
net/bluetooth/hci_event.c
5361
cp.oob_data = bredr_oob_data_present(conn);
net/bluetooth/hci_event.c
5383
struct hci_conn *conn;
net/bluetooth/hci_event.c
5389
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5390
if (!conn)
net/bluetooth/hci_event.c
5393
conn->remote_cap = ev->capability;
net/bluetooth/hci_event.c
5394
conn->remote_auth = ev->authentication;
net/bluetooth/hci_event.c
5405
struct hci_conn *conn;
net/bluetooth/hci_event.c
5414
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5415
if (!conn)
net/bluetooth/hci_event.c
5418
loc_mitm = (conn->auth_type & 0x01);
net/bluetooth/hci_event.c
5419
rem_mitm = (conn->remote_auth & 0x01);
net/bluetooth/hci_event.c
5426
if (conn->pending_sec_level > BT_SECURITY_MEDIUM &&
net/bluetooth/hci_event.c
5427
conn->remote_cap == HCI_IO_NO_INPUT_OUTPUT) {
net/bluetooth/hci_event.c
5435
if ((!loc_mitm || conn->remote_cap == HCI_IO_NO_INPUT_OUTPUT) &&
net/bluetooth/hci_event.c
5436
(!rem_mitm || conn->io_capability == HCI_IO_NO_INPUT_OUTPUT)) {
net/bluetooth/hci_event.c
5442
if (!test_bit(HCI_CONN_AUTH_PEND, &conn->flags) &&
net/bluetooth/hci_event.c
5443
conn->io_capability != HCI_IO_NO_INPUT_OUTPUT) {
net/bluetooth/hci_event.c
5464
queue_delayed_work(conn->hdev->workqueue,
net/bluetooth/hci_event.c
5465
&conn->auto_accept_work, delay);
net/bluetooth/hci_event.c
5497
struct hci_conn *conn;
net/bluetooth/hci_event.c
5501
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5502
if (!conn)
net/bluetooth/hci_event.c
5505
conn->passkey_notify = __le32_to_cpu(ev->passkey);
net/bluetooth/hci_event.c
5506
conn->passkey_entered = 0;
net/bluetooth/hci_event.c
5509
mgmt_user_passkey_notify(hdev, &conn->dst, conn->type,
net/bluetooth/hci_event.c
5510
conn->dst_type, conn->passkey_notify,
net/bluetooth/hci_event.c
5511
conn->passkey_entered);
net/bluetooth/hci_event.c
5518
struct hci_conn *conn;
net/bluetooth/hci_event.c
5522
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5523
if (!conn)
net/bluetooth/hci_event.c
5528
conn->passkey_entered = 0;
net/bluetooth/hci_event.c
5532
conn->passkey_entered++;
net/bluetooth/hci_event.c
5536
conn->passkey_entered--;
net/bluetooth/hci_event.c
5540
conn->passkey_entered = 0;
net/bluetooth/hci_event.c
5548
mgmt_user_passkey_notify(hdev, &conn->dst, conn->type,
net/bluetooth/hci_event.c
5549
conn->dst_type, conn->passkey_notify,
net/bluetooth/hci_event.c
5550
conn->passkey_entered);
net/bluetooth/hci_event.c
5557
struct hci_conn *conn;
net/bluetooth/hci_event.c
5563
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5564
if (!conn || !hci_conn_ssp_enabled(conn))
net/bluetooth/hci_event.c
5568
conn->remote_auth = 0xff;
net/bluetooth/hci_event.c
5575
if (!test_bit(HCI_CONN_AUTH_PEND, &conn->flags) && ev->status)
net/bluetooth/hci_event.c
5576
mgmt_auth_failed(conn, ev->status);
net/bluetooth/hci_event.c
5578
hci_conn_drop(conn);
net/bluetooth/hci_event.c
5589
struct hci_conn *conn;
net/bluetooth/hci_event.c
5595
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
net/bluetooth/hci_event.c
5596
if (conn)
net/bluetooth/hci_event.c
5597
memcpy(conn->features[1], ev->features, 8);
net/bluetooth/hci_event.c
5660
static void le_conn_update_addr(struct hci_conn *conn, bdaddr_t *bdaddr,
net/bluetooth/hci_event.c
5663
if (conn->out) {
net/bluetooth/hci_event.c
5664
conn->dst_type = bdaddr_type;
net/bluetooth/hci_event.c
5665
conn->resp_addr_type = bdaddr_type;
net/bluetooth/hci_event.c
5666
bacpy(&conn->resp_addr, bdaddr);
net/bluetooth/hci_event.c
5672
conn->init_addr_type = ADDR_LE_DEV_RANDOM;
net/bluetooth/hci_event.c
5673
bacpy(&conn->init_addr, local_rpa);
net/bluetooth/hci_event.c
5674
} else if (hci_dev_test_flag(conn->hdev, HCI_PRIVACY)) {
net/bluetooth/hci_event.c
5675
conn->init_addr_type = ADDR_LE_DEV_RANDOM;
net/bluetooth/hci_event.c
5676
bacpy(&conn->init_addr, &conn->hdev->rpa);
net/bluetooth/hci_event.c
5678
hci_copy_identity_address(conn->hdev, &conn->init_addr,
net/bluetooth/hci_event.c
5679
&conn->init_addr_type);
net/bluetooth/hci_event.c
5682
conn->resp_addr_type = conn->hdev->adv_addr_type;
net/bluetooth/hci_event.c
5687
conn->resp_addr_type = ADDR_LE_DEV_RANDOM;
net/bluetooth/hci_event.c
5688
bacpy(&conn->resp_addr, local_rpa);
net/bluetooth/hci_event.c
5689
} else if (conn->hdev->adv_addr_type == ADDR_LE_DEV_RANDOM) {
net/bluetooth/hci_event.c
5693
if (!ext_adv_capable(conn->hdev))
net/bluetooth/hci_event.c
5694
bacpy(&conn->resp_addr,
net/bluetooth/hci_event.c
5695
&conn->hdev->random_addr);
net/bluetooth/hci_event.c
5697
bacpy(&conn->resp_addr, &conn->hdev->bdaddr);
net/bluetooth/hci_event.c
5700
conn->init_addr_type = bdaddr_type;
net/bluetooth/hci_event.c
5701
bacpy(&conn->init_addr, bdaddr);
net/bluetooth/hci_event.c
5708
conn->le_conn_min_interval = conn->hdev->le_conn_min_interval;
net/bluetooth/hci_event.c
5709
conn->le_conn_max_interval = conn->hdev->le_conn_max_interval;
net/bluetooth/hci_event.c
5720
struct hci_conn *conn;
net/bluetooth/hci_event.c
5742
conn = hci_conn_hash_lookup_role(hdev, LE_LINK, role, bdaddr);
net/bluetooth/hci_event.c
5743
if (!conn ||
net/bluetooth/hci_event.c
5744
(conn->role == HCI_ROLE_MASTER && conn->state != BT_CONNECT)) {
net/bluetooth/hci_event.c
5751
conn = hci_conn_add_unset(hdev, LE_LINK, bdaddr, bdaddr_type,
net/bluetooth/hci_event.c
5753
if (IS_ERR(conn)) {
net/bluetooth/hci_event.c
5754
bt_dev_err(hdev, "connection err: %ld", PTR_ERR(conn));
net/bluetooth/hci_event.c
5766
if (conn->out) {
net/bluetooth/hci_event.c
5767
conn->resp_addr_type = bdaddr_type;
net/bluetooth/hci_event.c
5768
bacpy(&conn->resp_addr, bdaddr);
net/bluetooth/hci_event.c
5770
conn->init_addr_type = ADDR_LE_DEV_RANDOM;
net/bluetooth/hci_event.c
5771
bacpy(&conn->init_addr, &hdev->rpa);
net/bluetooth/hci_event.c
5774
&conn->init_addr,
net/bluetooth/hci_event.c
5775
&conn->init_addr_type);
net/bluetooth/hci_event.c
5779
cancel_delayed_work(&conn->le_conn_timeout);
net/bluetooth/hci_event.c
5788
if (!HCI_CONN_HANDLE_UNSET(conn->handle)) {
net/bluetooth/hci_event.c
5793
le_conn_update_addr(conn, bdaddr, bdaddr_type, local_rpa);
net/bluetooth/hci_event.c
5804
irk = hci_get_irk(hdev, &conn->dst, conn->dst_type);
net/bluetooth/hci_event.c
5806
bacpy(&conn->dst, &irk->bdaddr);
net/bluetooth/hci_event.c
5807
conn->dst_type = irk->addr_type;
net/bluetooth/hci_event.c
5810
conn->dst_type = ev_bdaddr_type(hdev, conn->dst_type, NULL);
net/bluetooth/hci_event.c
5816
if (status || hci_conn_set_handle(conn, handle))
net/bluetooth/hci_event.c
5820
if (test_bit(HCI_CONN_CANCEL, &conn->flags)) {
net/bluetooth/hci_event.c
5821
hci_conn_drop(conn);
net/bluetooth/hci_event.c
5825
if (conn->dst_type == ADDR_LE_DEV_PUBLIC)
net/bluetooth/hci_event.c
5831
if (hci_bdaddr_list_lookup(&hdev->reject_list, &conn->dst, addr_type)) {
net/bluetooth/hci_event.c
5832
hci_conn_drop(conn);
net/bluetooth/hci_event.c
5836
mgmt_device_connected(hdev, conn, NULL, 0);
net/bluetooth/hci_event.c
5838
conn->sec_level = BT_SECURITY_LOW;
net/bluetooth/hci_event.c
5839
conn->state = BT_CONFIG;
net/bluetooth/hci_event.c
5846
conn->adv_instance = hdev->cur_adv_instance;
net/bluetooth/hci_event.c
5848
conn->le_conn_interval = interval;
net/bluetooth/hci_event.c
5849
conn->le_conn_latency = latency;
net/bluetooth/hci_event.c
5850
conn->le_supv_timeout = supervision_timeout;
net/bluetooth/hci_event.c
5852
hci_debugfs_create_conn(conn);
net/bluetooth/hci_event.c
5853
hci_conn_add_sysfs(conn);
net/bluetooth/hci_event.c
5855
err = hci_le_read_remote_features(conn);
net/bluetooth/hci_event.c
5857
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
5858
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
5861
params = hci_pend_le_action_lookup(&hdev->pend_le_conns, &conn->dst,
net/bluetooth/hci_event.c
5862
conn->dst_type);
net/bluetooth/hci_event.c
5865
if (params->conn) {
net/bluetooth/hci_event.c
5866
hci_conn_drop(params->conn);
net/bluetooth/hci_event.c
5867
hci_conn_put(params->conn);
net/bluetooth/hci_event.c
5868
params->conn = NULL;
net/bluetooth/hci_event.c
5910
struct hci_conn *conn;
net/bluetooth/hci_event.c
5917
conn = hci_conn_hash_lookup_pa_sync_handle(hdev, handle);
net/bluetooth/hci_event.c
5918
if (conn) {
net/bluetooth/hci_event.c
5919
clear_bit(HCI_CONN_BIG_SYNC, &conn->flags);
net/bluetooth/hci_event.c
5920
clear_bit(HCI_CONN_PA_SYNC, &conn->flags);
net/bluetooth/hci_event.c
5921
hci_disconn_cfm(conn, HCI_ERROR_REMOTE_USER_TERM);
net/bluetooth/hci_event.c
5922
hci_conn_del(conn);
net/bluetooth/hci_event.c
5932
struct hci_conn *conn;
net/bluetooth/hci_event.c
5974
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->conn_handle));
net/bluetooth/hci_event.c
5975
if (conn) {
net/bluetooth/hci_event.c
5979
conn->adv_instance = ev->handle;
net/bluetooth/hci_event.c
5982
bacmp(&conn->resp_addr, BDADDR_ANY))
net/bluetooth/hci_event.c
5986
bacpy(&conn->resp_addr, &hdev->random_addr);
net/bluetooth/hci_event.c
5991
bacpy(&conn->resp_addr, &adv->random_addr);
net/bluetooth/hci_event.c
6014
struct hci_conn *pa_sync, *conn;
net/bluetooth/hci_event.c
6023
conn = hci_conn_hash_lookup_create_pa_sync(hdev);
net/bluetooth/hci_event.c
6024
if (!conn) {
net/bluetooth/hci_event.c
6031
conn->sync_handle = le16_to_cpu(ev->sync_handle);
net/bluetooth/hci_event.c
6032
conn->sid = HCI_SID_INVALID;
net/bluetooth/hci_event.c
6068
struct hci_conn *conn;
net/bluetooth/hci_event.c
6077
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
6078
if (conn) {
net/bluetooth/hci_event.c
6079
conn->le_conn_interval = le16_to_cpu(ev->interval);
net/bluetooth/hci_event.c
6080
conn->le_conn_latency = le16_to_cpu(ev->latency);
net/bluetooth/hci_event.c
6081
conn->le_supv_timeout = le16_to_cpu(ev->supervision_timeout);
net/bluetooth/hci_event.c
6093
struct hci_conn *conn;
net/bluetooth/hci_event.c
6144
conn = hci_connect_le(hdev, addr, addr_type, addr_resolved,
net/bluetooth/hci_event.c
6147
if (!IS_ERR(conn)) {
net/bluetooth/hci_event.c
6158
params->conn = hci_conn_get(conn);
net/bluetooth/hci_event.c
6160
return conn;
net/bluetooth/hci_event.c
6163
switch (PTR_ERR(conn)) {
net/bluetooth/hci_event.c
6172
BT_DBG("Failed to connect: err %ld", PTR_ERR(conn));
net/bluetooth/hci_event.c
6187
struct hci_conn *conn;
net/bluetooth/hci_event.c
6273
conn = check_pending_le_conn(hdev, bdaddr, bdaddr_type, bdaddr_resolved,
net/bluetooth/hci_event.c
6275
if (!ext_adv && conn && type == LE_ADV_IND &&
net/bluetooth/hci_event.c
6280
memcpy(conn->le_adv_data, data, len);
net/bluetooth/hci_event.c
6281
conn->le_adv_data_len = len;
net/bluetooth/hci_event.c
6523
struct hci_conn *conn;
net/bluetooth/hci_event.c
6525
conn = hci_conn_hash_lookup_create_pa_sync(hdev);
net/bluetooth/hci_event.c
6526
if (conn && conn->sid == HCI_SID_INVALID)
net/bluetooth/hci_event.c
6527
conn->sid = info->sid;
net/bluetooth/hci_event.c
6550
struct hci_conn *pa_sync, *conn;
net/bluetooth/hci_event.c
6559
conn = hci_conn_hash_lookup_create_pa_sync(hdev);
net/bluetooth/hci_event.c
6560
if (!conn) {
net/bluetooth/hci_event.c
6567
clear_bit(HCI_CONN_CREATE_PA_SYNC, &conn->flags);
net/bluetooth/hci_event.c
6569
conn->sync_handle = le16_to_cpu(ev->handle);
net/bluetooth/hci_event.c
6570
conn->sid = HCI_SID_INVALID;
net/bluetooth/hci_event.c
6645
struct hci_conn *conn;
net/bluetooth/hci_event.c
6651
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
6652
if (conn) {
net/bluetooth/hci_event.c
6654
memcpy(conn->le_features, ev->features, 8);
net/bluetooth/hci_event.c
6657
if (!(conn->le_features[1] & HCI_LE_PHY_2M)) {
net/bluetooth/hci_event.c
6658
conn->le_tx_def_phys &= ~HCI_LE_SET_PHY_2M;
net/bluetooth/hci_event.c
6659
conn->le_rx_def_phys &= ~HCI_LE_SET_PHY_2M;
net/bluetooth/hci_event.c
6662
if (!(conn->le_features[1] & HCI_LE_PHY_CODED)) {
net/bluetooth/hci_event.c
6663
conn->le_tx_def_phys &= ~HCI_LE_SET_PHY_CODED;
net/bluetooth/hci_event.c
6664
conn->le_rx_def_phys &= ~HCI_LE_SET_PHY_CODED;
net/bluetooth/hci_event.c
6668
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
6680
if (!conn->out && ev->status == HCI_ERROR_UNSUPPORTED_REMOTE_FEATURE &&
net/bluetooth/hci_event.c
6686
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
6687
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
6700
struct hci_conn *conn;
net/bluetooth/hci_event.c
6707
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
6708
if (conn == NULL)
net/bluetooth/hci_event.c
6711
ltk = hci_find_ltk(hdev, &conn->dst, conn->dst_type, conn->role);
net/bluetooth/hci_event.c
6727
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_event.c
6729
conn->pending_sec_level = smp_ltk_sec_level(ltk);
net/bluetooth/hci_event.c
6731
conn->enc_key_size = ltk->enc_size;
net/bluetooth/hci_event.c
6742
set_bit(HCI_CONN_STK_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
6746
clear_bit(HCI_CONN_STK_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
6876
struct hci_conn *conn;
net/bluetooth/hci_event.c
6885
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
6886
if (!conn)
net/bluetooth/hci_event.c
6889
conn->le_tx_phy = ev->tx_phy;
net/bluetooth/hci_event.c
6890
conn->le_rx_phy = ev->rx_phy;
net/bluetooth/hci_event.c
6915
struct hci_conn *conn;
net/bluetooth/hci_event.c
6925
conn = hci_conn_hash_lookup_handle(hdev, handle);
net/bluetooth/hci_event.c
6926
if (!conn) {
net/bluetooth/hci_event.c
6933
if (conn->type != CIS_LINK) {
net/bluetooth/hci_event.c
6940
qos = &conn->iso_qos;
net/bluetooth/hci_event.c
6942
pending = test_and_clear_bit(HCI_CONN_CREATE_CIS, &conn->flags);
net/bluetooth/hci_event.c
6959
switch (conn->role) {
net/bluetooth/hci_event.c
6993
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
6994
hci_debugfs_create_conn(conn);
net/bluetooth/hci_event.c
6995
hci_conn_add_sysfs(conn);
net/bluetooth/hci_event.c
6996
hci_iso_setup_path(conn);
net/bluetooth/hci_event.c
7000
conn->state = BT_CLOSED;
net/bluetooth/hci_event.c
7001
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
7002
hci_conn_del(conn);
net/bluetooth/hci_event.c
7093
struct hci_conn *conn;
net/bluetooth/hci_event.c
7105
while ((conn = hci_conn_hash_lookup_big_state(hdev, ev->handle,
net/bluetooth/hci_event.c
7109
hci_connect_cfm(conn, ev->status);
net/bluetooth/hci_event.c
7110
hci_conn_del(conn);
net/bluetooth/hci_event.c
7114
if (hci_conn_set_handle(conn,
net/bluetooth/hci_event.c
7118
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
7119
set_bit(HCI_CONN_BIG_CREATED, &conn->flags);
net/bluetooth/hci_event.c
7120
hci_debugfs_create_conn(conn);
net/bluetooth/hci_event.c
7121
hci_conn_add_sysfs(conn);
net/bluetooth/hci_event.c
7122
hci_iso_setup_path(conn);
net/bluetooth/hci_event.c
7141
struct hci_conn *bis, *conn;
net/bluetooth/hci_event.c
7152
conn = hci_conn_hash_lookup_big_sync_pend(hdev, ev->handle,
net/bluetooth/hci_event.c
7154
if (!conn) {
net/bluetooth/hci_event.c
7161
clear_bit(HCI_CONN_CREATE_BIG_SYNC, &conn->flags);
net/bluetooth/hci_event.c
7163
conn->num_bis = 0;
net/bluetooth/hci_event.c
7164
memset(conn->bis, 0, sizeof(conn->num_bis));
net/bluetooth/hci_event.c
7186
bis->sync_handle = conn->sync_handle;
net/bluetooth/hci_event.c
721
struct hci_conn *conn;
net/bluetooth/hci_event.c
7293
struct hci_conn *conn;
net/bluetooth/hci_event.c
7299
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle));
net/bluetooth/hci_event.c
7300
if (!conn)
net/bluetooth/hci_event.c
7304
memcpy(conn->le_features, ev->features, 248);
net/bluetooth/hci_event.c
7307
if (!(conn->le_features[1] & HCI_LE_PHY_2M)) {
net/bluetooth/hci_event.c
7308
conn->le_tx_def_phys &= ~HCI_LE_SET_PHY_2M;
net/bluetooth/hci_event.c
7309
conn->le_rx_def_phys &= ~HCI_LE_SET_PHY_2M;
net/bluetooth/hci_event.c
731
conn = hci_conn_hash_lookup_handle(hdev, handle);
net/bluetooth/hci_event.c
7312
if (!(conn->le_features[1] & HCI_LE_PHY_CODED)) {
net/bluetooth/hci_event.c
7313
conn->le_tx_def_phys &= ~HCI_LE_SET_PHY_CODED;
net/bluetooth/hci_event.c
7314
conn->le_rx_def_phys &= ~HCI_LE_SET_PHY_CODED;
net/bluetooth/hci_event.c
7318
if (conn->state == BT_CONFIG) {
net/bluetooth/hci_event.c
732
if (!conn) {
net/bluetooth/hci_event.c
7330
if (!conn->out &&
net/bluetooth/hci_event.c
7337
conn->state = BT_CONNECTED;
net/bluetooth/hci_event.c
7338
hci_connect_cfm(conn, status);
net/bluetooth/hci_event.c
744
conn->enc_key_size = 0;
net/bluetooth/hci_event.c
746
u8 *key_enc_size = hci_conn_key_enc_size(conn);
net/bluetooth/hci_event.c
748
conn->enc_key_size = rp->key_size;
net/bluetooth/hci_event.c
755
if (conn->enc_key_size < hdev->min_enc_key_size ||
net/bluetooth/hci_event.c
756
(key_enc_size && conn->enc_key_size < *key_enc_size)) {
net/bluetooth/hci_event.c
766
clear_bit(HCI_CONN_ENCRYPT, &conn->flags);
net/bluetooth/hci_event.c
767
clear_bit(HCI_CONN_AES_CCM, &conn->flags);
net/bluetooth/hci_event.c
771
if (key_enc_size && *key_enc_size != conn->enc_key_size)
net/bluetooth/hci_event.c
772
*key_enc_size = conn->enc_key_size;
net/bluetooth/hci_event.c
775
hci_encrypt_cfm(conn, status);
net/bluetooth/hci_event.c
804
struct hci_conn *conn;
net/bluetooth/hci_event.c
813
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
814
if (conn)
net/bluetooth/hci_event.c
815
conn->auth_payload_timeout = __le16_to_cpu(rp->timeout);
net/bluetooth/hci_event.c
826
struct hci_conn *conn;
net/bluetooth/hci_event.c
837
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
net/bluetooth/hci_event.c
838
if (!conn) {
net/bluetooth/hci_event.c
844
conn->auth_payload_timeout = get_unaligned_le16(sent + 2);
net/bluetooth/hci_sync.c
2786
struct hci_conn *conn;
net/bluetooth/hci_sync.c
2788
conn = hci_conn_hash_lookup_create_pa_sync(hdev);
net/bluetooth/hci_sync.c
2789
if (conn) {
net/bluetooth/hci_sync.c
2794
bacpy(&pa.addr, &conn->dst);
net/bluetooth/hci_sync.c
2795
pa.addr_type = conn->dst_type;
net/bluetooth/hci_sync.c
2951
struct hci_conn *conn;
net/bluetooth/hci_sync.c
2953
conn = hci_conn_hash_lookup_ba(hdev, PA_LINK,
net/bluetooth/hci_sync.c
2955
if (conn) {
net/bluetooth/hci_sync.c
2956
struct bt_iso_qos *qos = &conn->iso_qos;
net/bluetooth/hci_sync.c
3456
struct hci_conn *conn;
net/bluetooth/hci_sync.c
3458
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &b->bdaddr);
net/bluetooth/hci_sync.c
3459
if (!conn)
net/bluetooth/hci_sync.c
3462
if (conn->state != BT_CONNECTED && conn->state != BT_CONFIG)
net/bluetooth/hci_sync.c
5259
if (p->conn) {
net/bluetooth/hci_sync.c
5260
hci_conn_drop(p->conn);
net/bluetooth/hci_sync.c
5261
hci_conn_put(p->conn);
net/bluetooth/hci_sync.c
5262
p->conn = NULL;
net/bluetooth/hci_sync.c
5565
static int hci_disconnect_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
5570
if (conn->type == BIS_LINK || conn->type == PA_LINK) {
net/bluetooth/hci_sync.c
5575
hci_conn_failed(conn, reason);
net/bluetooth/hci_sync.c
5582
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
5601
struct hci_conn *conn, u8 reason)
net/bluetooth/hci_sync.c
5606
if (test_bit(HCI_CONN_SCANNING, &conn->flags))
net/bluetooth/hci_sync.c
5609
if (conn->role == HCI_ROLE_SLAVE ||
net/bluetooth/hci_sync.c
5610
test_and_set_bit(HCI_CONN_CANCEL, &conn->flags))
net/bluetooth/hci_sync.c
5617
static int hci_connect_cancel_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
5620
if (conn->type == LE_LINK)
net/bluetooth/hci_sync.c
5621
return hci_le_connect_cancel_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5623
if (conn->type == CIS_LINK) {
net/bluetooth/hci_sync.c
5632
if (test_bit(HCI_CONN_CREATE_CIS, &conn->flags))
net/bluetooth/hci_sync.c
5633
return hci_disconnect_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5639
if (conn->type == BIS_LINK || conn->type == PA_LINK) {
net/bluetooth/hci_sync.c
5656
6, &conn->dst,
net/bluetooth/hci_sync.c
5661
6, &conn->dst, HCI_CMD_TIMEOUT);
net/bluetooth/hci_sync.c
5664
static int hci_reject_sco_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
5670
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/hci_sync.c
5683
static int hci_le_reject_cis_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
5689
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
5696
static int hci_reject_conn_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
5701
if (conn->type == CIS_LINK)
net/bluetooth/hci_sync.c
5702
return hci_le_reject_cis_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5704
if (conn->type == BIS_LINK || conn->type == PA_LINK)
net/bluetooth/hci_sync.c
5707
if (conn->type == SCO_LINK || conn->type == ESCO_LINK)
net/bluetooth/hci_sync.c
5708
return hci_reject_sco_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5711
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/hci_sync.c
5718
int hci_abort_conn_sync(struct hci_dev *hdev, struct hci_conn *conn, u8 reason)
net/bluetooth/hci_sync.c
5721
u16 handle = conn->handle;
net/bluetooth/hci_sync.c
5725
switch (conn->state) {
net/bluetooth/hci_sync.c
5728
err = hci_disconnect_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5731
err = hci_connect_cancel_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5734
err = hci_reject_conn_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5748
if (!c || c != conn) {
net/bluetooth/hci_sync.c
5759
conn->state = BT_CLOSED;
net/bluetooth/hci_sync.c
5760
hci_disconn_cfm(conn, reason);
net/bluetooth/hci_sync.c
5761
hci_conn_del(conn);
net/bluetooth/hci_sync.c
5763
hci_conn_failed(conn, reason);
net/bluetooth/hci_sync.c
5774
struct hci_conn *conn;
net/bluetooth/hci_sync.c
5777
while ((conn = list_first_or_null_rcu(head, struct hci_conn, list))) {
net/bluetooth/hci_sync.c
5779
conn = hci_conn_get(conn);
net/bluetooth/hci_sync.c
5786
hci_abort_conn_sync(hdev, conn, reason);
net/bluetooth/hci_sync.c
5787
hci_conn_put(conn);
net/bluetooth/hci_sync.c
6386
static bool conn_use_rpa(struct hci_conn *conn)
net/bluetooth/hci_sync.c
6388
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_sync.c
6394
struct hci_conn *conn)
net/bluetooth/hci_sync.c
6402
err = hci_update_random_address_sync(hdev, false, conn_use_rpa(conn),
net/bluetooth/hci_sync.c
6410
err = hci_get_random_address(hdev, false, conn_use_rpa(conn), NULL,
net/bluetooth/hci_sync.c
6424
cp.peer_addr_type = conn->dst_type;
net/bluetooth/hci_sync.c
6425
bacpy(&cp.peer_addr, &conn->dst);
net/bluetooth/hci_sync.c
6462
struct hci_conn *conn)
net/bluetooth/hci_sync.c
6470
return hci_le_ext_directed_advertising_sync(hdev, conn);
net/bluetooth/hci_sync.c
6482
status = hci_update_random_address_sync(hdev, false, conn_use_rpa(conn),
net/bluetooth/hci_sync.c
6498
cp.direct_addr_type = conn->dst_type;
net/bluetooth/hci_sync.c
6499
bacpy(&cp.direct_addr, &conn->dst);
net/bluetooth/hci_sync.c
6513
static void set_ext_conn_params(struct hci_conn *conn,
net/bluetooth/hci_sync.c
6516
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_sync.c
6522
p->conn_interval_min = cpu_to_le16(conn->le_conn_min_interval);
net/bluetooth/hci_sync.c
6523
p->conn_interval_max = cpu_to_le16(conn->le_conn_max_interval);
net/bluetooth/hci_sync.c
6524
p->conn_latency = cpu_to_le16(conn->le_conn_latency);
net/bluetooth/hci_sync.c
6525
p->supervision_timeout = cpu_to_le16(conn->le_supv_timeout);
net/bluetooth/hci_sync.c
6531
struct hci_conn *conn, u8 own_addr_type)
net/bluetooth/hci_sync.c
6543
bacpy(&cp->peer_addr, &conn->dst);
net/bluetooth/hci_sync.c
6544
cp->peer_addr_type = conn->dst_type;
net/bluetooth/hci_sync.c
6549
if (scan_1m(hdev) && (conn->le_adv_phy == HCI_ADV_PHY_1M ||
net/bluetooth/hci_sync.c
6550
conn->le_adv_sec_phy == HCI_ADV_PHY_1M)) {
net/bluetooth/hci_sync.c
6552
set_ext_conn_params(conn, p);
net/bluetooth/hci_sync.c
6558
if (scan_2m(hdev) && (conn->le_adv_phy == HCI_ADV_PHY_2M ||
net/bluetooth/hci_sync.c
6559
conn->le_adv_sec_phy == HCI_ADV_PHY_2M)) {
net/bluetooth/hci_sync.c
6561
set_ext_conn_params(conn, p);
net/bluetooth/hci_sync.c
6567
if (scan_coded(hdev) && (conn->le_adv_phy == HCI_ADV_PHY_CODED ||
net/bluetooth/hci_sync.c
6568
conn->le_adv_sec_phy == HCI_ADV_PHY_CODED)) {
net/bluetooth/hci_sync.c
6570
set_ext_conn_params(conn, p);
net/bluetooth/hci_sync.c
6578
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
6587
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
6589
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
6592
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/hci_sync.c
6594
clear_bit(HCI_CONN_SCANNING, &conn->flags);
net/bluetooth/hci_sync.c
6595
conn->state = BT_CONNECT;
net/bluetooth/hci_sync.c
6598
if (conn->role == HCI_ROLE_SLAVE) {
net/bluetooth/hci_sync.c
6605
hci_conn_del(conn);
net/bluetooth/hci_sync.c
6612
err = hci_le_directed_advertising_sync(hdev, conn);
net/bluetooth/hci_sync.c
6620
params = hci_conn_params_lookup(hdev, &conn->dst, conn->dst_type);
net/bluetooth/hci_sync.c
6622
conn->le_conn_min_interval = params->conn_min_interval;
net/bluetooth/hci_sync.c
6623
conn->le_conn_max_interval = params->conn_max_interval;
net/bluetooth/hci_sync.c
6624
conn->le_conn_latency = params->conn_latency;
net/bluetooth/hci_sync.c
6625
conn->le_supv_timeout = params->supervision_timeout;
net/bluetooth/hci_sync.c
6627
conn->le_conn_min_interval = hdev->le_conn_min_interval;
net/bluetooth/hci_sync.c
6628
conn->le_conn_max_interval = hdev->le_conn_max_interval;
net/bluetooth/hci_sync.c
6629
conn->le_conn_latency = hdev->le_conn_latency;
net/bluetooth/hci_sync.c
6630
conn->le_supv_timeout = hdev->le_supv_timeout;
net/bluetooth/hci_sync.c
6647
err = hci_update_random_address_sync(hdev, false, conn_use_rpa(conn),
net/bluetooth/hci_sync.c
6653
err = hci_le_ext_create_conn_sync(hdev, conn, own_addr_type);
net/bluetooth/hci_sync.c
6662
bacpy(&cp.peer_addr, &conn->dst);
net/bluetooth/hci_sync.c
6663
cp.peer_addr_type = conn->dst_type;
net/bluetooth/hci_sync.c
6665
cp.conn_interval_min = cpu_to_le16(conn->le_conn_min_interval);
net/bluetooth/hci_sync.c
6666
cp.conn_interval_max = cpu_to_le16(conn->le_conn_max_interval);
net/bluetooth/hci_sync.c
6667
cp.conn_latency = cpu_to_le16(conn->le_conn_latency);
net/bluetooth/hci_sync.c
6668
cp.supervision_timeout = cpu_to_le16(conn->le_supv_timeout);
net/bluetooth/hci_sync.c
6683
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
6687
hci_le_connect_cancel_sync(hdev, conn, 0x00);
net/bluetooth/hci_sync.c
6698
struct hci_conn *conn;
net/bluetooth/hci_sync.c
6729
list_for_each_entry_rcu(conn, &hdev->conn_hash.list, list) {
net/bluetooth/hci_sync.c
6730
if (test_bit(HCI_CONN_CREATE_CIS, &conn->flags))
net/bluetooth/hci_sync.c
6735
list_for_each_entry_rcu(conn, &hdev->conn_hash.list, list) {
net/bluetooth/hci_sync.c
6738
if (hci_conn_check_create_cis(conn))
net/bluetooth/hci_sync.c
6741
cig = conn->iso_qos.ucast.cig;
net/bluetooth/hci_sync.c
6759
list_for_each_entry_rcu(conn, &hdev->conn_hash.list, list) {
net/bluetooth/hci_sync.c
6762
if (hci_conn_check_create_cis(conn) ||
net/bluetooth/hci_sync.c
6763
conn->iso_qos.ucast.cig != cig)
net/bluetooth/hci_sync.c
6766
set_bit(HCI_CONN_CREATE_CIS, &conn->flags);
net/bluetooth/hci_sync.c
6767
cis->acl_handle = cpu_to_le16(conn->parent->handle);
net/bluetooth/hci_sync.c
6768
cis->cis_handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
6788
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
6912
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
6917
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
6935
conn->state = BT_CONNECT;
net/bluetooth/hci_sync.c
6936
conn->out = true;
net/bluetooth/hci_sync.c
6937
conn->role = HCI_ROLE_MASTER;
net/bluetooth/hci_sync.c
6939
conn->attempt++;
net/bluetooth/hci_sync.c
6942
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/hci_sync.c
6945
ie = hci_inquiry_cache_lookup(hdev, &conn->dst);
net/bluetooth/hci_sync.c
6954
memcpy(conn->dev_class, ie->data.dev_class, 3);
net/bluetooth/hci_sync.c
6957
cp.pkt_type = cpu_to_le16(conn->pkt_type);
net/bluetooth/hci_sync.c
6966
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
6969
int hci_connect_acl_sync(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_sync.c
6973
err = hci_cmd_sync_queue_once(hdev, hci_acl_create_conn_sync, conn,
net/bluetooth/hci_sync.c
6980
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
6989
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
6993
hci_connect_le_scan_cleanup(conn, 0x00);
net/bluetooth/hci_sync.c
6998
if (conn != hci_lookup_le_connect(hdev))
net/bluetooth/hci_sync.c
7002
flush_delayed_work(&conn->le_conn_timeout);
net/bluetooth/hci_sync.c
7003
hci_conn_failed(conn, bt_status(err));
net/bluetooth/hci_sync.c
7009
int hci_connect_le_sync(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_sync.c
7013
err = hci_cmd_sync_queue_once(hdev, hci_le_create_conn_sync, conn,
net/bluetooth/hci_sync.c
7018
int hci_cancel_connect_sync(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_sync.c
7020
if (conn->state != BT_OPEN)
net/bluetooth/hci_sync.c
7023
switch (conn->type) {
net/bluetooth/hci_sync.c
7027
conn, NULL);
net/bluetooth/hci_sync.c
7030
conn, create_le_conn_complete);
net/bluetooth/hci_sync.c
7036
int hci_le_conn_update_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
7042
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
7056
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7066
if (hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
7067
clear_bit(HCI_CONN_CREATE_PA_SYNC, &conn->flags);
net/bluetooth/hci_sync.c
7088
static int hci_le_past_params_sync(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/hci_sync.c
7116
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
7122
struct hci_conn *conn = data, *le;
net/bluetooth/hci_sync.c
7123
struct bt_iso_qos *qos = &conn->iso_qos;
net/bluetooth/hci_sync.c
7126
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
7129
if (conn->sync_handle != HCI_SYNC_HANDLE_INVALID)
net/bluetooth/hci_sync.c
7139
if (conn->sid == HCI_SID_INVALID &&
net/bluetooth/hci_sync.c
7150
set_bit(HCI_CONN_CREATE_PA_SYNC, &conn->flags);
net/bluetooth/hci_sync.c
7160
le = hci_conn_hash_lookup_le(hdev, &conn->dst, conn->dst_type);
net/bluetooth/hci_sync.c
7166
err = hci_le_past_params_sync(hdev, conn, le, qos);
net/bluetooth/hci_sync.c
7175
if (conn->sid == HCI_SID_INVALID) {
net/bluetooth/hci_sync.c
7178
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
7185
cp.sid = conn->sid;
net/bluetooth/hci_sync.c
7186
cp.addr_type = conn->dst_type;
net/bluetooth/hci_sync.c
7187
bacpy(&cp.addr, &conn->dst);
net/bluetooth/hci_sync.c
7206
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
7220
int hci_connect_pa_sync(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_sync.c
7224
err = hci_cmd_sync_queue_once(hdev, hci_le_pa_create_sync, conn,
net/bluetooth/hci_sync.c
7231
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7238
if (hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
7239
clear_bit(HCI_CONN_CREATE_BIG_SYNC, &conn->flags);
net/bluetooth/hci_sync.c
7246
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7247
struct bt_iso_qos *qos = &conn->iso_qos;
net/bluetooth/hci_sync.c
7250
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
7253
set_bit(HCI_CONN_CREATE_BIG_SYNC, &conn->flags);
net/bluetooth/hci_sync.c
7257
cp->sync_handle = cpu_to_le16(conn->sync_handle);
net/bluetooth/hci_sync.c
7262
cp->num_bis = conn->num_bis;
net/bluetooth/hci_sync.c
7263
memcpy(cp->bis, conn->bis, conn->num_bis);
net/bluetooth/hci_sync.c
7280
conn->conn_timeout, NULL);
net/bluetooth/hci_sync.c
7287
int hci_connect_big_sync(struct hci_dev *hdev, struct hci_conn *conn)
net/bluetooth/hci_sync.c
7291
err = hci_cmd_sync_queue_once(hdev, hci_le_big_create_sync, conn,
net/bluetooth/hci_sync.c
7297
struct hci_conn *conn;
net/bluetooth/hci_sync.c
7317
if (!hci_conn_valid(hdev, past->conn) ||
net/bluetooth/hci_sync.c
7325
cp.adv_handle = past->conn->iso_qos.bcast.bis;
net/bluetooth/hci_sync.c
7340
if (!hci_conn_valid(hdev, past->conn) ||
net/bluetooth/hci_sync.c
7348
cp.sync_handle = cpu_to_le16(past->conn->sync_handle);
net/bluetooth/hci_sync.c
7356
int hci_past_sync(struct hci_conn *conn, struct hci_conn *le)
net/bluetooth/hci_sync.c
7361
if (conn->type != BIS_LINK && conn->type != PA_LINK)
net/bluetooth/hci_sync.c
7364
if (!past_sender_capable(conn->hdev))
net/bluetooth/hci_sync.c
7371
data->conn = conn;
net/bluetooth/hci_sync.c
7374
if (conn->role == HCI_ROLE_MASTER)
net/bluetooth/hci_sync.c
7375
err = hci_cmd_sync_queue_once(conn->hdev,
net/bluetooth/hci_sync.c
7379
err = hci_cmd_sync_queue_once(conn->hdev, hci_le_past_sync,
net/bluetooth/hci_sync.c
7390
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7394
hci_conn_drop(conn);
net/bluetooth/hci_sync.c
7395
hci_conn_put(conn);
net/bluetooth/hci_sync.c
7401
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7405
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
7423
struct hci_conn *conn = data;
net/bluetooth/hci_sync.c
7426
if (!hci_conn_valid(hdev, conn))
net/bluetooth/hci_sync.c
7437
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
7448
int hci_le_read_remote_features(struct hci_conn *conn)
net/bluetooth/hci_sync.c
7450
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_sync.c
7462
if (conn->out || (hdev->le_features[0] & HCI_LE_PERIPHERAL_FEATURES)) {
net/bluetooth/hci_sync.c
7465
hci_conn_hold(hci_conn_get(conn)),
net/bluetooth/hci_sync.c
7468
hci_conn_drop(conn);
net/bluetooth/hci_sync.c
7469
hci_conn_put(conn);
net/bluetooth/hci_sync.c
7497
int hci_acl_change_pkt_type(struct hci_conn *conn, u16 pkt_type)
net/bluetooth/hci_sync.c
7499
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_sync.c
7507
cp->handle = cpu_to_le16(conn->handle);
net/bluetooth/hci_sync.c
7537
int hci_le_set_phy(struct hci_conn *conn, u8 tx_phys, u8 rx_phys)
net/bluetooth/hci_sync.c
7539
struct hci_dev *hdev = conn->hdev;
net/bluetooth/hci_sync.c
7548
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
1098
static int hidp_session_probe(struct l2cap_conn *conn,
net/bluetooth/hidp/core.c
1159
static void hidp_session_remove(struct l2cap_conn *conn,
net/bluetooth/hidp/core.c
1172
if (session->conn) {
net/bluetooth/hidp/core.c
1173
l2cap_conn_put(session->conn);
net/bluetooth/hidp/core.c
1174
session->conn = NULL;
net/bluetooth/hidp/core.c
1314
if (session->conn)
net/bluetooth/hidp/core.c
1315
l2cap_unregister_user(session->conn, &session->user);
net/bluetooth/hidp/core.c
1364
struct l2cap_conn *conn;
net/bluetooth/hidp/core.c
1376
conn = NULL;
net/bluetooth/hidp/core.c
1378
if (chan->conn)
net/bluetooth/hidp/core.c
1379
conn = l2cap_conn_get(chan->conn);
net/bluetooth/hidp/core.c
1382
if (!conn)
net/bluetooth/hidp/core.c
1386
intr_sock, req, conn);
net/bluetooth/hidp/core.c
1390
ret = l2cap_register_user(conn, &session->user);
net/bluetooth/hidp/core.c
1399
l2cap_conn_put(conn);
net/bluetooth/hidp/core.c
1421
l2cap_unregister_user(session->conn, &session->user);
net/bluetooth/hidp/core.c
65
static int hidp_session_probe(struct l2cap_conn *conn,
net/bluetooth/hidp/core.c
67
static void hidp_session_remove(struct l2cap_conn *conn,
net/bluetooth/hidp/core.c
703
input->dev.parent = &session->conn->hcon->dev;
net/bluetooth/hidp/core.c
793
hid->dev.parent = &session->conn->hcon->dev;
net/bluetooth/hidp/core.c
914
struct l2cap_conn *conn)
net/bluetooth/hidp/core.c
935
session->conn = l2cap_conn_get(conn);
net/bluetooth/hidp/core.c
967
l2cap_conn_put(session->conn);
net/bluetooth/hidp/core.c
989
if (session->conn)
net/bluetooth/hidp/core.c
990
l2cap_conn_put(session->conn);
net/bluetooth/hidp/hidp.h
150
struct l2cap_conn *conn;
net/bluetooth/iso.c
100
struct iso_conn *conn = container_of(ref, struct iso_conn, ref);
net/bluetooth/iso.c
102
BT_DBG("conn %p", conn);
net/bluetooth/iso.c
1038
static struct hci_dev *iso_conn_get_hdev(struct iso_conn *conn)
net/bluetooth/iso.c
104
if (conn->sk)
net/bluetooth/iso.c
1042
iso_conn_lock(conn);
net/bluetooth/iso.c
1043
if (conn->hcon)
net/bluetooth/iso.c
1044
hdev = hci_dev_hold(conn->hcon->hdev);
net/bluetooth/iso.c
1045
iso_conn_unlock(conn);
net/bluetooth/iso.c
105
iso_pi(conn->sk)->conn = NULL;
net/bluetooth/iso.c
1058
if (sk->sk_type != SOCK_SEQPACKET || !iso_pi(sk)->conn)
net/bluetooth/iso.c
107
if (conn->hcon) {
net/bluetooth/iso.c
1076
hdev = iso_conn_get_hdev(iso_pi(sk)->conn);
net/bluetooth/iso.c
108
conn->hcon->iso_data = NULL;
net/bluetooth/iso.c
1080
bis = iso_pi(sk)->conn->hcon;
net/bluetooth/iso.c
109
hci_conn_drop(conn->hcon);
net/bluetooth/iso.c
1090
if (!iso_pi(sk)->conn || iso_pi(sk)->conn->hcon != bis) {
net/bluetooth/iso.c
113
disable_delayed_work_sync(&conn->timeout_work);
net/bluetooth/iso.c
115
kfree_skb(conn->rx_skb);
net/bluetooth/iso.c
117
kfree(conn);
net/bluetooth/iso.c
120
static void iso_conn_put(struct iso_conn *conn)
net/bluetooth/iso.c
1219
struct iso_conn *conn;
net/bluetooth/iso.c
122
if (!conn)
net/bluetooth/iso.c
125
BT_DBG("conn %p refcnt %d", conn, kref_read(&conn->ref));
net/bluetooth/iso.c
1259
conn = iso_conn_add(hcon);
net/bluetooth/iso.c
1260
if (!conn) {
net/bluetooth/iso.c
1266
err = iso_chan_add(conn, sk, NULL);
net/bluetooth/iso.c
127
kref_put(&conn->ref, iso_conn_free);
net/bluetooth/iso.c
130
static struct iso_conn *iso_conn_hold_unless_zero(struct iso_conn *conn)
net/bluetooth/iso.c
132
if (!conn)
net/bluetooth/iso.c
135
BT_DBG("conn %p refcnt %u", conn, kref_read(&conn->ref));
net/bluetooth/iso.c
137
if (!kref_get_unless_zero(&conn->ref))
net/bluetooth/iso.c
140
return conn;
net/bluetooth/iso.c
143
static struct sock *iso_sock_hold(struct iso_conn *conn)
net/bluetooth/iso.c
1447
struct hci_conn *hcon = iso_pi(sk)->conn ?
net/bluetooth/iso.c
1448
iso_pi(sk)->conn->hcon : NULL;
net/bluetooth/iso.c
145
if (!conn || !bt_sock_linked(&iso_sk_list, conn->sk))
net/bluetooth/iso.c
148
sock_hold(conn->sk);
net/bluetooth/iso.c
150
return conn->sk;
net/bluetooth/iso.c
1501
mtu = iso_pi(sk)->conn->hcon->mtu;
net/bluetooth/iso.c
155
struct iso_conn *conn = container_of(work, struct iso_conn,
net/bluetooth/iso.c
1550
static void iso_conn_defer_accept(struct hci_conn *conn)
net/bluetooth/iso.c
1553
struct hci_dev *hdev = conn->hdev;
net/bluetooth/iso.c
1555
BT_DBG("conn %p", conn);
net/bluetooth/iso.c
1557
conn->state = BT_CONFIG;
net/bluetooth/iso.c
1559
cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/iso.c
1584
err = hci_conn_big_create_sync(hdev, iso_pi(sk)->conn->hcon,
net/bluetooth/iso.c
159
conn = iso_conn_hold_unless_zero(conn);
net/bluetooth/iso.c
160
if (!conn)
net/bluetooth/iso.c
1624
iso_conn_defer_accept(pi->conn->hcon);
net/bluetooth/iso.c
163
iso_conn_lock(conn);
net/bluetooth/iso.c
164
sk = iso_sock_hold(conn);
net/bluetooth/iso.c
165
iso_conn_unlock(conn);
net/bluetooth/iso.c
166
iso_conn_put(conn);
net/bluetooth/iso.c
182
if (!iso_pi(sk)->conn)
net/bluetooth/iso.c
186
cancel_delayed_work(&iso_pi(sk)->conn->timeout_work);
net/bluetooth/iso.c
187
schedule_delayed_work(&iso_pi(sk)->conn->timeout_work, timeout);
net/bluetooth/iso.c
1899
base_len = iso_pi(sk)->conn->hcon->le_per_adv_data_len;
net/bluetooth/iso.c
1900
base = iso_pi(sk)->conn->hcon->le_per_adv_data;
net/bluetooth/iso.c
192
if (!iso_pi(sk)->conn)
net/bluetooth/iso.c
196
cancel_delayed_work(&iso_pi(sk)->conn->timeout_work);
net/bluetooth/iso.c
202
struct iso_conn *conn = hcon->iso_data;
net/bluetooth/iso.c
2030
static void iso_conn_ready(struct iso_conn *conn)
net/bluetooth/iso.c
2033
struct sock *sk = conn->sk;
net/bluetooth/iso.c
204
conn = iso_conn_hold_unless_zero(conn);
net/bluetooth/iso.c
2040
BT_DBG("conn %p", conn);
net/bluetooth/iso.c
2046
if (conn->hcon->type == BIS_LINK &&
net/bluetooth/iso.c
2047
conn->hcon->role == HCI_ROLE_MASTER &&
net/bluetooth/iso.c
2048
!bacmp(&conn->hcon->dst, BDADDR_ANY)) {
net/bluetooth/iso.c
2049
struct hci_conn *bis = conn->hcon;
net/bluetooth/iso.c
205
if (conn) {
net/bluetooth/iso.c
206
if (!conn->hcon) {
net/bluetooth/iso.c
2062
iso_sock_ready(conn->sk);
net/bluetooth/iso.c
2064
hcon = conn->hcon;
net/bluetooth/iso.c
207
iso_conn_lock(conn);
net/bluetooth/iso.c
208
conn->hcon = hcon;
net/bluetooth/iso.c
209
iso_conn_unlock(conn);
net/bluetooth/iso.c
211
iso_conn_put(conn);
net/bluetooth/iso.c
212
return conn;
net/bluetooth/iso.c
215
conn = kzalloc_obj(*conn);
net/bluetooth/iso.c
216
if (!conn)
net/bluetooth/iso.c
2171
iso_chan_add(conn, sk, parent);
net/bluetooth/iso.c
219
kref_init(&conn->ref);
net/bluetooth/iso.c
220
spin_lock_init(&conn->lock);
net/bluetooth/iso.c
221
INIT_DELAYED_WORK(&conn->timeout_work, iso_sock_timeout);
net/bluetooth/iso.c
223
hcon->iso_data = conn;
net/bluetooth/iso.c
224
conn->hcon = hcon;
net/bluetooth/iso.c
225
conn->tx_sn = 0;
net/bluetooth/iso.c
227
BT_DBG("hcon %p conn %p", hcon, conn);
net/bluetooth/iso.c
229
return conn;
net/bluetooth/iso.c
2300
struct hci_conn *hcon = iso_pi(sk)->conn->hcon;
net/bluetooth/iso.c
2337
hcon = iso_pi(sk)->conn->hcon;
net/bluetooth/iso.c
235
struct iso_conn *conn;
net/bluetooth/iso.c
238
conn = iso_pi(sk)->conn;
net/bluetooth/iso.c
239
iso_pi(sk)->conn = NULL;
net/bluetooth/iso.c
241
BT_DBG("sk %p, conn %p, err %d", sk, conn, err);
net/bluetooth/iso.c
2411
iso_conn_del(link->conn, bt_to_errno(status));
net/bluetooth/iso.c
243
if (conn) {
net/bluetooth/iso.c
2430
struct iso_conn *conn;
net/bluetooth/iso.c
2432
conn = iso_conn_add(hcon);
net/bluetooth/iso.c
2433
if (conn)
net/bluetooth/iso.c
2434
iso_conn_ready(conn);
net/bluetooth/iso.c
244
iso_conn_lock(conn);
net/bluetooth/iso.c
245
conn->sk = NULL;
net/bluetooth/iso.c
2454
struct iso_conn *conn;
net/bluetooth/iso.c
246
iso_conn_unlock(conn);
net/bluetooth/iso.c
2467
conn = iso_conn_hold_unless_zero(hcon->iso_data);
net/bluetooth/iso.c
247
iso_conn_put(conn);
net/bluetooth/iso.c
2472
if (!conn) {
net/bluetooth/iso.c
2480
BT_DBG("conn %p len %d pb 0x%x ts 0x%x", conn, skb->len, pb, ts);
net/bluetooth/iso.c
2485
if (conn->rx_len) {
net/bluetooth/iso.c
2487
kfree_skb(conn->rx_skb);
net/bluetooth/iso.c
2488
conn->rx_skb = NULL;
net/bluetooth/iso.c
2489
conn->rx_len = 0;
net/bluetooth/iso.c
2530
iso_recv_frame(conn, skb);
net/bluetooth/iso.c
2547
conn->rx_skb = bt_skb_alloc(len, GFP_KERNEL);
net/bluetooth/iso.c
2548
if (!conn->rx_skb)
net/bluetooth/iso.c
2551
hci_skb_pkt_status(conn->rx_skb) = flags & 0x03;
net/bluetooth/iso.c
2552
hci_skb_pkt_seqnum(conn->rx_skb) = sn;
net/bluetooth/iso.c
2553
skb_copy_from_linear_data(skb, skb_put(conn->rx_skb, skb->len),
net/bluetooth/iso.c
2555
conn->rx_len = len - skb->len;
net/bluetooth/iso.c
2559
hwts = skb_hwtstamps(conn->rx_skb);
net/bluetooth/iso.c
2567
conn->rx_len);
net/bluetooth/iso.c
2569
if (!conn->rx_len) {
net/bluetooth/iso.c
2575
if (skb->len > conn->rx_len) {
net/bluetooth/iso.c
2577
skb->len, conn->rx_len);
net/bluetooth/iso.c
2578
kfree_skb(conn->rx_skb);
net/bluetooth/iso.c
2579
conn->rx_skb = NULL;
net/bluetooth/iso.c
2580
conn->rx_len = 0;
net/bluetooth/iso.c
2584
skb_copy_from_linear_data(skb, skb_put(conn->rx_skb, skb->len),
net/bluetooth/iso.c
2586
conn->rx_len -= skb->len;
net/bluetooth/iso.c
2590
skb_copy_from_linear_data(skb, skb_put(conn->rx_skb, skb->len),
net/bluetooth/iso.c
2592
conn->rx_len -= skb->len;
net/bluetooth/iso.c
2594
if (!conn->rx_len) {
net/bluetooth/iso.c
2595
struct sk_buff *rx_skb = conn->rx_skb;
net/bluetooth/iso.c
2601
conn->rx_skb = NULL;
net/bluetooth/iso.c
2602
iso_recv_frame(conn, rx_skb);
net/bluetooth/iso.c
2610
iso_conn_put(conn);
net/bluetooth/iso.c
266
struct iso_conn *conn = hcon->iso_data;
net/bluetooth/iso.c
269
conn = iso_conn_hold_unless_zero(conn);
net/bluetooth/iso.c
270
if (!conn)
net/bluetooth/iso.c
273
BT_DBG("hcon %p conn %p, err %d", hcon, conn, err);
net/bluetooth/iso.c
276
iso_conn_lock(conn);
net/bluetooth/iso.c
277
sk = iso_sock_hold(conn);
net/bluetooth/iso.c
278
iso_conn_unlock(conn);
net/bluetooth/iso.c
279
iso_conn_put(conn);
net/bluetooth/iso.c
282
iso_conn_put(conn);
net/bluetooth/iso.c
293
static int __iso_chan_add(struct iso_conn *conn, struct sock *sk,
net/bluetooth/iso.c
296
BT_DBG("conn %p", conn);
net/bluetooth/iso.c
298
if (iso_pi(sk)->conn == conn && conn->sk == sk)
net/bluetooth/iso.c
301
if (conn->sk) {
net/bluetooth/iso.c
306
iso_pi(sk)->conn = conn;
net/bluetooth/iso.c
307
conn->sk = sk;
net/bluetooth/iso.c
315
static int iso_chan_add(struct iso_conn *conn, struct sock *sk,
net/bluetooth/iso.c
320
iso_conn_lock(conn);
net/bluetooth/iso.c
321
err = __iso_chan_add(conn, sk, parent);
net/bluetooth/iso.c
322
iso_conn_unlock(conn);
net/bluetooth/iso.c
337
struct iso_conn *conn;
net/bluetooth/iso.c
395
conn = iso_conn_add(hcon);
net/bluetooth/iso.c
396
if (!conn) {
net/bluetooth/iso.c
404
err = iso_chan_add(conn, sk, NULL);
net/bluetooth/iso.c
434
struct iso_conn *conn;
net/bluetooth/iso.c
494
conn = iso_conn_add(hcon);
net/bluetooth/iso.c
495
if (!conn) {
net/bluetooth/iso.c
503
err = iso_chan_add(conn, sk, NULL);
net/bluetooth/iso.c
534
return &iso_pi(sk)->conn->hcon->iso_qos;
net/bluetooth/iso.c
542
struct iso_conn *conn = iso_pi(sk)->conn;
net/bluetooth/iso.c
556
hdr->sn = cpu_to_le16(conn->tx_sn++);
net/bluetooth/iso.c
562
hci_send_iso(conn->hcon, skb);
net/bluetooth/iso.c
570
static void iso_recv_frame(struct iso_conn *conn, struct sk_buff *skb)
net/bluetooth/iso.c
574
iso_conn_lock(conn);
net/bluetooth/iso.c
575
sk = conn->sk;
net/bluetooth/iso.c
576
iso_conn_unlock(conn);
net/bluetooth/iso.c
745
iso_conn_put(iso_pi(sk)->conn);
net/bluetooth/iso.c
75
struct iso_conn *conn;
net/bluetooth/iso.c
765
if (iso_pi(parent)->conn && iso_pi(parent)->conn->hcon) {
net/bluetooth/iso.c
786
if (iso_pi(sk)->conn) {
net/bluetooth/iso.c
787
iso_conn_lock(iso_pi(sk)->conn);
net/bluetooth/iso.c
788
iso_pi(sk)->conn->sk = NULL;
net/bluetooth/iso.c
789
iso_conn_unlock(iso_pi(sk)->conn);
net/bluetooth/iso.c
801
struct hci_conn *hcon = iso_pi(sk)->conn->hcon;
net/bluetooth/iso.c
815
iso_pi(sk)->conn->hcon = NULL;
net/bluetooth/iso.c
824
iso_conn_lock(iso_pi(sk)->conn);
net/bluetooth/iso.c
825
hci_conn_drop(iso_pi(sk)->conn->hcon);
net/bluetooth/iso.c
826
iso_pi(sk)->conn->hcon = NULL;
net/bluetooth/iso.c
827
iso_conn_unlock(iso_pi(sk)->conn);
net/bluetooth/iso.c
842
if (iso_pi(sk)->conn->hcon)
net/bluetooth/iso.c
849
if (iso_pi(sk)->conn->hcon &&
net/bluetooth/iso.c
850
(test_bit(HCI_CONN_PA_SYNC, &iso_pi(sk)->conn->hcon->flags) ||
net/bluetooth/iso.c
851
test_bit(HCI_CONN_PA_SYNC_FAILED, &iso_pi(sk)->conn->hcon->flags)))
net/bluetooth/l2cap_core.c
1001
struct hci_conn *hcon = chan->conn->hcon;
net/bluetooth/l2cap_core.c
1019
hci_send_acl(chan->conn->hchan, skb, flags);
net/bluetooth/l2cap_core.c
102
static struct l2cap_chan *__l2cap_get_chan_by_scid(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
107
list_for_each_entry(c, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
117
static struct l2cap_chan *l2cap_get_chan_by_scid(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
122
c = __l2cap_get_chan_by_scid(conn, cid);
net/bluetooth/l2cap_core.c
1243
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1249
chan->ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
1253
l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_REQ, sizeof(req), &req);
net/bluetooth/l2cap_core.c
1284
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1291
chan->imtu = chan->conn->mtu;
net/bluetooth/l2cap_core.c
1302
chan->ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
1304
l2cap_send_cmd(conn, chan->ident, L2CAP_LE_CONN_REQ,
net/bluetooth/l2cap_core.c
1320
struct l2cap_ecred_conn_data *conn = data;
net/bluetooth/l2cap_core.c
1323
if (chan == conn->chan)
net/bluetooth/l2cap_core.c
1332
if (conn->pid != pid || chan->psm != conn->chan->psm || chan->ident ||
net/bluetooth/l2cap_core.c
1342
chan->ident = conn->chan->ident;
net/bluetooth/l2cap_core.c
1345
conn->pdu.scid[conn->count] = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
1347
conn->count++;
net/bluetooth/l2cap_core.c
1352
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
136
static struct l2cap_chan *l2cap_get_chan_by_dcid(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
1370
chan->ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
1376
__l2cap_chan_list(conn, l2cap_ecred_defer_connect, &data);
net/bluetooth/l2cap_core.c
1378
l2cap_send_cmd(conn, chan->ident, L2CAP_ECRED_CONN_REQ,
net/bluetooth/l2cap_core.c
1385
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1387
if (!smp_conn_security(conn->hcon, chan->sec_level))
net/bluetooth/l2cap_core.c
1405
if (chan->conn->hcon->type == LE_LINK) {
net/bluetooth/l2cap_core.c
141
c = __l2cap_get_chan_by_dcid(conn, cid);
net/bluetooth/l2cap_core.c
1412
static void l2cap_request_info(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
1416
if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_SENT)
net/bluetooth/l2cap_core.c
1421
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_SENT;
net/bluetooth/l2cap_core.c
1422
conn->info_ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
1424
schedule_delayed_work(&conn->info_timer, L2CAP_INFO_TIMEOUT);
net/bluetooth/l2cap_core.c
1426
l2cap_send_cmd(conn, conn->info_ident, L2CAP_INFO_REQ,
net/bluetooth/l2cap_core.c
1454
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1456
if (conn->hcon->type == LE_LINK) {
net/bluetooth/l2cap_core.c
1461
if (!(conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_SENT)) {
net/bluetooth/l2cap_core.c
1462
l2cap_request_info(conn);
net/bluetooth/l2cap_core.c
1466
if (!(conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE))
net/bluetooth/l2cap_core.c
1473
if (l2cap_check_enc_key_size(conn->hcon, chan))
net/bluetooth/l2cap_core.c
1497
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1500
if (!conn)
net/bluetooth/l2cap_core.c
1511
l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_DISCONN_REQ,
net/bluetooth/l2cap_core.c
1518
static void l2cap_conn_start(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
152
static struct l2cap_chan *__l2cap_get_chan_by_ident(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
1522
BT_DBG("conn %p", conn);
net/bluetooth/l2cap_core.c
1524
list_for_each_entry_safe(chan, tmp, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1540
if (!l2cap_mode_supported(chan->mode, conn->feat_mask)
net/bluetooth/l2cap_core.c
1548
if (l2cap_check_enc_key_size(conn->hcon, chan))
net/bluetooth/l2cap_core.c
157
list_for_each_entry(c, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1575
l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP,
net/bluetooth/l2cap_core.c
1585
l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
net/bluetooth/l2cap_core.c
1594
static void l2cap_le_conn_ready(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
1596
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
1599
BT_DBG("%s conn %p", hdev->name, conn);
net/bluetooth/l2cap_core.c
1622
l2cap_send_cmd(conn, l2cap_get_ident(conn),
net/bluetooth/l2cap_core.c
1627
static void l2cap_conn_ready(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
1630
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
1632
BT_DBG("conn %p", conn);
net/bluetooth/l2cap_core.c
1635
l2cap_request_info(conn);
net/bluetooth/l2cap_core.c
1637
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
1639
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1646
if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE)
net/bluetooth/l2cap_core.c
1655
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
1658
l2cap_le_conn_ready(conn);
net/bluetooth/l2cap_core.c
1660
queue_work(hcon->hdev->workqueue, &conn->pending_rx_work);
net/bluetooth/l2cap_core.c
1664
static void l2cap_conn_unreliable(struct l2cap_conn *conn, int err)
net/bluetooth/l2cap_core.c
1668
BT_DBG("conn %p", conn);
net/bluetooth/l2cap_core.c
1670
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1678
struct l2cap_conn *conn = container_of(work, struct l2cap_conn,
net/bluetooth/l2cap_core.c
1681
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_DONE;
net/bluetooth/l2cap_core.c
1682
conn->info_ident = 0;
net/bluetooth/l2cap_core.c
1684
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
1685
l2cap_conn_start(conn);
net/bluetooth/l2cap_core.c
1686
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
1702
int l2cap_register_user(struct l2cap_conn *conn, struct l2cap_user *user)
net/bluetooth/l2cap_core.c
1712
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
1720
if (!conn->hchan) {
net/bluetooth/l2cap_core.c
1725
ret = user->probe(conn, user);
net/bluetooth/l2cap_core.c
1729
list_add(&user->list, &conn->users);
net/bluetooth/l2cap_core.c
1733
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
1738
void l2cap_unregister_user(struct l2cap_conn *conn, struct l2cap_user *user)
net/bluetooth/l2cap_core.c
1740
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
1746
user->remove(conn, user);
net/bluetooth/l2cap_core.c
1749
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
1753
static void l2cap_unregister_all_users(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
1757
while (!list_empty(&conn->users)) {
net/bluetooth/l2cap_core.c
1758
user = list_first_entry(&conn->users, struct l2cap_user, list);
net/bluetooth/l2cap_core.c
1760
user->remove(conn, user);
net/bluetooth/l2cap_core.c
1766
struct l2cap_conn *conn = hcon->l2cap_data;
net/bluetooth/l2cap_core.c
1769
if (!conn)
net/bluetooth/l2cap_core.c
1772
BT_DBG("hcon %p conn %p, err %d", hcon, conn, err);
net/bluetooth/l2cap_core.c
1774
disable_delayed_work_sync(&conn->info_timer);
net/bluetooth/l2cap_core.c
1775
disable_delayed_work_sync(&conn->id_addr_timer);
net/bluetooth/l2cap_core.c
1777
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
1779
kfree_skb(conn->rx_skb);
net/bluetooth/l2cap_core.c
1781
skb_queue_purge(&conn->pending_rx);
net/bluetooth/l2cap_core.c
1787
if (work_pending(&conn->pending_rx_work))
net/bluetooth/l2cap_core.c
1788
cancel_work_sync(&conn->pending_rx_work);
net/bluetooth/l2cap_core.c
1790
ida_destroy(&conn->tx_ida);
net/bluetooth/l2cap_core.c
1792
l2cap_unregister_all_users(conn);
net/bluetooth/l2cap_core.c
1798
list_for_each_entry_safe(chan, l, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1810
hci_chan_del(conn->hchan);
net/bluetooth/l2cap_core.c
1811
conn->hchan = NULL;
net/bluetooth/l2cap_core.c
1814
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
1815
l2cap_conn_put(conn);
net/bluetooth/l2cap_core.c
1820
struct l2cap_conn *conn = container_of(ref, struct l2cap_conn, ref);
net/bluetooth/l2cap_core.c
1822
hci_conn_put(conn->hcon);
net/bluetooth/l2cap_core.c
1823
kfree(conn);
net/bluetooth/l2cap_core.c
1826
struct l2cap_conn *l2cap_conn_get(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
1828
kref_get(&conn->ref);
net/bluetooth/l2cap_core.c
1829
return conn;
net/bluetooth/l2cap_core.c
1833
void l2cap_conn_put(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
1835
kref_put(&conn->ref, l2cap_conn_free);
net/bluetooth/l2cap_core.c
1904
if (!chan->conn) {
net/bluetooth/l2cap_core.c
1925
if (!chan->conn) {
net/bluetooth/l2cap_core.c
2214
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2229
count = min_t(unsigned int, conn->mtu, len);
net/bluetooth/l2cap_core.c
2257
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2265
count = min_t(unsigned int, (conn->mtu - hlen), len);
net/bluetooth/l2cap_core.c
2289
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2296
count = min_t(unsigned int, (conn->mtu - L2CAP_HDR_SIZE), len);
net/bluetooth/l2cap_core.c
2320
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2327
if (!conn)
net/bluetooth/l2cap_core.c
2338
count = min_t(unsigned int, (conn->mtu - hlen), len);
net/bluetooth/l2cap_core.c
2387
pdu_len = chan->conn->mtu;
net/bluetooth/l2cap_core.c
242
static u16 l2cap_alloc_cid(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
2443
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2450
if (!conn)
net/bluetooth/l2cap_core.c
2458
count = min_t(unsigned int, (conn->mtu - hlen), len);
net/bluetooth/l2cap_core.c
246
if (conn->hcon->type == LE_LINK)
net/bluetooth/l2cap_core.c
252
if (!__l2cap_get_chan_by_scid(conn, cid))
net/bluetooth/l2cap_core.c
2566
if (!chan->conn)
net/bluetooth/l2cap_core.c
2963
static void l2cap_raw_recv(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/l2cap_core.c
2968
BT_DBG("conn %p", conn);
net/bluetooth/l2cap_core.c
2970
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
2987
static struct sk_buff *l2cap_build_cmd(struct l2cap_conn *conn, u8 code,
net/bluetooth/l2cap_core.c
2996
conn, code, ident, dlen);
net/bluetooth/l2cap_core.c
2998
if (conn->mtu < L2CAP_HDR_SIZE + L2CAP_CMD_HDR_SIZE)
net/bluetooth/l2cap_core.c
3002
count = min_t(unsigned int, conn->mtu, len);
net/bluetooth/l2cap_core.c
3011
if (conn->hcon->type == LE_LINK)
net/bluetooth/l2cap_core.c
3032
count = min_t(unsigned int, conn->mtu, len);
net/bluetooth/l2cap_core.c
3220
static inline bool __l2cap_ews_supported(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
3222
return (conn->feat_mask & L2CAP_FEAT_EXT_WINDOW);
net/bluetooth/l2cap_core.c
3225
static inline bool __l2cap_efs_supported(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
3227
return (conn->feat_mask & L2CAP_FEAT_EXT_FLOW);
net/bluetooth/l2cap_core.c
3240
__l2cap_ews_supported(chan->conn)) {
net/bluetooth/l2cap_core.c
3254
struct hci_conn *conn = chan->conn->hcon;
net/bluetooth/l2cap_core.c
3261
if (!(conn->pkt_type & HCI_2DH1))
net/bluetooth/l2cap_core.c
3267
if (!(conn->pkt_type & HCI_3DH1))
net/bluetooth/l2cap_core.c
3273
if (!(conn->pkt_type & HCI_2DH3))
net/bluetooth/l2cap_core.c
3279
if (!(conn->pkt_type & HCI_3DH3))
net/bluetooth/l2cap_core.c
3285
if (!(conn->pkt_type & HCI_2DH5))
net/bluetooth/l2cap_core.c
3291
if (!(conn->pkt_type & HCI_3DH5))
net/bluetooth/l2cap_core.c
3314
if (__l2cap_efs_supported(chan->conn))
net/bluetooth/l2cap_core.c
3319
chan->mode = l2cap_select_mode(rfc.mode, chan->conn->feat_mask);
net/bluetooth/l2cap_core.c
3336
if (!(chan->conn->feat_mask & L2CAP_FEAT_ERTM) &&
net/bluetooth/l2cap_core.c
3337
!(chan->conn->feat_mask & L2CAP_FEAT_STREAMING))
net/bluetooth/l2cap_core.c
3357
size = min_t(u16, L2CAP_DEFAULT_MAX_PDU_SIZE, chan->conn->mtu -
net/bluetooth/l2cap_core.c
3377
if (chan->conn->feat_mask & L2CAP_FEAT_FCS)
net/bluetooth/l2cap_core.c
3394
size = min_t(u16, L2CAP_DEFAULT_MAX_PDU_SIZE, chan->conn->mtu -
net/bluetooth/l2cap_core.c
3405
if (chan->conn->feat_mask & L2CAP_FEAT_FCS)
net/bluetooth/l2cap_core.c
3505
chan->conn->feat_mask);
net/bluetooth/l2cap_core.c
3510
if (__l2cap_efs_supported(chan->conn))
net/bluetooth/l2cap_core.c
3604
chan->conn->mtu - L2CAP_EXT_HDR_SIZE -
net/bluetooth/l2cap_core.c
3635
chan->conn->mtu - L2CAP_EXT_HDR_SIZE -
net/bluetooth/l2cap_core.c
3800
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
3810
l2cap_send_cmd(conn, chan->ident, L2CAP_LE_CONN_RSP, sizeof(rsp),
net/bluetooth/l2cap_core.c
3868
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
3886
__l2cap_chan_list_id(conn, id, l2cap_ecred_list_defer, &result);
net/bluetooth/l2cap_core.c
3895
__l2cap_chan_list_id(conn, id, l2cap_ecred_rsp_defer, &data);
net/bluetooth/l2cap_core.c
3897
l2cap_send_cmd(conn, id, L2CAP_ECRED_CONN_RSP,
net/bluetooth/l2cap_core.c
3905
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
3917
l2cap_send_cmd(conn, chan->ident, rsp_code, sizeof(rsp), &rsp);
net/bluetooth/l2cap_core.c
3922
l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
net/bluetooth/l2cap_core.c
3983
static inline int l2cap_command_rej(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
3995
if ((conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_SENT) &&
net/bluetooth/l2cap_core.c
3996
cmd->ident == conn->info_ident) {
net/bluetooth/l2cap_core.c
3997
cancel_delayed_work(&conn->info_timer);
net/bluetooth/l2cap_core.c
3999
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_DONE;
net/bluetooth/l2cap_core.c
4000
conn->info_ident = 0;
net/bluetooth/l2cap_core.c
4002
l2cap_conn_start(conn);
net/bluetooth/l2cap_core.c
4008
static void l2cap_connect(struct l2cap_conn *conn, struct l2cap_cmd_hdr *cmd,
net/bluetooth/l2cap_core.c
4022
pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, &conn->hcon->src,
net/bluetooth/l2cap_core.c
4023
&conn->hcon->dst, ACL_LINK);
net/bluetooth/l2cap_core.c
4033
(!hci_conn_check_link_mode(conn->hcon) ||
net/bluetooth/l2cap_core.c
4034
!l2cap_check_enc_key_size(conn->hcon, pchan))) {
net/bluetooth/l2cap_core.c
4035
conn->disc_reason = HCI_ERROR_AUTH_FAILURE;
net/bluetooth/l2cap_core.c
4049
if (__l2cap_get_chan_by_dcid(conn, scid)) {
net/bluetooth/l2cap_core.c
4063
conn->hcon->disc_timeout = HCI_DISCONN_TIMEOUT;
net/bluetooth/l2cap_core.c
4065
bacpy(&chan->src, &conn->hcon->src);
net/bluetooth/l2cap_core.c
4066
bacpy(&chan->dst, &conn->hcon->dst);
net/bluetooth/l2cap_core.c
4067
chan->src_type = bdaddr_src_type(conn->hcon);
net/bluetooth/l2cap_core.c
4068
chan->dst_type = bdaddr_dst_type(conn->hcon);
net/bluetooth/l2cap_core.c
4072
__l2cap_chan_add(conn, chan);
net/bluetooth/l2cap_core.c
4080
if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE) {
net/bluetooth/l2cap_core.c
409
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
4108
l2cap_send_cmd(conn, cmd->ident, rsp_code, sizeof(rsp), &rsp);
net/bluetooth/l2cap_core.c
4117
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_SENT;
net/bluetooth/l2cap_core.c
4118
conn->info_ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
4120
schedule_delayed_work(&conn->info_timer, L2CAP_INFO_TIMEOUT);
net/bluetooth/l2cap_core.c
4122
l2cap_send_cmd(conn, conn->info_ident, L2CAP_INFO_REQ,
net/bluetooth/l2cap_core.c
4130
l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
net/bluetooth/l2cap_core.c
4139
static int l2cap_connect_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
414
if (!conn)
net/bluetooth/l2cap_core.c
4145
l2cap_connect(conn, cmd, data, L2CAP_CONN_RSP);
net/bluetooth/l2cap_core.c
4149
static int l2cap_connect_create_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
417
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
4175
chan = __l2cap_get_chan_by_scid(conn, scid);
net/bluetooth/l2cap_core.c
4179
chan = __l2cap_get_chan_by_ident(conn, cmd->ident);
net/bluetooth/l2cap_core.c
4194
if (__l2cap_get_chan_by_dcid(conn, dcid)) {
net/bluetooth/l2cap_core.c
4207
l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
net/bluetooth/l2cap_core.c
4241
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
4243
BT_DBG("conn %p chan %p ident %d flags 0x%4.4x", conn, chan, ident,
net/bluetooth/l2cap_core.c
4249
l2cap_send_cmd(conn, ident, L2CAP_CONF_RSP,
net/bluetooth/l2cap_core.c
4254
static void cmd_reject_invalid_cid(struct l2cap_conn *conn, u8 ident,
net/bluetooth/l2cap_core.c
4263
l2cap_send_cmd(conn, ident, L2CAP_COMMAND_REJ, sizeof(rej), &rej);
net/bluetooth/l2cap_core.c
4266
static inline int l2cap_config_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4284
chan = l2cap_get_chan_by_scid(conn, dcid);
net/bluetooth/l2cap_core.c
4286
cmd_reject_invalid_cid(conn, cmd->ident, dcid, 0);
net/bluetooth/l2cap_core.c
4292
cmd_reject_invalid_cid(conn, cmd->ident, chan->scid,
net/bluetooth/l2cap_core.c
4300
l2cap_send_cmd(conn, cmd->ident, L2CAP_CONF_RSP,
net/bluetooth/l2cap_core.c
4312
l2cap_send_cmd(conn, cmd->ident, L2CAP_CONF_RSP,
net/bluetooth/l2cap_core.c
4326
l2cap_send_cmd(conn, cmd->ident, L2CAP_CONF_RSP, len, rsp);
net/bluetooth/l2cap_core.c
4355
l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
net/bluetooth/l2cap_core.c
4377
static inline int l2cap_config_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
438
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
4397
chan = l2cap_get_chan_by_scid(conn, scid);
net/bluetooth/l2cap_core.c
4443
l2cap_send_cmd(conn, l2cap_get_ident(conn),
net/bluetooth/l2cap_core.c
4484
static inline int l2cap_disconnect_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4501
chan = l2cap_get_chan_by_scid(conn, dcid);
net/bluetooth/l2cap_core.c
4503
cmd_reject_invalid_cid(conn, cmd->ident, dcid, scid);
net/bluetooth/l2cap_core.c
4509
l2cap_send_cmd(conn, cmd->ident, L2CAP_DISCONN_RSP, sizeof(rsp), &rsp);
net/bluetooth/l2cap_core.c
4523
static inline int l2cap_disconnect_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4539
chan = l2cap_get_chan_by_scid(conn, scid);
net/bluetooth/l2cap_core.c
4560
static inline int l2cap_information_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4585
l2cap_send_cmd(conn, cmd->ident, L2CAP_INFO_RSP, sizeof(buf),
net/bluetooth/l2cap_core.c
4593
rsp->data[0] = conn->local_fixed_chan;
net/bluetooth/l2cap_core.c
4595
l2cap_send_cmd(conn, cmd->ident, L2CAP_INFO_RSP, sizeof(buf),
net/bluetooth/l2cap_core.c
4601
l2cap_send_cmd(conn, cmd->ident, L2CAP_INFO_RSP, sizeof(rsp),
net/bluetooth/l2cap_core.c
4608
static inline int l2cap_information_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4624
if (cmd->ident != conn->info_ident ||
net/bluetooth/l2cap_core.c
4625
conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE)
net/bluetooth/l2cap_core.c
4628
cancel_delayed_work(&conn->info_timer);
net/bluetooth/l2cap_core.c
4631
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_DONE;
net/bluetooth/l2cap_core.c
4632
conn->info_ident = 0;
net/bluetooth/l2cap_core.c
4634
l2cap_conn_start(conn);
net/bluetooth/l2cap_core.c
4642
conn->feat_mask = get_unaligned_le32(rsp->data);
net/bluetooth/l2cap_core.c
4644
if (conn->feat_mask & L2CAP_FEAT_FIXED_CHAN) {
net/bluetooth/l2cap_core.c
4648
conn->info_ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
4650
l2cap_send_cmd(conn, conn->info_ident,
net/bluetooth/l2cap_core.c
4653
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_DONE;
net/bluetooth/l2cap_core.c
4654
conn->info_ident = 0;
net/bluetooth/l2cap_core.c
4656
l2cap_conn_start(conn);
net/bluetooth/l2cap_core.c
4662
conn->remote_fixed_chan = rsp->data[0];
net/bluetooth/l2cap_core.c
4663
conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_DONE;
net/bluetooth/l2cap_core.c
4664
conn->info_ident = 0;
net/bluetooth/l2cap_core.c
4666
l2cap_conn_start(conn);
net/bluetooth/l2cap_core.c
4673
static inline int l2cap_conn_param_update_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4677
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
4706
l2cap_send_cmd(conn, cmd->ident, L2CAP_CONN_PARAM_UPDATE_RSP,
net/bluetooth/l2cap_core.c
4723
static int l2cap_le_connect_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4728
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
4750
chan = __l2cap_get_chan_by_ident(conn, cmd->ident);
net/bluetooth/l2cap_core.c
4760
if (__l2cap_get_chan_by_dcid(conn, dcid)) {
net/bluetooth/l2cap_core.c
4803
static void l2cap_put_ident(struct l2cap_conn *conn, u8 code, u8 id)
net/bluetooth/l2cap_core.c
4818
if (ida_find_first_range(&conn->tx_ida, id, id) >= 0)
net/bluetooth/l2cap_core.c
4819
ida_free(&conn->tx_ida, id);
net/bluetooth/l2cap_core.c
4823
static inline int l2cap_bredr_sig_cmd(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4829
l2cap_put_ident(conn, cmd->code, cmd->ident);
net/bluetooth/l2cap_core.c
4833
l2cap_command_rej(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4837
err = l2cap_connect_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4841
l2cap_connect_create_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4845
err = l2cap_config_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4849
l2cap_config_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4853
err = l2cap_disconnect_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4857
l2cap_disconnect_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4861
l2cap_send_cmd(conn, cmd->ident, L2CAP_ECHO_RSP, cmd_len, data);
net/bluetooth/l2cap_core.c
4868
err = l2cap_information_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4872
l2cap_information_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
4884
static int l2cap_le_connect_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
4925
pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, &conn->hcon->src,
net/bluetooth/l2cap_core.c
4926
&conn->hcon->dst, LE_LINK);
net/bluetooth/l2cap_core.c
4935
if (!smp_sufficient_security(conn->hcon, pchan->sec_level,
net/bluetooth/l2cap_core.c
4944
if (!l2cap_check_enc_key_size(conn->hcon, pchan)) {
net/bluetooth/l2cap_core.c
4958
if (__l2cap_get_chan_by_dcid(conn, scid)) {
net/bluetooth/l2cap_core.c
4970
bacpy(&chan->src, &conn->hcon->src);
net/bluetooth/l2cap_core.c
4971
bacpy(&chan->dst, &conn->hcon->dst);
net/bluetooth/l2cap_core.c
4972
chan->src_type = bdaddr_src_type(conn->hcon);
net/bluetooth/l2cap_core.c
4973
chan->dst_type = bdaddr_dst_type(conn->hcon);
net/bluetooth/l2cap_core.c
4979
__l2cap_chan_add(conn, chan);
net/bluetooth/l2cap_core.c
5024
l2cap_send_cmd(conn, cmd->ident, L2CAP_LE_CONN_RSP, sizeof(rsp), &rsp);
net/bluetooth/l2cap_core.c
5029
static inline int l2cap_le_credits(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5046
chan = l2cap_get_chan_by_dcid(conn, cid);
net/bluetooth/l2cap_core.c
5076
static inline int l2cap_ecred_conn_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5100
__l2cap_chan_list_id(conn, cmd->ident, l2cap_ecred_list_defer,
net/bluetooth/l2cap_core.c
5143
pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, &conn->hcon->src,
net/bluetooth/l2cap_core.c
5144
&conn->hcon->dst, LE_LINK);
net/bluetooth/l2cap_core.c
5152
if (!smp_sufficient_security(conn->hcon, pchan->sec_level,
net/bluetooth/l2cap_core.c
5183
if (__l2cap_get_chan_by_dcid(conn, scid)) {
net/bluetooth/l2cap_core.c
5194
bacpy(&chan->src, &conn->hcon->src);
net/bluetooth/l2cap_core.c
5195
bacpy(&chan->dst, &conn->hcon->dst);
net/bluetooth/l2cap_core.c
5196
chan->src_type = bdaddr_src_type(conn->hcon);
net/bluetooth/l2cap_core.c
5197
chan->dst_type = bdaddr_dst_type(conn->hcon);
net/bluetooth/l2cap_core.c
5203
__l2cap_chan_add(conn, chan);
net/bluetooth/l2cap_core.c
5240
l2cap_send_cmd(conn, cmd->ident, L2CAP_ECRED_CONN_RSP,
net/bluetooth/l2cap_core.c
5246
static inline int l2cap_ecred_conn_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5251
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
5270
list_for_each_entry_safe(chan, tmp, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
5293
if (dcid && __l2cap_get_chan_by_dcid(conn, dcid)) {
net/bluetooth/l2cap_core.c
53
static struct sk_buff *l2cap_build_cmd(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5302
chan = __l2cap_get_chan_by_dcid(conn, dcid);
net/bluetooth/l2cap_core.c
5356
static inline int l2cap_ecred_reconf_req(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5409
chan[i] = __l2cap_get_chan_by_dcid(conn, scid);
net/bluetooth/l2cap_core.c
5448
l2cap_send_cmd(conn, cmd->ident, L2CAP_ECRED_RECONF_RSP, sizeof(rsp),
net/bluetooth/l2cap_core.c
5454
static inline int l2cap_ecred_reconf_rsp(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5472
list_for_each_entry_safe(chan, tmp, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
5482
static inline int l2cap_le_command_rej(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5492
chan = __l2cap_get_chan_by_ident(conn, cmd->ident);
net/bluetooth/l2cap_core.c
55
static void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len,
net/bluetooth/l2cap_core.c
5509
static inline int l2cap_le_sig_cmd(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5515
l2cap_put_ident(conn, cmd->code, cmd->ident);
net/bluetooth/l2cap_core.c
5519
l2cap_le_command_rej(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5523
err = l2cap_conn_param_update_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5530
l2cap_le_connect_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5534
err = l2cap_le_connect_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5538
err = l2cap_le_credits(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5542
err = l2cap_ecred_conn_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5546
err = l2cap_ecred_conn_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5550
err = l2cap_ecred_reconf_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5554
err = l2cap_ecred_reconf_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5558
err = l2cap_disconnect_req(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5562
l2cap_disconnect_rsp(conn, cmd, cmd_len, data);
net/bluetooth/l2cap_core.c
5574
static inline void l2cap_le_sig_channel(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5577
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
5600
err = l2cap_le_sig_cmd(conn, cmd, len, skb->data);
net/bluetooth/l2cap_core.c
5607
l2cap_send_cmd(conn, cmd->ident, L2CAP_COMMAND_REJ,
net/bluetooth/l2cap_core.c
5615
static inline void l2cap_sig_send_rej(struct l2cap_conn *conn, u16 ident)
net/bluetooth/l2cap_core.c
5620
l2cap_send_cmd(conn, ident, L2CAP_COMMAND_REJ, sizeof(rej), &rej);
net/bluetooth/l2cap_core.c
5623
static inline void l2cap_sig_channel(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
5626
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
5630
l2cap_raw_recv(conn, skb);
net/bluetooth/l2cap_core.c
5648
l2cap_sig_send_rej(conn, cmd->ident);
net/bluetooth/l2cap_core.c
5653
err = l2cap_bredr_sig_cmd(conn, cmd, len, skb->data);
net/bluetooth/l2cap_core.c
5656
l2cap_sig_send_rej(conn, cmd->ident);
net/bluetooth/l2cap_core.c
5664
l2cap_sig_send_rej(conn, 0);
net/bluetooth/l2cap_core.c
570
chan->mps = min_t(u16, chan->imtu, chan->conn->mtu - L2CAP_HDR_SIZE);
net/bluetooth/l2cap_core.c
587
void __l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
589
BT_DBG("conn %p, psm 0x%2.2x, dcid 0x%4.4x", conn,
net/bluetooth/l2cap_core.c
592
conn->disc_reason = HCI_ERROR_REMOTE_USER_TERM;
net/bluetooth/l2cap_core.c
594
chan->conn = conn;
net/bluetooth/l2cap_core.c
599
chan->scid = l2cap_alloc_cid(conn);
net/bluetooth/l2cap_core.c
600
if (conn->hcon->type == ACL_LINK)
net/bluetooth/l2cap_core.c
634
hci_conn_hold(conn->hcon);
net/bluetooth/l2cap_core.c
6362
chan->conn->mtu = chan->conn->hcon->mtu;
net/bluetooth/l2cap_core.c
637
list_add_tail(&chan->list, &conn->chan_l);
net/bluetooth/l2cap_core.c
640
void l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
642
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
6429
chan->conn->mtu = chan->conn->hcon->mtu;
net/bluetooth/l2cap_core.c
643
__l2cap_chan_add(conn, chan);
net/bluetooth/l2cap_core.c
644
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
649
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
653
BT_DBG("chan %p, conn %p, err %d, state %s", chan, conn, err,
net/bluetooth/l2cap_core.c
658
if (conn) {
net/bluetooth/l2cap_core.c
6632
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
664
chan->conn = NULL;
net/bluetooth/l2cap_core.c
6652
chan->ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
6654
l2cap_send_cmd(conn, chan->ident, L2CAP_LE_CREDITS, sizeof(pkt), &pkt);
net/bluetooth/l2cap_core.c
672
hci_conn_drop(conn->hcon);
net/bluetooth/l2cap_core.c
6806
static void l2cap_data_channel(struct l2cap_conn *conn, u16 cid,
net/bluetooth/l2cap_core.c
6811
chan = l2cap_get_chan_by_scid(conn, cid);
net/bluetooth/l2cap_core.c
6872
static void l2cap_conless_channel(struct l2cap_conn *conn, __le16 psm,
net/bluetooth/l2cap_core.c
6875
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
6913
static void l2cap_recv_frame(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/l2cap_core.c
6916
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
6922
skb_queue_tail(&conn->pending_rx, skb);
net/bluetooth/l2cap_core.c
6949
l2cap_sig_channel(conn, skb);
net/bluetooth/l2cap_core.c
6955
l2cap_conless_channel(conn, psm, skb);
net/bluetooth/l2cap_core.c
6959
l2cap_le_sig_channel(conn, skb);
net/bluetooth/l2cap_core.c
6963
l2cap_data_channel(conn, cid, skb);
net/bluetooth/l2cap_core.c
6970
struct l2cap_conn *conn = container_of(work, struct l2cap_conn,
net/bluetooth/l2cap_core.c
6976
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
6978
while ((skb = skb_dequeue(&conn->pending_rx)))
net/bluetooth/l2cap_core.c
6979
l2cap_recv_frame(conn, skb);
net/bluetooth/l2cap_core.c
6981
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
6986
struct l2cap_conn *conn = hcon->l2cap_data;
net/bluetooth/l2cap_core.c
6989
if (conn)
net/bluetooth/l2cap_core.c
6990
return conn;
net/bluetooth/l2cap_core.c
6996
conn = kzalloc_obj(*conn);
net/bluetooth/l2cap_core.c
6997
if (!conn) {
net/bluetooth/l2cap_core.c
7002
kref_init(&conn->ref);
net/bluetooth/l2cap_core.c
7003
hcon->l2cap_data = conn;
net/bluetooth/l2cap_core.c
7004
conn->hcon = hci_conn_get(hcon);
net/bluetooth/l2cap_core.c
7005
conn->hchan = hchan;
net/bluetooth/l2cap_core.c
7007
BT_DBG("hcon %p conn %p hchan %p", hcon, conn, hchan);
net/bluetooth/l2cap_core.c
7009
conn->mtu = hcon->mtu;
net/bluetooth/l2cap_core.c
7010
conn->feat_mask = 0;
net/bluetooth/l2cap_core.c
7012
conn->local_fixed_chan = L2CAP_FC_SIG_BREDR | L2CAP_FC_CONNLESS;
net/bluetooth/l2cap_core.c
7017
conn->local_fixed_chan |= L2CAP_FC_SMP_BREDR;
net/bluetooth/l2cap_core.c
7019
mutex_init(&conn->lock);
net/bluetooth/l2cap_core.c
7021
INIT_LIST_HEAD(&conn->chan_l);
net/bluetooth/l2cap_core.c
7022
INIT_LIST_HEAD(&conn->users);
net/bluetooth/l2cap_core.c
7024
INIT_DELAYED_WORK(&conn->info_timer, l2cap_info_timeout);
net/bluetooth/l2cap_core.c
7025
ida_init(&conn->tx_ida);
net/bluetooth/l2cap_core.c
7027
skb_queue_head_init(&conn->pending_rx);
net/bluetooth/l2cap_core.c
7028
INIT_WORK(&conn->pending_rx_work, process_pending_rx);
net/bluetooth/l2cap_core.c
7029
INIT_DELAYED_WORK(&conn->id_addr_timer, l2cap_conn_update_id_addr);
net/bluetooth/l2cap_core.c
7031
conn->disc_reason = HCI_ERROR_REMOTE_USER_TERM;
net/bluetooth/l2cap_core.c
7033
return conn;
net/bluetooth/l2cap_core.c
705
static void __l2cap_chan_list_id(struct l2cap_conn *conn, u16 id,
net/bluetooth/l2cap_core.c
7078
struct l2cap_conn *conn;
net/bluetooth/l2cap_core.c
710
list_for_each_entry_safe(chan, l, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
716
static void __l2cap_chan_list(struct l2cap_conn *conn, l2cap_chan_func_t func,
net/bluetooth/l2cap_core.c
7187
conn = l2cap_conn_add(hcon);
net/bluetooth/l2cap_core.c
7188
if (!conn) {
net/bluetooth/l2cap_core.c
7201
l2cap_chan_list(conn, l2cap_chan_by_pid, &data);
net/bluetooth/l2cap_core.c
721
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
7211
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
7214
if (cid && __l2cap_get_chan_by_dcid(conn, cid)) {
net/bluetooth/l2cap_core.c
7224
__l2cap_chan_add(conn, chan);
net/bluetooth/l2cap_core.c
7252
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
726
void l2cap_chan_list(struct l2cap_conn *conn, l2cap_chan_func_t func,
net/bluetooth/l2cap_core.c
7262
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
7269
chan->ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
7271
l2cap_send_cmd(conn, chan->ident, L2CAP_ECRED_RECONF_REQ,
net/bluetooth/l2cap_core.c
729
if (!conn)
net/bluetooth/l2cap_core.c
732
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
733
__l2cap_chan_list(conn, func, data);
net/bluetooth/l2cap_core.c
734
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
7359
struct l2cap_conn *conn;
net/bluetooth/l2cap_core.c
7373
conn = l2cap_conn_add(hcon);
net/bluetooth/l2cap_core.c
7374
if (!conn)
net/bluetooth/l2cap_core.c
7393
if (__l2cap_get_chan_by_dcid(conn, pchan->scid))
net/bluetooth/l2cap_core.c
7404
__l2cap_chan_add(conn, chan);
net/bluetooth/l2cap_core.c
741
struct l2cap_conn *conn = container_of(work, struct l2cap_conn,
net/bluetooth/l2cap_core.c
7414
l2cap_conn_ready(conn);
net/bluetooth/l2cap_core.c
7419
struct l2cap_conn *conn = hcon->l2cap_data;
net/bluetooth/l2cap_core.c
7423
if (!conn)
net/bluetooth/l2cap_core.c
7425
return conn->disc_reason;
net/bluetooth/l2cap_core.c
743
struct hci_conn *hcon = conn->hcon;
net/bluetooth/l2cap_core.c
7457
struct l2cap_conn *conn = hcon->l2cap_data;
net/bluetooth/l2cap_core.c
746
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
7460
if (!conn)
net/bluetooth/l2cap_core.c
7463
BT_DBG("conn %p status 0x%2.2x encrypt %u", conn, status, encrypt);
net/bluetooth/l2cap_core.c
7465
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
7467
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
748
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
7521
l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP,
net/bluetooth/l2cap_core.c
7528
l2cap_send_cmd(conn, l2cap_get_ident(conn),
net/bluetooth/l2cap_core.c
7539
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
7543
static int l2cap_recv_frag(struct l2cap_conn *conn, struct sk_buff *skb,
net/bluetooth/l2cap_core.c
7546
if (!conn->rx_skb) {
net/bluetooth/l2cap_core.c
7548
conn->rx_skb = bt_skb_alloc(len, GFP_KERNEL);
net/bluetooth/l2cap_core.c
7549
if (!conn->rx_skb)
net/bluetooth/l2cap_core.c
755
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
7552
conn->rx_len = len;
net/bluetooth/l2cap_core.c
7554
skb_set_delivery_time(conn->rx_skb, skb->tstamp,
net/bluetooth/l2cap_core.c
7560
skb_copy_from_linear_data(skb, skb_put(conn->rx_skb, len), len);
net/bluetooth/l2cap_core.c
7562
conn->rx_len -= len;
net/bluetooth/l2cap_core.c
7567
static int l2cap_recv_len(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/l2cap_core.c
7573
len = l2cap_recv_frag(conn, skb, L2CAP_LEN_SIZE - conn->rx_skb->len);
net/bluetooth/l2cap_core.c
7576
if (len < 0 || conn->rx_skb->len < L2CAP_LEN_SIZE)
net/bluetooth/l2cap_core.c
7579
rx_skb = conn->rx_skb;
net/bluetooth/l2cap_core.c
7585
conn->rx_len = len + (L2CAP_HDR_SIZE - L2CAP_LEN_SIZE);
net/bluetooth/l2cap_core.c
7592
conn->rx_skb = NULL;
net/bluetooth/l2cap_core.c
7595
len = l2cap_recv_frag(conn, rx_skb,
net/bluetooth/l2cap_core.c
760
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
7602
static void l2cap_recv_reset(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
7604
kfree_skb(conn->rx_skb);
net/bluetooth/l2cap_core.c
7605
conn->rx_skb = NULL;
net/bluetooth/l2cap_core.c
7606
conn->rx_len = 0;
net/bluetooth/l2cap_core.c
7626
struct l2cap_conn *conn;
net/bluetooth/l2cap_core.c
7641
conn = hcon->l2cap_data;
net/bluetooth/l2cap_core.c
7643
if (!conn)
net/bluetooth/l2cap_core.c
7644
conn = l2cap_conn_add(hcon);
net/bluetooth/l2cap_core.c
7646
conn = l2cap_conn_hold_unless_zero(conn);
net/bluetooth/l2cap_core.c
7651
if (!conn) {
net/bluetooth/l2cap_core.c
7656
BT_DBG("conn %p len %u flags 0x%x", conn, skb->len, flags);
net/bluetooth/l2cap_core.c
7658
mutex_lock(&conn->lock);
net/bluetooth/l2cap_core.c
7664
if (conn->rx_skb) {
net/bluetooth/l2cap_core.c
7666
l2cap_recv_reset(conn);
net/bluetooth/l2cap_core.c
7667
l2cap_conn_unreliable(conn, ECOMM);
net/bluetooth/l2cap_core.c
7675
l2cap_recv_frag(conn, skb, conn->mtu);
net/bluetooth/l2cap_core.c
7683
l2cap_recv_frame(conn, skb);
net/bluetooth/l2cap_core.c
7707
l2cap_recv_frame(conn, skb);
net/bluetooth/l2cap_core.c
7708
l2cap_conn_unreliable(conn, ECOMM);
net/bluetooth/l2cap_core.c
7713
if (l2cap_recv_frag(conn, skb, len) < 0)
net/bluetooth/l2cap_core.c
7719
BT_DBG("Cont: frag len %u (expecting %u)", skb->len, conn->rx_len);
net/bluetooth/l2cap_core.c
7721
if (!conn->rx_skb) {
net/bluetooth/l2cap_core.c
7723
l2cap_conn_unreliable(conn, ECOMM);
net/bluetooth/l2cap_core.c
7728
if (conn->rx_skb->len < L2CAP_LEN_SIZE) {
net/bluetooth/l2cap_core.c
7729
if (l2cap_recv_len(conn, skb) < 0) {
net/bluetooth/l2cap_core.c
7730
l2cap_conn_unreliable(conn, ECOMM);
net/bluetooth/l2cap_core.c
7735
if (conn->rx_skb->len < L2CAP_LEN_SIZE)
net/bluetooth/l2cap_core.c
7739
if (skb->len > conn->rx_len) {
net/bluetooth/l2cap_core.c
7741
skb->len, conn->rx_len);
net/bluetooth/l2cap_core.c
7742
l2cap_recv_reset(conn);
net/bluetooth/l2cap_core.c
7743
l2cap_conn_unreliable(conn, ECOMM);
net/bluetooth/l2cap_core.c
7748
l2cap_recv_frag(conn, skb, skb->len);
net/bluetooth/l2cap_core.c
7750
if (!conn->rx_len) {
net/bluetooth/l2cap_core.c
7755
struct sk_buff *rx_skb = conn->rx_skb;
net/bluetooth/l2cap_core.c
7756
conn->rx_skb = NULL;
net/bluetooth/l2cap_core.c
7757
l2cap_recv_frame(conn, rx_skb);
net/bluetooth/l2cap_core.c
7765
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_core.c
7766
l2cap_conn_put(conn);
net/bluetooth/l2cap_core.c
777
l2cap_send_cmd(conn, chan->ident, L2CAP_LE_CONN_RSP, sizeof(rsp),
net/bluetooth/l2cap_core.c
790
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
806
l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP, sizeof(rsp), &rsp);
net/bluetooth/l2cap_core.c
811
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
831
if (conn->hcon->type == ACL_LINK)
net/bluetooth/l2cap_core.c
833
else if (conn->hcon->type == LE_LINK) {
net/bluetooth/l2cap_core.c
90
static struct l2cap_chan *__l2cap_get_chan_by_dcid(struct l2cap_conn *conn,
net/bluetooth/l2cap_core.c
915
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
918
if (conn->hcon->type == LE_LINK)
net/bluetooth/l2cap_core.c
919
return smp_conn_security(conn->hcon, chan->sec_level);
net/bluetooth/l2cap_core.c
923
return hci_conn_security(conn->hcon, chan->sec_level, auth_type,
net/bluetooth/l2cap_core.c
927
static int l2cap_get_ident(struct l2cap_conn *conn)
net/bluetooth/l2cap_core.c
933
if (conn->hcon->type == LE_LINK)
net/bluetooth/l2cap_core.c
944
ident = ida_alloc_range(&conn->tx_ida, READ_ONCE(conn->tx_ident) + 1,
net/bluetooth/l2cap_core.c
948
ident = ida_alloc_range(&conn->tx_ida, 1, max, GFP_ATOMIC);
net/bluetooth/l2cap_core.c
95
list_for_each_entry(c, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
959
WRITE_ONCE(conn->tx_ident, ident);
net/bluetooth/l2cap_core.c
964
static void l2cap_send_acl(struct l2cap_conn *conn, struct sk_buff *skb,
net/bluetooth/l2cap_core.c
968
if (hci_conn_valid(conn->hcon->hdev, conn->hcon))
net/bluetooth/l2cap_core.c
969
hci_send_acl(conn->hchan, skb, flags);
net/bluetooth/l2cap_core.c
974
static void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len,
net/bluetooth/l2cap_core.c
977
struct sk_buff *skb = l2cap_build_cmd(conn, code, ident, len, data);
net/bluetooth/l2cap_core.c
987
if (lmp_no_flush_capable(conn->hcon->hdev) ||
net/bluetooth/l2cap_core.c
988
conn->hcon->type == LE_LINK)
net/bluetooth/l2cap_core.c
996
l2cap_send_acl(conn, skb, flags);
net/bluetooth/l2cap_sock.c
1080
if (!chan->conn)
net/bluetooth/l2cap_sock.c
1083
conn = chan->conn;
net/bluetooth/l2cap_sock.c
1084
err = hci_conn_set_phy(conn->hcon, phys);
net/bluetooth/l2cap_sock.c
1342
struct l2cap_conn *conn;
net/bluetooth/l2cap_sock.c
1401
conn = l2cap_conn_hold_unless_zero(chan->conn);
net/bluetooth/l2cap_sock.c
1404
if (conn)
net/bluetooth/l2cap_sock.c
1406
mutex_lock(&conn->lock);
net/bluetooth/l2cap_sock.c
1412
if (conn) {
net/bluetooth/l2cap_sock.c
1413
mutex_unlock(&conn->lock);
net/bluetooth/l2cap_sock.c
1414
l2cap_conn_put(conn);
net/bluetooth/l2cap_sock.c
537
cinfo.hci_handle = chan->conn->hcon->handle;
net/bluetooth/l2cap_sock.c
538
memcpy(cinfo.dev_class, chan->conn->hcon->dev_class, 3);
net/bluetooth/l2cap_sock.c
588
if (chan->conn) {
net/bluetooth/l2cap_sock.c
589
sec.level = chan->conn->hcon->sec_level;
net/bluetooth/l2cap_sock.c
592
sec.key_size = chan->conn->hcon->enc_key_size;
net/bluetooth/l2cap_sock.c
673
phys = hci_conn_get_phy(chan->conn->hcon);
net/bluetooth/l2cap_sock.c
886
struct l2cap_conn *conn;
net/bluetooth/l2cap_sock.c
925
if (!chan->conn)
net/bluetooth/l2cap_sock.c
928
conn = chan->conn;
net/bluetooth/l2cap_sock.c
932
if (smp_conn_security(conn->hcon, sec.level)) {
net/bluetooth/l2cap_sock.c
984
conn = chan->conn;
net/bluetooth/l2cap_sock.c
987
if (!conn || !lmp_no_flush_capable(conn->hcon->hdev)) {
net/bluetooth/mgmt.c
10044
void mgmt_auth_failed(struct hci_conn *conn, u8 hci_status)
net/bluetooth/mgmt.c
10050
bacpy(&ev.addr.bdaddr, &conn->dst);
net/bluetooth/mgmt.c
10051
ev.addr.type = link_to_bdaddr(conn->type, conn->dst_type);
net/bluetooth/mgmt.c
10054
cmd = find_pairing(conn);
net/bluetooth/mgmt.c
10056
mgmt_event(MGMT_EV_AUTH_FAILED, conn->hdev, &ev, sizeof(ev),
net/bluetooth/mgmt.c
3095
struct hci_conn *conn;
net/bluetooth/mgmt.c
3098
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
net/bluetooth/mgmt.c
3101
conn = hci_conn_hash_lookup_le(hdev, &cp->addr.bdaddr,
net/bluetooth/mgmt.c
3104
if (!conn)
net/bluetooth/mgmt.c
3110
hci_abort_conn(conn, HCI_ERROR_REMOTE_USER_TERM);
net/bluetooth/mgmt.c
3122
struct hci_conn *conn;
net/bluetooth/mgmt.c
3158
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
net/bluetooth/mgmt.c
3161
conn = NULL;
net/bluetooth/mgmt.c
3187
conn = hci_conn_hash_lookup_le(hdev, &cp->addr.bdaddr, addr_type);
net/bluetooth/mgmt.c
3188
if (!conn) {
net/bluetooth/mgmt.c
3197
set_bit(HCI_CONN_PARAM_REMOVAL_PEND, &conn->flags);
net/bluetooth/mgmt.c
3212
conn = NULL;
net/bluetooth/mgmt.c
3218
if (!conn) {
net/bluetooth/mgmt.c
3256
struct hci_conn *conn;
net/bluetooth/mgmt.c
3259
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
net/bluetooth/mgmt.c
3262
conn = hci_conn_hash_lookup_le(hdev, &cp->addr.bdaddr,
net/bluetooth/mgmt.c
3265
if (!conn)
net/bluetooth/mgmt.c
3271
hci_abort_conn(conn, HCI_ERROR_REMOTE_USER_TERM);
net/bluetooth/mgmt.c
3422
struct hci_conn *conn;
net/bluetooth/mgmt.c
3438
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->addr.bdaddr);
net/bluetooth/mgmt.c
3439
if (!conn) {
net/bluetooth/mgmt.c
3445
if (conn->pending_sec_level == BT_SECURITY_HIGH && cp->pin_len != 16) {
net/bluetooth/mgmt.c
3504
static struct mgmt_pending_cmd *find_pairing(struct hci_conn *conn)
net/bluetooth/mgmt.c
3506
struct hci_dev *hdev = conn->hdev;
net/bluetooth/mgmt.c
3513
if (cmd->user_data != conn)
net/bluetooth/mgmt.c
3525
struct hci_conn *conn = cmd->user_data;
net/bluetooth/mgmt.c
3528
bacpy(&rp.addr.bdaddr, &conn->dst);
net/bluetooth/mgmt.c
3529
rp.addr.type = link_to_bdaddr(conn->type, conn->dst_type);
net/bluetooth/mgmt.c
3535
conn->connect_cfm_cb = NULL;
net/bluetooth/mgmt.c
3536
conn->security_cfm_cb = NULL;
net/bluetooth/mgmt.c
3537
conn->disconn_cfm_cb = NULL;
net/bluetooth/mgmt.c
3539
hci_conn_drop(conn);
net/bluetooth/mgmt.c
3544
clear_bit(HCI_CONN_PARAM_REMOVAL_PEND, &conn->flags);
net/bluetooth/mgmt.c
3546
hci_conn_put(conn);
net/bluetooth/mgmt.c
3551
void mgmt_smp_complete(struct hci_conn *conn, bool complete)
net/bluetooth/mgmt.c
3556
cmd = find_pairing(conn);
net/bluetooth/mgmt.c
3563
static void pairing_complete_cb(struct hci_conn *conn, u8 status)
net/bluetooth/mgmt.c
3569
cmd = find_pairing(conn);
net/bluetooth/mgmt.c
3579
static void le_pairing_complete_cb(struct hci_conn *conn, u8 status)
net/bluetooth/mgmt.c
3588
cmd = find_pairing(conn);
net/bluetooth/mgmt.c
3605
struct hci_conn *conn;
net/bluetooth/mgmt.c
3644
conn = hci_connect_acl(hdev, &cp->addr.bdaddr, sec_level,
net/bluetooth/mgmt.c
3669
conn = hci_connect_le_scan(hdev, &cp->addr.bdaddr, addr_type,
net/bluetooth/mgmt.c
3674
if (IS_ERR(conn)) {
net/bluetooth/mgmt.c
3677
if (PTR_ERR(conn) == -EBUSY)
net/bluetooth/mgmt.c
3679
else if (PTR_ERR(conn) == -EOPNOTSUPP)
net/bluetooth/mgmt.c
3681
else if (PTR_ERR(conn) == -ECONNREFUSED)
net/bluetooth/mgmt.c
3691
if (conn->connect_cfm_cb) {
net/bluetooth/mgmt.c
3692
hci_conn_drop(conn);
net/bluetooth/mgmt.c
3701
hci_conn_drop(conn);
net/bluetooth/mgmt.c
3709
conn->connect_cfm_cb = pairing_complete_cb;
net/bluetooth/mgmt.c
3710
conn->security_cfm_cb = pairing_complete_cb;
net/bluetooth/mgmt.c
3711
conn->disconn_cfm_cb = pairing_complete_cb;
net/bluetooth/mgmt.c
3713
conn->connect_cfm_cb = le_pairing_complete_cb;
net/bluetooth/mgmt.c
3714
conn->security_cfm_cb = le_pairing_complete_cb;
net/bluetooth/mgmt.c
3715
conn->disconn_cfm_cb = le_pairing_complete_cb;
net/bluetooth/mgmt.c
3718
conn->io_capability = cp->io_cap;
net/bluetooth/mgmt.c
3719
cmd->user_data = hci_conn_get(conn);
net/bluetooth/mgmt.c
3721
if ((conn->state == BT_CONNECTED || conn->state == BT_CONFIG) &&
net/bluetooth/mgmt.c
3722
hci_conn_security(conn, sec_level, auth_type, true)) {
net/bluetooth/mgmt.c
3739
struct hci_conn *conn;
net/bluetooth/mgmt.c
3759
conn = cmd->user_data;
net/bluetooth/mgmt.c
3761
if (bacmp(&addr->bdaddr, &conn->dst) != 0) {
net/bluetooth/mgmt.c
3783
if (conn->conn_reason == CONN_REASON_PAIR_DEVICE)
net/bluetooth/mgmt.c
3784
hci_abort_conn(conn, HCI_ERROR_REMOTE_USER_TERM);
net/bluetooth/mgmt.c
3796
struct hci_conn *conn;
net/bluetooth/mgmt.c
3809
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &addr->bdaddr);
net/bluetooth/mgmt.c
3811
conn = hci_conn_hash_lookup_le(hdev, &addr->bdaddr,
net/bluetooth/mgmt.c
3814
if (!conn) {
net/bluetooth/mgmt.c
3822
err = smp_user_confirm_reply(conn, mgmt_op, passkey);
net/bluetooth/mgmt.c
5140
struct hci_conn *conn;
net/bluetooth/mgmt.c
5142
conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, addr);
net/bluetooth/mgmt.c
5143
if (!conn)
net/bluetooth/mgmt.c
5146
if (conn->dst_type != type)
net/bluetooth/mgmt.c
5149
if (conn->state != BT_CONNECTED)
net/bluetooth/mgmt.c
7372
struct hci_conn *conn = cmd->user_data;
net/bluetooth/mgmt.c
7383
rp.rssi = conn->rssi;
net/bluetooth/mgmt.c
7384
rp.tx_power = conn->tx_power;
net/bluetooth/mgmt.c
7385
rp.max_tx_power = conn->max_tx_power;
net/bluetooth/mgmt.c
7402
struct hci_conn *conn;
net/bluetooth/mgmt.c
7408
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
net/bluetooth/mgmt.c
7411
conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->addr.bdaddr);
net/bluetooth/mgmt.c
7413
if (!conn || conn->state != BT_CONNECTED)
net/bluetooth/mgmt.c
7416
cmd->user_data = conn;
net/bluetooth/mgmt.c
7417
handle = cpu_to_le16(conn->handle);
net/bluetooth/mgmt.c
7426
conn->tx_power == HCI_TX_POWER_INVALID))
net/bluetooth/mgmt.c
7430
if (!err && conn->max_tx_power == HCI_TX_POWER_INVALID)
net/bluetooth/mgmt.c
7441
struct hci_conn *conn;
net/bluetooth/mgmt.c
7466
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
net/bluetooth/mgmt.c
7469
conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->addr.bdaddr);
net/bluetooth/mgmt.c
7471
if (!conn || conn->state != BT_CONNECTED) {
net/bluetooth/mgmt.c
7487
if (time_after(jiffies, conn->conn_info_timestamp +
net/bluetooth/mgmt.c
7489
!conn->conn_info_timestamp) {
net/bluetooth/mgmt.c
7511
conn->conn_info_timestamp = jiffies;
net/bluetooth/mgmt.c
7514
rp.rssi = conn->rssi;
net/bluetooth/mgmt.c
7515
rp.tx_power = conn->tx_power;
net/bluetooth/mgmt.c
7516
rp.max_tx_power = conn->max_tx_power;
net/bluetooth/mgmt.c
7532
struct hci_conn *conn = cmd->user_data;
net/bluetooth/mgmt.c
7546
if (conn) {
net/bluetooth/mgmt.c
7547
rp.piconet_clock = cpu_to_le32(conn->clock);
net/bluetooth/mgmt.c
7548
rp.accuracy = cpu_to_le16(conn->clock_accuracy);
net/bluetooth/mgmt.c
7563
struct hci_conn *conn;
net/bluetooth/mgmt.c
7569
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->addr.bdaddr);
net/bluetooth/mgmt.c
7570
if (!conn || conn->state != BT_CONNECTED)
net/bluetooth/mgmt.c
7573
cmd->user_data = conn;
net/bluetooth/mgmt.c
7574
hci_cp.handle = cpu_to_le16(conn->handle);
net/bluetooth/mgmt.c
7586
struct hci_conn *conn;
net/bluetooth/mgmt.c
7610
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK,
net/bluetooth/mgmt.c
7612
if (!conn || conn->state != BT_CONNECTED) {
net/bluetooth/mgmt.c
7620
conn = NULL;
net/bluetooth/mgmt.c
7939
struct hci_conn *conn;
net/bluetooth/mgmt.c
7941
conn = hci_conn_hash_lookup_le(hdev, &params->addr, params->addr_type);
net/bluetooth/mgmt.c
7942
if (!conn)
net/bluetooth/mgmt.c
7945
return hci_le_conn_update_sync(hdev, conn, params);
net/bluetooth/mgmt.c
8043
struct hci_conn *conn;
net/bluetooth/mgmt.c
8049
conn = hci_conn_hash_lookup_le(hdev, &hci_param->addr,
net/bluetooth/mgmt.c
8051
if (conn && conn->role == HCI_ROLE_MASTER &&
net/bluetooth/mgmt.c
8052
(conn->le_conn_min_interval != min ||
net/bluetooth/mgmt.c
8053
conn->le_conn_max_interval != max ||
net/bluetooth/mgmt.c
8054
conn->le_conn_latency != latency ||
net/bluetooth/mgmt.c
8055
conn->le_supv_timeout != timeout))
net/bluetooth/mgmt.c
9760
void mgmt_device_connected(struct hci_dev *hdev, struct hci_conn *conn,
net/bluetooth/mgmt.c
9768
if (test_and_set_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags))
net/bluetooth/mgmt.c
9772
if (conn->le_adv_data_len > 0)
net/bluetooth/mgmt.c
9774
sizeof(*ev) + conn->le_adv_data_len);
net/bluetooth/mgmt.c
9778
eir_precalc_len(sizeof(conn->dev_class)));
net/bluetooth/mgmt.c
9784
bacpy(&ev->addr.bdaddr, &conn->dst);
net/bluetooth/mgmt.c
9785
ev->addr.type = link_to_bdaddr(conn->type, conn->dst_type);
net/bluetooth/mgmt.c
9787
if (conn->out)
net/bluetooth/mgmt.c
9796
if (conn->le_adv_data_len > 0) {
net/bluetooth/mgmt.c
9797
skb_put_data(skb, conn->le_adv_data, conn->le_adv_data_len);
net/bluetooth/mgmt.c
9798
eir_len = conn->le_adv_data_len;
net/bluetooth/mgmt.c
9803
if (memcmp(conn->dev_class, "\0\0\0", sizeof(conn->dev_class)))
net/bluetooth/mgmt.c
9805
conn->dev_class, sizeof(conn->dev_class));
net/bluetooth/mgmt.c
9897
void mgmt_connect_failed(struct hci_dev *hdev, struct hci_conn *conn, u8 status)
net/bluetooth/mgmt.c
9901
if (test_and_clear_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags)) {
net/bluetooth/mgmt.c
9902
mgmt_device_disconnected(hdev, &conn->dst, conn->type,
net/bluetooth/mgmt.c
9903
conn->dst_type, status, true);
net/bluetooth/mgmt.c
9907
bacpy(&ev.addr.bdaddr, &conn->dst);
net/bluetooth/mgmt.c
9908
ev.addr.type = link_to_bdaddr(conn->type, conn->dst_type);
net/bluetooth/rfcomm/core.c
1323
struct l2cap_conn *conn = l2cap_pi(sk)->chan->conn;
net/bluetooth/rfcomm/core.c
1337
hci_conn_switch_role(conn->hcon, 0x00);
net/bluetooth/rfcomm/core.c
2138
static void rfcomm_security_cfm(struct hci_conn *conn, u8 status, u8 encrypt)
net/bluetooth/rfcomm/core.c
2143
BT_DBG("conn %p status 0x%02x encrypt 0x%02x", conn, status, encrypt);
net/bluetooth/rfcomm/core.c
2145
s = rfcomm_session_get(&conn->hdev->bdaddr, &conn->dst);
net/bluetooth/rfcomm/core.c
215
struct l2cap_conn *conn = l2cap_pi(sk)->chan->conn;
net/bluetooth/rfcomm/core.c
2173
if (!status && hci_conn_check_secure(conn, d->sec_level))
net/bluetooth/rfcomm/core.c
232
return hci_conn_security(conn->hcon, d->sec_level, auth_type,
net/bluetooth/rfcomm/sock.c
730
struct l2cap_conn *conn;
net/bluetooth/rfcomm/sock.c
781
conn = l2cap_pi(l2cap_sk)->chan->conn;
net/bluetooth/rfcomm/sock.c
784
cinfo.hci_handle = conn->hcon->handle;
net/bluetooth/rfcomm/sock.c
785
memcpy(cinfo.dev_class, conn->hcon->dev_class, 3);
net/bluetooth/rfcomm/tty.c
178
struct hci_conn *conn;
net/bluetooth/rfcomm/tty.c
188
conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &dev->dst);
net/bluetooth/rfcomm/tty.c
193
if (conn && device_is_registered(&conn->dev))
net/bluetooth/rfcomm/tty.c
194
device_move(dev->tty_dev, &conn->dev, DPM_ORDER_DEV_AFTER_PARENT);
net/bluetooth/sco.c
100
static void sco_conn_put(struct sco_conn *conn)
net/bluetooth/sco.c
102
if (!conn)
net/bluetooth/sco.c
105
BT_DBG("conn %p refcnt %d", conn, kref_read(&conn->ref));
net/bluetooth/sco.c
107
kref_put(&conn->ref, sco_conn_free);
net/bluetooth/sco.c
1092
opts.mtu = sco_pi(sk)->conn->mtu;
net/bluetooth/sco.c
110
static struct sco_conn *sco_conn_hold(struct sco_conn *conn)
net/bluetooth/sco.c
1111
cinfo.hci_handle = sco_pi(sk)->conn->hcon->handle;
net/bluetooth/sco.c
1112
memcpy(cinfo.dev_class, sco_pi(sk)->conn->hcon->dev_class, 3);
net/bluetooth/sco.c
112
BT_DBG("conn %p refcnt %u", conn, kref_read(&conn->ref));
net/bluetooth/sco.c
114
kref_get(&conn->ref);
net/bluetooth/sco.c
115
return conn;
net/bluetooth/sco.c
118
static struct sco_conn *sco_conn_hold_unless_zero(struct sco_conn *conn)
net/bluetooth/sco.c
1182
phys = hci_conn_get_phy(sco_pi(sk)->conn->hcon);
net/bluetooth/sco.c
120
if (!conn)
net/bluetooth/sco.c
1201
if (put_user(sco_pi(sk)->conn->mtu, (u32 __user *)optval))
net/bluetooth/sco.c
123
BT_DBG("conn %p refcnt %u", conn, kref_read(&conn->ref));
net/bluetooth/sco.c
125
if (!kref_get_unless_zero(&conn->ref))
net/bluetooth/sco.c
128
return conn;
net/bluetooth/sco.c
131
static struct sock *sco_sock_hold(struct sco_conn *conn)
net/bluetooth/sco.c
133
if (!conn || !bt_sock_linked(&sco_sk_list, conn->sk))
net/bluetooth/sco.c
136
sock_hold(conn->sk);
net/bluetooth/sco.c
1365
static void sco_conn_ready(struct sco_conn *conn)
net/bluetooth/sco.c
1368
struct sock *sk = conn->sk;
net/bluetooth/sco.c
1370
BT_DBG("conn %p", conn);
net/bluetooth/sco.c
1379
sco_conn_lock(conn);
net/bluetooth/sco.c
138
return conn->sk;
net/bluetooth/sco.c
1381
if (!conn->hcon) {
net/bluetooth/sco.c
1382
sco_conn_unlock(conn);
net/bluetooth/sco.c
1386
parent = sco_get_sock_listen(&conn->hcon->src);
net/bluetooth/sco.c
1388
sco_conn_unlock(conn);
net/bluetooth/sco.c
1398
sco_conn_unlock(conn);
net/bluetooth/sco.c
1404
bacpy(&sco_pi(sk)->src, &conn->hcon->src);
net/bluetooth/sco.c
1405
bacpy(&sco_pi(sk)->dst, &conn->hcon->dst);
net/bluetooth/sco.c
1407
sco_conn_hold(conn);
net/bluetooth/sco.c
1408
hci_conn_hold(conn->hcon);
net/bluetooth/sco.c
1409
__sco_chan_add(conn, sk, parent);
net/bluetooth/sco.c
1421
sco_conn_unlock(conn);
net/bluetooth/sco.c
143
struct sco_conn *conn = container_of(work, struct sco_conn,
net/bluetooth/sco.c
1461
struct sco_conn *conn;
net/bluetooth/sco.c
1463
conn = sco_conn_add(hcon);
net/bluetooth/sco.c
1464
if (conn) {
net/bluetooth/sco.c
1465
sco_conn_ready(conn);
net/bluetooth/sco.c
1466
sco_conn_put(conn);
net/bluetooth/sco.c
147
conn = sco_conn_hold_unless_zero(conn);
net/bluetooth/sco.c
148
if (!conn)
net/bluetooth/sco.c
1485
struct sco_conn *conn;
net/bluetooth/sco.c
1496
conn = sco_conn_hold_unless_zero(hcon->sco_data);
net/bluetooth/sco.c
1501
if (!conn) {
net/bluetooth/sco.c
1506
BT_DBG("conn %p len %u", conn, skb->len);
net/bluetooth/sco.c
1509
sco_recv_frame(conn, skb);
net/bluetooth/sco.c
151
sco_conn_lock(conn);
net/bluetooth/sco.c
1513
sco_conn_put(conn);
net/bluetooth/sco.c
152
if (!conn->hcon) {
net/bluetooth/sco.c
153
sco_conn_unlock(conn);
net/bluetooth/sco.c
154
sco_conn_put(conn);
net/bluetooth/sco.c
157
sk = sco_sock_hold(conn);
net/bluetooth/sco.c
158
sco_conn_unlock(conn);
net/bluetooth/sco.c
159
sco_conn_put(conn);
net/bluetooth/sco.c
175
if (!sco_pi(sk)->conn)
net/bluetooth/sco.c
179
cancel_delayed_work(&sco_pi(sk)->conn->timeout_work);
net/bluetooth/sco.c
180
schedule_delayed_work(&sco_pi(sk)->conn->timeout_work, timeout);
net/bluetooth/sco.c
185
if (!sco_pi(sk)->conn)
net/bluetooth/sco.c
189
cancel_delayed_work(&sco_pi(sk)->conn->timeout_work);
net/bluetooth/sco.c
195
struct sco_conn *conn = hcon->sco_data;
net/bluetooth/sco.c
197
conn = sco_conn_hold_unless_zero(conn);
net/bluetooth/sco.c
198
if (conn) {
net/bluetooth/sco.c
199
if (!conn->hcon) {
net/bluetooth/sco.c
200
sco_conn_lock(conn);
net/bluetooth/sco.c
201
conn->hcon = hcon;
net/bluetooth/sco.c
202
sco_conn_unlock(conn);
net/bluetooth/sco.c
204
return conn;
net/bluetooth/sco.c
207
conn = kzalloc_obj(struct sco_conn);
net/bluetooth/sco.c
208
if (!conn)
net/bluetooth/sco.c
211
kref_init(&conn->ref);
net/bluetooth/sco.c
212
spin_lock_init(&conn->lock);
net/bluetooth/sco.c
213
INIT_DELAYED_WORK(&conn->timeout_work, sco_sock_timeout);
net/bluetooth/sco.c
215
hcon->sco_data = conn;
net/bluetooth/sco.c
216
conn->hcon = hcon;
net/bluetooth/sco.c
217
conn->mtu = hcon->mtu;
net/bluetooth/sco.c
220
conn->mtu = hcon->mtu;
net/bluetooth/sco.c
222
conn->mtu = 60;
net/bluetooth/sco.c
224
BT_DBG("hcon %p conn %p", hcon, conn);
net/bluetooth/sco.c
226
return conn;
net/bluetooth/sco.c
233
struct sco_conn *conn;
net/bluetooth/sco.c
235
conn = sco_pi(sk)->conn;
net/bluetooth/sco.c
236
sco_pi(sk)->conn = NULL;
net/bluetooth/sco.c
238
BT_DBG("sk %p, conn %p, err %d", sk, conn, err);
net/bluetooth/sco.c
240
if (conn) {
net/bluetooth/sco.c
241
sco_conn_lock(conn);
net/bluetooth/sco.c
242
conn->sk = NULL;
net/bluetooth/sco.c
243
sco_conn_unlock(conn);
net/bluetooth/sco.c
244
sco_conn_put(conn);
net/bluetooth/sco.c
256
struct sco_conn *conn = hcon->sco_data;
net/bluetooth/sco.c
259
conn = sco_conn_hold_unless_zero(conn);
net/bluetooth/sco.c
260
if (!conn)
net/bluetooth/sco.c
263
BT_DBG("hcon %p conn %p, err %d", hcon, conn, err);
net/bluetooth/sco.c
265
sco_conn_lock(conn);
net/bluetooth/sco.c
266
sk = sco_sock_hold(conn);
net/bluetooth/sco.c
267
sco_conn_unlock(conn);
net/bluetooth/sco.c
268
sco_conn_put(conn);
net/bluetooth/sco.c
271
sco_conn_put(conn);
net/bluetooth/sco.c
283
static void __sco_chan_add(struct sco_conn *conn, struct sock *sk,
net/bluetooth/sco.c
286
BT_DBG("conn %p", conn);
net/bluetooth/sco.c
288
sco_pi(sk)->conn = conn;
net/bluetooth/sco.c
289
conn->sk = sk;
net/bluetooth/sco.c
295
static int sco_chan_add(struct sco_conn *conn, struct sock *sk,
net/bluetooth/sco.c
300
sco_conn_lock(conn);
net/bluetooth/sco.c
301
if (conn->sk || sco_pi(sk)->conn)
net/bluetooth/sco.c
304
__sco_chan_add(conn, sk, parent);
net/bluetooth/sco.c
306
sco_conn_unlock(conn);
net/bluetooth/sco.c
312
struct sco_conn *conn;
net/bluetooth/sco.c
347
conn = sco_conn_add(hcon);
net/bluetooth/sco.c
348
if (!conn) {
net/bluetooth/sco.c
366
err = sco_chan_add(conn, sk, NULL);
net/bluetooth/sco.c
395
struct sco_conn *conn = sco_pi(sk)->conn;
net/bluetooth/sco.c
399
if (len > conn->mtu)
net/bluetooth/sco.c
405
hci_send_sco(conn->hcon, skb);
net/bluetooth/sco.c
410
static void sco_recv_frame(struct sco_conn *conn, struct sk_buff *skb)
net/bluetooth/sco.c
414
sco_conn_lock(conn);
net/bluetooth/sco.c
415
sk = sco_sock_hold(conn);
net/bluetooth/sco.c
416
sco_conn_unlock(conn);
net/bluetooth/sco.c
484
sco_conn_put(sco_pi(sk)->conn);
net/bluetooth/sco.c
518
if (sco_pi(sk)->conn) {
net/bluetooth/sco.c
519
sco_conn_lock(sco_pi(sk)->conn);
net/bluetooth/sco.c
520
sco_pi(sk)->conn->sk = NULL;
net/bluetooth/sco.c
521
sco_conn_unlock(sco_pi(sk)->conn);
net/bluetooth/sco.c
73
struct sco_conn *conn;
net/bluetooth/sco.c
82
struct sco_conn *conn = container_of(ref, struct sco_conn, ref);
net/bluetooth/sco.c
84
BT_DBG("conn %p", conn);
net/bluetooth/sco.c
855
static void sco_conn_defer_accept(struct hci_conn *conn, u16 setting)
net/bluetooth/sco.c
857
struct hci_dev *hdev = conn->hdev;
net/bluetooth/sco.c
859
BT_DBG("conn %p", conn);
net/bluetooth/sco.c
86
if (conn->sk)
net/bluetooth/sco.c
861
conn->state = BT_CONFIG;
net/bluetooth/sco.c
866
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/sco.c
87
sco_pi(conn->sk)->conn = NULL;
net/bluetooth/sco.c
873
bacpy(&cp.bdaddr, &conn->dst);
net/bluetooth/sco.c
874
cp.pkt_type = cpu_to_le16(conn->pkt_type);
net/bluetooth/sco.c
882
if (conn->pkt_type & ESCO_2EV3)
net/bluetooth/sco.c
89
if (conn->hcon) {
net/bluetooth/sco.c
90
conn->hcon->sco_data = NULL;
net/bluetooth/sco.c
91
hci_conn_drop(conn->hcon);
net/bluetooth/sco.c
918
sco_conn_defer_accept(pi->conn->hcon, pi->setting);
net/bluetooth/sco.c
95
disable_delayed_work_sync(&conn->timeout_work);
net/bluetooth/sco.c
97
kfree(conn);
net/bluetooth/smp.c
1016
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM, sizeof(smp->prnd),
net/bluetooth/smp.c
1034
static void smp_notify_keys(struct l2cap_conn *conn)
net/bluetooth/smp.c
1036
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
1038
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
1073
&conn->id_addr_timer,
net/bluetooth/smp.c
1113
key = hci_add_link_key(hdev, smp->conn->hcon, &hcon->dst,
net/bluetooth/smp.c
1132
struct hci_conn *hcon = smp->conn->hcon;
net/bluetooth/smp.c
1204
struct hci_conn *hcon = smp->conn->hcon;
net/bluetooth/smp.c
1240
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
1241
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
1245
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/smp.c
1297
smp_send_cmd(conn, SMP_CMD_ENCRYPT_INFO, sizeof(enc), &enc);
net/bluetooth/smp.c
1308
smp_send_cmd(conn, SMP_CMD_INITIATOR_IDENT, sizeof(ident),
net/bluetooth/smp.c
1320
smp_send_cmd(conn, SMP_CMD_IDENT_INFO, sizeof(idinfo), &idinfo);
net/bluetooth/smp.c
1331
smp_send_cmd(conn, SMP_CMD_IDENT_ADDR_INFO, sizeof(addrinfo),
net/bluetooth/smp.c
1354
smp_send_cmd(conn, SMP_CMD_SIGN_INFO, sizeof(sign), &sign);
net/bluetooth/smp.c
1366
smp_notify_keys(conn);
net/bluetooth/smp.c
1368
smp_chan_destroy(conn);
net/bluetooth/smp.c
1375
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
1377
bt_dev_dbg(conn->hcon->hdev, "conn %p", conn);
net/bluetooth/smp.c
1379
hci_disconnect(conn->hcon, HCI_ERROR_AUTH_FAILURE);
net/bluetooth/smp.c
1382
static struct smp_chan *smp_chan_create(struct l2cap_conn *conn)
net/bluetooth/smp.c
1384
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
1385
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
1404
smp->conn = conn;
net/bluetooth/smp.c
1424
struct hci_conn *hcon = smp->conn->hcon;
net/bluetooth/smp.c
1445
struct hci_conn *hcon = smp->conn->hcon;
net/bluetooth/smp.c
1476
smp_send_cmd(smp->conn, SMP_CMD_DHKEY_CHECK, sizeof(check), &check);
net/bluetooth/smp.c
1481
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
1482
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
1495
smp_send_cmd(conn, SMP_CMD_PAIRING_CONFIRM, sizeof(cfm), &cfm);
net/bluetooth/smp.c
1502
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
1503
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
1535
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM,
net/bluetooth/smp.c
1563
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM,
net/bluetooth/smp.c
1589
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
1590
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
1597
smp_failure(smp->conn, SMP_PASSKEY_ENTRY_FAILED);
net/bluetooth/smp.c
1600
smp_failure(smp->conn, SMP_NUMERIC_COMP_FAILED);
net/bluetooth/smp.c
1631
struct l2cap_conn *conn = hcon->l2cap_data;
net/bluetooth/smp.c
1637
if (!conn)
net/bluetooth/smp.c
1640
bt_dev_dbg(conn->hcon->hdev, "");
net/bluetooth/smp.c
1642
chan = conn->smp;
net/bluetooth/smp.c
1663
bt_dev_dbg(conn->hcon->hdev, "PassKey: %u", value);
net/bluetooth/smp.c
1671
smp_failure(conn, SMP_PASSKEY_ENTRY_FAILED);
net/bluetooth/smp.c
1675
smp_failure(conn, SMP_PASSKEY_ENTRY_FAILED);
net/bluetooth/smp.c
1686
smp_failure(conn, rsp);
net/bluetooth/smp.c
1698
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
1699
struct hci_dev *hdev = conn->hcon->hdev;
net/bluetooth/smp.c
1719
req->max_key_size = conn->hcon->enc_key_size;
net/bluetooth/smp.c
1729
rsp->max_key_size = conn->hcon->enc_key_size;
net/bluetooth/smp.c
1736
static u8 smp_cmd_pairing_req(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
1739
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
1740
struct hci_dev *hdev = conn->hcon->hdev;
net/bluetooth/smp.c
1745
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/smp.c
1754
smp = smp_chan_create(conn);
net/bluetooth/smp.c
1781
if (conn->hcon->type == ACL_LINK) {
net/bluetooth/smp.c
1783
if (!test_bit(HCI_CONN_AES_CCM, &conn->hcon->flags) &&
net/bluetooth/smp.c
1795
if (check_enc_key_size(conn, key_size))
net/bluetooth/smp.c
1803
smp_send_cmd(conn, SMP_CMD_PAIRING_RSP, sizeof(rsp), &rsp);
net/bluetooth/smp.c
1809
build_pairing_cmd(conn, req, &rsp, auth);
net/bluetooth/smp.c
1818
if (conn->hcon->io_capability == HCI_IO_NO_INPUT_OUTPUT)
net/bluetooth/smp.c
1823
if (sec_level > conn->hcon->pending_sec_level)
net/bluetooth/smp.c
1824
conn->hcon->pending_sec_level = sec_level;
net/bluetooth/smp.c
1827
if (conn->hcon->pending_sec_level >= BT_SECURITY_HIGH) {
net/bluetooth/smp.c
1830
method = get_auth_method(smp, conn->hcon->io_capability,
net/bluetooth/smp.c
1841
if (check_enc_key_size(conn, key_size))
net/bluetooth/smp.c
1849
smp_send_cmd(conn, SMP_CMD_PAIRING_RSP, sizeof(rsp), &rsp);
net/bluetooth/smp.c
1869
ret = tk_request(conn, 0, auth, rsp.io_capability, req->io_capability);
net/bluetooth/smp.c
1878
struct hci_dev *hdev = smp->conn->hcon->hdev;
net/bluetooth/smp.c
1924
smp_send_cmd(smp->conn, SMP_CMD_PUBLIC_KEY, 64, smp->local_pk);
net/bluetooth/smp.c
1929
static u8 smp_cmd_pairing_rsp(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
1932
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
1934
struct hci_dev *hdev = conn->hcon->hdev;
net/bluetooth/smp.c
1938
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/smp.c
1951
if (check_enc_key_size(conn, key_size))
net/bluetooth/smp.c
1978
if (conn->hcon->type == ACL_LINK) {
net/bluetooth/smp.c
1987
else if (conn->hcon->pending_sec_level > BT_SECURITY_HIGH)
net/bluetooth/smp.c
1988
conn->hcon->pending_sec_level = BT_SECURITY_HIGH;
net/bluetooth/smp.c
1991
if (conn->hcon->pending_sec_level >= BT_SECURITY_HIGH) {
net/bluetooth/smp.c
2016
ret = tk_request(conn, 0, auth, req->io_capability, rsp->io_capability);
net/bluetooth/smp.c
2031
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
2033
bt_dev_dbg(conn->hcon->hdev, "");
net/bluetooth/smp.c
2039
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM, sizeof(smp->prnd),
net/bluetooth/smp.c
2053
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
2054
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2078
if (tk_request(conn, 0, auth, rsp->io_capability, req->io_capability)) {
net/bluetooth/smp.c
2088
static u8 smp_cmd_pairing_confirm(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2090
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2092
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2095
bt_dev_dbg(hdev, "conn %p %s", conn,
net/bluetooth/smp.c
2120
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM, sizeof(smp->prnd),
net/bluetooth/smp.c
2134
static u8 smp_cmd_pairing_random(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2136
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2138
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2143
bt_dev_dbg(hcon->hdev, "conn %p", conn);
net/bluetooth/smp.c
2168
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM,
net/bluetooth/smp.c
2189
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM, sizeof(smp->prnd),
net/bluetooth/smp.c
2229
static bool smp_ltk_encrypt(struct l2cap_conn *conn, u8 sec_level)
net/bluetooth/smp.c
2232
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2280
if (smp->conn->hcon->type == ACL_LINK)
net/bluetooth/smp.c
2283
build_pairing_cmd(smp->conn, &cp, NULL, auth);
net/bluetooth/smp.c
2288
smp_send_cmd(smp->conn, SMP_CMD_PAIRING_REQ, sizeof(cp), &cp);
net/bluetooth/smp.c
2294
static u8 smp_cmd_security_req(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2297
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2302
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/smp.c
2325
smp_ltk_encrypt(conn, hcon->sec_level);
net/bluetooth/smp.c
2332
if (smp_ltk_encrypt(conn, hcon->pending_sec_level))
net/bluetooth/smp.c
2335
smp = smp_chan_create(conn);
net/bluetooth/smp.c
2355
smp_send_cmd(smp->conn, SMP_CMD_SECURITY_REQ, sizeof(cp), &cp);
net/bluetooth/smp.c
2363
struct l2cap_conn *conn = hcon->l2cap_data;
net/bluetooth/smp.c
2369
bt_dev_dbg(hcon->hdev, "conn %p hcon %p level 0x%2.2x", conn, hcon,
net/bluetooth/smp.c
2373
if (!conn)
net/bluetooth/smp.c
2386
if (smp_ltk_encrypt(conn, hcon->pending_sec_level))
net/bluetooth/smp.c
2389
chan = conn->smp;
net/bluetooth/smp.c
2403
smp = smp_chan_create(conn);
net/bluetooth/smp.c
2445
struct l2cap_conn *conn;
net/bluetooth/smp.c
2457
conn = hcon->l2cap_data;
net/bluetooth/smp.c
2458
if (!conn)
net/bluetooth/smp.c
2461
chan = conn->smp;
net/bluetooth/smp.c
2476
smp_failure(conn, 0);
net/bluetooth/smp.c
2478
smp_failure(conn, SMP_UNSPECIFIED);
net/bluetooth/smp.c
2488
static int smp_cmd_encrypt_info(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2491
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2494
bt_dev_dbg(conn->hcon->hdev, "conn %p", conn);
net/bluetooth/smp.c
2500
if (hci_is_blocked_key(conn->hcon->hdev, HCI_BLOCKED_KEY_TYPE_LTK,
net/bluetooth/smp.c
2502
bt_dev_warn_ratelimited(conn->hcon->hdev,
net/bluetooth/smp.c
2504
&conn->hcon->dst);
net/bluetooth/smp.c
2517
static int smp_cmd_initiator_ident(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2520
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2522
struct hci_dev *hdev = conn->hcon->hdev;
net/bluetooth/smp.c
2523
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2527
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/smp.c
2553
static int smp_cmd_ident_info(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2556
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2559
bt_dev_dbg(conn->hcon->hdev, "");
net/bluetooth/smp.c
2565
if (hci_is_blocked_key(conn->hcon->hdev, HCI_BLOCKED_KEY_TYPE_IRK,
net/bluetooth/smp.c
2567
bt_dev_warn_ratelimited(conn->hcon->hdev,
net/bluetooth/smp.c
2569
&conn->hcon->dst);
net/bluetooth/smp.c
2582
static int smp_cmd_ident_addr_info(struct l2cap_conn *conn,
net/bluetooth/smp.c
2586
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2588
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2641
smp->remote_irk = hci_add_irk(conn->hcon->hdev, &smp->id_addr,
net/bluetooth/smp.c
2651
static int smp_cmd_sign_info(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2654
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2658
bt_dev_dbg(conn->hcon->hdev, "conn %p", conn);
net/bluetooth/smp.c
2670
if (conn->hcon->sec_level > BT_SECURITY_MEDIUM)
net/bluetooth/smp.c
2725
static int smp_cmd_public_key(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2728
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2729
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2736
bt_dev_dbg(hdev, "conn %p", conn);
net/bluetooth/smp.c
2828
smp_send_cmd(conn, SMP_CMD_PAIRING_RANDOM,
net/bluetooth/smp.c
2859
smp_send_cmd(conn, SMP_CMD_PAIRING_CONFIRM, sizeof(cfm), &cfm);
net/bluetooth/smp.c
2865
static int smp_cmd_dhkey_check(struct l2cap_conn *conn, struct sk_buff *skb)
net/bluetooth/smp.c
2868
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2869
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2875
bt_dev_dbg(hcon->hdev, "conn %p", conn);
net/bluetooth/smp.c
2930
static int smp_cmd_keypress_notify(struct l2cap_conn *conn,
net/bluetooth/smp.c
2935
bt_dev_dbg(conn->hcon->hdev, "value 0x%02x", kp->value);
net/bluetooth/smp.c
2942
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
2943
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
2978
smp_failure(conn, SMP_KEY_REJECTED);
net/bluetooth/smp.c
2992
reason = smp_cmd_pairing_req(conn, skb);
net/bluetooth/smp.c
2996
smp_failure(conn, 0);
net/bluetooth/smp.c
3001
reason = smp_cmd_pairing_rsp(conn, skb);
net/bluetooth/smp.c
3005
reason = smp_cmd_security_req(conn, skb);
net/bluetooth/smp.c
3009
reason = smp_cmd_pairing_confirm(conn, skb);
net/bluetooth/smp.c
3013
reason = smp_cmd_pairing_random(conn, skb);
net/bluetooth/smp.c
3017
reason = smp_cmd_encrypt_info(conn, skb);
net/bluetooth/smp.c
3021
reason = smp_cmd_initiator_ident(conn, skb);
net/bluetooth/smp.c
3025
reason = smp_cmd_ident_info(conn, skb);
net/bluetooth/smp.c
3029
reason = smp_cmd_ident_addr_info(conn, skb);
net/bluetooth/smp.c
3033
reason = smp_cmd_sign_info(conn, skb);
net/bluetooth/smp.c
3037
reason = smp_cmd_public_key(conn, skb);
net/bluetooth/smp.c
3041
reason = smp_cmd_dhkey_check(conn, skb);
net/bluetooth/smp.c
3045
reason = smp_cmd_keypress_notify(conn, skb);
net/bluetooth/smp.c
3057
smp_failure(conn, reason);
net/bluetooth/smp.c
3072
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
3074
bt_dev_dbg(conn->hcon->hdev, "chan %p", chan);
net/bluetooth/smp.c
3077
smp_chan_destroy(conn);
net/bluetooth/smp.c
3079
conn->smp = NULL;
net/bluetooth/smp.c
3085
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
3086
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
3122
if (!(conn->remote_fixed_chan & L2CAP_FC_SMP_BREDR))
net/bluetooth/smp.c
3129
smp = smp_chan_create(conn);
net/bluetooth/smp.c
3145
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
3146
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
3168
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
3169
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
3179
conn->smp = chan;
net/bluetooth/smp.c
3189
bt_dev_dbg(chan->conn->hcon->hdev, "chan %p", chan);
net/bluetooth/smp.c
3198
hci_disconnect(chan->conn->hcon, HCI_ERROR_AUTH_FAILURE);
net/bluetooth/smp.c
589
static void smp_send_cmd(struct l2cap_conn *conn, u8 code, u16 len, void *data)
net/bluetooth/smp.c
591
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
599
bt_dev_dbg(conn->hcon->hdev, "code 0x%2.2x", code);
net/bluetooth/smp.c
647
static void build_pairing_cmd(struct l2cap_conn *conn,
net/bluetooth/smp.c
651
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
653
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
702
req->io_capability = conn->hcon->io_capability;
net/bluetooth/smp.c
713
rsp->io_capability = conn->hcon->io_capability;
net/bluetooth/smp.c
723
static u8 check_enc_key_size(struct l2cap_conn *conn, __u8 max_key_size)
net/bluetooth/smp.c
725
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
726
struct hci_dev *hdev = conn->hcon->hdev;
net/bluetooth/smp.c
729
if (conn->hcon->pending_sec_level == BT_SECURITY_FIPS &&
net/bluetooth/smp.c
742
static void smp_chan_destroy(struct l2cap_conn *conn)
net/bluetooth/smp.c
744
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
746
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
796
static void smp_failure(struct l2cap_conn *conn, u8 reason)
net/bluetooth/smp.c
798
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
799
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
802
smp_send_cmd(conn, SMP_CMD_PAIRING_FAIL, sizeof(reason),
net/bluetooth/smp.c
808
smp_chan_destroy(conn);
net/bluetooth/smp.c
850
static int tk_request(struct l2cap_conn *conn, u8 remote_oob, u8 auth,
net/bluetooth/smp.c
853
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
854
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
950
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
954
bt_dev_dbg(conn->hcon->hdev, "conn %p", conn);
net/bluetooth/smp.c
957
conn->hcon->init_addr_type, &conn->hcon->init_addr,
net/bluetooth/smp.c
958
conn->hcon->resp_addr_type, &conn->hcon->resp_addr,
net/bluetooth/smp.c
965
smp_send_cmd(smp->conn, SMP_CMD_PAIRING_CONFIRM, sizeof(cp), &cp);
net/bluetooth/smp.c
97
struct l2cap_conn *conn;
net/bluetooth/smp.c
977
struct l2cap_conn *conn = smp->conn;
net/bluetooth/smp.c
978
struct hci_conn *hcon = conn->hcon;
net/bluetooth/smp.c
982
bt_dev_dbg(conn->hcon->hdev, "conn %p %s", conn,
net/bluetooth/smp.h
190
int smp_user_confirm_reply(struct hci_conn *conn, u16 mgmt_op, __le32 passkey);
net/mac80211/ibss.c
753
struct ieee80211_conn_settings conn = {
net/mac80211/ibss.c
765
conn.mode = IEEE80211_CONN_MODE_LEGACY;
net/mac80211/ibss.c
768
conn.bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/ibss.c
780
vht_cap_info, &conn,
net/mac80211/ieee80211_i.h
1004
struct ieee80211_conn_settings conn;
net/mac80211/ieee80211_i.h
2356
struct ieee80211_conn_settings *conn,
net/mac80211/ieee80211_i.h
2691
const struct ieee80211_conn_settings *conn);
net/mac80211/ieee80211_i.h
2698
const struct ieee80211_conn_settings *conn);
net/mac80211/ieee80211_i.h
2722
struct ieee80211_conn_settings *conn);
net/mac80211/ieee80211_i.h
2725
struct ieee80211_conn_settings *conn)
net/mac80211/ieee80211_i.h
2727
ieee80211_chandef_downgrade(&chanreq->oper, conn);
net/mac80211/ieee80211_i.h
2728
if (WARN_ON(!conn))
net/mac80211/ieee80211_i.h
2730
if (conn->mode < IEEE80211_CONN_MODE_EHT)
net/mac80211/ieee80211_i.h
2898
struct ieee80211_conn_settings *conn,
net/mac80211/ieee80211_i.h
452
struct ieee80211_conn_settings conn;
net/mac80211/mesh.c
1286
struct ieee80211_conn_settings conn = ieee80211_conn_settings_unlimited;
net/mac80211/mesh.c
1297
conn.mode = IEEE80211_CONN_MODE_LEGACY;
net/mac80211/mesh.c
1298
conn.bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mesh.c
1301
conn.mode = IEEE80211_CONN_MODE_HT;
net/mac80211/mesh.c
1302
conn.bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mesh.c
1305
conn.mode = IEEE80211_CONN_MODE_HT;
net/mac80211/mesh.c
1306
conn.bw_limit = IEEE80211_CONN_BW_LIMIT_40;
net/mac80211/mesh.c
1318
vht_cap_info, &conn,
net/mac80211/mlme.c
10021
override = link->u.mgd.conn.mode !=
net/mac80211/mlme.c
10022
assoc_data->link[assoc_link_id].conn.mode ||
net/mac80211/mlme.c
10023
link->u.mgd.conn.bw_limit !=
net/mac80211/mlme.c
10024
assoc_data->link[assoc_link_id].conn.bw_limit;
net/mac80211/mlme.c
10025
link->u.mgd.conn = assoc_data->link[assoc_link_id].conn;
net/mac80211/mlme.c
10027
ieee80211_setup_assoc_link(sdata, assoc_data, req, &link->u.mgd.conn,
net/mac80211/mlme.c
10082
&assoc_data->link[i].conn,
net/mac80211/mlme.c
10098
&assoc_data->link[assoc_link_id].conn,
net/mac80211/mlme.c
1032
struct ieee80211_conn_settings *conn,
net/mac80211/mlme.c
1037
if (conn->mode < IEEE80211_CONN_MODE_EHT)
net/mac80211/mlme.c
1047
struct ieee80211_conn_settings *conn,
net/mac80211/mlme.c
10505
link->u.mgd.conn = add_links_data->link[link_id].conn;
net/mac80211/mlme.c
10507
true, &link->u.mgd.conn,
net/mac80211/mlme.c
1073
parse_params.mode = conn->mode;
net/mac80211/mlme.c
1079
elems, false, conn, ap_chandef);
net/mac80211/mlme.c
1082
if (WARN_ON(ap_mode > conn->mode)) {
net/mac80211/mlme.c
1087
if (conn->mode != ap_mode) {
net/mac80211/mlme.c
10876
data->link[link_id].conn =
net/mac80211/mlme.c
1088
conn->mode = ap_mode;
net/mac80211/mlme.c
10883
&data->link[link_id].conn);
net/mac80211/mlme.c
10894
if (data->link[link_id].conn.mode <
net/mac80211/mlme.c
10925
&data->link[link_id].conn,
net/mac80211/mlme.c
1139
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mlme.c
1142
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1143
conn->bw_limit,
net/mac80211/mlme.c
1148
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1149
conn->bw_limit,
net/mac80211/mlme.c
1154
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1155
conn->bw_limit,
net/mac80211/mlme.c
1163
if (conn->mode >= IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
1165
if (conn->mode >= IEEE80211_CONN_MODE_VHT)
net/mac80211/mlme.c
1167
if (conn->mode >= IEEE80211_CONN_MODE_HE)
net/mac80211/mlme.c
1169
if (conn->mode >= IEEE80211_CONN_MODE_EHT)
net/mac80211/mlme.c
1171
if (conn->mode >= IEEE80211_CONN_MODE_UHR)
net/mac80211/mlme.c
1187
ieee80211_set_chanreq_ap(sdata, chanreq, conn, ap_chandef);
net/mac80211/mlme.c
1199
ieee80211_chanreq_downgrade(chanreq, conn);
net/mac80211/mlme.c
1202
if (conn->mode >= IEEE80211_CONN_MODE_HE &&
net/mac80211/mlme.c
1205
conn->mode = IEEE80211_CONN_MODE_VHT;
net/mac80211/mlme.c
1206
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1207
conn->bw_limit,
net/mac80211/mlme.c
1211
if (conn->mode >= IEEE80211_CONN_MODE_EHT &&
net/mac80211/mlme.c
1214
conn->mode = IEEE80211_CONN_MODE_HE;
net/mac80211/mlme.c
1215
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1216
conn->bw_limit,
net/mac80211/mlme.c
1220
if (conn->mode >= IEEE80211_CONN_MODE_UHR &&
net/mac80211/mlme.c
1223
conn->mode = IEEE80211_CONN_MODE_EHT;
net/mac80211/mlme.c
1225
if (chanreq->oper.width != ap_chandef->width || ap_mode != conn->mode)
net/mac80211/mlme.c
1229
if (conn->mode >= IEEE80211_CONN_MODE_HT &&
net/mac80211/mlme.c
1232
conn->mode = IEEE80211_CONN_MODE_LEGACY;
net/mac80211/mlme.c
1233
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mlme.c
1238
if (conn->mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
1241
conn->mode = IEEE80211_CONN_MODE_HT;
net/mac80211/mlme.c
1242
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1243
conn->bw_limit,
net/mac80211/mlme.c
1249
if (conn->mode >= IEEE80211_CONN_MODE_HE &&
net/mac80211/mlme.c
1255
conn->mode = IEEE80211_CONN_MODE_VHT;
net/mac80211/mlme.c
1260
if (conn->mode >= IEEE80211_CONN_MODE_EHT &&
net/mac80211/mlme.c
1263
conn->mode = IEEE80211_CONN_MODE_HE;
net/mac80211/mlme.c
1264
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
1265
conn->bw_limit,
net/mac80211/mlme.c
1271
if (conn->mode >= IEEE80211_CONN_MODE_EHT &&
net/mac80211/mlme.c
1273
conn->bw_limit == IEEE80211_CONN_BW_LIMIT_40) {
net/mac80211/mlme.c
1274
conn->mode = IEEE80211_CONN_MODE_HE;
net/mac80211/mlme.c
1280
if (ap_mode != conn->mode) {
net/mac80211/mlme.c
1287
ieee80211_conn_mode_str(conn->mode),
net/mac80211/mlme.c
1288
20 * (1 << conn->bw_limit));
net/mac80211/mlme.c
1335
if (link->u.mgd.conn.mode == IEEE80211_CONN_MODE_LEGACY ||
net/mac80211/mlme.c
1336
link->u.mgd.conn.mode == IEEE80211_CONN_MODE_S1G)
net/mac80211/mlme.c
1343
elems, true, &link->u.mgd.conn,
net/mac80211/mlme.c
1346
if (ap_mode != link->u.mgd.conn.mode) {
net/mac80211/mlme.c
1350
ieee80211_conn_mode_str(link->u.mgd.conn.mode),
net/mac80211/mlme.c
1356
ieee80211_set_chanreq_ap(sdata, &chanreq, &link->u.mgd.conn,
net/mac80211/mlme.c
1378
while (link->u.mgd.conn.bw_limit <
net/mac80211/mlme.c
1385
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
1452
const struct ieee80211_conn_settings *conn)
net/mac80211/mlme.c
1487
if (conn->bw_limit <= IEEE80211_CONN_BW_LIMIT_20) {
net/mac80211/mlme.c
1526
const struct ieee80211_conn_settings *conn)
net/mac80211/mlme.c
1543
if (conn->bw_limit <= IEEE80211_CONN_BW_LIMIT_80) {
net/mac80211/mlme.c
158
const struct ieee80211_conn_settings *conn,
net/mac80211/mlme.c
1897
assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
1901
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
1911
assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
1916
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
1928
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
1930
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
1957
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_EHT)
net/mac80211/mlme.c
1959
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_UHR)
net/mac80211/mlme.c
1969
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_EHT)
net/mac80211/mlme.c
1971
&assoc_data->link[link_id].conn);
net/mac80211/mlme.c
1973
if (assoc_data->link[link_id].conn.mode >= IEEE80211_CONN_MODE_UHR)
net/mac80211/mlme.c
199
if (conn->mode < IEEE80211_CONN_MODE_HE)
net/mac80211/mlme.c
225
if (conn->mode < IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
2308
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE &&
net/mac80211/mlme.c
2353
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_EHT &&
net/mac80211/mlme.c
253
if (conn->mode < IEEE80211_CONN_MODE_VHT)
net/mac80211/mlme.c
2611
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
2874
&link->u.mgd.conn,
net/mac80211/mlme.c
305
if (conn->mode < IEEE80211_CONN_MODE_HE ||
net/mac80211/mlme.c
3058
ieee80211_set_chanreq_ap(sdata, &link->csa.chanreq, &link->u.mgd.conn,
net/mac80211/mlme.c
313
if (conn->mode < IEEE80211_CONN_MODE_EHT ||
net/mac80211/mlme.c
347
if (conn->mode < IEEE80211_CONN_MODE_UHR || !uhr_oper)
net/mac80211/mlme.c
5315
.mode = link->u.mgd.conn.mode,
net/mac80211/mlme.c
5404
(link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT &&
net/mac80211/mlme.c
5406
(is_5ghz && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
5444
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
5450
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
5458
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT) {
net/mac80211/mlme.c
5465
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT) {
net/mac80211/mlme.c
5480
if (!is_6ghz && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT &&
net/mac80211/mlme.c
5488
if (is_5ghz && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT &&
net/mac80211/mlme.c
5513
if (elems->ht_cap_elem && link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
5519
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_VHT) {
net/mac80211/mlme.c
5556
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_HE &&
net/mac80211/mlme.c
5577
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_EHT) {
net/mac80211/mlme.c
5610
link->u.mgd.conn.mode >= IEEE80211_CONN_MODE_UHR) {
net/mac80211/mlme.c
5622
link->u.mgd.conn.mode == IEEE80211_CONN_MODE_S1G &&
net/mac80211/mlme.c
5816
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
5829
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_VHT)
net/mac80211/mlme.c
5848
if (link->u.mgd.conn.mode < IEEE80211_CONN_MODE_HE)
net/mac80211/mlme.c
5904
struct ieee80211_conn_settings *conn)
net/mac80211/mlme.c
5915
conn->mode = IEEE80211_CONN_MODE_S1G;
net/mac80211/mlme.c
5916
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mlme.c
5921
conn->mode = IEEE80211_CONN_MODE_LEGACY;
net/mac80211/mlme.c
5922
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mlme.c
5959
conn->mode = IEEE80211_CONN_MODE_HT;
net/mac80211/mlme.c
5960
conn->bw_limit = sta_ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40 ?
net/mac80211/mlme.c
5977
if (conn->bw_limit == IEEE80211_CONN_BW_LIMIT_20) {
net/mac80211/mlme.c
6006
conn->mode = IEEE80211_CONN_MODE_VHT;
net/mac80211/mlme.c
6007
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_160;
net/mac80211/mlme.c
6013
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_80;
net/mac80211/mlme.c
6033
conn->mode = IEEE80211_CONN_MODE_HE;
net/mac80211/mlme.c
6042
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mlme.c
6049
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/mlme.c
6056
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
6057
conn->bw_limit,
net/mac80211/mlme.c
6067
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
6068
conn->bw_limit,
net/mac80211/mlme.c
6087
conn->mode = IEEE80211_CONN_MODE_EHT;
net/mac80211/mlme.c
6092
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_320;
net/mac80211/mlme.c
6109
conn->mode = IEEE80211_CONN_MODE_UHR;
net/mac80211/mlme.c
6114
ieee80211_conn_mode_str(conn->mode),
net/mac80211/mlme.c
6115
20 * (1 << conn->bw_limit));
net/mac80211/mlme.c
6123
struct ieee80211_conn_settings *conn)
net/mac80211/mlme.c
6127
conn);
net/mac80211/mlme.c
6135
struct ieee80211_conn_settings *conn)
net/mac80211/mlme.c
6144
conn->mode = min_t(enum ieee80211_conn_mode,
net/mac80211/mlme.c
6145
conn->mode, tmp.mode);
net/mac80211/mlme.c
6146
conn->bw_limit = min_t(enum ieee80211_conn_bw_limit,
net/mac80211/mlme.c
6147
conn->bw_limit, tmp.bw_limit);
net/mac80211/mlme.c
6154
struct ieee80211_conn_settings *conn,
net/mac80211/mlme.c
6167
elems = ieee80211_determine_chan_mode(sdata, conn, cbss, link_id,
net/mac80211/mlme.c
6183
if (link && is_6ghz && conn->mode >= IEEE80211_CONN_MODE_HE) {
net/mac80211/mlme.c
6231
ieee80211_chanreq_downgrade(&chanreq, conn);
net/mac80211/mlme.c
6481
link->u.mgd.conn = assoc_data->link[link_id].conn;
net/mac80211/mlme.c
6484
true, &link->u.mgd.conn,
net/mac80211/mlme.c
6608
assoc_data->link[assoc_data->assoc_link_id].conn.mode;
net/mac80211/mlme.c
7507
.mode = link->u.mgd.conn.mode,
net/mac80211/mlme.c
9047
struct ieee80211_conn_settings *conn,
net/mac80211/mlme.c
9196
link->u.mgd.conn = *conn;
net/mac80211/mlme.c
9198
mlo, &link->u.mgd.conn,
net/mac80211/mlme.c
9206
*conn = link->u.mgd.conn;
net/mac80211/mlme.c
9338
struct ieee80211_conn_settings conn;
net/mac80211/mlme.c
9494
&conn);
net/mac80211/mlme.c
9498
&conn, false,
net/mac80211/mlme.c
9542
struct ieee80211_conn_settings *conn,
net/mac80211/mlme.c
9586
if (conn->mode >= IEEE80211_CONN_MODE_HT) {
net/mac80211/mlme.c
9672
if (assoc_data->link[link_id].conn.mode < IEEE80211_CONN_MODE_HT)
net/mac80211/mlme.c
9687
if (assoc_data->link[link_id].conn.mode < IEEE80211_CONN_MODE_VHT)
net/mac80211/mlme.c
9897
assoc_data->link[i].conn = link->u.mgd.conn;
net/mac80211/mlme.c
9899
assoc_data->link[i].conn =
net/mac80211/mlme.c
9903
&assoc_data->link[i].conn);
net/mac80211/mlme.c
9909
if (assoc_data->link[i].conn.mode < IEEE80211_CONN_MODE_EHT) {
net/mac80211/mlme.c
9948
assoc_data->link[0].conn = sdata->deflink.u.mgd.conn;
net/mac80211/mlme.c
9950
assoc_data->link[0].conn =
net/mac80211/mlme.c
9954
&assoc_data->link[0].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
369
validate_chandef_by_6ghz_he_eht_oper(sdata, conn, &new_chandef);
net/mac80211/spectmgmt.c
371
validate_chandef_by_ht_vht_oper(sdata, conn, vht_cap_info,
net/mac80211/spectmgmt.c
379
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
1391
if (sdata->deflink.u.mgd.conn.mode >= IEEE80211_CONN_MODE_HT)
net/mac80211/tests/chan-mode.c
151
struct ieee80211_conn_settings conn = {
net/mac80211/tests/chan-mode.c
244
elems = ieee80211_determine_chan_mode(t_sdata->sdata, &conn, &cbss,
net/mac80211/tests/chan-mode.c
258
KUNIT_ASSERT_EQ(test, conn.mode, params->expected_mode);
net/mac80211/tests/chan-mode.c
259
KUNIT_ASSERT_EQ(test, conn.bw_limit, params->expected_bw_limit);
net/mac80211/util.c
2501
ieee80211_get_adjusted_he_cap(const struct ieee80211_conn_settings *conn,
net/mac80211/util.c
2509
switch (conn->bw_limit) {
net/mac80211/util.c
2529
if (conn->bw_limit < IEEE80211_CONN_BW_LIMIT_40) {
net/mac80211/util.c
2537
if (conn->bw_limit < IEEE80211_CONN_BW_LIMIT_160) {
net/mac80211/util.c
2552
const struct ieee80211_conn_settings *conn)
net/mac80211/util.c
2560
if (!conn)
net/mac80211/util.c
2561
conn = &ieee80211_conn_settings_unlimited;
net/mac80211/util.c
2568
ieee80211_get_adjusted_he_cap(conn, he_cap, &elem);
net/mac80211/util.c
3679
struct ieee80211_conn_settings *conn)
net/mac80211/util.c
3685
if (!conn)
net/mac80211/util.c
3686
conn = &_ignored;
net/mac80211/util.c
3699
conn->mode = IEEE80211_CONN_MODE_LEGACY;
net/mac80211/util.c
3700
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/util.c
3706
if (conn->mode == IEEE80211_CONN_MODE_VHT)
net/mac80211/util.c
3707
conn->mode = IEEE80211_CONN_MODE_HT;
net/mac80211/util.c
3708
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/util.c
3713
if (conn->mode == IEEE80211_CONN_MODE_VHT)
net/mac80211/util.c
3714
conn->mode = IEEE80211_CONN_MODE_HT;
net/mac80211/util.c
3715
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_40;
net/mac80211/util.c
3720
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_80;
net/mac80211/util.c
3724
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_80;
net/mac80211/util.c
3728
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_160;
net/mac80211/util.c
3737
conn->mode = IEEE80211_CONN_MODE_S1G;
net/mac80211/util.c
3738
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/util.c
3744
conn->mode = IEEE80211_CONN_MODE_LEGACY;
net/mac80211/util.c
3745
conn->bw_limit = IEEE80211_CONN_BW_LIMIT_20;
net/mac80211/util.c
4445
const struct ieee80211_conn_settings *conn)
net/mac80211/util.c
4458
if (!conn)
net/mac80211/util.c
4459
conn = &ieee80211_conn_settings_unlimited;
net/mac80211/util.c
4469
ieee80211_get_adjusted_he_cap(conn, he_cap, &he);
net/mac80211/util.c
4473
if (conn->bw_limit < IEEE80211_CONN_BW_LIMIT_80)
net/mac80211/util.c
4477
if (conn->bw_limit < IEEE80211_CONN_BW_LIMIT_160) {
net/mac80211/util.c
4486
if (conn->bw_limit < IEEE80211_CONN_BW_LIMIT_320) {
net/mac80211/util.c
4497
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
542
mptcp_early_fallback(mptcp_sk(subflow->conn), subflow,
net/mptcp/fastopen.c
23
sk = subflow->conn;
net/mptcp/mptcp_diag.c
107
sk = ctx->conn;
net/mptcp/options.c
1165
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
1175
mptcp_data_lock(subflow->conn);
net/mptcp/options.c
1177
__mptcp_check_push(subflow->conn, sk);
net/mptcp/options.c
1184
__mptcp_data_acked(subflow->conn);
net/mptcp/options.c
1185
mptcp_data_unlock(subflow->conn);
net/mptcp/options.c
1309
msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
1376
msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
455
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
540
u64 data_fin_tx_seq = READ_ONCE(mptcp_sk(subflow->conn)->write_seq) - 1;
net/mptcp/options.c
568
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
660
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
724
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
799
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/options.c
844
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/pm.c
663
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/pm.c
819
struct sock *sk = subflow->conn;
net/mptcp/pm.c
833
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
3708
struct sock *sk = subflow->conn;
net/mptcp/protocol.c
3762
sk = subflow->conn;
net/mptcp/protocol.c
3807
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/protocol.c
4208
new_mptcp_sock = subflow->conn;
net/mptcp/protocol.h
1279
struct mptcp_sock *msk = mptcp_sk(subflow->conn);
net/mptcp/protocol.h
1298
struct sock *sk = subflow->conn;
net/mptcp/protocol.h
587
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
106
found = nf_conntrack_find_get(net, &conn->zone, &conn->tuple);
net/netfilter/nf_conncount.c
109
b = conn->jiffies32;
net/netfilter/nf_conncount.c
118
if (conn->cpu == cpu || age >= 2) {
net/netfilter/nf_conncount.c
119
conn_free(list, conn);
net/netfilter/nf_conncount.c
170
struct nf_conncount_tuple *conn, *conn_n;
net/netfilter/nf_conncount.c
202
list_for_each_entry_safe(conn, conn_n, &list->head, node) {
net/netfilter/nf_conncount.c
206
found = find_or_evict(net, list, conn);
net/netfilter/nf_conncount.c
210
if (nf_ct_tuple_equal(&conn->tuple, &tuple) &&
net/netfilter/nf_conncount.c
211
nf_ct_zone_id(&conn->zone, conn->zone.dir) ==
net/netfilter/nf_conncount.c
222
if (nf_ct_tuple_equal(&conn->tuple, &tuple) &&
net/netfilter/nf_conncount.c
238
conn_free(list, conn);
net/netfilter/nf_conncount.c
254
conn = kmem_cache_alloc(conncount_conn_cachep, GFP_ATOMIC);
net/netfilter/nf_conncount.c
255
if (conn == NULL) {
net/netfilter/nf_conncount.c
260
conn->tuple = tuple;
net/netfilter/nf_conncount.c
261
conn->zone = *zone;
net/netfilter/nf_conncount.c
262
conn->cpu = raw_smp_processor_id();
net/netfilter/nf_conncount.c
263
conn->jiffies32 = (u32)jiffies;
net/netfilter/nf_conncount.c
264
list_add_tail(&conn->node, &list->head);
net/netfilter/nf_conncount.c
304
struct nf_conncount_tuple *conn, *conn_n;
net/netfilter/nf_conncount.c
313
list_for_each_entry_safe(conn, conn_n, &list->head, node) {
net/netfilter/nf_conncount.c
314
found = find_or_evict(net, list, conn);
net/netfilter/nf_conncount.c
328
conn_free(list, conn);
net/netfilter/nf_conncount.c
409
struct nf_conncount_tuple *conn;
net/netfilter/nf_conncount.c
460
conn = kmem_cache_alloc(conncount_conn_cachep, GFP_ATOMIC);
net/netfilter/nf_conncount.c
461
if (conn == NULL) {
net/netfilter/nf_conncount.c
466
conn->tuple = tuple;
net/netfilter/nf_conncount.c
467
conn->zone = *zone;
net/netfilter/nf_conncount.c
468
conn->cpu = raw_smp_processor_id();
net/netfilter/nf_conncount.c
469
conn->jiffies32 = (u32)jiffies;
net/netfilter/nf_conncount.c
473
list_add(&conn->node, &rbconn->list.head);
net/netfilter/nf_conncount.c
652
struct nf_conncount_tuple *conn, *conn_n;
net/netfilter/nf_conncount.c
654
list_for_each_entry_safe(conn, conn_n, &list->head, node)
net/netfilter/nf_conncount.c
655
kmem_cache_free(conncount_conn_cachep, conn);
net/netfilter/nf_conncount.c
72
static inline bool already_closed(const struct nf_conn *conn)
net/netfilter/nf_conncount.c
74
if (nf_ct_protonum(conn) == IPPROTO_TCP)
net/netfilter/nf_conncount.c
75
return conn->proto.tcp.state == TCP_CONNTRACK_TIME_WAIT ||
net/netfilter/nf_conncount.c
76
conn->proto.tcp.state == TCP_CONNTRACK_CLOSE;
net/netfilter/nf_conncount.c
87
struct nf_conncount_tuple *conn)
net/netfilter/nf_conncount.c
92
list_del(&conn->node);
net/netfilter/nf_conncount.c
94
kmem_cache_free(conncount_conn_cachep, conn);
net/netfilter/nf_conncount.c
99
struct nf_conncount_tuple *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
573
struct rds_connection *conn;
net/rds/connection.c
589
hlist_for_each_entry_rcu(conn, head, c_hash_node) {
net/rds/connection.c
593
if (!isv6 && conn->c_isv6)
net/rds/connection.c
596
npaths = (conn->c_trans->t_mp_capable ?
net/rds/connection.c
600
cp = &conn->c_path[j];
net/rds/connection.c
614
&conn->c_laddr,
net/rds/connection.c
615
&conn->c_faddr,
net/rds/connection.c
692
struct rds_connection *conn;
net/rds/connection.c
702
hlist_for_each_entry_rcu(conn, head, c_hash_node) {
net/rds/connection.c
705
if (!visitor(conn, buffer))
net/rds/connection.c
730
struct rds_connection *conn;
net/rds/connection.c
740
hlist_for_each_entry_rcu(conn, head, c_hash_node) {
net/rds/connection.c
751
cp = conn->c_path;
net/rds/connection.c
774
struct rds_connection *conn = cp->cp_conn;
net/rds/connection.c
776
if (conn->c_isv6)
net/rds/connection.c
781
cinfo->laddr = conn->c_laddr.s6_addr32[3];
net/rds/connection.c
782
cinfo->faddr = conn->c_faddr.s6_addr32[3];
net/rds/connection.c
783
cinfo->tos = conn->c_tos;
net/rds/connection.c
784
strscpy_pad(cinfo->transport, conn->c_trans->t_name);
net/rds/connection.c
803
struct rds_connection *conn = cp->cp_conn;
net/rds/connection.c
807
cinfo6->laddr = conn->c_laddr;
net/rds/connection.c
808
cinfo6->faddr = conn->c_faddr;
net/rds/connection.c
809
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
923
void rds_conn_drop(struct rds_connection *conn)
net/rds/connection.c
925
WARN_ON(conn->c_trans->t_mp_capable);
net/rds/connection.c
926
rds_conn_path_drop(&conn->c_path[0], false);
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_check_all_paths(struct rds_connection *conn)
net/rds/connection.c
955
rds_conn_path_connect_if_down(&conn->c_path[i]);
net/rds/connection.c
956
} while (++i < conn->c_npaths);
net/rds/connection.c
959
void rds_conn_connect_if_down(struct rds_connection *conn)
net/rds/connection.c
96
conn->c_tos == tos &&
net/rds/connection.c
961
WARN_ON(conn->c_trans->t_mp_capable);
net/rds/connection.c
962
rds_conn_path_connect_if_down(&conn->c_path[0]);
net/rds/connection.c
97
net == rds_conn_net(conn) &&
net/rds/connection.c
98
conn->c_dev_if == dev_if) {
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
502
static bool rds_ib_is_unloading(struct rds_connection *conn)
net/rds/ib.c
504
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
386
void rds_ib_add_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn);
net/rds/ib.h
387
void rds_ib_remove_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *conn);
net/rds/ib.h
394
int rds_ib_recv_path(struct rds_conn_path *conn);
net/rds/ib.h
397
void rds_ib_recv_refill(struct rds_connection *conn, int prefill, gfp_t gfp);
net/rds/ib.h
424
int rds_ib_xmit(struct rds_connection *conn, struct rds_message *rm,
net/rds/ib.h
429
int rds_ib_xmit_rdma(struct rds_connection *conn, struct rm_rdma_op *op);
net/rds/ib.h
430
void rds_ib_send_add_credits(struct rds_connection *conn, unsigned int credits);
net/rds/ib.h
431
void rds_ib_advertise_credits(struct rds_connection *conn, unsigned int posted);
net/rds/ib.h
434
int rds_ib_xmit_atomic(struct rds_connection *conn, struct rm_atomic_op *op);
net/rds/ib_cm.c
1004
sin->sin_addr.s_addr = conn->c_laddr.s6_addr32[3];
net/rds/ib_cm.c
1009
sin->sin_addr.s_addr = conn->c_faddr.s6_addr32[3];
net/rds/ib_cm.c
1016
sin6->sin6_addr = conn->c_laddr;
net/rds/ib_cm.c
1018
sin6->sin6_scope_id = conn->c_dev_if;
net/rds/ib_cm.c
1022
sin6->sin6_addr = conn->c_faddr;
net/rds/ib_cm.c
1024
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
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
1152
rds_ib_remove_conn(ic->rds_ibdev, conn);
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
118
rds_conn_destroy(conn);
net/rds/ib_cm.c
1199
int rds_ib_conn_alloc(struct rds_connection *conn, gfp_t gfp)
net/rds/ib_cm.c
1235
ic->conn = conn;
net/rds/ib_cm.c
1236
conn->c_transport_data = ic;
net/rds/ib_cm.c
1243
rdsdebug("conn %p conn ic %p\n", conn, conn->c_transport_data);
net/rds/ib_cm.c
125
&conn->c_laddr, &conn->c_faddr, conn->c_tos,
net/rds/ib_cm.c
126
RDS_PROTOCOL_MAJOR(conn->c_version),
net/rds/ib_cm.c
127
RDS_PROTOCOL_MINOR(conn->c_version),
net/rds/ib_cm.c
1278
__rds_ib_conn_error(struct rds_connection *conn, const char *fmt, ...)
net/rds/ib_cm.c
1282
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
686
rds_ib_remove_conn(rds_ibdev, conn);
net/rds/ib_cm.c
695
const union rds_ib_conn_priv *dp = event->param.conn.private_data;
net/rds/ib_cm.c
712
if (!event->param.conn.private_data_len) {
net/rds/ib_cm.c
731
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
788
struct rds_connection *conn = NULL;
net/rds/ib_cm.c
809
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
855
conn = rds_conn_create(&init_net, daddr6, saddr6,
net/rds/ib_cm.c
858
if (IS_ERR(conn)) {
net/rds/ib_cm.c
859
rdsdebug("rds_conn_create failed (%ld)\n", PTR_ERR(conn));
net/rds/ib_cm.c
86
if (event->param.conn.private_data_len >=
net/rds/ib_cm.c
860
conn = NULL;
net/rds/ib_cm.c
871
mutex_lock(&conn->c_cm_lock);
net/rds/ib_cm.c
872
if (!rds_conn_transition(conn, RDS_CONN_DOWN, RDS_CONN_CONNECTING)) {
net/rds/ib_cm.c
873
if (rds_conn_state(conn) == RDS_CONN_UP) {
net/rds/ib_cm.c
875
rds_conn_drop(conn);
net/rds/ib_cm.c
878
if (rds_conn_state(conn) == RDS_CONN_CONNECTING) {
net/rds/ib_cm.c
885
ic = conn->c_transport_data;
net/rds/ib_cm.c
887
rds_ib_set_protocol(conn, version);
net/rds/ib_cm.c
888
rds_ib_set_flow_control(conn, be32_to_cpu(dp_cmn->ricpc_credit));
net/rds/ib_cm.c
893
rds_send_drop_acked(conn, be64_to_cpu(dp_cmn->ricpc_ack_seq),
net/rds/ib_cm.c
900
cm_id->context = conn;
net/rds/ib_cm.c
906
err = rds_ib_setup_qp(conn);
net/rds/ib_cm.c
908
rds_ib_conn_error(conn, "rds_ib_setup_qp failed (%d)\n", err);
net/rds/ib_cm.c
912
rds_ib_cm_fill_conn_param(conn, &conn_param, &dp_rep, version,
net/rds/ib_cm.c
913
event->param.conn.responder_resources,
net/rds/ib_cm.c
914
event->param.conn.initiator_depth, isv6);
net/rds/ib_cm.c
919
rds_ib_conn_error(conn, "rdma_accept failed\n");
net/rds/ib_cm.c
922
if (conn)
net/rds/ib_cm.c
923
mutex_unlock(&conn->c_cm_lock);
net/rds/ib_cm.c
933
struct rds_connection *conn = cm_id->context;
net/rds/ib_cm.c
934
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_cm.c
941
rds_ib_set_protocol(conn, RDS_PROTOCOL_4_1);
net/rds/ib_cm.c
944
ret = rds_ib_setup_qp(conn);
net/rds/ib_cm.c
946
rds_ib_conn_error(conn, "rds_ib_setup_qp failed (%d)\n", ret);
net/rds/ib_cm.c
950
rds_ib_cm_fill_conn_param(conn, &conn_param, &dp,
net/rds/ib_cm.c
951
conn->c_proposed_version,
net/rds/ib_cm.c
955
rds_ib_conn_error(conn, "rdma_connect_locked failed (%d)\n",
net/rds/ib_cm.c
972
struct rds_connection *conn = cp->cp_conn;
net/rds/ib_cm.c
978
ic = conn->c_transport_data;
net/rds/ib_cm.c
98
} else if (event->param.conn.private_data_len >=
net/rds/ib_cm.c
983
if (conn->c_isv6)
net/rds/ib_cm.c
988
ic->i_cm_id = rdma_create_id(&init_net, handler, conn,
net/rds/ib_cm.c
997
rdsdebug("created cm id %p for conn %p\n", ic->i_cm_id, conn);
net/rds/ib_cm.c
999
if (ipv6_addr_v4mapped(&conn->c_faddr)) {
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
1019
"returned %d\n", &conn->c_faddr, ret);
net/rds/ib_send.c
1037
struct rds_connection *conn = cp->cp_conn;
net/rds/ib_send.c
1038
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_send.c
246
struct rds_connection *conn = ic->conn;
net/rds/ib_send.c
298
if (test_and_clear_bit(RDS_LL_SEND_FULL, &conn->c_flags) ||
net/rds/ib_send.c
299
test_bit(0, &conn->c_map_queued))
net/rds/ib_send.c
300
queue_delayed_work(conn->c_path->cp_wq, &conn->c_send_w, 0);
net/rds/ib_send.c
303
if (wc->status != IB_WC_SUCCESS && rds_conn_up(conn)) {
net/rds/ib_send.c
304
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
305
&conn->c_laddr, &conn->c_faddr,
net/rds/ib_send.c
306
conn->c_tos, wc->status,
net/rds/ib_send.c
379
struct rds_connection *conn = ic->i_cm_id->context;
net/rds/ib_send.c
382
set_bit(RDS_LL_SEND_FULL, &conn->c_flags);
net/rds/ib_send.c
408
void rds_ib_send_add_credits(struct rds_connection *conn, unsigned int credits)
net/rds/ib_send.c
410
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_send.c
418
test_bit(RDS_LL_SEND_FULL, &conn->c_flags) ? ", ll_send_full" : "");
net/rds/ib_send.c
421
if (test_and_clear_bit(RDS_LL_SEND_FULL, &conn->c_flags))
net/rds/ib_send.c
422
queue_delayed_work(conn->c_path->cp_wq, &conn->c_send_w, 0);
net/rds/ib_send.c
429
void rds_ib_advertise_credits(struct rds_connection *conn, unsigned int posted)
net/rds/ib_send.c
431
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_send.c
484
int rds_ib_xmit(struct rds_connection *conn, struct rds_message *rm,
net/rds/ib_send.c
487
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_send.c
510
if (conn->c_loopback
net/rds/ib_send.c
512
rds_cong_map_updated(conn->c_fcong, ~(u64) 0);
net/rds/ib_send.c
526
set_bit(RDS_LL_SEND_FULL, &conn->c_flags);
net/rds/ib_send.c
541
set_bit(RDS_LL_SEND_FULL, &conn->c_flags);
net/rds/ib_send.c
756
rds_ib_send_add_credits(conn, credit_alloc - i);
net/rds/ib_send.c
769
"returned %d\n", &conn->c_faddr, ret);
net/rds/ib_send.c
777
rds_ib_conn_error(ic->conn, "ib_post_send failed\n");
net/rds/ib_send.c
792
int rds_ib_xmit_atomic(struct rds_connection *conn, struct rm_atomic_op *op)
net/rds/ib_send.c
794
struct rds_ib_connection *ic = conn->c_transport_data;
net/rds/ib_send.c
863
"returned %d\n", &conn->c_faddr, ret);
net/rds/ib_send.c
878
int rds_ib_xmit_rdma(struct rds_connection *conn, struct rm_rdma_op *op)
net/rds/ib_send.c
880
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
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
1135
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
1319
conn = rs->rs_conn;
net/rds/send.c
1321
conn = rds_conn_create_outgoing(sock_net(sock->sk),
net/rds/send.c
1326
if (IS_ERR(conn)) {
net/rds/send.c
1327
ret = PTR_ERR(conn);
net/rds/send.c
1330
rs->rs_conn = conn;
net/rds/send.c
1333
if (conn->c_trans->t_mp_capable) {
net/rds/send.c
1337
cpath = &conn->c_path[RDS_MPATH_HASH(rs, conn->c_npaths ? : 1)];
net/rds/send.c
1339
cpath = &conn->c_path[0];
net/rds/send.c
1347
if (conn->c_trans->t_mp_capable &&
net/rds/send.c
1348
!rds_conn_path_up(&conn->c_path[0])) {
net/rds/send.c
1354
&conn->c_path[0].cp_flags))
net/rds/send.c
1355
queue_delayed_work(conn->c_path[0].cp_wq,
net/rds/send.c
1356
&conn->c_path[0].cp_conn_w, 0);
net/rds/send.c
1357
rds_send_ping(conn, 0);
net/rds/send.c
1367
if (rm->rdma.op_active && !conn->c_trans->xmit_rdma) {
net/rds/send.c
1369
&rm->rdma, conn->c_trans->xmit_rdma);
net/rds/send.c
1374
if (rm->atomic.op_active && !conn->c_trans->xmit_atomic) {
net/rds/send.c
1376
&rm->atomic, conn->c_trans->xmit_atomic);
net/rds/send.c
1381
if (rds_destroy_pending(conn)) {
net/rds/send.c
1387
rds_check_all_paths(conn);
net/rds/send.c
1389
ret = rds_cong_wait(conn->c_fcong, dport, nonblock, rs);
net/rds/send.c
1394
while (!rds_send_queue_rm(rs, conn, cpath, rm, rs->rs_bound_port,
net/rds/send.c
1404
rds_send_queue_rm(rs, conn, cpath, rm,
net/rds/send.c
144
conn->c_cp0_mprds_catchup_tx_seq) {
net/rds/send.c
1548
rds_send_ping(struct rds_connection *conn, int cp_index)
net/rds/send.c
1551
struct rds_conn_path *cp = &conn->c_path[cp_index];
net/rds/send.c
1554
if (conn->c_ping_triggered) {
net/rds/send.c
1558
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
369
static int rds_tcp_conn_alloc(struct rds_connection *conn, gfp_t gfp)
net/rds/tcp.c
389
conn->c_path[i].cp_transport_data = tc;
net/rds/tcp.c
390
tc->t_cpath = &conn->c_path[i];
net/rds/tcp.c
394
conn->c_path[i].cp_transport_data);
net/rds/tcp.c
398
tc = conn->c_path[i].cp_transport_data;
net/rds/tcp.c
406
rds_tcp_conn_free(conn->c_path[j].cp_transport_data);
net/rds/tcp.c
411
static bool list_has_conn(struct list_head *list, struct rds_connection *conn)
net/rds/tcp.c
416
if (tc->t_cpath->cp_conn == conn)
net/rds/tcp.c
427
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
1004
static inline rxrpc_serial_t rxrpc_get_next_serials(struct rxrpc_connection *conn,
net/rxrpc/ar-internal.h
1009
serial = conn->tx_serial;
net/rxrpc/ar-internal.h
1012
conn->tx_serial = serial + n;
net/rxrpc/ar-internal.h
1029
struct rxrpc_connection *conn,
net/rxrpc/ar-internal.h
1152
void rxrpc_conn_retransmit_call(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/ar-internal.h
1154
int rxrpc_abort_conn(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/ar-internal.h
1158
bool rxrpc_input_conn_packet(struct rxrpc_connection *conn, struct sk_buff *skb);
net/rxrpc/ar-internal.h
1159
void rxrpc_input_conn_event(struct rxrpc_connection *conn, struct sk_buff *skb);
net/rxrpc/ar-internal.h
1161
static inline bool rxrpc_is_conn_aborted(const struct rxrpc_connection *conn)
net/rxrpc/ar-internal.h
1164
return smp_load_acquire(&conn->state) == RXRPC_CONN_ABORTED;
net/rxrpc/ar-internal.h
1173
void rxrpc_poke_conn(struct rxrpc_connection *conn, enum rxrpc_conn_trace why);
net/rxrpc/ar-internal.h
1191
static inline bool rxrpc_conn_is_client(const struct rxrpc_connection *conn)
net/rxrpc/ar-internal.h
1193
return conn->out_clientflag;
net/rxrpc/ar-internal.h
1196
static inline bool rxrpc_conn_is_service(const struct rxrpc_connection *conn)
net/rxrpc/ar-internal.h
1198
return !rxrpc_conn_is_client(conn);
net/rxrpc/ar-internal.h
1201
static inline void rxrpc_reduce_conn_timer(struct rxrpc_connection *conn,
net/rxrpc/ar-internal.h
1204
timer_reduce(&conn->timer, expire_at);
net/rxrpc/ar-internal.h
1260
void rxrpc_post_response(struct rxrpc_connection *conn, struct sk_buff *skb);
net/rxrpc/ar-internal.h
1369
void rxrpc_send_conn_abort(struct rxrpc_connection *conn);
net/rxrpc/ar-internal.h
1372
void rxrpc_send_response(struct rxrpc_connection *conn, struct sk_buff *skb);
net/rxrpc/ar-internal.h
1379
void rxrpc_input_probe_for_pmtud(struct rxrpc_connection *conn, rxrpc_serial_t acked_serial,
net/rxrpc/ar-internal.h
227
struct rxrpc_connection *conn; /* Connection referred to */
net/rxrpc/ar-internal.h
293
bool (*validate_challenge)(struct rxrpc_connection *conn,
net/rxrpc/ar-internal.h
299
int (*challenge_to_recvmsg)(struct rxrpc_connection *conn,
net/rxrpc/ar-internal.h
308
int (*respond_to_challenge)(struct rxrpc_connection *conn,
net/rxrpc/ar-internal.h
319
int (*default_decode_ticket)(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/ar-internal.h
695
struct rxrpc_connection *conn; /* connection carrying call */
net/rxrpc/ar-internal.h
990
static inline rxrpc_serial_t rxrpc_get_next_serial(struct rxrpc_connection *conn)
net/rxrpc/ar-internal.h
994
serial = conn->tx_serial;
net/rxrpc/ar-internal.h
997
conn->tx_serial = serial + 1;
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
488
(int)call->conn->hi_serial - (int)call->rx_serial > 0) {
net/rxrpc/call_object.c
442
struct rxrpc_connection *conn = call->conn;
net/rxrpc/call_object.c
446
_enter(",%d", call->conn->debug_id);
net/rxrpc/call_object.c
457
spin_lock(&conn->state_lock);
net/rxrpc/call_object.c
459
switch (conn->state) {
net/rxrpc/call_object.c
468
rxrpc_set_call_completion(call, conn->completion,
net/rxrpc/call_object.c
469
conn->abort_code, conn->error);
net/rxrpc/call_object.c
484
conn->channels[chan].call_counter = call->call_id;
net/rxrpc/call_object.c
485
conn->channels[chan].call_id = call->call_id;
net/rxrpc/call_object.c
486
conn->channels[chan].call = call;
net/rxrpc/call_object.c
487
spin_unlock(&conn->state_lock);
net/rxrpc/call_object.c
489
spin_lock(&conn->peer->lock);
net/rxrpc/call_object.c
490
hlist_add_head(&call->error_link, &conn->peer->error_targets);
net/rxrpc/call_object.c
491
spin_unlock(&conn->peer->lock);
net/rxrpc/call_object.c
563
struct rxrpc_connection *conn = call->conn;
net/rxrpc/call_object.c
595
_debug("RELEASE CALL %p (%d CONN %p)", call, call->debug_id, conn);
net/rxrpc/call_object.c
690
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
246
static int rxrpc_process_event(struct rxrpc_connection *conn,
net/rxrpc/conn_event.c
253
if (conn->state == RXRPC_CONN_ABORTED)
net/rxrpc/conn_event.c
256
_enter("{%d},{%u,%%%u},", conn->debug_id, sp->hdr.type, sp->hdr.serial);
net/rxrpc/conn_event.c
260
ret = conn->security->respond_to_challenge(conn, skb);
net/rxrpc/conn_event.c
261
sp->chall.conn = NULL;
net/rxrpc/conn_event.c
262
rxrpc_put_connection(conn, rxrpc_conn_put_challenge_input);
net/rxrpc/conn_event.c
266
spin_lock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
267
if (conn->state != RXRPC_CONN_SERVICE_CHALLENGING) {
net/rxrpc/conn_event.c
268
spin_unlock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
271
spin_unlock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
273
ret = conn->security->verify_response(conn, skb);
net/rxrpc/conn_event.c
277
ret = conn->security->init_connection_security(
net/rxrpc/conn_event.c
278
conn, conn->key->payload.data[0]);
net/rxrpc/conn_event.c
28
if (conn->state != RXRPC_CONN_ABORTED) {
net/rxrpc/conn_event.c
282
spin_lock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
283
if (conn->state == RXRPC_CONN_SERVICE_CHALLENGING) {
net/rxrpc/conn_event.c
284
conn->state = RXRPC_CONN_SERVICE;
net/rxrpc/conn_event.c
287
spin_unlock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
29
spin_lock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
295
conn, rxrpc_conn_get_poke_secured);
net/rxrpc/conn_event.c
298
skb_queue_head(&conn->local->rx_queue, skb);
net/rxrpc/conn_event.c
299
rxrpc_wake_up_io_thread(conn->local);
net/rxrpc/conn_event.c
30
if (conn->state != RXRPC_CONN_ABORTED) {
net/rxrpc/conn_event.c
31
conn->abort_code = abort_code;
net/rxrpc/conn_event.c
312
static void rxrpc_secure_connection(struct rxrpc_connection *conn)
net/rxrpc/conn_event.c
314
if (conn->security->issue_challenge(conn) < 0)
net/rxrpc/conn_event.c
315
rxrpc_abort_conn(conn, NULL, RX_CALL_DEAD, -ENOMEM,
net/rxrpc/conn_event.c
32
conn->error = err;
net/rxrpc/conn_event.c
322
void rxrpc_process_delayed_final_acks(struct rxrpc_connection *conn, bool force)
net/rxrpc/conn_event.c
33
conn->completion = compl;
net/rxrpc/conn_event.c
332
struct rxrpc_channel *chan = &conn->channels[channel];
net/rxrpc/conn_event.c
335
if (!test_bit(RXRPC_CONN_FINAL_ACK_0 + channel, &conn->flags))
net/rxrpc/conn_event.c
348
&conn->flags))
net/rxrpc/conn_event.c
349
rxrpc_conn_retransmit_call(conn, NULL, channel);
net/rxrpc/conn_event.c
35
smp_store_release(&conn->state, RXRPC_CONN_ABORTED);
net/rxrpc/conn_event.c
356
rxrpc_reduce_conn_timer(conn, next_j);
net/rxrpc/conn_event.c
36
set_bit(RXRPC_CONN_DONT_REUSE, &conn->flags);
net/rxrpc/conn_event.c
362
static void rxrpc_do_process_connection(struct rxrpc_connection *conn)
net/rxrpc/conn_event.c
367
if (test_and_clear_bit(RXRPC_CONN_EV_CHALLENGE, &conn->events))
net/rxrpc/conn_event.c
368
rxrpc_secure_connection(conn);
net/rxrpc/conn_event.c
37
set_bit(RXRPC_CONN_EV_ABORT_CALLS, &conn->events);
net/rxrpc/conn_event.c
372
while ((skb = skb_dequeue(&conn->rx_queue))) {
net/rxrpc/conn_event.c
374
ret = rxrpc_process_event(conn, skb);
net/rxrpc/conn_event.c
378
skb_queue_head(&conn->rx_queue, skb);
net/rxrpc/conn_event.c
379
rxrpc_queue_conn(conn, rxrpc_conn_queue_retry_work);
net/rxrpc/conn_event.c
390
struct rxrpc_connection *conn =
net/rxrpc/conn_event.c
393
rxrpc_see_connection(conn, rxrpc_conn_see_work);
net/rxrpc/conn_event.c
395
if (__rxrpc_use_local(conn->local, rxrpc_local_use_conn_work)) {
net/rxrpc/conn_event.c
396
rxrpc_do_process_connection(conn);
net/rxrpc/conn_event.c
397
rxrpc_unuse_local(conn->local, rxrpc_local_unuse_conn_work);
net/rxrpc/conn_event.c
40
spin_unlock_irq(&conn->state_lock);
net/rxrpc/conn_event.c
406
static void rxrpc_post_packet_to_conn(struct rxrpc_connection *conn,
net/rxrpc/conn_event.c
409
_enter("%p,%p", conn, skb);
net/rxrpc/conn_event.c
412
skb_queue_tail(&conn->rx_queue, skb);
net/rxrpc/conn_event.c
413
rxrpc_queue_conn(conn, rxrpc_conn_queue_rx_work);
net/rxrpc/conn_event.c
421
static bool rxrpc_post_challenge(struct rxrpc_connection *conn,
net/rxrpc/conn_event.c
429
sp->chall.conn =
net/rxrpc/conn_event.c
430
rxrpc_get_connection(conn, rxrpc_conn_get_challenge_input);
net/rxrpc/conn_event.c
432
if (!conn->security->challenge_to_recvmsg) {
net/rxrpc/conn_event.c
433
rxrpc_post_packet_to_conn(conn, skb);
net/rxrpc/conn_event.c
439
for (int i = 0; i < ARRAY_SIZE(conn->channels); i++) {
net/rxrpc/conn_event.c
440
if (conn->channels[i].call) {
net/rxrpc/conn_event.c
441
call = conn->channels[i].call;
net/rxrpc/conn_event.c
457
rxrpc_put_connection(conn, rxrpc_conn_put_challenge_input);
net/rxrpc/conn_event.c
458
sp->chall.conn = NULL;
net/rxrpc/conn_event.c
467
rxrpc_post_packet_to_conn(conn, skb);
net/rxrpc/conn_event.c
474
bool rxrpc_input_conn_packet(struct rxrpc_connection *conn, struct sk_buff *skb)
net/rxrpc/conn_event.c
484
if (rxrpc_is_conn_aborted(conn))
net/rxrpc/conn_event.c
486
rxrpc_input_conn_abort(conn, skb);
net/rxrpc/conn_event.c
487
rxrpc_abort_calls(conn);
net/rxrpc/conn_event.c
49
int rxrpc_abort_conn(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/conn_event.c
492
if (rxrpc_is_conn_aborted(conn)) {
net/rxrpc/conn_event.c
493
if (conn->completion == RXRPC_CALL_LOCALLY_ABORTED)
net/rxrpc/conn_event.c
494
rxrpc_send_conn_abort(conn);
net/rxrpc/conn_event.c
497
if (!conn->security->validate_challenge(conn, skb))
net/rxrpc/conn_event.c
499
return rxrpc_post_challenge(conn, skb);
net/rxrpc/conn_event.c
502
if (rxrpc_is_conn_aborted(conn)) {
net/rxrpc/conn_event.c
503
if (conn->completion == RXRPC_CALL_LOCALLY_ABORTED)
net/rxrpc/conn_event.c
504
rxrpc_send_conn_abort(conn);
net/rxrpc/conn_event.c
507
rxrpc_post_packet_to_conn(conn, skb);
net/rxrpc/conn_event.c
519
void rxrpc_input_conn_event(struct rxrpc_connection *conn, struct sk_buff *skb)
net/rxrpc/conn_event.c
523
if (test_and_clear_bit(RXRPC_CONN_EV_ABORT_CALLS, &conn->events))
net/rxrpc/conn_event.c
524
rxrpc_abort_calls(conn);
net/rxrpc/conn_event.c
526
if (conn->tx_response) {
net/rxrpc/conn_event.c
529
spin_lock_irq(&conn->local->lock);
net/rxrpc/conn_event.c
53
u32 cid = conn->proto.cid, call = 0, seq = 0;
net/rxrpc/conn_event.c
530
skb = conn->tx_response;
net/rxrpc/conn_event.c
531
conn->tx_response = NULL;
net/rxrpc/conn_event.c
532
spin_unlock_irq(&conn->local->lock);
net/rxrpc/conn_event.c
534
if (conn->state != RXRPC_CONN_ABORTED)
net/rxrpc/conn_event.c
535
rxrpc_send_response(conn, skb);
net/rxrpc/conn_event.c
542
if (conn->state != RXRPC_CONN_SERVICE)
net/rxrpc/conn_event.c
546
rxrpc_call_is_secure(conn->channels[loop].call);
net/rxrpc/conn_event.c
552
if (conn->flags & RXRPC_CONN_FINAL_ACK_MASK)
net/rxrpc/conn_event.c
553
rxrpc_process_delayed_final_acks(conn, false);
net/rxrpc/conn_event.c
559
void rxrpc_post_response(struct rxrpc_connection *conn, struct sk_buff *skb)
net/rxrpc/conn_event.c
562
struct rxrpc_local *local = conn->local;
net/rxrpc/conn_event.c
568
old = conn->tx_response;
net/rxrpc/conn_event.c
574
conn->tx_response = skb;
net/rxrpc/conn_event.c
578
conn->tx_response = skb;
net/rxrpc/conn_event.c
581
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
45
static bool none_validate_challenge(struct rxrpc_connection *conn,
net/rxrpc/insecure.c
48
rxrpc_abort_conn(conn, skb, RX_PROTOCOL_ERROR, -EPROTO,
net/rxrpc/insecure.c
59
static int none_verify_response(struct rxrpc_connection *conn,
net/rxrpc/insecure.c
62
return rxrpc_abort_conn(conn, skb, RX_PROTOCOL_ERROR, -EPROTO,
net/rxrpc/insecure.c
66
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
304
conn = rxrpc_find_client_connection_rcu(local, &peer_srx, skb);
net/rxrpc/io_thread.c
305
conn = rxrpc_get_connection_maybe(conn, rxrpc_conn_get_call_input);
net/rxrpc/io_thread.c
307
if (!conn)
net/rxrpc/io_thread.c
310
ret = rxrpc_input_packet_on_conn(conn, &peer_srx, skb);
net/rxrpc/io_thread.c
311
rxrpc_put_connection(conn, rxrpc_conn_put_call_input);
net/rxrpc/io_thread.c
327
conn = rxrpc_find_service_conn_rcu(peer, skb);
net/rxrpc/io_thread.c
328
conn = rxrpc_get_connection_maybe(conn, rxrpc_conn_get_call_input);
net/rxrpc/io_thread.c
329
if (conn) {
net/rxrpc/io_thread.c
331
ret = rxrpc_input_packet_on_conn(conn, &peer_srx, skb);
net/rxrpc/io_thread.c
332
rxrpc_put_connection(conn, rxrpc_conn_put_call_input);
net/rxrpc/io_thread.c
347
static int rxrpc_input_packet_on_conn(struct rxrpc_connection *conn,
net/rxrpc/io_thread.c
356
if (sp->hdr.securityIndex != conn->security_ix)
net/rxrpc/io_thread.c
360
if (sp->hdr.serviceId != conn->service_id) {
net/rxrpc/io_thread.c
363
if (!test_bit(RXRPC_CONN_PROBING_FOR_UPGRADE, &conn->flags))
net/rxrpc/io_thread.c
366
old_id = cmpxchg(&conn->service_id, conn->orig_service_id,
net/rxrpc/io_thread.c
368
if (old_id != conn->orig_service_id &&
net/rxrpc/io_thread.c
373
if (after(sp->hdr.serial, conn->hi_serial))
net/rxrpc/io_thread.c
374
conn->hi_serial = sp->hdr.serial;
net/rxrpc/io_thread.c
378
return rxrpc_input_conn_packet(conn, skb);
net/rxrpc/io_thread.c
382
conn->pmtud_probe &&
net/rxrpc/io_thread.c
383
after_eq(sp->ack.acked_serial, conn->pmtud_probe))
net/rxrpc/io_thread.c
384
rxrpc_input_probe_for_pmtud(conn, sp->ack.acked_serial, false);
net/rxrpc/io_thread.c
388
chan = &conn->channels[channel];
net/rxrpc/io_thread.c
402
if (rxrpc_conn_is_service(conn) &&
net/rxrpc/io_thread.c
414
rxrpc_conn_retransmit_call(conn, skb, channel);
net/rxrpc/io_thread.c
438
return rxrpc_new_incoming_call(conn->local, conn->peer, conn,
net/rxrpc/io_thread.c
452
struct rxrpc_connection *conn;
net/rxrpc/io_thread.c
525
while ((conn = list_first_entry_or_null(&conn_attend_q,
net/rxrpc/io_thread.c
529
list_del_init(&conn->attend_link);
net/rxrpc/io_thread.c
531
rxrpc_input_conn_event(conn, NULL);
net/rxrpc/io_thread.c
532
rxrpc_put_connection(conn, rxrpc_conn_put_poke);
net/rxrpc/key.c
648
int rxrpc_get_server_data_key(struct rxrpc_connection *conn,
net/rxrpc/key.c
686
conn->key = key;
net/rxrpc/oob.c
177
struct rxrpc_connection *conn;
net/rxrpc/oob.c
196
conn = sp->chall.conn;
net/rxrpc/oob.c
198
if (!conn->security->sendmsg_respond_to_challenge)
net/rxrpc/oob.c
201
rxrpc_abort_conn(conn, NULL, p->abort_code, -ECONNABORTED,
net/rxrpc/oob.c
205
ret = conn->security->sendmsg_respond_to_challenge(skb, msg);
net/rxrpc/oob.c
274
*_peer = sp->chall.conn->peer;
net/rxrpc/oob.c
275
*_peer_appdata = sp->chall.conn->peer->app_data;
net/rxrpc/oob.c
324
rxrpc_put_connection(sp->chall.conn, rxrpc_conn_put_oob);
net/rxrpc/oob.c
349
*_peer = sp->chall.conn->peer;
net/rxrpc/oob.c
350
*_peer_appdata = sp->chall.conn->peer->app_data;
net/rxrpc/oob.c
376
rxrpc_abort_conn(sp->chall.conn, NULL, abort_code, error, why);
net/rxrpc/output.c
172
*_ack_serial = rxrpc_get_next_serial(call->conn);
net/rxrpc/output.c
174
whdr->epoch = htonl(call->conn->proto.epoch);
net/rxrpc/output.c
180
whdr->flags = call->conn->out_clientflag | RXRPC_SLOW_START_OK;
net/rxrpc/output.c
251
struct rxrpc_connection *conn;
net/rxrpc/output.c
259
conn = call->conn;
net/rxrpc/output.c
275
rxrpc_local_dont_fragment(conn->local, why == rxrpc_propose_ack_ping_for_mtu_probe);
net/rxrpc/output.c
277
ret = do_udp_sendmsg(conn->local->socket, &msg, len);
net/rxrpc/output.c
284
rxrpc_input_probe_for_pmtud(conn, serial, true);
net/rxrpc/output.c
291
call->conn->pmtud_probe = serial;
net/rxrpc/output.c
292
call->conn->pmtud_call = call->debug_id;
net/rxrpc/output.c
366
struct rxrpc_connection *conn;
net/rxrpc/output.c
386
conn = call->conn;
net/rxrpc/output.c
394
pkt.whdr.epoch = htonl(conn->proto.epoch);
net/rxrpc/output.c
399
pkt.whdr.flags = conn->out_clientflag;
net/rxrpc/output.c
409
serial = rxrpc_get_next_serial(conn);
net/rxrpc/output.c
413
ret = do_udp_sendmsg(conn->local->socket, &msg, sizeof(pkt));
net/rxrpc/output.c
414
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/output.c
436
struct rxrpc_connection *conn = call->conn;
net/rxrpc/output.c
446
if (test_bit(RXRPC_CONN_PROBING_FOR_UPGRADE, &conn->flags) &&
net/rxrpc/output.c
551
serial = rxrpc_get_next_serials(call->conn, req->n);
net/rxrpc/output.c
553
whdr->epoch = htonl(call->conn->proto.epoch);
net/rxrpc/output.c
563
whdr->serviceId = htons(call->conn->service_id);
net/rxrpc/output.c
644
struct rxrpc_connection *conn = call->conn;
net/rxrpc/output.c
682
rxrpc_local_dont_fragment(conn->local, false);
net/rxrpc/output.c
685
rxrpc_local_dont_fragment(conn->local, true);
net/rxrpc/output.c
703
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/output.c
715
ret = do_udp_sendmsg(conn->local->socket, &msg, len);
net/rxrpc/output.c
716
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/output.c
752
void rxrpc_send_conn_abort(struct rxrpc_connection *conn)
net/rxrpc/output.c
762
msg.msg_name = &conn->peer->srx.transport;
net/rxrpc/output.c
763
msg.msg_namelen = conn->peer->srx.transport_len;
net/rxrpc/output.c
768
whdr.epoch = htonl(conn->proto.epoch);
net/rxrpc/output.c
769
whdr.cid = htonl(conn->proto.cid);
net/rxrpc/output.c
773
whdr.flags = conn->out_clientflag;
net/rxrpc/output.c
775
whdr.securityIndex = conn->security_ix;
net/rxrpc/output.c
777
whdr.serviceId = htons(conn->service_id);
net/rxrpc/output.c
779
word = htonl(conn->abort_code);
net/rxrpc/output.c
788
serial = rxrpc_get_next_serial(conn);
net/rxrpc/output.c
792
ret = do_udp_sendmsg(conn->local->socket, &msg, len);
net/rxrpc/output.c
794
trace_rxrpc_tx_fail(conn->debug_id, serial, ret,
net/rxrpc/output.c
800
trace_rxrpc_tx_packet(conn->debug_id, &whdr, rxrpc_tx_point_conn_abort);
net/rxrpc/output.c
802
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/output.c
929
void rxrpc_send_response(struct rxrpc_connection *conn, struct sk_buff *response)
net/rxrpc/output.c
933
struct bio_vec *bvec = conn->local->bvec;
net/rxrpc/output.c
940
_enter("C=%x,%x", conn->debug_id, sp->resp.challenge_serial);
net/rxrpc/output.c
948
if (WARN_ON_ONCE(nr_sg > ARRAY_SIZE(conn->local->bvec)))
net/rxrpc/output.c
956
msg.msg_name = &conn->peer->srx.transport;
net/rxrpc/output.c
957
msg.msg_namelen = conn->peer->srx.transport_len;
net/rxrpc/output.c
962
serial = rxrpc_get_next_serials(conn, 1);
net/rxrpc/output.c
965
trace_rxrpc_tx_response(conn, serial, sp);
net/rxrpc/output.c
972
rxrpc_local_dont_fragment(conn->local, false);
net/rxrpc/output.c
974
ret = do_udp_sendmsg(conn->local->socket, &msg, len);
net/rxrpc/output.c
978
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/output.c
982
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
190
struct rxrpc_connection *conn = sp->chall.conn;
net/rxrpc/recvmsg.c
192
return conn->security->challenge_to_recvmsg(conn, challenge, msg);
net/rxrpc/rxgk.c
1004
static int rxgk_respond_to_challenge(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
1008
_enter("{%d,%x}", conn->debug_id, key_serial(conn->key));
net/rxrpc/rxgk.c
1010
if (key_validate(conn->key) < 0)
net/rxrpc/rxgk.c
1011
return rxrpc_abort_conn(conn, NULL, RXGK_EXPIRED, -EPROTO,
net/rxrpc/rxgk.c
1014
return rxgk_construct_response(conn, challenge, appdata);
net/rxrpc/rxgk.c
1017
static int rxgk_respond_to_challenge_no_appdata(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
1022
return rxgk_respond_to_challenge(conn, challenge, &appdata);
net/rxrpc/rxgk.c
1040
return rxgk_respond_to_challenge(csp->chall.conn, challenge, appdata);
net/rxrpc/rxgk.c
1079
static int rxgk_do_verify_authenticator(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
1089
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1091
if (memcmp(p, conn->rxgk.nonce, 20) != 0)
net/rxrpc/rxgk.c
1092
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1098
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1103
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
1111
if (level != conn->security_level ||
net/rxrpc/rxgk.c
1112
epoch != conn->proto.epoch ||
net/rxrpc/rxgk.c
1113
cid != conn->proto.cid ||
net/rxrpc/rxgk.c
1115
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1119
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1126
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1129
if (call_id < conn->channels[i].call_counter)
net/rxrpc/rxgk.c
1130
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1133
if (call_id > conn->channels[i].call_counter) {
net/rxrpc/rxgk.c
1134
if (conn->channels[i].call)
net/rxrpc/rxgk.c
1135
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1138
conn->channels[i].call_counter = call_id;
net/rxrpc/rxgk.c
1149
static int rxgk_verify_authenticator(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
1164
ret = rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EPROTO,
net/rxrpc/rxgk.c
1170
ret = rxgk_do_verify_authenticator(conn, krb5, skb, p,
net/rxrpc/rxgk.c
1186
static int rxgk_verify_response(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
120
mutex_unlock(&conn->security_lock);
net/rxrpc/rxgk.c
1202
_enter("{%d}", conn->debug_id);
net/rxrpc/rxgk.c
1219
trace_rxrpc_rx_response(conn, sp->hdr.serial, 0, sp->hdr.cksum, token_len);
net/rxrpc/rxgk.c
1244
ret = rxgk_extract_token(conn, skb, token_offset, token_len, &key);
net/rxrpc/rxgk.c
125
trace_rxrpc_rxgk_rekey(conn, current_key,
net/rxrpc/rxgk.c
1257
conn->security_level = token->rxgk->level;
net/rxrpc/rxgk.c
1258
conn->rxgk.start_time = __be64_to_cpu(rhdr.start_time);
net/rxrpc/rxgk.c
1260
gk = rxgk_generate_transport_key(conn, token->rxgk, sp->hdr.cksum, GFP_NOFS);
net/rxrpc/rxgk.c
1268
trace_rxrpc_rx_response(conn, sp->hdr.serial, krb5->etype, sp->hdr.cksum, token_len);
net/rxrpc/rxgk.c
1274
rxrpc_abort_conn(conn, skb, RXGK_SEALEDINCON, ret,
net/rxrpc/rxgk.c
1279
ret = rxgk_verify_authenticator(conn, krb5, skb, auth_offset, auth_len);
net/rxrpc/rxgk.c
1283
conn->key = key;
net/rxrpc/rxgk.c
1294
ret = rxrpc_abort_conn(conn, skb, RXGK_INCONSISTENCY, -EPROTO,
net/rxrpc/rxgk.c
1298
ret = rxrpc_abort_conn(conn, skb, RXGK_PACKETSHORT, -EPROTO,
net/rxrpc/rxgk.c
130
set_bit(RXRPC_CONN_DONT_REUSE, &conn->flags);
net/rxrpc/rxgk.c
1302
ret = rxrpc_abort_conn(conn, skb, RXGK_PACKETSHORT, -EPROTO,
net/rxrpc/rxgk.c
1311
ret = rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EKEYREJECTED,
net/rxrpc/rxgk.c
1315
ret = rxrpc_abort_conn(conn, skb, KRB5_PROG_KEYTYPE_NOSUPP,
net/rxrpc/rxgk.c
133
if (WARN_ON(conn->rxgk.keys[key_number & mask]))
net/rxrpc/rxgk.c
1331
static void rxgk_clear(struct rxrpc_connection *conn)
net/rxrpc/rxgk.c
1335
for (i = 0; i < ARRAY_SIZE(conn->rxgk.keys); i++)
net/rxrpc/rxgk.c
1336
rxgk_put(conn->rxgk.keys[i]);
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
490
hdr->epoch = htonl(call->conn->proto.epoch);
net/rxrpc/rxgk.c
555
if (ntohl(hdr.epoch) != call->conn->proto.epoch ||
net/rxrpc/rxgk.c
586
call->debug_id, key_serial(call->conn->key), sp->hdr.seq);
net/rxrpc/rxgk.c
588
gk = rxgk_get_key(call->conn, &key_number);
net/rxrpc/rxgk.c
600
switch (call->conn->security_level) {
net/rxrpc/rxgk.c
632
static int rxgk_issue_challenge(struct rxrpc_connection *conn)
net/rxrpc/rxgk.c
638
size_t len = sizeof(*whdr) + sizeof(conn->rxgk.nonce);
net/rxrpc/rxgk.c
642
_enter("{%d}", conn->debug_id);
net/rxrpc/rxgk.c
644
get_random_bytes(&conn->rxgk.nonce, sizeof(conn->rxgk.nonce));
net/rxrpc/rxgk.c
647
page = rxgk_alloc_packet(sizeof(*whdr) + sizeof(conn->rxgk.nonce));
net/rxrpc/rxgk.c
654
msg.msg_name = &conn->peer->srx.transport;
net/rxrpc/rxgk.c
655
msg.msg_namelen = conn->peer->srx.transport_len;
net/rxrpc/rxgk.c
661
whdr->epoch = htonl(conn->proto.epoch);
net/rxrpc/rxgk.c
662
whdr->cid = htonl(conn->proto.cid);
net/rxrpc/rxgk.c
666
whdr->flags = conn->out_clientflag;
net/rxrpc/rxgk.c
668
whdr->securityIndex = conn->security_ix;
net/rxrpc/rxgk.c
670
whdr->serviceId = htons(conn->service_id);
net/rxrpc/rxgk.c
672
memcpy(whdr + 1, conn->rxgk.nonce, sizeof(conn->rxgk.nonce));
net/rxrpc/rxgk.c
674
serial = rxrpc_get_next_serials(conn, 1);
net/rxrpc/rxgk.c
677
trace_rxrpc_tx_challenge(conn, serial, 0, *(u32 *)&conn->rxgk.nonce);
net/rxrpc/rxgk.c
679
ret = do_udp_sendmsg(conn->local->socket, &msg, len);
net/rxrpc/rxgk.c
681
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/rxgk.c
685
trace_rxrpc_tx_fail(conn->debug_id, serial, ret,
net/rxrpc/rxgk.c
690
trace_rxrpc_tx_packet(conn->debug_id, whdr,
net/rxrpc/rxgk.c
699
static bool rxgk_validate_challenge(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
705
if (!conn->key) {
net/rxrpc/rxgk.c
706
rxrpc_abort_conn(conn, skb, RX_PROTOCOL_ERROR, -EPROTO,
net/rxrpc/rxgk.c
711
if (key_validate(conn->key) < 0) {
net/rxrpc/rxgk.c
712
rxrpc_abort_conn(conn, skb, RXGK_EXPIRED, -EPROTO,
net/rxrpc/rxgk.c
719
rxrpc_abort_conn(conn, skb, RXGK_PACKETSHORT, -EPROTO,
net/rxrpc/rxgk.c
724
trace_rxrpc_rx_challenge(conn, sp->hdr.serial, 0, *(u32 *)nonce, 0);
net/rxrpc/rxgk.c
738
return sp->chall.conn->rxgk.enctype;
net/rxrpc/rxgk.c
746
static int rxgk_challenge_to_recvmsg(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
752
chall.base.service_id = conn->service_id;
net/rxrpc/rxgk.c
753
chall.base.security_index = conn->security_ix;
net/rxrpc/rxgk.c
754
chall.enctype = conn->rxgk.enctype;
net/rxrpc/rxgk.c
780
static noinline ssize_t rxgk_insert_response_header(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
798
h.whdr.epoch = htonl(conn->proto.epoch);
net/rxrpc/rxgk.c
799
h.whdr.cid = htonl(conn->proto.cid);
net/rxrpc/rxgk.c
804
h.whdr.flags = conn->out_clientflag;
net/rxrpc/rxgk.c
806
h.whdr.securityIndex = conn->security_ix;
net/rxrpc/rxgk.c
808
h.whdr.serviceId = htons(conn->service_id);
net/rxrpc/rxgk.c
809
h.start_time_msw = htonl(upper_32_bits(conn->rxgk.start_time));
net/rxrpc/rxgk.c
810
h.start_time_lsw = htonl(lower_32_bits(conn->rxgk.start_time));
net/rxrpc/rxgk.c
829
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
872
b.level = htonl(conn->security_level);
net/rxrpc/rxgk.c
873
b.epoch = htonl(conn->proto.epoch);
net/rxrpc/rxgk.c
874
b.cid = htonl(conn->proto.cid);
net/rxrpc/rxgk.c
876
b.call_numbers[0] = htonl(conn->channels[0].call_counter);
net/rxrpc/rxgk.c
877
b.call_numbers[1] = htonl(conn->channels[1].call_counter);
net/rxrpc/rxgk.c
878
b.call_numbers[2] = htonl(conn->channels[2].call_counter);
net/rxrpc/rxgk.c
879
b.call_numbers[3] = htonl(conn->channels[3].call_counter);
net/rxrpc/rxgk.c
887
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
915
static int rxgk_construct_response(struct rxrpc_connection *conn,
net/rxrpc/rxgk.c
926
gk = rxgk_get_key(conn, NULL);
net/rxrpc/rxgk.c
943
ret = rxgk_insert_response_header(conn, gk, response, 0);
net/rxrpc/rxgk.c
95
mutex_lock(&conn->security_lock);
net/rxrpc/rxgk.c
958
ret = rxgk_construct_authenticator(conn, challenge, appdata, response,
net/rxrpc/rxgk.c
964
ret = rxgk_encrypt_authenticator(conn, gk, response,
net/rxrpc/rxgk.c
97
current_key = conn->rxgk.key_number;
net/rxrpc/rxgk.c
990
rxrpc_post_response(conn, response);
net/rxrpc/rxgk_app.c
184
int rxgk_extract_token(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/rxgk_app.c
224
server_key = rxrpc_look_up_server_security(conn, skb, kvno, enctype);
net/rxrpc/rxgk_app.c
246
return rxrpc_abort_conn(conn, skb, ec, ret,
net/rxrpc/rxgk_app.c
250
ret = conn->security->default_decode_ticket(conn, skb, ticket_offset,
net/rxrpc/rxgk_app.c
268
return rxrpc_abort_conn(conn, skb, RXGK_BADKEYNO, -EKEYREJECTED,
net/rxrpc/rxgk_app.c
271
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EKEYREJECTED,
net/rxrpc/rxgk_app.c
280
return rxrpc_abort_conn(conn, skb, RXGK_NOTAUTH, -EKEYREJECTED,
net/rxrpc/rxgk_app.c
283
return rxrpc_abort_conn(conn, skb, KRB5_PROG_KEYTYPE_NOSUPP,
net/rxrpc/rxgk_app.c
295
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
64
return rxrpc_abort_conn(conn, skb, RXGK_INCONSISTENCY, -EPROTO,
net/rxrpc/rxgk_app.c
70
return rxrpc_abort_conn(conn, skb, RXGK_INCONSISTENCY, -EPROTO,
net/rxrpc/rxgk_app.c
89
ret = rxrpc_abort_conn(conn, skb, RXGK_INCONSISTENCY, -EPROTO,
net/rxrpc/rxgk_common.h
42
int rxgk_yfs_decode_ticket(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/rxgk_common.h
45
int rxgk_extract_token(struct rxrpc_connection *conn, struct sk_buff *skb,
net/rxrpc/rxgk_common.h
53
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
100
static int rxkad_init_connection_security(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
1009
conn, skb, RXKADBADTICKET, -EPROTO, \
net/rxrpc/rxkad.c
1014
conn, skb, RXKADBADTICKET, -EPROTO, \
net/rxrpc/rxkad.c
1038
return rxrpc_abort_conn(conn, skb, RXKADBADTICKET, -EPROTO,
net/rxrpc/rxkad.c
106
_enter("{%d},{%x}", conn->debug_id, key_serial(conn->key));
net/rxrpc/rxkad.c
1072
return rxrpc_abort_conn(conn, skb, RXKADNOAUTH, -EKEYREJECTED,
net/rxrpc/rxkad.c
1075
return rxrpc_abort_conn(conn, skb, RXKADEXPIRED, -EKEYEXPIRED,
net/rxrpc/rxkad.c
108
conn->security_ix = token->security_index;
net/rxrpc/rxkad.c
1093
static int rxkad_decrypt_response(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
1131
static int rxkad_verify_response(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
1144
_enter("{%d}", conn->debug_id);
net/rxrpc/rxkad.c
1146
server_key = rxrpc_look_up_server_security(conn, skb, 0, 0);
net/rxrpc/rxkad.c
1151
return rxrpc_abort_conn(conn, skb, RXKADUNKNOWNKEY, ret,
net/rxrpc/rxkad.c
1154
return rxrpc_abort_conn(conn, skb, RXKADEXPIRED, ret,
net/rxrpc/rxkad.c
1157
return rxrpc_abort_conn(conn, skb, RXKADNOAUTH, ret,
net/rxrpc/rxkad.c
1169
rxrpc_abort_conn(conn, skb, RXKADPACKETSHORT, -EPROTO,
net/rxrpc/rxkad.c
1178
trace_rxrpc_rx_response(conn, sp->hdr.serial, version, kvno, ticket_len);
net/rxrpc/rxkad.c
1181
rxrpc_abort_conn(conn, skb, RXKADINCONSISTENCY, -EPROTO,
net/rxrpc/rxkad.c
1187
rxrpc_abort_conn(conn, skb, RXKADTICKETLEN, -EPROTO,
net/rxrpc/rxkad.c
1193
rxrpc_abort_conn(conn, skb, RXKADUNKNOWNKEY, -EPROTO,
net/rxrpc/rxkad.c
1206
rxrpc_abort_conn(conn, skb, RXKADPACKETSHORT, -EPROTO,
net/rxrpc/rxkad.c
121
switch (conn->security_level) {
net/rxrpc/rxkad.c
1211
ret = rxkad_decrypt_ticket(conn, server_key, skb, ticket, ticket_len,
net/rxrpc/rxkad.c
1218
ret = rxkad_decrypt_response(conn, response, &session_key);
net/rxrpc/rxkad.c
1222
if (ntohl(response->encrypted.epoch) != conn->proto.epoch ||
net/rxrpc/rxkad.c
1223
ntohl(response->encrypted.cid) != conn->proto.cid ||
net/rxrpc/rxkad.c
1224
ntohl(response->encrypted.securityIndex) != conn->security_ix) {
net/rxrpc/rxkad.c
1225
rxrpc_abort_conn(conn, skb, RXKADSEALEDINCON, -EPROTO,
net/rxrpc/rxkad.c
1234
rxrpc_abort_conn(conn, skb, RXKADSEALEDINCON, -EPROTO,
net/rxrpc/rxkad.c
1241
u32 counter = READ_ONCE(conn->channels[i].call_counter);
net/rxrpc/rxkad.c
1244
rxrpc_abort_conn(conn, skb, RXKADSEALEDINCON, -EPROTO,
net/rxrpc/rxkad.c
1250
rxrpc_abort_conn(conn, skb, RXKADSEALEDINCON, -EPROTO,
net/rxrpc/rxkad.c
1256
if (conn->channels[i].call) {
net/rxrpc/rxkad.c
1257
rxrpc_abort_conn(conn, skb, RXKADSEALEDINCON, -EPROTO,
net/rxrpc/rxkad.c
1261
conn->channels[i].call_counter = call_id;
net/rxrpc/rxkad.c
1265
if (ntohl(response->encrypted.inc_nonce) != conn->rxkad.nonce + 1) {
net/rxrpc/rxkad.c
1266
rxrpc_abort_conn(conn, skb, RXKADOUTOFSEQUENCE, -EPROTO,
net/rxrpc/rxkad.c
1273
rxrpc_abort_conn(conn, skb, RXKADLEVELFAIL, -EPROTO,
net/rxrpc/rxkad.c
1277
conn->security_level = level;
net/rxrpc/rxkad.c
1282
ret = rxrpc_get_server_data_key(conn, &session_key, expiry, kvno);
net/rxrpc/rxkad.c
131
ret = rxkad_prime_packet_security(conn, ci);
net/rxrpc/rxkad.c
1314
static void rxkad_clear(struct rxrpc_connection *conn)
net/rxrpc/rxkad.c
1318
if (conn->rxkad.cipher)
net/rxrpc/rxkad.c
1319
crypto_free_sync_skcipher(conn->rxkad.cipher);
net/rxrpc/rxkad.c
135
conn->rxkad.cipher = ci;
net/rxrpc/rxkad.c
155
switch (call->conn->security_level) {
net/rxrpc/rxkad.c
191
static int rxkad_prime_packet_security(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
204
if (!conn->key)
net/rxrpc/rxkad.c
217
token = conn->key->payload.data[0];
net/rxrpc/rxkad.c
220
tmpbuf[0] = htonl(conn->proto.epoch);
net/rxrpc/rxkad.c
221
tmpbuf[1] = htonl(conn->proto.cid);
net/rxrpc/rxkad.c
223
tmpbuf[3] = htonl(conn->security_ix);
net/rxrpc/rxkad.c
232
memcpy(&conn->rxkad.csum_iv, tmpbuf + 2, sizeof(conn->rxkad.csum_iv));
net/rxrpc/rxkad.c
244
struct crypto_skcipher *tfm = &call->conn->rxkad.cipher->base;
net/rxrpc/rxkad.c
288
skcipher_request_set_sync_tfm(req, call->conn->rxkad.cipher);
net/rxrpc/rxkad.c
327
token = call->conn->key->payload.data[0];
net/rxrpc/rxkad.c
331
skcipher_request_set_sync_tfm(req, call->conn->rxkad.cipher);
net/rxrpc/rxkad.c
354
call->debug_id, key_serial(call->conn->key),
net/rxrpc/rxkad.c
357
if (!call->conn->rxkad.cipher)
net/rxrpc/rxkad.c
360
ret = key_validate(call->conn->key);
net/rxrpc/rxkad.c
369
memcpy(&iv, call->conn->rxkad.csum_iv.x, sizeof(iv));
net/rxrpc/rxkad.c
378
skcipher_request_set_sync_tfm(req, call->conn->rxkad.cipher);
net/rxrpc/rxkad.c
392
switch (call->conn->security_level) {
net/rxrpc/rxkad.c
42
static int rxkad_prime_packet_security(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
458
skcipher_request_set_sync_tfm(req, call->conn->rxkad.cipher);
net/rxrpc/rxkad.c
535
token = call->conn->key->payload.data[0];
net/rxrpc/rxkad.c
538
skcipher_request_set_sync_tfm(req, call->conn->rxkad.cipher);
net/rxrpc/rxkad.c
594
call->debug_id, key_serial(call->conn->key), seq);
net/rxrpc/rxkad.c
596
if (!call->conn->rxkad.cipher)
net/rxrpc/rxkad.c
604
memcpy(&iv, call->conn->rxkad.csum_iv.x, sizeof(iv));
net/rxrpc/rxkad.c
613
skcipher_request_set_sync_tfm(req, call->conn->rxkad.cipher);
net/rxrpc/rxkad.c
632
switch (call->conn->security_level) {
net/rxrpc/rxkad.c
655
static int rxkad_issue_challenge(struct rxrpc_connection *conn)
net/rxrpc/rxkad.c
665
_enter("{%d}", conn->debug_id);
net/rxrpc/rxkad.c
667
get_random_bytes(&conn->rxkad.nonce, sizeof(conn->rxkad.nonce));
net/rxrpc/rxkad.c
670
challenge.nonce = htonl(conn->rxkad.nonce);
net/rxrpc/rxkad.c
674
msg.msg_name = &conn->peer->srx.transport;
net/rxrpc/rxkad.c
675
msg.msg_namelen = conn->peer->srx.transport_len;
net/rxrpc/rxkad.c
680
whdr.epoch = htonl(conn->proto.epoch);
net/rxrpc/rxkad.c
681
whdr.cid = htonl(conn->proto.cid);
net/rxrpc/rxkad.c
685
whdr.flags = conn->out_clientflag;
net/rxrpc/rxkad.c
687
whdr.securityIndex = conn->security_ix;
net/rxrpc/rxkad.c
689
whdr.serviceId = htons(conn->service_id);
net/rxrpc/rxkad.c
698
serial = rxrpc_get_next_serial(conn);
net/rxrpc/rxkad.c
701
trace_rxrpc_tx_challenge(conn, serial, 0, conn->rxkad.nonce);
net/rxrpc/rxkad.c
703
ret = kernel_sendmsg(conn->local->socket, &msg, iov, 2, len);
net/rxrpc/rxkad.c
705
trace_rxrpc_tx_fail(conn->debug_id, serial, ret,
net/rxrpc/rxkad.c
710
rxrpc_peer_mark_tx(conn->peer);
net/rxrpc/rxkad.c
711
trace_rxrpc_tx_packet(conn->debug_id, &whdr,
net/rxrpc/rxkad.c
735
static int rxkad_encrypt_response(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
752
req = skcipher_request_alloc(&conn->rxkad.cipher->base, GFP_NOFS);
net/rxrpc/rxkad.c
759
skcipher_request_set_sync_tfm(req, conn->rxkad.cipher);
net/rxrpc/rxkad.c
770
static bool rxkad_validate_challenge(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
778
_enter("{%d,%x}", conn->debug_id, key_serial(conn->key));
net/rxrpc/rxkad.c
780
if (!conn->key) {
net/rxrpc/rxkad.c
781
rxrpc_abort_conn(conn, skb, RX_PROTOCOL_ERROR, -EPROTO,
net/rxrpc/rxkad.c
786
ret = key_validate(conn->key);
net/rxrpc/rxkad.c
788
rxrpc_abort_conn(conn, skb, RXKADEXPIRED, ret,
net/rxrpc/rxkad.c
795
rxrpc_abort_conn(conn, skb, RXKADPACKETSHORT, -EPROTO,
net/rxrpc/rxkad.c
804
trace_rxrpc_rx_challenge(conn, sp->hdr.serial, version,
net/rxrpc/rxkad.c
808
rxrpc_abort_conn(conn, skb, RXKADINCONSISTENCY, -EPROTO,
net/rxrpc/rxkad.c
813
if (conn->security_level < min_level) {
net/rxrpc/rxkad.c
814
rxrpc_abort_conn(conn, skb, RXKADLEVELFAIL, -EACCES,
net/rxrpc/rxkad.c
825
int rxkad_insert_response_header(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
838
h.whdr.epoch = htonl(conn->proto.epoch);
net/rxrpc/rxkad.c
839
h.whdr.cid = htonl(conn->proto.cid);
net/rxrpc/rxkad.c
844
h.whdr.flags = conn->out_clientflag;
net/rxrpc/rxkad.c
846
h.whdr.securityIndex = conn->security_ix;
net/rxrpc/rxkad.c
848
h.whdr.serviceId = htons(conn->service_id);
net/rxrpc/rxkad.c
851
h.resp.encrypted.epoch = htonl(conn->proto.epoch);
net/rxrpc/rxkad.c
852
h.resp.encrypted.cid = htonl(conn->proto.cid);
net/rxrpc/rxkad.c
854
h.resp.encrypted.securityIndex = htonl(conn->security_ix);
net/rxrpc/rxkad.c
855
h.resp.encrypted.call_id[0] = htonl(conn->channels[0].call_counter);
net/rxrpc/rxkad.c
856
h.resp.encrypted.call_id[1] = htonl(conn->channels[1].call_counter);
net/rxrpc/rxkad.c
857
h.resp.encrypted.call_id[2] = htonl(conn->channels[2].call_counter);
net/rxrpc/rxkad.c
858
h.resp.encrypted.call_id[3] = htonl(conn->channels[3].call_counter);
net/rxrpc/rxkad.c
860
h.resp.encrypted.level = htonl(conn->security_level);
net/rxrpc/rxkad.c
874
static int rxkad_respond_to_challenge(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
883
_enter("{%d,%x}", conn->debug_id, key_serial(conn->key));
net/rxrpc/rxkad.c
885
ret = key_validate(conn->key);
net/rxrpc/rxkad.c
887
return rxrpc_abort_conn(conn, challenge, RXKADEXPIRED, ret,
net/rxrpc/rxkad.c
890
token = conn->key->payload.data[0];
net/rxrpc/rxkad.c
905
ret = rxkad_insert_response_header(conn, token, challenge, response,
net/rxrpc/rxkad.c
910
ret = rxkad_encrypt_response(conn, response, token->kad);
net/rxrpc/rxkad.c
923
rxrpc_post_response(conn, response);
net/rxrpc/rxkad.c
954
return rxkad_respond_to_challenge(csp->chall.conn, challenge);
net/rxrpc/rxkad.c
961
static int rxkad_decrypt_ticket(struct rxrpc_connection *conn,
net/rxrpc/rxkad.c
978
_enter("{%d},{%x}", conn->debug_id, key_serial(server_key));
net/rxrpc/rxkad.c
997
return rxrpc_abort_conn(conn, skb, RXKADBADTICKET, -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
408
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
1008
struct smc_connection *conn = &smc->conn;
net/smc/af_smc.c
1009
struct smc_link_group *lgr = conn->lgr;
net/smc/af_smc.c
1012
if (smc_conn_lgr_valid(conn))
net/smc/af_smc.c
1015
smc_conn_free(conn);
net/smc/af_smc.c
1296
link = smc->conn.lnk;
net/smc/af_smc.c
1301
struct smc_link *l = &smc->conn.lgr->lnk[i];
net/smc/af_smc.c
1317
smc_switch_link_and_count(&smc->conn, link);
net/smc/af_smc.c
1329
if (smc_rmb_rtoken_handling(&smc->conn, link, aclc)) {
net/smc/af_smc.c
1343
if (smc->conn.sndbuf_desc->is_vm) {
net/smc/af_smc.c
1344
if (smcr_lgr_reg_sndbufs(link, smc->conn.sndbuf_desc)) {
net/smc/af_smc.c
1349
if (smcr_lgr_reg_rmbs(link, smc->conn.rmb_desc)) {
net/smc/af_smc.c
1462
if (smc_ism_support_dmb_nocopy(smc->conn.lgr->smcd)) {
net/smc/af_smc.c
1875
struct smc_link *link = smc->conn.lnk;
net/smc/af_smc.c
1880
if (smc->conn.sndbuf_desc->is_vm) {
net/smc/af_smc.c
1881
if (smcr_link_reg_buf(link, smc->conn.sndbuf_desc))
net/smc/af_smc.c
1886
if (smcr_link_reg_buf(link, smc->conn.rmb_desc))
net/smc/af_smc.c
1911
smc->conn.rmb_desc->is_conf_rkey = true;
net/smc/af_smc.c
2284
struct smc_connection *conn = &new_smc->conn;
net/smc/af_smc.c
2288
if (conn->sndbuf_desc->is_vm) {
net/smc/af_smc.c
2289
if (smcr_lgr_reg_sndbufs(conn->lnk,
net/smc/af_smc.c
2290
conn->sndbuf_desc))
net/smc/af_smc.c
2293
if (smcr_lgr_reg_rmbs(conn->lnk, conn->rmb_desc))
net/smc/af_smc.c
230
if (smc->conn.tx_in_release_sock) {
net/smc/af_smc.c
231
smc_tx_pending(&smc->conn);
net/smc/af_smc.c
232
smc->conn.tx_in_release_sock = false;
net/smc/af_smc.c
2429
struct smc_link *link = new_smc->conn.lnk;
net/smc/af_smc.c
2435
if (smc_rmb_rtoken_handling(&new_smc->conn, link, cclc))
net/smc/af_smc.c
2574
smc_ism_support_dmb_nocopy(new_smc->conn.lgr->smcd)) {
net/smc/af_smc.c
2771
} else if (!atomic_read(&smc_sk(nsk)->conn.bytes_to_rcv)) {
net/smc/af_smc.c
2917
atomic_read(&smc->conn.sndbuf_space)) ||
net/smc/af_smc.c
2927
if (atomic_read(&smc->conn.sndbuf_space))
net/smc/af_smc.c
2931
if (atomic_read(&smc->conn.bytes_to_rcv))
net/smc/af_smc.c
2937
if (smc->conn.urg_state == SMC_URG_VALID)
net/smc/af_smc.c
3144
smc_tx_pending(&smc->conn);
net/smc/af_smc.c
3145
cancel_delayed_work(&smc->conn.tx_work);
net/smc/af_smc.c
3155
smc_tx_pending(&smc->conn);
net/smc/af_smc.c
3156
cancel_delayed_work(&smc->conn.tx_work);
net/smc/af_smc.c
320
smc_conn_free(&smc->conn);
net/smc/af_smc.c
3202
struct smc_connection *conn;
net/smc/af_smc.c
3207
conn = &smc->conn;
net/smc/af_smc.c
3228
answ = atomic_read(&smc->conn.bytes_to_rcv);
net/smc/af_smc.c
3240
answ = smc->conn.sndbuf_desc->len -
net/smc/af_smc.c
3241
atomic_read(&smc->conn.sndbuf_space);
net/smc/af_smc.c
3253
answ = smc_tx_prepared_sends(&smc->conn);
net/smc/af_smc.c
3264
smc_curs_copy(&cons, &conn->local_tx_ctrl.cons, conn);
net/smc/af_smc.c
3265
smc_curs_copy(&urg, &conn->urg_curs, conn);
net/smc/af_smc.c
3266
answ = smc_curs_diff(conn->rmb_desc->len,
net/smc/af_smc.c
404
INIT_DELAYED_WORK(&smc->conn.tx_work, smc_tx_work);
net/smc/af_smc.c
409
spin_lock_init(&smc->conn.send_lock);
net/smc/af_smc.c
618
struct smc_link *link = smc->conn.lnk;
net/smc/af_smc.c
649
if (smc->conn.sndbuf_desc->is_vm) {
net/smc/af_smc.c
650
if (smcr_link_reg_buf(link, smc->conn.sndbuf_desc))
net/smc/af_smc.c
655
if (smcr_link_reg_buf(link, smc->conn.rmb_desc))
net/smc/af_smc.c
659
smc->conn.rmb_desc->is_conf_rkey = true;
net/smc/af_smc.c
708
if (smc->conn.lgr->is_smcd) {
net/smc/af_smc.c
709
memcpy(smc->conn.lgr->negotiated_eid, clc->d1.eid,
net/smc/af_smc.c
713
memcpy(smc->conn.lgr->negotiated_eid, clc->r1.eid,
net/smc/af_smc.c
718
smc->conn.lgr->peer_os = fce->os_type;
net/smc/af_smc.c
719
smc->conn.lgr->peer_smc_release = fce->release;
net/smc/af_smc.c
721
memcpy(smc->conn.lgr->peer_hostname, fce->hostname,
net/smc/af_smc.c
730
smc->conn.peer_rmbe_idx = clc->r0.rmbe_idx;
net/smc/af_smc.c
731
smc->conn.local_tx_ctrl.token = ntohl(clc->r0.rmbe_alert_token);
net/smc/af_smc.c
732
smc->conn.peer_rmbe_size = bufsize;
net/smc/af_smc.c
733
atomic_set(&smc->conn.peer_rmbe_space, smc->conn.peer_rmbe_size);
net/smc/af_smc.c
734
smc->conn.tx_off = bufsize * (smc->conn.peer_rmbe_idx - 1);
net/smc/af_smc.c
742
smc->conn.peer_rmbe_idx = clc->d0.dmbe_idx;
net/smc/af_smc.c
743
smc->conn.peer_token = ntohll(clc->d0.token);
net/smc/af_smc.c
745
smc->conn.peer_rmbe_size = bufsize - sizeof(struct smcd_cdc_msg);
net/smc/af_smc.c
746
atomic_set(&smc->conn.peer_rmbe_space, smc->conn.peer_rmbe_size);
net/smc/af_smc.c
747
smc->conn.tx_off = bufsize * smc->conn.peer_rmbe_idx;
net/smc/af_smc.c
753
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
473
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
487
if (!conn || conn->out_of_sync)
net/smc/smc_cdc.c
489
smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_cdc.c
49
smc_curs_copy(&conn->local_tx_ctrl_fin, &cdcpend->p_cursor,
net/smc/smc_cdc.c
496
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
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
1576
conn = rb_entry(node, struct smc_connection, alert_node);
net/smc/smc_core.c
1577
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
2498
conn->rmb_desc = buf_desc;
net/smc/smc_core.c
2499
conn->rmbe_size_comp = bufsize_comp;
net/smc/smc_core.c
2501
atomic_set(&conn->bytes_to_rcv, 0);
net/smc/smc_core.c
2502
conn->rmbe_update_limit =
net/smc/smc_core.c
2505
smc_ism_set_conn(conn); /* map RMB/smcd_dev to conn */
net/smc/smc_core.c
2507
conn->sndbuf_desc = buf_desc;
net/smc/smc_core.c
2509
atomic_set(&conn->sndbuf_space, bufsize);
net/smc/smc_core.c
2514
void smc_sndbuf_sync_sg_for_device(struct smc_connection *conn)
net/smc/smc_core.c
2516
if (!conn->sndbuf_desc->is_dma_need_sync)
net/smc/smc_core.c
2518
if (!smc_conn_lgr_valid(conn) || conn->lgr->is_smcd ||
net/smc/smc_core.c
2519
!smc_link_active(conn->lnk))
net/smc/smc_core.c
2521
smc_ib_sync_sg_for_device(conn->lnk, conn->sndbuf_desc, DMA_TO_DEVICE);
net/smc/smc_core.c
2524
void smc_rmb_sync_sg_for_cpu(struct smc_connection *conn)
net/smc/smc_core.c
2528
if (!conn->rmb_desc->is_dma_need_sync)
net/smc/smc_core.c
2530
if (!smc_conn_lgr_valid(conn) || conn->lgr->is_smcd)
net/smc/smc_core.c
2533
if (!smc_link_active(&conn->lgr->lnk[i]))
net/smc/smc_core.c
2535
smc_ib_sync_sg_for_cpu(&conn->lgr->lnk[i], conn->rmb_desc,
net/smc/smc_core.c
2552
smc_ism_support_dmb_nocopy(smc->conn.lgr->smcd))
net/smc/smc_core.c
2562
if (rc && smc->conn.sndbuf_desc) {
net/smc/smc_core.c
2563
down_write(&smc->conn.lgr->sndbufs_lock);
net/smc/smc_core.c
2564
smc_lgr_buf_list_del(smc->conn.lgr, false,
net/smc/smc_core.c
2565
smc->conn.sndbuf_desc);
net/smc/smc_core.c
2566
up_write(&smc->conn.lgr->sndbufs_lock);
net/smc/smc_core.c
2567
smc_buf_free(smc->conn.lgr, false, smc->conn.sndbuf_desc);
net/smc/smc_core.c
2568
smc->conn.sndbuf_desc = NULL;
net/smc/smc_core.c
2575
struct smc_connection *conn = &smc->conn;
net/smc/smc_core.c
2576
struct smcd_dev *smcd = conn->lgr->smcd;
net/smc/smc_core.c
2577
u64 peer_token = conn->peer_token;
net/smc/smc_core.c
2598
conn->sndbuf_desc = buf_desc;
net/smc/smc_core.c
2599
conn->sndbuf_desc->used = 1;
net/smc/smc_core.c
2600
atomic_set(&conn->sndbuf_space, conn->sndbuf_desc->len);
net/smc/smc_core.c
2712
int smc_rmb_rtoken_handling(struct smc_connection *conn,
net/smc/smc_core.c
2716
conn->rtoken_idx = smc_rtoken_add(lnk, clc->r0.rmb_dma_addr,
net/smc/smc_core.c
2718
if (conn->rtoken_idx < 0)
net/smc/smc_core.c
2719
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
473
smcd->conn = kzalloc_objs(struct smc_connection *, max_dmbs);
net/smc/smc_ism.c
474
if (!smcd->conn)
net/smc/smc_ism.c
490
kfree(smcd->conn);
net/smc/smc_ism.c
560
kfree(smcd->conn);
net/smc/smc_ism.c
604
struct smc_connection *conn = NULL;
net/smc/smc_ism.c
608
conn = smcd->conn[dmbno];
net/smc/smc_ism.c
609
if (conn && !conn->killed)
net/smc/smc_ism.c
610
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->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
301
handle_connect_req(cma_id, &event->param.conn);
net/sunrpc/xprtrdma/verbs.c
251
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
1558
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
333
if (wdev->conn)
net/wireless/wext-sme.c
90
if (wdev->conn) {
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
132
#define VDO_IDH(usbh, usbd, ufp_cable, is_modal, dfp, conn, vid) \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
134
| (is_modal) << 26 | ((dfp) & 0x7) << 23 | ((conn) & 0x3) << 21 \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
208
#define VDO_UFP(ver, cap, conn, vcpwr, vcr, vbr, alt, spd) \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
209
(((ver) & 0x7) << 29 | ((cap) & 0xf) << 24 | ((conn) & 0x3) << 22 \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
230
#define VDO_DFP(ver, cap, conn, pnum) \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
231
(((ver) & 0x7) << 29 | ((cap) & 0x7) << 24 | ((conn) & 0x3) << 22 \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
346
#define VDO_PCABLE(hw, fw, ver, conn, lat, term, vbm, cur, spd) \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
348
| ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \
scripts/dtc/include-prefixes/dt-bindings/usb/pd.h
350
#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
352
| ((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
2586
static const hda_nid_t conn[] = { 0x02, 0x03 };
sound/hda/codecs/realtek/alc269.c
2587
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2596
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
2597
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2606
static const hda_nid_t conn[] = { 0x02, 0x03 };
sound/hda/codecs/realtek/alc269.c
2607
snd_hda_override_conn_list(codec, 0x15, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2667
static const hda_nid_t conn[] = { 0x02, 0x03 }; /* exclude 0x06 */
sound/hda/codecs/realtek/alc269.c
2675
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2722
static const hda_nid_t conn[] = { 0x02, 0x03 }; /* exclude 0x06 */
sound/hda/codecs/realtek/alc269.c
2733
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2929
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
2949
snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2950
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2967
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
2984
snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2985
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
2999
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
3009
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3469
static const hda_nid_t conn[] = { 0x02, 0x03 };
sound/hda/codecs/realtek/alc269.c
3488
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
3516
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3527
static const hda_nid_t conn[] = { 0x02, 0x03 }; /* exclude 0x06 */
sound/hda/codecs/realtek/alc269.c
3535
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3581
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
3586
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3615
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
3623
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3642
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
3647
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3715
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
3720
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc269.c
3744
static const hda_nid_t conn[] = { 0x02 };
sound/hda/codecs/realtek/alc269.c
3753
snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc882.c
101
static const hda_nid_t conn[] = { 0x0c, 0x0d, 0x0e, 0x0f, 0x26 };
sound/hda/codecs/realtek/alc882.c
102
snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc882.c
103
snd_hda_override_conn_list(codec, 0x15, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc882.c
104
snd_hda_override_conn_list(codec, 0x18, ARRAY_SIZE(conn), conn);
sound/hda/codecs/realtek/alc882.c
105
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
590
unsigned int def_conf, conn;
sound/hda/common/jack.c
600
conn = get_defcfg_connect(def_conf);
sound/hda/common/jack.c
601
if (conn == AC_JACK_PORT_NONE)
sound/hda/common/jack.c
603
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
686
hda_nid_t *conn;
sound/hda/common/proc.c
692
conn = kmalloc_objs(hda_nid_t, conn_len);
sound/hda/common/proc.c
693
if (!conn)
sound/hda/common/proc.c
700
if (snd_hda_get_raw_connections(codec, nid, conn, conn_len) < 0)
sound/hda/common/proc.c
704
snd_iprintf(buffer, " 0x%02x", conn[c]);
sound/hda/common/proc.c
710
kfree(conn);
sound/hda/common/proc.c
808
hda_nid_t *conn = NULL;
sound/hda/common/proc.c
848
conn = kmalloc_objs(hda_nid_t, conn_len);
sound/hda/common/proc.c
849
if (!conn)
sound/hda/common/proc.c
851
if (snd_hda_get_raw_connections(codec, nid, conn,
sound/hda/common/proc.c
921
conn, conn_len);
sound/hda/common/proc.c
929
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
1007
if (create_pair(AF_VSOCK, SOCK_STREAM, &conn, &peer))
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1016
err = bpf_map_update_elem(map, &zero, &conn, BPF_ANY);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1023
err = poll_read(conn, IO_TIMEOUT_SEC);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1027
if (xrecv_nonblock(conn, &buf, 1, 0) != 1)
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
1032
xclose(conn);
tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
997
int err, map, conn, peer;
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 (!must_succeed && !ASSERT_ERR_PTR(conn, "connection that must fail"))
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
220
if (!ASSERT_OK_PTR(conn, "connection that must succeed"))
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
223
err = send(conn->client_fd, tx_buffer, DEFAULT_TEST_DATA_SIZE, 0);
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
226
if (check_server_rx_data(cfg, conn, DEFAULT_TEST_DATA_SIZE))
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
234
err = send(conn->client_fd, tx_buffer, GSO_TEST_DATA_SIZE, 0);
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
237
if (check_server_rx_data(cfg, conn, DEFAULT_TEST_DATA_SIZE))
tools/testing/selftests/bpf/prog_tests/test_tc_tunnel.c
242
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
217
int epfd, conn, i, sport, expected;
tools/testing/selftests/net/reuseport_bpf.c
245
conn = accept(ev.data.fd, NULL, NULL);
tools/testing/selftests/net/reuseport_bpf.c
246
if (conn < 0)
tools/testing/selftests/net/reuseport_bpf.c
248
i = recvmsg(conn, &msg, 0);
tools/testing/selftests/net/reuseport_bpf.c
249
close(conn);