From patchwork Tue Jun 19 16:12:48 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jens Axboe X-Patchwork-Id: 931714 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernel-dk.20150623.gappssmtp.com header.i=@kernel-dk.20150623.gappssmtp.com header.b="UwmfKUtT"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 419Cg10BdMz9s3R for ; Wed, 20 Jun 2018 02:13:01 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966865AbeFSQM7 (ORCPT ); Tue, 19 Jun 2018 12:12:59 -0400 Received: from mail-it0-f68.google.com ([209.85.214.68]:40936 "EHLO mail-it0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966870AbeFSQM5 (ORCPT ); Tue, 19 Jun 2018 12:12:57 -0400 Received: by mail-it0-f68.google.com with SMTP id 188-v6so1167859ita.5 for ; Tue, 19 Jun 2018 09:12:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=24Vx3K292v1NOrQSZBPbk5j38rWo24Uaoi1vxhe7cf4=; b=UwmfKUtTti/OkplvI5Ewjf8YuC/Ew9mmNRMk6ny47Zvqv4z8moqrTar1USdWPR8KGo HOehbq7Pvs9sUYV+qvRIhGor1hS7yd2cDWUGYGX1M81pfBrSBjiuamxDZyhD4pQjNs9a +kXEFRj9njejhV8y33UbQVWykU1Tz4ujSG5YbvfScHsZ0oUNyTyRot7qND+dKraoS81w sDXzW2P47hF+WwDyhqvPmAqaba6dcX3izQuuCc0gcXejVK+TNkpVZKNyy1X7hOKugLi0 YPfE6lgowNoWCT0Ytybd1RT0876d8sb/oznw0Sr4armB7a2SOipeJpZLOUq1xSzWrimr Khiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=24Vx3K292v1NOrQSZBPbk5j38rWo24Uaoi1vxhe7cf4=; b=q/+R3Kqi7WJmHlsB2QqrujIWoSuNQjkntQ2JNgMXG90PM3UZpN54AsXtpYb91dNfhQ +rlnvTQ2zRB8bpXybRcDDTepChf2Cy35IcD7OD90KSNHG+SBUe/BfV3w/bcR1S+BZyoF 7QZvAxrE40NzRkBIYQU9JPRF3D2rEpPax4lfW8jhBfp1mt76AevBCcpuZ4Kb0Sou1uE3 7Vbdj+uCLQDsD0fxKbzPe54g3qqb3jNyCtRU+jOG3g9296mQYONsZwLoTn/0sGsIIzm1 6Fp+oBGL7wDX7tywxzBN57bfyLOV9ojzK2MtNj717gpIHE4n93l9fayk6VXNsAexPQwH ThoQ== X-Gm-Message-State: APt69E0jPPklMYx+MjCJoB7gCsmhpHAeXd9thxkvLUOadtSVxpzeXSYl 5XkWCw4N1ypj46dn4Iiby2AAXl9cqbc= X-Google-Smtp-Source: ADUXVKLD1aQxPe2ZHvAD47lvGgK86vK8CID2fKL0wRICix3rm6/mWKdm4rhTbM+AhAFVoTN5yH71IA== X-Received: by 2002:a24:ac1a:: with SMTP id s26-v6mr13189072ite.24.1529424776538; Tue, 19 Jun 2018 09:12:56 -0700 (PDT) Received: from x1.thefacebook.com ([216.160.245.98]) by smtp.gmail.com with ESMTPSA id y36-v6sm241432ita.4.2018.06.19.09.12.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Jun 2018 09:12:55 -0700 (PDT) From: Jens Axboe To: linux-ide@vger.kernel.org Cc: tj@kernel.org, mpe@ellerman.id.au, Jens Axboe Subject: [PATCH 1/4] libata: add command iterator helpers Date: Tue, 19 Jun 2018 10:12:48 -0600 Message-Id: <20180619161251.31613-2-axboe@kernel.dk> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180619161251.31613-1-axboe@kernel.dk> References: <20180619161251.31613-1-axboe@kernel.dk> Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Now that we have the internal tag as a special (higher) value tag, it gets a bit tricky to iterate the internal commands as some loops will exceed ATA_MAX_QUEUE. Add explicit helpers for iterating pending commands, both inflight and internal. Signed-off-by: Jens Axboe --- include/linux/libata.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/linux/libata.h b/include/linux/libata.h index 8b8946dd63b9..a2257e380789 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h @@ -1495,6 +1495,29 @@ static inline bool ata_tag_valid(unsigned int tag) return tag < ATA_MAX_QUEUE || ata_tag_internal(tag); } +#define __ata_qc_for_each(ap, qc, tag, max_tag, fn) \ + for ((tag) = 0; (tag) < (max_tag) && \ + ({ qc = fn((ap), (tag)); 1; }); (tag)++) \ + +/* + * Internal use only, iterate commands ignoring error handling and + * status of 'qc'. + */ +#define ata_qc_for_each_raw(ap, qc, tag) \ + __ata_qc_for_each(ap, qc, tag, ATA_MAX_QUEUE, __ata_qc_from_tag) + +/* + * Iterate all potential commands that can be queued + */ +#define ata_qc_for_each(ap, qc, tag) \ + __ata_qc_for_each(ap, qc, tag, ATA_MAX_QUEUE, ata_qc_from_tag) + +/* + * Like ata_qc_for_each, but with the internal tag included + */ +#define ata_qc_for_each_with_internal(ap, qc, tag) \ + __ata_qc_for_each(ap, qc, tag, ATA_MAX_QUEUE + 1, ata_qc_from_tag) + /* * device helpers */ From patchwork Tue Jun 19 16:12:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jens Axboe X-Patchwork-Id: 931715 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernel-dk.20150623.gappssmtp.com header.i=@kernel-dk.20150623.gappssmtp.com header.b="FIzkIMAB"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 419Cg250X8z9s3R for ; Wed, 20 Jun 2018 02:13:02 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966879AbeFSQNB (ORCPT ); Tue, 19 Jun 2018 12:13:01 -0400 Received: from mail-it0-f67.google.com ([209.85.214.67]:40939 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966800AbeFSQM7 (ORCPT ); Tue, 19 Jun 2018 12:12:59 -0400 Received: by mail-it0-f67.google.com with SMTP id 188-v6so1167995ita.5 for ; Tue, 19 Jun 2018 09:12:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=aKxZ7m4ydrHmlijeKQbf3E9rkjWwMey362bfBhko8hw=; b=FIzkIMAB2RAjifloxsP4pfvN6Kbfbk81PS2DFDhNior26FbS3A8nkhY2kLcsOJwUsv Wj0Io0yFs5f0OvZ3k4EdfQ6/AbtW5o3FvC+8uNEmv90nynTo+vmCAWxPH+gbOaW64U3a IkA9ivobja/FGDKsYHQU2m0tRkhbpEAcyscp1oaBHCsx4ARaHMYKCXutS/73igMTGsnp txBei3ioh2km3LZO68aK9wVIQs/mnvRb8HDHvSnFqnwvDzIUHnZU00zWLpi7RDb3/3G2 Obeij9RgpPb5puFwT3VvnwyS4QAUtdkRO3EjC5i8Ap3UIvHlJ7H5nHs+H6lKPRWNsKy2 0TjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=aKxZ7m4ydrHmlijeKQbf3E9rkjWwMey362bfBhko8hw=; b=jiXNR7tRelPoJIkyPuLJ7KSsmf/4CYbEMV0zR48Oc2f8UkdMH7hTcz/2wceoO3u1TC AefsZJSJ/Ijxii44gsOgX5V2j9HiNVsu6co965zZAshAcrFahI9wPadOw3+K3yMjc9yQ cNde8hbghG9pC3FW8OEQ2ox4/kg6gN465FUD7k1b0Ex4FU0bdxgPLhQ78Q6LVfDiaHVH KwC9c7/zyqql9Mb/+vvWS/HGOtvm/IOkOm2MnqWMaMmm9ph3xcNwqdh87gB0Fty4I3xC clybe2OGMsgdvQBMVPFLbPOELSbULFBy84baL+YdkWdZBp/M5qYotb6yeEBTINeANXJ0 oaNg== X-Gm-Message-State: APt69E2SDOmPKz7jhvPpRrQkftFebCWDJVOeR2I87s4scVbHSZoYICzU PIFREfky+5yxkZQ7MA+l4QVtK9Kbzzw= X-Google-Smtp-Source: ADUXVKJ/Lkq6SZLwKgVEDsSvc0UigkUNgaxbwcKd0mYy7iK7VKCsb54u9aCSn8+W2a9gTLx5ustGqA== X-Received: by 2002:a24:5e82:: with SMTP id h124-v6mr13526967itb.80.1529424778152; Tue, 19 Jun 2018 09:12:58 -0700 (PDT) Received: from x1.thefacebook.com ([216.160.245.98]) by smtp.gmail.com with ESMTPSA id y36-v6sm241432ita.4.2018.06.19.09.12.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Jun 2018 09:12:57 -0700 (PDT) From: Jens Axboe To: linux-ide@vger.kernel.org Cc: tj@kernel.org, mpe@ellerman.id.au, Jens Axboe Subject: [PATCH 2/4] libata: convert eh to command iterators Date: Tue, 19 Jun 2018 10:12:49 -0600 Message-Id: <20180619161251.31613-3-axboe@kernel.dk> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180619161251.31613-1-axboe@kernel.dk> References: <20180619161251.31613-1-axboe@kernel.dk> Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Signed-off-by: Jens Axboe --- drivers/ata/libata-eh.c | 41 ++++++++++++++++------------------------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index d5412145d76d..01306c018398 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c @@ -614,8 +614,7 @@ void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *ap, list_for_each_entry_safe(scmd, tmp, eh_work_q, eh_entry) { struct ata_queued_cmd *qc; - for (i = 0; i < ATA_MAX_QUEUE; i++) { - qc = __ata_qc_from_tag(ap, i); + ata_qc_for_each_raw(ap, qc, i) { if (qc->flags & ATA_QCFLAG_ACTIVE && qc->scsicmd == scmd) break; @@ -818,14 +817,13 @@ EXPORT_SYMBOL_GPL(ata_port_wait_eh); static int ata_eh_nr_in_flight(struct ata_port *ap) { + struct ata_queued_cmd *qc; unsigned int tag; int nr = 0; /* count only non-internal commands */ - for (tag = 0; tag < ATA_MAX_QUEUE; tag++) { - if (ata_tag_internal(tag)) - continue; - if (ata_qc_from_tag(ap, tag)) + ata_qc_for_each(ap, qc, tag) { + if (qc) nr++; } @@ -847,13 +845,13 @@ void ata_eh_fastdrain_timerfn(struct timer_list *t) goto out_unlock; if (cnt == ap->fastdrain_cnt) { + struct ata_queued_cmd *qc; unsigned int tag; /* No progress during the last interval, tag all * in-flight qcs as timed out and freeze the port. */ - for (tag = 0; tag < ATA_MAX_QUEUE; tag++) { - struct ata_queued_cmd *qc = ata_qc_from_tag(ap, tag); + ata_qc_for_each(ap, qc, tag) { if (qc) qc->err_mask |= AC_ERR_TIMEOUT; } @@ -999,6 +997,7 @@ void ata_port_schedule_eh(struct ata_port *ap) static int ata_do_link_abort(struct ata_port *ap, struct ata_link *link) { + struct ata_queued_cmd *qc; int tag, nr_aborted = 0; WARN_ON(!ap->ops->error_handler); @@ -1007,9 +1006,7 @@ static int ata_do_link_abort(struct ata_port *ap, struct ata_link *link) ata_eh_set_pending(ap, 0); /* include internal tag in iteration */ - for (tag = 0; tag <= ATA_MAX_QUEUE; tag++) { - struct ata_queued_cmd *qc = ata_qc_from_tag(ap, tag); - + ata_qc_for_each_with_internal(ap, qc, tag) { if (qc && (!link || qc->dev->link == link)) { qc->flags |= ATA_QCFLAG_FAILED; ata_qc_complete(qc); @@ -1712,9 +1709,7 @@ void ata_eh_analyze_ncq_error(struct ata_link *link) return; /* has LLDD analyzed already? */ - for (tag = 0; tag < ATA_MAX_QUEUE; tag++) { - qc = __ata_qc_from_tag(ap, tag); - + ata_qc_for_each_raw(ap, qc, tag) { if (!(qc->flags & ATA_QCFLAG_FAILED)) continue; @@ -2136,6 +2131,7 @@ static void ata_eh_link_autopsy(struct ata_link *link) { struct ata_port *ap = link->ap; struct ata_eh_context *ehc = &link->eh_context; + struct ata_queued_cmd *qc; struct ata_device *dev; unsigned int all_err_mask = 0, eflags = 0; int tag, nr_failed = 0, nr_quiet = 0; @@ -2168,9 +2164,7 @@ static void ata_eh_link_autopsy(struct ata_link *link) all_err_mask |= ehc->i.err_mask; - for (tag = 0; tag < ATA_MAX_QUEUE; tag++) { - struct ata_queued_cmd *qc = __ata_qc_from_tag(ap, tag); - + ata_qc_for_each_raw(ap, qc, tag) { if (!(qc->flags & ATA_QCFLAG_FAILED) || ata_dev_phys_link(qc->dev) != link) continue; @@ -2436,6 +2430,7 @@ static void ata_eh_link_report(struct ata_link *link) { struct ata_port *ap = link->ap; struct ata_eh_context *ehc = &link->eh_context; + struct ata_queued_cmd *qc; const char *frozen, *desc; char tries_buf[6] = ""; int tag, nr_failed = 0; @@ -2447,9 +2442,7 @@ static void ata_eh_link_report(struct ata_link *link) if (ehc->i.desc[0] != '\0') desc = ehc->i.desc; - for (tag = 0; tag < ATA_MAX_QUEUE; tag++) { - struct ata_queued_cmd *qc = __ata_qc_from_tag(ap, tag); - + ata_qc_for_each_raw(ap, qc, tag) { if (!(qc->flags & ATA_QCFLAG_FAILED) || ata_dev_phys_link(qc->dev) != link || ((qc->flags & ATA_QCFLAG_QUIET) && @@ -2511,8 +2504,7 @@ static void ata_eh_link_report(struct ata_link *link) ehc->i.serror & SERR_DEV_XCHG ? "DevExch " : ""); #endif - for (tag = 0; tag < ATA_MAX_QUEUE; tag++) { - struct ata_queued_cmd *qc = __ata_qc_from_tag(ap, tag); + ata_qc_for_each_raw(ap, qc, tag) { struct ata_taskfile *cmd = &qc->tf, *res = &qc->result_tf; char data_buf[20] = ""; char cdb_buf[70] = ""; @@ -3992,12 +3984,11 @@ int ata_eh_recover(struct ata_port *ap, ata_prereset_fn_t prereset, */ void ata_eh_finish(struct ata_port *ap) { + struct ata_queued_cmd *qc; int tag; /* retry or finish qcs */ - for (tag = 0; tag < ATA_MAX_QUEUE; tag++) { - struct ata_queued_cmd *qc = __ata_qc_from_tag(ap, tag); - + ata_qc_for_each_raw(ap, qc, tag) { if (!(qc->flags & ATA_QCFLAG_FAILED)) continue; From patchwork Tue Jun 19 16:12:50 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jens Axboe X-Patchwork-Id: 931716 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernel-dk.20150623.gappssmtp.com header.i=@kernel-dk.20150623.gappssmtp.com header.b="So4JF5dU"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 419Cg53MW3z9s7M for ; Wed, 20 Jun 2018 02:13:05 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966969AbeFSQND (ORCPT ); Tue, 19 Jun 2018 12:13:03 -0400 Received: from mail-it0-f68.google.com ([209.85.214.68]:39596 "EHLO mail-it0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966870AbeFSQNA (ORCPT ); Tue, 19 Jun 2018 12:13:00 -0400 Received: by mail-it0-f68.google.com with SMTP id p185-v6so1179274itp.4 for ; Tue, 19 Jun 2018 09:13:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=eiHaDNwwbGATqzzIrWM+vs1Znl/9O9WRGbf8TRpHJgo=; b=So4JF5dUaMmK4Fgl3phUecqI6wkg1IFLibzWEya202R2atZRjjJg+LeY0Scioqg2ik lcQU0kzuqO4AY+U0ATlYr2RZWF5SfGGWyPDG3xsB5mm7mG1dRrH92av4JjdiNvPh3G0F wddSdu8/VL+WiwlTrGr6taOTVfaT7oLZzoYNfmybOB8dFnKwI8F3kE3apGV2obCLNRFB jKA1RNCs8LWxqwEn2XmZDQDN1CkZM6ajSbDvpkRFCqamg5Yao1aAXvriOtsBZLZYMaJx WAeH4z/I4zwJJoQfc0QGJI3kErulojYI3GzRZabfAnXfg++vNsgwvQ9lQJwC3Zn58P6R ouSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=eiHaDNwwbGATqzzIrWM+vs1Znl/9O9WRGbf8TRpHJgo=; b=ZA6mhX1jqT6gLAgkr27+DRkad0sbeaNSNSiiIxoRhHvjLcApR2Vvy6QN2lLX90fSRG qiALhBS5QX9vx0JUOcvSmc93JPtskDHV610fJ1MgSqYKWDFgcalFpyT+bd/j7ieQxdc6 t5J2SasOPN8F268ic1SFr9uWEFSp2oAEycfEph/c7UUOULJR4zwV7Sq7nrPGLCGFsMv3 y7W4w5AyU27fg25kxR0zA+uJZerA2yTHSy/phmi+7LcUQuuclD7Zti3E89LUlZRZfULR c1Yt7wjIQssPDtbj7qO/fwAtdxEThBanj45ywcLZepvku+T3448eSKXch3SdGOoZbt3Y MWWQ== X-Gm-Message-State: APt69E3iEktyslUypVb0/0ZF6pCj5RLy3jg+iePyztxLi2/FGYg4OPKQ BQCHfiqeq0l/m9VHmDaFw/Xtuau1C6E= X-Google-Smtp-Source: ADUXVKLyfIrAf7AQt2HdstWXS+5Bvur4ByQPe+OMTIQLlOxvo5Y4f4vIp1lKGLUluTUkJadwq0lLgQ== X-Received: by 2002:a24:2e43:: with SMTP id i64-v6mr13541086ita.0.1529424779961; Tue, 19 Jun 2018 09:12:59 -0700 (PDT) Received: from x1.thefacebook.com ([216.160.245.98]) by smtp.gmail.com with ESMTPSA id y36-v6sm241432ita.4.2018.06.19.09.12.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Jun 2018 09:12:58 -0700 (PDT) From: Jens Axboe To: linux-ide@vger.kernel.org Cc: tj@kernel.org, mpe@ellerman.id.au, Jens Axboe Subject: [PATCH 3/4] sata_fsl: convert to command iterator Date: Tue, 19 Jun 2018 10:12:50 -0600 Message-Id: <20180619161251.31613-4-axboe@kernel.dk> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180619161251.31613-1-axboe@kernel.dk> References: <20180619161251.31613-1-axboe@kernel.dk> Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org We need to iterate all commands, including the internal one, for ATAPI error handling. Fixes: 28361c403683 ("libata: add extra internal command") Signed-off-by: Jens Axboe --- drivers/ata/sata_fsl.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c index b8d9cfc60374..bb5ec5f71e73 100644 --- a/drivers/ata/sata_fsl.c +++ b/drivers/ata/sata_fsl.c @@ -1229,8 +1229,7 @@ static void sata_fsl_host_intr(struct ata_port *ap) /* Workaround for data length mismatch errata */ if (unlikely(hstatus & INT_ON_DATA_LENGTH_MISMATCH)) { - for (tag = 0; tag < ATA_MAX_QUEUE; tag++) { - qc = ata_qc_from_tag(ap, tag); + ata_qc_for_each_with_internal(ap, qc, tag) { if (qc && ata_is_atapi(qc->tf.protocol)) { u32 hcontrol; /* Set HControl[27] to clear error registers */ From patchwork Tue Jun 19 16:12:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jens Axboe X-Patchwork-Id: 931717 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernel-dk.20150623.gappssmtp.com header.i=@kernel-dk.20150623.gappssmtp.com header.b="W54ICdR8"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 419Cg75N6Qz9s5c for ; Wed, 20 Jun 2018 02:13:07 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966870AbeFSQNF (ORCPT ); Tue, 19 Jun 2018 12:13:05 -0400 Received: from mail-it0-f67.google.com ([209.85.214.67]:50233 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966800AbeFSQNC (ORCPT ); Tue, 19 Jun 2018 12:13:02 -0400 Received: by mail-it0-f67.google.com with SMTP id u4-v6so1188726itg.0 for ; Tue, 19 Jun 2018 09:13:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=0+v9zRf1ZsJ+3k2j5D+DJIF+hvUGhq0tbYYWMgFvqYk=; b=W54ICdR8YAffSFWFPgjruy/Op9BFgch5uO6ROwlLAm+7Rn3WEWVT2aobIy92k/3PXP 74JNAyUlEff4nTOvPi0PYKhlXXHO9OK6amRJJ/8dLXhEV7td0lfJOKDSo9KCk4pdMo1T kM++IcPYFelix3X8uOL3WcvbejiA7iJHn9Gpha5uvPHvkPtzoRVPFL0Uztv6iRjdRFhY 6Uf0/M2yLXqmh3USaQuUXZDR7Dfc3w2QHV7cDAXrifKfLOBTHQI9TF47JF+kS3wbrms6 WF6DyEd5a6QnRqcmG1GRhBcJ2G+2Ex4Qurd6X4vrM1SNmefroowP75uu1xcZFrfsB/0I 8WcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=0+v9zRf1ZsJ+3k2j5D+DJIF+hvUGhq0tbYYWMgFvqYk=; b=P+vgtHavaYZ7fMBUaj5gKC5ntBUb1KOl7FzxrbiPwEtdJ1Zm5FNbsA/6O01FpZRemg KBIy+g1AfCTaRBbYM0Ru1Z49Ox40AZlqU6rkqso6r6r6/VMZHPUin2ZeL5FRB3JeW2uJ Q7DvKPhnPfvdAW7f1yGpZNs7fE+fyxYYf1xxX7OdcW9LoFQATEcQpPqhvuyI3eErRKJr OXa40/s3FK8Xsla0ysFL2uhjaW0xLdjDr2T+G9sUKGjmnS8t/MwXdbWX7MgZ5RdhrpoJ R9tHeH8cDYaQlJzauPg2aNExlvouWxOTdo9ZK9YoE5fYrv3j8ri0t+Klp+tQfyNM5qG2 KhAg== X-Gm-Message-State: APt69E29tW2R4pGf2bg2HG/rMkNpi7rweNJ0pR5pmqawmWU80u4I6cBG OWX2jemWgeFrZxVJnszj8Ak3ZrujmCM= X-Google-Smtp-Source: ADUXVKLx2cdQO5Ilny5vq73cV/pWkSHEXI6cUF955waGqpFyeciee3BbDFpzF8HDLLXcuiv48N+oIA== X-Received: by 2002:a24:ce86:: with SMTP id v128-v6mr4786436itg.39.1529424781837; Tue, 19 Jun 2018 09:13:01 -0700 (PDT) Received: from x1.thefacebook.com ([216.160.245.98]) by smtp.gmail.com with ESMTPSA id y36-v6sm241432ita.4.2018.06.19.09.13.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Jun 2018 09:13:00 -0700 (PDT) From: Jens Axboe To: linux-ide@vger.kernel.org Cc: tj@kernel.org, mpe@ellerman.id.au, Jens Axboe Subject: [PATCH 4/4] sata_fsl: remove dead code in tag retrieval Date: Tue, 19 Jun 2018 10:12:51 -0600 Message-Id: <20180619161251.31613-5-axboe@kernel.dk> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180619161251.31613-1-axboe@kernel.dk> References: <20180619161251.31613-1-axboe@kernel.dk> Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org We can never pass in the internal tag to this helper, it'll always be the hardware tag. So there's no need to check and do an internal translation of that tag. Signed-off-by: Jens Axboe --- drivers/ata/sata_fsl.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c index bb5ec5f71e73..4dc528bf8e85 100644 --- a/drivers/ata/sata_fsl.c +++ b/drivers/ata/sata_fsl.c @@ -395,12 +395,6 @@ static inline unsigned int sata_fsl_tag(unsigned int tag, { /* We let libATA core do actual (queue) tag allocation */ - /* all non NCQ/queued commands should have tag#0 */ - if (ata_tag_internal(tag)) { - DPRINTK("mapping internal cmds to tag#0\n"); - return 0; - } - if (unlikely(tag >= SATA_FSL_QUEUE_DEPTH)) { DPRINTK("tag %d invalid : out of range\n", tag); return 0;