patch-2.4.0-test3 linux/drivers/ieee1394/ieee1394_core.c
Next file: linux/drivers/ieee1394/ieee1394_core.h
Previous file: linux/drivers/ieee1394/hosts.c
Back to the patch index
Back to the overall index
- Lines: 58
- Date:
Wed Jul 5 13:03:56 2000
- Orig file:
v2.4.0-test2/linux/drivers/ieee1394/ieee1394_core.c
- Orig date:
Fri Jun 23 21:55:09 2000
diff -u --recursive --new-file v2.4.0-test2/linux/drivers/ieee1394/ieee1394_core.c linux/drivers/ieee1394/ieee1394_core.c
@@ -5,6 +5,9 @@
* highlevel or lowlevel code
*
* Copyright (C) 1999, 2000 Andreas E. Bombe
+ *
+ * This code is licensed under the GPL. See the file COPYING in the root
+ * directory of the kernel sources for details.
*/
#include <linux/config.h>
@@ -534,7 +537,7 @@
if (packet == NULL) break
void handle_incoming_packet(struct hpsb_host *host, int tcode, quadlet_t *data,
- size_t size)
+ size_t size, int write_acked)
{
struct hpsb_packet *packet;
int length, rcode, extcode;
@@ -548,7 +551,8 @@
addr = (((u64)(data[1] & 0xffff)) << 32) | data[2];
rcode = highlevel_write(host, source, data+3, addr, 4);
- if (((data[0] >> 16) & NODE_MASK) != NODE_MASK) {
+ if (!write_acked
+ && ((data[0] >> 16) & NODE_MASK) != NODE_MASK) {
/* not a broadcast write, reply */
PREP_REPLY_PACKET(0);
fill_async_write_resp(packet, rcode);
@@ -561,7 +565,8 @@
rcode = highlevel_write(host, source, data+4, addr,
data[3]>>16);
- if (((data[0] >> 16) & NODE_MASK) != NODE_MASK) {
+ if (!write_acked
+ && ((data[0] >> 16) & NODE_MASK) != NODE_MASK) {
/* not a broadcast write, reply */
PREP_REPLY_PACKET(0);
fill_async_write_resp(packet, rcode);
@@ -644,7 +649,8 @@
#undef PREP_REPLY_PACKET
-void hpsb_packet_received(struct hpsb_host *host, quadlet_t *data, size_t size)
+void hpsb_packet_received(struct hpsb_host *host, quadlet_t *data, size_t size,
+ int write_acked)
{
int tcode;
@@ -672,7 +678,7 @@
case TCODE_READQ:
case TCODE_READB:
case TCODE_LOCK_REQUEST:
- handle_incoming_packet(host, tcode, data, size);
+ handle_incoming_packet(host, tcode, data, size, write_acked);
break;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)