Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp3815555imm; Tue, 29 May 2018 14:22:26 -0700 (PDT) X-Google-Smtp-Source: ADUXVKIx59xP6VxVvbuL1BdGvVWl4i9c76qDQj4wUqaoAPiPHKnGG7Ayc4aVJMfvXNXktiALAd9b X-Received: by 2002:a63:ae43:: with SMTP id e3-v6mr51089pgp.181.1527628946936; Tue, 29 May 2018 14:22:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527628946; cv=none; d=google.com; s=arc-20160816; b=wgxtXqkQOkxj3ow4jqklcqanvrRHFeUoYXQDh1V8EnXKMk7eTQo7HZ4BWlRICTJ6Ne 9WdcXahUvDCDV3/vm/iLkGgUyiHaetTtGgSMWUVPEPh93RRGt6CyHcDjhlmcETLUZTGT yoWOKvV8I8Qw4aYrn9nhLU89Dd58/KSj6MtbBRCvmQJuXIcw8ZDPCYebCfzpnG/E99ox u2N3mEeY0ftce4k1cPSwdfg0Tj97RxdVuTuQUp3vHqwBJN5DXpVVXVAfs0+U24kPOCgs qq0rSxZuiIlW9s4NpBdJBR47WSv9st3/2MBITx3w2looTYp9kOpzihIWwqSl7ynT/u9B V/BQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=Jcj0kj/ntKgKoUsIc+SSAF6OIbjKHczDe/mN2g0IbqM=; b=Xp0QvvNu5Ryj7YMoIp7pWktFY/UAXplWoTuW3Z9ZEBwKzJi+MOUgra6Zlfc8skdWBn hlhWiFGhOOYSm+S8fcdSzZOat/nfLiq5NH7ESiQgDmQ4nyC0zF4A4d4psmIW3oLuPQxt TjLnPP58buYvhtAcHq2dBTtWDSH20SxR4tj8FYi3o8fos9ni/214gvZ3nUXHZ+7ndoet qvyqqJ6VdqYFxfh8ekG8uhhNMCHNOlkIt5Ibonv4SiFQaKIYeaxqGVN7+dxmICIsUPr/ VOCI9mgYayvwLDQx2br3PMiDkMKoFqrsjGwJwG2q6ETpZ4gyFznF9ytjoqls+xo+79da QmFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=NLcpgAFh; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a92-v6si33838780pla.291.2018.05.29.14.22.12; Tue, 29 May 2018 14:22:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=NLcpgAFh; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967443AbeE2VVE (ORCPT + 99 others); Tue, 29 May 2018 17:21:04 -0400 Received: from mail-qk0-f193.google.com ([209.85.220.193]:45802 "EHLO mail-qk0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966946AbeE2VU7 (ORCPT ); Tue, 29 May 2018 17:20:59 -0400 Received: by mail-qk0-f193.google.com with SMTP id c198-v6so12730786qkg.12; Tue, 29 May 2018 14:20:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Jcj0kj/ntKgKoUsIc+SSAF6OIbjKHczDe/mN2g0IbqM=; b=NLcpgAFh0Sm+SQXwgjstAjkCo593LoC9lggik4uobY4Ued7wjc21mzRwVdwEnRNyKs 7xme2S36tzKSCzsS36eGyss+b4tzVpoYPNKomWhHQzGGEoh/sshW00T9JtcLCUdPgyg6 ve1JMqky97zqI/5RZW2s7kiQIyZI2lIbyFZBtpeJPQTIqbtUyw3Qi91FYQOr9SZBA1zQ fDdEuDU+uMZdHfUhvaXbjBZb6vix51ElYpTu3fJRdW00YOK6fbcK32g2nXWLfe43KnT4 KWECZsEmfr25Qufi8vaP2TKwp+jfp8Iz3zK1KVDUlwM1Lz2Qnkqd4TEAcnwM0HZpZmSD dJHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Jcj0kj/ntKgKoUsIc+SSAF6OIbjKHczDe/mN2g0IbqM=; b=f5K7qp0PZNIFcbZVR5n3QOG7OT15A+wqhBiUlc5nRW3CVxDU6DZjas6/MHGyRliVZC fveJ0pvuP5mZPZL3P1OzyoWTogy46NBqSNcqbPOysbOrXTJvniuzgwluxTmjawE0dg4d xf8G2Qbg+1gVJa15OoV+B5VXh09KmHWOcNcaJSQWtqJPLeFWJAnLI71YYs9jjqw83sVt iT8//k2BVTrCW+L4tbzy44YnmKFAzmhT72MNfxOYOgcAPVW1KA8YV9iRZg1XU3UEPQpv WzuT2OmEba2JV5JvZMNWYlsLcI8CTNuvsXJwDdjHon7EqbM+mNBWNisrOrg3RlWuIs4m pZvQ== X-Gm-Message-State: APt69E3B0XaPWEF3u6XKMgFAaSka7ytSYcYlsA4/cqPWjSr44vSwYq+k MfiMsUPfm3KOpqMbEIoL13GOnskvqo6U4NVE34A= X-Received: by 2002:a37:ddce:: with SMTP id u75-v6mr71315qku.147.1527628858126; Tue, 29 May 2018 14:20:58 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a0c:9896:0:0:0:0:0 with HTTP; Tue, 29 May 2018 14:20:57 -0700 (PDT) In-Reply-To: References: From: Andy Shevchenko Date: Wed, 30 May 2018 00:20:57 +0300 Message-ID: Subject: Re: [PATCH] PCI: hv: Do not wait forever on a device that has disappeared To: Dexuan Cui Cc: Lorenzo Pieralisi , Bjorn Helgaas , "linux-pci@vger.kernel.org" , KY Srinivasan , Stephen Hemminger , "olaf@aepfle.de" , "apw@canonical.com" , "jasowang@redhat.com" , "linux-kernel@vger.kernel.org" , "driverdev-devel@linuxdriverproject.org" , Haiyang Zhang , "vkuznets@redhat.com" , "marcelo.cerri@canonical.com" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, May 24, 2018 at 12:12 AM, Dexuan Cui wrote: > > Before the guest finishes the device initialization, the device can be > removed anytime by the host, and after that the host won't respond to > the guest's request, so the guest should be prepared to handle this > case. > + while (true) { > + if (hdev->channel->rescind) { > + dev_warn_once(&hdev->device, "The device is gone.\n"); > + return -ENODEV; > + } > + > + if (wait_for_completion_timeout(comp, HZ / 10)) > + break; > + } Infinite loops are usually a red flags. What's wrong with simple: do { ... } while (wait_...(...) == 0); ? > + if (!ret) > + ret = wait_for_response(hdev, &comp); Better to use well established patterns, i.e. if (ret) return ret; > + if (!ret) > + ret = wait_for_response(hdev, &comp_pkt.host_event); Here it looks okay on the first glance, but better to think about it again and refactor. -- With Best Regards, Andy Shevchenko