/* initialize internal qc */
qc = __ata_qc_from_tag(ap, ATA_TAG_INTERNAL);
-@@ -5121,6 +5129,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -5124,6 +5132,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
return NULL;
/* libsas case */
if (ap->flags & ATA_FLAG_SAS_HOST) {
tag = ata_sas_allocate_tag(ap);
-@@ -5166,6 +5177,8 @@ void ata_qc_free(struct ata_queued_cmd *
+@@ -5169,6 +5180,8 @@ void ata_qc_free(struct ata_queued_cmd *
qc->tag = ATA_TAG_POISON;
if (ap->flags & ATA_FLAG_SAS_HOST)
ata_sas_free_tag(tag, ap);
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
-@@ -909,6 +909,8 @@ struct ata_port_operations {
- void (*qc_prep)(struct ata_queued_cmd *qc);
+@@ -910,6 +910,8 @@ struct ata_port_operations {
+ enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *qc);
unsigned int (*qc_issue)(struct ata_queued_cmd *qc);
bool (*qc_fill_rtf)(struct ata_queued_cmd *qc);
+ int (*qc_new)(struct ata_port *ap);
/*
* Configuration and exception handling
-@@ -999,6 +1001,9 @@ struct ata_port_operations {
+@@ -1000,6 +1002,9 @@ struct ata_port_operations {
void (*phy_reset)(struct ata_port *ap);
void (*eng_timeout)(struct ata_port *ap);