Lines Matching refs:grp
330 struct mpc_group *grp;
337 grp = priv->mpcg;
339 grp->allochanfunc = callback;
340 grp->port_num = port_num;
341 grp->port_persist = 1;
345 CTCM_FUNTAIL, dev->name, fsm_getstate_str(grp->fsm));
347 switch (fsm_getstate(grp->fsm)) {
350 grp->alloc_called = 1;
357 /*fsm_newstate(grp->fsm, MPCG_STATE_XID2INITW);*/
359 grp->send_qllc_disc = 1;
362 fsm_deltimer(&grp->timer);
363 grp->outstanding_xid2 = 0;
364 grp->outstanding_xid7 = 0;
365 grp->outstanding_xid7_p2 = 0;
366 grp->saved_xid2 = NULL;
375 grp->allocchan_callback_retries++;
376 if (grp->allocchan_callback_retries < 4) {
377 if (grp->allochanfunc)
378 grp->allochanfunc(grp->port_num,
379 grp->group_max_buflen);
383 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
384 grp->allocchan_callback_retries = 0;
401 struct mpc_group *grp;
409 grp = priv->mpcg;
415 CTCM_FUNTAIL, dev->name, fsm_getstate_str(grp->fsm));
417 grp->estconnfunc = callback;
418 grp->port_num = port_num;
420 switch (fsm_getstate(grp->fsm)) {
425 fsm_deltimer(&grp->timer);
426 grp->estconn_callback_retries++;
427 if (grp->estconn_callback_retries < 4) {
428 if (grp->estconnfunc) {
429 grp->estconnfunc(grp->port_num, 0,
430 grp->group_max_buflen);
431 grp->estconnfunc = NULL;
435 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
436 grp->estconn_callback_retries = 0;
447 if (grp->estconnfunc) {
448 grp->estconnfunc(grp->port_num, -1, 0);
449 grp->estconnfunc = NULL;
464 grp->send_qllc_disc = 1;
465 fsm_newstate(grp->fsm, MPCG_STATE_XID0IOWAIT);
466 fsm_deltimer(&grp->timer);
467 fsm_addtimer(&grp->timer, MPC_XID_TIMEOUT_VALUE,
469 grp->outstanding_xid7 = 0;
470 grp->outstanding_xid7_p2 = 0;
471 grp->saved_xid2 = NULL;
474 fsm_event(grp->fsm, MPCG_EVENT_XID0DO, rch);
479 if (grp->estconnfunc) {
480 grp->estconnfunc(grp->port_num, -1, 0);
481 grp->estconnfunc = NULL;
483 fsm_deltimer(&grp->timer);
488 fsm_event(grp->fsm, MPCG_EVENT_XID0DO, wch);
493 if (grp->estconnfunc) {
494 grp->estconnfunc(grp->port_num, -1, 0);
495 grp->estconnfunc = NULL;
497 fsm_deltimer(&grp->timer);
521 struct mpc_group *grp;
527 grp = priv->mpcg;
534 grp->channels_terminating = 0;
535 fsm_deltimer(&grp->timer);
536 grp->allochanfunc = NULL;
537 grp->estconnfunc = NULL;
538 grp->port_persist = 0;
539 grp->send_qllc_disc = 0;
540 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
554 struct mpc_group *grp;
563 grp = priv->mpcg;
571 mpcg_state = fsm_getstate(grp->fsm);
577 if (grp->flow_off_called == 1)
578 grp->flow_off_called = 0;
580 fsm_newstate(grp->fsm, MPCG_STATE_FLOWC);
586 fsm_newstate(grp->fsm, MPCG_STATE_READY);
593 grp->flow_off_called = 1;
612 struct mpc_group *grp = priv->mpcg;
618 grp->sweep_rsp_pend_num--;
620 if ((grp->sweep_req_pend_num == 0) &&
621 (grp->sweep_rsp_pend_num == 0)) {
623 grp->in_sweep = 0;
641 struct mpc_group *grp = priv->mpcg;
682 grp->in_sweep = 0;
684 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
697 struct mpc_group *grp = priv->mpcg;
704 if (grp->in_sweep == 0) {
705 grp->in_sweep = 1;
707 grp->sweep_req_pend_num = grp->active_channels[CTCM_READ];
708 grp->sweep_rsp_pend_num = grp->active_channels[CTCM_READ];
713 grp->sweep_req_pend_num--;
831 struct mpc_group *grp = priv->mpcg;
833 if (grp == NULL) {
840 fsm_deltimer(&grp->timer);
842 if (grp->saved_xid2->xid2_flag2 == 0x40) {
844 if (grp->estconnfunc) {
845 grp->estconnfunc(grp->port_num, 1,
846 grp->group_max_buflen);
847 grp->estconnfunc = NULL;
848 } else if (grp->allochanfunc)
849 grp->send_qllc_disc = 1;
851 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
858 grp->port_persist = 1;
859 grp->out_of_sequence = 0;
860 grp->estconn_called = 0;
862 tasklet_hi_schedule(&grp->mpc_tasklet2);
875 struct mpc_group *grp = priv->mpcg;
878 if (grp == NULL) {
887 CTCM_FUNTAIL, dev->name, grp->group_max_buflen);
889 fsm_newstate(grp->fsm, MPCG_STATE_READY);
909 if (grp->estconnfunc) {
910 grp->estconnfunc(grp->port_num, 0,
911 grp->group_max_buflen);
912 grp->estconnfunc = NULL;
913 } else if (grp->allochanfunc)
914 grp->allochanfunc(grp->port_num, grp->group_max_buflen);
916 grp->send_qllc_disc = 1;
917 grp->changed_side = 0;
931 struct mpc_group *grp = priv->mpcg;
933 if (grp == NULL) {
945 fsm_getstate_str(grp->fsm), grp->num_channel_paths,
946 grp->active_channels[CTCM_READ],
947 grp->active_channels[CTCM_WRITE]);
950 grp->num_channel_paths++;
951 grp->active_channels[direction]++;
952 grp->outstanding_xid2++;
964 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
977 skb_put_data(ch->xid_skb, grp->xid_skb->data,
978 grp->xid_skb->len);
993 if ((grp->active_channels[CTCM_READ] > 0) &&
994 (grp->active_channels[CTCM_WRITE] > 0) &&
995 (fsm_getstate(grp->fsm) < MPCG_STATE_XID2INITW)) {
996 fsm_newstate(grp->fsm, MPCG_STATE_XID2INITW);
1004 grp->num_channel_paths--;
1005 grp->active_channels[direction]--;
1011 if (grp->channels_terminating)
1014 if (((grp->active_channels[CTCM_READ] == 0) &&
1015 (grp->active_channels[CTCM_WRITE] > 0))
1016 || ((grp->active_channels[CTCM_WRITE] == 0) &&
1017 (grp->active_channels[CTCM_READ] > 0)))
1018 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
1024 fsm_getstate_str(grp->fsm), grp->num_channel_paths,
1025 grp->active_channels[CTCM_READ],
1026 grp->active_channels[CTCM_WRITE]);
1043 struct mpc_group *grp = priv->mpcg;
1074 if ((fsm_getstate(grp->fsm) == MPCG_STATE_FLOWC) ||
1075 ((fsm_getstate(grp->fsm) == MPCG_STATE_READY) &&
1084 grp->out_of_sequence += 1;
1093 grp->out_of_sequence = 0;
1099 if (unlikely(fsm_getstate(grp->fsm) != MPCG_STATE_READY))
1148 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
1198 fsm_event(grp->fsm, MPCG_EVENT_XID2, mpcginfo);
1200 fsm_event(grp->fsm, MPCG_EVENT_DISCONC, mpcginfo);
1219 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
1240 struct mpc_group *grp = priv->mpcg;
1245 while ((fsm_getstate(grp->fsm) != MPCG_STATE_FLOWC) &&
1248 if (grp->out_of_sequence > 20) {
1252 grp->out_of_sequence = 0;
1253 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
1269 struct mpc_group *grp;
1274 grp = kzalloc(sizeof(struct mpc_group), GFP_KERNEL);
1275 if (grp == NULL)
1278 grp->fsm = init_fsm("mpcg", mpcg_state_names, mpcg_event_names,
1281 if (grp->fsm == NULL) {
1282 kfree(grp);
1286 fsm_newstate(grp->fsm, MPCG_STATE_RESET);
1287 fsm_settimer(grp->fsm, &grp->timer);
1289 grp->xid_skb =
1291 if (grp->xid_skb == NULL) {
1292 kfree_fsm(grp->fsm);
1293 kfree(grp);
1297 grp->xid_skb_data = grp->xid_skb->data;
1298 grp->xid_th = (struct th_header *)grp->xid_skb->data;
1299 skb_put_data(grp->xid_skb, &thnorm, TH_HEADER_LENGTH);
1301 grp->xid = (struct xid2 *)skb_tail_pointer(grp->xid_skb);
1302 skb_put_data(grp->xid_skb, &init_xid, XID2_LENGTH);
1303 grp->xid->xid2_adj_id = jiffies | 0xfff00000;
1304 grp->xid->xid2_sender_id = jiffies;
1306 grp->xid_id = skb_tail_pointer(grp->xid_skb);
1307 skb_put_data(grp->xid_skb, "VTAM", 4);
1309 grp->rcvd_xid_skb =
1311 if (grp->rcvd_xid_skb == NULL) {
1312 kfree_fsm(grp->fsm);
1313 dev_kfree_skb(grp->xid_skb);
1314 kfree(grp);
1317 grp->rcvd_xid_data = grp->rcvd_xid_skb->data;
1318 grp->rcvd_xid_th = (struct th_header *)grp->rcvd_xid_skb->data;
1319 skb_put_data(grp->rcvd_xid_skb, &thnorm, TH_HEADER_LENGTH);
1320 grp->saved_xid2 = NULL;
1321 priv->xid = grp->xid;
1322 priv->mpcg = grp;
1323 return grp;
1352 struct mpc_group *grp;
1358 grp = priv->mpcg;
1359 grp->flow_off_called = 0;
1360 fsm_deltimer(&grp->timer);
1361 if (grp->channels_terminating)
1364 grp->channels_terminating = 1;
1365 grp->saved_state = fsm_getstate(grp->fsm);
1366 fsm_newstate(grp->fsm, MPCG_STATE_INOP);
1367 if (grp->saved_state > MPCG_STATE_XID7INITF)
1371 if ((grp->saved_state != MPCG_STATE_RESET) ||
1373 (grp->port_persist == 0))
1378 switch (grp->saved_state) {
1397 grp->xid2_tgnum = 0;
1398 grp->group_max_buflen = 0; /*min of all received */
1399 grp->outstanding_xid2 = 0;
1400 grp->outstanding_xid7 = 0;
1401 grp->outstanding_xid7_p2 = 0;
1402 grp->saved_xid2 = NULL;
1403 grp->xidnogood = 0;
1404 grp->changed_side = 0;
1406 grp->rcvd_xid_skb->data = grp->rcvd_xid_data;
1407 skb_reset_tail_pointer(grp->rcvd_xid_skb);
1408 grp->rcvd_xid_skb->len = 0;
1409 grp->rcvd_xid_th = (struct th_header *)grp->rcvd_xid_skb->data;
1410 skb_put_data(grp->rcvd_xid_skb, &thnorm, TH_HEADER_LENGTH);
1412 if (grp->send_qllc_disc == 1) {
1413 grp->send_qllc_disc = 0;
1422 if ((grp->port_persist == 1) || (grp->alloc_called)) {
1423 grp->alloc_called = 0;
1426 fsm_newstate(grp->fsm, MPCG_STATE_RESET);
1427 if (grp->saved_state > MPCG_STATE_XID7INITF)
1434 fsm_newstate(grp->fsm, MPCG_STATE_RESET);
1454 struct mpc_group *grp;
1459 grp = priv->mpcg;
1463 switch (fsm_getstate(grp->fsm)) {
1473 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
1492 struct mpc_group *grp;
1502 grp = priv->mpcg;
1503 grp->send_qllc_disc = 1;
1504 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
1545 struct mpc_group *grp = priv->mpcg;
1578 grp->group_max_buflen, xid->xid2_buf_len);
1580 if (grp->group_max_buflen == 0 || grp->group_max_buflen >
1582 grp->group_max_buflen = xid->xid2_buf_len - len;
1585 if (grp->saved_xid2 == NULL) {
1586 grp->saved_xid2 =
1587 (struct xid2 *)skb_tail_pointer(grp->rcvd_xid_skb);
1589 skb_put_data(grp->rcvd_xid_skb, xid, XID2_LENGTH);
1590 grp->rcvd_xid_skb->data = grp->rcvd_xid_data;
1592 skb_reset_tail_pointer(grp->rcvd_xid_skb);
1593 grp->rcvd_xid_skb->len = 0;
1604 grp->roll = XSIDE;
1609 grp->roll = YSIDE;
1616 if (xid->xid2_flag4 != grp->saved_xid2->xid2_flag4) {
1630 if (xid->xid2_adj_id != grp->saved_xid2->xid2_adj_id) {
1637 if (xid->xid2_sender_id != grp->saved_xid2->xid2_sender_id) {
1651 grp->saved_xid2->xid2_flag2 = 0x40;
1841 struct mpc_group *grp = priv->mpcg;
1857 switch (fsm_getstate(grp->fsm)) {
1868 fsm_event(grp->fsm, MPCG_EVENT_DOIO, ch);
1881 struct mpc_group *grp = NULL;
1886 grp = priv->mpcg;
1887 if (grp == NULL)
1900 if (grp->outstanding_xid7_p2 > 0) {
1901 if (grp->roll == YSIDE) {
1918 if (grp->roll == YSIDE) {
1936 fsm_event(grp->fsm, MPCG_EVENT_DOIO, ch);
1953 struct mpc_group *grp = priv->mpcg;
1956 __func__, ch->id, grp->outstanding_xid2,
1957 grp->outstanding_xid7, grp->outstanding_xid7_p2);
1962 grp->outstanding_xid2--;
1963 grp->outstanding_xid7++;
1964 grp->outstanding_xid7_p2++;
1968 switch (fsm_getstate(grp->fsm)) {
1970 fsm_newstate(grp->fsm, MPCG_STATE_XID2INITX);
1974 fsm_newstate(grp->fsm, MPCG_STATE_XID0IOWAIX);
1978 if (grp->outstanding_xid2 == 0) {
1979 fsm_newstate(grp->fsm, MPCG_STATE_XID7INITW);
1981 fsm_event(grp->fsm, MPCG_EVENT_XID2DONE, dev);
1985 if (grp->outstanding_xid2 == 0) {
1986 fsm_newstate(grp->fsm, MPCG_STATE_XID7INITI);
1988 fsm_event(grp->fsm, MPCG_EVENT_XID2DONE, dev);
1994 __func__, ch->id, grp->outstanding_xid2,
1995 grp->outstanding_xid7, grp->outstanding_xid7_p2);
1998 fsm_getstate_str(grp->fsm), fsm_getstate_str(ch->fsm));
2014 struct mpc_group *grp = priv->mpcg;
2019 __func__, grp->outstanding_xid7, grp->outstanding_xid7_p2);
2021 grp->outstanding_xid7--;
2026 switch (fsm_getstate(grp->fsm)) {
2028 fsm_newstate(grp->fsm, MPCG_STATE_XID7INITZ);
2032 fsm_newstate(grp->fsm, MPCG_STATE_XID7INITX);
2037 if (grp->outstanding_xid7 == 0) {
2038 if (grp->outstanding_xid7_p2 > 0) {
2039 grp->outstanding_xid7 =
2040 grp->outstanding_xid7_p2;
2041 grp->outstanding_xid7_p2 = 0;
2043 fsm_newstate(grp->fsm, MPCG_STATE_XID7INITF);
2046 fsm_event(grp->fsm, MPCG_EVENT_XID7DONE, dev);
2065 struct mpc_group *grp = priv->mpcg;
2068 __func__, mpcg_state_names[grp->saved_state]);
2070 switch (grp->saved_state) {
2083 if (grp->estconnfunc) {
2084 grp->estconnfunc(grp->port_num, -1, 0);
2085 grp->estconnfunc = NULL;
2091 grp->send_qllc_disc = 2;