diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 33394b271d0..0430d26cce1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2014-02-19  Tom Tromey  <tromey@redhat.com>
+
+	* target.h (struct target_ops) <to_download_tracepoint>: Add
+	argument.
+	(target_download_tracepoint): Add argument.
+	* target.c (update_current_target): Update.
+	* remote.c (remote_download_tracepoint): Add 'self' argument.
+
 2014-02-19  Tom Tromey  <tromey@redhat.com>
 
 	* target.h (struct target_ops) <to_trace_init>: Add argument.
diff --git a/gdb/remote.c b/gdb/remote.c
index 0e12567c387..7a8fa1b6412 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -10397,7 +10397,7 @@ remote_download_command_source (int num, ULONGEST addr,
 }
 
 static void
-remote_download_tracepoint (struct bp_location *loc)
+remote_download_tracepoint (struct target_ops *self, struct bp_location *loc)
 {
 #define BUF_SIZE 2048
 
diff --git a/gdb/target.c b/gdb/target.c
index b34ef9c4072..2c7a9462e8a 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -852,7 +852,7 @@ update_current_target (void)
 	    (void (*) (struct target_ops *))
 	    tcomplain);
   de_fault (to_download_tracepoint,
-	    (void (*) (struct bp_location *))
+	    (void (*) (struct target_ops *, struct bp_location *))
 	    tcomplain);
   de_fault (to_can_download_tracepoint,
 	    (int (*) (void))
diff --git a/gdb/target.h b/gdb/target.h
index 76d2a8a76c0..b051fb7aa5d 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -759,7 +759,8 @@ struct target_ops
     void (*to_trace_init) (struct target_ops *);
 
     /* Send full details of a tracepoint location to the target.  */
-    void (*to_download_tracepoint) (struct bp_location *location);
+    void (*to_download_tracepoint) (struct target_ops *,
+				    struct bp_location *location);
 
     /* Is the target able to download tracepoint locations in current
        state?  */
@@ -1784,7 +1785,7 @@ extern char *target_fileio_read_stralloc (const char *filename);
   (*current_target.to_trace_init) (&current_target)
 
 #define target_download_tracepoint(t) \
-  (*current_target.to_download_tracepoint) (t)
+  (*current_target.to_download_tracepoint) (&current_target, t)
 
 #define target_can_download_tracepoint() \
   (*current_target.to_can_download_tracepoint) ()