Lines Matching refs:grp

332 	struct mpc_group *grp;
339 grp = priv->mpcg;
341 grp->allochanfunc = callback;
342 grp->port_num = port_num;
343 grp->port_persist = 1;
347 CTCM_FUNTAIL, dev->name, fsm_getstate_str(grp->fsm));
349 switch (fsm_getstate(grp->fsm)) {
352 grp->alloc_called = 1;
359 /*fsm_newstate(grp->fsm, MPCG_STATE_XID2INITW);*/
361 grp->send_qllc_disc = 1;
364 fsm_deltimer(&grp->timer);
365 grp->outstanding_xid2 = 0;
366 grp->outstanding_xid7 = 0;
367 grp->outstanding_xid7_p2 = 0;
368 grp->saved_xid2 = NULL;
377 grp->allocchan_callback_retries++;
378 if (grp->allocchan_callback_retries < 4) {
379 if (grp->allochanfunc)
380 grp->allochanfunc(grp->port_num,
381 grp->group_max_buflen);
385 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
386 grp->allocchan_callback_retries = 0;
403 struct mpc_group *grp;
411 grp = priv->mpcg;
417 CTCM_FUNTAIL, dev->name, fsm_getstate_str(grp->fsm));
419 grp->estconnfunc = callback;
420 grp->port_num = port_num;
422 switch (fsm_getstate(grp->fsm)) {
427 fsm_deltimer(&grp->timer);
428 grp->estconn_callback_retries++;
429 if (grp->estconn_callback_retries < 4) {
430 if (grp->estconnfunc) {
431 grp->estconnfunc(grp->port_num, 0,
432 grp->group_max_buflen);
433 grp->estconnfunc = NULL;
437 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
438 grp->estconn_callback_retries = 0;
449 if (grp->estconnfunc) {
450 grp->estconnfunc(grp->port_num, -1, 0);
451 grp->estconnfunc = NULL;
466 grp->send_qllc_disc = 1;
467 fsm_newstate(grp->fsm, MPCG_STATE_XID0IOWAIT);
468 fsm_deltimer(&grp->timer);
469 fsm_addtimer(&grp->timer, MPC_XID_TIMEOUT_VALUE,
471 grp->outstanding_xid7 = 0;
472 grp->outstanding_xid7_p2 = 0;
473 grp->saved_xid2 = NULL;
476 fsm_event(grp->fsm, MPCG_EVENT_XID0DO, rch);
481 if (grp->estconnfunc) {
482 grp->estconnfunc(grp->port_num, -1, 0);
483 grp->estconnfunc = NULL;
485 fsm_deltimer(&grp->timer);
490 fsm_event(grp->fsm, MPCG_EVENT_XID0DO, wch);
495 if (grp->estconnfunc) {
496 grp->estconnfunc(grp->port_num, -1, 0);
497 grp->estconnfunc = NULL;
499 fsm_deltimer(&grp->timer);
523 struct mpc_group *grp;
529 grp = priv->mpcg;
536 grp->channels_terminating = 0;
537 fsm_deltimer(&grp->timer);
538 grp->allochanfunc = NULL;
539 grp->estconnfunc = NULL;
540 grp->port_persist = 0;
541 grp->send_qllc_disc = 0;
542 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
556 struct mpc_group *grp;
565 grp = priv->mpcg;
573 mpcg_state = fsm_getstate(grp->fsm);
579 if (grp->flow_off_called == 1)
580 grp->flow_off_called = 0;
582 fsm_newstate(grp->fsm, MPCG_STATE_FLOWC);
588 fsm_newstate(grp->fsm, MPCG_STATE_READY);
595 grp->flow_off_called = 1;
614 struct mpc_group *grp = priv->mpcg;
620 grp->sweep_rsp_pend_num--;
622 if ((grp->sweep_req_pend_num == 0) &&
623 (grp->sweep_rsp_pend_num == 0)) {
625 grp->in_sweep = 0;
643 struct mpc_group *grp = priv->mpcg;
670 grp->in_sweep = 0;
672 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
685 struct mpc_group *grp = priv->mpcg;
692 if (grp->in_sweep == 0) {
693 grp->in_sweep = 1;
695 grp->sweep_req_pend_num = grp->active_channels[CTCM_READ];
696 grp->sweep_rsp_pend_num = grp->active_channels[CTCM_READ];
701 grp->sweep_req_pend_num--;
819 struct mpc_group *grp = priv->mpcg;
821 if (grp == NULL) {
828 fsm_deltimer(&grp->timer);
830 if (grp->saved_xid2->xid2_flag2 == 0x40) {
832 if (grp->estconnfunc) {
833 grp->estconnfunc(grp->port_num, 1,
834 grp->group_max_buflen);
835 grp->estconnfunc = NULL;
836 } else if (grp->allochanfunc)
837 grp->send_qllc_disc = 1;
839 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
846 grp->port_persist = 1;
847 grp->out_of_sequence = 0;
848 grp->estconn_called = 0;
850 tasklet_hi_schedule(&grp->mpc_tasklet2);
863 struct mpc_group *grp = priv->mpcg;
866 if (grp == NULL) {
875 CTCM_FUNTAIL, dev->name, grp->group_max_buflen);
877 fsm_newstate(grp->fsm, MPCG_STATE_READY);
897 if (grp->estconnfunc) {
898 grp->estconnfunc(grp->port_num, 0,
899 grp->group_max_buflen);
900 grp->estconnfunc = NULL;
901 } else if (grp->allochanfunc) {
902 grp->allochanfunc(grp->port_num, grp->group_max_buflen);
905 grp->send_qllc_disc = 1;
906 grp->changed_side = 0;
920 struct mpc_group *grp = priv->mpcg;
922 if (grp == NULL) {
934 fsm_getstate_str(grp->fsm), grp->num_channel_paths,
935 grp->active_channels[CTCM_READ],
936 grp->active_channels[CTCM_WRITE]);
939 grp->num_channel_paths++;
940 grp->active_channels[direction]++;
941 grp->outstanding_xid2++;
953 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
966 skb_put_data(ch->xid_skb, grp->xid_skb->data,
967 grp->xid_skb->len);
982 if ((grp->active_channels[CTCM_READ] > 0) &&
983 (grp->active_channels[CTCM_WRITE] > 0) &&
984 (fsm_getstate(grp->fsm) < MPCG_STATE_XID2INITW)) {
985 fsm_newstate(grp->fsm, MPCG_STATE_XID2INITW);
993 grp->num_channel_paths--;
994 grp->active_channels[direction]--;
1000 if (grp->channels_terminating)
1003 if (((grp->active_channels[CTCM_READ] == 0) &&
1004 (grp->active_channels[CTCM_WRITE] > 0))
1005 || ((grp->active_channels[CTCM_WRITE] == 0) &&
1006 (grp->active_channels[CTCM_READ] > 0)))
1007 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
1013 fsm_getstate_str(grp->fsm), grp->num_channel_paths,
1014 grp->active_channels[CTCM_READ],
1015 grp->active_channels[CTCM_WRITE]);
1032 struct mpc_group *grp = priv->mpcg;
1063 if ((fsm_getstate(grp->fsm) == MPCG_STATE_FLOWC) ||
1064 ((fsm_getstate(grp->fsm) == MPCG_STATE_READY) &&
1073 grp->out_of_sequence += 1;
1082 grp->out_of_sequence = 0;
1088 if (unlikely(fsm_getstate(grp->fsm) != MPCG_STATE_READY))
1137 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
1187 fsm_event(grp->fsm, MPCG_EVENT_XID2, mpcginfo);
1189 fsm_event(grp->fsm, MPCG_EVENT_DISCONC, mpcginfo);
1208 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
1229 struct mpc_group *grp = priv->mpcg;
1234 while ((fsm_getstate(grp->fsm) != MPCG_STATE_FLOWC) &&
1237 if (grp->out_of_sequence > 20) {
1241 grp->out_of_sequence = 0;
1242 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
1258 struct mpc_group *grp;
1263 grp = kzalloc(sizeof(struct mpc_group), GFP_KERNEL);
1264 if (grp == NULL)
1267 grp->fsm = init_fsm("mpcg", mpcg_state_names, mpcg_event_names,
1270 if (grp->fsm == NULL) {
1271 kfree(grp);
1275 fsm_newstate(grp->fsm, MPCG_STATE_RESET);
1276 fsm_settimer(grp->fsm, &grp->timer);
1278 grp->xid_skb =
1280 if (grp->xid_skb == NULL) {
1281 kfree_fsm(grp->fsm);
1282 kfree(grp);
1286 grp->xid_skb_data = grp->xid_skb->data;
1287 grp->xid_th = (struct th_header *)grp->xid_skb->data;
1288 skb_put_data(grp->xid_skb, &thnorm, TH_HEADER_LENGTH);
1290 grp->xid = (struct xid2 *)skb_tail_pointer(grp->xid_skb);
1291 skb_put_data(grp->xid_skb, &init_xid, XID2_LENGTH);
1292 grp->xid->xid2_adj_id = jiffies | 0xfff00000;
1293 grp->xid->xid2_sender_id = jiffies;
1295 grp->xid_id = skb_tail_pointer(grp->xid_skb);
1296 skb_put_data(grp->xid_skb, "VTAM", 4);
1298 grp->rcvd_xid_skb =
1300 if (grp->rcvd_xid_skb == NULL) {
1301 kfree_fsm(grp->fsm);
1302 dev_kfree_skb(grp->xid_skb);
1303 kfree(grp);
1306 grp->rcvd_xid_data = grp->rcvd_xid_skb->data;
1307 grp->rcvd_xid_th = (struct th_header *)grp->rcvd_xid_skb->data;
1308 skb_put_data(grp->rcvd_xid_skb, &thnorm, TH_HEADER_LENGTH);
1309 grp->saved_xid2 = NULL;
1310 priv->xid = grp->xid;
1311 priv->mpcg = grp;
1312 return grp;
1341 struct mpc_group *grp;
1347 grp = priv->mpcg;
1348 grp->flow_off_called = 0;
1349 fsm_deltimer(&grp->timer);
1350 if (grp->channels_terminating)
1353 grp->channels_terminating = 1;
1354 grp->saved_state = fsm_getstate(grp->fsm);
1355 fsm_newstate(grp->fsm, MPCG_STATE_INOP);
1356 if (grp->saved_state > MPCG_STATE_XID7INITF)
1360 if ((grp->saved_state != MPCG_STATE_RESET) ||
1362 (grp->port_persist == 0))
1367 switch (grp->saved_state) {
1386 grp->xid2_tgnum = 0;
1387 grp->group_max_buflen = 0; /*min of all received */
1388 grp->outstanding_xid2 = 0;
1389 grp->outstanding_xid7 = 0;
1390 grp->outstanding_xid7_p2 = 0;
1391 grp->saved_xid2 = NULL;
1392 grp->xidnogood = 0;
1393 grp->changed_side = 0;
1395 grp->rcvd_xid_skb->data = grp->rcvd_xid_data;
1396 skb_reset_tail_pointer(grp->rcvd_xid_skb);
1397 grp->rcvd_xid_skb->len = 0;
1398 grp->rcvd_xid_th = (struct th_header *)grp->rcvd_xid_skb->data;
1399 skb_put_data(grp->rcvd_xid_skb, &thnorm, TH_HEADER_LENGTH);
1401 if (grp->send_qllc_disc == 1) {
1402 grp->send_qllc_disc = 0;
1411 if ((grp->port_persist == 1) || (grp->alloc_called)) {
1412 grp->alloc_called = 0;
1415 fsm_newstate(grp->fsm, MPCG_STATE_RESET);
1416 if (grp->saved_state > MPCG_STATE_XID7INITF)
1423 fsm_newstate(grp->fsm, MPCG_STATE_RESET);
1443 struct mpc_group *grp;
1448 grp = priv->mpcg;
1452 switch (fsm_getstate(grp->fsm)) {
1462 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
1481 struct mpc_group *grp;
1491 grp = priv->mpcg;
1492 grp->send_qllc_disc = 1;
1493 fsm_event(grp->fsm, MPCG_EVENT_INOP, dev);
1534 struct mpc_group *grp = priv->mpcg;
1567 grp->group_max_buflen, xid->xid2_buf_len);
1569 if (grp->group_max_buflen == 0 || grp->group_max_buflen >
1571 grp->group_max_buflen = xid->xid2_buf_len - len;
1574 if (grp->saved_xid2 == NULL) {
1575 grp->saved_xid2 =
1576 (struct xid2 *)skb_tail_pointer(grp->rcvd_xid_skb);
1578 skb_put_data(grp->rcvd_xid_skb, xid, XID2_LENGTH);
1579 grp->rcvd_xid_skb->data = grp->rcvd_xid_data;
1581 skb_reset_tail_pointer(grp->rcvd_xid_skb);
1582 grp->rcvd_xid_skb->len = 0;
1593 grp->roll = XSIDE;
1598 grp->roll = YSIDE;
1605 if (xid->xid2_flag4 != grp->saved_xid2->xid2_flag4) {
1619 if (xid->xid2_adj_id != grp->saved_xid2->xid2_adj_id) {
1626 if (xid->xid2_sender_id != grp->saved_xid2->xid2_sender_id) {
1640 grp->saved_xid2->xid2_flag2 = 0x40;
1830 struct mpc_group *grp = priv->mpcg;
1846 switch (fsm_getstate(grp->fsm)) {
1857 fsm_event(grp->fsm, MPCG_EVENT_DOIO, ch);
1870 struct mpc_group *grp = NULL;
1875 grp = priv->mpcg;
1876 if (grp == NULL)
1889 if (grp->outstanding_xid7_p2 > 0) {
1890 if (grp->roll == YSIDE) {
1907 if (grp->roll == YSIDE) {
1925 fsm_event(grp->fsm, MPCG_EVENT_DOIO, ch);
1942 struct mpc_group *grp = priv->mpcg;
1945 __func__, ch->id, grp->outstanding_xid2,
1946 grp->outstanding_xid7, grp->outstanding_xid7_p2);
1951 grp->outstanding_xid2--;
1952 grp->outstanding_xid7++;
1953 grp->outstanding_xid7_p2++;
1957 switch (fsm_getstate(grp->fsm)) {
1959 fsm_newstate(grp->fsm, MPCG_STATE_XID2INITX);
1963 fsm_newstate(grp->fsm, MPCG_STATE_XID0IOWAIX);
1967 if (grp->outstanding_xid2 == 0) {
1968 fsm_newstate(grp->fsm, MPCG_STATE_XID7INITW);
1970 fsm_event(grp->fsm, MPCG_EVENT_XID2DONE, dev);
1974 if (grp->outstanding_xid2 == 0) {
1975 fsm_newstate(grp->fsm, MPCG_STATE_XID7INITI);
1977 fsm_event(grp->fsm, MPCG_EVENT_XID2DONE, dev);
1983 __func__, ch->id, grp->outstanding_xid2,
1984 grp->outstanding_xid7, grp->outstanding_xid7_p2);
1987 fsm_getstate_str(grp->fsm), fsm_getstate_str(ch->fsm));
2003 struct mpc_group *grp = priv->mpcg;
2008 __func__, grp->outstanding_xid7, grp->outstanding_xid7_p2);
2010 grp->outstanding_xid7--;
2015 switch (fsm_getstate(grp->fsm)) {
2017 fsm_newstate(grp->fsm, MPCG_STATE_XID7INITZ);
2021 fsm_newstate(grp->fsm, MPCG_STATE_XID7INITX);
2026 if (grp->outstanding_xid7 == 0) {
2027 if (grp->outstanding_xid7_p2 > 0) {
2028 grp->outstanding_xid7 =
2029 grp->outstanding_xid7_p2;
2030 grp->outstanding_xid7_p2 = 0;
2032 fsm_newstate(grp->fsm, MPCG_STATE_XID7INITF);
2035 fsm_event(grp->fsm, MPCG_EVENT_XID7DONE, dev);
2053 struct mpc_group *grp = priv->mpcg;
2056 __func__, mpcg_state_names[grp->saved_state]);
2058 switch (grp->saved_state) {
2071 if (grp->estconnfunc) {
2072 grp->estconnfunc(grp->port_num, -1, 0);
2073 grp->estconnfunc = NULL;
2079 grp->send_qllc_disc = 2;