greybus: gbuf: implement gbuf_kill_gbuf()

Hook up gbuf_kill_gbuf() by implementing yet-another-host-controller
callback and a gbuf-specific pointer to hold the tracking data the hcd
needs in order to be able to abort a transfer.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Reviewed-by: Alex Elder <elder@linaro.org>
diff --git a/drivers/staging/greybus/greybus.h b/drivers/staging/greybus/greybus.h
index f287f3b..8b6ea05 100644
--- a/drivers/staging/greybus/greybus.h
+++ b/drivers/staging/greybus/greybus.h
@@ -134,6 +134,7 @@
 	bool outbound;			/* AP-relative data direction */
 
 	void *context;
+	void *hcd_data;			/* for the HCD to track the gbuf */
 	gbuf_complete_t complete;
 };
 
@@ -169,6 +170,7 @@
 	int (*submit_svc)(struct svc_msg *svc_msg,
 			    struct greybus_host_device *hd);
 	int (*submit_gbuf)(struct gbuf *gbuf, gfp_t gfp_mask);
+	int (*abort_gbuf)(struct gbuf *gbuf);
 };
 
 struct greybus_host_device {