• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/firewire/

Lines Matching refs:ptask

207 	 * ptask can actually be on dev->packet_list, dev->broadcasted_list,
893 static void fwnet_free_ptask(struct fwnet_packet_task *ptask)
895 dev_kfree_skb_any(ptask->skb);
896 kmem_cache_free(fwnet_packet_task_cache, ptask);
899 static int fwnet_send_packet(struct fwnet_packet_task *ptask);
901 static void fwnet_transmit_packet_done(struct fwnet_packet_task *ptask)
903 struct fwnet_device *dev = ptask->dev;
909 ptask->outstanding_pkts--;
912 free = (ptask->outstanding_pkts == 0 && !list_empty(&ptask->pt_link));
914 if (ptask->outstanding_pkts == 0)
915 list_del(&ptask->pt_link);
919 if (ptask->outstanding_pkts > 0) {
926 /* Update the ptask to point to the next fragment and send it */
927 lf = fwnet_get_hdr_lf(&ptask->hdr);
933 ptask->outstanding_pkts, lf, ptask->hdr.w0,
934 ptask->hdr.w1);
939 dg_size = fwnet_get_hdr_dg_size(&ptask->hdr);
940 fg_off = ptask->max_payload - RFC2374_FRAG_HDR_SIZE;
941 datagram_label = fwnet_get_hdr_dgl(&ptask->hdr);
945 dg_size = fwnet_get_hdr_dg_size(&ptask->hdr);
946 fg_off = fwnet_get_hdr_fg_off(&ptask->hdr)
947 + ptask->max_payload - RFC2374_FRAG_HDR_SIZE;
948 datagram_label = fwnet_get_hdr_dgl(&ptask->hdr);
951 skb = ptask->skb;
952 skb_pull(skb, ptask->max_payload);
953 if (ptask->outstanding_pkts > 1) {
954 fwnet_make_sf_hdr(&ptask->hdr, RFC2374_HDR_INTFRAG,
957 fwnet_make_sf_hdr(&ptask->hdr, RFC2374_HDR_LASTFRAG,
959 ptask->max_payload = skb->len + RFC2374_FRAG_HDR_SIZE;
961 fwnet_send_packet(ptask);
965 fwnet_free_ptask(ptask);
971 struct fwnet_packet_task *ptask;
973 ptask = data;
976 fwnet_transmit_packet_done(ptask);
982 static int fwnet_send_packet(struct fwnet_packet_task *ptask)
990 dev = ptask->dev;
991 tx_len = ptask->max_payload;
992 switch (fwnet_get_hdr_lf(&ptask->hdr)) {
995 skb_push(ptask->skb, RFC2374_UNFRAG_HDR_SIZE);
996 put_unaligned_be32(ptask->hdr.w0, &bufhdr->w0);
1003 skb_push(ptask->skb, RFC2374_FRAG_HDR_SIZE);
1004 put_unaligned_be32(ptask->hdr.w0, &bufhdr->w0);
1005 put_unaligned_be32(ptask->hdr.w1, &bufhdr->w1);
1011 if (ptask->dest_node == IEEE1394_ALL_NODES) {
1016 /* ptask->generation may not have been set yet */
1021 p = skb_push(ptask->skb, 8);
1027 fw_send_request(dev->card, &ptask->transaction,
1031 generation, SCODE_100, 0ULL, ptask->skb->data,
1032 tx_len + 8, fwnet_write_complete, ptask);
1037 free = (ptask->outstanding_pkts == 0 && list_empty(&ptask->pt_link));
1039 list_add_tail(&ptask->pt_link, &dev->broadcasted_list);
1046 fw_send_request(dev->card, &ptask->transaction,
1047 TCODE_WRITE_BLOCK_REQUEST, ptask->dest_node,
1048 ptask->generation, ptask->speed, ptask->fifo_addr,
1049 ptask->skb->data, tx_len, fwnet_write_complete, ptask);
1054 free = (ptask->outstanding_pkts == 0 && list_empty(&ptask->pt_link));
1056 list_add_tail(&ptask->pt_link, &dev->sent_list);
1063 fwnet_free_ptask(ptask);
1217 struct fwnet_packet_task *ptask;
1221 ptask = kmem_cache_alloc(fwnet_packet_task_cache, GFP_ATOMIC);
1222 if (ptask == NULL)
1253 ptask->fifo_addr = FWNET_NO_FIFO_ADDR;
1254 ptask->generation = 0;
1255 ptask->dest_node = IEEE1394_ALL_NODES;
1256 ptask->speed = SCODE_100;
1270 ptask->fifo_addr = peer->fifo;
1271 ptask->generation = generation;
1272 ptask->dest_node = dest_node;
1273 ptask->speed = peer->speed;
1296 ptask->hdr.w0 = 0;
1297 ptask->hdr.w1 = 0;
1298 ptask->skb = skb;
1299 ptask->dev = dev;
1303 fwnet_make_uf_hdr(&ptask->hdr, ntohs(proto));
1304 ptask->outstanding_pkts = 1;
1311 fwnet_make_ff_hdr(&ptask->hdr, ntohs(proto), dg_size,
1313 ptask->outstanding_pkts = DIV_ROUND_UP(dg_size, max_payload);
1319 ptask->max_payload = max_payload;
1320 INIT_LIST_HEAD(&ptask->pt_link);
1322 fwnet_send_packet(ptask);
1329 if (ptask)
1330 kmem_cache_free(fwnet_packet_task_cache, ptask);
1524 struct fwnet_packet_task *ptask, *pt_next;
1542 list_for_each_entry_safe(ptask, pt_next,
1544 dev_kfree_skb_any(ptask->skb);
1545 kmem_cache_free(fwnet_packet_task_cache, ptask);
1547 list_for_each_entry_safe(ptask, pt_next,
1549 dev_kfree_skb_any(ptask->skb);
1550 kmem_cache_free(fwnet_packet_task_cache, ptask);
1552 list_for_each_entry_safe(ptask, pt_next,
1554 dev_kfree_skb_any(ptask->skb);
1555 kmem_cache_free(fwnet_packet_task_cache, ptask);