/linux-4.1.27/net/bluetooth/hidp/ |
H A D | core.c | 71 static void hidp_copy_session(struct hidp_session *session, struct hidp_conninfo *ci) hidp_copy_session() argument 75 bacpy(&ci->bdaddr, &session->bdaddr); hidp_copy_session() 77 ci->flags = session->flags & valid_flags; hidp_copy_session() 80 if (session->input) { hidp_copy_session() 81 ci->vendor = session->input->id.vendor; hidp_copy_session() 82 ci->product = session->input->id.product; hidp_copy_session() 83 ci->version = session->input->id.version; hidp_copy_session() 84 if (session->input->name) hidp_copy_session() 85 strlcpy(ci->name, session->input->name, 128); hidp_copy_session() 88 } else if (session->hid) { hidp_copy_session() 89 ci->vendor = session->hid->vendor; hidp_copy_session() 90 ci->product = session->hid->product; hidp_copy_session() 91 ci->version = session->hid->version; hidp_copy_session() 92 strlcpy(ci->name, session->hid->name, 128); hidp_copy_session() 96 /* assemble skb, queue message on @transmit and wake up the session thread */ hidp_send_message() 97 static int hidp_send_message(struct hidp_session *session, struct socket *sock, hidp_send_message() argument 104 BT_DBG("session %p data %p size %d", session, data, size); hidp_send_message() 106 if (atomic_read(&session->terminate)) hidp_send_message() 125 static int hidp_send_ctrl_message(struct hidp_session *session, hidp_send_ctrl_message() argument 129 return hidp_send_message(session, session->ctrl_sock, hidp_send_ctrl_message() 130 &session->ctrl_transmit, hdr, data, size); hidp_send_ctrl_message() 133 static int hidp_send_intr_message(struct hidp_session *session, hidp_send_intr_message() argument 137 return hidp_send_message(session, session->intr_sock, hidp_send_intr_message() 138 &session->intr_transmit, hdr, data, size); hidp_send_intr_message() 144 struct hidp_session *session = input_get_drvdata(dev); hidp_input_event() local 148 BT_DBG("session %p type %d code %d value %d", hidp_input_event() 149 session, type, code, value); hidp_input_event() 160 if (session->leds == newleds) hidp_input_event() 163 session->leds = newleds; hidp_input_event() 169 return hidp_send_intr_message(session, hdr, data, 2); hidp_input_event() 172 static void hidp_input_report(struct hidp_session *session, struct sk_buff *skb) hidp_input_report() argument 174 struct input_dev *dev = session->input; hidp_input_report() 175 unsigned char *keys = session->keys; hidp_input_report() 232 struct hidp_session *session = hid->driver_data; hidp_get_raw_report() local 238 if (atomic_read(&session->terminate)) hidp_get_raw_report() 255 if (mutex_lock_interruptible(&session->report_mutex)) hidp_get_raw_report() 259 session->waiting_report_type = report_type & HIDP_DATA_RTYPE_MASK; hidp_get_raw_report() 260 session->waiting_report_number = numbered_reports ? report_number : -1; hidp_get_raw_report() 261 set_bit(HIDP_WAITING_FOR_RETURN, &session->flags); hidp_get_raw_report() 263 ret = hidp_send_ctrl_message(session, report_type, data, 1); hidp_get_raw_report() 268 gets put in session->report_return. */ hidp_get_raw_report() 269 while (test_bit(HIDP_WAITING_FOR_RETURN, &session->flags) && hidp_get_raw_report() 270 !atomic_read(&session->terminate)) { hidp_get_raw_report() 273 res = wait_event_interruptible_timeout(session->report_queue, hidp_get_raw_report() 274 !test_bit(HIDP_WAITING_FOR_RETURN, &session->flags) hidp_get_raw_report() 275 || atomic_read(&session->terminate), hidp_get_raw_report() 289 skb = session->report_return; hidp_get_raw_report() 295 session->report_return = NULL; hidp_get_raw_report() 301 clear_bit(HIDP_WAITING_FOR_RETURN, &session->flags); hidp_get_raw_report() 302 mutex_unlock(&session->report_mutex); hidp_get_raw_report() 307 clear_bit(HIDP_WAITING_FOR_RETURN, &session->flags); hidp_get_raw_report() 308 mutex_unlock(&session->report_mutex); hidp_get_raw_report() 316 struct hidp_session *session = hid->driver_data; hidp_set_raw_report() local 333 if (mutex_lock_interruptible(&session->report_mutex)) hidp_set_raw_report() 338 set_bit(HIDP_WAITING_FOR_SEND_ACK, &session->flags); hidp_set_raw_report() 339 ret = hidp_send_ctrl_message(session, report_type, data, count); hidp_set_raw_report() 344 while (test_bit(HIDP_WAITING_FOR_SEND_ACK, &session->flags) && hidp_set_raw_report() 345 !atomic_read(&session->terminate)) { hidp_set_raw_report() 348 res = wait_event_interruptible_timeout(session->report_queue, hidp_set_raw_report() 349 !test_bit(HIDP_WAITING_FOR_SEND_ACK, &session->flags) hidp_set_raw_report() 350 || atomic_read(&session->terminate), hidp_set_raw_report() 364 if (!session->output_report_success) { hidp_set_raw_report() 372 clear_bit(HIDP_WAITING_FOR_SEND_ACK, &session->flags); hidp_set_raw_report() 373 mutex_unlock(&session->report_mutex); hidp_set_raw_report() 379 struct hidp_session *session = hid->driver_data; hidp_output_report() local 381 return hidp_send_intr_message(session, hidp_output_report() 402 struct hidp_session *session = (struct hidp_session *) arg; hidp_idle_timeout() local 413 session->intr_sock->sk->sk_err = EUNATCH; hidp_idle_timeout() 414 session->ctrl_sock->sk->sk_err = EUNATCH; hidp_idle_timeout() 415 wake_up_interruptible(sk_sleep(session->intr_sock->sk)); hidp_idle_timeout() 416 wake_up_interruptible(sk_sleep(session->ctrl_sock->sk)); hidp_idle_timeout() 418 hidp_session_terminate(session); hidp_idle_timeout() 421 static void hidp_set_timer(struct hidp_session *session) hidp_set_timer() argument 423 if (session->idle_to > 0) hidp_set_timer() 424 mod_timer(&session->timer, jiffies + HZ * session->idle_to); hidp_set_timer() 427 static void hidp_del_timer(struct hidp_session *session) hidp_del_timer() argument 429 if (session->idle_to > 0) hidp_del_timer() 430 del_timer(&session->timer); hidp_del_timer() 433 static void hidp_process_report(struct hidp_session *session, hidp_process_report() argument 439 memcpy(session->input_buf, data, len); hidp_process_report() 440 hid_input_report(session->hid, type, session->input_buf, len, intr); hidp_process_report() 443 static void hidp_process_handshake(struct hidp_session *session, hidp_process_handshake() argument 446 BT_DBG("session %p param 0x%02x", session, param); hidp_process_handshake() 447 session->output_report_success = 0; /* default condition */ hidp_process_handshake() 452 session->output_report_success = 1; hidp_process_handshake() 459 if (test_and_clear_bit(HIDP_WAITING_FOR_RETURN, &session->flags)) hidp_process_handshake() 460 wake_up_interruptible(&session->report_queue); hidp_process_handshake() 471 hidp_send_ctrl_message(session, hidp_process_handshake() 476 hidp_send_ctrl_message(session, hidp_process_handshake() 482 if (test_and_clear_bit(HIDP_WAITING_FOR_SEND_ACK, &session->flags)) hidp_process_handshake() 483 wake_up_interruptible(&session->report_queue); hidp_process_handshake() 486 static void hidp_process_hid_control(struct hidp_session *session, hidp_process_hid_control() argument 489 BT_DBG("session %p param 0x%02x", session, param); hidp_process_hid_control() 493 skb_queue_purge(&session->ctrl_transmit); hidp_process_hid_control() 494 skb_queue_purge(&session->intr_transmit); hidp_process_hid_control() 496 hidp_session_terminate(session); hidp_process_hid_control() 501 static int hidp_process_data(struct hidp_session *session, struct sk_buff *skb, hidp_process_data() argument 505 BT_DBG("session %p skb %p len %d param 0x%02x", session, skb, skb->len, param); hidp_process_data() 509 hidp_set_timer(session); hidp_process_data() 511 if (session->input) hidp_process_data() 512 hidp_input_report(session, skb); hidp_process_data() 514 if (session->hid) hidp_process_data() 515 hidp_process_report(session, HID_INPUT_REPORT, hidp_process_data() 525 hidp_send_ctrl_message(session, hidp_process_data() 529 if (test_bit(HIDP_WAITING_FOR_RETURN, &session->flags) && hidp_process_data() 530 param == session->waiting_report_type) { hidp_process_data() 531 if (session->waiting_report_number < 0 || hidp_process_data() 532 session->waiting_report_number == skb->data[0]) { hidp_process_data() 534 session->report_return = skb; hidp_process_data() 536 clear_bit(HIDP_WAITING_FOR_RETURN, &session->flags); hidp_process_data() 537 wake_up_interruptible(&session->report_queue); hidp_process_data() 544 static void hidp_recv_ctrl_frame(struct hidp_session *session, hidp_recv_ctrl_frame() argument 550 BT_DBG("session %p skb %p len %d", session, skb, skb->len); hidp_recv_ctrl_frame() 560 hidp_process_handshake(session, param); hidp_recv_ctrl_frame() 564 hidp_process_hid_control(session, param); hidp_recv_ctrl_frame() 568 free_skb = hidp_process_data(session, skb, param); hidp_recv_ctrl_frame() 572 hidp_send_ctrl_message(session, hidp_recv_ctrl_frame() 581 static void hidp_recv_intr_frame(struct hidp_session *session, hidp_recv_intr_frame() argument 586 BT_DBG("session %p skb %p len %d", session, skb, skb->len); hidp_recv_intr_frame() 592 hidp_set_timer(session); hidp_recv_intr_frame() 594 if (session->input) hidp_recv_intr_frame() 595 hidp_input_report(session, skb); hidp_recv_intr_frame() 597 if (session->hid) { hidp_recv_intr_frame() 598 hidp_process_report(session, HID_INPUT_REPORT, hidp_recv_intr_frame() 625 static void hidp_process_transmit(struct hidp_session *session, hidp_process_transmit() argument 632 BT_DBG("session %p", session); hidp_process_transmit() 640 hidp_session_terminate(session); hidp_process_transmit() 645 hidp_set_timer(session); hidp_process_transmit() 650 static int hidp_setup_input(struct hidp_session *session, hidp_setup_input() argument 660 session->input = input; hidp_setup_input() 662 input_set_drvdata(input, session); hidp_setup_input() 697 input->dev.parent = &session->conn->hcon->dev; hidp_setup_input() 715 struct hidp_session *session = hid->driver_data; hidp_parse() local 717 return hid_parse_report(session->hid, session->rd_data, hidp_parse() 718 session->rd_size); hidp_parse() 728 struct hidp_session *session = hid->driver_data; hidp_stop() local 730 skb_queue_purge(&session->ctrl_transmit); hidp_stop() 731 skb_queue_purge(&session->intr_transmit); hidp_stop() 748 static int hidp_setup_hid(struct hidp_session *session, hidp_setup_hid() argument 754 session->rd_data = memdup_user(req->rd_data, req->rd_size); hidp_setup_hid() 755 if (IS_ERR(session->rd_data)) hidp_setup_hid() 756 return PTR_ERR(session->rd_data); hidp_setup_hid() 758 session->rd_size = req->rd_size; hidp_setup_hid() 766 session->hid = hid; hidp_setup_hid() 768 hid->driver_data = session; hidp_setup_hid() 779 &l2cap_pi(session->ctrl_sock->sk)->chan->src); hidp_setup_hid() 785 &l2cap_pi(session->ctrl_sock->sk)->chan->dst); hidp_setup_hid() 787 hid->dev.parent = &session->conn->hcon->dev; hidp_setup_hid() 792 hid_destroy_device(session->hid); hidp_setup_hid() 793 session->hid = NULL; hidp_setup_hid() 800 kfree(session->rd_data); hidp_setup_hid() 801 session->rd_data = NULL; hidp_setup_hid() 806 /* initialize session devices */ hidp_session_dev_init() 807 static int hidp_session_dev_init(struct hidp_session *session, hidp_session_dev_init() argument 813 ret = hidp_setup_hid(session, req); hidp_session_dev_init() 818 if (!session->hid) { hidp_session_dev_init() 819 ret = hidp_setup_input(session, req); hidp_session_dev_init() 827 /* destroy session devices */ hidp_session_dev_destroy() 828 static void hidp_session_dev_destroy(struct hidp_session *session) hidp_session_dev_destroy() argument 830 if (session->hid) hidp_session_dev_destroy() 831 put_device(&session->hid->dev); hidp_session_dev_destroy() 832 else if (session->input) hidp_session_dev_destroy() 833 input_put_device(session->input); hidp_session_dev_destroy() 835 kfree(session->rd_data); hidp_session_dev_destroy() 836 session->rd_data = NULL; hidp_session_dev_destroy() 840 static int hidp_session_dev_add(struct hidp_session *session) hidp_session_dev_add() argument 849 if (session->hid) { hidp_session_dev_add() 850 ret = hid_add_device(session->hid); hidp_session_dev_add() 853 get_device(&session->hid->dev); hidp_session_dev_add() 854 } else if (session->input) { hidp_session_dev_add() 855 ret = input_register_device(session->input); hidp_session_dev_add() 858 input_get_device(session->input); hidp_session_dev_add() 865 static void hidp_session_dev_del(struct hidp_session *session) hidp_session_dev_del() argument 867 if (session->hid) hidp_session_dev_del() 868 hid_destroy_device(session->hid); hidp_session_dev_del() 869 else if (session->input) hidp_session_dev_del() 870 input_unregister_device(session->input); hidp_session_dev_del() 879 * successfully. This will then add the devices and increase session state 880 * on success, otherwise it will terminate the session thread. 884 struct hidp_session *session = container_of(work, hidp_session_dev_work() local 889 ret = hidp_session_dev_add(session); hidp_session_dev_work() 891 atomic_inc(&session->state); hidp_session_dev_work() 893 hidp_session_terminate(session); hidp_session_dev_work() 897 * Create new session object 898 * Allocate session object, initialize static fields, copy input data into the 900 * This returns 0 on success and puts a pointer to the new session object in 902 * The new session object has an initial ref-count of 1. 910 struct hidp_session *session; hidp_session_new() local 917 session = kzalloc(sizeof(*session), GFP_KERNEL); hidp_session_new() 918 if (!session) hidp_session_new() 922 kref_init(&session->ref); hidp_session_new() 923 atomic_set(&session->state, HIDP_SESSION_IDLING); hidp_session_new() 924 init_waitqueue_head(&session->state_queue); hidp_session_new() 925 session->flags = req->flags & BIT(HIDP_BLUETOOTH_VENDOR_ID); hidp_session_new() 928 bacpy(&session->bdaddr, bdaddr); hidp_session_new() 929 session->conn = l2cap_conn_get(conn); hidp_session_new() 930 session->user.probe = hidp_session_probe; hidp_session_new() 931 session->user.remove = hidp_session_remove; hidp_session_new() 932 session->ctrl_sock = ctrl_sock; hidp_session_new() 933 session->intr_sock = intr_sock; hidp_session_new() 934 skb_queue_head_init(&session->ctrl_transmit); hidp_session_new() 935 skb_queue_head_init(&session->intr_transmit); hidp_session_new() 936 session->ctrl_mtu = min_t(uint, l2cap_pi(ctrl)->chan->omtu, hidp_session_new() 938 session->intr_mtu = min_t(uint, l2cap_pi(intr)->chan->omtu, hidp_session_new() 940 session->idle_to = req->idle_to; hidp_session_new() 943 INIT_WORK(&session->dev_init, hidp_session_dev_work); hidp_session_new() 944 setup_timer(&session->timer, hidp_idle_timeout, hidp_session_new() 945 (unsigned long)session); hidp_session_new() 947 /* session data */ hidp_session_new() 948 mutex_init(&session->report_mutex); hidp_session_new() 949 init_waitqueue_head(&session->report_queue); hidp_session_new() 951 ret = hidp_session_dev_init(session, req); hidp_session_new() 955 get_file(session->intr_sock->file); hidp_session_new() 956 get_file(session->ctrl_sock->file); hidp_session_new() 957 *out = session; hidp_session_new() 961 l2cap_conn_put(session->conn); hidp_session_new() 962 kfree(session); hidp_session_new() 966 /* increase ref-count of the given session by one */ hidp_session_get() 967 static void hidp_session_get(struct hidp_session *session) hidp_session_get() argument 969 kref_get(&session->ref); hidp_session_get() 975 struct hidp_session *session = container_of(ref, struct hidp_session, session_free() local 978 hidp_session_dev_destroy(session); session_free() 979 skb_queue_purge(&session->ctrl_transmit); session_free() 980 skb_queue_purge(&session->intr_transmit); session_free() 981 fput(session->intr_sock->file); session_free() 982 fput(session->ctrl_sock->file); session_free() 983 l2cap_conn_put(session->conn); session_free() 984 kfree(session); session_free() 987 /* decrease ref-count of the given session by one */ hidp_session_put() 988 static void hidp_session_put(struct hidp_session *session) hidp_session_put() argument 990 kref_put(&session->ref, session_free); hidp_session_put() 994 * Search the list of active sessions for a session with target address 996 * you do not release this lock, the session objects cannot vanish and you can 997 * safely take a reference to the session yourself. 1001 struct hidp_session *session; __hidp_session_find() local 1003 list_for_each_entry(session, &hidp_session_list, list) { __hidp_session_find() 1004 if (!bacmp(bdaddr, &session->bdaddr)) __hidp_session_find() 1005 return session; __hidp_session_find() 1013 * reference of the returned session (if non-NULL) so you must drop this 1018 struct hidp_session *session; hidp_session_find() local 1022 session = __hidp_session_find(bdaddr); hidp_session_find() 1023 if (session) hidp_session_find() 1024 hidp_session_get(session); hidp_session_find() 1028 return session; hidp_session_find() 1032 * Start session synchronously 1033 * This starts a session thread and waits until initialization 1035 * If this returns 0 the session thread is up and running. You must call 1038 static int hidp_session_start_sync(struct hidp_session *session) hidp_session_start_sync() argument 1042 if (session->hid) { hidp_session_start_sync() 1043 vendor = session->hid->vendor; hidp_session_start_sync() 1044 product = session->hid->product; hidp_session_start_sync() 1045 } else if (session->input) { hidp_session_start_sync() 1046 vendor = session->input->id.vendor; hidp_session_start_sync() 1047 product = session->input->id.product; hidp_session_start_sync() 1053 session->task = kthread_run(hidp_session_thread, session, hidp_session_start_sync() 1055 if (IS_ERR(session->task)) hidp_session_start_sync() 1056 return PTR_ERR(session->task); hidp_session_start_sync() 1058 while (atomic_read(&session->state) <= HIDP_SESSION_IDLING) hidp_session_start_sync() 1059 wait_event(session->state_queue, hidp_session_start_sync() 1060 atomic_read(&session->state) > HIDP_SESSION_IDLING); hidp_session_start_sync() 1066 * Terminate session thread 1067 * Wake up session thread and notify it to stop. This is asynchronous and 1069 * the session to stop. 1072 static void hidp_session_terminate(struct hidp_session *session) hidp_session_terminate() argument 1074 atomic_inc(&session->terminate); hidp_session_terminate() 1075 wake_up_process(session->task); hidp_session_terminate() 1079 * Probe HIDP session 1081 * to the hci-connection. We get the session via the \user object and can now 1082 * start the session thread, link it into the global session list and 1084 * The global session-list owns its own reference to the session object so you 1090 struct hidp_session *session = container_of(user, hidp_session_probe() local 1098 /* check that no other session for this device exists */ hidp_session_probe() 1099 s = __hidp_session_find(&session->bdaddr); hidp_session_probe() 1105 if (session->input) { hidp_session_probe() 1106 ret = hidp_session_dev_add(session); hidp_session_probe() 1111 ret = hidp_session_start_sync(session); hidp_session_probe() 1116 if (session->input) hidp_session_probe() 1117 atomic_inc(&session->state); hidp_session_probe() 1119 schedule_work(&session->dev_init); hidp_session_probe() 1121 hidp_session_get(session); hidp_session_probe() 1122 list_add(&session->list, &hidp_session_list); hidp_session_probe() 1127 if (session->input) hidp_session_probe() 1128 hidp_session_dev_del(session); hidp_session_probe() 1135 * Remove HIDP session 1138 * We signal the hidp-session thread to shut down, unregister the HID/input 1139 * devices and unlink the session from the global list. 1140 * This drops the reference to the session that is owned by the global 1141 * session-list. 1142 * Note: We _must_ not synchronosly wait for the session-thread to shut down. 1143 * This is, because the session-thread might be waiting for an HCI lock that is 1145 * notify the session-thread to terminate. The thread itself owns a reference 1146 * to the session object so it can safely shut down. 1151 struct hidp_session *session = container_of(user, hidp_session_remove() local 1157 hidp_session_terminate(session); hidp_session_remove() 1159 cancel_work_sync(&session->dev_init); hidp_session_remove() 1160 if (session->input || hidp_session_remove() 1161 atomic_read(&session->state) > HIDP_SESSION_PREPARING) hidp_session_remove() 1162 hidp_session_dev_del(session); hidp_session_remove() 1164 list_del(&session->list); hidp_session_remove() 1168 hidp_session_put(session); hidp_session_remove() 1177 static void hidp_session_run(struct hidp_session *session) hidp_session_run() argument 1179 struct sock *ctrl_sk = session->ctrl_sock->sk; hidp_session_run() 1180 struct sock *intr_sk = session->intr_sock->sk; hidp_session_run() 1187 * session->terminate flag and wakes this thread up. hidp_session_run() 1196 if (atomic_read(&session->terminate)) hidp_session_run() 1207 hidp_recv_intr_frame(session, skb); hidp_session_run() 1213 hidp_process_transmit(session, &session->intr_transmit, hidp_session_run() 1214 session->intr_sock); hidp_session_run() 1220 hidp_recv_ctrl_frame(session, skb); hidp_session_run() 1226 hidp_process_transmit(session, &session->ctrl_transmit, hidp_session_run() 1227 session->ctrl_sock); hidp_session_run() 1232 atomic_inc(&session->terminate); hidp_session_run() 1237 * HIDP session thread 1238 * This thread runs the I/O for a single HIDP session. Startup is synchronous 1245 struct hidp_session *session = arg; hidp_session_thread() local 1248 BT_DBG("session %p", session); hidp_session_thread() 1251 hidp_session_get(session); hidp_session_thread() 1254 hidp_set_timer(session); hidp_session_thread() 1258 add_wait_queue(sk_sleep(session->ctrl_sock->sk), &ctrl_wait); hidp_session_thread() 1259 add_wait_queue(sk_sleep(session->intr_sock->sk), &intr_wait); hidp_session_thread() 1265 atomic_inc(&session->state); hidp_session_thread() 1266 wake_up(&session->state_queue); hidp_session_thread() 1268 /* run session */ hidp_session_thread() 1269 hidp_session_run(session); hidp_session_thread() 1272 remove_wait_queue(sk_sleep(session->intr_sock->sk), &intr_wait); hidp_session_thread() 1273 remove_wait_queue(sk_sleep(session->intr_sock->sk), &ctrl_wait); hidp_session_thread() 1274 wake_up_interruptible(&session->report_queue); hidp_session_thread() 1275 hidp_del_timer(session); hidp_session_thread() 1279 * unregister our own session here to avoid having it linger until the hidp_session_thread() 1283 * delete the session. hidp_session_thread() 1285 l2cap_unregister_user(session->conn, &session->user); hidp_session_thread() 1286 hidp_session_put(session); hidp_session_thread() 1297 struct hidp_session *session; hidp_verify_sockets() local 1316 /* early session check, we check again during session registration */ hidp_verify_sockets() 1317 session = hidp_session_find(&ctrl_chan->dst); hidp_verify_sockets() 1318 if (session) { hidp_verify_sockets() 1319 hidp_session_put(session); hidp_verify_sockets() 1332 struct hidp_session *session; hidp_connection_add() local 1354 ret = hidp_session_new(&session, &chan->dst, ctrl_sock, hidp_connection_add() 1359 ret = l2cap_register_user(conn, &session->user); hidp_connection_add() 1366 hidp_session_put(session); hidp_connection_add() 1375 struct hidp_session *session; hidp_connection_del() local 1380 session = hidp_session_find(&req->bdaddr); hidp_connection_del() 1381 if (!session) hidp_connection_del() 1385 hidp_send_ctrl_message(session, hidp_connection_del() 1390 l2cap_unregister_user(session->conn, &session->user); hidp_connection_del() 1392 hidp_session_put(session); hidp_connection_del() 1399 struct hidp_session *session; hidp_get_connlist() local 1406 list_for_each_entry(session, &hidp_session_list, list) { hidp_get_connlist() 1409 hidp_copy_session(session, &ci); hidp_get_connlist() 1429 struct hidp_session *session; hidp_get_conninfo() local 1431 session = hidp_session_find(&ci->bdaddr); hidp_get_conninfo() 1432 if (session) { hidp_get_conninfo() 1433 hidp_copy_session(session, ci); hidp_get_conninfo() 1434 hidp_session_put(session); hidp_get_conninfo() 1437 return session ? 0 : -ENOENT; hidp_get_conninfo()
|
H A D | hidp.h | 136 /* HIDP session defines */ 170 /* session data */
|
/linux-4.1.27/net/bluetooth/cmtp/ |
H A D | core.c | 55 struct cmtp_session *session; __cmtp_get_session() local 59 list_for_each_entry(session, &cmtp_session_list, list) __cmtp_get_session() 60 if (!bacmp(bdaddr, &session->bdaddr)) __cmtp_get_session() 61 return session; __cmtp_get_session() 66 static void __cmtp_link_session(struct cmtp_session *session) __cmtp_link_session() argument 68 list_add(&session->list, &cmtp_session_list); __cmtp_link_session() 71 static void __cmtp_unlink_session(struct cmtp_session *session) __cmtp_unlink_session() argument 73 list_del(&session->list); __cmtp_unlink_session() 76 static void __cmtp_copy_session(struct cmtp_session *session, struct cmtp_conninfo *ci) __cmtp_copy_session() argument 80 bacpy(&ci->bdaddr, &session->bdaddr); __cmtp_copy_session() 82 ci->flags = session->flags & valid_flags; __cmtp_copy_session() 83 ci->state = session->state; __cmtp_copy_session() 85 ci->num = session->num; __cmtp_copy_session() 89 static inline int cmtp_alloc_block_id(struct cmtp_session *session) cmtp_alloc_block_id() argument 94 if (!test_and_set_bit(i, &session->blockids)) { cmtp_alloc_block_id() 102 static inline void cmtp_free_block_id(struct cmtp_session *session, int id) cmtp_free_block_id() argument 104 clear_bit(id, &session->blockids); cmtp_free_block_id() 107 static inline void cmtp_add_msgpart(struct cmtp_session *session, int id, const unsigned char *buf, int count) cmtp_add_msgpart() argument 109 struct sk_buff *skb = session->reassembly[id], *nskb; cmtp_add_msgpart() 112 BT_DBG("session %p buf %p count %d", session, buf, count); cmtp_add_msgpart() 127 session->reassembly[id] = nskb; cmtp_add_msgpart() 132 static inline int cmtp_recv_frame(struct cmtp_session *session, struct sk_buff *skb) cmtp_recv_frame() argument 137 BT_DBG("session %p skb %p len %d", session, skb, skb->len); cmtp_recv_frame() 173 cmtp_add_msgpart(session, id, skb->data + hdrlen, len); cmtp_recv_frame() 174 cmtp_recv_capimsg(session, session->reassembly[id]); cmtp_recv_frame() 175 session->reassembly[id] = NULL; cmtp_recv_frame() 178 cmtp_add_msgpart(session, id, skb->data + hdrlen, len); cmtp_recv_frame() 181 if (session->reassembly[id] != NULL) cmtp_recv_frame() 182 kfree_skb(session->reassembly[id]); cmtp_recv_frame() 183 session->reassembly[id] = NULL; cmtp_recv_frame() 194 static int cmtp_send_frame(struct cmtp_session *session, unsigned char *data, int len) cmtp_send_frame() argument 196 struct socket *sock = session->sock; cmtp_send_frame() 200 BT_DBG("session %p data %p len %d", session, data, len); cmtp_send_frame() 210 static void cmtp_process_transmit(struct cmtp_session *session) cmtp_process_transmit() argument 216 BT_DBG("session %p", session); cmtp_process_transmit() 218 nskb = alloc_skb(session->mtu, GFP_ATOMIC); cmtp_process_transmit() 224 while ((skb = skb_dequeue(&session->transmit))) { cmtp_process_transmit() 227 tail = session->mtu - nskb->len; cmtp_process_transmit() 229 cmtp_send_frame(session, nskb->data, nskb->len); cmtp_process_transmit() 231 tail = session->mtu; cmtp_process_transmit() 237 scb->id = cmtp_alloc_block_id(session); cmtp_process_transmit() 239 skb_queue_head(&session->transmit, skb); cmtp_process_transmit() 263 skb_queue_head(&session->transmit, skb); cmtp_process_transmit() 265 cmtp_free_block_id(session, scb->id); cmtp_process_transmit() 267 cmtp_send_frame(session, nskb->data, nskb->len); cmtp_process_transmit() 274 cmtp_send_frame(session, nskb->data, nskb->len); cmtp_process_transmit() 281 struct cmtp_session *session = arg; cmtp_session() local 282 struct sock *sk = session->sock->sk; cmtp_session() 286 BT_DBG("session %p", session); cmtp_session() 295 if (atomic_read(&session->terminate)) cmtp_session() 303 cmtp_recv_frame(session, skb); cmtp_session() 308 cmtp_process_transmit(session); cmtp_session() 317 if (!(session->flags & BIT(CMTP_LOOPBACK))) cmtp_session() 318 cmtp_detach_device(session); cmtp_session() 320 fput(session->sock->file); cmtp_session() 322 __cmtp_unlink_session(session); cmtp_session() 326 kfree(session); cmtp_session() 334 struct cmtp_session *session, *s; cmtp_add_connection() local 345 session = kzalloc(sizeof(struct cmtp_session), GFP_KERNEL); cmtp_add_connection() 346 if (!session) cmtp_add_connection() 357 bacpy(&session->bdaddr, &l2cap_pi(sock->sk)->chan->dst); cmtp_add_connection() 359 session->mtu = min_t(uint, l2cap_pi(sock->sk)->chan->omtu, cmtp_add_connection() 362 BT_DBG("mtu %d", session->mtu); cmtp_add_connection() 364 sprintf(session->name, "%pMR", &session->bdaddr); cmtp_add_connection() 366 session->sock = sock; cmtp_add_connection() 367 session->state = BT_CONFIG; cmtp_add_connection() 369 init_waitqueue_head(&session->wait); cmtp_add_connection() 371 session->msgnum = CMTP_INITIAL_MSGNUM; cmtp_add_connection() 373 INIT_LIST_HEAD(&session->applications); cmtp_add_connection() 375 skb_queue_head_init(&session->transmit); cmtp_add_connection() 378 session->reassembly[i] = NULL; cmtp_add_connection() 380 session->flags = req->flags; cmtp_add_connection() 382 __cmtp_link_session(session); cmtp_add_connection() 385 session->task = kthread_run(cmtp_session, session, "kcmtpd_ctr_%d", cmtp_add_connection() 386 session->num); cmtp_add_connection() 387 if (IS_ERR(session->task)) { cmtp_add_connection() 389 err = PTR_ERR(session->task); cmtp_add_connection() 393 if (!(session->flags & BIT(CMTP_LOOPBACK))) { cmtp_add_connection() 394 err = cmtp_attach_device(session); cmtp_add_connection() 396 atomic_inc(&session->terminate); cmtp_add_connection() 397 wake_up_process(session->task); cmtp_add_connection() 407 __cmtp_unlink_session(session); cmtp_add_connection() 411 kfree(session); cmtp_add_connection() 418 struct cmtp_session *session; cmtp_del_connection() local 428 session = __cmtp_get_session(&req->bdaddr); cmtp_del_connection() 429 if (session) { cmtp_del_connection() 431 skb_queue_purge(&session->transmit); cmtp_del_connection() 433 /* Stop session thread */ cmtp_del_connection() 434 atomic_inc(&session->terminate); cmtp_del_connection() 435 wake_up_process(session->task); cmtp_del_connection() 445 struct cmtp_session *session; cmtp_get_connlist() local 452 list_for_each_entry(session, &cmtp_session_list, list) { cmtp_get_connlist() 455 __cmtp_copy_session(session, &ci); cmtp_get_connlist() 475 struct cmtp_session *session; cmtp_get_conninfo() local 480 session = __cmtp_get_session(&ci->bdaddr); cmtp_get_conninfo() 481 if (session) cmtp_get_conninfo() 482 __cmtp_copy_session(session, ci); cmtp_get_conninfo()
|
H A D | capi.c | 73 static struct cmtp_application *cmtp_application_add(struct cmtp_session *session, __u16 appl) cmtp_application_add() argument 77 BT_DBG("session %p application %p appl %d", session, app, appl); cmtp_application_add() 85 list_add_tail(&app->list, &session->applications); cmtp_application_add() 90 static void cmtp_application_del(struct cmtp_session *session, struct cmtp_application *app) cmtp_application_del() argument 92 BT_DBG("session %p application %p", session, app); cmtp_application_del() 100 static struct cmtp_application *cmtp_application_get(struct cmtp_session *session, int pattern, __u16 value) cmtp_application_get() argument 105 list_for_each_safe(p, n, &session->applications) { cmtp_application_get() 126 static int cmtp_msgnum_get(struct cmtp_session *session) cmtp_msgnum_get() argument 128 session->msgnum++; cmtp_msgnum_get() 130 if ((session->msgnum & 0xff) > 200) cmtp_msgnum_get() 131 session->msgnum = CMTP_INITIAL_MSGNUM + 1; cmtp_msgnum_get() 133 return session->msgnum; cmtp_msgnum_get() 136 static void cmtp_send_capimsg(struct cmtp_session *session, struct sk_buff *skb) cmtp_send_capimsg() argument 140 BT_DBG("session %p skb %p len %d", session, skb, skb->len); cmtp_send_capimsg() 145 skb_queue_tail(&session->transmit, skb); cmtp_send_capimsg() 147 wake_up_interruptible(sk_sleep(session->sock->sk)); cmtp_send_capimsg() 150 static void cmtp_send_interopmsg(struct cmtp_session *session, cmtp_send_interopmsg() argument 157 BT_DBG("session %p subcmd 0x%02x appl %d msgnum %d", session, subcmd, appl, msgnum); cmtp_send_interopmsg() 183 cmtp_send_capimsg(session, skb); cmtp_send_interopmsg() 186 static void cmtp_recv_interopmsg(struct cmtp_session *session, struct sk_buff *skb) cmtp_recv_interopmsg() argument 188 struct capi_ctr *ctrl = &session->ctrl; cmtp_recv_interopmsg() 193 BT_DBG("session %p skb %p len %d", session, skb, skb->len); cmtp_recv_interopmsg() 207 application = cmtp_application_get(session, CMTP_MSGNUM, msgnum); cmtp_recv_interopmsg() 212 wake_up_interruptible(&session->wait); cmtp_recv_interopmsg() 220 application = cmtp_application_get(session, CMTP_MAPPING, appl); cmtp_recv_interopmsg() 224 wake_up_interruptible(&session->wait); cmtp_recv_interopmsg() 237 session->ncontroller = controller; cmtp_recv_interopmsg() 238 wake_up_interruptible(&session->wait); cmtp_recv_interopmsg() 246 session->state = BT_CONNECTED; cmtp_recv_interopmsg() 309 cmtp_send_interopmsg(session, CAPI_RESP, appl, msgnum, func, cmtp_recv_interopmsg() 319 void cmtp_recv_capimsg(struct cmtp_session *session, struct sk_buff *skb) cmtp_recv_capimsg() argument 321 struct capi_ctr *ctrl = &session->ctrl; cmtp_recv_capimsg() 326 BT_DBG("session %p skb %p len %d", session, skb, skb->len); cmtp_recv_capimsg() 332 cmtp_recv_interopmsg(session, skb); cmtp_recv_capimsg() 336 if (session->flags & BIT(CMTP_LOOPBACK)) { cmtp_recv_capimsg() 344 application = cmtp_application_get(session, CMTP_MAPPING, appl); cmtp_recv_capimsg() 355 contr = (contr & 0xffffff80) | session->num; cmtp_recv_capimsg() 371 struct cmtp_session *session = ctrl->driverdata; cmtp_reset_ctr() local 377 atomic_inc(&session->terminate); cmtp_reset_ctr() 378 wake_up_process(session->task); cmtp_reset_ctr() 384 struct cmtp_session *session = ctrl->driverdata; cmtp_register_appl() local 393 application = cmtp_application_add(session, appl); cmtp_register_appl() 412 application->msgnum = cmtp_msgnum_get(session); cmtp_register_appl() 414 cmtp_send_interopmsg(session, CAPI_REQ, 0x0000, application->msgnum, cmtp_register_appl() 417 add_wait_queue(&session->wait, &wait); cmtp_register_appl() 442 remove_wait_queue(&session->wait, &wait); cmtp_register_appl() 445 cmtp_application_del(session, application); cmtp_register_appl() 452 struct cmtp_session *session = ctrl->driverdata; cmtp_release_appl() local 457 application = cmtp_application_get(session, CMTP_APPLID, appl); cmtp_release_appl() 463 application->msgnum = cmtp_msgnum_get(session); cmtp_release_appl() 465 cmtp_send_interopmsg(session, CAPI_REQ, application->mapping, application->msgnum, cmtp_release_appl() 468 wait_event_interruptible_timeout(session->wait, cmtp_release_appl() 471 cmtp_application_del(session, application); cmtp_release_appl() 476 struct cmtp_session *session = ctrl->driverdata; cmtp_send_message() local 486 application = cmtp_application_get(session, CMTP_APPLID, appl); cmtp_send_message() 494 if ((contr & 0x7f) == session->num) { cmtp_send_message() 499 cmtp_send_capimsg(session, skb); cmtp_send_message() 512 struct cmtp_session *session = ctrl->driverdata; cmtp_proc_show() local 517 seq_printf(m, "addr %s\n", session->name); cmtp_proc_show() 518 seq_printf(m, "ctrl %d\n", session->num); cmtp_proc_show() 520 list_for_each_safe(p, n, &session->applications) { cmtp_proc_show() 541 int cmtp_attach_device(struct cmtp_session *session) cmtp_attach_device() argument 546 BT_DBG("session %p", session); cmtp_attach_device() 550 cmtp_send_interopmsg(session, CAPI_REQ, 0xffff, CMTP_INITIAL_MSGNUM, cmtp_attach_device() 553 ret = wait_event_interruptible_timeout(session->wait, cmtp_attach_device() 554 session->ncontroller, CMTP_INTEROP_TIMEOUT); cmtp_attach_device() 556 BT_INFO("Found %d CAPI controller(s) on device %s", session->ncontroller, session->name); cmtp_attach_device() 561 if (!session->ncontroller) cmtp_attach_device() 564 if (session->ncontroller > 1) cmtp_attach_device() 567 session->ctrl.owner = THIS_MODULE; cmtp_attach_device() 568 session->ctrl.driverdata = session; cmtp_attach_device() 569 strcpy(session->ctrl.name, session->name); cmtp_attach_device() 571 session->ctrl.driver_name = "cmtp"; cmtp_attach_device() 572 session->ctrl.load_firmware = cmtp_load_firmware; cmtp_attach_device() 573 session->ctrl.reset_ctr = cmtp_reset_ctr; cmtp_attach_device() 574 session->ctrl.register_appl = cmtp_register_appl; cmtp_attach_device() 575 session->ctrl.release_appl = cmtp_release_appl; cmtp_attach_device() 576 session->ctrl.send_message = cmtp_send_message; cmtp_attach_device() 578 session->ctrl.procinfo = cmtp_procinfo; cmtp_attach_device() 579 session->ctrl.proc_fops = &cmtp_proc_fops; cmtp_attach_device() 581 if (attach_capi_ctr(&session->ctrl) < 0) { cmtp_attach_device() 586 session->num = session->ctrl.cnr; cmtp_attach_device() 588 BT_DBG("session %p num %d", session, session->num); cmtp_attach_device() 592 cmtp_send_interopmsg(session, CAPI_REQ, 0xffff, cmtp_msgnum_get(session), cmtp_attach_device() 595 cmtp_send_interopmsg(session, CAPI_REQ, 0xffff, cmtp_msgnum_get(session), cmtp_attach_device() 598 cmtp_send_interopmsg(session, CAPI_REQ, 0xffff, cmtp_msgnum_get(session), cmtp_attach_device() 601 cmtp_send_interopmsg(session, CAPI_REQ, 0xffff, cmtp_msgnum_get(session), cmtp_attach_device() 607 void cmtp_detach_device(struct cmtp_session *session) cmtp_detach_device() argument 609 BT_DBG("session %p", session); cmtp_detach_device() 611 detach_capi_ctr(&session->ctrl); cmtp_detach_device()
|
H A D | cmtp.h | 66 /* CMTP session defines */ 120 int cmtp_attach_device(struct cmtp_session *session); 121 void cmtp_detach_device(struct cmtp_session *session); 123 void cmtp_recv_capimsg(struct cmtp_session *session, struct sk_buff *skb);
|
/linux-4.1.27/drivers/s390/char/ |
H A D | vmcp.c | 31 struct vmcp_session *session; vmcp_open() local 36 session = kmalloc(sizeof(*session), GFP_KERNEL); vmcp_open() 37 if (!session) vmcp_open() 40 session->bufsize = PAGE_SIZE; vmcp_open() 41 session->response = NULL; vmcp_open() 42 session->resp_size = 0; vmcp_open() 43 mutex_init(&session->mutex); vmcp_open() 44 file->private_data = session; vmcp_open() 50 struct vmcp_session *session; vmcp_release() local 52 session = file->private_data; vmcp_release() 54 free_pages((unsigned long)session->response, get_order(session->bufsize)); vmcp_release() 55 kfree(session); vmcp_release() 64 struct vmcp_session *session; vmcp_read() local 66 session = file->private_data; vmcp_read() 67 if (mutex_lock_interruptible(&session->mutex)) vmcp_read() 69 if (!session->response) { vmcp_read() 70 mutex_unlock(&session->mutex); vmcp_read() 73 size = min_t(size_t, session->resp_size, session->bufsize); vmcp_read() 75 session->response, size); vmcp_read() 77 mutex_unlock(&session->mutex); vmcp_read() 87 struct vmcp_session *session; vmcp_write() local 99 session = file->private_data; vmcp_write() 100 if (mutex_lock_interruptible(&session->mutex)) { vmcp_write() 104 if (!session->response) vmcp_write() 105 session->response = (char *)__get_free_pages(GFP_KERNEL vmcp_write() 107 get_order(session->bufsize)); vmcp_write() 108 if (!session->response) { vmcp_write() 109 mutex_unlock(&session->mutex); vmcp_write() 114 session->resp_size = cpcmd(cmd, session->response, session->bufsize, vmcp_write() 115 &session->resp_code); vmcp_write() 116 mutex_unlock(&session->mutex); vmcp_write() 137 struct vmcp_session *session; vmcp_ioctl() local 141 session = file->private_data; vmcp_ioctl() 146 if (mutex_lock_interruptible(&session->mutex)) vmcp_ioctl() 150 temp = session->resp_code; vmcp_ioctl() 151 mutex_unlock(&session->mutex); vmcp_ioctl() 154 free_pages((unsigned long)session->response, vmcp_ioctl() 155 get_order(session->bufsize)); vmcp_ioctl() 156 session->response=NULL; vmcp_ioctl() 157 temp = get_user(session->bufsize, argp); vmcp_ioctl() 158 if (get_order(session->bufsize) > 8) { vmcp_ioctl() 159 session->bufsize = PAGE_SIZE; vmcp_ioctl() 162 mutex_unlock(&session->mutex); vmcp_ioctl() 165 temp = session->resp_size; vmcp_ioctl() 166 mutex_unlock(&session->mutex); vmcp_ioctl() 169 mutex_unlock(&session->mutex); vmcp_ioctl()
|
/linux-4.1.27/net/l2tp/ |
H A D | l2tp_debugfs.c | 43 int session_idx; /* index of session within current tunnel */ 45 struct l2tp_session *session; /* NULL means get next tunnel */ member in struct:l2tp_dfs_seq_data 56 pd->session = l2tp_session_find_nth(pd->tunnel, pd->session_idx); l2tp_dfs_next_session() 59 if (pd->session == NULL) { l2tp_dfs_next_session() 82 /* NULL tunnel and session indicates end of list */ l2tp_dfs_seq_start() 83 if ((pd->tunnel == NULL) && (pd->session == NULL)) l2tp_dfs_seq_start() 113 struct l2tp_session *session; l2tp_dfs_seq_tunnel_show() local 115 session = hlist_entry(walk, struct l2tp_session, hlist); l2tp_dfs_seq_tunnel_show() 116 if (session->session_id == 0) l2tp_dfs_seq_tunnel_show() 165 struct l2tp_session *session = v; l2tp_dfs_seq_session_show() local 167 seq_printf(m, " SESSION %u, peer %u, %s\n", session->session_id, l2tp_dfs_seq_session_show() 168 session->peer_session_id, l2tp_dfs_seq_session_show() 169 session->pwtype == L2TP_PWTYPE_ETH ? "ETH" : l2tp_dfs_seq_session_show() 170 session->pwtype == L2TP_PWTYPE_PPP ? "PPP" : l2tp_dfs_seq_session_show() 172 if (session->send_seq || session->recv_seq) l2tp_dfs_seq_session_show() 173 seq_printf(m, " nr %hu, ns %hu\n", session->nr, session->ns); l2tp_dfs_seq_session_show() 174 seq_printf(m, " refcnt %d\n", atomic_read(&session->ref_count)); l2tp_dfs_seq_session_show() 176 session->mtu, session->mru, l2tp_dfs_seq_session_show() 177 session->recv_seq ? 'R' : '-', l2tp_dfs_seq_session_show() 178 session->send_seq ? 'S' : '-', l2tp_dfs_seq_session_show() 179 session->data_seq == 1 ? "IPSEQ" : l2tp_dfs_seq_session_show() 180 session->data_seq == 2 ? "DATASEQ" : "-", l2tp_dfs_seq_session_show() 181 session->lns_mode ? "LNS" : "LAC", l2tp_dfs_seq_session_show() 182 session->debug, l2tp_dfs_seq_session_show() 183 jiffies_to_msecs(session->reorder_timeout)); l2tp_dfs_seq_session_show() 185 session->offset, session->l2specific_type, session->l2specific_len); l2tp_dfs_seq_session_show() 186 if (session->cookie_len) { l2tp_dfs_seq_session_show() 188 session->cookie[0], session->cookie[1], l2tp_dfs_seq_session_show() 189 session->cookie[2], session->cookie[3]); l2tp_dfs_seq_session_show() 190 if (session->cookie_len == 8) l2tp_dfs_seq_session_show() 192 session->cookie[4], session->cookie[5], l2tp_dfs_seq_session_show() 193 session->cookie[6], session->cookie[7]); l2tp_dfs_seq_session_show() 196 if (session->peer_cookie_len) { l2tp_dfs_seq_session_show() 198 session->peer_cookie[0], session->peer_cookie[1], l2tp_dfs_seq_session_show() 199 session->peer_cookie[2], session->peer_cookie[3]); l2tp_dfs_seq_session_show() 200 if (session->peer_cookie_len == 8) l2tp_dfs_seq_session_show() 202 session->peer_cookie[4], session->peer_cookie[5], l2tp_dfs_seq_session_show() 203 session->peer_cookie[6], session->peer_cookie[7]); l2tp_dfs_seq_session_show() 208 session->nr, session->ns, l2tp_dfs_seq_session_show() 209 atomic_long_read(&session->stats.tx_packets), l2tp_dfs_seq_session_show() 210 atomic_long_read(&session->stats.tx_bytes), l2tp_dfs_seq_session_show() 211 atomic_long_read(&session->stats.tx_errors), l2tp_dfs_seq_session_show() 212 atomic_long_read(&session->stats.rx_packets), l2tp_dfs_seq_session_show() 213 atomic_long_read(&session->stats.rx_bytes), l2tp_dfs_seq_session_show() 214 atomic_long_read(&session->stats.rx_errors)); l2tp_dfs_seq_session_show() 216 if (session->show != NULL) l2tp_dfs_seq_session_show() 217 session->show(m, session); l2tp_dfs_seq_session_show() 228 seq_puts(m, " sessions session-count, refcnt refcnt/sk->refcnt\n"); l2tp_dfs_seq_show() 240 /* Show the tunnel or session context */ l2tp_dfs_seq_show() 241 if (pd->session == NULL) l2tp_dfs_seq_show() 244 l2tp_dfs_seq_session_show(m, pd->session); l2tp_dfs_seq_show()
|
H A D | l2tp_core.c | 130 /* Tunnel reference counts. Incremented per session that is added to 220 /* Lookup a session by id in the global session list 227 struct l2tp_session *session; l2tp_session_find_2() local 230 hlist_for_each_entry_rcu(session, session_list, global_hlist) { hlist_for_each_entry_rcu() 231 if (session->session_id == session_id) { hlist_for_each_entry_rcu() 233 return session; hlist_for_each_entry_rcu() 253 /* Lookup a session by id 258 struct l2tp_session *session; l2tp_session_find() local 269 hlist_for_each_entry(session, session_list, hlist) { hlist_for_each_entry() 270 if (session->session_id == session_id) { hlist_for_each_entry() 272 return session; hlist_for_each_entry() 284 struct l2tp_session *session; l2tp_session_find_nth() local 289 hlist_for_each_entry(session, &tunnel->session_hlist[hash], hlist) { l2tp_session_find_nth() 292 return session; l2tp_session_find_nth() 303 /* Lookup a session by interface name. 310 struct l2tp_session *session; l2tp_session_find_by_ifname() local 314 hlist_for_each_entry_rcu(session, &pn->l2tp_session_hlist[hash], global_hlist) { l2tp_session_find_by_ifname() 315 if (!strcmp(session->ifname, ifname)) { l2tp_session_find_by_ifname() 317 return session; l2tp_session_find_by_ifname() 375 static void l2tp_recv_queue_skb(struct l2tp_session *session, struct sk_buff *skb) l2tp_recv_queue_skb() argument 381 spin_lock_bh(&session->reorder_q.lock); l2tp_recv_queue_skb() 382 skb_queue_walk_safe(&session->reorder_q, skbp, tmp) { l2tp_recv_queue_skb() 384 __skb_queue_before(&session->reorder_q, skbp, skb); l2tp_recv_queue_skb() 385 l2tp_dbg(session, L2TP_MSG_SEQ, l2tp_recv_queue_skb() 387 session->name, ns, L2TP_SKB_CB(skbp)->ns, l2tp_recv_queue_skb() 388 skb_queue_len(&session->reorder_q)); l2tp_recv_queue_skb() 389 atomic_long_inc(&session->stats.rx_oos_packets); l2tp_recv_queue_skb() 394 __skb_queue_tail(&session->reorder_q, skb); l2tp_recv_queue_skb() 397 spin_unlock_bh(&session->reorder_q.lock); l2tp_recv_queue_skb() 402 static void l2tp_recv_dequeue_skb(struct l2tp_session *session, struct sk_buff *skb) l2tp_recv_dequeue_skb() argument 404 struct l2tp_tunnel *tunnel = session->tunnel; l2tp_recv_dequeue_skb() 414 atomic_long_inc(&session->stats.rx_packets); l2tp_recv_dequeue_skb() 415 atomic_long_add(length, &session->stats.rx_bytes); l2tp_recv_dequeue_skb() 419 session->nr++; l2tp_recv_dequeue_skb() 420 session->nr &= session->nr_max; l2tp_recv_dequeue_skb() 422 l2tp_dbg(session, L2TP_MSG_SEQ, "%s: updated nr to %hu\n", l2tp_recv_dequeue_skb() 423 session->name, session->nr); l2tp_recv_dequeue_skb() 427 if (session->recv_skb != NULL) l2tp_recv_dequeue_skb() 428 (*session->recv_skb)(session, skb, L2TP_SKB_CB(skb)->length); l2tp_recv_dequeue_skb() 432 if (session->deref) l2tp_recv_dequeue_skb() 433 (*session->deref)(session); l2tp_recv_dequeue_skb() 436 /* Dequeue skbs from the session's reorder_q, subject to packet order. 439 static void l2tp_recv_dequeue(struct l2tp_session *session) l2tp_recv_dequeue() argument 449 spin_lock_bh(&session->reorder_q.lock); l2tp_recv_dequeue() 450 skb_queue_walk_safe(&session->reorder_q, skb, tmp) { l2tp_recv_dequeue() 452 atomic_long_inc(&session->stats.rx_seq_discards); l2tp_recv_dequeue() 453 atomic_long_inc(&session->stats.rx_errors); l2tp_recv_dequeue() 454 l2tp_dbg(session, L2TP_MSG_SEQ, l2tp_recv_dequeue() 456 session->name, L2TP_SKB_CB(skb)->ns, l2tp_recv_dequeue() 457 L2TP_SKB_CB(skb)->length, session->nr, l2tp_recv_dequeue() 458 skb_queue_len(&session->reorder_q)); l2tp_recv_dequeue() 459 session->reorder_skip = 1; l2tp_recv_dequeue() 460 __skb_unlink(skb, &session->reorder_q); l2tp_recv_dequeue() 462 if (session->deref) l2tp_recv_dequeue() 463 (*session->deref)(session); l2tp_recv_dequeue() 468 if (session->reorder_skip) { l2tp_recv_dequeue() 469 l2tp_dbg(session, L2TP_MSG_SEQ, l2tp_recv_dequeue() 471 session->name, session->nr, l2tp_recv_dequeue() 473 session->reorder_skip = 0; l2tp_recv_dequeue() 474 session->nr = L2TP_SKB_CB(skb)->ns; l2tp_recv_dequeue() 476 if (L2TP_SKB_CB(skb)->ns != session->nr) { l2tp_recv_dequeue() 477 l2tp_dbg(session, L2TP_MSG_SEQ, l2tp_recv_dequeue() 479 session->name, L2TP_SKB_CB(skb)->ns, l2tp_recv_dequeue() 480 L2TP_SKB_CB(skb)->length, session->nr, l2tp_recv_dequeue() 481 skb_queue_len(&session->reorder_q)); l2tp_recv_dequeue() 485 __skb_unlink(skb, &session->reorder_q); l2tp_recv_dequeue() 490 spin_unlock_bh(&session->reorder_q.lock); l2tp_recv_dequeue() 491 l2tp_recv_dequeue_skb(session, skb); l2tp_recv_dequeue() 496 spin_unlock_bh(&session->reorder_q.lock); l2tp_recv_dequeue() 499 static int l2tp_seq_check_rx_window(struct l2tp_session *session, u32 nr) l2tp_seq_check_rx_window() argument 503 if (nr >= session->nr) l2tp_seq_check_rx_window() 504 nws = nr - session->nr; l2tp_seq_check_rx_window() 506 nws = (session->nr_max + 1) - (session->nr - nr); l2tp_seq_check_rx_window() 508 return nws < session->nr_window_size; l2tp_seq_check_rx_window() 514 static int l2tp_recv_data_seq(struct l2tp_session *session, struct sk_buff *skb) l2tp_recv_data_seq() argument 516 if (!l2tp_seq_check_rx_window(session, L2TP_SKB_CB(skb)->ns)) { l2tp_recv_data_seq() 520 l2tp_dbg(session, L2TP_MSG_SEQ, l2tp_recv_data_seq() 522 session->name, L2TP_SKB_CB(skb)->ns, l2tp_recv_data_seq() 523 L2TP_SKB_CB(skb)->length, session->nr); l2tp_recv_data_seq() 527 if (session->reorder_timeout != 0) { l2tp_recv_data_seq() 528 /* Packet reordering enabled. Add skb to session's l2tp_recv_data_seq() 531 l2tp_recv_queue_skb(session, skb); l2tp_recv_data_seq() 540 if (L2TP_SKB_CB(skb)->ns == session->nr) { l2tp_recv_data_seq() 541 skb_queue_tail(&session->reorder_q, skb); l2tp_recv_data_seq() 544 u32 nr_next = (session->nr_oos + 1) & session->nr_max; l2tp_recv_data_seq() 547 session->nr_oos_count++; l2tp_recv_data_seq() 549 session->nr_oos_count = 0; l2tp_recv_data_seq() 551 session->nr_oos = nr_oos; l2tp_recv_data_seq() 552 if (session->nr_oos_count > session->nr_oos_count_max) { l2tp_recv_data_seq() 553 session->reorder_skip = 1; l2tp_recv_data_seq() 554 l2tp_dbg(session, L2TP_MSG_SEQ, l2tp_recv_data_seq() 556 session->name, session->nr_oos_count); l2tp_recv_data_seq() 558 if (!session->reorder_skip) { l2tp_recv_data_seq() 559 atomic_long_inc(&session->stats.rx_seq_discards); l2tp_recv_data_seq() 560 l2tp_dbg(session, L2TP_MSG_SEQ, l2tp_recv_data_seq() 562 session->name, L2TP_SKB_CB(skb)->ns, l2tp_recv_data_seq() 563 L2TP_SKB_CB(skb)->length, session->nr, l2tp_recv_data_seq() 564 skb_queue_len(&session->reorder_q)); l2tp_recv_data_seq() 567 skb_queue_tail(&session->reorder_q, skb); l2tp_recv_data_seq() 628 * the peer when the session is set up. Unlike L2TPv2, we do not need 634 * session-id have already been parsed and ptr points to the data 635 * after the session-id. 637 void l2tp_recv_common(struct l2tp_session *session, struct sk_buff *skb, l2tp_recv_common() argument 641 struct l2tp_tunnel *tunnel = session->tunnel; l2tp_recv_common() 646 * the session. Take care to decrement the refcnt when exiting l2tp_recv_common() 649 l2tp_session_inc_refcount(session); l2tp_recv_common() 650 if (session->ref) l2tp_recv_common() 651 (*session->ref)(session); l2tp_recv_common() 654 if (session->peer_cookie_len > 0) { l2tp_recv_common() 655 if (memcmp(ptr, &session->peer_cookie[0], session->peer_cookie_len)) { l2tp_recv_common() 659 session->session_id); l2tp_recv_common() 660 atomic_long_inc(&session->stats.rx_cookie_discards); l2tp_recv_common() 663 ptr += session->peer_cookie_len; l2tp_recv_common() 686 l2tp_dbg(session, L2TP_MSG_SEQ, l2tp_recv_common() 687 "%s: recv data ns=%u, nr=%u, session nr=%u\n", l2tp_recv_common() 688 session->name, ns, nr, session->nr); l2tp_recv_common() 690 } else if (session->l2specific_type == L2TP_L2SPECTYPE_DEFAULT) { l2tp_recv_common() 700 l2tp_dbg(session, L2TP_MSG_SEQ, l2tp_recv_common() 701 "%s: recv data ns=%u, session nr=%u\n", l2tp_recv_common() 702 session->name, ns, session->nr); l2tp_recv_common() 707 ptr += session->l2specific_len; l2tp_recv_common() 714 if ((!session->lns_mode) && (!session->send_seq)) { l2tp_recv_common() 715 l2tp_info(session, L2TP_MSG_SEQ, l2tp_recv_common() 717 session->name); l2tp_recv_common() 718 session->send_seq = -1; l2tp_recv_common() 719 l2tp_session_set_header_len(session, tunnel->version); l2tp_recv_common() 725 if (session->recv_seq) { l2tp_recv_common() 726 l2tp_warn(session, L2TP_MSG_SEQ, l2tp_recv_common() 728 session->name); l2tp_recv_common() 729 atomic_long_inc(&session->stats.rx_seq_discards); l2tp_recv_common() 738 if ((!session->lns_mode) && (session->send_seq)) { l2tp_recv_common() 739 l2tp_info(session, L2TP_MSG_SEQ, l2tp_recv_common() 741 session->name); l2tp_recv_common() 742 session->send_seq = 0; l2tp_recv_common() 743 l2tp_session_set_header_len(session, tunnel->version); l2tp_recv_common() 744 } else if (session->send_seq) { l2tp_recv_common() 745 l2tp_warn(session, L2TP_MSG_SEQ, l2tp_recv_common() 747 session->name); l2tp_recv_common() 748 atomic_long_inc(&session->stats.rx_seq_discards); l2tp_recv_common() 756 * in the session setup control protocol. l2tp_recv_common() 765 ptr += session->offset; l2tp_recv_common() 780 /* Prepare skb for adding to the session's reorder_q. Hold l2tp_recv_common() 786 (session->reorder_timeout ? session->reorder_timeout : HZ); l2tp_recv_common() 788 /* Add packet to the session's receive queue. Reordering is done here, if l2tp_recv_common() 792 if (l2tp_recv_data_seq(session, skb)) l2tp_recv_common() 799 skb_queue_tail(&session->reorder_q, skb); l2tp_recv_common() 803 l2tp_recv_dequeue(session); l2tp_recv_common() 805 l2tp_session_dec_refcount(session); l2tp_recv_common() 810 atomic_long_inc(&session->stats.rx_errors); l2tp_recv_common() 813 if (session->deref) l2tp_recv_common() 814 (*session->deref)(session); l2tp_recv_common() 816 l2tp_session_dec_refcount(session); l2tp_recv_common() 820 /* Drop skbs from the session's reorder_q 822 int l2tp_session_queue_purge(struct l2tp_session *session) l2tp_session_queue_purge() argument 825 BUG_ON(!session); l2tp_session_queue_purge() 826 BUG_ON(session->magic != L2TP_SESSION_MAGIC); l2tp_session_queue_purge() 827 while ((skb = skb_dequeue(&session->reorder_q))) { l2tp_session_queue_purge() 828 atomic_long_inc(&session->stats.rx_errors); l2tp_session_queue_purge() 830 if (session->deref) l2tp_session_queue_purge() 831 (*session->deref)(session); l2tp_session_queue_purge() 846 struct l2tp_session *session = NULL; l2tp_udp_recv_core() local 910 /* Extract tunnel and session ID */ l2tp_udp_recv_core() 922 /* Find the session context */ l2tp_udp_recv_core() 923 session = l2tp_session_find(tunnel->l2tp_net, tunnel, session_id); l2tp_udp_recv_core() 924 if (!session || !session->recv_skb) { l2tp_udp_recv_core() 927 "%s: no session found (%u/%u). Passing up.\n", l2tp_udp_recv_core() 932 l2tp_recv_common(session, skb, ptr, optr, hdrflags, length, payload_hook); l2tp_udp_recv_core() 977 /* Build an L2TP header for the session into the buffer provided. 979 static int l2tp_build_l2tpv2_header(struct l2tp_session *session, void *buf) l2tp_build_l2tpv2_header() argument 981 struct l2tp_tunnel *tunnel = session->tunnel; l2tp_build_l2tpv2_header() 986 u32 session_id = session->peer_session_id; l2tp_build_l2tpv2_header() 988 if (session->send_seq) l2tp_build_l2tpv2_header() 995 if (session->send_seq) { l2tp_build_l2tpv2_header() 996 *bufp++ = htons(session->ns); l2tp_build_l2tpv2_header() 998 session->ns++; l2tp_build_l2tpv2_header() 999 session->ns &= 0xffff; l2tp_build_l2tpv2_header() 1000 l2tp_dbg(session, L2TP_MSG_SEQ, "%s: updated ns to %u\n", l2tp_build_l2tpv2_header() 1001 session->name, session->ns); l2tp_build_l2tpv2_header() 1007 static int l2tp_build_l2tpv3_header(struct l2tp_session *session, void *buf) l2tp_build_l2tpv3_header() argument 1009 struct l2tp_tunnel *tunnel = session->tunnel; l2tp_build_l2tpv3_header() 1024 *((__be32 *) bufp) = htonl(session->peer_session_id); l2tp_build_l2tpv3_header() 1026 if (session->cookie_len) { l2tp_build_l2tpv3_header() 1027 memcpy(bufp, &session->cookie[0], session->cookie_len); l2tp_build_l2tpv3_header() 1028 bufp += session->cookie_len; l2tp_build_l2tpv3_header() 1030 if (session->l2specific_len) { l2tp_build_l2tpv3_header() 1031 if (session->l2specific_type == L2TP_L2SPECTYPE_DEFAULT) { l2tp_build_l2tpv3_header() 1033 if (session->send_seq) { l2tp_build_l2tpv3_header() 1034 l2h = 0x40000000 | session->ns; l2tp_build_l2tpv3_header() 1035 session->ns++; l2tp_build_l2tpv3_header() 1036 session->ns &= 0xffffff; l2tp_build_l2tpv3_header() 1037 l2tp_dbg(session, L2TP_MSG_SEQ, l2tp_build_l2tpv3_header() 1039 session->name, session->ns); l2tp_build_l2tpv3_header() 1044 bufp += session->l2specific_len; l2tp_build_l2tpv3_header() 1046 if (session->offset) l2tp_build_l2tpv3_header() 1047 bufp += session->offset; l2tp_build_l2tpv3_header() 1052 static int l2tp_xmit_core(struct l2tp_session *session, struct sk_buff *skb, l2tp_xmit_core() argument 1055 struct l2tp_tunnel *tunnel = session->tunnel; l2tp_xmit_core() 1060 if (session->send_seq) l2tp_xmit_core() 1061 l2tp_dbg(session, L2TP_MSG_DATA, "%s: send %Zd bytes, ns=%u\n", l2tp_xmit_core() 1062 session->name, data_len, session->ns - 1); l2tp_xmit_core() 1064 l2tp_dbg(session, L2TP_MSG_DATA, "%s: send %Zd bytes\n", l2tp_xmit_core() 1065 session->name, data_len); l2tp_xmit_core() 1067 if (session->debug & L2TP_MSG_DATA) { l2tp_xmit_core() 1071 pr_debug("%s: xmit\n", session->name); l2tp_xmit_core() 1089 atomic_long_inc(&session->stats.tx_packets); l2tp_xmit_core() 1090 atomic_long_add(len, &session->stats.tx_bytes); l2tp_xmit_core() 1093 atomic_long_inc(&session->stats.tx_errors); l2tp_xmit_core() 1102 int l2tp_xmit_skb(struct l2tp_session *session, struct sk_buff *skb, int hdr_len) l2tp_xmit_skb() argument 1105 struct l2tp_tunnel *tunnel = session->tunnel; l2tp_xmit_skb() 1127 session->build_header(session, __skb_push(skb, hdr_len)); l2tp_xmit_skb() 1175 l2tp_xmit_core(session, skb, fl, data_len); l2tp_xmit_skb() 1184 * Tinnel and session create/destroy. 1188 * The tunnel context is deleted only when all session sockets have been 1243 struct l2tp_session *session; l2tp_tunnel_closeall() local 1254 session = hlist_entry(walk, struct l2tp_session, hlist); l2tp_tunnel_closeall() 1256 l2tp_info(session, L2TP_MSG_CONTROL, l2tp_tunnel_closeall() 1257 "%s: closing session\n", session->name); l2tp_tunnel_closeall() 1259 hlist_del_init(&session->hlist); l2tp_tunnel_closeall() 1261 if (session->ref != NULL) l2tp_tunnel_closeall() 1262 (*session->ref)(session); l2tp_tunnel_closeall() 1266 __l2tp_session_unhash(session); l2tp_tunnel_closeall() 1267 l2tp_session_queue_purge(session); l2tp_tunnel_closeall() 1269 if (session->session_close != NULL) l2tp_tunnel_closeall() 1270 (*session->session_close)(session); l2tp_tunnel_closeall() 1272 if (session->deref != NULL) l2tp_tunnel_closeall() 1273 (*session->deref)(session); l2tp_tunnel_closeall() 1275 l2tp_session_dec_refcount(session); l2tp_tunnel_closeall() 1280 * chain. We always remove a session from the l2tp_tunnel_closeall() 1654 /* Really kill the session. 1656 void l2tp_session_free(struct l2tp_session *session) l2tp_session_free() argument 1658 struct l2tp_tunnel *tunnel = session->tunnel; l2tp_session_free() 1660 BUG_ON(atomic_read(&session->ref_count) != 0); l2tp_session_free() 1664 if (session->session_id != 0) l2tp_session_free() 1667 session->tunnel = NULL; l2tp_session_free() 1671 kfree(session); l2tp_session_free() 1675 /* Remove an l2tp session from l2tp_core's hash lists. 1680 void __l2tp_session_unhash(struct l2tp_session *session) __l2tp_session_unhash() argument 1682 struct l2tp_tunnel *tunnel = session->tunnel; __l2tp_session_unhash() 1684 /* Remove the session from core hashes */ __l2tp_session_unhash() 1688 hlist_del_init(&session->hlist); __l2tp_session_unhash() 1695 hlist_del_init_rcu(&session->global_hlist); __l2tp_session_unhash() 1706 int l2tp_session_delete(struct l2tp_session *session) l2tp_session_delete() argument 1708 if (session->ref) l2tp_session_delete() 1709 (*session->ref)(session); l2tp_session_delete() 1710 __l2tp_session_unhash(session); l2tp_session_delete() 1711 l2tp_session_queue_purge(session); l2tp_session_delete() 1712 if (session->session_close != NULL) l2tp_session_delete() 1713 (*session->session_close)(session); l2tp_session_delete() 1714 if (session->deref) l2tp_session_delete() 1715 (*session->deref)(session); l2tp_session_delete() 1716 l2tp_session_dec_refcount(session); l2tp_session_delete() 1721 /* We come here whenever a session's send_seq, cookie_len or 1724 void l2tp_session_set_header_len(struct l2tp_session *session, int version) l2tp_session_set_header_len() argument 1727 session->hdr_len = 6; l2tp_session_set_header_len() 1728 if (session->send_seq) l2tp_session_set_header_len() 1729 session->hdr_len += 4; l2tp_session_set_header_len() 1731 session->hdr_len = 4 + session->cookie_len + session->l2specific_len + session->offset; l2tp_session_set_header_len() 1732 if (session->tunnel->encap == L2TP_ENCAPTYPE_UDP) l2tp_session_set_header_len() 1733 session->hdr_len += 4; l2tp_session_set_header_len() 1741 struct l2tp_session *session; l2tp_session_create() local 1743 session = kzalloc(sizeof(struct l2tp_session) + priv_size, GFP_KERNEL); l2tp_session_create() 1744 if (session != NULL) { l2tp_session_create() 1745 session->magic = L2TP_SESSION_MAGIC; l2tp_session_create() 1746 session->tunnel = tunnel; l2tp_session_create() 1748 session->session_id = session_id; l2tp_session_create() 1749 session->peer_session_id = peer_session_id; l2tp_session_create() 1750 session->nr = 0; l2tp_session_create() 1752 session->nr_max = 0xffff; l2tp_session_create() 1754 session->nr_max = 0xffffff; l2tp_session_create() 1755 session->nr_window_size = session->nr_max / 2; l2tp_session_create() 1756 session->nr_oos_count_max = 4; l2tp_session_create() 1759 session->reorder_skip = 1; l2tp_session_create() 1761 sprintf(&session->name[0], "sess %u/%u", l2tp_session_create() 1762 tunnel->tunnel_id, session->session_id); l2tp_session_create() 1764 skb_queue_head_init(&session->reorder_q); l2tp_session_create() 1766 INIT_HLIST_NODE(&session->hlist); l2tp_session_create() 1767 INIT_HLIST_NODE(&session->global_hlist); l2tp_session_create() 1770 session->debug = tunnel->debug; l2tp_session_create() 1773 session->pwtype = cfg->pw_type; l2tp_session_create() 1774 session->debug = cfg->debug; l2tp_session_create() 1775 session->mtu = cfg->mtu; l2tp_session_create() 1776 session->mru = cfg->mru; l2tp_session_create() 1777 session->send_seq = cfg->send_seq; l2tp_session_create() 1778 session->recv_seq = cfg->recv_seq; l2tp_session_create() 1779 session->lns_mode = cfg->lns_mode; l2tp_session_create() 1780 session->reorder_timeout = cfg->reorder_timeout; l2tp_session_create() 1781 session->offset = cfg->offset; l2tp_session_create() 1782 session->l2specific_type = cfg->l2specific_type; l2tp_session_create() 1783 session->l2specific_len = cfg->l2specific_len; l2tp_session_create() 1784 session->cookie_len = cfg->cookie_len; l2tp_session_create() 1785 memcpy(&session->cookie[0], &cfg->cookie[0], cfg->cookie_len); l2tp_session_create() 1786 session->peer_cookie_len = cfg->peer_cookie_len; l2tp_session_create() 1787 memcpy(&session->peer_cookie[0], &cfg->peer_cookie[0], cfg->peer_cookie_len); l2tp_session_create() 1791 session->build_header = l2tp_build_l2tpv2_header; l2tp_session_create() 1793 session->build_header = l2tp_build_l2tpv3_header; l2tp_session_create() 1795 l2tp_session_set_header_len(session, tunnel->version); l2tp_session_create() 1797 /* Bump the reference count. The session context is deleted l2tp_session_create() 1800 l2tp_session_inc_refcount(session); l2tp_session_create() 1806 /* Add session to the tunnel's hash list */ l2tp_session_create() 1808 hlist_add_head(&session->hlist, l2tp_session_create() 1812 /* And to the global session list if L2TPv3 */ l2tp_session_create() 1817 hlist_add_head_rcu(&session->global_hlist, l2tp_session_create() 1822 /* Ignore management session in session count value */ l2tp_session_create() 1823 if (session->session_id != 0) l2tp_session_create() 1827 return session; l2tp_session_create()
|
H A D | l2tp_ppp.c | 24 * To send data in an L2TP session, userspace opens a PPPoL2TP socket and 34 * over an L2TP session:- 119 /* Private data of each session. This data lives at the end of struct 120 * l2tp_session, referenced via session->priv[]. 125 struct sock *sock; /* Pointer to the session 141 /* Helpers to obtain tunnel/session contexts from sockets. 145 struct l2tp_session *session; pppol2tp_sock_to_session() local 151 session = (struct l2tp_session *)(sk->sk_user_data); pppol2tp_sock_to_session() 152 if (session == NULL) { pppol2tp_sock_to_session() 157 BUG_ON(session->magic != L2TP_SESSION_MAGIC); pppol2tp_sock_to_session() 160 return session; pppol2tp_sock_to_session() 219 static void pppol2tp_recv(struct l2tp_session *session, struct sk_buff *skb, int data_len) pppol2tp_recv() argument 221 struct pppol2tp_session *ps = l2tp_session_priv(session); pppol2tp_recv() 225 * queue it on the session socket. pppol2tp_recv() 233 l2tp_dbg(session, PPPOL2TP_MSG_DATA, pppol2tp_recv() 235 session->name, data_len); pppol2tp_recv() 256 l2tp_dbg(session, PPPOL2TP_MSG_DATA, pppol2tp_recv() 258 session->name, data_len); pppol2tp_recv() 261 atomic_long_inc(&session->stats.rx_errors); pppol2tp_recv() 269 l2tp_info(session, PPPOL2TP_MSG_DATA, "%s: no socket\n", session->name); pppol2tp_recv() 273 static void pppol2tp_session_sock_hold(struct l2tp_session *session) pppol2tp_session_sock_hold() argument 275 struct pppol2tp_session *ps = l2tp_session_priv(session); pppol2tp_session_sock_hold() 281 static void pppol2tp_session_sock_put(struct l2tp_session *session) pppol2tp_session_sock_put() argument 283 struct pppol2tp_session *ps = l2tp_session_priv(session); pppol2tp_session_sock_put() 294 * when a user application does a sendmsg() on the session socket. L2TP and 304 struct l2tp_session *session; pppol2tp_sendmsg() local 313 /* Get session and tunnel contexts */ pppol2tp_sendmsg() 315 session = pppol2tp_sock_to_session(sk); pppol2tp_sendmsg() 316 if (session == NULL) pppol2tp_sendmsg() 319 ps = l2tp_session_priv(session); pppol2tp_sendmsg() 329 uhlen + session->hdr_len + pppol2tp_sendmsg() 355 l2tp_xmit_skb(session, skb, session->hdr_len); pppol2tp_sendmsg() 390 struct l2tp_session *session; pppol2tp_xmit() local 398 /* Get session and tunnel contexts from the socket */ pppol2tp_xmit() 399 session = pppol2tp_sock_to_session(sk); pppol2tp_xmit() 400 if (session == NULL) pppol2tp_xmit() 403 ps = l2tp_session_priv(session); pppol2tp_xmit() 415 session->hdr_len + /* L2TP header */ pppol2tp_xmit() 426 l2tp_xmit_skb(session, skb, session->hdr_len); pppol2tp_xmit() 447 /* Called by l2tp_core when a session socket is being closed. 449 static void pppol2tp_session_close(struct l2tp_session *session) pppol2tp_session_close() argument 451 struct pppol2tp_session *ps = l2tp_session_priv(session); pppol2tp_session_close() 455 BUG_ON(session->magic != L2TP_SESSION_MAGIC); pppol2tp_session_close() 459 /* Don't let the session go away before our socket does */ pppol2tp_session_close() 460 l2tp_session_inc_refcount(session); pppol2tp_session_close() 464 /* Really kill the session socket. (Called from sock_put() if 469 struct l2tp_session *session = sk->sk_user_data; pppol2tp_session_destruct() local 470 if (session) { pppol2tp_session_destruct() 472 BUG_ON(session->magic != L2TP_SESSION_MAGIC); pppol2tp_session_destruct() 473 l2tp_session_dec_refcount(session); pppol2tp_session_destruct() 477 /* Called when the PPPoX socket (session) is closed. 482 struct l2tp_session *session; pppol2tp_release() local 500 session = pppol2tp_sock_to_session(sk); pppol2tp_release() 503 if (session != NULL) { pppol2tp_release() 504 __l2tp_session_unhash(session); pppol2tp_release() 505 l2tp_session_queue_purge(session); pppol2tp_release() 513 /* This will delete the session context via pppol2tp_release() 575 struct l2tp_session *session = arg; pppol2tp_show() local 576 struct pppol2tp_session *ps = l2tp_session_priv(session); pppol2tp_show() 594 struct l2tp_session *session = NULL; pppol2tp_connect() local 703 /* Create session if it doesn't already exist. We handle the pppol2tp_connect() 704 * case where a session was previously created by the netlink pppol2tp_connect() 705 * interface by checking that the session doesn't already have pppol2tp_connect() 709 session = l2tp_session_find(sock_net(sk), tunnel, session_id); pppol2tp_connect() 710 if (session == NULL) { pppol2tp_connect() 716 /* Allocate and initialize a new session context. */ pppol2tp_connect() 717 session = l2tp_session_create(sizeof(struct pppol2tp_session), pppol2tp_connect() 720 if (session == NULL) { pppol2tp_connect() 725 ps = l2tp_session_priv(session); pppol2tp_connect() 735 /* Associate session with its PPPoL2TP socket */ pppol2tp_connect() 736 ps = l2tp_session_priv(session); pppol2tp_connect() 741 session->recv_skb = pppol2tp_recv; pppol2tp_connect() 742 session->session_close = pppol2tp_session_close; pppol2tp_connect() 744 session->show = pppol2tp_show; pppol2tp_connect() 750 session->ref = pppol2tp_session_sock_hold; pppol2tp_connect() 751 session->deref = pppol2tp_session_sock_put; pppol2tp_connect() 759 session->mtu = session->mru = pmtu - pppol2tp_connect() 769 if ((session->session_id == 0) && pppol2tp_connect() 770 (session->peer_session_id == 0)) { pppol2tp_connect() 783 po->chan.mtu = session->mtu; pppol2tp_connect() 790 /* This is how we get the session context from the socket. */ pppol2tp_connect() 791 sk->sk_user_data = session; pppol2tp_connect() 793 l2tp_info(session, PPPOL2TP_MSG_CONTROL, "%s: created\n", pppol2tp_connect() 794 session->name); pppol2tp_connect() 810 struct l2tp_session *session; pppol2tp_session_create() local 824 /* Check that this session doesn't already exist */ pppol2tp_session_create() 826 session = l2tp_session_find(net, tunnel, session_id); pppol2tp_session_create() 827 if (session != NULL) pppol2tp_session_create() 836 /* Allocate and initialize a new session context. */ pppol2tp_session_create() 838 session = l2tp_session_create(sizeof(struct pppol2tp_session), pppol2tp_session_create() 841 if (session == NULL) pppol2tp_session_create() 844 ps = l2tp_session_priv(session); pppol2tp_session_create() 847 l2tp_info(session, PPPOL2TP_MSG_CONTROL, "%s: created\n", pppol2tp_session_create() 848 session->name); pppol2tp_session_create() 865 struct l2tp_session *session; pppol2tp_getname() local 878 session = pppol2tp_sock_to_session(sk); pppol2tp_getname() 879 if (session == NULL) pppol2tp_getname() 882 pls = l2tp_session_priv(session); pppol2tp_getname() 900 sp.pppol2tp.s_session = session->session_id; pppol2tp_getname() 901 sp.pppol2tp.d_session = session->peer_session_id; pppol2tp_getname() 919 sp.pppol2tp.s_session = session->session_id; pppol2tp_getname() 920 sp.pppol2tp.d_session = session->peer_session_id; pppol2tp_getname() 938 sp.pppol2tp.s_session = session->session_id; pppol2tp_getname() 939 sp.pppol2tp.d_session = session->peer_session_id; pppol2tp_getname() 956 sp.pppol2tp.s_session = session->session_id; pppol2tp_getname() 957 sp.pppol2tp.d_session = session->peer_session_id; pppol2tp_getname() 1001 static int pppol2tp_session_ioctl(struct l2tp_session *session, pppol2tp_session_ioctl() argument 1008 struct pppol2tp_session *ps = l2tp_session_priv(session); pppol2tp_session_ioctl() 1009 struct l2tp_tunnel *tunnel = session->tunnel; pppol2tp_session_ioctl() 1012 l2tp_dbg(session, PPPOL2TP_MSG_CONTROL, pppol2tp_session_ioctl() 1014 session->name, cmd, arg); pppol2tp_session_ioctl() 1028 ifr.ifr_mtu = session->mtu; pppol2tp_session_ioctl() 1032 l2tp_info(session, PPPOL2TP_MSG_CONTROL, "%s: get mtu=%d\n", pppol2tp_session_ioctl() 1033 session->name, session->mtu); pppol2tp_session_ioctl() 1046 session->mtu = ifr.ifr_mtu; pppol2tp_session_ioctl() 1048 l2tp_info(session, PPPOL2TP_MSG_CONTROL, "%s: set mtu=%d\n", pppol2tp_session_ioctl() 1049 session->name, session->mtu); pppol2tp_session_ioctl() 1059 if (put_user(session->mru, (int __user *) arg)) pppol2tp_session_ioctl() 1062 l2tp_info(session, PPPOL2TP_MSG_CONTROL, "%s: get mru=%d\n", pppol2tp_session_ioctl() 1063 session->name, session->mru); pppol2tp_session_ioctl() 1076 session->mru = val; pppol2tp_session_ioctl() 1077 l2tp_info(session, PPPOL2TP_MSG_CONTROL, "%s: set mru=%d\n", pppol2tp_session_ioctl() 1078 session->name, session->mru); pppol2tp_session_ioctl() 1087 l2tp_info(session, PPPOL2TP_MSG_CONTROL, "%s: get flags=%d\n", pppol2tp_session_ioctl() 1088 session->name, ps->flags); pppol2tp_session_ioctl() 1097 l2tp_info(session, PPPOL2TP_MSG_CONTROL, "%s: set flags=%d\n", pppol2tp_session_ioctl() 1098 session->name, ps->flags); pppol2tp_session_ioctl() 1109 stats.session_id = session->session_id; pppol2tp_session_ioctl() 1110 pppol2tp_copy_stats(&stats, &session->stats); pppol2tp_session_ioctl() 1114 l2tp_info(session, PPPOL2TP_MSG_CONTROL, "%s: get L2TP stats\n", pppol2tp_session_ioctl() 1115 session->name); pppol2tp_session_ioctl() 1132 * specifies a session_id, the session ioctl handler is called. This allows an 1133 * application to retrieve session stats via a tunnel socket. 1161 /* resend to session ioctl handler */ pppol2tp_tunnel_ioctl() 1162 struct l2tp_session *session = pppol2tp_tunnel_ioctl() local 1164 if (session != NULL) pppol2tp_tunnel_ioctl() 1165 err = pppol2tp_session_ioctl(session, cmd, arg); pppol2tp_tunnel_ioctl() 1194 * Dispatch to tunnel or session helpers depending on the socket. 1200 struct l2tp_session *session; pppol2tp_ioctl() local 1217 /* Get session context from the socket */ pppol2tp_ioctl() 1219 session = pppol2tp_sock_to_session(sk); pppol2tp_ioctl() 1220 if (session == NULL) pppol2tp_ioctl() 1223 /* Special case: if session's session_id is zero, treat ioctl as a pppol2tp_ioctl() 1226 ps = l2tp_session_priv(session); pppol2tp_ioctl() 1227 if ((session->session_id == 0) && pppol2tp_ioctl() 1228 (session->peer_session_id == 0)) { pppol2tp_ioctl() 1239 err = pppol2tp_session_ioctl(session, cmd, arg); pppol2tp_ioctl() 1283 struct l2tp_session *session, pppol2tp_session_setsockopt() 1287 struct pppol2tp_session *ps = l2tp_session_priv(session); pppol2tp_session_setsockopt() 1295 session->recv_seq = val ? -1 : 0; pppol2tp_session_setsockopt() 1296 l2tp_info(session, PPPOL2TP_MSG_CONTROL, pppol2tp_session_setsockopt() 1298 session->name, session->recv_seq); pppol2tp_session_setsockopt() 1306 session->send_seq = val ? -1 : 0; pppol2tp_session_setsockopt() 1313 l2tp_session_set_header_len(session, session->tunnel->version); pppol2tp_session_setsockopt() 1314 l2tp_info(session, PPPOL2TP_MSG_CONTROL, pppol2tp_session_setsockopt() 1316 session->name, session->send_seq); pppol2tp_session_setsockopt() 1324 session->lns_mode = val ? -1 : 0; pppol2tp_session_setsockopt() 1325 l2tp_info(session, PPPOL2TP_MSG_CONTROL, pppol2tp_session_setsockopt() 1327 session->name, session->lns_mode); pppol2tp_session_setsockopt() 1331 session->debug = val; pppol2tp_session_setsockopt() 1332 l2tp_info(session, PPPOL2TP_MSG_CONTROL, "%s: set debug=%x\n", pppol2tp_session_setsockopt() 1333 session->name, session->debug); pppol2tp_session_setsockopt() 1337 session->reorder_timeout = msecs_to_jiffies(val); pppol2tp_session_setsockopt() 1338 l2tp_info(session, PPPOL2TP_MSG_CONTROL, pppol2tp_session_setsockopt() 1340 session->name, session->reorder_timeout); pppol2tp_session_setsockopt() 1352 * Does API checks, then calls either the tunnel or session setsockopt 1354 * session or the special tunnel type. 1360 struct l2tp_session *session; pppol2tp_setsockopt() local 1379 /* Get session context from the socket */ pppol2tp_setsockopt() 1381 session = pppol2tp_sock_to_session(sk); pppol2tp_setsockopt() 1382 if (session == NULL) pppol2tp_setsockopt() 1387 ps = l2tp_session_priv(session); pppol2tp_setsockopt() 1388 if ((session->session_id == 0) && pppol2tp_setsockopt() 1389 (session->peer_session_id == 0)) { pppol2tp_setsockopt() 1398 err = pppol2tp_session_setsockopt(sk, session, optname, val); pppol2tp_setsockopt() 1434 struct l2tp_session *session, pppol2tp_session_getsockopt() 1441 *val = session->recv_seq; pppol2tp_session_getsockopt() 1442 l2tp_info(session, PPPOL2TP_MSG_CONTROL, pppol2tp_session_getsockopt() 1443 "%s: get recv_seq=%d\n", session->name, *val); pppol2tp_session_getsockopt() 1447 *val = session->send_seq; pppol2tp_session_getsockopt() 1448 l2tp_info(session, PPPOL2TP_MSG_CONTROL, pppol2tp_session_getsockopt() 1449 "%s: get send_seq=%d\n", session->name, *val); pppol2tp_session_getsockopt() 1453 *val = session->lns_mode; pppol2tp_session_getsockopt() 1454 l2tp_info(session, PPPOL2TP_MSG_CONTROL, pppol2tp_session_getsockopt() 1455 "%s: get lns_mode=%d\n", session->name, *val); pppol2tp_session_getsockopt() 1459 *val = session->debug; pppol2tp_session_getsockopt() 1460 l2tp_info(session, PPPOL2TP_MSG_CONTROL, "%s: get debug=%d\n", pppol2tp_session_getsockopt() 1461 session->name, *val); pppol2tp_session_getsockopt() 1465 *val = (int) jiffies_to_msecs(session->reorder_timeout); pppol2tp_session_getsockopt() 1466 l2tp_info(session, PPPOL2TP_MSG_CONTROL, pppol2tp_session_getsockopt() 1467 "%s: get reorder_timeout=%d\n", session->name, *val); pppol2tp_session_getsockopt() 1478 * Does API checks, then calls either the tunnel or session getsockopt 1479 * handler, according to whether the PPPoX socket is a for a regular session 1486 struct l2tp_session *session; pppol2tp_getsockopt() local 1507 /* Get the session context */ pppol2tp_getsockopt() 1509 session = pppol2tp_sock_to_session(sk); pppol2tp_getsockopt() 1510 if (session == NULL) pppol2tp_getsockopt() 1514 ps = l2tp_session_priv(session); pppol2tp_getsockopt() 1515 if ((session->session_id == 0) && pppol2tp_getsockopt() 1516 (session->peer_session_id == 0)) { pppol2tp_getsockopt() 1525 err = pppol2tp_session_getsockopt(sk, session, optname, &val); pppol2tp_getsockopt() 1555 int session_idx; /* index of session within current tunnel */ 1557 struct l2tp_session *session; /* NULL means get next tunnel */ member in struct:pppol2tp_seq_data 1577 pd->session = l2tp_session_find_nth(pd->tunnel, pd->session_idx); pppol2tp_next_session() 1580 if (pd->session == NULL) { pppol2tp_next_session() 1604 /* NULL tunnel and session indicates end of list */ pppol2tp_seq_start() 1605 if ((pd->tunnel == NULL) && (pd->session == NULL)) pppol2tp_seq_start() 1643 struct l2tp_session *session = v; pppol2tp_seq_session_show() local 1644 struct l2tp_tunnel *tunnel = session->tunnel; pppol2tp_seq_session_show() 1645 struct pppol2tp_session *ps = l2tp_session_priv(session); pppol2tp_seq_session_show() 1658 session->name, ip, port, pppol2tp_seq_session_show() 1660 session->session_id, pppol2tp_seq_session_show() 1662 session->peer_session_id, pppol2tp_seq_session_show() 1664 (session == ps->sock->sk_user_data) ? pppol2tp_seq_session_show() 1667 session->mtu, session->mru, pppol2tp_seq_session_show() 1668 session->recv_seq ? 'R' : '-', pppol2tp_seq_session_show() 1669 session->send_seq ? 'S' : '-', pppol2tp_seq_session_show() 1670 session->lns_mode ? "LNS" : "LAC", pppol2tp_seq_session_show() 1671 session->debug, pppol2tp_seq_session_show() 1672 jiffies_to_msecs(session->reorder_timeout)); pppol2tp_seq_session_show() 1674 session->nr, session->ns, pppol2tp_seq_session_show() 1675 atomic_long_read(&session->stats.tx_packets), pppol2tp_seq_session_show() 1676 atomic_long_read(&session->stats.tx_bytes), pppol2tp_seq_session_show() 1677 atomic_long_read(&session->stats.tx_errors), pppol2tp_seq_session_show() 1678 atomic_long_read(&session->stats.rx_packets), pppol2tp_seq_session_show() 1679 atomic_long_read(&session->stats.rx_bytes), pppol2tp_seq_session_show() 1680 atomic_long_read(&session->stats.rx_errors)); pppol2tp_seq_session_show() 1693 seq_puts(m, "TUNNEL name, user-data-ok session-count\n"); pppol2tp_seq_show() 1702 /* Show the tunnel or session context. pppol2tp_seq_show() 1704 if (pd->session == NULL) pppol2tp_seq_show() 1707 pppol2tp_seq_session_show(m, pd->session); pppol2tp_seq_show() 1721 * iterating our tunnel / session contexts and store it in the private 1282 pppol2tp_session_setsockopt(struct sock *sk, struct l2tp_session *session, int optname, int val) pppol2tp_session_setsockopt() argument 1433 pppol2tp_session_getsockopt(struct sock *sk, struct l2tp_session *session, int optname, int *val) pppol2tp_session_getsockopt() argument
|
H A D | l2tp_eth.c | 43 struct l2tp_session *session; member in struct:l2tp_eth 96 struct l2tp_session *session = priv->session; l2tp_eth_dev_xmit() local 98 int ret = l2tp_xmit_skb(session, skb, session->hdr_len); l2tp_eth_dev_xmit() 141 static void l2tp_eth_dev_recv(struct l2tp_session *session, struct sk_buff *skb, int data_len) l2tp_eth_dev_recv() argument 143 struct l2tp_eth_sess *spriv = l2tp_session_priv(session); l2tp_eth_dev_recv() 147 if (session->debug & L2TP_MSG_DATA) { l2tp_eth_dev_recv() 154 pr_debug("%s: eth recv\n", session->name); l2tp_eth_dev_recv() 182 static void l2tp_eth_delete(struct l2tp_session *session) l2tp_eth_delete() argument 187 if (session) { l2tp_eth_delete() 188 spriv = l2tp_session_priv(session); l2tp_eth_delete() 201 struct l2tp_session *session = arg; l2tp_eth_show() local 202 struct l2tp_eth_sess *spriv = l2tp_session_priv(session); l2tp_eth_show() 214 struct l2tp_session *session; l2tp_eth_create() local 226 session = l2tp_session_find(net, tunnel, session_id); l2tp_eth_create() 227 if (session) { l2tp_eth_create() 243 session = l2tp_session_create(sizeof(*spriv), tunnel, session_id, l2tp_eth_create() 245 if (!session) { l2tp_eth_create() 258 if (session->mtu == 0) l2tp_eth_create() 259 session->mtu = dev->mtu - session->hdr_len; l2tp_eth_create() 260 dev->mtu = session->mtu; l2tp_eth_create() 261 dev->needed_headroom += session->hdr_len; l2tp_eth_create() 265 priv->session = session; l2tp_eth_create() 269 session->recv_skb = l2tp_eth_dev_recv; l2tp_eth_create() 270 session->session_close = l2tp_eth_delete; l2tp_eth_create() 272 session->show = l2tp_eth_show; l2tp_eth_create() 275 spriv = l2tp_session_priv(session); l2tp_eth_create() 284 strlcpy(session->ifname, dev->name, IFNAMSIZ); l2tp_eth_create() 298 l2tp_session_delete(session); l2tp_eth_create()
|
H A D | l2tp_netlink.c | 52 int flags, struct l2tp_session *session, 64 struct l2tp_session *session = NULL; l2tp_nl_session_find() local 69 session = l2tp_session_find_by_ifname(net, ifname); l2tp_nl_session_find() 76 session = l2tp_session_find(net, tunnel, session_id); l2tp_nl_session_find() 79 return session; l2tp_nl_session_find() 142 struct l2tp_session *session, l2tp_session_notify() 153 NLM_F_ACK, session, cmd); l2tp_session_notify() 486 struct l2tp_session *session; l2tp_nl_cmd_session_create() local 506 session = l2tp_session_find(net, tunnel, session_id); l2tp_nl_cmd_session_create() 507 if (session) { l2tp_nl_cmd_session_create() 622 session = l2tp_session_find(net, tunnel, session_id); l2tp_nl_cmd_session_create() 623 if (session) l2tp_nl_cmd_session_create() 624 ret = l2tp_session_notify(&l2tp_nl_family, info, session, l2tp_nl_cmd_session_create() 635 struct l2tp_session *session; l2tp_nl_cmd_session_delete() local 638 session = l2tp_nl_session_find(info); l2tp_nl_cmd_session_delete() 639 if (session == NULL) { l2tp_nl_cmd_session_delete() 645 session, L2TP_CMD_SESSION_DELETE); l2tp_nl_cmd_session_delete() 647 pw_type = session->pwtype; l2tp_nl_cmd_session_delete() 650 ret = (*l2tp_nl_cmd_ops[pw_type]->session_delete)(session); l2tp_nl_cmd_session_delete() 659 struct l2tp_session *session; l2tp_nl_cmd_session_modify() local 661 session = l2tp_nl_session_find(info); l2tp_nl_cmd_session_modify() 662 if (session == NULL) { l2tp_nl_cmd_session_modify() 668 session->debug = nla_get_u32(info->attrs[L2TP_ATTR_DEBUG]); l2tp_nl_cmd_session_modify() 671 session->data_seq = nla_get_u8(info->attrs[L2TP_ATTR_DATA_SEQ]); l2tp_nl_cmd_session_modify() 674 session->recv_seq = nla_get_u8(info->attrs[L2TP_ATTR_RECV_SEQ]); l2tp_nl_cmd_session_modify() 677 session->send_seq = nla_get_u8(info->attrs[L2TP_ATTR_SEND_SEQ]); l2tp_nl_cmd_session_modify() 678 l2tp_session_set_header_len(session, session->tunnel->version); l2tp_nl_cmd_session_modify() 682 session->lns_mode = nla_get_u8(info->attrs[L2TP_ATTR_LNS_MODE]); l2tp_nl_cmd_session_modify() 685 session->reorder_timeout = nla_get_msecs(info->attrs[L2TP_ATTR_RECV_TIMEOUT]); l2tp_nl_cmd_session_modify() 688 session->mtu = nla_get_u16(info->attrs[L2TP_ATTR_MTU]); l2tp_nl_cmd_session_modify() 691 session->mru = nla_get_u16(info->attrs[L2TP_ATTR_MRU]); l2tp_nl_cmd_session_modify() 694 session, L2TP_CMD_SESSION_MODIFY); l2tp_nl_cmd_session_modify() 701 struct l2tp_session *session, u8 cmd) l2tp_nl_session_send() 705 struct l2tp_tunnel *tunnel = session->tunnel; l2tp_nl_session_send() 715 nla_put_u32(skb, L2TP_ATTR_SESSION_ID, session->session_id) || l2tp_nl_session_send() 718 session->peer_session_id) || l2tp_nl_session_send() 719 nla_put_u32(skb, L2TP_ATTR_DEBUG, session->debug) || l2tp_nl_session_send() 720 nla_put_u16(skb, L2TP_ATTR_PW_TYPE, session->pwtype) || l2tp_nl_session_send() 721 nla_put_u16(skb, L2TP_ATTR_MTU, session->mtu) || l2tp_nl_session_send() 722 (session->mru && l2tp_nl_session_send() 723 nla_put_u16(skb, L2TP_ATTR_MRU, session->mru))) l2tp_nl_session_send() 726 if ((session->ifname[0] && l2tp_nl_session_send() 727 nla_put_string(skb, L2TP_ATTR_IFNAME, session->ifname)) || l2tp_nl_session_send() 728 (session->cookie_len && l2tp_nl_session_send() 729 nla_put(skb, L2TP_ATTR_COOKIE, session->cookie_len, l2tp_nl_session_send() 730 &session->cookie[0])) || l2tp_nl_session_send() 731 (session->peer_cookie_len && l2tp_nl_session_send() 732 nla_put(skb, L2TP_ATTR_PEER_COOKIE, session->peer_cookie_len, l2tp_nl_session_send() 733 &session->peer_cookie[0])) || l2tp_nl_session_send() 734 nla_put_u8(skb, L2TP_ATTR_RECV_SEQ, session->recv_seq) || l2tp_nl_session_send() 735 nla_put_u8(skb, L2TP_ATTR_SEND_SEQ, session->send_seq) || l2tp_nl_session_send() 736 nla_put_u8(skb, L2TP_ATTR_LNS_MODE, session->lns_mode) || l2tp_nl_session_send() 741 (session->reorder_timeout && l2tp_nl_session_send() 742 nla_put_msecs(skb, L2TP_ATTR_RECV_TIMEOUT, session->reorder_timeout))) l2tp_nl_session_send() 750 atomic_long_read(&session->stats.tx_packets)) || l2tp_nl_session_send() 752 atomic_long_read(&session->stats.tx_bytes)) || l2tp_nl_session_send() 754 atomic_long_read(&session->stats.tx_errors)) || l2tp_nl_session_send() 756 atomic_long_read(&session->stats.rx_packets)) || l2tp_nl_session_send() 758 atomic_long_read(&session->stats.rx_bytes)) || l2tp_nl_session_send() 760 atomic_long_read(&session->stats.rx_seq_discards)) || l2tp_nl_session_send() 762 atomic_long_read(&session->stats.rx_oos_packets)) || l2tp_nl_session_send() 764 atomic_long_read(&session->stats.rx_errors))) l2tp_nl_session_send() 778 struct l2tp_session *session; l2tp_nl_cmd_session_get() local 782 session = l2tp_nl_session_find(info); l2tp_nl_cmd_session_get() 783 if (session == NULL) { l2tp_nl_cmd_session_get() 795 0, session, L2TP_CMD_SESSION_GET); l2tp_nl_cmd_session_get() 811 struct l2tp_session *session; l2tp_nl_cmd_session_dump() local 823 session = l2tp_session_find_nth(tunnel, si); l2tp_nl_cmd_session_dump() 824 if (session == NULL) { l2tp_nl_cmd_session_dump() 833 session, L2TP_CMD_SESSION_GET) < 0) l2tp_nl_cmd_session_dump() 140 l2tp_session_notify(struct genl_family *family, struct genl_info *info, struct l2tp_session *session, u8 cmd) l2tp_session_notify() argument 700 l2tp_nl_session_send(struct sk_buff *skb, u32 portid, u32 seq, int flags, struct l2tp_session *session, u8 cmd) l2tp_nl_session_send() argument
|
H A D | l2tp_core.h | 18 /* Per tunnel, session hash table size */ 22 /* System-wide, session hash table size */ 52 /* Describes a session. Contains information to determine incoming 102 u32 nr; /* session NR state (receive) */ 103 u32 ns; /* session NR state (send) */ 137 int (*build_header)(struct l2tp_session *session, void *buf); 138 void (*recv_skb)(struct l2tp_session *session, struct sk_buff *skb, int data_len); 139 void (*session_close)(struct l2tp_session *session); 140 void (*ref)(struct l2tp_session *session); 141 void (*deref)(struct l2tp_session *session); 210 int (*session_delete)(struct l2tp_session *session); 218 static inline void *l2tp_session_priv(struct l2tp_session *session) l2tp_session_priv() argument 220 return &session->priv[0]; l2tp_session_priv() 260 void __l2tp_session_unhash(struct l2tp_session *session); 261 int l2tp_session_delete(struct l2tp_session *session); 262 void l2tp_session_free(struct l2tp_session *session); 263 void l2tp_recv_common(struct l2tp_session *session, struct sk_buff *skb, 266 int l2tp_session_queue_purge(struct l2tp_session *session); 268 void l2tp_session_set_header_len(struct l2tp_session *session, int version); 270 int l2tp_xmit_skb(struct l2tp_session *session, struct sk_buff *skb, 278 * to a session. 280 static inline void l2tp_session_inc_refcount_1(struct l2tp_session *session) l2tp_session_inc_refcount_1() argument 282 atomic_inc(&session->ref_count); l2tp_session_inc_refcount_1() 285 static inline void l2tp_session_dec_refcount_1(struct l2tp_session *session) l2tp_session_dec_refcount_1() argument 287 if (atomic_dec_and_test(&session->ref_count)) l2tp_session_dec_refcount_1() 288 l2tp_session_free(session); l2tp_session_dec_refcount_1()
|
H A D | l2tp_ip.c | 83 * consider. Data frames consist of a non-zero session-id and an 122 struct l2tp_session *session; l2tp_ip_recv() local 144 /* Ok, this is a data packet. Lookup the session. */ l2tp_ip_recv() 145 session = l2tp_session_find(net, NULL, session_id); l2tp_ip_recv() 146 if (session == NULL) l2tp_ip_recv() 149 tunnel = session->tunnel; l2tp_ip_recv() 163 l2tp_recv_common(session, skb, ptr, optr, 0, skb->len, tunnel->recv_payload_hook); l2tp_ip_recv()
|
H A D | l2tp_ip6.c | 96 * consider. Data frames consist of a non-zero session-id and an 134 struct l2tp_session *session; l2tp_ip6_recv() local 156 /* Ok, this is a data packet. Lookup the session. */ l2tp_ip6_recv() 157 session = l2tp_session_find(&init_net, NULL, session_id); l2tp_ip6_recv() 158 if (session == NULL) l2tp_ip6_recv() 161 tunnel = session->tunnel; l2tp_ip6_recv() 175 l2tp_recv_common(session, skb, ptr, optr, 0, skb->len, l2tp_ip6_recv() 498 int transhdrlen = 4; /* zero session-id */ l2tp_ip6_sendmsg()
|
/linux-4.1.27/kernel/trace/ |
H A D | trace_stat.c | 30 /* A stat session is the stats output in one file */ 39 /* All of the sessions currently in use. Each stat file embed one session */ 46 static void __reset_stat_session(struct stat_session *session) __reset_stat_session() argument 50 rbtree_postorder_for_each_entry_safe(snode, n, &session->stat_root, node) { __reset_stat_session() 51 if (session->ts->stat_release) __reset_stat_session() 52 session->ts->stat_release(snode->stat); __reset_stat_session() 56 session->stat_root = RB_ROOT; __reset_stat_session() 59 static void reset_stat_session(struct stat_session *session) reset_stat_session() argument 61 mutex_lock(&session->stat_mutex); reset_stat_session() 62 __reset_stat_session(session); reset_stat_session() 63 mutex_unlock(&session->stat_mutex); reset_stat_session() 66 static void destroy_session(struct stat_session *session) destroy_session() argument 68 tracefs_remove(session->file); destroy_session() 69 __reset_stat_session(session); destroy_session() 70 mutex_destroy(&session->stat_mutex); destroy_session() 71 kfree(session); destroy_session() 124 static int stat_seq_init(struct stat_session *session) stat_seq_init() argument 126 struct tracer_stat *ts = session->ts; stat_seq_init() 127 struct rb_root *root = &session->stat_root; stat_seq_init() 132 mutex_lock(&session->stat_mutex); stat_seq_init() 133 __reset_stat_session(session); stat_seq_init() 162 mutex_unlock(&session->stat_mutex); stat_seq_init() 166 __reset_stat_session(session); stat_seq_init() 167 mutex_unlock(&session->stat_mutex); stat_seq_init() 174 struct stat_session *session = s->private; stat_seq_start() local 180 mutex_lock(&session->stat_mutex); stat_seq_start() 183 if (session->ts->stat_headers) { stat_seq_start() 189 node = rb_first(&session->stat_root); stat_seq_start() 198 struct stat_session *session = s->private; stat_seq_next() local 204 return rb_first(&session->stat_root); stat_seq_next() 211 struct stat_session *session = s->private; stat_seq_stop() local 212 mutex_unlock(&session->stat_mutex); stat_seq_stop() 217 struct stat_session *session = s->private; stat_seq_show() local 221 return session->ts->stat_headers(s); stat_seq_show() 223 return session->ts->stat_show(s, l->stat); stat_seq_show() 233 /* The session stat is refilled and resorted at each stat file opening */ tracing_stat_open() 238 struct stat_session *session = inode->i_private; tracing_stat_open() local 240 ret = stat_seq_init(session); tracing_stat_open() 246 reset_stat_session(session); tracing_stat_open() 251 m->private = session; tracing_stat_open() 260 struct stat_session *session = i->i_private; tracing_stat_release() local 262 reset_stat_session(session); tracing_stat_release() 289 static int init_stat_file(struct stat_session *session) init_stat_file() argument 294 session->file = tracefs_create_file(session->ts->name, 0644, init_stat_file() 296 session, &tracing_stat_fops); init_stat_file() 297 if (!session->file) init_stat_file() 304 struct stat_session *session, *node; register_stat_tracer() local 323 /* Init the session */ register_stat_tracer() 324 session = kzalloc(sizeof(*session), GFP_KERNEL); register_stat_tracer() 325 if (!session) register_stat_tracer() 328 session->ts = trace; register_stat_tracer() 329 INIT_LIST_HEAD(&session->session_list); register_stat_tracer() 330 mutex_init(&session->stat_mutex); register_stat_tracer() 332 ret = init_stat_file(session); register_stat_tracer() 334 destroy_session(session); register_stat_tracer() 340 list_add_tail(&session->session_list, &all_stat_sessions); register_stat_tracer()
|
/linux-4.1.27/drivers/scsi/ |
H A D | libiscsi.c | 90 struct Scsi_Host *shost = conn->session->host; iscsi_conn_queue_work() 98 static void __iscsi_update_cmdsn(struct iscsi_session *session, __iscsi_update_cmdsn() argument 108 if (exp_cmdsn != session->exp_cmdsn && __iscsi_update_cmdsn() 109 !iscsi_sna_lt(exp_cmdsn, session->exp_cmdsn)) __iscsi_update_cmdsn() 110 session->exp_cmdsn = exp_cmdsn; __iscsi_update_cmdsn() 112 if (max_cmdsn != session->max_cmdsn && __iscsi_update_cmdsn() 113 !iscsi_sna_lt(max_cmdsn, session->max_cmdsn)) __iscsi_update_cmdsn() 114 session->max_cmdsn = max_cmdsn; __iscsi_update_cmdsn() 117 void iscsi_update_cmdsn(struct iscsi_session *session, struct iscsi_nopin *hdr) iscsi_update_cmdsn() argument 119 __iscsi_update_cmdsn(session, be32_to_cpu(hdr->exp_cmdsn), iscsi_update_cmdsn() 212 ISCSI_DBG_SESSION(task->conn->session, iscsi_prep_ecdb_ahs() 238 ISCSI_DBG_SESSION(task->conn->session, iscsi_prep_bidi_ahs() 297 if (conn->session->fast_abort) { iscsi_check_tmf_restrictions() 315 ISCSI_DBG_SESSION(conn->session, iscsi_check_tmf_restrictions() 338 struct iscsi_session *session = conn->session; iscsi_prep_scsi_cmd_pdu() local 349 if (conn->session->tt->alloc_pdu) { iscsi_prep_scsi_cmd_pdu() 350 rc = conn->session->tt->alloc_pdu(task, ISCSI_OP_SCSI_CMD); iscsi_prep_scsi_cmd_pdu() 358 if (session->tt->parse_pdu_itt) iscsi_prep_scsi_cmd_pdu() 362 task->conn->session->age); iscsi_prep_scsi_cmd_pdu() 416 if (session->imm_data_en) { iscsi_prep_scsi_cmd_pdu() 417 if (transfer_length >= session->first_burst) iscsi_prep_scsi_cmd_pdu() 418 task->imm_count = min(session->first_burst, iscsi_prep_scsi_cmd_pdu() 427 if (!session->initial_r2t_en) { iscsi_prep_scsi_cmd_pdu() 428 r2t->data_length = min(session->first_burst, iscsi_prep_scsi_cmd_pdu() 455 hdr->cmdsn = task->cmdsn = cpu_to_be32(session->cmdsn); iscsi_prep_scsi_cmd_pdu() 457 if (session->tt->init_task && session->tt->init_task(task)) iscsi_prep_scsi_cmd_pdu() 461 session->cmdsn++; iscsi_prep_scsi_cmd_pdu() 464 ISCSI_DBG_SESSION(session, "iscsi prep [%s cid %d sc %p cdb 0x%x " iscsi_prep_scsi_cmd_pdu() 471 session->cmdsn, iscsi_prep_scsi_cmd_pdu() 472 session->max_cmdsn - session->exp_cmdsn + 1); iscsi_prep_scsi_cmd_pdu() 480 * Must be called with session back_lock. 487 struct iscsi_session *session = conn->session; iscsi_free_task() local 491 ISCSI_DBG_SESSION(session, "freeing task itt 0x%x state %d sc %p\n", iscsi_free_task() 494 session->tt->cleanup_task(task); iscsi_free_task() 503 kfifo_in(&session->cmdpool.queue, (void*)&task, sizeof(void*)); iscsi_free_task() 532 struct iscsi_session *session = task->conn->session; iscsi_put_task() local 535 spin_lock_bh(&session->back_lock); iscsi_put_task() 537 spin_unlock_bh(&session->back_lock); iscsi_put_task() 546 * Must be called with session back_lock. 552 ISCSI_DBG_SESSION(conn->session, iscsi_complete_task() 585 * Called with session back_lock 592 ISCSI_DBG_SESSION(conn->session, "[itt 0x%x]\n", task->itt); iscsi_complete_scsi_task() 595 __iscsi_update_cmdsn(conn->session, exp_cmdsn, max_cmdsn); iscsi_complete_scsi_task() 602 * session back_lock must be held and if not called for a task that is 626 conn->session->queued_cmdsn--; fail_scsi_task() 643 spin_lock_bh(&conn->session->back_lock); fail_scsi_task() 645 spin_unlock_bh(&conn->session->back_lock); fail_scsi_task() 651 struct iscsi_session *session = conn->session; iscsi_prep_mgmt_task() local 656 if (conn->session->state == ISCSI_STATE_LOGGING_OUT) iscsi_prep_mgmt_task() 664 nop->cmdsn = cpu_to_be32(session->cmdsn); iscsi_prep_mgmt_task() 667 * TODO: We always use immediate for normal session pdus. iscsi_prep_mgmt_task() 676 session->queued_cmdsn++; iscsi_prep_mgmt_task() 677 session->cmdsn++; iscsi_prep_mgmt_task() 681 if (session->tt->init_task && session->tt->init_task(task)) iscsi_prep_mgmt_task() 685 session->state = ISCSI_STATE_LOGGING_OUT; iscsi_prep_mgmt_task() 688 ISCSI_DBG_SESSION(session, "mgmtpdu [op 0x%x hdr->itt 0x%x " iscsi_prep_mgmt_task() 698 struct iscsi_session *session = conn->session; __iscsi_conn_send_pdu() local 699 struct iscsi_host *ihost = shost_priv(session->host); __iscsi_conn_send_pdu() 704 if (session->state == ISCSI_STATE_TERMINATE) __iscsi_conn_send_pdu() 727 if (session->state != ISCSI_STATE_LOGGED_IN) __iscsi_conn_send_pdu() 738 if (!kfifo_out(&session->cmdpool.queue, __iscsi_conn_send_pdu() 759 if (conn->session->tt->alloc_pdu) { __iscsi_conn_send_pdu() 760 if (conn->session->tt->alloc_pdu(task, hdr->opcode)) { __iscsi_conn_send_pdu() 772 if (session->tt->parse_pdu_itt) __iscsi_conn_send_pdu() 776 task->conn->session->age); __iscsi_conn_send_pdu() 783 if (session->tt->xmit_task(task)) __iscsi_conn_send_pdu() 794 spin_lock_bh(&session->back_lock); __iscsi_conn_send_pdu() 796 spin_unlock_bh(&session->back_lock); __iscsi_conn_send_pdu() 804 struct iscsi_session *session = conn->session; iscsi_conn_send_pdu() local 807 spin_lock_bh(&session->frwd_lock); iscsi_conn_send_pdu() 810 spin_unlock_bh(&session->frwd_lock); iscsi_conn_send_pdu() 831 struct iscsi_session *session = conn->session; iscsi_scsi_cmd_rsp() local 834 iscsi_update_cmdsn(session, (struct iscsi_nopin*)rhdr); iscsi_scsi_cmd_rsp() 848 BUG_ON(!session->tt->check_protection); iscsi_scsi_cmd_rsp() 850 ascq = session->tt->check_protection(task, §or); iscsi_scsi_cmd_rsp() 889 ISCSI_DBG_SESSION(session, "copied %d bytes of sense\n", iscsi_scsi_cmd_rsp() 919 ISCSI_DBG_SESSION(session, "cmd rsp done [sc %p res %d itt 0x%x]\n", iscsi_scsi_cmd_rsp() 941 iscsi_update_cmdsn(conn->session, (struct iscsi_nopin *)hdr); iscsi_data_in_rsp() 956 ISCSI_DBG_SESSION(conn->session, "data in with status done " iscsi_data_in_rsp() 1080 spin_unlock(&conn->session->back_lock); iscsi_handle_reject() 1081 spin_lock(&conn->session->frwd_lock); iscsi_handle_reject() 1084 spin_unlock(&conn->session->frwd_lock); iscsi_handle_reject() 1085 spin_lock(&conn->session->back_lock); iscsi_handle_reject() 1120 * the LDD's itt space does not include the session age. 1122 * The session back_lock must be held. 1126 struct iscsi_session *session = conn->session; iscsi_itt_to_task() local 1132 if (session->tt->parse_pdu_itt) iscsi_itt_to_task() 1133 session->tt->parse_pdu_itt(conn, itt, &i, NULL); iscsi_itt_to_task() 1136 if (i >= session->cmds_max) iscsi_itt_to_task() 1139 return session->cmds[i]; iscsi_itt_to_task() 1151 * queuecommand or send generic. session back_lock must be held and verify 1157 struct iscsi_session *session = conn->session; __iscsi_complete_pdu() local 1172 ISCSI_DBG_SESSION(session, "[op 0x%x cid %d itt 0x%x len %d]\n", __iscsi_complete_pdu() 1176 iscsi_update_cmdsn(session, (struct iscsi_nopin*)hdr); __iscsi_complete_pdu() 1189 spin_unlock(&session->back_lock); __iscsi_complete_pdu() 1190 spin_lock(&session->frwd_lock); __iscsi_complete_pdu() 1192 spin_unlock(&session->frwd_lock); __iscsi_complete_pdu() 1193 spin_lock(&session->back_lock); __iscsi_complete_pdu() 1244 iscsi_update_cmdsn(session, (struct iscsi_nopin*)hdr); __iscsi_complete_pdu() 1253 iscsi_update_cmdsn(session, (struct iscsi_nopin*)hdr); __iscsi_complete_pdu() 1260 iscsi_update_cmdsn(session, (struct iscsi_nopin*)hdr); __iscsi_complete_pdu() 1270 iscsi_update_cmdsn(session, (struct iscsi_nopin*)hdr); __iscsi_complete_pdu() 1300 spin_lock(&conn->session->back_lock); iscsi_complete_pdu() 1302 spin_unlock(&conn->session->back_lock); iscsi_complete_pdu() 1309 struct iscsi_session *session = conn->session; iscsi_verify_itt() local 1315 if (session->tt->parse_pdu_itt) iscsi_verify_itt() 1316 session->tt->parse_pdu_itt(conn, itt, &i, &age); iscsi_verify_itt() 1322 if (age != session->age) { iscsi_verify_itt() 1324 "received itt %x expected session age (%x)\n", iscsi_verify_itt() 1325 (__force u32)itt, session->age); iscsi_verify_itt() 1329 if (i >= session->cmds_max) { iscsi_verify_itt() 1332 "%u.\n", i, session->cmds_max); iscsi_verify_itt() 1346 * The session back_lock must be held. 1359 if (task->sc->SCp.phase != conn->session->age) { iscsi_itt_to_ctask() 1360 iscsi_session_printk(KERN_ERR, conn->session, iscsi_itt_to_ctask() 1361 "task's session age %d, expected %d\n", iscsi_itt_to_ctask() 1362 task->sc->SCp.phase, conn->session->age); iscsi_itt_to_ctask() 1370 void iscsi_session_failure(struct iscsi_session *session, iscsi_session_failure() argument 1376 spin_lock_bh(&session->frwd_lock); iscsi_session_failure() 1377 conn = session->leadconn; iscsi_session_failure() 1378 if (session->state == ISCSI_STATE_TERMINATE || !conn) { iscsi_session_failure() 1379 spin_unlock_bh(&session->frwd_lock); iscsi_session_failure() 1384 spin_unlock_bh(&session->frwd_lock); iscsi_session_failure() 1390 * the session. iscsi_session_failure() 1402 struct iscsi_session *session = conn->session; iscsi_conn_failure() local 1404 spin_lock_bh(&session->frwd_lock); iscsi_conn_failure() 1405 if (session->state == ISCSI_STATE_FAILED) { iscsi_conn_failure() 1406 spin_unlock_bh(&session->frwd_lock); iscsi_conn_failure() 1411 session->state = ISCSI_STATE_FAILED; iscsi_conn_failure() 1412 spin_unlock_bh(&session->frwd_lock); iscsi_conn_failure() 1422 struct iscsi_session *session = conn->session; iscsi_check_cmdsn_window_closed() local 1427 if (!iscsi_sna_lte(session->queued_cmdsn, session->max_cmdsn)) { iscsi_check_cmdsn_window_closed() 1428 ISCSI_DBG_SESSION(session, "iSCSI CmdSN closed. ExpCmdSn " iscsi_check_cmdsn_window_closed() 1430 session->exp_cmdsn, session->max_cmdsn, iscsi_check_cmdsn_window_closed() 1431 session->cmdsn, session->queued_cmdsn); iscsi_check_cmdsn_window_closed() 1446 spin_unlock_bh(&conn->session->frwd_lock); iscsi_xmit_task() 1447 rc = conn->session->tt->xmit_task(task); iscsi_xmit_task() 1448 spin_lock_bh(&conn->session->frwd_lock); iscsi_xmit_task() 1455 spin_lock(&conn->session->back_lock); iscsi_xmit_task() 1457 spin_unlock(&conn->session->back_lock); iscsi_xmit_task() 1462 * iscsi_requeue_task - requeue task to run from session workqueue 1465 * LLDs that need to run a task from the session workqueue should call 1466 * this. The session frwd_lock must be held. This should only be called 1497 spin_lock_bh(&conn->session->frwd_lock); iscsi_data_xmit() 1499 ISCSI_DBG_SESSION(conn->session, "Tx suspended!\n"); iscsi_data_xmit() 1500 spin_unlock_bh(&conn->session->frwd_lock); iscsi_data_xmit() 1522 spin_lock_bh(&conn->session->back_lock); iscsi_data_xmit() 1524 spin_unlock_bh(&conn->session->back_lock); iscsi_data_xmit() 1538 if (conn->session->state == ISCSI_STATE_LOGGING_OUT) { iscsi_data_xmit() 1569 if (conn->session->state == ISCSI_STATE_LOGGING_OUT) iscsi_data_xmit() 1586 spin_unlock_bh(&conn->session->frwd_lock); iscsi_data_xmit() 1590 spin_unlock_bh(&conn->session->frwd_lock); iscsi_data_xmit() 1612 if (!kfifo_out(&conn->session->cmdpool.queue, iscsi_alloc_task() 1616 sc->SCp.phase = conn->session->age; iscsi_alloc_task() 1649 struct iscsi_session *session; iscsi_queuecommand() local 1659 session = cls_session->dd_data; iscsi_queuecommand() 1660 spin_lock_bh(&session->frwd_lock); iscsi_queuecommand() 1668 if (session->state != ISCSI_STATE_LOGGED_IN) { iscsi_queuecommand() 1671 * and block the session we requeue here (commands could iscsi_queuecommand() 1675 switch (session->state) { iscsi_queuecommand() 1700 conn = session->leadconn; iscsi_queuecommand() 1735 if (session->tt->xmit_task(task)) { iscsi_queuecommand() 1736 session->cmdsn--; iscsi_queuecommand() 1745 session->queued_cmdsn++; iscsi_queuecommand() 1746 spin_unlock_bh(&session->frwd_lock); iscsi_queuecommand() 1752 spin_unlock_bh(&session->frwd_lock); iscsi_queuecommand() 1753 ISCSI_DBG_SESSION(session, "cmd 0x%x rejected (%d)\n", iscsi_queuecommand() 1760 spin_unlock_bh(&session->frwd_lock); iscsi_queuecommand() 1761 ISCSI_DBG_SESSION(session, "iscsi: cmd 0x%x is not queued (%d)\n", iscsi_queuecommand() 1777 struct iscsi_session *session = cls_session->dd_data; iscsi_target_alloc() local 1779 starget->can_queue = session->scsi_cmds_max; iscsi_target_alloc() 1787 struct iscsi_session *session = conn->session; iscsi_tmf_timedout() local 1789 spin_lock(&session->frwd_lock); iscsi_tmf_timedout() 1792 ISCSI_DBG_EH(session, "tmf timedout\n"); iscsi_tmf_timedout() 1796 spin_unlock(&session->frwd_lock); iscsi_tmf_timedout() 1803 struct iscsi_session *session = conn->session; iscsi_exec_task_mgmt_fn() local 1809 spin_unlock_bh(&session->frwd_lock); iscsi_exec_task_mgmt_fn() 1812 spin_lock_bh(&session->frwd_lock); iscsi_exec_task_mgmt_fn() 1820 ISCSI_DBG_EH(session, "tmf set timeout\n"); iscsi_exec_task_mgmt_fn() 1822 spin_unlock_bh(&session->frwd_lock); iscsi_exec_task_mgmt_fn() 1823 mutex_unlock(&session->eh_mutex); iscsi_exec_task_mgmt_fn() 1830 * 3) session is terminated or restarted or userspace has iscsi_exec_task_mgmt_fn() 1833 wait_event_interruptible(conn->ehwait, age != session->age || iscsi_exec_task_mgmt_fn() 1834 session->state != ISCSI_STATE_LOGGED_IN || iscsi_exec_task_mgmt_fn() 1840 mutex_lock(&session->eh_mutex); iscsi_exec_task_mgmt_fn() 1841 spin_lock_bh(&session->frwd_lock); iscsi_exec_task_mgmt_fn() 1842 /* if the session drops it will clean up the task */ iscsi_exec_task_mgmt_fn() 1843 if (age != session->age || iscsi_exec_task_mgmt_fn() 1844 session->state != ISCSI_STATE_LOGGED_IN) iscsi_exec_task_mgmt_fn() 1850 * Fail commands. session lock held and recv side suspended and xmit 1858 for (i = 0; i < conn->session->cmds_max; i++) { fail_scsi_tasks() 1859 task = conn->session->cmds[i]; fail_scsi_tasks() 1866 ISCSI_DBG_SESSION(conn->session, fail_scsi_tasks() 1877 * This grabs the session frwd_lock to make sure no one is in 1886 spin_lock_bh(&conn->session->frwd_lock); iscsi_suspend_queue() 1888 spin_unlock_bh(&conn->session->frwd_lock); iscsi_suspend_queue() 1902 struct Scsi_Host *shost = conn->session->host; iscsi_suspend_tx() 1938 struct iscsi_session *session; iscsi_eh_cmd_timed_out() local 1943 session = cls_session->dd_data; iscsi_eh_cmd_timed_out() 1945 ISCSI_DBG_EH(session, "scsi cmd %p timedout\n", sc); iscsi_eh_cmd_timed_out() 1947 spin_lock(&session->frwd_lock); iscsi_eh_cmd_timed_out() 1958 if (session->state != ISCSI_STATE_LOGGED_IN) { iscsi_eh_cmd_timed_out() 1967 conn = session->leadconn; iscsi_eh_cmd_timed_out() 1982 ISCSI_DBG_EH(session, "Command making progress. Asking " iscsi_eh_cmd_timed_out() 2002 for (i = 0; i < conn->session->cmds_max; i++) { iscsi_eh_cmd_timed_out() 2003 running_task = conn->session->cmds[i]; iscsi_eh_cmd_timed_out() 2027 ISCSI_DBG_EH(session, "Command has not made progress " iscsi_eh_cmd_timed_out() 2061 spin_unlock(&session->frwd_lock); iscsi_eh_cmd_timed_out() 2062 ISCSI_DBG_EH(session, "return %s\n", rc == BLK_EH_RESET_TIMER ? iscsi_eh_cmd_timed_out() 2070 struct iscsi_session *session = conn->session; iscsi_check_transport_timeouts() local 2073 spin_lock(&session->frwd_lock); iscsi_check_transport_timeouts() 2074 if (session->state != ISCSI_STATE_LOGGED_IN) iscsi_check_transport_timeouts() 2090 spin_unlock(&session->frwd_lock); iscsi_check_transport_timeouts() 2106 spin_unlock(&session->frwd_lock); iscsi_check_transport_timeouts() 2124 struct iscsi_session *session; iscsi_eh_abort() local 2131 session = cls_session->dd_data; iscsi_eh_abort() 2133 ISCSI_DBG_EH(session, "aborting sc %p\n", sc); iscsi_eh_abort() 2135 mutex_lock(&session->eh_mutex); iscsi_eh_abort() 2136 spin_lock_bh(&session->frwd_lock); iscsi_eh_abort() 2138 * if session was ISCSI_STATE_IN_RECOVERY then we may not have iscsi_eh_abort() 2142 ISCSI_DBG_EH(session, "sc never reached iscsi layer or " iscsi_eh_abort() 2144 spin_unlock_bh(&session->frwd_lock); iscsi_eh_abort() 2145 mutex_unlock(&session->eh_mutex); iscsi_eh_abort() 2150 * If we are not logged in or we have started a new session iscsi_eh_abort() 2153 if (!session->leadconn || session->state != ISCSI_STATE_LOGGED_IN || iscsi_eh_abort() 2154 sc->SCp.phase != session->age) { iscsi_eh_abort() 2155 spin_unlock_bh(&session->frwd_lock); iscsi_eh_abort() 2156 mutex_unlock(&session->eh_mutex); iscsi_eh_abort() 2157 ISCSI_DBG_EH(session, "failing abort due to dropped " iscsi_eh_abort() 2158 "session.\n"); iscsi_eh_abort() 2162 conn = session->leadconn; iscsi_eh_abort() 2164 age = session->age; iscsi_eh_abort() 2167 ISCSI_DBG_EH(session, "aborting [sc %p itt 0x%x]\n", iscsi_eh_abort() 2172 ISCSI_DBG_EH(session, "sc completed while abort in progress\n"); iscsi_eh_abort() 2189 if (iscsi_exec_task_mgmt_fn(conn, hdr, age, session->abort_timeout)) { iscsi_eh_abort() 2196 spin_unlock_bh(&session->frwd_lock); iscsi_eh_abort() 2207 spin_lock_bh(&session->frwd_lock); iscsi_eh_abort() 2211 spin_unlock_bh(&session->frwd_lock); iscsi_eh_abort() 2215 spin_unlock_bh(&session->frwd_lock); iscsi_eh_abort() 2223 ISCSI_DBG_EH(session, "sc completed while abort in " iscsi_eh_abort() 2234 spin_unlock_bh(&session->frwd_lock); iscsi_eh_abort() 2236 ISCSI_DBG_EH(session, "abort success [sc %p itt 0x%x]\n", iscsi_eh_abort() 2238 mutex_unlock(&session->eh_mutex); iscsi_eh_abort() 2242 spin_unlock_bh(&session->frwd_lock); iscsi_eh_abort() 2244 ISCSI_DBG_EH(session, "abort failed [sc %p itt 0x%x]\n", sc, iscsi_eh_abort() 2246 mutex_unlock(&session->eh_mutex); iscsi_eh_abort() 2264 struct iscsi_session *session; iscsi_eh_device_reset() local 2270 session = cls_session->dd_data; iscsi_eh_device_reset() 2272 ISCSI_DBG_EH(session, "LU Reset [sc %p lun %llu]\n", sc, iscsi_eh_device_reset() 2275 mutex_lock(&session->eh_mutex); iscsi_eh_device_reset() 2276 spin_lock_bh(&session->frwd_lock); iscsi_eh_device_reset() 2281 if (!session->leadconn || session->state != ISCSI_STATE_LOGGED_IN) iscsi_eh_device_reset() 2283 conn = session->leadconn; iscsi_eh_device_reset() 2293 if (iscsi_exec_task_mgmt_fn(conn, hdr, session->age, iscsi_eh_device_reset() 2294 session->lu_reset_timeout)) { iscsi_eh_device_reset() 2303 spin_unlock_bh(&session->frwd_lock); iscsi_eh_device_reset() 2312 spin_unlock_bh(&session->frwd_lock); iscsi_eh_device_reset() 2316 spin_lock_bh(&session->frwd_lock); iscsi_eh_device_reset() 2320 spin_unlock_bh(&session->frwd_lock); iscsi_eh_device_reset() 2326 spin_unlock_bh(&session->frwd_lock); iscsi_eh_device_reset() 2328 ISCSI_DBG_EH(session, "dev reset result = %s\n", iscsi_eh_device_reset() 2330 mutex_unlock(&session->eh_mutex); iscsi_eh_device_reset() 2337 struct iscsi_session *session = cls_session->dd_data; iscsi_session_recovery_timedout() local 2339 spin_lock_bh(&session->frwd_lock); iscsi_session_recovery_timedout() 2340 if (session->state != ISCSI_STATE_LOGGED_IN) { iscsi_session_recovery_timedout() 2341 session->state = ISCSI_STATE_RECOVERY_FAILED; iscsi_session_recovery_timedout() 2342 if (session->leadconn) iscsi_session_recovery_timedout() 2343 wake_up(&session->leadconn->ehwait); iscsi_session_recovery_timedout() 2345 spin_unlock_bh(&session->frwd_lock); iscsi_session_recovery_timedout() 2350 * iscsi_eh_session_reset - drop session and attempt relogin 2353 * This function will wait for a relogin, session termination from 2359 struct iscsi_session *session; iscsi_eh_session_reset() local 2363 session = cls_session->dd_data; iscsi_eh_session_reset() 2364 conn = session->leadconn; iscsi_eh_session_reset() 2366 mutex_lock(&session->eh_mutex); iscsi_eh_session_reset() 2367 spin_lock_bh(&session->frwd_lock); iscsi_eh_session_reset() 2368 if (session->state == ISCSI_STATE_TERMINATE) { iscsi_eh_session_reset() 2370 ISCSI_DBG_EH(session, iscsi_eh_session_reset() 2371 "failing session reset: Could not log back into " iscsi_eh_session_reset() 2372 "%s, %s [age %d]\n", session->targetname, iscsi_eh_session_reset() 2373 conn->persistent_address, session->age); iscsi_eh_session_reset() 2374 spin_unlock_bh(&session->frwd_lock); iscsi_eh_session_reset() 2375 mutex_unlock(&session->eh_mutex); iscsi_eh_session_reset() 2379 spin_unlock_bh(&session->frwd_lock); iscsi_eh_session_reset() 2380 mutex_unlock(&session->eh_mutex); iscsi_eh_session_reset() 2387 ISCSI_DBG_EH(session, "wait for relogin\n"); iscsi_eh_session_reset() 2389 session->state == ISCSI_STATE_TERMINATE || iscsi_eh_session_reset() 2390 session->state == ISCSI_STATE_LOGGED_IN || iscsi_eh_session_reset() 2391 session->state == ISCSI_STATE_RECOVERY_FAILED); iscsi_eh_session_reset() 2395 mutex_lock(&session->eh_mutex); iscsi_eh_session_reset() 2396 spin_lock_bh(&session->frwd_lock); iscsi_eh_session_reset() 2397 if (session->state == ISCSI_STATE_LOGGED_IN) { iscsi_eh_session_reset() 2398 ISCSI_DBG_EH(session, iscsi_eh_session_reset() 2399 "session reset succeeded for %s,%s\n", iscsi_eh_session_reset() 2400 session->targetname, conn->persistent_address); iscsi_eh_session_reset() 2403 spin_unlock_bh(&session->frwd_lock); iscsi_eh_session_reset() 2404 mutex_unlock(&session->eh_mutex); iscsi_eh_session_reset() 2427 struct iscsi_session *session; iscsi_eh_target_reset() local 2433 session = cls_session->dd_data; iscsi_eh_target_reset() 2435 ISCSI_DBG_EH(session, "tgt Reset [sc %p tgt %s]\n", sc, iscsi_eh_target_reset() 2436 session->targetname); iscsi_eh_target_reset() 2438 mutex_lock(&session->eh_mutex); iscsi_eh_target_reset() 2439 spin_lock_bh(&session->frwd_lock); iscsi_eh_target_reset() 2444 if (!session->leadconn || session->state != ISCSI_STATE_LOGGED_IN) iscsi_eh_target_reset() 2446 conn = session->leadconn; iscsi_eh_target_reset() 2456 if (iscsi_exec_task_mgmt_fn(conn, hdr, session->age, iscsi_eh_target_reset() 2457 session->tgt_reset_timeout)) { iscsi_eh_target_reset() 2466 spin_unlock_bh(&session->frwd_lock); iscsi_eh_target_reset() 2475 spin_unlock_bh(&session->frwd_lock); iscsi_eh_target_reset() 2479 spin_lock_bh(&session->frwd_lock); iscsi_eh_target_reset() 2483 spin_unlock_bh(&session->frwd_lock); iscsi_eh_target_reset() 2489 spin_unlock_bh(&session->frwd_lock); iscsi_eh_target_reset() 2491 ISCSI_DBG_EH(session, "tgt %s reset result = %s\n", session->targetname, iscsi_eh_target_reset() 2493 mutex_unlock(&session->eh_mutex); iscsi_eh_target_reset() 2499 * iscsi_eh_recover_target - reset target and possibly the session 2503 * we will escalate to ERL0 session recovery. 2687 "of session teardown event because host already " iscsi_host_dec_session_cnt() 2701 * iscsi_session_setup - create iscsi cls session and host and session 2704 * @cmds_max: session can queue 2709 * a session per scsi host. 2721 struct iscsi_session *session; iscsi_session_setup() local 2771 session = cls_session->dd_data; iscsi_session_setup() 2772 session->cls_session = cls_session; iscsi_session_setup() 2773 session->host = shost; iscsi_session_setup() 2774 session->state = ISCSI_STATE_FREE; iscsi_session_setup() 2775 session->fast_abort = 1; iscsi_session_setup() 2776 session->tgt_reset_timeout = 30; iscsi_session_setup() 2777 session->lu_reset_timeout = 15; iscsi_session_setup() 2778 session->abort_timeout = 10; iscsi_session_setup() 2779 session->scsi_cmds_max = scsi_cmds; iscsi_session_setup() 2780 session->cmds_max = total_cmds; iscsi_session_setup() 2781 session->queued_cmdsn = session->cmdsn = initial_cmdsn; iscsi_session_setup() 2782 session->exp_cmdsn = initial_cmdsn + 1; iscsi_session_setup() 2783 session->max_cmdsn = initial_cmdsn + 1; iscsi_session_setup() 2784 session->max_r2t = 1; iscsi_session_setup() 2785 session->tt = iscsit; iscsi_session_setup() 2786 session->dd_data = cls_session->dd_data + sizeof(*session); iscsi_session_setup() 2788 mutex_init(&session->eh_mutex); iscsi_session_setup() 2789 spin_lock_init(&session->frwd_lock); iscsi_session_setup() 2790 spin_lock_init(&session->back_lock); iscsi_session_setup() 2793 if (iscsi_pool_init(&session->cmdpool, session->cmds_max, iscsi_session_setup() 2794 (void***)&session->cmds, iscsi_session_setup() 2799 for (cmd_i = 0; cmd_i < session->cmds_max; cmd_i++) { iscsi_session_setup() 2800 struct iscsi_task *task = session->cmds[cmd_i]; iscsi_session_setup() 2820 iscsi_pool_free(&session->cmdpool); iscsi_session_setup() 2830 * iscsi_session_teardown - destroy session, host, and cls_session 2831 * @cls_session: iscsi session 2838 struct iscsi_session *session = cls_session->dd_data; iscsi_session_teardown() local 2840 struct Scsi_Host *shost = session->host; iscsi_session_teardown() 2842 iscsi_pool_free(&session->cmdpool); iscsi_session_teardown() 2844 kfree(session->password); iscsi_session_teardown() 2845 kfree(session->password_in); iscsi_session_teardown() 2846 kfree(session->username); iscsi_session_teardown() 2847 kfree(session->username_in); iscsi_session_teardown() 2848 kfree(session->targetname); iscsi_session_teardown() 2849 kfree(session->targetalias); iscsi_session_teardown() 2850 kfree(session->initiatorname); iscsi_session_teardown() 2851 kfree(session->boot_root); iscsi_session_teardown() 2852 kfree(session->boot_nic); iscsi_session_teardown() 2853 kfree(session->boot_target); iscsi_session_teardown() 2854 kfree(session->ifacename); iscsi_session_teardown() 2855 kfree(session->portal_type); iscsi_session_teardown() 2856 kfree(session->discovery_parent_type); iscsi_session_teardown() 2874 struct iscsi_session *session = cls_session->dd_data; iscsi_conn_setup() local 2887 conn->session = session; iscsi_conn_setup() 2904 spin_lock_bh(&session->frwd_lock); iscsi_conn_setup() 2905 if (!kfifo_out(&session->cmdpool.queue, iscsi_conn_setup() 2908 spin_unlock_bh(&session->frwd_lock); iscsi_conn_setup() 2911 spin_unlock_bh(&session->frwd_lock); iscsi_conn_setup() 2925 kfifo_in(&session->cmdpool.queue, (void*)&conn->login_task, iscsi_conn_setup() 2943 struct iscsi_session *session = conn->session; iscsi_conn_teardown() local 2947 mutex_lock(&session->eh_mutex); iscsi_conn_teardown() 2948 spin_lock_bh(&session->frwd_lock); iscsi_conn_teardown() 2950 if (session->leadconn == conn) { iscsi_conn_teardown() 2954 session->state = ISCSI_STATE_TERMINATE; iscsi_conn_teardown() 2957 spin_unlock_bh(&session->frwd_lock); iscsi_conn_teardown() 2962 spin_lock_bh(&session->frwd_lock); iscsi_conn_teardown() 2968 spin_lock_bh(&session->back_lock); iscsi_conn_teardown() 2969 kfifo_in(&session->cmdpool.queue, (void*)&conn->login_task, iscsi_conn_teardown() 2971 spin_unlock_bh(&session->back_lock); iscsi_conn_teardown() 2972 if (session->leadconn == conn) iscsi_conn_teardown() 2973 session->leadconn = NULL; iscsi_conn_teardown() 2974 spin_unlock_bh(&session->frwd_lock); iscsi_conn_teardown() 2975 mutex_unlock(&session->eh_mutex); iscsi_conn_teardown() 2984 struct iscsi_session *session = conn->session; iscsi_conn_start() local 2986 if (!session) { iscsi_conn_start() 2992 if ((session->imm_data_en || !session->initial_r2t_en) && iscsi_conn_start() 2993 session->first_burst > session->max_burst) { iscsi_conn_start() 2996 session->first_burst, session->max_burst); iscsi_conn_start() 3012 spin_lock_bh(&session->frwd_lock); iscsi_conn_start() 3014 session->state = ISCSI_STATE_LOGGED_IN; iscsi_conn_start() 3015 session->queued_cmdsn = session->cmdsn; iscsi_conn_start() 3031 session->age++; iscsi_conn_start() 3032 if (session->age == 16) iscsi_conn_start() 3033 session->age = 0; iscsi_conn_start() 3041 spin_unlock_bh(&session->frwd_lock); iscsi_conn_start() 3043 iscsi_unblock_session(session->cls_session); iscsi_conn_start() 3050 fail_mgmt_tasks(struct iscsi_session *session, struct iscsi_conn *conn) fail_mgmt_tasks() argument 3055 for (i = 0; i < conn->session->cmds_max; i++) { fail_mgmt_tasks() 3056 task = conn->session->cmds[i]; fail_mgmt_tasks() 3063 ISCSI_DBG_SESSION(conn->session, fail_mgmt_tasks() 3074 static void iscsi_start_session_recovery(struct iscsi_session *session, iscsi_start_session_recovery() argument 3079 mutex_lock(&session->eh_mutex); iscsi_start_session_recovery() 3080 spin_lock_bh(&session->frwd_lock); iscsi_start_session_recovery() 3082 spin_unlock_bh(&session->frwd_lock); iscsi_start_session_recovery() 3083 mutex_unlock(&session->eh_mutex); iscsi_start_session_recovery() 3093 session->state = ISCSI_STATE_TERMINATE; iscsi_start_session_recovery() 3095 session->state = ISCSI_STATE_IN_RECOVERY; iscsi_start_session_recovery() 3099 spin_unlock_bh(&session->frwd_lock); iscsi_start_session_recovery() 3104 spin_lock_bh(&session->frwd_lock); iscsi_start_session_recovery() 3106 spin_unlock_bh(&session->frwd_lock); iscsi_start_session_recovery() 3117 if (session->state == ISCSI_STATE_IN_RECOVERY && iscsi_start_session_recovery() 3119 ISCSI_DBG_SESSION(session, "blocking session\n"); iscsi_start_session_recovery() 3120 iscsi_block_session(session->cls_session); iscsi_start_session_recovery() 3127 spin_lock_bh(&session->frwd_lock); iscsi_start_session_recovery() 3129 fail_mgmt_tasks(session, conn); iscsi_start_session_recovery() 3131 spin_unlock_bh(&session->frwd_lock); iscsi_start_session_recovery() 3132 mutex_unlock(&session->eh_mutex); iscsi_start_session_recovery() 3138 struct iscsi_session *session = conn->session; iscsi_conn_stop() local 3143 iscsi_start_session_recovery(session, conn, flag); iscsi_conn_stop() 3155 struct iscsi_session *session = cls_session->dd_data; iscsi_conn_bind() local 3158 spin_lock_bh(&session->frwd_lock); iscsi_conn_bind() 3160 session->leadconn = conn; iscsi_conn_bind() 3161 spin_unlock_bh(&session->frwd_lock); iscsi_conn_bind() 3195 struct iscsi_session *session = conn->session; iscsi_set_param() local 3200 sscanf(buf, "%d", &session->fast_abort); iscsi_set_param() 3203 sscanf(buf, "%d", &session->abort_timeout); iscsi_set_param() 3206 sscanf(buf, "%d", &session->lu_reset_timeout); iscsi_set_param() 3209 sscanf(buf, "%d", &session->tgt_reset_timeout); iscsi_set_param() 3230 sscanf(buf, "%d", &session->initial_r2t_en); iscsi_set_param() 3233 sscanf(buf, "%hu", &session->max_r2t); iscsi_set_param() 3236 sscanf(buf, "%d", &session->imm_data_en); iscsi_set_param() 3239 sscanf(buf, "%d", &session->first_burst); iscsi_set_param() 3242 sscanf(buf, "%d", &session->max_burst); iscsi_set_param() 3245 sscanf(buf, "%d", &session->pdu_inorder_en); iscsi_set_param() 3248 sscanf(buf, "%d", &session->dataseq_inorder_en); iscsi_set_param() 3251 sscanf(buf, "%d", &session->erl); iscsi_set_param() 3257 return iscsi_switch_str_param(&session->username, buf); iscsi_set_param() 3259 return iscsi_switch_str_param(&session->username_in, buf); iscsi_set_param() 3261 return iscsi_switch_str_param(&session->password, buf); iscsi_set_param() 3263 return iscsi_switch_str_param(&session->password_in, buf); iscsi_set_param() 3265 return iscsi_switch_str_param(&session->targetname, buf); iscsi_set_param() 3267 return iscsi_switch_str_param(&session->targetalias, buf); iscsi_set_param() 3269 sscanf(buf, "%d", &session->tpgt); iscsi_set_param() 3277 return iscsi_switch_str_param(&session->ifacename, buf); iscsi_set_param() 3279 return iscsi_switch_str_param(&session->initiatorname, buf); iscsi_set_param() 3281 return iscsi_switch_str_param(&session->boot_root, buf); iscsi_set_param() 3283 return iscsi_switch_str_param(&session->boot_nic, buf); iscsi_set_param() 3285 return iscsi_switch_str_param(&session->boot_target, buf); iscsi_set_param() 3287 return iscsi_switch_str_param(&session->portal_type, buf); iscsi_set_param() 3289 return iscsi_switch_str_param(&session->discovery_parent_type, iscsi_set_param() 3293 session->discovery_sess = !!val; iscsi_set_param() 3308 struct iscsi_session *session = cls_session->dd_data; iscsi_session_get_param() local 3313 len = sprintf(buf, "%d\n", session->fast_abort); iscsi_session_get_param() 3316 len = sprintf(buf, "%d\n", session->abort_timeout); iscsi_session_get_param() 3319 len = sprintf(buf, "%d\n", session->lu_reset_timeout); iscsi_session_get_param() 3322 len = sprintf(buf, "%d\n", session->tgt_reset_timeout); iscsi_session_get_param() 3325 len = sprintf(buf, "%d\n", session->initial_r2t_en); iscsi_session_get_param() 3328 len = sprintf(buf, "%hu\n", session->max_r2t); iscsi_session_get_param() 3331 len = sprintf(buf, "%d\n", session->imm_data_en); iscsi_session_get_param() 3334 len = sprintf(buf, "%u\n", session->first_burst); iscsi_session_get_param() 3337 len = sprintf(buf, "%u\n", session->max_burst); iscsi_session_get_param() 3340 len = sprintf(buf, "%d\n", session->pdu_inorder_en); iscsi_session_get_param() 3343 len = sprintf(buf, "%d\n", session->dataseq_inorder_en); iscsi_session_get_param() 3346 len = sprintf(buf, "%d\n", session->def_taskmgmt_tmo); iscsi_session_get_param() 3349 len = sprintf(buf, "%d\n", session->erl); iscsi_session_get_param() 3352 len = sprintf(buf, "%s\n", session->targetname); iscsi_session_get_param() 3355 len = sprintf(buf, "%s\n", session->targetalias); iscsi_session_get_param() 3358 len = sprintf(buf, "%d\n", session->tpgt); iscsi_session_get_param() 3361 len = sprintf(buf, "%s\n", session->username); iscsi_session_get_param() 3364 len = sprintf(buf, "%s\n", session->username_in); iscsi_session_get_param() 3367 len = sprintf(buf, "%s\n", session->password); iscsi_session_get_param() 3370 len = sprintf(buf, "%s\n", session->password_in); iscsi_session_get_param() 3373 len = sprintf(buf, "%s\n", session->ifacename); iscsi_session_get_param() 3376 len = sprintf(buf, "%s\n", session->initiatorname); iscsi_session_get_param() 3379 len = sprintf(buf, "%s\n", session->boot_root); iscsi_session_get_param() 3382 len = sprintf(buf, "%s\n", session->boot_nic); iscsi_session_get_param() 3385 len = sprintf(buf, "%s\n", session->boot_target); iscsi_session_get_param() 3388 len = sprintf(buf, "%u\n", session->auto_snd_tgt_disable); iscsi_session_get_param() 3391 len = sprintf(buf, "%u\n", session->discovery_sess); iscsi_session_get_param() 3394 len = sprintf(buf, "%s\n", session->portal_type); iscsi_session_get_param() 3397 len = sprintf(buf, "%u\n", session->chap_auth_en); iscsi_session_get_param() 3400 len = sprintf(buf, "%u\n", session->discovery_logout_en); iscsi_session_get_param() 3403 len = sprintf(buf, "%u\n", session->bidi_chap_en); iscsi_session_get_param() 3406 len = sprintf(buf, "%u\n", session->discovery_auth_optional); iscsi_session_get_param() 3409 len = sprintf(buf, "%d\n", session->time2wait); iscsi_session_get_param() 3412 len = sprintf(buf, "%d\n", session->time2retain); iscsi_session_get_param() 3415 len = sprintf(buf, "%u\n", session->tsid); iscsi_session_get_param() 3419 session->isid[0], session->isid[1], iscsi_session_get_param() 3420 session->isid[2], session->isid[3], iscsi_session_get_param() 3421 session->isid[4], session->isid[5]); iscsi_session_get_param() 3424 len = sprintf(buf, "%u\n", session->discovery_parent_idx); iscsi_session_get_param() 3427 if (session->discovery_parent_type) iscsi_session_get_param() 3429 session->discovery_parent_type); iscsi_session_get_param()
|
H A D | scsi_transport_iscsi.c | 82 static atomic_t iscsi_session_nr; /* sysfs session id for next new session */ 804 /* flash node session attrs show */ 822 /* Flash node session attributes */ 982 WARN_ONCE(1, "Invalid flashnode session attr"); iscsi_flashnode_sess_attr_is_visible() 1219 * iscsi_create_flashnode_sess - Add flashnode session entry in sysfs 1225 * Adds a sysfs entry for the flashnode session attributes 1269 * @fnode_sess: pointer to the parent flashnode session entry 1353 * iscsi_get_flashnode_by_index -finds flashnode session entry by index 1357 * Finds the flashnode session object for the passed index 1360 * pointer to found flashnode session object on success 1378 * iscsi_find_flashnode_sess - finds flashnode session entry 1383 * Finds the flashnode session object comparing the data passed using logic 1387 * pointer to found flashnode session device object on success 1400 * @fnode_sess: pointer to parent flashnode session entry 1426 * iscsi_destroy_flashnode_sess - destroy flashnode session entry 1427 * @fnode_sess: pointer to flashnode session entry to be destroyed 1429 * Deletes the flashnode session entry and all children flashnode connection 1456 * iscsi_destroy_all_flashnode - destroy all flashnode session entries 1459 * Destroys all the flashnode session entries and all corresponding children 1624 * Returns the matching session to a given sid 1688 int iscsi_session_chkready(struct iscsi_cls_session *session) iscsi_session_chkready() argument 1693 spin_lock_irqsave(&session->lock, flags); iscsi_session_chkready() 1694 switch (session->state) { iscsi_session_chkready() 1708 spin_unlock_irqrestore(&session->lock, flags); iscsi_session_chkready() 1713 int iscsi_is_session_online(struct iscsi_cls_session *session) iscsi_is_session_online() argument 1718 spin_lock_irqsave(&session->lock, flags); iscsi_is_session_online() 1719 if (session->state == ISCSI_SESSION_LOGGED_IN) iscsi_is_session_online() 1721 spin_unlock_irqrestore(&session->lock, flags); iscsi_is_session_online() 1728 struct iscsi_cls_session *session = iscsi_dev_to_session(dev); iscsi_session_release() local 1731 shost = iscsi_session_to_shost(session); iscsi_session_release() 1733 ISCSI_DBG_TRANS_SESSION(session, "Completing session release\n"); iscsi_session_release() 1734 kfree(session); iscsi_session_release() 1773 * qla4xxx will have kicked off some session unblocks before calling iscsi_scan_finished() 1789 struct iscsi_cls_session *session; iscsi_user_scan_session() local 1798 session = iscsi_dev_to_session(dev); iscsi_user_scan_session() 1800 ISCSI_DBG_TRANS_SESSION(session, "Scanning session\n"); iscsi_user_scan_session() 1802 shost = iscsi_session_to_shost(session); iscsi_user_scan_session() 1806 spin_lock_irqsave(&session->lock, flags); iscsi_user_scan_session() 1807 if (session->state != ISCSI_SESSION_LOGGED_IN) { iscsi_user_scan_session() 1808 spin_unlock_irqrestore(&session->lock, flags); iscsi_user_scan_session() 1811 id = session->target_id; iscsi_user_scan_session() 1812 spin_unlock_irqrestore(&session->lock, flags); iscsi_user_scan_session() 1819 scsi_scan_target(&session->dev, 0, id, iscsi_user_scan_session() 1825 ISCSI_DBG_TRANS_SESSION(session, "Completed session scan\n"); iscsi_user_scan_session() 1844 struct iscsi_cls_session *session = iscsi_scan_session() local 1846 struct Scsi_Host *shost = iscsi_session_to_shost(session); iscsi_scan_session() 1854 iscsi_user_scan_session(&session->dev, &scan_data); iscsi_scan_session() 1859 * iscsi_block_scsi_eh - block scsi eh until session state has transistioned 1862 * If the session is down this function will wait for the recovery 1863 * timer to fire or for the session to be logged back in. If the 1869 struct iscsi_cls_session *session = iscsi_block_scsi_eh() local 1874 spin_lock_irqsave(&session->lock, flags); iscsi_block_scsi_eh() 1875 while (session->state != ISCSI_SESSION_LOGGED_IN) { iscsi_block_scsi_eh() 1876 if (session->state == ISCSI_SESSION_FREE) { iscsi_block_scsi_eh() 1880 spin_unlock_irqrestore(&session->lock, flags); iscsi_block_scsi_eh() 1882 spin_lock_irqsave(&session->lock, flags); iscsi_block_scsi_eh() 1884 spin_unlock_irqrestore(&session->lock, flags); iscsi_block_scsi_eh() 1891 struct iscsi_cls_session *session = session_recovery_timedout() local 1896 iscsi_cls_session_printk(KERN_INFO, session, session_recovery_timedout() 1897 "session recovery timed out after %d secs\n", session_recovery_timedout() 1898 session->recovery_tmo); session_recovery_timedout() 1900 spin_lock_irqsave(&session->lock, flags); session_recovery_timedout() 1901 switch (session->state) { session_recovery_timedout() 1903 session->state = ISCSI_SESSION_FREE; session_recovery_timedout() 1908 spin_unlock_irqrestore(&session->lock, flags); session_recovery_timedout() 1911 spin_unlock_irqrestore(&session->lock, flags); session_recovery_timedout() 1913 if (session->transport->session_recovery_timedout) session_recovery_timedout() 1914 session->transport->session_recovery_timedout(session); session_recovery_timedout() 1916 ISCSI_DBG_TRANS_SESSION(session, "Unblocking SCSI target\n"); session_recovery_timedout() 1917 scsi_target_unblock(&session->dev, SDEV_TRANSPORT_OFFLINE); session_recovery_timedout() 1918 ISCSI_DBG_TRANS_SESSION(session, "Completed unblocking SCSI target\n"); session_recovery_timedout() 1923 struct iscsi_cls_session *session = __iscsi_unblock_session() local 1926 struct Scsi_Host *shost = iscsi_session_to_shost(session); __iscsi_unblock_session() 1930 ISCSI_DBG_TRANS_SESSION(session, "Unblocking session\n"); __iscsi_unblock_session() 1935 cancel_delayed_work(&session->recovery_work); __iscsi_unblock_session() 1936 spin_lock_irqsave(&session->lock, flags); __iscsi_unblock_session() 1937 session->state = ISCSI_SESSION_LOGGED_IN; __iscsi_unblock_session() 1938 spin_unlock_irqrestore(&session->lock, flags); __iscsi_unblock_session() 1940 scsi_target_unblock(&session->dev, SDEV_RUNNING); __iscsi_unblock_session() 1947 if (scsi_queue_work(shost, &session->scan_work)) __iscsi_unblock_session() 1950 ISCSI_DBG_TRANS_SESSION(session, "Completed unblocking session\n"); __iscsi_unblock_session() 1954 * iscsi_unblock_session - set a session as logged in and start IO. 1955 * @session: iscsi session 1957 * Mark a session as ready to accept IO. 1959 void iscsi_unblock_session(struct iscsi_cls_session *session) iscsi_unblock_session() argument 1961 queue_work(iscsi_eh_timer_workq, &session->unblock_work); iscsi_unblock_session() 1972 struct iscsi_cls_session *session = __iscsi_block_session() local 1977 ISCSI_DBG_TRANS_SESSION(session, "Blocking session\n"); __iscsi_block_session() 1978 spin_lock_irqsave(&session->lock, flags); __iscsi_block_session() 1979 session->state = ISCSI_SESSION_FAILED; __iscsi_block_session() 1980 spin_unlock_irqrestore(&session->lock, flags); __iscsi_block_session() 1981 scsi_target_block(&session->dev); __iscsi_block_session() 1982 ISCSI_DBG_TRANS_SESSION(session, "Completed SCSI target blocking\n"); __iscsi_block_session() 1983 if (session->recovery_tmo >= 0) __iscsi_block_session() 1985 &session->recovery_work, __iscsi_block_session() 1986 session->recovery_tmo * HZ); __iscsi_block_session() 1989 void iscsi_block_session(struct iscsi_cls_session *session) iscsi_block_session() argument 1991 queue_work(iscsi_eh_timer_workq, &session->block_work); iscsi_block_session() 1997 struct iscsi_cls_session *session = __iscsi_unbind_session() local 2000 struct Scsi_Host *shost = iscsi_session_to_shost(session); __iscsi_unbind_session() 2005 ISCSI_DBG_TRANS_SESSION(session, "Unbinding session\n"); __iscsi_unbind_session() 2009 spin_lock_irqsave(&session->lock, flags); __iscsi_unbind_session() 2010 if (session->target_id == ISCSI_MAX_TARGET) { __iscsi_unbind_session() 2011 spin_unlock_irqrestore(&session->lock, flags); __iscsi_unbind_session() 2016 target_id = session->target_id; __iscsi_unbind_session() 2017 session->target_id = ISCSI_MAX_TARGET; __iscsi_unbind_session() 2018 spin_unlock_irqrestore(&session->lock, flags); __iscsi_unbind_session() 2021 if (session->ida_used) __iscsi_unbind_session() 2024 scsi_remove_target(&session->dev); __iscsi_unbind_session() 2025 iscsi_session_event(session, ISCSI_KEVENT_UNBIND_SESSION); __iscsi_unbind_session() 2026 ISCSI_DBG_TRANS_SESSION(session, "Completed target removal\n"); __iscsi_unbind_session() 2033 struct iscsi_cls_session *session; iscsi_alloc_session() local 2035 session = kzalloc(sizeof(*session) + dd_size, iscsi_alloc_session() 2037 if (!session) iscsi_alloc_session() 2040 session->transport = transport; iscsi_alloc_session() 2041 session->creator = -1; iscsi_alloc_session() 2042 session->recovery_tmo = 120; iscsi_alloc_session() 2043 session->state = ISCSI_SESSION_FREE; iscsi_alloc_session() 2044 INIT_DELAYED_WORK(&session->recovery_work, session_recovery_timedout); iscsi_alloc_session() 2045 INIT_LIST_HEAD(&session->sess_list); iscsi_alloc_session() 2046 INIT_WORK(&session->unblock_work, __iscsi_unblock_session); iscsi_alloc_session() 2047 INIT_WORK(&session->block_work, __iscsi_block_session); iscsi_alloc_session() 2048 INIT_WORK(&session->unbind_work, __iscsi_unbind_session); iscsi_alloc_session() 2049 INIT_WORK(&session->scan_work, iscsi_scan_session); iscsi_alloc_session() 2050 spin_lock_init(&session->lock); iscsi_alloc_session() 2054 session->dev.parent = &shost->shost_gendev; iscsi_alloc_session() 2055 session->dev.release = iscsi_session_release; iscsi_alloc_session() 2056 device_initialize(&session->dev); iscsi_alloc_session() 2058 session->dd_data = &session[1]; iscsi_alloc_session() 2060 ISCSI_DBG_TRANS_SESSION(session, "Completed session allocation\n"); iscsi_alloc_session() 2061 return session; iscsi_alloc_session() 2065 int iscsi_add_session(struct iscsi_cls_session *session, unsigned int target_id) iscsi_add_session() argument 2067 struct Scsi_Host *shost = iscsi_session_to_shost(session); iscsi_add_session() 2074 session->sid = atomic_add_return(1, &iscsi_session_nr); iscsi_add_session() 2080 iscsi_cls_session_printk(KERN_ERR, session, iscsi_add_session() 2084 session->target_id = (unsigned int)id; iscsi_add_session() 2085 session->ida_used = true; iscsi_add_session() 2087 session->target_id = target_id; iscsi_add_session() 2089 dev_set_name(&session->dev, "session%u", session->sid); iscsi_add_session() 2090 err = device_add(&session->dev); iscsi_add_session() 2092 iscsi_cls_session_printk(KERN_ERR, session, iscsi_add_session() 2093 "could not register session's dev\n"); iscsi_add_session() 2096 transport_register_device(&session->dev); iscsi_add_session() 2099 list_add(&session->sess_list, &sesslist); iscsi_add_session() 2102 iscsi_session_event(session, ISCSI_KEVENT_CREATE_SESSION); iscsi_add_session() 2103 ISCSI_DBG_TRANS_SESSION(session, "Completed session adding\n"); iscsi_add_session() 2107 if (session->ida_used) iscsi_add_session() 2108 ida_simple_remove(&iscsi_sess_ida, session->target_id); iscsi_add_session() 2115 * iscsi_create_session - create iscsi class session 2127 struct iscsi_cls_session *session; iscsi_create_session() local 2129 session = iscsi_alloc_session(shost, transport, dd_size); iscsi_create_session() 2130 if (!session) iscsi_create_session() 2133 if (iscsi_add_session(session, target_id)) { iscsi_create_session() 2134 iscsi_free_session(session); iscsi_create_session() 2137 return session; iscsi_create_session() 2163 void iscsi_remove_session(struct iscsi_cls_session *session) iscsi_remove_session() argument 2165 struct Scsi_Host *shost = iscsi_session_to_shost(session); iscsi_remove_session() 2169 ISCSI_DBG_TRANS_SESSION(session, "Removing session\n"); iscsi_remove_session() 2172 list_del(&session->sess_list); iscsi_remove_session() 2178 if (!cancel_delayed_work(&session->recovery_work)) iscsi_remove_session() 2184 * removing the session. iscsi_remove_session() 2186 spin_lock_irqsave(&session->lock, flags); iscsi_remove_session() 2187 session->state = ISCSI_SESSION_FREE; iscsi_remove_session() 2188 spin_unlock_irqrestore(&session->lock, flags); iscsi_remove_session() 2190 scsi_target_unblock(&session->dev, SDEV_TRANSPORT_OFFLINE); iscsi_remove_session() 2193 __iscsi_unbind_session(&session->unbind_work); iscsi_remove_session() 2195 /* hw iscsi may not have removed all connections from session */ iscsi_remove_session() 2196 err = device_for_each_child(&session->dev, NULL, iscsi_remove_session() 2199 iscsi_cls_session_printk(KERN_ERR, session, iscsi_remove_session() 2201 "for session. Error %d.\n", err); iscsi_remove_session() 2203 transport_unregister_device(&session->dev); iscsi_remove_session() 2205 ISCSI_DBG_TRANS_SESSION(session, "Completing session removal\n"); iscsi_remove_session() 2206 device_del(&session->dev); iscsi_remove_session() 2210 void iscsi_free_session(struct iscsi_cls_session *session) iscsi_free_session() argument 2212 ISCSI_DBG_TRANS_SESSION(session, "Freeing session\n"); iscsi_free_session() 2213 iscsi_session_event(session, ISCSI_KEVENT_DESTROY_SESSION); iscsi_free_session() 2214 put_device(&session->dev); iscsi_free_session() 2219 * iscsi_destroy_session - destroy iscsi session 2220 * @session: iscsi_session 2225 int iscsi_destroy_session(struct iscsi_cls_session *session) iscsi_destroy_session() argument 2227 iscsi_remove_session(session); iscsi_destroy_session() 2228 ISCSI_DBG_TRANS_SESSION(session, "Completing session destruction\n"); iscsi_destroy_session() 2229 iscsi_free_session(session); iscsi_destroy_session() 2236 * @session: iscsi cls session 2241 * is child of the session so cid must be unique for all connections 2242 * on the session. 2250 iscsi_create_conn(struct iscsi_cls_session *session, int dd_size, uint32_t cid) iscsi_create_conn() argument 2252 struct iscsi_transport *transport = session->transport; iscsi_create_conn() 2269 if (!get_device(&session->dev)) iscsi_create_conn() 2272 dev_set_name(&conn->dev, "connection%d:%u", session->sid, cid); iscsi_create_conn() 2273 conn->dev.parent = &session->dev; iscsi_create_conn() 2277 iscsi_cls_session_printk(KERN_ERR, session, "could not " iscsi_create_conn() 2291 put_device(&session->dev); iscsi_create_conn() 2301 * @conn: iscsi cls session 2635 * iscsi_session_event - send session destr. completion event 2636 * @session: iscsi class session 2639 int iscsi_session_event(struct iscsi_cls_session *session, iscsi_session_event() argument 2649 priv = iscsi_if_transport_lookup(session->transport); iscsi_session_event() 2652 shost = iscsi_session_to_shost(session); iscsi_session_event() 2656 iscsi_cls_session_printk(KERN_ERR, session, iscsi_session_event() 2657 "Cannot notify userspace of session " iscsi_session_event() 2664 ev->transport_handle = iscsi_handle(session->transport); iscsi_session_event() 2670 ev->r.d_session.sid = session->sid; iscsi_session_event() 2674 ev->r.c_session_ret.sid = session->sid; iscsi_session_event() 2678 ev->r.unbind_session.sid = session->sid; iscsi_session_event() 2681 iscsi_cls_session_printk(KERN_ERR, session, "Invalid event " iscsi_session_event() 2693 iscsi_cls_session_printk(KERN_ERR, session, iscsi_session_event() 2694 "Cannot notify userspace of session " iscsi_session_event() 2698 ISCSI_DBG_TRANS_SESSION(session, "Completed handling event %d rc %d\n", iscsi_session_event() 2711 struct iscsi_cls_session *session; iscsi_if_create_session() local 2714 session = transport->create_session(ep, cmds_max, queue_depth, iscsi_if_create_session() 2716 if (!session) iscsi_if_create_session() 2719 session->creator = pid; iscsi_if_create_session() 2720 shost = iscsi_session_to_shost(session); iscsi_if_create_session() 2722 ev->r.c_session_ret.sid = session->sid; iscsi_if_create_session() 2723 ISCSI_DBG_TRANS_SESSION(session, iscsi_if_create_session() 2724 "Completed creating transport session\n"); iscsi_if_create_session() 2732 struct iscsi_cls_session *session; iscsi_if_create_conn() local 2734 session = iscsi_session_lookup(ev->u.c_conn.sid); iscsi_if_create_conn() 2735 if (!session) { iscsi_if_create_conn() 2736 printk(KERN_ERR "iscsi: invalid session %d.\n", iscsi_if_create_conn() 2741 conn = transport->create_conn(session, ev->u.c_conn.cid); iscsi_if_create_conn() 2743 iscsi_cls_session_printk(KERN_ERR, session, iscsi_if_create_conn() 2748 ev->r.c_conn_ret.sid = session->sid; iscsi_if_create_conn() 2776 struct iscsi_cls_session *session; iscsi_set_param() local 2779 session = iscsi_session_lookup(ev->u.set_param.sid); iscsi_set_param() 2781 if (!conn || !session) iscsi_set_param() 2787 session->recovery_tmo = value; iscsi_set_param() 3385 struct iscsi_cls_session *session; iscsi_logout_flashnode_sid() local 3401 session = iscsi_session_lookup(ev->u.logout_flashnode_sid.sid); iscsi_logout_flashnode_sid() 3402 if (!session) { iscsi_logout_flashnode_sid() 3403 pr_err("%s could not find session id %u\n", iscsi_logout_flashnode_sid() 3409 err = transport->logout_flashnode_sid(session); iscsi_logout_flashnode_sid() 3496 struct iscsi_cls_session *session; iscsi_if_recv_msg() local 3535 session = iscsi_session_lookup(ev->u.d_session.sid); iscsi_if_recv_msg() 3536 if (session) iscsi_if_recv_msg() 3537 transport->destroy_session(session); iscsi_if_recv_msg() 3542 session = iscsi_session_lookup(ev->u.d_session.sid); iscsi_if_recv_msg() 3543 if (session) iscsi_if_recv_msg() 3544 scsi_queue_work(iscsi_session_to_shost(session), iscsi_if_recv_msg() 3545 &session->unbind_work); iscsi_if_recv_msg() 3556 session = iscsi_session_lookup(ev->u.b_conn.sid); iscsi_if_recv_msg() 3562 if (!session || !conn) { iscsi_if_recv_msg() 3567 ev->r.retcode = transport->bind_conn(session, conn, iscsi_if_recv_msg() 3935 * iSCSI session attrs 3942 struct iscsi_cls_session *session = \ 3944 struct iscsi_transport *t = session->transport; \ 3948 return t->get_session_param(session, param, buf); \ 4001 struct iscsi_cls_session *session = iscsi_dev_to_session(dev->parent); show_priv_session_state() local 4002 return sprintf(buf, "%s\n", iscsi_session_state_name(session->state)); show_priv_session_state() 4010 struct iscsi_cls_session *session = iscsi_dev_to_session(dev->parent); show_priv_session_creator() local 4011 return sprintf(buf, "%d\n", session->creator); show_priv_session_creator() 4019 struct iscsi_cls_session *session = iscsi_dev_to_session(dev->parent); show_priv_session_target_id() local 4020 return sprintf(buf, "%d\n", session->target_id); show_priv_session_target_id() 4030 struct iscsi_cls_session *session = \ 4032 if (session->field == -1) \ 4034 return sprintf(buf, format"\n", session->field); \ 4045 struct iscsi_cls_session *session = \ 4047 if ((session->state == ISCSI_SESSION_FREE) || \ 4048 (session->state == ISCSI_SESSION_FAILED)) \ 4051 session->field = -1; \ 4056 session->field = val; \ 4121 struct iscsi_cls_session *session = transport_class_to_session(cdev); iscsi_session_attr_is_visible() local 4122 struct iscsi_transport *t = session->transport; iscsi_session_attr_is_visible() 4214 WARN_ONCE(1, "Invalid session attr"); iscsi_session_attr_is_visible() 4352 struct iscsi_cls_session *session; iscsi_session_match() local 4359 session = iscsi_dev_to_session(dev); iscsi_session_match() 4360 shost = iscsi_session_to_shost(session); iscsi_session_match() 4374 struct iscsi_cls_session *session; iscsi_conn_match() local 4383 session = iscsi_dev_to_session(conn->dev.parent); iscsi_conn_match() 4384 shost = iscsi_session_to_shost(session); iscsi_conn_match() 4458 /* session parameters */ iscsi_register_transport()
|
H A D | libiscsi_tcp.c | 246 if (!(tcp_conn->iscsi_conn->session->tt->caps & CAP_PADDING_OFFLOAD)) { iscsi_tcp_segment_done() 437 !(conn->session->tt->caps & CAP_DIGEST_OFFLOAD)) iscsi_tcp_data_recv_prep() 449 * must be called with session back_lock 496 iscsi_update_cmdsn(conn->session, (struct iscsi_nopin*)rhdr); iscsi_tcp_data_in() 528 struct iscsi_session *session = conn->session; iscsi_tcp_r2t_rsp() local 552 iscsi_update_cmdsn(session, (struct iscsi_nopin*)rhdr); iscsi_tcp_r2t_rsp() 554 if (!task->sc || session->state != ISCSI_STATE_LOGGED_IN) { iscsi_tcp_r2t_rsp() 568 if (data_length > session->max_burst) iscsi_tcp_r2t_rsp() 571 data_length, session->max_burst); iscsi_tcp_r2t_rsp() 676 spin_lock(&conn->session->back_lock); iscsi_tcp_hdr_dissect() 683 spin_unlock(&conn->session->back_lock); iscsi_tcp_hdr_dissect() 701 !(conn->session->tt->caps & CAP_DIGEST_OFFLOAD)) iscsi_tcp_hdr_dissect() 716 spin_unlock(&conn->session->back_lock); iscsi_tcp_hdr_dissect() 720 spin_unlock(&conn->session->back_lock); iscsi_tcp_hdr_dissect() 730 spin_lock(&conn->session->back_lock); iscsi_tcp_hdr_dissect() 732 spin_unlock(&conn->session->back_lock); iscsi_tcp_hdr_dissect() 739 spin_lock(&conn->session->frwd_lock); iscsi_tcp_hdr_dissect() 741 spin_unlock(&conn->session->frwd_lock); iscsi_tcp_hdr_dissect() 832 !(conn->session->tt->caps & CAP_DIGEST_OFFLOAD)) { iscsi_tcp_hdr_recv_done() 971 return conn->session->tt->init_pdu(task, 0, task->data_count); iscsi_tcp_task_init() 981 err = conn->session->tt->init_pdu(task, 0, task->imm_count); iscsi_tcp_task_init() 1036 struct iscsi_session *session = conn->session; iscsi_tcp_task_xmit() local 1042 rc = session->tt->xmit_pdu(task); iscsi_tcp_task_xmit() 1064 rc = conn->session->tt->alloc_pdu(task, ISCSI_OP_SCSI_DATA_OUT); iscsi_tcp_task_xmit() 1073 rc = conn->session->tt->init_pdu(task, r2t->data_offset + r2t->sent, iscsi_tcp_task_xmit() 1118 int iscsi_tcp_r2tpool_alloc(struct iscsi_session *session) iscsi_tcp_r2tpool_alloc() argument 1126 for (cmd_i = 0; cmd_i < session->cmds_max; cmd_i++) { iscsi_tcp_r2tpool_alloc() 1127 struct iscsi_task *task = session->cmds[cmd_i]; iscsi_tcp_r2tpool_alloc() 1138 session->max_r2t * 2, NULL, iscsi_tcp_r2tpool_alloc() 1145 session->max_r2t * 4 * sizeof(void*), GFP_KERNEL)) { iscsi_tcp_r2tpool_alloc() 1157 struct iscsi_task *task = session->cmds[i]; iscsi_tcp_r2tpool_alloc() 1167 void iscsi_tcp_r2tpool_free(struct iscsi_session *session) iscsi_tcp_r2tpool_free() argument 1171 for (i = 0; i < session->cmds_max; i++) { iscsi_tcp_r2tpool_free() 1172 struct iscsi_task *task = session->cmds[i]; iscsi_tcp_r2tpool_free() 1183 struct iscsi_session *session = conn->session; iscsi_tcp_set_max_r2t() local 1187 if (session->max_r2t == r2ts) iscsi_tcp_set_max_r2t() 1193 session->max_r2t = r2ts; iscsi_tcp_set_max_r2t() 1194 iscsi_tcp_r2tpool_free(session); iscsi_tcp_set_max_r2t() 1195 return iscsi_tcp_r2tpool_alloc(session); iscsi_tcp_set_max_r2t()
|
H A D | iscsi_tcp.c | 119 (conn->session->state != ISCSI_STATE_LOGGING_OUT) && iscsi_sw_sk_state_check() 165 struct iscsi_session *session; iscsi_sw_tcp_state_change() local 174 session = conn->session; iscsi_sw_tcp_state_change() 584 struct iscsi_session *session = conn->session; iscsi_sw_tcp_release_conn() local 596 spin_lock_bh(&session->frwd_lock); iscsi_sw_tcp_release_conn() 598 spin_unlock_bh(&session->frwd_lock); iscsi_sw_tcp_release_conn() 646 struct iscsi_session *session = cls_session->dd_data; iscsi_sw_tcp_conn_bind() local 666 spin_lock_bh(&session->frwd_lock); iscsi_sw_tcp_conn_bind() 669 spin_unlock_bh(&session->frwd_lock); iscsi_sw_tcp_conn_bind() 730 spin_lock_bh(&conn->session->frwd_lock); iscsi_sw_tcp_conn_get_param() 732 spin_unlock_bh(&conn->session->frwd_lock); iscsi_sw_tcp_conn_get_param() 741 spin_unlock_bh(&conn->session->frwd_lock); iscsi_sw_tcp_conn_get_param() 758 struct iscsi_session *session = tcp_sw_host->session; iscsi_sw_tcp_host_get_param() local 767 if (!session) iscsi_sw_tcp_host_get_param() 770 spin_lock_bh(&session->frwd_lock); iscsi_sw_tcp_host_get_param() 771 conn = session->leadconn; iscsi_sw_tcp_host_get_param() 773 spin_unlock_bh(&session->frwd_lock); iscsi_sw_tcp_host_get_param() 780 spin_unlock_bh(&session->frwd_lock); iscsi_sw_tcp_host_get_param() 786 spin_unlock_bh(&session->frwd_lock); iscsi_sw_tcp_host_get_param() 823 struct iscsi_session *session; iscsi_sw_tcp_session_create() local 853 session = cls_session->dd_data; iscsi_sw_tcp_session_create() 855 tcp_sw_host->session = session; iscsi_sw_tcp_session_create() 857 shost->can_queue = session->scsi_cmds_max; iscsi_sw_tcp_session_create() 858 if (iscsi_tcp_r2tpool_alloc(session)) iscsi_sw_tcp_session_create() 977 /* session management */
|
H A D | iscsi_tcp.h | 59 struct iscsi_session *session; member in struct:iscsi_sw_tcp_host
|
H A D | sr_vendor.c | 239 * where starts the last session ?) */ sr_cd_check() 281 "No finished session\n"); sr_cd_check() 285 cgc.cmd[6] = rc & 0x7f; /* number of last session */ sr_cd_check()
|
/linux-4.1.27/tools/perf/util/ |
H A D | session.h | 43 void perf_session__delete(struct perf_session *session); 47 int perf_session__peek_event(struct perf_session *session, off_t file_offset, 52 int perf_session__process_events(struct perf_session *session); 59 int perf_session__resolve_callchain(struct perf_session *session, 65 bool perf_session__has_traces(struct perf_session *session, const char *msg); 69 int perf_session__create_kernel_maps(struct perf_session *session); 71 void perf_session__set_id_hdr_size(struct perf_session *session); 74 struct machine *perf_session__find_machine(struct perf_session *session, pid_t pid) perf_session__find_machine() argument 76 return machines__find(&session->machines, pid); perf_session__find_machine() 80 struct machine *perf_session__findnew_machine(struct perf_session *session, pid_t pid) perf_session__findnew_machine() argument 82 return machines__findnew(&session->machines, pid); perf_session__findnew_machine() 85 struct thread *perf_session__findnew(struct perf_session *session, pid_t pid); 86 size_t perf_session__fprintf(struct perf_session *session, FILE *fp); 88 size_t perf_session__fprintf_dsos(struct perf_session *session, FILE *fp); 90 size_t perf_session__fprintf_dsos_buildid(struct perf_session *session, FILE *fp, 93 size_t perf_session__fprintf_nr_events(struct perf_session *session, FILE *fp); 95 struct perf_evsel *perf_session__find_first_evtype(struct perf_session *session, 102 int perf_session__cpu_bitmap(struct perf_session *session, 109 int __perf_session__set_tracepoints_handlers(struct perf_session *session, 113 #define perf_session__set_tracepoints_handlers(session, array) \ 114 __perf_session__set_tracepoints_handlers(session, array, ARRAY_SIZE(array)) 120 int perf_session__deliver_synth_event(struct perf_session *session, 126 struct perf_session *session);
|
H A D | build-id.h | 20 int dsos__hit_all(struct perf_session *session); 22 bool perf_session__read_build_ids(struct perf_session *session, bool with_hits); 23 int perf_session__write_buildid_table(struct perf_session *session, int fd); 24 int perf_session__cache_build_ids(struct perf_session *session);
|
H A D | session.c | 11 #include "session.h" 25 static int perf_session__open(struct perf_session *session) perf_session__open() argument 27 struct perf_data_file *file = session->file; perf_session__open() 29 if (perf_session__read_header(session) < 0) { perf_session__open() 37 if (!perf_evlist__valid_sample_type(session->evlist)) { perf_session__open() 42 if (!perf_evlist__valid_sample_id_all(session->evlist)) { perf_session__open() 47 if (!perf_evlist__valid_read_format(session->evlist)) { perf_session__open() 55 void perf_session__set_id_hdr_size(struct perf_session *session) perf_session__set_id_hdr_size() argument 57 u16 id_hdr_size = perf_evlist__id_hdr_size(session->evlist); perf_session__set_id_hdr_size() 59 machines__set_id_hdr_size(&session->machines, id_hdr_size); perf_session__set_id_hdr_size() 62 int perf_session__create_kernel_maps(struct perf_session *session) perf_session__create_kernel_maps() argument 64 int ret = machine__create_kernel_maps(&session->machines.host); perf_session__create_kernel_maps() 67 ret = machines__create_guest_kernel_maps(&session->machines); perf_session__create_kernel_maps() 71 static void perf_session__destroy_kernel_maps(struct perf_session *session) perf_session__destroy_kernel_maps() argument 73 machines__destroy_kernel_maps(&session->machines); perf_session__destroy_kernel_maps() 76 static bool perf_session__has_comm_exec(struct perf_session *session) perf_session__has_comm_exec() argument 80 evlist__for_each(session->evlist, evsel) { perf_session__has_comm_exec() 88 static void perf_session__set_comm_exec(struct perf_session *session) perf_session__set_comm_exec() argument 90 bool comm_exec = perf_session__has_comm_exec(session); perf_session__set_comm_exec() 92 machines__set_comm_exec(&session->machines, comm_exec); perf_session__set_comm_exec() 99 struct perf_session *session = container_of(oe, struct perf_session, ordered_events__deliver_event() local 101 int ret = perf_evlist__parse_sample(session->evlist, event->event, &sample); ordered_events__deliver_event() 108 return machines__deliver_event(&session->machines, session->evlist, event->event, ordered_events__deliver_event() 109 &sample, session->tool, event->file_offset); ordered_events__deliver_event() 115 struct perf_session *session = zalloc(sizeof(*session)); perf_session__new() local 117 if (!session) perf_session__new() 120 session->repipe = repipe; perf_session__new() 121 session->tool = tool; perf_session__new() 122 machines__init(&session->machines); perf_session__new() 123 ordered_events__init(&session->ordered_events, ordered_events__deliver_event); perf_session__new() 129 session->file = file; perf_session__new() 132 if (perf_session__open(session) < 0) perf_session__new() 135 perf_session__set_id_hdr_size(session); perf_session__new() 136 perf_session__set_comm_exec(session); perf_session__new() 145 if (perf_session__create_kernel_maps(session) < 0) perf_session__new() 150 tool->ordered_events && !perf_evlist__sample_id_all(session->evlist)) { perf_session__new() 155 return session; perf_session__new() 160 perf_session__delete(session); perf_session__new() 165 static void perf_session__delete_threads(struct perf_session *session) perf_session__delete_threads() argument 167 machine__delete_threads(&session->machines.host); perf_session__delete_threads() 186 void perf_session__delete(struct perf_session *session) perf_session__delete() argument 188 perf_session__destroy_kernel_maps(session); perf_session__delete() 189 perf_session__delete_threads(session); perf_session__delete() 190 perf_session_env__delete(&session->header.env); perf_session__delete() 191 machines__exit(&session->machines); perf_session__delete() 192 if (session->file) perf_session__delete() 193 perf_data_file__close(session->file); perf_session__delete() 194 free(session); perf_session__delete() 201 struct perf_session *session process_event_synth_tracing_data_stub() 238 struct perf_session *session __maybe_unused) process_build_id_stub() 947 static s64 perf_session__process_user_event(struct perf_session *session, perf_session__process_user_event() argument 951 struct ordered_events *oe = &session->ordered_events; perf_session__process_user_event() 952 struct perf_tool *tool = session->tool; perf_session__process_user_event() 953 int fd = perf_data_file__fd(session->file); perf_session__process_user_event() 956 dump_event(session->evlist, event, file_offset, NULL); perf_session__process_user_event() 961 err = tool->attr(tool, event, &session->evlist); perf_session__process_user_event() 963 perf_session__set_id_hdr_size(session); perf_session__process_user_event() 964 perf_session__set_comm_exec(session); perf_session__process_user_event() 976 return tool->tracing_data(tool, event, session); perf_session__process_user_event() 978 return tool->build_id(tool, event, session); perf_session__process_user_event() 982 return tool->id_index(tool, event, session); perf_session__process_user_event() 988 int perf_session__deliver_synth_event(struct perf_session *session, perf_session__deliver_synth_event() argument 992 struct perf_evlist *evlist = session->evlist; perf_session__deliver_synth_event() 993 struct perf_tool *tool = session->tool; perf_session__deliver_synth_event() 998 return perf_session__process_user_event(session, event, 0); perf_session__deliver_synth_event() 1000 return machines__deliver_event(&session->machines, evlist, event, sample, tool, 0); perf_session__deliver_synth_event() 1012 int perf_session__peek_event(struct perf_session *session, off_t file_offset, perf_session__peek_event() argument 1021 if (session->one_mmap && !session->header.needs_swap) { perf_session__peek_event() 1022 event = file_offset - session->one_mmap_offset + perf_session__peek_event() 1023 session->one_mmap_addr; perf_session__peek_event() 1027 if (perf_data_file__is_pipe(session->file)) perf_session__peek_event() 1030 fd = perf_data_file__fd(session->file); perf_session__peek_event() 1042 if (session->header.needs_swap) perf_session__peek_event() 1053 if (session->header.needs_swap) perf_session__peek_event() 1054 event_swap(event, perf_evlist__sample_id_all(session->evlist)); perf_session__peek_event() 1059 perf_evlist__parse_sample(session->evlist, event, sample)) perf_session__peek_event() 1067 static s64 perf_session__process_event(struct perf_session *session, perf_session__process_event() argument 1070 struct perf_evlist *evlist = session->evlist; perf_session__process_event() 1071 struct perf_tool *tool = session->tool; perf_session__process_event() 1075 if (session->header.needs_swap) perf_session__process_event() 1084 return perf_session__process_user_event(session, event, file_offset); perf_session__process_event() 1094 ret = perf_session__queue_event(session, event, &sample, file_offset); perf_session__process_event() 1099 return machines__deliver_event(&session->machines, evlist, event, perf_session__process_event() 1110 struct thread *perf_session__findnew(struct perf_session *session, pid_t pid) perf_session__findnew() argument 1112 return machine__findnew_thread(&session->machines.host, -1, pid); perf_session__findnew() 1115 static struct thread *perf_session__register_idle_thread(struct perf_session *session) perf_session__register_idle_thread() argument 1119 thread = machine__findnew_thread(&session->machines.host, 0, 0); perf_session__register_idle_thread() 1128 static void perf_session__warn_about_errors(const struct perf_session *session) perf_session__warn_about_errors() argument 1130 const struct events_stats *stats = &session->evlist->stats; perf_session__warn_about_errors() 1131 const struct ordered_events *oe = &session->ordered_events; perf_session__warn_about_errors() 1133 if (session->tool->lost == perf_event__process_lost && perf_session__warn_about_errors() 1175 static int __perf_session__process_pipe_events(struct perf_session *session) __perf_session__process_pipe_events() argument 1177 struct ordered_events *oe = &session->ordered_events; __perf_session__process_pipe_events() 1178 struct perf_tool *tool = session->tool; __perf_session__process_pipe_events() 1179 int fd = perf_data_file__fd(session->file); __perf_session__process_pipe_events() 1207 if (session->header.needs_swap) __perf_session__process_pipe_events() 1242 if ((skip = perf_session__process_event(session, event, head)) < 0) { __perf_session__process_pipe_events() 1261 perf_session__warn_about_errors(session); __perf_session__process_pipe_events() 1262 ordered_events__free(&session->ordered_events); __perf_session__process_pipe_events() 1267 fetch_mmaped_event(struct perf_session *session, fetch_mmaped_event() argument 1281 if (session->header.needs_swap) fetch_mmaped_event() 1286 if (session->header.needs_swap) fetch_mmaped_event() 1306 static int __perf_session__process_events(struct perf_session *session, __perf_session__process_events() argument 1310 struct ordered_events *oe = &session->ordered_events; __perf_session__process_events() 1311 struct perf_tool *tool = session->tool; __perf_session__process_events() 1312 int fd = perf_data_file__fd(session->file); __perf_session__process_events() 1335 session->one_mmap = true; __perf_session__process_events() 1343 if (session->header.needs_swap) { __perf_session__process_events() 1358 if (session->one_mmap) { __perf_session__process_events() 1359 session->one_mmap_addr = buf; __perf_session__process_events() 1360 session->one_mmap_offset = file_offset; __perf_session__process_events() 1364 event = fetch_mmaped_event(session, head, mmap_size, buf); __perf_session__process_events() 1380 (skip = perf_session__process_event(session, event, file_pos)) < 0) { __perf_session__process_events() 1407 perf_session__warn_about_errors(session); __perf_session__process_events() 1408 ordered_events__free(&session->ordered_events); __perf_session__process_events() 1409 session->one_mmap = false; __perf_session__process_events() 1413 int perf_session__process_events(struct perf_session *session) perf_session__process_events() argument 1415 u64 size = perf_data_file__size(session->file); perf_session__process_events() 1418 if (perf_session__register_idle_thread(session) == NULL) perf_session__process_events() 1421 if (!perf_data_file__is_pipe(session->file)) perf_session__process_events() 1422 err = __perf_session__process_events(session, perf_session__process_events() 1423 session->header.data_offset, perf_session__process_events() 1424 session->header.data_size, size); perf_session__process_events() 1426 err = __perf_session__process_pipe_events(session); perf_session__process_events() 1431 bool perf_session__has_traces(struct perf_session *session, const char *msg) perf_session__has_traces() argument 1435 evlist__for_each(session->evlist, evsel) { perf_session__has_traces() 1478 size_t perf_session__fprintf_dsos(struct perf_session *session, FILE *fp) perf_session__fprintf_dsos() argument 1480 return machines__fprintf_dsos(&session->machines, fp); perf_session__fprintf_dsos() 1483 size_t perf_session__fprintf_dsos_buildid(struct perf_session *session, FILE *fp, perf_session__fprintf_dsos_buildid() argument 1486 return machines__fprintf_dsos_buildid(&session->machines, fp, skip, parm); perf_session__fprintf_dsos_buildid() 1489 size_t perf_session__fprintf_nr_events(struct perf_session *session, FILE *fp) perf_session__fprintf_nr_events() argument 1493 ret += events_stats__fprintf(&session->evlist->stats, fp); perf_session__fprintf_nr_events() 1497 size_t perf_session__fprintf(struct perf_session *session, FILE *fp) perf_session__fprintf() argument 1501 * session, not just the host... perf_session__fprintf() 1503 return machine__fprintf(&session->machines.host, fp); perf_session__fprintf() 1506 struct perf_evsel *perf_session__find_first_evtype(struct perf_session *session, perf_session__find_first_evtype() argument 1511 evlist__for_each(session->evlist, pos) { perf_session__find_first_evtype() 1617 int perf_session__cpu_bitmap(struct perf_session *session, perf_session__cpu_bitmap() argument 1626 evsel = perf_session__find_first_evtype(session, i); perf_session__cpu_bitmap() 1662 void perf_session__fprintf_info(struct perf_session *session, FILE *fp, perf_session__fprintf_info() argument 1668 if (session == NULL || fp == NULL) perf_session__fprintf_info() 1671 fd = perf_data_file__fd(session->file); perf_session__fprintf_info() 1679 perf_header__fprintf_info(session, fp, full); perf_session__fprintf_info() 1684 int __perf_session__set_tracepoints_handlers(struct perf_session *session, __perf_session__set_tracepoints_handlers() argument 1694 * Adding a handler for an event not in the session, __perf_session__set_tracepoints_handlers() 1697 evsel = perf_evlist__find_tracepoint_by_name(session->evlist, assocs[i].name); __perf_session__set_tracepoints_handlers() 1714 struct perf_session *session) perf_event__process_id_index() 1716 struct perf_evlist *evlist = session->evlist; perf_event__process_id_index() 1712 perf_event__process_id_index(struct perf_tool *tool __maybe_unused, union perf_event *event, struct perf_session *session) perf_event__process_id_index() argument
|
H A D | header.h | 105 int perf_session__read_header(struct perf_session *session); 106 int perf_session__write_header(struct perf_session *session, 129 struct perf_session *session, 139 struct perf_session *session); 147 struct perf_session *session);
|
H A D | build-id.c | 16 #include "session.h" 218 int perf_session__write_buildid_table(struct perf_session *session, int fd) perf_session__write_buildid_table() argument 221 int err = machine__write_buildid_table(&session->machines.host, fd); perf_session__write_buildid_table() 226 for (nd = rb_first(&session->machines.guests); nd; nd = rb_next(nd)) { perf_session__write_buildid_table() 256 int dsos__hit_all(struct perf_session *session) dsos__hit_all() argument 261 err = machine__hit_all_dsos(&session->machines.host); dsos__hit_all() 265 for (nd = rb_first(&session->machines.guests); nd; nd = rb_next(nd)) { dsos__hit_all() 498 int perf_session__cache_build_ids(struct perf_session *session) perf_session__cache_build_ids() argument 509 ret = machine__cache_build_ids(&session->machines.host); perf_session__cache_build_ids() 511 for (nd = rb_first(&session->machines.guests); nd; nd = rb_next(nd)) { perf_session__cache_build_ids() 527 bool perf_session__read_build_ids(struct perf_session *session, bool with_hits) perf_session__read_build_ids() argument 530 bool ret = machine__read_build_ids(&session->machines.host, with_hits); perf_session__read_build_ids() 532 for (nd = rb_first(&session->machines.guests); nd; nd = rb_next(nd)) { perf_session__read_build_ids()
|
H A D | top.h | 35 struct perf_session *session; member in struct:perf_top
|
H A D | header.c | 17 #include "session.h" 179 struct perf_session *session; write_build_id() local 182 session = container_of(h, struct perf_session, header); write_build_id() 184 if (!perf_session__read_build_ids(session, true)) write_build_id() 187 err = perf_session__write_buildid_table(session, fd); write_build_id() 192 perf_session__cache_build_ids(session); write_build_id() 1194 struct perf_session *session; print_group_desc() local 1198 session = container_of(ph, struct perf_session, header); print_group_desc() 1200 evlist__for_each(session->evlist, evsel) { print_group_desc() 1218 struct perf_session *session) __event_process_build_id() 1227 machine = perf_session__findnew_machine(session, bev->pid); __event_process_build_id() 1274 struct perf_session *session = container_of(header, struct perf_session, header); perf_header__read_build_ids_abi_quirk() local 1309 __event_process_build_id(&bev, filename, session); perf_header__read_build_ids_abi_quirk() 1320 struct perf_session *session = container_of(header, struct perf_session, header); perf_header__read_build_ids() local 1357 __event_process_build_id(&bev, filename, session); perf_header__read_build_ids() 1513 struct perf_session *session; process_event_desc() local 1519 session = container_of(header, struct perf_session, header); process_event_desc() 1521 perf_evlist__set_event_name(session->evlist, evsel); process_event_desc() 1736 struct perf_session *session; process_group_desc() local 1780 session = container_of(ph, struct perf_session, header); process_group_desc() 1781 session->evlist->nr_groups = nr_groups; process_group_desc() 1784 evlist__for_each(session->evlist, evsel) { process_group_desc() 1898 int perf_header__fprintf_info(struct perf_session *session, FILE *fp, bool full) perf_header__fprintf_info() argument 1901 struct perf_header *header = &session->header; perf_header__fprintf_info() 1902 int fd = perf_data_file__fd(session->file); perf_header__fprintf_info() 1998 int perf_session__write_header(struct perf_session *session, perf_session__write_header() argument 2004 struct perf_header *header = &session->header; perf_session__write_header() 2011 evlist__for_each(session->evlist, evsel) { perf_session__write_header() 2360 static int perf_header__read_pipe(struct perf_session *session) perf_header__read_pipe() argument 2362 struct perf_header *header = &session->header; perf_header__read_pipe() 2366 perf_data_file__fd(session->file), perf_header__read_pipe() 2367 session->repipe) < 0) { perf_header__read_pipe() 2465 int perf_session__read_header(struct perf_session *session) perf_session__read_header() argument 2467 struct perf_data_file *file = session->file; perf_session__read_header() 2468 struct perf_header *header = &session->header; perf_session__read_header() 2475 session->evlist = perf_evlist__new(); perf_session__read_header() 2476 if (session->evlist == NULL) perf_session__read_header() 2480 return perf_header__read_pipe(session); perf_session__read_header() 2524 perf_evlist__add(session->evlist, evsel); perf_session__read_header() 2541 perf_evlist__id_add(session->evlist, evsel, 0, j, f_id); perf_session__read_header() 2549 perf_header__process_sections(header, fd, &session->tevent, perf_session__read_header() 2552 if (perf_evlist__prepare_tracepoint_events(session->evlist, perf_session__read_header() 2553 session->tevent.pevent)) perf_session__read_header() 2561 perf_evlist__delete(session->evlist); perf_session__read_header() 2562 session->evlist = NULL; perf_session__read_header() 2601 struct perf_session *session, perf_event__synthesize_attrs() 2607 evlist__for_each(session->evlist, evsel) { perf_event__synthesize_attrs() 2707 struct perf_session *session) perf_event__process_tracing_data() 2710 int fd = perf_data_file__fd(session->file); perf_event__process_tracing_data() 2718 size_read = trace_report(fd, &session->tevent, perf_event__process_tracing_data() 2719 session->repipe); perf_event__process_tracing_data() 2726 if (session->repipe) { perf_event__process_tracing_data() 2739 perf_evlist__prepare_tracepoint_events(session->evlist, perf_event__process_tracing_data() 2740 session->tevent.pevent); perf_event__process_tracing_data() 2775 struct perf_session *session) perf_event__process_build_id() 2779 session); perf_event__process_build_id() 1216 __event_process_build_id(struct build_id_event *bev, char *filename, struct perf_session *session) __event_process_build_id() argument 2600 perf_event__synthesize_attrs(struct perf_tool *tool, struct perf_session *session, perf_event__handler_t process) perf_event__synthesize_attrs() argument 2705 perf_event__process_tracing_data(struct perf_tool *tool __maybe_unused, union perf_event *event, struct perf_session *session) perf_event__process_tracing_data() argument 2773 perf_event__process_build_id(struct perf_tool *tool __maybe_unused, union perf_event *event, struct perf_session *session) perf_event__process_build_id() argument
|
H A D | tool.h | 27 struct perf_session *session);
|
H A D | kvm-stat.h | 7 #include "session.h" 76 struct perf_session *session; member in struct:perf_kvm_stat
|
H A D | data-convert-bt.c | 21 #include "session.h" 593 static int setup_events(struct ctf_writer *cw, struct perf_session *session) setup_events() argument 595 struct perf_evlist *evlist = session->evlist; setup_events() 608 struct perf_session *session) ctf_writer__setup_env() 610 struct perf_header *header = &session->header; ctf_writer__setup_env() 796 struct perf_session *session; bt_convert__perf2ctf() local 824 /* perf.data session */ bt_convert__perf2ctf() 825 session = perf_session__new(&file, 0, &c.tool); bt_convert__perf2ctf() 826 if (!session) bt_convert__perf2ctf() 830 if (ctf_writer__setup_env(cw, session)) bt_convert__perf2ctf() 834 if (setup_events(cw, session)) bt_convert__perf2ctf() 837 err = perf_session__process_events(session); bt_convert__perf2ctf() 852 perf_session__delete(session); bt_convert__perf2ctf() 607 ctf_writer__setup_env(struct ctf_writer *cw, struct perf_session *session) ctf_writer__setup_env() argument
|
H A D | callchain.h | 139 /* Close a cursor writing session. Initialize for the reader */ callchain_cursor_commit()
|
H A D | thread.c | 5 #include "session.h"
|
/linux-4.1.27/tools/perf/arch/ |
H A D | common.h | 4 #include "../util/session.h"
|
/linux-4.1.27/fs/ceph/ |
H A D | mds_client.c | 40 * We maintain a stateful "session" with each MDS we interact with. 41 * Within each session, we sent periodic heartbeat messages to ensure 43 * the session times out and goes stale, our leases and capabilities 393 struct ceph_mds_session *session; __ceph_lookup_mds_session() local 397 session = mdsc->sessions[mds]; __ceph_lookup_mds_session() 398 dout("lookup_mds_session %p %d\n", session, __ceph_lookup_mds_session() 399 atomic_read(&session->s_ref)); __ceph_lookup_mds_session() 400 get_session(session); __ceph_lookup_mds_session() 401 return session; __ceph_lookup_mds_session() 421 * create+register a new session for given mds. 511 * drop session refs in request. 565 * lookup session, bump ref if found. 700 * no session and the mds is not up (active or recovering). __choose_mds() 798 mds = cap->session->s_mds; __choose_mds() 813 * session messages 834 * session message, specialization for CEPH_SESSION_REQUEST_OPEN 905 * send session open request. 910 struct ceph_mds_session *session) __open_session() 914 int mds = session->s_mds; __open_session() 920 session->s_state = CEPH_MDS_SESSION_OPENING; __open_session() 921 session->s_renew_requested = jiffies; __open_session() 924 msg = create_session_open_msg(mdsc, session->s_seq); __open_session() 927 ceph_con_send(&session->s_con, msg); __open_session() 939 struct ceph_mds_session *session; __open_export_target_session() local 941 session = __ceph_lookup_mds_session(mdsc, target); __open_export_target_session() 942 if (!session) { __open_export_target_session() 943 session = register_session(mdsc, target); __open_export_target_session() 944 if (IS_ERR(session)) __open_export_target_session() 945 return session; __open_export_target_session() 947 if (session->s_state == CEPH_MDS_SESSION_NEW || __open_export_target_session() 948 session->s_state == CEPH_MDS_SESSION_CLOSING) __open_export_target_session() 949 __open_session(mdsc, session); __open_export_target_session() 951 return session; __open_export_target_session() 957 struct ceph_mds_session *session; ceph_mdsc_open_export_target_session() local 962 session = __open_export_target_session(mdsc, target); ceph_mdsc_open_export_target_session() 965 return session; ceph_mdsc_open_export_target_session() 969 struct ceph_mds_session *session) __open_export_target_sessions() 973 int i, mds = session->s_mds; __open_export_target_sessions() 980 session->s_mds, mi->num_export_targets); __open_export_target_sessions() 990 struct ceph_mds_session *session) ceph_mdsc_open_export_target_sessions() 993 __open_export_target_sessions(mdsc, session); ceph_mdsc_open_export_target_sessions() 998 * session caps 1002 * Free preallocated cap messages assigned to this session 1004 static void cleanup_cap_releases(struct ceph_mds_session *session) cleanup_cap_releases() argument 1008 spin_lock(&session->s_cap_lock); cleanup_cap_releases() 1009 while (!list_empty(&session->s_cap_releases)) { cleanup_cap_releases() 1010 msg = list_first_entry(&session->s_cap_releases, cleanup_cap_releases() 1015 while (!list_empty(&session->s_cap_releases_done)) { cleanup_cap_releases() 1016 msg = list_first_entry(&session->s_cap_releases_done, cleanup_cap_releases() 1021 spin_unlock(&session->s_cap_lock); cleanup_cap_releases() 1025 struct ceph_mds_session *session) cleanup_session_requests() 1030 dout("cleanup_session_requests mds%d\n", session->s_mds); cleanup_session_requests() 1032 while (!list_empty(&session->s_unsafe)) { cleanup_session_requests() 1033 req = list_first_entry(&session->s_unsafe, cleanup_session_requests() 1045 req->r_session->s_mds == session->s_mds) cleanup_session_requests() 1052 * Helper to safely iterate over all caps associated with a session, with 1055 * Caller must hold session s_mutex. 1057 static int iterate_session_caps(struct ceph_mds_session *session, iterate_session_caps() argument 1067 dout("iterate_session_caps %p mds%d\n", session, session->s_mds); iterate_session_caps() 1068 spin_lock(&session->s_cap_lock); iterate_session_caps() 1069 p = session->s_caps.next; iterate_session_caps() 1070 while (p != &session->s_caps) { iterate_session_caps() 1077 session->s_cap_iterator = cap; iterate_session_caps() 1078 spin_unlock(&session->s_cap_lock); iterate_session_caps() 1085 ceph_put_cap(session->s_mdsc, old_cap); iterate_session_caps() 1092 spin_lock(&session->s_cap_lock); iterate_session_caps() 1097 BUG_ON(cap->session != session); iterate_session_caps() 1099 session->s_nr_caps--; iterate_session_caps() 1100 cap->session = NULL; iterate_session_caps() 1108 session->s_cap_iterator = NULL; iterate_session_caps() 1109 spin_unlock(&session->s_cap_lock); iterate_session_caps() 1113 ceph_put_cap(session->s_mdsc, old_cap); iterate_session_caps() 1159 * caller must hold session s_mutex 1161 static void remove_session_caps(struct ceph_mds_session *session) remove_session_caps() argument 1163 dout("remove_session_caps on %p\n", session); remove_session_caps() 1164 iterate_session_caps(session, remove_session_caps_cb, NULL); remove_session_caps() 1166 spin_lock(&session->s_cap_lock); remove_session_caps() 1167 if (session->s_nr_caps > 0) { remove_session_caps() 1168 struct super_block *sb = session->s_mdsc->fsc->sb; remove_session_caps() 1179 while (!list_empty(&session->s_caps)) { remove_session_caps() 1180 cap = list_entry(session->s_caps.next, remove_session_caps() 1186 spin_unlock(&session->s_cap_lock); remove_session_caps() 1191 spin_lock(&session->s_cap_lock); remove_session_caps() 1194 spin_unlock(&session->s_cap_lock); remove_session_caps() 1196 BUG_ON(session->s_nr_caps > 0); remove_session_caps() 1197 BUG_ON(!list_empty(&session->s_cap_flushing)); remove_session_caps() 1198 cleanup_cap_releases(session); remove_session_caps() 1202 * wake up any threads waiting on this session's caps. if the cap is 1222 static void wake_up_session_caps(struct ceph_mds_session *session, wake_up_session_caps() argument 1225 dout("wake_up_session_caps %p mds%d\n", session, session->s_mds); wake_up_session_caps() 1226 iterate_session_caps(session, wake_up_session_cb, wake_up_session_caps() 1232 * ack will reset the expiration for all caps from this session. 1237 struct ceph_mds_session *session) send_renew_caps() 1242 if (time_after_eq(jiffies, session->s_cap_ttl) && send_renew_caps() 1243 time_after_eq(session->s_cap_ttl, session->s_renew_requested)) send_renew_caps() 1244 pr_info("mds%d caps stale\n", session->s_mds); send_renew_caps() 1245 session->s_renew_requested = jiffies; send_renew_caps() 1249 state = ceph_mdsmap_get_state(mdsc->mdsmap, session->s_mds); send_renew_caps() 1252 session->s_mds, ceph_mds_state_name(state)); send_renew_caps() 1256 dout("send_renew_caps to mds%d (%s)\n", session->s_mds, send_renew_caps() 1259 ++session->s_renew_seq); send_renew_caps() 1262 ceph_con_send(&session->s_con, msg); send_renew_caps() 1267 struct ceph_mds_session *session, u64 seq) send_flushmsg_ack() 1272 session->s_mds, ceph_session_state_name(session->s_state), seq); send_flushmsg_ack() 1276 ceph_con_send(&session->s_con, msg); send_flushmsg_ack() 1284 * Called under session->s_mutex 1287 struct ceph_mds_session *session, int is_renew) renewed_caps() 1292 spin_lock(&session->s_cap_lock); renewed_caps() 1293 was_stale = is_renew && time_after_eq(jiffies, session->s_cap_ttl); renewed_caps() 1295 session->s_cap_ttl = session->s_renew_requested + renewed_caps() 1299 if (time_before(jiffies, session->s_cap_ttl)) { renewed_caps() 1300 pr_info("mds%d caps renewed\n", session->s_mds); renewed_caps() 1303 pr_info("mds%d caps still stale\n", session->s_mds); renewed_caps() 1307 session->s_mds, session->s_cap_ttl, was_stale ? "stale" : "fresh", renewed_caps() 1308 time_before(jiffies, session->s_cap_ttl) ? "stale" : "fresh"); renewed_caps() 1309 spin_unlock(&session->s_cap_lock); renewed_caps() 1312 wake_up_session_caps(session, 0); renewed_caps() 1316 * send a session close request 1319 struct ceph_mds_session *session) request_close_session() 1324 session->s_mds, ceph_session_state_name(session->s_state), request_close_session() 1325 session->s_seq); request_close_session() 1326 msg = create_session_msg(CEPH_SESSION_REQUEST_CLOSE, session->s_seq); request_close_session() 1329 ceph_con_send(&session->s_con, msg); request_close_session() 1337 struct ceph_mds_session *session) __close_session() 1339 if (session->s_state >= CEPH_MDS_SESSION_CLOSING) __close_session() 1341 session->s_state = CEPH_MDS_SESSION_CLOSING; __close_session() 1342 return request_close_session(mdsc, session); __close_session() 1357 struct ceph_mds_session *session = arg; trim_caps_cb() local 1361 if (session->s_trim_caps <= 0) trim_caps_cb() 1382 session->s_trim_caps--; trim_caps_cb() 1401 * Trim session cap count down to some max number. 1404 struct ceph_mds_session *session, trim_caps() 1407 int trim_caps = session->s_nr_caps - max_caps; trim_caps() 1410 session->s_mds, session->s_nr_caps, max_caps, trim_caps); trim_caps() 1412 session->s_trim_caps = trim_caps; trim_caps() 1413 iterate_session_caps(session, trim_caps_cb, session); trim_caps() 1415 session->s_mds, session->s_nr_caps, max_caps, trim_caps() 1416 trim_caps - session->s_trim_caps); trim_caps() 1417 session->s_trim_caps = 0; trim_caps() 1420 ceph_add_cap_releases(mdsc, session); trim_caps() 1421 ceph_send_cap_releases(mdsc, session); trim_caps() 1433 struct ceph_mds_session *session) ceph_add_cap_releases() 1441 dout("add_cap_releases %p mds%d extra %d\n", session, session->s_mds, ceph_add_cap_releases() 1444 spin_lock(&session->s_cap_lock); ceph_add_cap_releases() 1446 if (!list_empty(&session->s_cap_releases)) { ceph_add_cap_releases() 1447 msg = list_first_entry(&session->s_cap_releases, ceph_add_cap_releases() 1459 while (session->s_num_cap_releases < session->s_nr_caps + extra) { ceph_add_cap_releases() 1460 spin_unlock(&session->s_cap_lock); ceph_add_cap_releases() 1465 dout("add_cap_releases %p msg %p now %d\n", session, msg, ceph_add_cap_releases() 1470 spin_lock(&session->s_cap_lock); ceph_add_cap_releases() 1471 list_add(&msg->list_head, &session->s_cap_releases); ceph_add_cap_releases() 1472 session->s_num_cap_releases += CEPH_CAPS_PER_RELEASE; ceph_add_cap_releases() 1481 &session->s_cap_releases_done); ceph_add_cap_releases() 1482 session->s_num_cap_releases -= CEPH_CAPS_PER_RELEASE - num; ceph_add_cap_releases() 1485 spin_unlock(&session->s_cap_lock); ceph_add_cap_releases() 1515 struct ceph_mds_session *session = mdsc->sessions[mds]; wait_caps_flush() local 1518 if (!session) wait_caps_flush() 1520 get_session(session); wait_caps_flush() 1523 mutex_lock(&session->s_mutex); wait_caps_flush() 1524 if (!list_empty(&session->s_cap_flushing)) { wait_caps_flush() 1526 list_entry(session->s_cap_flushing.next, wait_caps_flush() 1534 want_flush_seq, session->s_mds); wait_caps_flush() 1538 mutex_unlock(&session->s_mutex); wait_caps_flush() 1539 ceph_put_mds_session(session); wait_caps_flush() 1558 struct ceph_mds_session *session) ceph_send_cap_releases() 1562 dout("send_cap_releases mds%d\n", session->s_mds); ceph_send_cap_releases() 1563 spin_lock(&session->s_cap_lock); ceph_send_cap_releases() 1564 while (!list_empty(&session->s_cap_releases_done)) { ceph_send_cap_releases() 1565 msg = list_first_entry(&session->s_cap_releases_done, ceph_send_cap_releases() 1568 spin_unlock(&session->s_cap_lock); ceph_send_cap_releases() 1570 dout("send_cap_releases mds%d %p\n", session->s_mds, msg); ceph_send_cap_releases() 1571 ceph_con_send(&session->s_con, msg); ceph_send_cap_releases() 1572 spin_lock(&session->s_cap_lock); ceph_send_cap_releases() 1574 spin_unlock(&session->s_cap_lock); ceph_send_cap_releases() 1578 struct ceph_mds_session *session) discard_cap_releases() 1584 dout("discard_cap_releases mds%d\n", session->s_mds); discard_cap_releases() 1586 if (!list_empty(&session->s_cap_releases)) { discard_cap_releases() 1588 msg = list_first_entry(&session->s_cap_releases, discard_cap_releases() 1593 session->s_mds, msg, num); discard_cap_releases() 1596 session->s_num_cap_releases += num; discard_cap_releases() 1600 while (!list_empty(&session->s_cap_releases_done)) { discard_cap_releases() 1601 msg = list_first_entry(&session->s_cap_releases_done, discard_cap_releases() 1607 dout("discard_cap_releases mds%d %p %u\n", session->s_mds, msg, discard_cap_releases() 1609 session->s_num_cap_releases += num; discard_cap_releases() 1612 list_add(&msg->list_head, &session->s_cap_releases); discard_cap_releases() 2106 struct ceph_mds_session *session = NULL; __do_request() local 2133 /* get, open session */ __do_request() 2134 session = __ceph_lookup_mds_session(mdsc, mds); __do_request() 2135 if (!session) { __do_request() 2136 session = register_session(mdsc, mds); __do_request() 2137 if (IS_ERR(session)) { __do_request() 2138 err = PTR_ERR(session); __do_request() 2142 req->r_session = get_session(session); __do_request() 2144 dout("do_request mds%d session %p state %s\n", mds, session, __do_request() 2145 ceph_session_state_name(session->s_state)); __do_request() 2146 if (session->s_state != CEPH_MDS_SESSION_OPEN && __do_request() 2147 session->s_state != CEPH_MDS_SESSION_HUNG) { __do_request() 2148 if (session->s_state == CEPH_MDS_SESSION_NEW || __do_request() 2149 session->s_state == CEPH_MDS_SESSION_CLOSING) __do_request() 2150 __open_session(mdsc, session); __do_request() 2151 list_add(&req->r_wait, &session->s_waiting); __do_request() 2164 ceph_con_send(&session->s_con, req->r_request); __do_request() 2168 ceph_put_mds_session(session); __do_request() 2236 * session setup, forwarding, retry details. 2332 * We take the session mutex and parse and process the reply immediately. 2336 static void handle_reply(struct ceph_mds_session *session, struct ceph_msg *msg) handle_reply() argument 2338 struct ceph_mds_client *mdsc = session->s_mdsc; handle_reply() 2345 int mds = session->s_mds; handle_reply() 2353 /* get request, session */ handle_reply() 2364 /* correct session? */ handle_reply() 2365 if (req->r_session != session) { handle_reply() 2366 pr_err("mdsc_handle_reply got %llu on session mds%d" handle_reply() 2367 " not mds%d\n", tid, session->s_mds, handle_reply() 2447 err = parse_reply_info(msg, rinfo, session->s_con.peer_features); handle_reply() 2450 mutex_lock(&session->s_mutex); handle_reply() 2500 mutex_unlock(&session->s_mutex); handle_reply() 2515 struct ceph_mds_session *session, handle_forward() 2564 * handle a mds session control message 2566 static void handle_session(struct ceph_mds_session *session, handle_session() argument 2569 struct ceph_mds_client *mdsc = session->s_mdsc; handle_session() 2572 int mds = session->s_mds; handle_session() 2584 __unregister_session(mdsc, session); handle_session() 2586 session->s_ttl = jiffies + HZ*mdsc->mdsmap->m_session_autoclose; handle_session() 2589 mutex_lock(&session->s_mutex); handle_session() 2592 mds, ceph_session_op_name(op), session, handle_session() 2593 ceph_session_state_name(session->s_state), seq); handle_session() 2595 if (session->s_state == CEPH_MDS_SESSION_HUNG) { handle_session() 2596 session->s_state = CEPH_MDS_SESSION_OPEN; handle_session() 2597 pr_info("mds%d came back\n", session->s_mds); handle_session() 2602 if (session->s_state == CEPH_MDS_SESSION_RECONNECTING) handle_session() 2603 pr_info("mds%d reconnect success\n", session->s_mds); handle_session() 2604 session->s_state = CEPH_MDS_SESSION_OPEN; handle_session() 2605 renewed_caps(mdsc, session, 0); handle_session() 2608 __close_session(mdsc, session); handle_session() 2612 if (session->s_renew_seq == seq) handle_session() 2613 renewed_caps(mdsc, session, 1); handle_session() 2617 if (session->s_state == CEPH_MDS_SESSION_RECONNECTING) handle_session() 2618 pr_info("mds%d reconnect denied\n", session->s_mds); handle_session() 2619 cleanup_session_requests(mdsc, session); handle_session() 2620 remove_session_caps(session); handle_session() 2627 session->s_mds); handle_session() 2628 spin_lock(&session->s_gen_ttl_lock); handle_session() 2629 session->s_cap_gen++; handle_session() 2630 session->s_cap_ttl = jiffies - 1; handle_session() 2631 spin_unlock(&session->s_gen_ttl_lock); handle_session() 2632 send_renew_caps(mdsc, session); handle_session() 2636 trim_caps(mdsc, session, le32_to_cpu(h->max_caps)); handle_session() 2640 send_flushmsg_ack(mdsc, session, seq); handle_session() 2644 dout("force_session_readonly %p\n", session); handle_session() 2645 spin_lock(&session->s_cap_lock); handle_session() 2646 session->s_readonly = true; handle_session() 2647 spin_unlock(&session->s_cap_lock); handle_session() 2648 wake_up_session_caps(session, 0); handle_session() 2656 mutex_unlock(&session->s_mutex); handle_session() 2659 __wake_requests(mdsc, &session->s_waiting); handle_session() 2675 * called under session->mutex. 2678 struct ceph_mds_session *session) replay_unsafe_requests() 2684 dout("replay_unsafe_requests mds%d\n", session->s_mds); replay_unsafe_requests() 2687 list_for_each_entry_safe(req, nreq, &session->s_unsafe, r_unsafe_item) { replay_unsafe_requests() 2688 err = __prepare_send_request(mdsc, req, session->s_mds, true); replay_unsafe_requests() 2691 ceph_con_send(&session->s_con, req->r_request); replay_unsafe_requests() 2708 req->r_session->s_mds == session->s_mds) { replay_unsafe_requests() 2710 session->s_mds, true); replay_unsafe_requests() 2713 ceph_con_send(&session->s_con, req->r_request); replay_unsafe_requests() 2767 cap->cap_gen = cap->session->s_cap_gen; encode_caps_cb() 2839 * this session _and_ the snap_realm hierarchy. Because it's not 2849 struct ceph_mds_session *session) send_mds_reconnect() 2853 int mds = session->s_mds; send_mds_reconnect() 2870 mutex_lock(&session->s_mutex); send_mds_reconnect() 2871 session->s_state = CEPH_MDS_SESSION_RECONNECTING; send_mds_reconnect() 2872 session->s_seq = 0; send_mds_reconnect() 2874 dout("session %p state %s\n", session, send_mds_reconnect() 2875 ceph_session_state_name(session->s_state)); send_mds_reconnect() 2877 spin_lock(&session->s_gen_ttl_lock); send_mds_reconnect() 2878 session->s_cap_gen++; send_mds_reconnect() 2879 spin_unlock(&session->s_gen_ttl_lock); send_mds_reconnect() 2881 spin_lock(&session->s_cap_lock); send_mds_reconnect() 2882 /* don't know if session is readonly */ send_mds_reconnect() 2883 session->s_readonly = 0; send_mds_reconnect() 2889 session->s_cap_reconnect = 1; send_mds_reconnect() 2891 discard_cap_releases(mdsc, session); send_mds_reconnect() 2892 spin_unlock(&session->s_cap_lock); send_mds_reconnect() 2898 ceph_con_close(&session->s_con); send_mds_reconnect() 2899 ceph_con_open(&session->s_con, send_mds_reconnect() 2904 replay_unsafe_requests(mdsc, session); send_mds_reconnect() 2908 /* traverse this session's caps */ send_mds_reconnect() 2909 s_nr_caps = session->s_nr_caps; send_mds_reconnect() 2916 recon_state.flock = session->s_con.peer_features & CEPH_FEATURE_FLOCK; send_mds_reconnect() 2917 err = iterate_session_caps(session, encode_caps_cb, &recon_state); send_mds_reconnect() 2921 spin_lock(&session->s_cap_lock); send_mds_reconnect() 2922 session->s_cap_reconnect = 0; send_mds_reconnect() 2923 spin_unlock(&session->s_cap_lock); send_mds_reconnect() 2959 ceph_con_send(&session->s_con, reply); send_mds_reconnect() 2961 mutex_unlock(&session->s_mutex); send_mds_reconnect() 2964 __wake_requests(mdsc, &session->s_waiting); send_mds_reconnect() 2973 mutex_unlock(&session->s_mutex); send_mds_reconnect() 3006 dout("check_new_map mds%d state %s%s -> %s%s (session %s)\n", check_new_map() 3018 /* the session never opened, just close it check_new_map() 3082 * caller must hold session s_mutex, dentry->d_lock 3093 struct ceph_mds_session *session, handle_lease() 3100 int mds = session->s_mds; handle_lease() 3126 mutex_lock(&session->s_mutex); handle_lease() 3127 session->s_seq++; handle_lease() 3151 if (di->lease_session == session) { handle_lease() 3160 if (di->lease_session == session && handle_lease() 3161 di->lease_gen == session->s_cap_gen && handle_lease() 3185 ceph_con_send(&session->s_con, msg); handle_lease() 3189 mutex_unlock(&session->s_mutex); handle_lease() 3197 void ceph_mdsc_lease_send_msg(struct ceph_mds_session *session, ceph_mdsc_lease_send_msg() argument 3208 inode, dentry, ceph_lease_op_name(action), session->s_mds); ceph_mdsc_lease_send_msg() 3230 ceph_con_send(&session->s_con, msg); ceph_mdsc_lease_send_msg() 3241 struct ceph_mds_session *session; ceph_mdsc_lease_release() local 3262 session = ceph_get_mds_session(di->lease_session); ceph_mdsc_lease_release() 3268 inode, dentry, session->s_mds); ceph_mdsc_lease_release() 3269 ceph_mdsc_lease_send_msg(session, inode, dentry, ceph_mdsc_lease_release() 3271 ceph_put_mds_session(session); ceph_mdsc_lease_release() 3331 dout("resending session close request for mds%d\n", delayed_work() 3552 struct ceph_mds_session *session; ceph_mdsc_close_sessions() local 3562 session = __ceph_lookup_mds_session(mdsc, i); ceph_mdsc_close_sessions() 3563 if (!session) ceph_mdsc_close_sessions() 3566 mutex_lock(&session->s_mutex); ceph_mdsc_close_sessions() 3567 __close_session(mdsc, session); ceph_mdsc_close_sessions() 3568 mutex_unlock(&session->s_mutex); ceph_mdsc_close_sessions() 3569 ceph_put_mds_session(session); ceph_mdsc_close_sessions() 3582 session = get_session(mdsc->sessions[i]); ceph_mdsc_close_sessions() 3583 __unregister_session(mdsc, session); ceph_mdsc_close_sessions() 3585 mutex_lock(&session->s_mutex); ceph_mdsc_close_sessions() 3586 remove_session_caps(session); ceph_mdsc_close_sessions() 3587 mutex_unlock(&session->s_mutex); ceph_mdsc_close_sessions() 3588 ceph_put_mds_session(session); ceph_mdsc_close_sessions() 3711 * the session entirely. 3718 pr_warn("mds%d closed our session\n", s->s_mds); peer_reset() 909 __open_session(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) __open_session() argument 968 __open_export_target_sessions(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) __open_export_target_sessions() argument 989 ceph_mdsc_open_export_target_sessions(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) ceph_mdsc_open_export_target_sessions() argument 1024 cleanup_session_requests(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) cleanup_session_requests() argument 1236 send_renew_caps(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) send_renew_caps() argument 1266 send_flushmsg_ack(struct ceph_mds_client *mdsc, struct ceph_mds_session *session, u64 seq) send_flushmsg_ack() argument 1286 renewed_caps(struct ceph_mds_client *mdsc, struct ceph_mds_session *session, int is_renew) renewed_caps() argument 1318 request_close_session(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) request_close_session() argument 1336 __close_session(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) __close_session() argument 1403 trim_caps(struct ceph_mds_client *mdsc, struct ceph_mds_session *session, int max_caps) trim_caps() argument 1432 ceph_add_cap_releases(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) ceph_add_cap_releases() argument 1557 ceph_send_cap_releases(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) ceph_send_cap_releases() argument 1577 discard_cap_releases(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) discard_cap_releases() argument 2514 handle_forward(struct ceph_mds_client *mdsc, struct ceph_mds_session *session, struct ceph_msg *msg) handle_forward() argument 2677 replay_unsafe_requests(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) replay_unsafe_requests() argument 2848 send_mds_reconnect(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) send_mds_reconnect() argument 3092 handle_lease(struct ceph_mds_client *mdsc, struct ceph_mds_session *session, struct ceph_msg *msg) handle_lease() argument
|
H A D | caps.c | 503 * Add a capability under the given MDS session. 505 * Caller should hold session snap_rwsem (read) and s_mutex. 512 struct ceph_mds_session *session, u64 cap_id, ceph_add_cap() 520 int mds = session->s_mds; ceph_add_cap() 524 session->s_mds, cap_id, ceph_cap_string(issued), seq); ceph_add_cap() 547 /* add to session cap list */ ceph_add_cap() 548 cap->session = session; ceph_add_cap() 549 spin_lock(&session->s_cap_lock); ceph_add_cap() 550 list_add_tail(&cap->session_caps, &session->s_caps); ceph_add_cap() 551 session->s_nr_caps++; ceph_add_cap() 552 spin_unlock(&session->s_cap_lock); ceph_add_cap() 631 cap->cap_gen = session->s_cap_gen; ceph_add_cap() 639 * generation of the MDS session (i.e. has not gone 'stale' due to 647 spin_lock(&cap->session->s_gen_ttl_lock); __cap_is_valid() 648 gen = cap->session->s_cap_gen; __cap_is_valid() 649 ttl = cap->session->s_cap_ttl; __cap_is_valid() 650 spin_unlock(&cap->session->s_gen_ttl_lock); __cap_is_valid() 664 * out, and may be invalidated in bulk if the client session times out 665 * and session->s_cap_gen is bumped. 723 struct ceph_mds_session *s = cap->session; __touch_cap() 915 * caller will not hold session s_mutex if called from destroy_inode. 919 struct ceph_mds_session *session = cap->session; __ceph_remove_cap() local 927 /* remove from session list */ __ceph_remove_cap() 928 spin_lock(&session->s_cap_lock); __ceph_remove_cap() 931 * s_cap_gen while session is in the reconnect state. __ceph_remove_cap() 934 (!session->s_cap_reconnect || __ceph_remove_cap() 935 cap->cap_gen == session->s_cap_gen)) __ceph_remove_cap() 936 __queue_cap_release(session, ci->i_vino.ino, cap->cap_id, __ceph_remove_cap() 939 if (session->s_cap_iterator == cap) { __ceph_remove_cap() 941 dout("__ceph_remove_cap delaying %p removal from session %p\n", __ceph_remove_cap() 942 cap, cap->session); __ceph_remove_cap() 945 session->s_nr_caps--; __ceph_remove_cap() 946 cap->session = NULL; __ceph_remove_cap() 951 spin_unlock(&session->s_cap_lock); __ceph_remove_cap() 961 /* when reconnect denied, we remove session caps forcibly, __ceph_remove_cap() 977 static int send_cap_msg(struct ceph_mds_session *session, send_cap_msg() argument 1052 ceph_con_send(&session->s_con, msg); send_cap_msg() 1056 void __queue_cap_release(struct ceph_mds_session *session, __queue_cap_release() argument 1064 BUG_ON(!session->s_num_cap_releases); __queue_cap_release() 1065 msg = list_first_entry(&session->s_cap_releases, __queue_cap_release() 1069 ino, session->s_mds, msg, session->s_num_cap_releases); __queue_cap_release() 1080 session->s_num_cap_releases--; __queue_cap_release() 1085 list_move_tail(&msg->list_head, &session->s_cap_releases_done); __queue_cap_release() 1144 struct ceph_mds_session *session; variable in typeref:struct:ceph_mds_session 1158 dout("__send_cap %p cap %p session %p %s -> %s (revoking %s)\n", 1159 inode, cap, cap->session, 1164 session = cap->session; 1239 ret = send_cap_msg(session, ceph_vino(inode).ino, cap_id, 1263 * the MDS (i.e., during this session). 1278 struct ceph_mds_session *session = NULL; /* if session != NULL, we hold variable in typeref:struct:ceph_mds_session 1279 session->s_mutex */ 1285 session = *psession; 1318 mds = ci->i_auth_cap->session->s_mds; 1321 if (session && session->s_mds != mds) { 1322 dout("oops, wrong session %p mutex\n", session); 1323 mutex_unlock(&session->s_mutex); 1324 ceph_put_mds_session(session); variable 1325 session = NULL; 1327 if (!session) { 1330 session = __ceph_lookup_mds_session(mdsc, mds); 1332 if (session) { 1333 dout("inverting session/ino locks on %p\n", 1334 session); 1335 mutex_lock(&session->s_mutex); 1338 * if session == NULL, we raced against a cap 1351 &session->s_cap_snaps_flushing); 1356 send_cap_msg(session, ceph_vino(inode).ino, 0, 1380 *psession = session; 1381 else if (session) { 1382 mutex_unlock(&session->s_mutex); 1383 ceph_put_mds_session(session); variable 1409 "but no auth cap (session was closed?)\n", __ceph_mark_dirty_caps() 1448 struct ceph_mds_session *session) __mark_caps_flushing() 1471 list_add_tail(&ci->i_flushing_item, &session->s_cap_flushing); __mark_caps_flushing() 1476 list_move_tail(&ci->i_flushing_item, &session->s_cap_flushing); __mark_caps_flushing() 1521 struct ceph_mds_session *session) ceph_check_caps() 1549 __ceph_flush_snaps(ci, &session, 0); ceph_check_caps() 1713 if (session && session != cap->session) { ceph_check_caps() 1714 dout("oops, wrong session %p mutex\n", session); ceph_check_caps() 1715 mutex_unlock(&session->s_mutex); ceph_check_caps() 1716 session = NULL; ceph_check_caps() 1718 if (!session) { ceph_check_caps() 1719 session = cap->session; ceph_check_caps() 1720 if (mutex_trylock(&session->s_mutex) == 0) { ceph_check_caps() 1721 dout("inverting session/ino locks on %p\n", ceph_check_caps() 1722 session); ceph_check_caps() 1728 mutex_lock(&session->s_mutex); ceph_check_caps() 1732 /* take snap_rwsem after session mutex */ ceph_check_caps() 1746 flushing = __mark_caps_flushing(inode, session); ceph_check_caps() 1775 if (session) ceph_check_caps() 1776 mutex_unlock(&session->s_mutex); ceph_check_caps() 1789 struct ceph_mds_session *session = NULL; try_flush_caps() local 1803 if (!session || session != cap->session) { try_flush_caps() 1805 if (session) try_flush_caps() 1806 mutex_unlock(&session->s_mutex); try_flush_caps() 1807 session = cap->session; try_flush_caps() 1808 mutex_lock(&session->s_mutex); try_flush_caps() 1811 if (cap->session->s_state < CEPH_MDS_SESSION_OPEN) try_flush_caps() 1814 flushing = __mark_caps_flushing(inode, session); try_flush_caps() 1829 if (session) try_flush_caps() 1830 mutex_unlock(&session->s_mutex); try_flush_caps() 1969 * Caller holds session->s_mutex. 1972 struct ceph_mds_session *session) kick_flushing_capsnaps() 1976 dout("kick_flushing_capsnaps mds%d\n", session->s_mds); kick_flushing_capsnaps() 1977 list_for_each_entry(capsnap, &session->s_cap_snaps_flushing, kick_flushing_capsnaps() 1985 if (cap && cap->session == session) { kick_flushing_capsnaps() 1988 __ceph_flush_snaps(ci, &session, 1); kick_flushing_capsnaps() 1991 cap, session->s_mds); kick_flushing_capsnaps() 1998 struct ceph_mds_session *session) ceph_kick_flushing_caps() 2002 kick_flushing_capsnaps(mdsc, session); ceph_kick_flushing_caps() 2004 dout("kick_flushing_caps mds%d\n", session->s_mds); ceph_kick_flushing_caps() 2005 list_for_each_entry(ci, &session->s_cap_flushing, i_flushing_item) { ceph_kick_flushing_caps() 2012 if (cap && cap->session == session) { ceph_kick_flushing_caps() 2027 cap, session->s_mds); ceph_kick_flushing_caps() 2034 struct ceph_mds_session *session, kick_flushing_inode_caps() 2046 __ceph_flush_snaps(ci, &session, 1); kick_flushing_inode_caps() 2051 &cap->session->s_cap_flushing); kick_flushing_inode_caps() 2174 struct ceph_mds_session *s = ci->i_auth_cap->session; try_get_cap_refs() 2481 struct ceph_mds_session *session, 2487 int mds = session->s_mds; 2545 cap->cap_gen = session->s_cap_gen; 2685 kick_flushing_inode_caps(mdsc, session, inode); 2716 session); 2718 ceph_check_caps(ci, CHECK_CAPS_NODELAY, session); 2720 mutex_unlock(&session->s_mutex); 2729 struct ceph_mds_session *session, 2748 inode, session->s_mds, seq, ceph_cap_string(dirty), 2760 if (!list_empty(&session->s_cap_flushing)) 2762 session->s_mds, 2763 &list_entry(session->s_cap_flushing.next, 2800 struct ceph_mds_session *session) handle_cap_flushsnap_ack() 2808 inode, ci, session->s_mds, follows); handle_cap_flushsnap_ack() 2845 struct ceph_mds_session *session) 2849 int mds = session->s_mds; 2883 struct ceph_mds_session *session) handle_cap_export() 2893 int mds = session->s_mds; handle_cap_export() 2943 &tcap->session->s_cap_flushing); handle_cap_export() 2960 mutex_unlock(&session->s_mutex); handle_cap_export() 2962 /* open target session */ handle_cap_export() 2966 mutex_lock(&session->s_mutex); handle_cap_export() 2971 mutex_lock_nested(&session->s_mutex, handle_cap_export() 2985 mutex_unlock(&session->s_mutex); handle_cap_export() 3002 struct ceph_mds_session *session, 3008 int mds = session->s_mds; 3050 ceph_add_cap(inode, session, cap_id, -1, caps, wanted, seq, mseq, 3081 * Identify the appropriate session, inode, and call the right handler 3084 void ceph_handle_caps(struct ceph_mds_session *session, ceph_handle_caps() argument 3087 struct ceph_mds_client *mdsc = session->s_mdsc; ceph_handle_caps() 3095 int mds = session->s_mds; ceph_handle_caps() 3165 mutex_lock(&session->s_mutex); ceph_handle_caps() 3166 session->s_seq++; ceph_handle_caps() 3167 dout(" mds%d seq %lld cap seq %u\n", session->s_mds, session->s_seq, ceph_handle_caps() 3171 ceph_add_cap_releases(mdsc, session); ceph_handle_caps() 3177 spin_lock(&session->s_cap_lock); ceph_handle_caps() 3178 __queue_cap_release(session, vino.ino, cap_id, ceph_handle_caps() 3180 spin_unlock(&session->s_cap_lock); ceph_handle_caps() 3188 handle_cap_flushsnap_ack(inode, tid, h, session); ceph_handle_caps() 3192 handle_cap_export(inode, h, peer, session); ceph_handle_caps() 3206 handle_cap_import(mdsc, inode, h, peer, session, ceph_handle_caps() 3210 msg->middle, session, cap, issued); ceph_handle_caps() 3234 msg->middle, session, cap, issued); ceph_handle_caps() 3238 handle_cap_flush_ack(inode, tid, h, session, cap); ceph_handle_caps() 3242 handle_cap_trunc(inode, h, session); ceph_handle_caps() 3259 ceph_add_cap_releases(mdsc, session); ceph_handle_caps() 3260 ceph_send_cap_releases(mdsc, session); ceph_handle_caps() 3263 mutex_unlock(&session->s_mutex); ceph_handle_caps() 511 ceph_add_cap(struct inode *inode, struct ceph_mds_session *session, u64 cap_id, int fmode, unsigned issued, unsigned wanted, unsigned seq, unsigned mseq, u64 realmino, int flags, struct ceph_cap **new_cap) ceph_add_cap() argument 1447 __mark_caps_flushing(struct inode *inode, struct ceph_mds_session *session) __mark_caps_flushing() argument 1520 ceph_check_caps(struct ceph_inode_info *ci, int flags, struct ceph_mds_session *session) ceph_check_caps() argument 1971 kick_flushing_capsnaps(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) kick_flushing_capsnaps() argument 1997 ceph_kick_flushing_caps(struct ceph_mds_client *mdsc, struct ceph_mds_session *session) ceph_kick_flushing_caps() argument 2033 kick_flushing_inode_caps(struct ceph_mds_client *mdsc, struct ceph_mds_session *session, struct inode *inode) kick_flushing_inode_caps() argument 2798 handle_cap_flushsnap_ack(struct inode *inode, u64 flush_tid, struct ceph_mds_caps *m, struct ceph_mds_session *session) handle_cap_flushsnap_ack() argument 2881 handle_cap_export(struct inode *inode, struct ceph_mds_caps *ex, struct ceph_mds_cap_peer *ph, struct ceph_mds_session *session) handle_cap_export() argument
|
H A D | mds_client.h | 19 * session->s_mutex 105 * state associated with each MDS<->client session 123 struct mutex s_mutex; /* serialize session messages */ 132 unsigned long s_cap_ttl; /* when session caps expire */ 136 struct list_head s_caps; /* all caps issued by this session */ 253 struct list_head r_unsafe_item; /* per-session unsafe list item */ 275 struct ceph_mds_session **sessions; /* NULL for mds if no session */ 383 struct ceph_mds_session *session); 385 struct ceph_mds_session *session); 393 extern void ceph_mdsc_lease_send_msg(struct ceph_mds_session *session, 404 struct ceph_mds_session *session);
|
H A D | debugfs.c | 69 seq_printf(s, "%lld\t(no session)\t", req->r_tid); mdsc_show() 175 /* The list of MDS session rank+state */ mds_sessions_show() 177 struct ceph_mds_session *session = mds_sessions_show() local 179 if (!session) { mds_sessions_show() 184 session->s_mds, mds_sessions_show() 185 ceph_session_state_name(session->s_state)); mds_sessions_show() 187 ceph_put_mds_session(session); mds_sessions_show()
|
H A D | super.h | 117 * session capability lists. 122 struct ceph_mds_session *session; member in struct:ceph_cap 123 struct list_head session_caps; /* per-session caplist */ 280 /* capabilities. protected _both_ by i_ceph_lock and cap->session's 700 struct ceph_mds_session *session, 737 struct ceph_mds_session *session); 739 struct ceph_mds_session *session); 827 extern void ceph_handle_caps(struct ceph_mds_session *session, 832 struct ceph_mds_session *session, u64 cap_id, 841 extern void __queue_cap_release(struct ceph_mds_session *session, u64 ino, 848 struct ceph_mds_session *session); 860 struct ceph_mds_session *session);
|
H A D | inode.c | 665 struct ceph_mds_session *session, fill_inode() 845 ceph_add_cap(inode, session, fill_inode() 921 * caller should hold session s_mutex. 925 struct ceph_mds_session *session, update_dentry_lease() 949 if (di->lease_gen == session->s_cap_gen && update_dentry_lease() 953 if (di->lease_session && di->lease_session != session) update_dentry_lease() 959 di->lease_session = ceph_get_mds_session(session); update_dentry_lease() 960 di->lease_gen = session->s_cap_gen; update_dentry_lease() 1027 struct ceph_mds_session *session) ceph_fill_trace() 1056 session, req->r_request_started, -1); ceph_fill_trace() 1065 session, req->r_request_started, ceph_fill_trace() 1085 session, req->r_request_started, -1, ceph_fill_trace() 1155 session, req->r_request_started, ceph_fill_trace() 1248 session, ceph_fill_trace() 1272 update_dentry_lease(dn, rinfo->dlease, session, ceph_fill_trace() 1304 struct ceph_mds_session *session) readdir_prepopulate_inodes_only() 1323 rc = fill_inode(in, NULL, &rinfo->dir_in[i], NULL, session, readdir_prepopulate_inodes_only() 1337 struct ceph_mds_session *session) ceph_readdir_prepopulate() 1363 return readdir_prepopulate_inodes_only(req, session); ceph_readdir_prepopulate() 1439 if (fill_inode(in, NULL, &rinfo->dir_in[i], NULL, session, ceph_readdir_prepopulate() 662 fill_inode(struct inode *inode, struct page *locked_page, struct ceph_mds_reply_info_in *iinfo, struct ceph_mds_reply_dirfrag *dirinfo, struct ceph_mds_session *session, unsigned long ttl_from, int cap_fmode, struct ceph_cap_reservation *caps_reservation) fill_inode() argument 923 update_dentry_lease(struct dentry *dentry, struct ceph_mds_reply_lease *lease, struct ceph_mds_session *session, unsigned long from_time) update_dentry_lease() argument 1026 ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req, struct ceph_mds_session *session) ceph_fill_trace() argument 1303 readdir_prepopulate_inodes_only(struct ceph_mds_request *req, struct ceph_mds_session *session) readdir_prepopulate_inodes_only() argument 1336 ceph_readdir_prepopulate(struct ceph_mds_request *req, struct ceph_mds_session *session) ceph_readdir_prepopulate() argument
|
H A D | snap.c | 768 struct ceph_mds_session *session = NULL; flush_snaps() local 779 __ceph_flush_snaps(ci, &session, 0); flush_snaps() 786 if (session) { flush_snaps() 787 mutex_unlock(&session->s_mutex); flush_snaps() 788 ceph_put_mds_session(session); flush_snaps() 806 struct ceph_mds_session *session, ceph_handle_snap() 810 int mds = session->s_mds; ceph_handle_snap() 838 mutex_lock(&session->s_mutex); ceph_handle_snap() 839 session->s_seq++; ceph_handle_snap() 840 mutex_unlock(&session->s_mutex); ceph_handle_snap() 805 ceph_handle_snap(struct ceph_mds_client *mdsc, struct ceph_mds_session *session, struct ceph_msg *msg) ceph_handle_snap() argument
|
/linux-4.1.27/include/uapi/linux/netfilter/ |
H A D | xt_l2tp.h | 14 __u32 sid; /* session id */ 22 XT_L2TP_SID = (1 << 1), /* match L2TP session id */
|
/linux-4.1.27/tools/perf/ |
H A D | builtin-evlist.c | 16 #include "util/session.h" 22 struct perf_session *session; __cmd_evlist() local 30 session = perf_session__new(&file, 0, NULL); __cmd_evlist() 31 if (session == NULL) __cmd_evlist() 34 evlist__for_each(session->evlist, pos) __cmd_evlist() 37 perf_session__delete(session); __cmd_evlist()
|
H A D | builtin-buildid-list.c | 16 #include "util/session.h" 55 struct perf_session *session; perf_session__list_build_ids() local 69 session = perf_session__new(&file, false, &build_id__mark_dso_hit_ops); perf_session__list_build_ids() 70 if (session == NULL) perf_session__list_build_ids() 77 perf_session__process_events(session); perf_session__list_build_ids() 79 perf_session__fprintf_dsos_buildid(session, stdout, dso__skip_buildid, with_hits); perf_session__list_build_ids() 80 perf_session__delete(session); perf_session__list_build_ids()
|
H A D | builtin-report.c | 27 #include "util/session.h" 44 struct perf_session *session; member in struct:report 204 struct perf_session *session = rep->session; report__setup_sample_type() local 205 u64 sample_type = perf_evlist__combined_sample_type(session->evlist); report__setup_sample_type() 206 bool is_pipe = perf_data_file__is_pipe(session->file); report__setup_sample_type() 349 struct map *kernel_map = rep->session->machines.host.vmlinux_maps[MAP__FUNCTION]; report__warn_kptr_restrict() 388 return hist_browser(rep->session->evlist, help, NULL, rep->min_percent); report__gtk_browse_hists() 394 struct perf_session *session = rep->session; report__browse_hists() local 395 struct perf_evlist *evlist = session->evlist; report__browse_hists() 402 &session->header.env); report__browse_hists() 428 evlist__for_each(rep->session->evlist, pos) { report__collapse_hists() 456 evlist__for_each(rep->session->evlist, pos) report__output_resort() 465 struct perf_session *session = rep->session; __cmd_report() local 467 struct perf_data_file *file = session->file; __cmd_report() 472 ret = perf_session__cpu_bitmap(session, rep->cpu_list, __cmd_report() 485 ret = perf_session__process_events(session); __cmd_report() 491 evlist__for_each(session->evlist, pos) __cmd_report() 496 perf_session__fprintf(session, stdout); __cmd_report() 499 perf_session__fprintf_dsos(session, stdout); __cmd_report() 502 perf_session__fprintf_nr_events(session, stdout); __cmd_report() 503 perf_evlist__fprintf_nr_events(session->evlist, stdout); __cmd_report() 518 evlist__for_each(session->evlist, pos) __cmd_report() 587 struct perf_session *session; cmd_report() local 755 session = perf_session__new(&file, false, &report.tool); cmd_report() 756 if (session == NULL) cmd_report() 760 ordered_events__set_alloc_size(&session->ordered_events, cmd_report() 764 report.session = session; cmd_report() 766 has_br_stack = perf_header__has_feat(&session->header, cmd_report() 816 perf_session__fprintf_info(session, stdout, cmd_report() 832 machines__set_symbol_filter(&session->machines, cmd_report() 851 if (symbol__init(&session->header.env) < 0) cmd_report() 869 perf_session__delete(session); cmd_report() 875 perf_session__delete(session); cmd_report()
|
H A D | builtin-annotate.c | 29 #include "util/session.h" 39 struct perf_session *session; member in struct:perf_annotate 192 struct perf_session *session = ann->session; __cmd_annotate() local 196 machines__set_symbol_filter(&session->machines, symbol__annotate_init); __cmd_annotate() 199 ret = perf_session__cpu_bitmap(session, ann->cpu_list, __cmd_annotate() 206 ret = perf_session_env__lookup_objdump(&session->header.env); __cmd_annotate() 211 ret = perf_session__process_events(session); __cmd_annotate() 216 perf_session__fprintf_nr_events(session, stdout); __cmd_annotate() 217 perf_evlist__fprintf_nr_events(session->evlist, stdout); __cmd_annotate() 222 perf_session__fprintf(session, stdout); __cmd_annotate() 225 perf_session__fprintf_dsos(session, stdout); __cmd_annotate() 228 evlist__for_each(session->evlist, pos) { __cmd_annotate() 246 ui__error("The %s file has no samples!\n", session->file->path); __cmd_annotate() 345 annotate.session = perf_session__new(&file, false, &annotate.tool); cmd_annotate() 346 if (annotate.session == NULL) cmd_annotate() 352 ret = symbol__init(&annotate.session->header.env); cmd_annotate() 383 * perf_session__delete(session); cmd_annotate()
|
H A D | builtin-inject.c | 14 #include "util/session.h" 26 struct perf_session *session; member in struct:perf_inject 65 struct perf_session *session perf_event__repipe_op2_synth() 160 struct perf_session *session) perf_event__repipe_tracing_data() 165 err = perf_event__process_tracing_data(tool, event, session); perf_event__repipe_tracing_data() 351 struct perf_session *session = inject->session; __cmd_inject() local 369 evlist__for_each(session->evlist, evsel) { __cmd_inject() 385 lseek(fd, session->header.data_offset, SEEK_SET); __cmd_inject() 387 ret = perf_session__process_events(session); __cmd_inject() 391 perf_header__set_feat(&session->header, __cmd_inject() 393 session->header.data_size = inject->bytes_written; __cmd_inject() 394 perf_session__write_header(session, session->evlist, fd, true); __cmd_inject() 470 inject.session = perf_session__new(&file, true, &inject.tool); cmd_inject() 471 if (inject.session == NULL) cmd_inject() 474 if (symbol__init(&inject.session->header.env) < 0) cmd_inject() 479 perf_session__delete(inject.session); cmd_inject() 158 perf_event__repipe_tracing_data(struct perf_tool *tool, union perf_event *event, struct perf_session *session) perf_event__repipe_tracing_data() argument
|
H A D | builtin-buildid-cache.c | 22 #include "util/session.h" 270 static int build_id_cache__fprintf_missing(struct perf_session *session, FILE *fp) build_id_cache__fprintf_missing() argument 272 perf_session__fprintf_dsos_buildid(session, fp, dso__missing_buildid_cache, 0); build_id_cache__fprintf_missing() 319 struct perf_session *session = NULL; cmd_buildid_cache() local 355 session = perf_session__new(&file, false, NULL); cmd_buildid_cache() 356 if (session == NULL) cmd_buildid_cache() 360 if (symbol__init(session ? &session->header.env : NULL) < 0) cmd_buildid_cache() 420 ret = build_id_cache__fprintf_missing(session, stdout); 444 if (session) 445 perf_session__delete(session);
|
H A D | builtin-script.c | 9 #include "util/session.h" 179 struct perf_session *session) perf_evsel__check_attr() 184 !perf_session__has_traces(session, "record -R")) perf_evsel__check_attr() 269 static int perf_session__check_output_opt(struct perf_session *session) perf_session__check_output_opt() argument 275 evsel = perf_session__find_first_evtype(session, j); perf_session__check_output_opt() 289 perf_evsel__check_attr(evsel, session)) perf_session__check_output_opt() 301 evlist__for_each(session->evlist, evsel) { perf_session__check_output_opt() 320 evsel = perf_session__find_first_evtype(session, j); perf_session__check_output_opt() 583 struct perf_session *session; member in struct:perf_script 613 return perf_evsel__check_attr(evsel, scr->session); 623 struct perf_session *session = script->session; process_comm_event() local 624 struct perf_evsel *evsel = perf_evlist__first(session->evlist); process_comm_event() 657 struct perf_session *session = script->session; process_fork_event() local 658 struct perf_evsel *evsel = perf_evlist__first(session->evlist); process_fork_event() 687 struct perf_session *session = script->session; process_exit_event() local 688 struct perf_evsel *evsel = perf_evlist__first(session->evlist); process_exit_event() 718 struct perf_session *session = script->session; process_mmap_event() local 719 struct perf_evsel *evsel = perf_evlist__first(session->evlist); process_mmap_event() 749 struct perf_session *session = script->session; process_mmap2_event() local 750 struct perf_evsel *evsel = perf_evlist__first(session->evlist); process_mmap2_event() 795 ret = perf_session__process_events(script->session); __cmd_script() 1279 struct perf_session *session) check_ev_match() 1312 evlist__for_each(session->evlist, pos) { check_ev_match() 1342 struct perf_session *session; find_scripts() local 1350 session = perf_session__new(&file, false, NULL); find_scripts() 1351 if (!session) find_scripts() 1358 perf_session__delete(session); find_scripts() 1390 scripts_array[i], session)) for_each_script() 1399 perf_session__delete(session); 1499 struct perf_session *session; cmd_script() local 1753 session = perf_session__new(&file, false, &script.tool); cmd_script() 1754 if (session == NULL) cmd_script() 1758 perf_session__fprintf_info(session, stdout, show_full_info); cmd_script() 1763 if (symbol__init(&session->header.env) < 0) cmd_script() 1766 script.session = session; cmd_script() 1769 err = perf_session__cpu_bitmap(session, cpu_list, cpu_bitmap); cmd_script() 1815 err = scripting_ops->generate_script(session->tevent.pevent, cmd_script() 1829 err = perf_session__check_output_opt(session); cmd_script() 1838 perf_session__delete(session); cmd_script() 178 perf_evsel__check_attr(struct perf_evsel *evsel, struct perf_session *session) perf_evsel__check_attr() argument 1278 check_ev_match(char *dir_name, char *scriptname, struct perf_session *session) check_ev_match() argument
|
H A D | builtin-record.c | 24 #include "util/session.h" 42 struct perf_session *session; member in struct:record 52 if (perf_data_file__write(rec->session->file, bf, size) < 0) { record__write() 141 struct perf_session *session = rec->session; record__open() local 188 session->evlist = evlist; 189 perf_session__set_id_hdr_size(session); 210 struct perf_session *session = rec->session; process_buildids() local 229 return perf_session__process_events(session); process_buildids() 294 struct perf_session *session = rec->session; record__init_features() local 298 perf_header__set_feat(&session->header, feat); record__init_features() 301 perf_header__clear_feat(&session->header, HEADER_BUILD_ID); record__init_features() 304 perf_header__clear_feat(&session->header, HEADER_TRACING_DATA); record__init_features() 307 perf_header__clear_feat(&session->header, HEADER_BRANCH_STACK); record__init_features() 336 struct perf_session *session; __cmd_record() local 347 session = perf_session__new(file, false, tool); __cmd_record() 348 if (session == NULL) { __cmd_record() 349 pr_err("Perf session creation failed.\n"); __cmd_record() 354 rec->session = session; __cmd_record() 375 perf_header__clear_feat(&session->header, HEADER_GROUP_DESC); __cmd_record() 382 err = perf_session__write_header(session, rec->evlist, fd, false); __cmd_record() 388 && !perf_header__has_feat(&session->header, HEADER_BUILD_ID)) { __cmd_record() 395 machine = &session->machines.host; __cmd_record() 398 err = perf_event__synthesize_attrs(tool, session, __cmd_record() 439 machines__process_guests(&session->machines, __cmd_record() 546 rec->session->header.data_size += rec->bytes_written; __cmd_record() 550 perf_session__write_header(rec->session, rec->evlist, fd, true); __cmd_record() 568 perf_session__delete(session); __cmd_record()
|
H A D | builtin-mem.c | 7 #include "util/session.h" 128 struct perf_session *session = perf_session__new(&file, false, report_raw_events() local 131 if (session == NULL) report_raw_events() 135 ret = perf_session__cpu_bitmap(session, mem->cpu_list, report_raw_events() 141 if (symbol__init(&session->header.env) < 0) report_raw_events() 146 err = perf_session__process_events(session); report_raw_events() 153 perf_session__delete(session); report_raw_events()
|
H A D | builtin-kmem.c | 11 #include "util/session.h" 517 struct perf_session *session, __print_slab_result() 521 struct machine *machine = &session->machines.host; __print_slab_result() 580 struct perf_session *session __maybe_unused, __print_page_result() 674 static void print_slab_result(struct perf_session *session) print_slab_result() argument 677 __print_slab_result(&root_caller_sorted, session, caller_lines, 1); print_slab_result() 679 __print_slab_result(&root_alloc_sorted, session, alloc_lines, 0); print_slab_result() 683 static void print_page_result(struct perf_session *session) print_page_result() argument 686 __print_page_result(&page_alloc_sorted, session, alloc_lines); print_page_result() 690 static void print_result(struct perf_session *session) print_result() argument 693 print_slab_result(session); print_result() 695 print_page_result(session); print_result() 808 static int __cmd_kmem(struct perf_session *session) __cmd_kmem() argument 825 if (!perf_session__has_traces(session, "kmem record")) __cmd_kmem() 828 if (perf_session__set_tracepoints_handlers(session, kmem_tracepoints)) { __cmd_kmem() 829 pr_err("Initializing perf session tracepoint handlers failed\n"); __cmd_kmem() 833 evlist__for_each(session->evlist, evsel) { __cmd_kmem() 842 err = perf_session__process_events(session); __cmd_kmem() 848 print_result(session); __cmd_kmem() 1143 struct perf_session *session; cmd_kmem() local 1162 session = perf_session__new(&file, false, &perf_kmem); cmd_kmem() 1163 if (session == NULL) cmd_kmem() 1167 struct perf_evsel *evsel = perf_evlist__first(session->evlist); cmd_kmem() 1177 symbol__init(&session->header.env); cmd_kmem() 1190 ret = __cmd_kmem(session); cmd_kmem() 1195 perf_session__delete(session); cmd_kmem() 516 __print_slab_result(struct rb_root *root, struct perf_session *session, int n_lines, int is_caller) __print_slab_result() argument
|
H A D | builtin-kvm.c | 11 #include "util/session.h" 687 cpuid = kvm->session->header.env.cpuid; cpu_isa_config() 734 err = perf_session__queue_event(kvm->session, event, &sample, 0); perf_kvm__mmap_read_idx() 787 struct ordered_events *oe = &kvm->session->ordered_events; perf_kvm__mmap_read() 1054 kvm->session = perf_session__new(&file, false, &kvm->tool); read_events() 1055 if (!kvm->session) { read_events() 1056 pr_err("Initializing perf session failed\n"); read_events() 1060 symbol__init(&kvm->session->header.env); read_events() 1062 if (!perf_session__has_traces(kvm->session, "kvm record")) read_events() 1073 return perf_session__process_events(kvm->session); read_events() 1383 * perf session kvm_events_live() 1385 kvm->session = perf_session__new(&file, false, &kvm->tool); kvm_events_live() 1386 if (kvm->session == NULL) { kvm_events_live() 1390 kvm->session->evlist = kvm->evlist; kvm_events_live() 1391 perf_session__set_id_hdr_size(kvm->session); kvm_events_live() 1392 ordered_events__set_copy_on_queue(&kvm->session->ordered_events, true); kvm_events_live() 1393 machine__synthesize_threads(&kvm->session->machines.host, &kvm->opts.target, kvm_events_live() 1404 if (kvm->session) kvm_events_live() 1405 perf_session__delete(kvm->session); kvm_events_live() 1406 kvm->session = NULL; kvm_events_live()
|
H A D | builtin-top.c | 30 #include "util/session.h" 507 perf_session__fprintf_dsos(top->session, stderr); perf_top__handle_keypress() 583 &top->session->header.env); display_thread_tui() 719 top->session->evlist->stats.nr_unprocessable_samples++); perf_event__process_sample() 803 struct perf_session *session = top->session; perf_top__mmap_read_idx() local 816 evsel = perf_evlist__id2evsel(session->evlist, sample.id); perf_top__mmap_read_idx() 829 machine = &session->machines.host; perf_top__mmap_read_idx() 835 machine = &session->machines.host; perf_top__mmap_read_idx() 839 machine = perf_session__find_machine(session, perf_top__mmap_read_idx() 861 ++session->evlist->stats.nr_unknown_events; perf_top__mmap_read_idx() 936 top->session = perf_session__new(NULL, false, NULL); __cmd_top() 937 if (top->session == NULL) __cmd_top() 940 machines__set_symbol_filter(&top->session->machines, symbol_filter); __cmd_top() 943 ret = perf_session_env__lookup_objdump(&top->session->header.env); __cmd_top() 952 machine__synthesize_threads(&top->session->machines.host, &opts->target, __cmd_top() 958 top->session->evlist = top->evlist; __cmd_top() 959 perf_session__set_id_hdr_size(top->session); __cmd_top() 1007 perf_session__delete(top->session); __cmd_top() 1008 top->session = NULL; __cmd_top()
|
H A D | builtin-lock.c | 16 #include "util/session.h" 30 static struct perf_session *session; variable in typeref:struct:perf_session 769 t = perf_session__findnew(session, st->tid); dump_threads() 865 session = perf_session__new(&file, false, &eops); __cmd_report() 866 if (!session) { __cmd_report() 867 pr_err("Initializing perf session failed\n"); __cmd_report() 871 symbol__init(&session->header.env); __cmd_report() 873 if (!perf_session__has_traces(session, "lock record")) __cmd_report() 876 if (perf_session__set_tracepoints_handlers(session, lock_tracepoints)) { __cmd_report() 877 pr_err("Initializing perf session tracepoint handlers failed\n"); __cmd_report() 884 err = perf_session__process_events(session); __cmd_report() 897 perf_session__delete(session); __cmd_report()
|
H A D | builtin-diff.c | 14 #include "util/session.h" 45 struct perf_session *session; member in struct:data__file 687 struct perf_evlist *evlist_base = data__files[0].session->evlist; data_process() 697 struct perf_evlist *evlist = d->session->evlist; data__for_each_file_new() 743 d->session = perf_session__new(&d->file, false, &tool); data__for_each_file() 744 if (!d->session) { data__for_each_file() 750 ret = perf_session__process_events(d->session); data__for_each_file() 756 perf_evlist__collapse_resort(d->session->evlist); data__for_each_file() 763 if (d->session) data__for_each_file() 764 perf_session__delete(d->session); data__for_each_file()
|
H A D | builtin-sched.c | 11 #include "util/session.h" 1486 struct perf_session *session; perf_sched__read_events() local 1494 session = perf_session__new(&file, false, &sched->tool); perf_sched__read_events() 1495 if (session == NULL) { perf_sched__read_events() 1496 pr_debug("No Memory for session\n"); perf_sched__read_events() 1500 symbol__init(&session->header.env); perf_sched__read_events() 1502 if (perf_session__set_tracepoints_handlers(session, handlers)) perf_sched__read_events() 1505 if (perf_session__has_traces(session, "record -R")) { perf_sched__read_events() 1506 int err = perf_session__process_events(session); perf_sched__read_events() 1512 sched->nr_events = session->evlist->stats.nr_events[0]; perf_sched__read_events() 1513 sched->nr_lost_events = session->evlist->stats.total_lost; perf_sched__read_events() 1514 sched->nr_lost_chunks = session->evlist->stats.nr_events[PERF_RECORD_LOST]; perf_sched__read_events() 1519 perf_session__delete(session); perf_sched__read_events()
|
H A D | builtin-timechart.c | 36 #include "util/session.h" 1605 struct perf_session *session = perf_session__new(&file, false, __cmd_timechart() local 1609 if (session == NULL) __cmd_timechart() 1612 symbol__init(&session->header.env); __cmd_timechart() 1614 (void)perf_header__process_sections(&session->header, __cmd_timechart() 1615 perf_data_file__fd(session->file), __cmd_timechart() 1619 if (!perf_session__has_traces(session, "timechart record")) __cmd_timechart() 1622 if (perf_session__set_tracepoints_handlers(session, __cmd_timechart() 1624 pr_err("Initializing session tracepoint handlers failed\n"); __cmd_timechart() 1628 ret = perf_session__process_events(session); __cmd_timechart() 1641 perf_session__delete(session); __cmd_timechart()
|
H A D | builtin-trace.c | 7 #include "util/session.h" 2357 struct perf_session *session; trace__replay() local 2377 session = perf_session__new(&file, false, &trace->tool); trace__replay() 2378 if (session == NULL) trace__replay() 2381 if (symbol__init(&session->header.env) < 0) trace__replay() 2384 trace->host = &session->machines.host; trace__replay() 2386 err = perf_session__set_tracepoints_handlers(session, handlers); trace__replay() 2390 evsel = perf_evlist__find_tracepoint_by_name(session->evlist, trace__replay() 2394 evsel = perf_evlist__find_tracepoint_by_name(session->evlist, trace__replay() 2404 evsel = perf_evlist__find_tracepoint_by_name(session->evlist, trace__replay() 2407 evsel = perf_evlist__find_tracepoint_by_name(session->evlist, trace__replay() 2416 evlist__for_each(session->evlist, evsel) { trace__replay() 2430 err = perf_session__process_events(session); trace__replay() 2438 perf_session__delete(session); trace__replay()
|
/linux-4.1.27/drivers/staging/lustre/include/linux/lnet/ |
H A D | lnetst.h | 57 #define LSTIO_SESSION_NEW 0xC01 /* create session */ 58 #define LSTIO_SESSION_END 0xC02 /* end session */ 59 #define LSTIO_SESSION_INFO 0xC03 /* query session */ 61 #define LSTIO_GROUP_LIST 0xC11 /* list all groups in session */ 70 #define LSTIO_BATCH_LIST 0xC24 /* show all batches in the session */ 79 } lst_sid_t; /*** session id */ 84 __u64 bat_id; /* unique id in session */ 88 #define LST_NODE_ACTIVE 0x1 /* node in this session */ 89 #define LST_NODE_BUSY 0x2 /* node is taken by other session */ 91 #define LST_NODE_UNKNOWN 0x8 /* node not in session */ 135 lst_sid_t rpe_sid; /* peer's session id */ 239 /* create a session */ 242 int lstio_ses_timeout; /* IN: session timeout */ 244 /** IN: session features */ 246 lst_sid_t *lstio_ses_idp; /* OUT: session id */ 248 char *lstio_ses_namep; /* IN: session name */ 251 /* query current session */ 253 lst_sid_t *lstio_ses_idp; /* OUT: session id */ 255 /** OUT: session features */ 259 char *lstio_ses_namep; /* OUT: session name */ 262 /* delete a session */ 264 int lstio_ses_key; /* IN: session key */ 274 int lstio_dbg_key; /* IN: session key */ 287 int lstio_grp_key; /* IN: session key */ 293 int lstio_grp_key; /* IN: session key */ 303 int lstio_grp_key; /* IN: session key */ 314 int lstio_grp_key; /* IN: session key */ 318 /** OUT: session features */ 325 int lstio_grp_key; /* IN: session key */ 332 int lstio_grp_key; /* IN: session key */ 345 int lstio_bat_key; /* IN: session key */ 351 int lstio_bat_key; /* IN: session key */ 357 int lstio_bat_key; /* IN: session key */ 365 int lstio_bat_key; /* IN: session key */ 373 int lstio_bat_key; /* IN: session key */ 383 int lstio_bat_key; /* IN: session key */ 390 int lstio_bat_key; /* IN: session key */ 402 /* add stat in session */ 404 int lstio_sta_key; /* IN: session key */ 422 int lstio_tes_key; /* IN: session key */ 483 /** milliseconds since current session started */
|
/linux-4.1.27/drivers/staging/lustre/lnet/selftest/ |
H A D | rpc.h | 74 * session id if needed. 89 lst_sid_t mksn_sid; /* session id */ 92 } WIRE_ATTR srpc_mksn_reqst_t; /* make session request */ 95 __u32 mksn_status; /* session status */ 96 lst_sid_t mksn_sid; /* session id */ 97 __u32 mksn_timeout; /* session timeout */ 99 } WIRE_ATTR srpc_mksn_reply_t; /* make session reply */ 103 lst_sid_t rmsn_sid; /* session id */ 104 } WIRE_ATTR srpc_rmsn_reqst_t; /* remove session request */ 108 lst_sid_t rmsn_sid; /* session id */ 109 } WIRE_ATTR srpc_rmsn_reply_t; /* remove session reply */ 113 lst_sid_t join_sid; /* session id to join */ 119 lst_sid_t join_sid; /* session id */ 121 char join_session[LST_NAME_SIZE]; /* session name */ 126 lst_sid_t dbg_sid; /* session id */ 132 lst_sid_t dbg_sid; /* session id */ 133 __u32 dbg_timeout; /* session timeout */ 135 char dbg_name[LST_NAME_SIZE]; /* session name */ 144 lst_sid_t bar_sid; /* session id */ 153 lst_sid_t bar_sid; /* session id */ 160 lst_sid_t str_sid; /* session id */ 197 lst_sid_t tsr_sid; /* session id */ 258 /** test session features */
|
H A D | console.h | 58 int nd_timeout; /* session timeout */ 91 struct list_head bat_link; /* chain on session's batches list */ 130 #define LST_SESSION_NONE 0x0 /* no session */ 131 #define LST_SESSION_ACTIVE 0x1 /* working session */ 136 struct mutex ses_mutex; /* only 1 thread in session */ 137 lst_sid_t ses_id; /* global session id */ 138 int ses_key; /* local session key */ 139 int ses_state; /* state of session */ 142 /** tests features of the session */ 148 /** session is shutting down */ 153 char ses_name[LST_NAME_SIZE]; /* session name */ 154 lstcon_rpc_trans_t *ses_ping; /* session pinger */ 167 } lstcon_session_t; /*** session descriptor */
|
H A D | framework.c | 50 MODULE_PARM_DESC(session_timeout, "test session timeout in seconds (100 by default, 0 == never)"); 112 sfw_session_t *fw_session; /* _the_ session */ 391 /* send over the msecs since the session was started sfw_get_stats() 449 * console's responsibility to make sure all nodes in a session have sfw_make_session() 1248 /* Remove timer to avoid racing with it or expiring active session */ sfw_handle_server_rpc() 1271 CNETERR("Features of framework RPC don't match features of current session: %x/%x\n", sfw_handle_server_rpc() 1280 * create new session anyway, so console should be able sfw_handle_server_rpc() 1412 if (rpc != NULL) /* "session" is concept in framework */ sfw_create_rpc() 1604 /* sv_name */ "make session", 1609 /* sv_name */ "remove session", 1750 "waiting for session timer to explode.\n"); sfw_shutdown()
|
H A D | conrpc.c | 330 !list_empty(&trans->tas_olink)) /* Not an end session RPC */ lstcon_rpc_trans_check() 932 CNETERR("session protocol error from %s: %u\n", lstcon_sesnew_stat_reply() 953 /* session timeout on remote node */ lstcon_sesnew_stat_reply() 984 /* ESRCH is not an error for end session */ lstcon_rpc_stat_reply() 1093 /* Creating session RPG for list of nodes */ lstcon_rpc_trans_ndlist() 1202 /* idle console, end session on all nodes */ lstcon_rpc_pinger() 1275 CDEBUG(D_NET, "Ping %d nodes in session\n", count); lstcon_rpc_pinger()
|
H A D | console.c | 132 /* remove from session */ lstcon_node_put() 164 /* find or create in session hash */ lstcon_ndlink_find() 481 /* End session and remove node from the group */ lstcon_group_nodes_remove() 613 /* -ref for session, it's destroyed, lstcon_group_del() 1711 /* session exists */ lstcon_session_new() 1726 CNETERR("Unknown session features %x\n", lstcon_session_new() 1887 CERROR("remote features %x do not match with session features %x of console\n", lstcon_session_feats_check() 1981 lstcon_acceptor_service.sv_name = "join session"; lstcon_init_acceptor_service()
|
/linux-4.1.27/include/scsi/ |
H A D | scsi_transport_iscsi.h | 50 * @create_session: create new iSCSI session object 51 * @destroy_session: destroy existing iSCSI session object 53 * @bind_conn: associate this connection with existing iSCSI session 68 * queuecommand with the session lock, or from the 69 * iscsi_conn_send_pdu context with the session lock. 71 * from the scsi work queue without the session lock. 75 * is called from queuecommand with the session lock, or 76 * from the iscsi_conn_send_pdu context with the session 78 * from the scsi work queue without the session lock. 79 * @cleanup_task: requests LLD to fail task. Called with session lock 95 void (*destroy_session) (struct iscsi_cls_session *session); 98 int (*bind_conn) (struct iscsi_cls_session *session, 110 int (*get_session_param) (struct iscsi_cls_session *session, 133 void (*session_recovery_timedout) (struct iscsi_cls_session *session); 224 /* iscsi class session state */ 250 * pid of userspace process that created session or -1 if 255 int sid; /* session id */ 360 /* iscsi session parameters */ 383 /* index of iSCSI discovery session if the entry is 384 * discovered by iSCSI discovery session 396 /* enables firmware to auto logout the discovery session on discovery 401 /* makes authentication for discovery session optional */ 414 * session and connection functions that can be used by HW iSCSI LLDs 422 extern int iscsi_session_chkready(struct iscsi_cls_session *session); 423 extern int iscsi_is_session_online(struct iscsi_cls_session *session); 426 extern int iscsi_add_session(struct iscsi_cls_session *session, 428 extern int iscsi_session_event(struct iscsi_cls_session *session, 434 extern void iscsi_remove_session(struct iscsi_cls_session *session); 435 extern void iscsi_free_session(struct iscsi_cls_session *session); 436 extern int iscsi_destroy_session(struct iscsi_cls_session *session); 440 extern void iscsi_unblock_session(struct iscsi_cls_session *session); 441 extern void iscsi_block_session(struct iscsi_cls_session *session);
|
H A D | libiscsi.h | 93 ISCSI_TASK_ABRT_SESS_RECOV, /* aborted due to session recovery */ 111 * and length to that storage. It must be setup at session 140 /* state set/tested under session->lock */ 168 struct iscsi_session *session; /* parent session */ member in struct:iscsi_conn 277 * task management functions. This must be taken before the session 282 /* iSCSI session-wide sequencing */ 339 spinlock_t frwd_lock; /* protects session state, * 341 * session resources: * 347 int state; /* session state */ 348 int age; /* counts session re-opens */ 407 * session management 433 extern void iscsi_session_failure(struct iscsi_session *session,
|
H A D | libiscsi_tcp.h | 131 extern int iscsi_tcp_r2tpool_alloc(struct iscsi_session *session); 132 extern void iscsi_tcp_r2tpool_free(struct iscsi_session *session);
|
/linux-4.1.27/drivers/net/wireless/brcm80211/brcmsmac/ |
H A D | ampdu.h | 21 * Data structure representing an in-progress session for accumulating 40 void brcms_c_ampdu_reset_session(struct brcms_ampdu_session *session, 42 int brcms_c_ampdu_add_frame(struct brcms_ampdu_session *session, 44 void brcms_c_ampdu_finalize(struct brcms_ampdu_session *session);
|
H A D | ampdu.c | 501 void brcms_c_ampdu_reset_session(struct brcms_ampdu_session *session, brcms_c_ampdu_reset_session() argument 504 session->wlc = wlc; brcms_c_ampdu_reset_session() 505 skb_queue_head_init(&session->skb_list); brcms_c_ampdu_reset_session() 506 session->max_ampdu_len = 0; /* determined from first MPDU */ brcms_c_ampdu_reset_session() 507 session->max_ampdu_frames = 0; /* determined from first MPDU */ brcms_c_ampdu_reset_session() 508 session->ampdu_len = 0; brcms_c_ampdu_reset_session() 509 session->dma_len = 0; brcms_c_ampdu_reset_session() 513 * Preps the given packet for AMPDU based on the session data. If the 514 * frame cannot be accomodated in the current session, -ENOSPC is 517 int brcms_c_ampdu_add_frame(struct brcms_ampdu_session *session, brcms_c_ampdu_add_frame() argument 520 struct brcms_c_info *wlc = session->wlc; brcms_c_ampdu_add_frame() 542 ampdu_frames = skb_queue_len(&session->skb_list); brcms_c_ampdu_add_frame() 546 if (ampdu_frames + 1 > session->max_ampdu_frames || brcms_c_ampdu_add_frame() 547 session->ampdu_len + len > session->max_ampdu_len) brcms_c_ampdu_add_frame() 558 first = skb_peek(&session->skb_list); brcms_c_ampdu_add_frame() 565 * session information. brcms_c_ampdu_add_frame() 567 session->ampdu_len += len; brcms_c_ampdu_add_frame() 568 session->dma_len += p->len; brcms_c_ampdu_add_frame() 599 session->max_ampdu_len = min(scb_ampdu->max_rx_ampdu_bytes, brcms_c_ampdu_add_frame() 602 session->max_ampdu_frames = scb_ampdu->max_pdu; brcms_c_ampdu_add_frame() 604 session->max_ampdu_frames = brcms_c_ampdu_add_frame() 606 session->max_ampdu_frames); brcms_c_ampdu_add_frame() 621 skb_queue_tail(&session->skb_list, p); brcms_c_ampdu_add_frame() 626 void brcms_c_ampdu_finalize(struct brcms_ampdu_session *session) brcms_c_ampdu_finalize() argument 628 struct brcms_c_info *wlc = session->wlc; brcms_c_ampdu_finalize() 644 u16 dma_len = session->dma_len; brcms_c_ampdu_finalize() 655 if (skb_queue_empty(&session->skb_list)) brcms_c_ampdu_finalize() 658 first = skb_peek(&session->skb_list); brcms_c_ampdu_finalize() 659 last = skb_peek_tail(&session->skb_list); brcms_c_ampdu_finalize() 674 session->ampdu_len -= ndelim * AMPDU_DELIMITER_LEN; brcms_c_ampdu_finalize() 680 session->ampdu_len -= roundup(len, 4) - len; brcms_c_ampdu_finalize() 751 BRCMS_SET_MIMO_PLCP_LEN(plcp, session->ampdu_len); brcms_c_ampdu_finalize() 758 session->ampdu_len); brcms_c_ampdu_finalize() 764 session->ampdu_len); brcms_c_ampdu_finalize() 793 session->ampdu_len, true); brcms_c_ampdu_finalize() 800 session->ampdu_len, true); brcms_c_ampdu_finalize() 817 wlc->pub->unit, skb_queue_len(&session->skb_list), brcms_c_ampdu_finalize() 818 session->ampdu_len); brcms_c_ampdu_finalize()
|
H A D | dma.c | 215 /* session information for AMPDU */ 698 /* Initialize AMPDU session */ dma_attach() 1317 struct brcms_ampdu_session *session = &di->ampdu_session; ampdu_finalize() local 1320 trace_brcms_ampdu_session(&session->wlc->hw->d11core->dev, ampdu_finalize() 1321 session->max_ampdu_len, ampdu_finalize() 1322 session->max_ampdu_frames, ampdu_finalize() 1323 session->ampdu_len, ampdu_finalize() 1324 skb_queue_len(&session->skb_list), ampdu_finalize() 1325 session->dma_len); ampdu_finalize() 1327 if (WARN_ON(skb_queue_empty(&session->skb_list))) ampdu_finalize() 1330 brcms_c_ampdu_finalize(session); ampdu_finalize() 1332 while (!skb_queue_empty(&session->skb_list)) { ampdu_finalize() 1333 p = skb_dequeue(&session->skb_list); ampdu_finalize() 1339 brcms_c_ampdu_reset_session(session, session->wlc); ampdu_finalize() 1344 struct brcms_ampdu_session *session = &di->ampdu_session; prep_ampdu_frame() local 1347 ret = brcms_c_ampdu_add_frame(session, p); prep_ampdu_frame() 1351 * progress AMPDU session and start a new one. prep_ampdu_frame() 1354 ret = brcms_c_ampdu_add_frame(session, p); prep_ampdu_frame() 1381 struct brcms_ampdu_session *session = &di->ampdu_session; dma_txfast() local 1410 if (skb_queue_len(&session->skb_list) == session->max_ampdu_frames || dma_txfast() 1431 struct brcms_ampdu_session *session = &di->ampdu_session; dma_txflush() local 1433 if (!skb_queue_empty(&session->skb_list)) dma_txflush() 1444 * If we have an active AMPDU session and are not transmitting, 1450 struct brcms_ampdu_session *session = &di->ampdu_session; dma_kick_tx() local 1452 if (!skb_queue_empty(&session->skb_list) && dma64_txidle(di)) dma_kick_tx()
|
H A D | brcms_trace_brcmsmac_tx.h | 95 TP_printk("[%s] ampdu session max_len=%u max_frames=%u len=%u frames=%u dma_len=%u",
|
/linux-4.1.27/fs/nfs/ |
H A D | nfs4session.h | 34 struct nfs4_session *session; /* Parent session */ member in struct:nfs4_slot_table 101 extern void nfs4_destroy_session(struct nfs4_session *session); 130 * nfs_session_id_hash - calculate the crc32 hash for the session id 131 * @session - pointer to session 136 #define nfs_session_id_hash(session) (0)
|
H A D | nfs4session.c | 434 static void nfs4_release_session_slot_tables(struct nfs4_session *session) nfs4_release_session_slot_tables() argument 436 nfs4_release_slot_table(&session->fc_slot_table); nfs4_release_session_slot_tables() 437 nfs4_release_slot_table(&session->bc_slot_table); nfs4_release_session_slot_tables() 451 tbl->session = ses; nfs4_setup_session_slot_tables() 457 tbl->session = ses; nfs4_setup_session_slot_tables() 468 struct nfs4_session *session; nfs4_alloc_session() local 470 session = kzalloc(sizeof(struct nfs4_session), GFP_NOFS); nfs4_alloc_session() 471 if (!session) nfs4_alloc_session() 474 nfs4_init_slot_table(&session->fc_slot_table, "ForeChannel Slot table"); nfs4_alloc_session() 475 nfs4_init_slot_table(&session->bc_slot_table, "BackChannel Slot table"); nfs4_alloc_session() 476 session->session_state = 1<<NFS4_SESSION_INITING; nfs4_alloc_session() 478 session->clp = clp; nfs4_alloc_session() 479 return session; nfs4_alloc_session() 482 static void nfs4_destroy_session_slot_tables(struct nfs4_session *session) nfs4_destroy_session_slot_tables() argument 484 nfs4_shutdown_slot_table(&session->fc_slot_table); nfs4_destroy_session_slot_tables() 485 nfs4_shutdown_slot_table(&session->bc_slot_table); nfs4_destroy_session_slot_tables() 488 void nfs4_destroy_session(struct nfs4_session *session) nfs4_destroy_session() argument 493 cred = nfs4_get_clid_cred(session->clp); nfs4_destroy_session() 494 nfs4_proc_destroy_session(session, cred); nfs4_destroy_session() 499 xprt = rcu_dereference(session->clp->cl_rpcclient->cl_xprt); nfs4_destroy_session() 504 nfs4_destroy_session_slot_tables(session); nfs4_destroy_session() 505 kfree(session); nfs4_destroy_session() 541 struct nfs4_session *session = clp->cl_session; nfs4_init_ds_session() local 545 if (test_and_clear_bit(NFS4_SESSION_INITING, &session->session_state)) { nfs4_init_ds_session()
|
H A D | nfs4trace.h | 246 const struct nfs4_session *session, 249 TP_ARGS(session, args), 252 __field(unsigned int, session) 260 __entry->session = nfs_session_id_hash(&session->sess_id); 267 "session=0x%08x slot_nr=%u seq_nr=%u " 269 __entry->session, 301 const struct nfs4_session *session, 304 TP_ARGS(session, res), 307 __field(unsigned int, session) 318 __entry->session = nfs_session_id_hash(&session->sess_id); 327 "error=%d (%s) session=0x%08x slot_nr=%u seq_nr=%u " 332 __entry->session, 354 __field(unsigned int, session) 363 __entry->session = nfs_session_id_hash(&args->csa_sessionid); 372 "error=%d (%s) session=0x%08x slot_nr=%u seq_nr=%u " 376 __entry->session,
|
H A D | callback_proc.c | 362 * For each referring call triple, check the session's slot table for 372 struct nfs4_session *session; referring_call_exists() local 379 * a session lookup from within the loop referring_call_exists() 381 session = clp->cl_session; referring_call_exists() 382 tbl = &session->fc_slot_table; referring_call_exists() 386 if (memcmp(session->sess_id.data, referring_call_exists() 435 /* state manager is resetting the session */ nfs4_callback_sequence() 439 /* Return NFS4ERR_BADSESSION if we're draining the session nfs4_callback_sequence()
|
H A D | nfs4client.c | 303 struct nfs4_session *session = NULL; nfs41_init_client() local 306 * Create the session and mark it expired. nfs41_init_client() 307 * When a SEQUENCE operation encounters the expired session nfs41_init_client() 308 * it will do session recovery to initialize it. nfs41_init_client() 310 session = nfs4_alloc_session(clp); nfs41_init_client() 311 if (!session) nfs41_init_client() 314 clp->cl_session = session; nfs41_init_client() 317 * The create session reply races with the server back nfs41_init_client() 657 * Note that session trunking is just a special subcase of nfs41_walk_client_list() 923 /* We must ensure the session is initialised first */ nfs4_server_common_setup() 1159 * Either its session is drained (NFSv4.1+), or its transport is
|
H A D | nfs4proc.c | 405 dprintk("%s ERROR: %d Reset session\n", __func__, nfs4_handle_exception() 565 struct nfs4_session *session; nfs41_sequence_free_slot() local 571 session = tbl->session; nfs41_sequence_free_slot() 592 nfs41_server_notify_highest_slotid_update(session->clp); nfs41_sequence_free_slot() 597 struct nfs4_session *session; nfs41_sequence_done() local 609 session = slot->table->session; nfs41_sequence_done() 616 trace_nfs4_sequence_done(session, res); nfs41_sequence_done() 622 clp = session->clp; nfs41_sequence_done() 680 /* The session may be reset by one of the error handlers. */ nfs41_sequence_done() 703 if (!res->sr_slot->table->session) nfs4_sequence_done() 709 int nfs41_setup_sequence(struct nfs4_session *session, nfs41_setup_sequence() argument 722 tbl = &session->fc_slot_table; nfs41_setup_sequence() 730 dprintk("%s session is draining\n", __func__); nfs41_setup_sequence() 757 trace_nfs4_setup_sequence(session, args); nfs41_setup_sequence() 778 struct nfs4_session *session = nfs4_get_session(server); nfs4_setup_sequence() local 781 if (!session) nfs4_setup_sequence() 785 dprintk("--> %s clp %p session %p sr_slot %u\n", nfs4_setup_sequence() 786 __func__, session->clp, session, res->sr_slot ? nfs4_setup_sequence() 789 ret = nfs41_setup_sequence(session, args, res, task); nfs4_setup_sequence() 798 struct nfs4_session *session = nfs4_get_session(data->seq_server); nfs41_call_sync_prepare() local 802 nfs41_setup_sequence(session, data->seq_args, data->seq_res, task); nfs41_call_sync_prepare() 1887 /* Set the create mode (note dependency on the session type) */ nfs4_open_prepare() 4919 dprintk("%s ERROR %d, Reset session\n", __func__, nfs4_async_handle_error() 6967 * be in some phase of session reset. 7063 /* just setup sequence, do not trigger session recovery nfs4_get_lease_time_prepare() 7073 * Called from nfs4_state_manager thread for session setup, so don't recover 7245 static void nfs4_update_session(struct nfs4_session *session, nfs4_update_session() argument 7248 nfs4_copy_sessionid(&session->sess_id, &res->sessionid); nfs4_update_session() 7249 /* Mark client id and session as being confirmed */ nfs4_update_session() 7250 session->clp->cl_exchange_flags |= EXCHGID4_FLAG_CONFIRMED_R; nfs4_update_session() 7251 set_bit(NFS4_SESSION_ESTABLISHED, &session->session_state); nfs4_update_session() 7252 session->flags = res->flags; nfs4_update_session() 7253 memcpy(&session->fc_attrs, &res->fc_attrs, sizeof(session->fc_attrs)); nfs4_update_session() 7255 memcpy(&session->bc_attrs, &res->bc_attrs, nfs4_update_session() 7256 sizeof(session->bc_attrs)); nfs4_update_session() 7262 struct nfs4_session *session = clp->cl_session; _nfs4_proc_create_session() local 7282 status = rpc_call_sync(session->clp->cl_rpcclient, &msg, RPC_TASK_TIMEOUT); _nfs4_proc_create_session() 7286 /* Verify the session's negotiated channel_attrs values */ _nfs4_proc_create_session() 7293 nfs4_update_session(session, &res); _nfs4_proc_create_session() 7301 * It is the responsibility of the caller to verify the session is 7308 struct nfs4_session *session = clp->cl_session; nfs4_proc_create_session() local 7310 dprintk("--> %s clp=%p session=%p\n", __func__, clp, session); nfs4_proc_create_session() 7316 /* Init or reset the session slot tables */ nfs4_proc_create_session() 7317 status = nfs4_setup_session_slot_tables(session); nfs4_proc_create_session() 7322 ptr = (unsigned *)&session->sess_id.data[0]; nfs4_proc_create_session() 7334 int nfs4_proc_destroy_session(struct nfs4_session *session, nfs4_proc_destroy_session() argument 7339 .rpc_argp = session, nfs4_proc_destroy_session() 7346 /* session is still being setup */ nfs4_proc_destroy_session() 7347 if (!test_and_clear_bit(NFS4_SESSION_ESTABLISHED, &session->session_state)) nfs4_proc_destroy_session() 7350 status = rpc_call_sync(session->clp->cl_rpcclient, &msg, RPC_TASK_TIMEOUT); nfs4_proc_destroy_session() 7351 trace_nfs4_destroy_session(session->clp, status); nfs4_proc_destroy_session() 7627 struct nfs4_session *session = nfs4_get_session(server); nfs4_layoutget_prepare() local 7635 if (nfs41_setup_sequence(session, &lgp->args.seq_args, nfs4_layoutget_prepare() 8004 struct nfs4_session *session = nfs4_get_session(server); nfs4_layoutcommit_prepare() local 8006 nfs41_setup_sequence(session, nfs4_layoutcommit_prepare()
|
/linux-4.1.27/include/target/iscsi/ |
H A D | iscsi_target_stat.h | 18 /* iSCSI session error types */ 24 /* iSCSI session error stats */
|
H A D | iscsi_target_core.h | 282 * iSER specific session parameters 604 /* Pointer to parent session */ 612 /* list_head for session connection list */ 637 /* state session is currently in */ 639 /* session wide counter: initiator assigned task tag */ 641 /* session wide counter: target assigned task tag */ 647 /* session wide counter: expected command sequence number */ 649 /* session wide counter: maximum allowed command sequence number */ 653 /* LIO specific session ID */ 658 /* Used for session reference counting */ 827 /* Per TPG LIO specific session ID. */ 885 /* Used for iSCSI discovery session authentication */ 890 static inline u32 session_get_next_ttt(struct iscsi_session *session) session_get_next_ttt() argument 894 spin_lock_bh(&session->ttt_lock); session_get_next_ttt() 895 ttt = session->targ_xfer_tag++; session_get_next_ttt() 897 ttt = session->targ_xfer_tag++; session_get_next_ttt() 898 spin_unlock_bh(&session->ttt_lock); session_get_next_ttt()
|
/linux-4.1.27/include/uapi/linux/ |
H A D | keyctl.h | 18 #define KEY_SPEC_SESSION_KEYRING -3 /* - key ID for session-specific keyring */ 20 #define KEY_SPEC_USER_SESSION_KEYRING -5 /* - key ID for UID-session keyring */ 38 #define KEYCTL_JOIN_SESSION_KEYRING 1 /* join or start named session keyring */ 55 #define KEYCTL_SESSION_TO_PARENT 18 /* apply session keyring to parent process */
|
H A D | atmsvc.h | 36 unsigned int session; /* for p2pm */ member in struct:atmsvc_msg
|
H A D | pktcdvd.h | 80 * Last session/border status
|
H A D | if_pppol2tp.h | 49 /* The L2TPv3 protocol changes tunnel and session ids from 16 to 32
|
H A D | if_pppox.h | 87 /* The L2TPv3 protocol changes tunnel and session ids from 16 to 32
|
H A D | tty_flags.h | 23 #define ASYNCB_SESSION_LOCKOUT 8 /* [x] Lock out cua opens based on session */
|
H A D | tcp.h | 133 #define TCPI_OPT_ECN 8 /* ECN was negociated at TCP session init */
|
/linux-4.1.27/tools/perf/ui/browsers/ |
H A D | header.c | 9 #include "util/session.h" 98 struct perf_session *session; tui__header_window() local 103 session = container_of(env, struct perf_session, header.env); tui__header_window() 104 perf_header__fprintf_info(session, fp, true); tui__header_window()
|
/linux-4.1.27/fs/hfsplus/ |
H A D | options.c | 37 { opt_session, "session=%u" }, 59 opts->session = -1; hfsplus_fill_defaults() 162 if (match_int(&args[0], &sbi->session)) { hfsplus_parse_options() 163 pr_err("session requires an argument\n"); hfsplus_parse_options() 229 if (sbi->session >= 0) hfsplus_show_options() 230 seq_printf(seq, ",session=%u", sbi->session); hfsplus_show_options()
|
H A D | wrapper.c | 135 if (HFSPLUS_SB(sb)->session >= 0) { hfsplus_get_last_session() 136 te.cdte_track = HFSPLUS_SB(sb)->session; hfsplus_get_last_session() 144 pr_err("invalid session number or type of track\n"); hfsplus_get_last_session()
|
/linux-4.1.27/fs/9p/ |
H A D | v9fs.h | 29 * enum p9_session_flags - option flags for each 9P session 62 * eventually support loose, tight, time, session, default always none 73 * struct v9fs_session_info - per-instance session information 74 * @flags: session options of type &p9_session_flags 79 * @cachetag: the tag of the cache associated with this session 80 * @fscache: session cookie associated with FS-Cache 87 * @clnt: reference to 9P network client instantiated for this session 90 * This structure holds state for each session instance established during 194 * @v9ses: session information 212 * @v9ses: session information
|
H A D | v9fs.c | 107 * v9fs_parse_options - parse mount options into session structure 108 * @v9ses: existing v9fs session information 313 * v9fs_session_init - initialize session 314 * @v9ses: session information structure 420 /* register the session for caching */ v9fs_session_init() 432 * v9fs_session_close - shutdown a session 433 * @v9ses: session information structure 461 * v9fs_session_cancel - terminate a session 462 * @v9ses: session to terminate 468 p9_debug(P9_DEBUG_ERROR, "cancel session %p\n", v9ses); v9fs_session_cancel() 473 * v9fs_session_begin_cancel - Begin terminate of a session 474 * @v9ses: session to terminate 481 p9_debug(P9_DEBUG_ERROR, "begin cancel session %p\n", v9ses); v9fs_session_begin_cancel() 491 * caches_show - list caches associated with a session
|
H A D | cache.c | 43 * with a new cache session. 65 p9_debug(P9_DEBUG_FSC, "session %p buf %p size %u\n", v9fs_cache_session_get_key() 75 p9_debug(P9_DEBUG_FSC, "cache session tag %s\n", v9ses->cachetag); v9fs_cache_session_get_key() 80 .name = "9P.session", 87 /* If no cache session tag was specified, we generate a random one. */ v9fs_cache_session_get_cookie() 94 p9_debug(P9_DEBUG_FSC, "session %p get cookie %p\n", v9fs_cache_session_get_cookie() 100 p9_debug(P9_DEBUG_FSC, "session %p put cookie %p\n", v9fs_cache_session_put_cookie()
|
/linux-4.1.27/include/linux/netfilter/ |
H A D | nf_conntrack_pptp.h | 9 /* state of the control session */ 11 PPTP_SESSION_NONE, /* no session present */ 12 PPTP_SESSION_ERROR, /* some session error */ 15 PPTP_SESSION_CONFIRMED, /* session established */ 18 /* state of the call inside the control session */ 32 enum pptp_ctrlsess_state sstate; /* session state */
|
H A D | nf_conntrack_proto_gre.h | 61 __be16 call_id; /* peer's call_id for this session */ 64 /* sender in this session */
|
/linux-4.1.27/drivers/net/wireless/iwlwifi/mvm/ |
H A D | time-event.h | 122 * iwl_mvm_protect_session - start / extend the session protection. 124 * @vif: the virtual interface for which the session is issued 125 * @duration: the duration of the session in TU. 126 * @min_duration: will start a new session if the current session will end 132 * This function can be used to start a session protection which means that the 134 * can block (sleep) until the session starts. This function can also be used 135 * to extend a currently running session. 145 * iwl_mvm_stop_session_protection - cancel the session protection. 147 * @vif: the virtual interface for which the session is issued 149 * This functions cancels the session protection which is an act of good 173 * This function can be used to issue a remain on channel session, 188 * This function can be used to cancel an ongoing ROC session. 190 * session, but will not wait for the actual stopping of the session.
|
H A D | sta.h | 238 * @IWL_AGG_ON: aggregation session is up 239 * @IWL_EMPTYING_HW_QUEUE_ADDBA: establishing a BA session - waiting for the 241 * @IWL_EMPTYING_HW_QUEUE_DELBA: tearing down a BA session - waiting for the 262 * @txq_id: Tx queue used by the BA session
|
H A D | quota.c | 202 * The FW's scheduling session consists of iwl_mvm_update_quotas() 284 /* Give the remainder of the session to the first data binding */ iwl_mvm_update_quotas()
|
/linux-4.1.27/drivers/scsi/bnx2fc/ |
H A D | bnx2fc_debug.c | 2 * Handles operations such as session offload/upload etc, and manages 3 * session resources such as connection id and qp resources.
|
H A D | bnx2fc_debug.h | 2 * Handles operations such as session offload/upload etc, and manages 3 * session resources such as connection id and qp resources.
|
H A D | bnx2fc_tgt.c | 2 * Handles operations such as session offload/upload etc, and manages 3 * session resources such as connection id and qp resources. 52 * If the timer has expired, this session is dead bnx2fc_ofld_timer() 56 * port will be logged off, and conn_id, session bnx2fc_ofld_timer() 99 /* Allocate session resources */ bnx2fc_offload_session() 107 * Initialize FCoE session offload process. bnx2fc_offload_session() 120 * wait for the session is offloaded and enabled. 3 Secs bnx2fc_offload_session() 146 pr_err(PFX "enable session failed\n"); bnx2fc_offload_session() 155 /* couldn't offload the session. log off from this rport */ bnx2fc_offload_session() 158 /* Free session resources */ bnx2fc_offload_session() 345 /* Free session resources */ bnx2fc_upload_session() 436 * initiated target login. bnx2fc can proceed with initiating the session 499 * Offload the session. This is a blocking call, and will bnx2fc_rport_event_handler() 500 * wait until the session is offloaded. bnx2fc_rport_event_handler() 540 * Perform session upload. Note that rdata->peers is already bnx2fc_rport_event_handler() 666 *bnx2fc_alloc_session_resc - Allocate qp resources for the session 836 * bnx2i_free_session_resc - free qp resources for the session 848 BNX2FC_TGT_DBG(tgt, "Freeing up session resources\n"); bnx2fc_free_session_resc()
|
H A D | bnx2fc_constants.h | 2 * Handles operations such as session offload/upload etc, and manages 3 * session resources such as connection id and qp resources.
|
/linux-4.1.27/drivers/target/iscsi/ |
H A D | iscsi_target_device.c | 34 * This is a discovery session, the single queue slot was already iscsit_determine_maxcmdsn() 45 * This is a normal session, set the Session's CmdSN window to the iscsit_determine_maxcmdsn()
|
H A D | iscsi_target_login.c | 208 * If the Time2Retain handler has expired, the session is already gone. iscsi_check_for_session_reinstatement() 214 " preforming session reinstatement.\n", (sessiontype) ? iscsi_check_for_session_reinstatement() 275 * This is the leading connection of a new session, 276 * or session reinstatement. 290 pr_err("Could not allocate memory for session\n"); iscsi_login_zero_tsih_s1() 474 " T10-PI enabled ISER session\n"); iscsi_login_zero_tsih_s2() 545 * Add a new connection to an existing session. 578 * If the Time2Retain handler has expired, the session is already gone. iscsi_login_non_zero_tsih_s2() 582 " a non-existent session, rejecting iSCSI Login.\n"); iscsi_login_non_zero_tsih_s2() 589 * Stop the Time2Retain timer if this is a failed session, we restart iscsi_login_non_zero_tsih_s2() 673 * session. iscsi_login_post_auth_non_zero_tsih() 675 pr_debug("Adding CID %hu to existing session for %s.\n", iscsi_login_post_auth_non_zero_tsih() 679 pr_err("Adding additional connection to this session" iscsi_login_post_auth_non_zero_tsih() 850 pr_debug("Established iSCSI session from node: %s\n", iscsi_post_login_handler() 1385 * This is the leading connection of a new session. __iscsi_target_login_thread() 1387 * session reinstatement. __iscsi_target_login_thread() 1393 * Add a new connection to an existing session. __iscsi_target_login_thread() 1394 * We check for a non-existant session in __iscsi_target_login_thread()
|
H A D | iscsi_target_erl2.c | 339 * session pool and remove it from the connection's list. iscsit_prepare_cmds_for_realligance() 363 * the session's ExpCmdSN are attached to the connection iscsit_prepare_cmds_for_realligance()
|
/linux-4.1.27/drivers/scsi/bnx2i/ |
H A D | bnx2i_hwi.c | 669 if (conn->session->initial_r2t_en) bnx2i_update_iscsi_conn() 671 if (conn->session->imm_data_en) bnx2i_update_iscsi_conn() 676 update_wqe->first_burst_length = conn->session->first_burst; bnx2i_update_iscsi_conn() 677 update_wqe->max_burst_length = conn->session->max_burst; bnx2i_update_iscsi_conn() 679 update_wqe->max_outstanding_r2ts = conn->session->max_r2t; bnx2i_update_iscsi_conn() 680 update_wqe->session_error_recovery_level = conn->session->erl; bnx2i_update_iscsi_conn() 1347 * @session: iscsi session 1353 int bnx2i_process_scsi_cmd_resp(struct iscsi_session *session, bnx2i_process_scsi_cmd_resp() argument 1366 spin_lock_bh(&session->back_lock); bnx2i_process_scsi_cmd_resp() 1437 spin_unlock_bh(&session->back_lock); bnx2i_process_scsi_cmd_resp() 1444 * @session: iscsi session pointer 1450 static int bnx2i_process_login_resp(struct iscsi_session *session, bnx2i_process_login_resp() argument 1462 spin_lock(&session->back_lock); bnx2i_process_login_resp() 1505 spin_unlock(&session->back_lock); bnx2i_process_login_resp() 1512 * @session: iscsi session pointer 1518 static int bnx2i_process_text_resp(struct iscsi_session *session, bnx2i_process_text_resp() argument 1530 spin_lock(&session->back_lock); bnx2i_process_text_resp() 1566 spin_unlock(&session->back_lock); bnx2i_process_text_resp() 1573 * @session: iscsi session pointer 1579 static int bnx2i_process_tmf_resp(struct iscsi_session *session, bnx2i_process_tmf_resp() argument 1589 spin_lock(&session->back_lock); bnx2i_process_tmf_resp() 1605 spin_unlock(&session->back_lock); bnx2i_process_tmf_resp() 1611 * @session: iscsi session pointer 1618 static int bnx2i_process_logout_resp(struct iscsi_session *session, bnx2i_process_logout_resp() argument 1628 spin_lock(&session->back_lock); bnx2i_process_logout_resp() 1652 spin_unlock(&session->back_lock); bnx2i_process_logout_resp() 1658 * @session: iscsi session pointer 1664 static void bnx2i_process_nopin_local_cmpl(struct iscsi_session *session, bnx2i_process_nopin_local_cmpl() argument 1673 spin_lock(&session->back_lock); bnx2i_process_nopin_local_cmpl() 1678 spin_unlock(&session->back_lock); bnx2i_process_nopin_local_cmpl() 1699 * @session: iscsi session pointer 1705 static int bnx2i_process_nopin_mesg(struct iscsi_session *session, bnx2i_process_nopin_mesg() argument 1717 spin_lock(&session->back_lock); bnx2i_process_nopin_mesg() 1743 spin_unlock(&session->back_lock); bnx2i_process_nopin_mesg() 1751 * @session: iscsi session pointer 1757 static void bnx2i_process_async_mesg(struct iscsi_session *session, bnx2i_process_async_mesg() argument 1776 spin_lock(&session->back_lock); bnx2i_process_async_mesg() 1795 spin_unlock(&session->back_lock); bnx2i_process_async_mesg() 1801 * @session: iscsi session pointer 1807 static void bnx2i_process_reject_mesg(struct iscsi_session *session, bnx2i_process_reject_mesg() argument 1822 spin_lock(&session->back_lock); bnx2i_process_reject_mesg() 1833 spin_unlock(&session->back_lock); bnx2i_process_reject_mesg() 1838 * @session: iscsi session pointer 1844 static void bnx2i_process_cmd_cleanup_resp(struct iscsi_session *session, bnx2i_process_cmd_cleanup_resp() argument 1853 spin_lock(&session->back_lock); bnx2i_process_cmd_cleanup_resp() 1859 spin_unlock(&session->back_lock); bnx2i_process_cmd_cleanup_resp() 1886 bnx2i_process_scsi_cmd_resp(work->session, bnx2i_percpu_io_thread() 1915 static int bnx2i_queue_scsi_cmd_resp(struct iscsi_session *session, bnx2i_queue_scsi_cmd_resp() argument 1926 spin_lock(&session->back_lock); bnx2i_queue_scsi_cmd_resp() 1930 spin_unlock(&session->back_lock); bnx2i_queue_scsi_cmd_resp() 1940 spin_unlock(&session->back_lock); bnx2i_queue_scsi_cmd_resp() 1952 bnx2i_work->session = session; bnx2i_queue_scsi_cmd_resp() 1964 bnx2i_process_scsi_cmd_resp(session, bnx2i_conn, (struct cqe *)cqe); bnx2i_queue_scsi_cmd_resp() 1979 struct iscsi_session *session = conn->session; bnx2i_process_new_cqes() local 2020 bnx2i_queue_scsi_cmd_resp(session, bnx2i_conn, nopin); bnx2i_process_new_cqes() 2023 bnx2i_process_login_resp(session, bnx2i_conn, bnx2i_process_new_cqes() 2027 bnx2i_process_tmf_resp(session, bnx2i_conn, bnx2i_process_new_cqes() 2031 bnx2i_process_text_resp(session, bnx2i_conn, bnx2i_process_new_cqes() 2035 bnx2i_process_logout_resp(session, bnx2i_conn, bnx2i_process_new_cqes() 2039 if (bnx2i_process_nopin_mesg(session, bnx2i_conn, bnx2i_process_new_cqes() 2044 bnx2i_process_nopin_local_cmpl(session, bnx2i_conn, bnx2i_process_new_cqes() 2048 bnx2i_process_async_mesg(session, bnx2i_conn, bnx2i_process_new_cqes() 2053 bnx2i_process_reject_mesg(session, bnx2i_conn, bnx2i_process_new_cqes() 2057 bnx2i_process_cmd_cleanup_resp(session, bnx2i_conn, bnx2i_process_new_cqes() 2220 * will initiate session recovery for that connection/session. For 2223 * session, this is to avoid un-necessarily overloading the system)
|
H A D | bnx2i_iscsi.c | 114 if ((start_bd_offset > task->conn->session->first_burst) || bnx2i_setup_write_cmd_bd_info() 441 * @session: iscsi session pointer 444 static int bnx2i_alloc_bdt(struct bnx2i_hba *hba, struct iscsi_session *session, bnx2i_alloc_bdt() argument 454 iscsi_session_printk(KERN_ERR, session, "Could not " bnx2i_alloc_bdt() 465 * @session: iscsi session pointer 469 struct iscsi_session *session) bnx2i_destroy_cmd_pool() 473 for (i = 0; i < session->cmds_max; i++) { bnx2i_destroy_cmd_pool() 474 struct iscsi_task *task = session->cmds[i]; bnx2i_destroy_cmd_pool() 489 * bnx2i_setup_cmd_pool - sets up iscsi command pool for the session 491 * @session: iscsi session pointer 494 struct iscsi_session *session) bnx2i_setup_cmd_pool() 498 for (i = 0; i < session->cmds_max; i++) { bnx2i_setup_cmd_pool() 499 struct iscsi_task *task = session->cmds[i]; bnx2i_setup_cmd_pool() 505 if (bnx2i_alloc_bdt(hba, session, cmd)) bnx2i_setup_cmd_pool() 512 bnx2i_destroy_cmd_pool(hba, session); bnx2i_setup_cmd_pool() 586 * @session: iscsi session pointer 1175 spin_unlock_bh(&conn->session->back_lock); bnx2i_cleanup_task() 1178 spin_lock_bh(&conn->session->back_lock); bnx2i_cleanup_task() 1224 struct iscsi_session *session = conn->session; bnx2i_task_xmit() local 1225 struct Scsi_Host *shost = iscsi_session_to_shost(session->cls_session); bnx2i_task_xmit() 1277 * bnx2i_session_create - create a new iscsi session 1280 * @initial_cmdsn: initial iscsi CMDSN to be used for this session 1282 * Creates a new iSCSI session instance on given device. 1331 * bnx2i_session_destroy - destroys iscsi session 1332 * @cls_session: pointer to iscsi cls session 1334 * Destroys previously created iSCSI session instance and releases 1339 struct iscsi_session *session = cls_session->dd_data; bnx2i_session_destroy() local 1343 bnx2i_destroy_cmd_pool(hba, session); bnx2i_session_destroy() 1350 * @cls_session: pointer to iscsi cls session 1353 * Creates a new iSCSI connection instance for a given session 1395 * @cls_session: pointer to iscsi cls session 1398 * @is_leading: leading connection on this session? 1400 * Binds together iSCSI session instance, iSCSI connection instance 1494 if (work->session == conn->session && for_each_online_cpu() 2029 struct iscsi_session *session = NULL; bnx2i_hw_ep_disconnect() local 2051 session = conn->session; bnx2i_hw_ep_disconnect() 2063 if (session) { bnx2i_hw_ep_disconnect() 2064 spin_lock_bh(&session->frwd_lock); bnx2i_hw_ep_disconnect() 2066 if (session->state == ISCSI_STATE_LOGGING_OUT) { bnx2i_hw_ep_disconnect() 2080 spin_unlock_bh(&session->frwd_lock); bnx2i_hw_ep_disconnect() 468 bnx2i_destroy_cmd_pool(struct bnx2i_hba *hba, struct iscsi_session *session) bnx2i_destroy_cmd_pool() argument 493 bnx2i_setup_cmd_pool(struct bnx2i_hba *hba, struct iscsi_session *session) bnx2i_setup_cmd_pool() argument
|
/linux-4.1.27/net/bluetooth/rfcomm/ |
H A D | core.c | 214 struct sock *sk = d->session->sock->sk; rfcomm_check_security() 240 BT_DBG("session %p state %ld", s, s->state); rfcomm_session_timeout() 248 BT_DBG("session %p state %ld timeout %ld", s, s->state, timeout); rfcomm_session_set_timer() 255 BT_DBG("session %p state %ld", s, s->state); rfcomm_session_clear_timer() 333 BT_DBG("dlc %p session %p", d, s); rfcomm_dlc_link() 338 d->session = s; rfcomm_dlc_link() 343 struct rfcomm_session *s = d->session; rfcomm_dlc_unlink() 345 BT_DBG("dlc %p refcnt %d session %p", d, atomic_read(&d->refcnt), s); rfcomm_dlc_unlink() 348 d->session = NULL; rfcomm_dlc_unlink() 439 struct rfcomm_session *s = d->session; __rfcomm_dlc_disconn() 453 struct rfcomm_session *s = d->session; __rfcomm_dlc_close() 457 BT_DBG("dlc %p state %ld dlci %d err %d session %p", __rfcomm_dlc_close() 483 /* if closing a dlc in a session that hasn't been started, __rfcomm_dlc_close() 512 s = d->session; rfcomm_dlc_close() 516 /* after waiting on the mutex check the session still exists rfcomm_dlc_close() 651 BT_DBG("session %p sock %p", s, sock); rfcomm_session_add() 679 BT_DBG("session %p state %ld", s, s->state); rfcomm_session_del() 717 BT_DBG("session %p state %ld err %d", s, s->state, err); rfcomm_session_close() 803 BT_DBG("session %p len %d", s, len); rfcomm_send_frame() 1172 BT_DBG("session %p state %ld dlci %d", s, s->state, dlci); rfcomm_recv_ua() 1226 BT_DBG("session %p state %ld dlci %d", s, s->state, dlci); rfcomm_recv_dm() 1256 BT_DBG("session %p state %ld dlci %d", s, s->state, dlci); rfcomm_recv_disc() 1288 struct sock *sk = d->session->sock->sk; rfcomm_dlc_accept() 1293 rfcomm_send_ua(d->session, d->dlci); rfcomm_dlc_accept() 1305 rfcomm_send_msc(d->session, 1, d->dlci, d->v24_sig); rfcomm_dlc_accept() 1332 BT_DBG("session %p state %ld dlci %d", s, s->state, dlci); rfcomm_recv_sabm() 1371 struct rfcomm_session *s = d->session; rfcomm_apply_pn() 1404 BT_DBG("session %p state %ld dlci %d", s, s->state, dlci); rfcomm_recv_pn() 1675 BT_DBG("session %p state %ld dlci %d pf %d", s, s->state, dlci, pf); rfcomm_recv_data() 1711 /* no session, so free socket data */ rfcomm_recv_frame() 1777 BT_DBG("session %p state %ld", s, s->state); rfcomm_process_connect() 1806 rfcomm_send_msc(d->session, 1, d->dlci, d->v24_sig); rfcomm_process_tx() 1813 rfcomm_send_credits(d->session, d->addr, d->cfc - d->rx_credits); rfcomm_process_tx() 1826 err = rfcomm_send_frame(d->session, skb->data, skb->len); rfcomm_process_tx() 1849 BT_DBG("session %p state %ld", s, s->state); rfcomm_process_dlcs() 1910 BT_DBG("session %p state %ld qlen %d", s, s->state, skb_queue_len(&sk->sk_receive_queue)); rfcomm_process_rx() 1940 BT_DBG("session %p", s); rfcomm_accept_connection() 2063 /* Add listening session */ rfcomm_add_listener()
|
/linux-4.1.27/drivers/usb/phy/ |
H A D | phy-omap-otg.c | 62 /* Set B-session valid. */ omap_otg_set_mode() 65 /* Set A-session valid. */ omap_otg_set_mode() 68 /* Set B-session end to indicate no VBUS. */ omap_otg_set_mode()
|
/linux-4.1.27/drivers/target/loopback/ |
H A D | tcm_loop.h | 31 * Pointer to TCM session for I_T Nexus
|
/linux-4.1.27/include/linux/usb/ |
H A D | phy_companion.h | 30 /* for B devices only: start session with A-Host */
|
H A D | otg.h | 36 /* for B devices only: start session with A-Host */
|
/linux-4.1.27/net/ceph/ |
H A D | auth_x_protocol.h | 60 * b - encrypted with session key
|
H A D | mon_client.c | 26 * We maintain an open, active session with a monitor at all times in order to 115 * Close monitor session, if any. 131 * Open a session with a (new) monitor. 250 pr_info("mon%d %s session established\n", handle_subscribe_ack() 910 dout("authenticated, starting session\n"); handle_auth_reply() 1084 pr_info("mon%d %s session lost, " mon_fault()
|
/linux-4.1.27/security/keys/ |
H A D | process_keys.c | 41 * Install the user and user session keyrings for the current process's UID. 71 * pinned by a session, but the user_struct pointing to it install_user_keyrings() 86 /* get a default session keyring (which might also exist install_user_keyrings() 101 /* we install a link from the user session keyring to install_user_keyrings() 217 * Install a session keyring directly to a credentials struct. 226 /* create an empty session keyring */ install_session_keyring_to_cred() 252 * Install a session keyring, discarding the old one. If a keyring is not 375 /* search the session keyring */ search_my_process_keyrings() 398 /* or search the user-session keyring */ search_my_process_keyrings() 572 /* always install a session keyring upon access if one lookup_user_key() 743 * Join the named keyring as the session keyring if possible else attempt to 747 * session keyring. 749 * Named session keyrings are joined with a semaphore held to prevent the 751 * to prevent a race in creating compatible session keyrings. 823 * Replace a process's session keyring on behalf of one of its children when 864 * Make sure that root's user and user-session keyrings exist.
|
H A D | request_key.c | 50 * Initialise a usermode helper that is going to have a specific session 64 * Clean up a usermode helper with session keyring. 73 * Call a usermode helper with a specific session keyring. 101 *session; call_sbin_request_key() local 113 /* allocate a new session keyring */ call_sbin_request_key() 126 /* attach the auth key to the session keyring */ call_sbin_request_key() 148 session = rcu_dereference(cred->session_keyring); call_sbin_request_key() 149 if (!session) call_sbin_request_key() 150 session = cred->user->session_keyring; call_sbin_request_key() 151 sskey = session->serial; call_sbin_request_key()
|
H A D | keyctl.c | 275 * Join a (named) session keyring. 277 * Create and join an anonymous session keyring or join a named session 278 * keyring, creating it if necessary. A named session keyring must have Search 282 * If successful, the ID of the joined session keyring will be returned. 299 /* join the session */ keyctl_join_session_keyring() 1454 * Attempt to install the calling process's session keyring on the process's 1508 /* the parent and the child must have different session keyrings or keyctl_session_to_parent() 1537 /* the replacement session keyring is applied just prior to userspace keyctl_session_to_parent()
|
/linux-4.1.27/include/linux/ceph/ |
H A D | msgr.h | 100 __le32 connect_seq; /* count connections initiated in this session */ 109 __le64 features; /* feature bits for this session */ 124 __le64 seq; /* message seq# for this session */ 142 __le64 seq; /* message seq# for this session */
|
H A D | messenger.h | 38 /* a remote host as terminated a message exchange session, and messages 180 * We maintain a queue of outgoing messages, and some session state to
|
/linux-4.1.27/drivers/target/tcm_fc/ |
H A D | tfc_sess.c | 165 * Find session in local port. 196 * Allocate session and enter it in the hash for the local port. 236 * Unhash the session. 251 * Delete session from hash. 293 * Determine whether session is allowed to be shutdown in the current context. 294 * Returns non-zero if the session should be shutdown. 305 * Remove session and send PRLO. 377 * Create session (image pair) only if requested by ft_prli_locked()
|
H A D | tcm_fc.h | 25 #define TCM_FC_DEFAULT_TAGS 512 /* tags used for per-session preallocation */ 80 * Node ACL for FC remote port session. 116 struct ft_sess *sess; /* session held for cmd */
|
/linux-4.1.27/drivers/scsi/be2iscsi/ |
H A D | be_iscsi.c | 35 * beiscsi_session_create - creates a new iscsi session 74 "Max cmds per session supported is %d. Using %d." beiscsi_session_create() 106 * beiscsi_session_destroy - destroys iscsi session 107 * @cls_session: pointer to iscsi cls session 109 * Destroys iSCSI session instance and releases 188 * beiscsi_conn_bind - Binds iscsi session/connection with TCP connection 189 * @cls_session: pointer to iscsi cls session 672 struct iscsi_session *session = conn->session; beiscsi_set_param() local 690 if (session->first_burst > 8192) beiscsi_set_param() 691 session->first_burst = 8192; beiscsi_set_param() 698 if (session->max_burst > 262144) beiscsi_set_param() 699 session->max_burst = 262144; beiscsi_set_param() 931 struct iscsi_session *session = conn->session; beiscsi_set_params_for_offld() local 934 params, session->max_burst); beiscsi_set_params_for_offld() 939 params, session->first_burst); beiscsi_set_params_for_offld() 941 session->erl); beiscsi_set_params_for_offld() 947 session->initial_r2t_en); beiscsi_set_params_for_offld() 949 session->imm_data_en); beiscsi_set_params_for_offld() 952 session->dataseq_inorder_en); beiscsi_set_params_for_offld() 955 session->pdu_inorder_en); beiscsi_set_params_for_offld() 957 session->max_r2t); beiscsi_set_params_for_offld() 967 * beiscsi_conn_start - offload of session to chip
|
H A D | be_main.c | 226 struct iscsi_session *session; beiscsi_eh_abort() local 233 session = cls_session->dd_data; beiscsi_eh_abort() 235 spin_lock_bh(&session->frwd_lock); beiscsi_eh_abort() 238 spin_unlock_bh(&session->frwd_lock); beiscsi_eh_abort() 245 spin_unlock_bh(&session->frwd_lock); beiscsi_eh_abort() 248 spin_unlock_bh(&session->frwd_lock); beiscsi_eh_abort() 303 struct iscsi_session *session; beiscsi_eh_device_reset() local 312 session = cls_session->dd_data; beiscsi_eh_device_reset() 313 spin_lock_bh(&session->frwd_lock); beiscsi_eh_device_reset() 314 if (!session->leadconn || session->state != ISCSI_STATE_LOGGED_IN) { beiscsi_eh_device_reset() 315 spin_unlock_bh(&session->frwd_lock); beiscsi_eh_device_reset() 318 conn = session->leadconn; beiscsi_eh_device_reset() 325 for (i = 0; i < conn->session->cmds_max; i++) { beiscsi_eh_device_reset() 326 abrt_task = conn->session->cmds[i]; beiscsi_eh_device_reset() 344 spin_unlock_bh(&session->frwd_lock); beiscsi_eh_device_reset() 1091 struct iscsi_session *session = conn->session; beiscsi_process_async_pdu() local 1128 spin_lock_bh(&session->back_lock); beiscsi_process_async_pdu() 1130 spin_unlock_bh(&session->back_lock); beiscsi_process_async_pdu() 1530 struct iscsi_session *session = conn->session; hwi_complete_cmd() local 1549 spin_lock_bh(&session->back_lock); hwi_complete_cmd() 1588 spin_unlock_bh(&session->back_lock); hwi_complete_cmd() 4308 * beiscsi_get_boot_info()- Get the boot session info 4325 /* Get the session handle of the boot target */ beiscsi_get_boot_info() 4330 "BM_%d : No boot session\n"); beiscsi_get_boot_info() 4648 struct iscsi_session *session = task->conn->session; beiscsi_offload_connection() local 4656 spin_lock_bh(&session->back_lock); beiscsi_offload_connection() 4658 spin_unlock_bh(&session->back_lock); beiscsi_offload_connection() 4685 *age = conn->session->age; beiscsi_parse_pdu() 4693 * This is called with the session lock held. It will allocate
|
H A D | be_mgmt.c | 196 * mgmt_reopen_session()- Reopen a session based on reopen_type 199 * @sess_handle: Session Handle of the session to be re-opened 1301 * be_mgmt_get_boot_shandle()- Get the session handle 1303 * @s_handle: session handle returned for boot session. 1305 * Get the boot target session handle. In case of 1351 /* FW returns the session handle of the boot session */ be_mgmt_get_boot_shandle()
|
/linux-4.1.27/net/atm/ |
H A D | signaling.c | 86 session_vcc = vcc->session ? vcc->session : vcc; sigd_send() 148 static unsigned int session = 0; sigd_enq2() local 171 msg->session = ++session; sigd_enq2() 172 /* every new pmp connect gets the next session number */ sigd_enq2()
|
/linux-4.1.27/net/rxrpc/ |
H A D | ar-transport.c | 1 /* RxRPC point-to-point transport session management 32 * allocate a new transport session manager 76 * obtain a transport session for the nominated endpoints 184 * release a transport session 204 * clean up a transport session 271 * preemptively destroy all the transport session records rather than waiting
|
H A D | ar-key.c | 192 rxrpc_free_krb5_tagged(&rxk5->session); rxrpc_rxk5_free() 461 /* extract the session key and the encoding type (the tag field -> rxrpc_preparse_xdr_rxk5() 463 ret = rxrpc_krb5_decode_tagged_data(&rxk5->session, AFSTOKEN_DATA_MAX, rxrpc_preparse_xdr_rxk5() 679 * 16 8 session key 1096 toksize += 8 + RND(token->k5->session.data_len); rxrpc_read() 1196 ENCODE(token->k5->session.tag); rxrpc_read() 1197 ENCODE_DATA(token->k5->session.data_len, rxrpc_read() 1198 token->k5->session.data); rxrpc_read()
|
/linux-4.1.27/fs/hfs/ |
H A D | super.c | 150 if (sbi->session >= 0) hfs_show_options() 151 seq_printf(seq, ",session=%u", sbi->session); hfs_show_options() 206 { opt_session, "session=%u" }, 243 hsb->session = -1; parse_options() 305 if (match_int(&args[0], &hsb->session)) { parse_options() 306 pr_err("session requires an argument\n"); parse_options()
|
H A D | mdb.c | 43 if (HFS_SB(sb)->session >= 0) { hfs_get_last_session() 44 te.cdte_track = HFS_SB(sb)->session; hfs_get_last_session() 51 pr_err("invalid session number or type of track\n"); hfs_get_last_session()
|
/linux-4.1.27/fs/cifs/ |
H A D | smb2transport.c | 148 cifs_dbg(VFS, "%s: Could not find session\n", __func__); smb2_calc_signature() 247 cifs_dbg(VFS, "%s: Could not set with session key\n", __func__); generate_smb3signingkey() 319 cifs_dbg(VFS, "%s: Could not find session\n", __func__); smb3_calc_signature() 431 * BB what if signatures are supposed to be on for session but smb2_verify_signature() 435 /* Do not need to verify session setups with signature "BSRSPYL " */ smb2_verify_signature() 484 cifs_dbg(VFS, "Null TCP session in smb2_mid_entry_alloc\n"); smb2_mid_entry_alloc() 520 cifs_dbg(FYI, "tcp session dead - return to caller to retry\n"); smb2_get_mid_entry() 528 /* else ok - we are setting up session */ smb2_get_mid_entry() 534 /* else ok - we are shutting down the session */ smb2_get_mid_entry()
|
H A D | ntlmssp.h | 37 #define NTLMSSP_NEGOTIATE_LM_KEY 0x0080 /* Use LM session key */ 131 * Size of the session key (crypto key encrypted with the password
|
H A D | cifsencrypt.c | 231 /* BB what if signatures are supposed to be on for session but cifs_verify_signature() 234 /* Do not need to verify session setups with signature "BSRSPYL " */ cifs_verify_signature() 264 /* first calculate 24 bytes ntlm response and then 16 byte session key */ setup_ntlm_response() 297 cifs_dbg(FYI, "%s Can't generate NTLM session key, error: %d\n", setup_ntlm_response() 321 /* calculate old style session key */ calc_lanman_hash() 344 * Allocate domain name which gets freed when session struct is deallocated. 392 * packet and we have plucked it and stored within smb session. 448 * packet and we have plucked it and stored within smb session. 754 /* now calculate the session key for NTLMv2 */ setup_ntlmv2_rsp() 821 cifs_dbg(VFS, "could not encrypt session key rc: %d\n", rc); calc_seckey() 826 /* make secondary_key/nonce as session key */ calc_seckey() 828 /* and make len as that of session key only */ calc_seckey()
|
H A D | transport.c | 52 cifs_dbg(VFS, "Null TCP session in AllocMidQEntry\n"); AllocMidQEntry() 350 cifs_dbg(FYI, "partial send (wanted=%u sent=%zu): terminating session\n", smb_send_rqst() 468 cifs_dbg(FYI, "tcp session dead - return to caller to retry\n"); allocate_mid() 476 /* else ok - we are setting up session */ allocate_mid() 480 /* check if SMB session is bad because we are setting it up */ allocate_mid() 483 /* else ok - we are shutting down session */ allocate_mid() 677 /* FIXME: add code to kill session */ cifs_check_receive() 727 cifs_dbg(VFS, "Null session\n"); SendReceive2() 845 cifs_dbg(VFS, "Null smb session\n"); SendReceive() 849 cifs_dbg(VFS, "Null tcp session\n"); SendReceive() 982 cifs_dbg(VFS, "Null smb session\n"); SendReceiveBlockingLock() 988 cifs_dbg(VFS, "Null tcp session\n"); SendReceiveBlockingLock()
|
H A D | cifsglob.h | 86 /* associated with each tcp and smb session */ 127 /* per smb session structure/fields */ 129 bool sesskey_per_smbsess; /* whether session key is per smb session */ 242 /* close smb session */ 769 * Session structure. One of these for each uid session with a particular host 812 * session 818 struct cifs_ses *ses; /* pointer to session associated with */ 1033 bool invalidHandle:1; /* file closed via session abend */ 1404 #define MID_RETRY_NEEDED 8 /* session closed while this request out */ 1429 /* Security Flags: indicate type of session setup needed */ 1497 * list operations on tcp and SMB session lists and tCon lists 1503 * sesSem operations on smb session 1526 * tcp session, and the list of tcon's per smb session. It also protects 1527 * the reference counters for the server, smb session, and tcon. Finally, 1577 GLOBAL_EXTERN unsigned int global_secflags; /* if on, session setup sent
|
H A D | rfc1002pdu.h | 26 /* RFC 1002 session packet types */
|
H A D | netmisc.c | 253 during the session setup } */ 268 during the session setup } */ 339 during the session setup } */ 349 during the session setup } */ 401 NT_STATUS_INSUFF_SERVER_RESOURCES during the session setup } */ 646 NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE during the session setup } */ 666 during the session setup } */ 895 /* generic corrective action e.g. reconnect SMB session on map_smb_to_linux_error()
|
H A D | cifs_debug.c | 168 " session status: %d\t", cifs_debug_data_proc_show() 237 /* BB add code to dump additional info such as TCP session info now */ cifs_debug_data_proc_show() 324 "\n%d session %d share reconnects\n", cifs_stats_proc_show()
|
H A D | sess.c | 4 * SMB/CIFS session setup handling routines 344 /* BB is NTLMV2 session security format easier to use here? */ build_ntlmssp_negotiate_blob() 620 cifs_dbg(FYI, "CIFS session established successfully\n"); sess_establish_session() 790 /* calculate ntlm response and session key */ sess_auth_ntlm() 899 /* calculate nlmv2 response and session key */ sess_auth_ntlmv2() 1175 cifs_dbg(FYI, "rawntlmssp session setup negotiate phase\n"); sess_auth_rawntlmssp_negotiate() 1219 cifs_dbg(FYI, "rawntlmssp session setup challenge phase\n"); sess_auth_rawntlmssp_negotiate() 1272 cifs_dbg(FYI, "rawntlmssp session setup authenticate phase\n"); sess_auth_rawntlmssp_authenticate()
|
/linux-4.1.27/drivers/net/usb/ |
H A D | cdc_mbim.c | 27 /* alternative VLAN for IP session 0 if not untagged */ 41 FLAG_IPS0_VLAN = 1 << 0, /* IP session 0 is tagged */ 78 /* creation of this VLAN is a request to tag IP session 0 */ cdc_mbim_rx_add_vid() 82 if (vid >= 512) /* we don't map these to MBIM session */ cdc_mbim_rx_add_vid() 92 /* this is a request for an untagged IP session 0 */ cdc_mbim_rx_kill_vid() 253 /* Is IP session <0> tagged too? */ cdc_mbim_tx_fixup() 264 * no tag => IPS session <0> if !FLAG_IPS0_VLAN cdc_mbim_tx_fixup() 265 * 1 - 255 => IPS session <vlanid> cdc_mbim_tx_fixup() 266 * 256 - 511 => DSS session <vlanid - 256> cdc_mbim_tx_fixup() 268 * 4094 => IPS session <0> if FLAG_IPS0_VLAN cdc_mbim_tx_fixup() 371 if (tci < 256 || tci == MBIM_IPS0_VID) { /* IPS session? */ cdc_mbim_process_dgram() 403 /* map MBIM session to VLAN */ cdc_mbim_process_dgram()
|
/linux-4.1.27/arch/ia64/include/asm/ |
H A D | perfmon.h | 94 #define PFM_CPUINFO_SYST_WIDE 0x1 /* if set a system wide session exists */ 95 #define PFM_CPUINFO_DCR_PP 0x2 /* if set the system wide session has started */ 96 #define PFM_CPUINFO_EXCL_IDLE 0x4 /* the system wide session excludes the idle task */
|
/linux-4.1.27/include/keys/ |
H A D | rxrpc-type.h | 34 u8 session_key[8]; /* DES session key */ 78 struct krb5_tagged_data session; /* session data; tag is enctype */ member in struct:rxk5_key
|
/linux-4.1.27/drivers/net/fddi/skfp/h/ |
H A D | sba.h | 77 struct s_sba_sessions session[MAX_SESSIONS] ; member in struct:s_sba 80 /* free session */
|
/linux-4.1.27/fs/ecryptfs/ |
H A D | debug.c | 71 ecryptfs_printk(KERN_DEBUG, " * Decrypted session key " ecryptfs_dump_auth_tok() 82 ecryptfs_printk(KERN_DEBUG, " * Encrypted session key " ecryptfs_dump_auth_tok()
|
H A D | keystore.c | 1137 * decrypt_pki_encrypted_session_key - Decrypt the session key with the given auth_tok. 1138 * @auth_tok: The key authentication token used to decrypt the session key 1199 ecryptfs_printk(KERN_DEBUG, "Decrypted session key:\n"); decrypt_pki_encrypted_session_key() 1512 * decrypt the session key. */ parse_tag_3_packet() 1657 * decrypt_passphrase_encrypted_session_key - Decrypt the session key with the given auth_tok. 1750 * Get crypt_stat to have the file's session key if the requisite key 1751 * is available to decrypt the session key. 1927 "session key for authentication token with sig " ecryptfs_parse_packet_set() 2055 printk(KERN_ERR "Failed to encrypt session key via a key " write_tag_1_packet() 2250 "session key encryption key of size [%d]\n", write_tag_3_packet() 2257 "Cached session key encryption key:\n"); write_tag_3_packet() 2269 "for crypt_stat session key; expected rc = 1; " write_tag_3_packet() 2279 "for crypt_stat encrypted session key; " write_tag_3_packet()
|
/linux-4.1.27/security/keys/encrypted-keys/ |
H A D | ecryptfs_format.c | 71 /* The kernel code will encrypt the session key. */ ecryptfs_fill_auth_tok()
|
/linux-4.1.27/drivers/staging/lustre/lustre/llite/ |
H A D | vvp_dev.c | 100 struct vvp_session *session; vvp_session_key_init() local 102 OBD_SLAB_ALLOC_PTR_GFP(session, vvp_session_kmem, GFP_NOFS); vvp_session_key_init() 103 if (session == NULL) vvp_session_key_init() 104 session = ERR_PTR(-ENOMEM); vvp_session_key_init() 105 return session; vvp_session_key_init() 111 struct vvp_session *session = data; vvp_session_key_fini() local 113 OBD_SLAB_FREE_PTR(session, vvp_session_kmem); vvp_session_key_fini()
|
/linux-4.1.27/net/mac80211/ |
H A D | agg-rx.c | 29 * While the session is active, the device/driver are required 33 * When the aggregation session is stopped again by the peer or 76 "Rx BA session stop requested for %pM tid %u %s reason: %d\n", ___ieee80211_stop_rx_ba_session() 166 ht_dbg(sta->sdata, "RX session timer expired on %pM tid %d\n", sta_rx_agg_session_timer_expired() 243 "STA %pM erroneously requests BA session on tid %d w/o QoS\n", __ieee80211_start_rx_ba_session() 285 /* delete existing Rx BA session on the same tid */ __ieee80211_start_rx_ba_session() 370 /* extract session parameters from addba request frame */ ieee80211_process_addba_request()
|
H A D | agg-tx.c | 41 * start the aggregation session after the peer has also responded. 42 * If the peer responds negatively, the session will be stopped 44 * session to be stopped before the driver has indicated that it 53 * Similarly, when the aggregation session is stopped by the peer 351 ht_dbg(sta->sdata, "Tx BA session stop requested for %pM tid %u\n", ___ieee80211_stop_tx_ba_session() 374 * the aggregation session is no longer OPERATIONAL. ___ieee80211_stop_tx_ba_session() 453 * Start queuing up packets for this aggregation session. ieee80211_tx_ba_session_handle_start() 539 ht_dbg(sta->sdata, "tx session timer expired on %pM tid %d\n", sta_tx_agg_session_timer_expired() 557 "Requested to start BA session on reserved tid=%d", tid)) ieee80211_start_tx_ba_session() 571 ht_dbg(sdata, "Open BA session requested for %pM tid %u\n", ieee80211_start_tx_ba_session() 583 "BA sessions blocked - Denying BA session request %pM tid %d\n", ieee80211_start_tx_ba_session() 597 * but we only build up Block Ack session with HT STAs. This information ieee80211_start_tx_ba_session() 635 "BA request denied - session is not idle on %pM tid %u\n", ieee80211_start_tx_ba_session() 820 "Requested to stop BA session on reserved tid=%d", tid); ieee80211_stop_tx_ba_session() 853 ht_dbg(sdata, "Stopping Tx BA session for %pM tid %d\n", ra, tid); ieee80211_stop_tx_ba_cb()
|
H A D | sta_info.h | 124 * @dialog_token: dialog token for aggregation session 125 * @timeout: session timeout value to be filled in ADDBA requests 126 * @state: session state (see above) 128 * @stop_initiator: initiator of a session stop 174 * @dialog_token: dialog token for aggregation session 179 * @removed: this session is removed (but might have been found due to RCU) 215 * @dialog_token_allocator: dialog token enumerator for each new session;
|
/linux-4.1.27/drivers/target/ |
H A D | target_core_tpg.c | 492 * for active fabric session transport_deregister_session() callbacks. core_tpg_del_initiator_node_acl() 547 " Initiator Node: %s while session is" core_tpg_set_initiator_node_queue_depth() 549 " depth and force session reinstatement" core_tpg_set_initiator_node_queue_depth() 561 * Determine if the session needs to be closed by our context. core_tpg_set_initiator_node_queue_depth() 575 * Finally call tpg->se_tpg_tfo->close_session() to force session core_tpg_set_initiator_node_queue_depth() 576 * reinstatement to occur if there is an active session for the core_tpg_set_initiator_node_queue_depth() 584 * Force session reinstatement if core_tpg_set_initiator_node_queue_depth() 586 * the $FABRIC_MOD has already the set session reinstatement core_tpg_set_initiator_node_queue_depth() 600 * If the $FABRIC_MOD session for the Initiator Node ACL exists, core_tpg_set_initiator_node_queue_depth() 601 * forcefully shutdown the $FABRIC_MOD session/nexus. core_tpg_set_initiator_node_queue_depth()
|
H A D | target_core_fabric_lib.c | 275 * field shall contain the iSCSI initiator session identifier iscsi_get_pr_transport_id() 278 * session identifier value. The first ISCSI INITIATOR SESSION iscsi_get_pr_transport_id() 336 * If there is not an active iSCSI session, use format code: iscsi_get_pr_transport_id_len() 436 * for comparison against the running iSCSI session's ISID from iscsi_parse_pr_out_transport_id()
|
/linux-4.1.27/drivers/infiniband/ulp/iser/ |
H A D | iser_initiator.c | 256 struct iscsi_session *session) iser_alloc_rx_descriptors() 265 iser_conn->qp_max_recv_dtos = session->cmds_max; iser_alloc_rx_descriptors() 266 iser_conn->qp_max_recv_dtos_mask = session->cmds_max - 1; /* cmds_max is 2^N */ iser_alloc_rx_descriptors() 269 if (device->iser_alloc_rdma_reg_res(ib_conn, session->scsi_cmds_max)) iser_alloc_rx_descriptors() 275 iser_conn->num_rx_descs = session->cmds_max; iser_alloc_rx_descriptors() 341 struct iscsi_session *session = conn->session; iser_post_rx_bufs() local 354 if (session->discovery_sess) { iser_post_rx_bufs() 355 iser_info("Discovery session, re-using login RX buffer\n"); iser_post_rx_bufs() 358 iser_info("Normal session, posting batch of RX %d buffers\n", iser_post_rx_bufs() 255 iser_alloc_rx_descriptors(struct iser_conn *iser_conn, struct iscsi_session *session) iser_alloc_rx_descriptors() argument
|
H A D | iscsi_iser.c | 416 * @conn_idx: connection index within the session (for MCS) 444 * @cls_session: iscsi class session 447 * @is_leading: indicate if this is the session leading connection (MCS) 486 error = iser_alloc_rx_descriptors(iser_conn, conn->session); iscsi_iser_conn_bind() 508 * from this point iscsi must call conn_stop in session/connection 563 * iscsi_iser_session_destroy() - destroy iscsi-iser session 564 * @cls_session: iscsi class session 591 * iscsi_iser_session_create() - create an iscsi-iser session 593 * @cmds_max: maximum commands in this session 594 * @qdepth: session command queue depth 598 * exists, and sets up an iscsi session. 606 struct iscsi_session *session; iscsi_iser_session_create() local 671 session = cls_session->dd_data; iscsi_iser_session_create() 673 shost->can_queue = session->scsi_cmds_max; iscsi_iser_session_create() 986 /* session management */
|
/linux-4.1.27/drivers/gpu/drm/radeon/ |
H A D | radeon_vce.c | 323 * @handle: VCE session handle to use 347 ib.ptr[ib.length_dw++] = 0x00000001; /* session cmd */ radeon_vce_get_create_msg() 390 * @handle: VCE session handle to use 414 ib.ptr[ib.length_dw++] = 0x00000001; /* session cmd */ radeon_vce_get_destroy_msg() 498 * Validates the handle and return the found session index or -EINVAL 499 * we we don't have another free session index. 564 case 0x00000001: // session radeon_vce_cs_parse() 642 DRM_ERROR("no session command at start of IB\n"); radeon_vce_cs_parse() 651 DRM_ERROR("New session without create command!\n"); radeon_vce_cs_parse()
|
/linux-4.1.27/drivers/tty/ |
H A D | tty_io.c | 508 * Only callable by the session leader and only if it does not already have 521 * The session and fg pgrp references will be non-NULL if __proc_set_tty() 524 put_pid(tty->session); __proc_set_tty() 528 tty->session = get_pid(task_session(current)); __proc_set_tty() 557 static void session_clear_tty(struct pid *session) session_clear_tty() argument 560 do_each_pid_task(session, PIDTYPE_SID, p) { do_each_pid_task() 562 } while_each_pid_task(session, PIDTYPE_SID, p); 592 * tty_signal_session_leader - sends SIGHUP to session leader 596 * Send SIGHUP and SIGCONT to the session leader and its process group. 599 * Returns the number of processes in the session with this tty 610 if (tty->session) { tty_signal_session_leader() 611 do_each_pid_task(tty->session, PIDTYPE_SID, p) { tty_signal_session_leader() 632 } while_each_pid_task(tty->session, PIDTYPE_SID, p); tty_signal_session_leader() 722 put_pid(tty->session); __tty_hangup() 724 tty->session = NULL; __tty_hangup() 821 * tty_vhangup_session - hangup session leader exit 824 * The session leader is exiting and hanging up its controlling terminal. 836 printk(KERN_DEBUG "%s vhangup session...\n", tty_name(tty, buf)); tty_vhangup_session() 858 * @on_exit: true if exiting so need to "hang up" the session 860 * This function is typically called only by the session leader, when 865 * (2) Clears the tty from being controlling the session 867 * session group. 925 put_pid(tty->session); disassociate_ctty() 927 tty->session = NULL; disassociate_ctty() 1648 put_pid(tty->session); release_one_tty() 1893 session_clear_tty(tty->session); tty_release() 1895 session_clear_tty(o_tty->session); tty_release() 2151 tty->session == NULL) { tty_open() 2448 * This ioctl is used to manage job control. It permits a session 2449 * leader to set this tty as the controlling tty for the session. 2464 if (current->signal->leader && (task_session(current) == tty->session)) tiocsctty() 2468 * The process must be a session leader and tiocsctty() 2476 if (tty->session) { tiocsctty() 2479 * tty for another session group! tiocsctty() 2485 session_clear_tty(tty->session); tiocsctty() 2581 * Set the process group of the tty to the session passed. Only 2582 * permitted where the tty session is our session. 2600 (real_tty->session != task_session(current))) tiocspgrp() 2625 * tiocgsid - get session id 2628 * @p: pointer to returned session id 2630 * Obtain the session id of the tty. If there is no session 2644 if (!real_tty->session) tiocgsid() 2646 return put_user(pid_vnr(real_tty->session), p); tiocgsid() 3056 struct pid *session; __do_SAK() 3061 session = tty->session; __do_SAK() 3068 /* Kill the entire session */ __do_SAK() 3069 do_each_pid_task(session, PIDTYPE_SID, p) { __do_SAK() 3071 " (%s): task_session(p)==tty->session\n", __do_SAK() 3074 } while_each_pid_task(session, PIDTYPE_SID, p); __do_SAK() 3081 " (%s): task_session(p)==tty->session\n", __do_SAK() 3155 tty->session = NULL; alloc_tty_struct()
|
/linux-4.1.27/drivers/scsi/qla2xxx/ |
H A D | tcm_qla2xxx.h | 8 * Number of pre-allocated per-session tags, based upon the worst-case
|
H A D | qla_target.c | 433 * Release the target session for FC Nexus from fabric module code. qlt_free_session_done() 511 #if 0 /* FIXME: do we need to choose a session here? */ qlt_reset() 548 "scsi(%ld): resetting (session %p from port %8phC mcmd %x, " qlt_reset() 589 "qla_target(%d): session for port %8phC (loop ID %d s_id %02x:%02x:%02x)" qlt_schedule_sess_for_deletion() 762 "qla_target(%u): session allocation failed, all commands " qlt_create_sess() 776 * session eventually ends and release corresponding nport handle. qlt_create_sess() 884 "qla_target(%u): local session for " qlt_fc_port_added() 894 * max_gen - specifies maximum session generation 1084 "qla_target(%d): Unable to create session " qlt_sched_sess_work() 1091 " to find session for param %p (size %d, tgt %p)\n", qlt_sched_sess_work() 1469 "qla_target(%d): task abort for non-existant session\n", qlt_24xx_handle_abts() 1781 * the session and, so, the command. qlt_24xx_build_ctio_pkt() 2363 * the session and, so, the command. qlt_build_ctio_crc2_pkt() 3602 * Drop extra session reference from qla_tgt_handle_cmd_for_atio*( __qlt_do_work() 3715 * Now obtain a pre-allocated session tag using the original op->atio qlt_create_sess_from_atio() 3779 * session deletion, but it's still in sess_del_work wq */ qlt_handle_cmd_for_atio() 3782 "New command while old session %p is being deleted\n", qlt_handle_cmd_for_atio() 3945 "non-existant session\n", vha->vp_idx, fn); qlt_handle_task_mgmt() 4010 "session\n", vha->vp_idx); qlt_abort_task() 4051 * deletion. Returns existing session with matching wwn if present. 4080 * session that has the same s_id/loop_id combo qlt_find_sess_invalidate_other() 4081 * might have cleared it when requested this session qlt_find_sess_invalidate_other() 4088 * combo - kill the session, but don't log out qlt_find_sess_invalidate_other() 4194 * without acking, new one will get acked when session qlt_24xx_handle_els() 4222 * Note: there is always a possibily of a race where session qlt_24xx_handle_els() 4227 * can proceed ACK'ing it as usual when session deletion qlt_24xx_handle_els() 4264 * since we have deleted the old session during PLOGI qlt_24xx_handle_els() 4280 /* Make session global (not used in fabric mode) */ qlt_24xx_handle_els() 5579 "qla_target(%d): global reset during session discovery " qlt_make_local_sess()
|
/linux-4.1.27/drivers/staging/fsl-mc/bus/ |
H A D | dpmcp.h | 42 * dpmcp_open() - Open a control session for the specified object. 47 * This function can be used to open a control session for an 63 * dpmcp_close() - Close the control session of the object 68 * allowed on the object without opening a new control session.
|
/linux-4.1.27/fs/isofs/ |
H A D | inode.c | 6 * 1994 Eberhard Mönkeberg - multi session handling. 169 s32 session; member in struct:iso9660_options 315 {Opt_session, "session=%u"}, 361 popt->session=-1; parse_options() 415 popt->session = n + 1; parse_options() 478 * look if the driver can tell the multi session redirection value 486 * each track is #0), and a track is not a session. 495 static unsigned int isofs_get_last_session(struct super_block *sb, s32 session) isofs_get_last_session() argument 504 if(session >= 0 && session <= 99) { isofs_get_last_session() 506 Te.cdte_track=session; isofs_get_last_session() 511 session, Te.cdte_addr.lba, isofs_get_last_session() 517 printk(KERN_ERR "ISOFS: Invalid session number or type of track\n"); isofs_get_last_session() 520 if (session > 0) isofs_get_last_session() 521 printk(KERN_ERR "ISOFS: Invalid session number\n"); isofs_get_last_session() 612 opt.sbsector : isofs_get_last_session(s,opt.session); isofs_fill_super()
|
/linux-4.1.27/include/linux/ |
H A D | ecryptfs.h | 48 * For convenience, we may need to pass around the encrypted session
|
H A D | atmdev.h | 63 ATM_VF_SESSION, /* VCC is p2mp session control descriptor */ 116 struct atm_vcc *session; /* session VCC descriptor */ member in struct:atm_vcc
|
H A D | inet_lro.h | 45 * LRO descriptor for a tcp session
|
H A D | nfs4.h | 245 NFS4ERR_DEADSESSION = 10078, /* persistent session dead */ 319 * New to NFSv4.1. If session is persistent,
|
H A D | nfs_fs_sb.h | 32 #define NFS_CS_SESSION_INITING 2 /* busy initialising session */ 91 struct nfs4_session *cl_session; /* shared session */
|
/linux-4.1.27/fs/nfsd/ |
H A D | nfs4state.c | 1374 * We don't actually need to cache the rpc and session headers, so we 1391 * room for new connections. For now we just fail the create session. 1616 dprintk("%s: session not found\n", __func__); __find_in_sessionid_hashtbl() 1624 struct nfsd4_session *session; find_in_sessionid_hashtbl() local 1627 session = __find_in_sessionid_hashtbl(sessionid, net); find_in_sessionid_hashtbl() 1628 if (!session) find_in_sessionid_hashtbl() 1630 status = nfsd4_get_session_locked(session); find_in_sessionid_hashtbl() 1632 session = NULL; find_in_sessionid_hashtbl() 1635 return session; find_in_sessionid_hashtbl() 2258 * session values. 2466 * Cache the create session result into the create session single DRC 2468 * Do this for solo or embedded create session operations. 2710 struct nfsd4_session *session = cstate->session; nfsd4_backchannel_ctl() local 2718 session->se_cb_prog = bc->bc_cb_program; nfsd4_backchannel_ctl() 2719 session->se_cb_sec = bc->bc_cb_sec; nfsd4_backchannel_ctl() 2722 nfsd4_probe_callback(session->se_client); nfsd4_backchannel_ctl() 2733 struct nfsd4_session *session; nfsd4_bind_conn_to_session() local 2740 session = find_in_sessionid_hashtbl(&bcts->sessionid, net, &status); nfsd4_bind_conn_to_session() 2742 if (!session) nfsd4_bind_conn_to_session() 2745 if (!mach_creds_match(session->se_client, rqstp)) nfsd4_bind_conn_to_session() 2754 nfsd4_init_conn(rqstp, conn, session); nfsd4_bind_conn_to_session() 2757 nfsd4_put_session(session); nfsd4_bind_conn_to_session() 2762 static bool nfsd4_compound_in_session(struct nfsd4_session *session, struct nfs4_sessionid *sid) nfsd4_compound_in_session() argument 2764 if (!session) nfsd4_compound_in_session() 2766 return !memcmp(sid, &session->se_sessionid, sizeof(*sid)); nfsd4_compound_in_session() 2781 if (nfsd4_compound_in_session(cstate->session, &sessionid->sessionid)) { nfsd4_destroy_session() 2851 static bool nfsd4_session_too_many_ops(struct svc_rqst *rqstp, struct nfsd4_session *session) nfsd4_session_too_many_ops() argument 2855 return args->opcnt > session->se_fchannel.maxops; nfsd4_session_too_many_ops() 2859 struct nfsd4_session *session) nfsd4_request_too_big() 2863 return xb->len > session->se_fchannel.maxreq_sz; nfsd4_request_too_big() 2873 struct nfsd4_session *session; nfsd4_sequence() local 2894 session = find_in_sessionid_hashtbl(&seq->sessionid, net, &status); nfsd4_sequence() 2895 if (!session) nfsd4_sequence() 2897 clp = session->se_client; nfsd4_sequence() 2900 if (nfsd4_session_too_many_ops(rqstp, session)) nfsd4_sequence() 2904 if (nfsd4_request_too_big(rqstp, session)) nfsd4_sequence() 2908 if (seq->slotid >= session->se_fchannel.maxreqs) nfsd4_sequence() 2911 slot = session->se_slots[seq->slotid]; nfsd4_sequence() 2915 * maxslots to the session maxreqs which is used to encode nfsd4_sequence() 2917 seq->maxslots = session->se_fchannel.maxreqs; nfsd4_sequence() 2926 cstate->session = session; nfsd4_sequence() 2937 status = nfsd4_sequence_check_conn(conn, session); nfsd4_sequence() 2943 session->se_fchannel.maxresp_cached : nfsd4_sequence() 2944 session->se_fchannel.maxresp_sz; nfsd4_sequence() 2961 cstate->session = session; nfsd4_sequence() 2983 nfsd4_put_session_locked(session); nfsd4_sequence() 2997 /* Drop session reference that was taken in nfsd4_sequence() */ nfsd4_sequence_done() 2998 nfsd4_put_session(cs->session); nfsd4_sequence_done() 3061 &cstate->session->se_client->cl_flags)) nfsd4_reclaim_complete() 3065 if (is_client_expired(cstate->session->se_client)) nfsd4_reclaim_complete() 3076 nfsd4_client_record_create(cstate->session->se_client); nfsd4_reclaim_complete() 3687 WARN_ON_ONCE(cstate->session); lookup_clientid() 4665 if (cstate->session) nfsd4_lookup_stateid() 4774 struct nfs4_client *cl = cstate->session->se_client; nfsd4_test_stateid() 4791 struct nfs4_client *cl = cstate->session->se_client; nfsd4_free_stateid() 5471 &cstate->session->se_client->cl_clientid, nfsd4_lock() 2858 nfsd4_request_too_big(struct svc_rqst *rqstp, struct nfsd4_session *session) nfsd4_request_too_big() argument
|
H A D | state.h | 147 per-session otherwise */ 157 /* Maximum number of slots per session. 160 is useful for long haul TCP */ 159 /* Maximum number of operations per session compound */ 161 /* Maximum session per slot cache size */ 163 /* Maximum number of NFSD_SLOT_CACHE_SIZE slots per session */ 235 * Representation of a v4.1+ session. These are refcounted in a similar fashion 344 /* number of rpc's in progress over an associated session: */
|
H A D | netns.h | 90 /* client_lock protects the client lru list and session hash table */
|
H A D | nfs4callback.c | 157 const struct nfsd4_session *session) encode_sessionid4() 162 xdr_encode_opaque_fixed(p, session->se_sessionid.data, encode_sessionid4() 355 struct nfsd4_session *session = cb->cb_clp->cl_cb_session; encode_cb_sequence4args() local 362 encode_sessionid4(xdr, session); encode_cb_sequence4args() 365 *p++ = cpu_to_be32(session->se_cb_seq_nr); /* csa_sequenceid */ encode_cb_sequence4args() 398 struct nfsd4_session *session = cb->cb_clp->cl_cb_session; decode_cb_sequence4resok() local 414 if (memcmp(id.data, session->se_sessionid.data, decode_cb_sequence4resok() 416 dprintk("NFS: %s Invalid session id\n", __func__); decode_cb_sequence4resok() 422 if (dummy != session->se_cb_seq_nr) { decode_cb_sequence4resok() 156 encode_sessionid4(struct xdr_stream *xdr, const struct nfsd4_session *session) encode_sessionid4() argument
|
/linux-4.1.27/net/netfilter/ |
H A D | nf_conntrack_pptp.c | 20 * - We can only support one single call within each session 284 /* server confirms new control session */ pptp_inbound_pkt() 294 /* server confirms end of control session */ pptp_inbound_pkt() 412 /* client requests for new control session */ pptp_outbound_pkt() 419 /* client requests end of control session */ pptp_outbound_pkt()
|
H A D | nf_conntrack_sip.c | 43 MODULE_PARM_DESC(sip_timeout, "timeout for the master SIP session"); 679 /* SDP header parsing: a SDP session description contains an ordered set of 680 * headers, starting with a section containing general session parameters, 1004 /* Find beginning of session description */ process_sdp() 1011 /* The connection information is contained in the session description process_sdp() 1013 * the end of the session description. */ process_sdp() 1045 /* The media description overrides the session description. */ process_sdp() 1084 /* Update session connection and owner addresses */ process_sdp()
|
/linux-4.1.27/include/net/9p/ |
H A D | client.h | 131 * @fidpool: fid handle accounting for session 133 * @tagpool - transaction id accounting for session 147 * a total of 64k concurrent requests per session.
|
/linux-4.1.27/net/sunrpc/ |
H A D | backchannel_rqst.c | 77 * stack to enforce that the maximum number of session slots is not 254 * The last remaining session was destroyed while this xprt_free_bc_request() 259 dprintk("RPC: Last session removed req=%p\n", req); xprt_free_bc_request()
|
/linux-4.1.27/drivers/staging/fsl-mc/include/ |
H A D | dpbp.h | 42 * dpbp_open() - Open a control session for the specified object. 47 * This function can be used to open a control session for an 60 * dpbp_close() - Close the control session of the object 65 * allowed on the object without opening a new control session.
|
/linux-4.1.27/drivers/staging/ft1000/ft1000-usb/ |
H A D | ft1000_ioctl.h | 75 unsigned long ConTm; /* Current session connection time
|
/linux-4.1.27/drivers/net/wireless/brcm80211/brcmfmac/ |
H A D | btcoex.c | 204 * return: true if SCO/eSCO session is active 440 /* Stop any bt timer because DHCP session is done */ brcmf_btcoex_dhcp_end() 475 brcmf_dbg(INFO, "DHCP session starts\n"); brcmf_btcoex_set_mode() 487 brcmf_dbg(INFO, "DHCP session ends\n"); brcmf_btcoex_set_mode()
|
/linux-4.1.27/include/uapi/asm-generic/ |
H A D | ioctls.h | 59 #define TIOCGSID 0x5429 /* Return the session ID of FD */
|
/linux-4.1.27/arch/parisc/include/uapi/asm/ |
H A D | ioctls.h | 48 #define TIOCGSID _IOR('T', 20, int) /* Return the session ID of FD */
|
/linux-4.1.27/arch/powerpc/include/uapi/asm/ |
H A D | ioctls.h | 92 #define TIOCGSID 0x5429 /* Return the session ID of FD */
|
/linux-4.1.27/arch/cris/include/arch-v32/arch/ |
H A D | cryptocop.h | 42 cryptocop_tfrm_id tid; /* Locally unique in session; assigned by user, checked by driver. */
|
/linux-4.1.27/arch/ia64/include/uapi/asm/ |
H A D | perfmon_default_smpl.h | 54 * on how the session was programmed.
|
/linux-4.1.27/net/bluetooth/bnep/ |
H A D | core.c | 523 /* Cleanup session */ bnep_session() 545 static struct device *bnep_get_device(struct bnep_session *session) bnep_get_device() argument 547 struct l2cap_conn *conn = l2cap_pi(session->sock->sk)->chan->conn; bnep_get_device() 578 /* session struct allocated as private part of net_device */ bnep_add_connection()
|
H A D | netdev.c | 188 * So we have to queue them and wake up session thread which is sleeping bnep_net_xmit()
|
/linux-4.1.27/net/mac802154/ |
H A D | tx.c | 33 /* IEEE 802.15.4 transceivers can sleep during the xmit session, so process
|
/linux-4.1.27/include/net/bluetooth/ |
H A D | rfcomm.h | 170 struct rfcomm_session *session; member in struct:rfcomm_dlc 201 /* DLC and session flags */
|
/linux-4.1.27/drivers/net/wireless/iwlwifi/dvm/ |
H A D | dev.h | 133 * @IWL_AGG_ON: aggregation session is up 134 * @IWL_EMPTYING_HW_QUEUE_ADDBA: establishing a BA session - waiting for the 136 * @IWL_EMPTYING_HW_QUEUE_DELBA: tearing down a BA session - waiting for the 151 * down. It also holds the state during the BA session itself. This struct is 158 * @txq_id: Tx queue used by the BA session
|
/linux-4.1.27/arch/cris/arch-v32/drivers/ |
H A D | cryptocop.c | 802 DEBUG_API(printk("cryptocop_setup_dma_list: no session found for operation.\n")); cryptocop_setup_dma_list() 834 DEBUG_API(printk("cryptocop_setup_dma_list: no transform id %d in session.\n", tcfg->tid)); cryptocop_setup_dma_list() 1566 * OTOH 2^64 is a really large number of session. */ cryptocop_new_session() 1569 /* Prepend to session list. */ cryptocop_new_session() 1626 pj->oper->operation_status = -EAGAIN; /* EAGAIN is not ideal for job/session terminated but it's the best choice I know of. */ cryptocop_free_session() 2362 DEBUG_API(printk("cryptocop_ioctl_close_session: session %lld not found\n", sop.ses_id)); cryptocop_ioctl_close_session() 2534 DEBUG_API(printk("cryptocop_ioctl_process: session %lld not found\n", oper.ses_id)); cryptocop_ioctl_process() 2583 DEBUG_API(printk("cryptocop_ioctl_process: bad session id.\n")); cryptocop_ioctl_process() 2593 DEBUG_API(printk("cryptocop_ioctl_process: no cipher transform in session.\n")); cryptocop_ioctl_process() 2647 DEBUG_API(printk("cryptocop_ioctl_process: no digest transform in session.\n")); cryptocop_ioctl_process() 3013 DEBUG_API(printk("create session, bad cipher algorithm %d\n", sop.cipher)); cryptocop_ioctl_create_session() 3025 DEBUG_API(printk("create session, bad cipher mode %d\n", sop.cmode)); cryptocop_ioctl_create_session() 3041 DEBUG_API(printk("create session, bad 3DES mode %d\n", sop.des3_mode)); cryptocop_ioctl_create_session() 3058 DEBUG_API(printk("create session, bad digest algorithm %d\n", sop.digest)); cryptocop_ioctl_create_session() 3073 DEBUG_API(printk("create session, bad checksum algorithm %d\n", sop.csum)); cryptocop_ioctl_create_session() 3083 DEBUG_API(printk("create session, alloc dev\n")); cryptocop_ioctl_create_session() 3088 DEBUG({ if (err) printk("create session, cryptocop_new_session %d\n", err);}); cryptocop_ioctl_create_session() 3113 /* Access check of the argument. Some commands, e.g. create session and process op, cryptocop_ioctl_unlocked()
|
/linux-4.1.27/drivers/staging/lustre/lustre/lclient/ |
H A D | lcommon_cl.c | 136 struct ccc_session *session; ccc_session_key_init() local 138 OBD_SLAB_ALLOC_PTR_GFP(session, ccc_session_kmem, GFP_NOFS); ccc_session_key_init() 139 if (session == NULL) ccc_session_key_init() 140 session = ERR_PTR(-ENOMEM); ccc_session_key_init() 141 return session; ccc_session_key_init() 147 struct ccc_session *session = data; ccc_session_key_fini() local 149 OBD_SLAB_FREE_PTR(session, ccc_session_kmem); ccc_session_key_fini()
|
/linux-4.1.27/drivers/usb/musb/ |
H A D | da8xx.c | 221 * RTL seems to mis-handle session "start" otherwise (or in otg_timer() 240 * session flag every few seconds. If it works, ID was otg_timer() 243 * NOTE: setting the session flag is _supposed_ to trigger otg_timer()
|
/linux-4.1.27/fs/udf/ |
H A D | super.c | 32 * 10/16/98 attempting some multi-session support 215 unsigned int session; member in struct:udf_options 371 seq_printf(seq, ",session=%u", sbi->s_session); udf_show_options() 418 * session= Set the CDROM session (default= last session) 471 {Opt_session, "session=%u"}, 493 uopt->session = 0xFFFFFFFF; udf_parse_options() 570 uopt->session = option; udf_parse_options() 2115 if (uopt.session == 0xFFFFFFFF) udf_fill_super() 2118 sbi->s_session = uopt.session; udf_fill_super() 2120 udf_debug("Multi-session=%d\n", sbi->s_session); udf_fill_super()
|
/linux-4.1.27/arch/xtensa/include/uapi/asm/ |
H A D | ioctls.h | 93 #define TIOCGSID _IOR('T', 41, pid_t) /* Return the session ID of FD*/
|
/linux-4.1.27/drivers/cdrom/ |
H A D | gdrom.c | 274 * byte 1 = session 278 static int gdrom_readtoc_cmd(struct gdromtoc *toc, int session) gdrom_readtoc_cmd() argument 289 toc_command->cmd[1] = session; gdrom_readtoc_cmd() 363 pr_info("No data on the last session of the CD\n"); gdrom_get_last_session()
|
/linux-4.1.27/arch/sh/include/uapi/asm/ |
H A D | ioctls.h | 81 #define TIOCGSID _IOR('T', 41, pid_t) /* 0x5429 */ /* Return the session ID of FD */
|
/linux-4.1.27/arch/mips/include/uapi/asm/ |
H A D | ioctls.h | 79 #define TIOCGSID 0x7416 /* Return the session ID of FD */
|
/linux-4.1.27/arch/alpha/include/uapi/asm/ |
H A D | ioctls.h | 92 #define TIOCGSID 0x5429 /* Return the session ID of FD */
|
/linux-4.1.27/net/ipv6/ |
H A D | xfrm6_state.c | 29 * to current session. */ __xfrm6_init_tempsel()
|
/linux-4.1.27/net/sched/ |
H A D | cls_rsvp.h | 52 matches a special session with "tunnelhdr" value not zero, 355 /* OK, session has no flows */ rsvp_delete() 569 /* OK, we found appropriate session */ rsvp_change() 595 /* No session found. Create new one. */ rsvp_change()
|
/linux-4.1.27/drivers/net/wireless/ti/wlcore/ |
H A D | cmd.c | 451 cmd->device.session = wl->session_ids[wlvif->dev_hlid]; wl12xx_cmd_role_start_dev() 453 wl1271_debug(DEBUG_CMD, "role start: roleid=%d, hlid=%d, session=%d", wl12xx_cmd_role_start_dev() 454 cmd->role_id, cmd->device.hlid, cmd->device.session); wl12xx_cmd_role_start_dev() 552 cmd->sta.session = wl->session_ids[wlvif->sta.hlid]; wl12xx_cmd_role_start_sta() 561 wl1271_debug(DEBUG_CMD, "role start: roleid=%d, hlid=%d, session=%d " wl12xx_cmd_role_start_sta() 563 wlvif->role_id, cmd->sta.hlid, cmd->sta.session, wl12xx_cmd_role_start_sta() 796 wl1271_debug(DEBUG_CMD, "role start: roleid=%d, hlid=%d, session=%d " wl12xx_cmd_role_start_ibss() 798 wlvif->role_id, cmd->sta.hlid, cmd->sta.session, wl12xx_cmd_role_start_ibss()
|
/linux-4.1.27/drivers/usb/dwc2/ |
H A D | hcd_ddma.c | 468 * is, do not disable and release the channel when ISOC session dwc2_recalc_initial_desc_idx() 748 * session. Then the transfer is started via enabling the channel. 751 * interrupt so remains assigned to the endpoint(QH) until session is done. 1150 * the session, i.e. QTD list is empty. 1165 /* Release the channel if halted or session completed */ dwc2_hcd_complete_xfer_ddma() 1168 /* Halt the channel if session completed */ dwc2_hcd_complete_xfer_ddma()
|
/linux-4.1.27/drivers/scsi/qla4xxx/ |
H A D | ql4_os.c | 1833 struct iscsi_cls_session *session; qla4xxx_eh_cmd_timed_out() local 1838 session = starget_to_session(scsi_target(sc->device)); qla4xxx_eh_cmd_timed_out() 1839 sess = session->dd_data; qla4xxx_eh_cmd_timed_out() 1841 spin_lock_irqsave(&session->lock, flags); qla4xxx_eh_cmd_timed_out() 1842 if (session->state == ISCSI_SESSION_FAILED) qla4xxx_eh_cmd_timed_out() 1844 spin_unlock_irqrestore(&session->lock, flags); qla4xxx_eh_cmd_timed_out() 2845 /* First, populate session username and password for FLASH DDB, qla4xxx_session_get_param() 2846 * if not already done. This happens when session login fails qla4xxx_session_get_param() 3243 * active session. qla4xxx_conn_start() 3352 sess = task->conn->session; qla4xxx_alloc_pdu() 3419 sess = task->conn->session; qla4xxx_task_cleanup() 3442 struct iscsi_session *sess = task->conn->session; qla4xxx_task_xmit() 3980 * qla4xxx_mark_device_missing - blocks the session 3981 * @cls_session: Pointer to the session to be blocked 5030 " unblock session\n", ha->host_no, __func__, qla4xxx_relogin_devices() 5057 " unblock session\n", ha->host_no, __func__, qla4xxx_unblock_flash_ddb() 5083 " unblock user space session\n", ha->host_no, __func__, qla4xxx_unblock_ddb() 5092 "scsi%ld: %s: ddb[%d] session [%d] already logged in\n", qla4xxx_unblock_ddb() 6185 "and publish session for discovery .\n", __func__); qla4xxx_setup_boot_info() 6884 /* Create session object, with INVALID_ENTRY, qla4xxx_sess_conn_setup() 7023 "Adding DDB to session = 0x%x\n", idx)); qla4xxx_build_nt_list() 7120 "Adding DDB to session = 0x%x\n", idx)); qla4xxx_build_new_nt_list() 7158 * @data: pointer to flashnode session object 7187 * This create separate sysfs entries for session and connection attributes of 7204 "%s: Unable to create session sysfs entry for flashnode %d of host%lu\n", qla4xxx_sysfs_ddb_tgt_create() 7328 * @fnode_sess: pointer to session attrs of flash ddb entry 7519 * @fnode_sess: pointer to session attrs of flash ddb entry 7579 * qla4xxx_sysfs_ddb_logout_sid - Logout session for the specified target 7580 * @cls_sess: pointer to session to be logged out 7582 * This performs session log out from the specified target 7602 ql4_printk(KERN_ERR, ha, "%s: Not a flash node session\n", qla4xxx_sysfs_ddb_logout_sid() 7677 * when we setup the session to have the driver unload qla4xxx_sysfs_ddb_logout_sid() 7679 * session qla4xxx_sysfs_ddb_logout_sid() 7703 * @fnode_sess: pointer to session attrs of flash ddb entry 8069 * @fnode_sess: pointer to session attrs of flash ddb entry 8301 * @fnode_sess: pointer to session attrs of flash ddb entry 8392 "%s: session and conn entries for flashnode %u of host %lu deleted\n", qla4xxx_sysfs_ddb_delete() 8458 * from firmware DDBs. Based on the list of nt setup session and connection 8971 * when we setup the session to have the driver unload qla4xxx_destroy_fw_ddb_session() 8973 * session qla4xxx_destroy_fw_ddb_session()
|
/linux-4.1.27/arch/ia64/kernel/ |
H A D | perfmon.c | 267 unsigned int excl_idle:1; /* exclude idle task in system wide session */ 281 * perfmon context: encapsulates all the state of a monitoring session 378 unsigned int pfs_sys_use_dbregs; /* incremented when a system wide session uses debug regs */ 380 struct task_struct *pfs_sys_session[NR_CPUS]; /* point to task owning a system-wide session */ 1023 * system-wide session are pinned and self-monitoring pfm_restore_monitoring() 1354 DPRINT(("reserving system wide session on CPU%u currently on CPU%u\n", cpu, smp_processor_id())); pfm_reserve_session() 1382 DPRINT(("system wide not possible, conflicting session [%d] on CPU%d\n", pfm_reserve_session() 1432 /* Undo forced polling. Last session reenables pal_halt */ pfm_unreserve_session() 1897 * and session unreserved. pfm_flush() 2113 * UNLOADED that the session has already been unreserved. pfm_close() 2845 * when the caller is running on the CPU being monitored by the session. pfm_write_pmcs() 2888 * - system-wide session: PMCx.pm=1 (privileged monitor) pfm_write_pmcs() 3088 * when the caller is running on the CPU being monitored by the session. pfm_write_pmds() 3284 * when the caller is running on the CPU being monitored by the session. pfm_read_pmds() 3540 * when the caller is running on the CPU being monitored by the session. pfm_restart() 3640 * the tool that is controlling the session is logically doing pfm_restart() 3712 * when the caller is running on the CPU being monitored by the session. pfm_write_ibr_dbr() 3770 * for a system wide session, we do not use pfm_write_ibr_dbr() 3957 * when the caller is running on the CPU being monitored by the session. pfm_stop() 4042 * when the caller is running on the CPU being monitored by the session. pfm_start() 4247 * be pinned on a CPU throughout the session. pfm_context_load() 4256 * systemwide: keep track of CPU this session is supposed to run on pfm_context_load() 4262 * now reserve the session pfm_context_load() 4683 * a task running on the same CPU as the session. pfm_check_task_state() 5440 * So there might be a window of time where the number of per-task session is zero pfm_overflow_handler() 5442 * context. This is safe because if a per-task session comes in, it will push this one pfm_overflow_handler() 5444 * session is force on that CPU, given that we use task pinning, pfm_save_regs() will pfm_overflow_handler() 6278 * session for system wide measurements) pfm_flush_pmds() 6451 /* reserve our session */ for_each_online_cpu()
|