libata: add ata_sg_is_last() helper, use it in several drivers
diff --git a/include/linux/libata.h b/include/linux/libata.h
index d3f58a7..d3dfefe 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -480,6 +480,18 @@
#endif /* CONFIG_PCI */
+static inline int
+ata_sg_is_last(struct scatterlist *sg, struct ata_queued_cmd *qc)
+{
+ if (sg == &qc->pad_sgent)
+ return 1;
+ if (qc->pad_len)
+ return 0;
+ if (((sg - qc->__sg) + 1) == qc->n_elem)
+ return 1;
+ return 0;
+}
+
static inline struct scatterlist *
ata_qc_next_sg(struct scatterlist *sg, struct ata_queued_cmd *qc)
{