Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vgVMG-00ER6w-2k for pgsql-bugs@arkaria.postgresql.org; Thu, 15 Jan 2026 21:58:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vgVMF-001Pd3-30 for pgsql-bugs@arkaria.postgresql.org; Thu, 15 Jan 2026 21:58:24 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vgVMF-001PbH-1o for pgsql-bugs@lists.postgresql.org; Thu, 15 Jan 2026 21:58:23 +0000 Received: from mail-oi1-x233.google.com ([2607:f8b0:4864:20::233]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vgTwP-000gep-0R for pgsql-bugs@lists.postgresql.org; Thu, 15 Jan 2026 20:27:39 +0000 Received: by mail-oi1-x233.google.com with SMTP id 5614622812f47-45c715116dbso882882b6e.3 for ; Thu, 15 Jan 2026 12:27:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1768508855; cv=none; d=google.com; s=arc-20240605; b=IcNxrp2r0kDakr3rpRzmWM4PPUjZ8W3IET3pyg+6FKjEbHbYp9QJDM08F63Q+B8nSj /JB6PbAV4FlcdvASWFNS5Q5Yd+Xy/fNSIKB5acGS3iB6AQxW8voFbeQ6VBbnaQW92Z7V io6jb53BTqQywVygdjhfs1Z12OwuwnUZ4gfhTWqbhQf7ZpKFlBhtcLZgQ/oPNmomcfuR iMJm5nXg5K7MBdUNfTj/IcXB7TgOiewocUxRP2H39RFmMVvO/l8O4JXpsU6otzKMi90P j6Tu5kucrpfimi8NB/ZEqO8BwApcoP7dNeh5047UlPz5JVALaR1aOXYbKYgEAm8I9CFQ /D4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=mUXAU7WJr2EzHysOiWdHCYr92u7xkmgkJdB5IvFtmXk=; fh=kq3vm47+dQfcQN1d8iRvWXjovvHErB++JbhltLYGnro=; b=WyVOBIvs93J4TRmFauQh6xW6cOf8QTYqf1SFtFModEZcmsYHBOwQV4kYMRHpCSTRWq 9PXIguKKY7B1qi+8L2lbwb8ghnVulCi8nEq3Xw571PBiRJ1XYdHVr7qqI3eNd5TX44Ih cibjLrPd1t8PPJuv9FztR7EOrSdEE17IrGvv6DTjM9+wM2RAAq3cwEQ7pL8tLtaNLQvm HnXHA+Q1uhhFV3JBfxRGlXdEXAepQz0wTB8wX9pae/TBESDIwqKvWwobPb6+Y1TTgt70 vUd54cN1UwXfDFnYgdpgLz1dHUbBf5AlCEcZsVwdTDmFkgzcXu5SpU3DnMgh2Zuq1YB5 rCBg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768508855; x=1769113655; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=mUXAU7WJr2EzHysOiWdHCYr92u7xkmgkJdB5IvFtmXk=; b=fmLsWGeU3t25t5TS6ypufnFmbuFTXJGv8GiNng1/c5FNl4yTCnMqA8gkjHwxfNCZ54 Yu2jfY3jPcmQdXJwGmLIUiM3F/YaTY2yRBO4t+tnK+W8T6DaJCw4R6AX0Gn90IlTvJcq vXcl6AK8IS9RK9JBHSsecqmFfM0dQosDeUgeLPWFpK07pX4u5bPPtHTM27YAto5pIjN6 T4Sqo4mq1PJOq7fM2dOg2Q0tqNS2TEA1W12r8nXQfRmroAQrmsifUrevNUiLFf0iciSP 0ieQVEfXsR2lSy+w2GFcquYcXBOpNKruJmU3nRJuREtyBAvgE2qGNDMSn2bGcoLGGBsn Ombw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768508855; x=1769113655; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=mUXAU7WJr2EzHysOiWdHCYr92u7xkmgkJdB5IvFtmXk=; b=pJtm/P1G4dOEpz0IonqHac8ueE5uFs/63mApzu9dtEXhKGeV23k5nvHHBs8bKHb1Y4 ubmASAdYpvcK8nU3krFWQjOastn0v+WNFg2Gq8yckdezlHlhOV1xJ/M238v2Xq+6cfjD izOipUQgDr9ltGEkONqxYneWA4Ma2FKlCnQNRb2pTKsljnNRjGi3rlHV+HAb5H96btVD 8fSNNSFHn0ojRihbp9g8GepmPeeGNXA5ZwYnp5pqmQ1Vn4mMwn4JbmLKvBI5I8o/p/D8 FZRwAX3Zto26HrteainoVIlqIpc+/5PKl5vMBStT6DQf7i4hYkbQHmvTXb8C4QH/hs5j xk4g== X-Forwarded-Encrypted: i=1; AJvYcCXRYlfqxNLbvpobXLKAMCzsK8N3Zc+35mnuIH1+F6sQVrW9GBs2cdWTW1yzhRzVp4sqpegjBdh9X2vD@lists.postgresql.org X-Gm-Message-State: AOJu0Yx4oJRppfTEzqoaiNz64orND5DuhhetGYzKxZ/wTSKQ79vwDeAZ s0Nw7NJKKfP5quJFAXc0ferbJQ17aQja8qp2QXvg1OAjXt7JPghTDt90+dXvRztHo34PNfUtqZt GEMilG1Qn6n1dkOqceipXCZpLqA+ten8= X-Gm-Gg: AY/fxX7UTdq13wgJfED+TWhyETea694z+bNoRlCbOBSI+IRA4oJYs6JGmr4TlnWTLfP kxUlOmH6BxywJ8UfD77DCazfFGzl8X4MBX3nLxboNnH+KSwmm3bvvqvcy9oDUe8BddOF8aLDG4i TxtT2D/IG6lLJV5nWAreYPbMzzDSlacZHq1dUjlzH5IhLdgYXfrsoq9D5qevnAMP8Pkfz5liFPU KT28B7SsfIRljaRUBdNAFK/fb3yebRtqCAMGdBgG+mmKVsTP8fsRaciKe0ARsEORiBpu074QRE6 9+HOszWKmtSI X-Received: by 2002:a05:6808:2206:b0:45c:7306:5058 with SMTP id 5614622812f47-45c9bf4b8dbmr388169b6e.16.1768508854762; Thu, 15 Jan 2026 12:27:34 -0800 (PST) MIME-Version: 1.0 References: <19369-aa853da20e970a89@postgresql.org> <20ad6102-afed-4821-9136-d0b55b5a45f9@gmail.com> In-Reply-To: From: surya poondla Date: Thu, 15 Jan 2026 12:27:23 -0800 X-Gm-Features: AZwV_QiZHX9Gxr8ZXgxAd-CHZxqYiQLjA2Wna-QIYrnWh24ibwb12oWRrY8baeY Message-ID: Subject: Re: BUG #19369: Not documented that io_uring on kernel versions between 5.1 and below 5.6 does not work To: Laurenz Albe Cc: Andres Freund , Pierre Forstmann , "Si, Evan" , "pgsql-bugs@lists.postgresql.org" Content-Type: multipart/mixed; boundary="0000000000001241120648730e1d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001241120648730e1d Content-Type: multipart/alternative; boundary="0000000000001241100648730e1b" --0000000000001241100648730e1b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable > > Sure Andres, I am working on a patch which emits a useful error message > too. > Hi All, I prepared a patch that implements an early detection of unsupported io_uring operations during PostgreSQL startup, before any I/O is attempted. The patch focuses on 1. Clear error message at startup instead of cryptic EINVAL during queries. 2. Immediate failure with actionable hints (upgrade kernel or use io_method=3Dworker) 3. Prevents PostgreSQL from starting in a broken state Before the patch: 1. PostgreSQL started successfully 2. Connection attempts failed with EINVAL errors After patch: 1. PostgreSQL refuses to start 2. Clear error message that looks like: "FATAL: kernel does not support required io_uring operations" "DETAIL: The kernel supports io_uring but lacks one or more of the required opcodes (IORING_OP_READ, IORING_OP_WRITE, IORING_OP_READV, IORING_OP_WRITEV). This typically occurs on Linux kernels older than 5.6." "HINT: Either upgrade your kernel to version 5.6 or newer, or use io_method=3Dworker" Modified files in the Patch: 1. configure.ac: Added io_uring_opcode_supported to AC_CHECK_FUNCS 2. meson.build: Added corresponding function check for Meson build 3. src/backend/storage/aio/method_io_uring.c: Added is_uring_read_write_unsupported() function, that is integrated into pgaio_uring_init() and reports clear error with details and hints. I tested the patch on Ubuntu server with Linux kernel 5.4.0-216-generic, and when io_uring is enabled I see that postgres doesn=E2=80=99t start (exp= ected behavior). The existing error handling for kernels < 5.1 (ENOSYS) is preserved. Regards, Surya Poondla --0000000000001241100648730e1b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
= Sure Andres, I am working on a patch which emits a useful error message too= .


Hi Al= l,


I pre= pared a patch that implements an early detection of unsupported io_uring op= erations during PostgreSQL startup, before any I/O is attempted. The patch = focuses on

=C2=A0 1. Clear error message= at startup instead of cryptic EINVAL during queries.

=C2=A0 2. Immediate failure w= ith actionable hints (upgrade kernel or use io_method=3Dworker)

=C2=A0 3. Prevents PostgreSQL= from starting in a broken state


Befor= e the patch:

=C2=A0 1. PostgreSQL started = successfully

=C2=A0 2. Connection attempts= failed with EINVAL errors


After= patch:

=C2=A0 1. PostgreSQL refuses = to start

=C2=A0 2. Clear error message= that looks like:

=C2=A0 =C2=A0 "FATAL: ke= rnel does not support required io_uring operations"
=C2=A0 =C2=A0 "DETA= IL:=C2=A0 The kernel sup= ports io_uring but lacks one or more of the required opcodes (IORING_OP_REA= D, IORING_OP_WRITE, IORING_OP_READV, IORING_OP_WRITEV). This typically occu= rs on Linux kernels older than 5.6."

=C2=A0 =C2=A0 "HINT: Eit= her upgrade your kernel to version 5.6 or newer, or

=C2=A0=C2=A0 =C2=A0 use io_me= thod=3Dworker"


<= /p>

Mo= dified files in the Patch:

=C2=A0 1. configure.ac: Added io_uring_opcode_supported to AC_CHECK_= FUNCS

=C2=A0 2. meson.build: Added = corresponding function check for Meson build

=C2=A0 3. src/backend/storage= /aio/method_io_uring.c: Added is_uring_read_write_unsupported() function, t= hat is integrated into pgaio_uring_init() and reports clear error with deta= ils and hints.


I tes= ted the patch on Ubuntu server with Linux kernel=C2=A05.4.0-216-generic, an= d when io_uring is enabled I see that postgres doesn=E2=80=99t start (expec= ted behavior).


The e= xisting error handling for kernels < 5.1 (ENOSYS) is preserved.


Regar= ds,

= Surya Poondla=C2=A0
--0000000000001241100648730e1b-- --0000000000001241120648730e1d Content-Type: application/octet-stream; name="v2-0001-Document-correct-kernel-requirements-for-io_uring.patch" Content-Disposition: attachment; filename="v2-0001-Document-correct-kernel-requirements-for-io_uring.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkfwdybf0 RnJvbSBjNDM0MmY3MTE3ZGYwYzdhYjQyMDE1NWQ4ZTI3MjZhNWYwYThkZDZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzcG9vbmRsYSA8c19wb29uZGxhQGFwcGxlLmNvbT4KRGF0ZTog TW9uLCAxMiBKYW4gMjAyNiAxNToyOTo0OCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjJdIERvY3Vt ZW50IGNvcnJlY3Qga2VybmVsIHJlcXVpcmVtZW50cyBmb3IgaW9fdXJpbmcgQWRkCiBzdGFydHVw LXRpbWUga2VybmVsIHZlcnNpb24gY2hlY2sgZm9yIGlvX3VyaW5nCgpXaGlsZSBpb191cmluZyB3 YXMgaW50cm9kdWNlZCBpbiBMaW51eCA1LjEsIFBvc3RncmVTUUwgcmVxdWlyZXMga2VybmVsCnZl cnNpb24gNS42IG9yIG5ld2VyIGR1ZSB0byB0aGUgaW9fdXJpbmcgb3BlcmF0aW9ucyBpdCByZWxp ZXMgb24uCkVhcmxpZXIga2VybmVscyBtYXkgYXBwZWFyIHRvIHN1cHBvcnQgaW9fdXJpbmcgYnV0 IGNhbiBmYWlsIGF0IHJ1bnRpbWUuCgpVcGRhdGVkIHRoZSBpbnRlcm5hbCBBSU8gZG9jdW1lbnRh dGlvbiBhbmQgdGhlIHNhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUKdG8gc3RhdGUgdGhlIGNvcnJl Y3QgbWluaW11bSBrZXJuZWwgcmVxdWlyZW1lbnQuCi0tLQogY29uZmlndXJlLmFjICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBtZXNvbi5idWlsZCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9haW8v UkVBRE1FLm1kICAgICAgICAgICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC9zdG9yYWdlL2Fpby9t ZXRob2RfaW9fdXJpbmcuYyAgICAgfCAxMDggKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2Vu ZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgIDIgKy0KIDUgZmlsZXMgY2hh bmdlZCwgMTIyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29u ZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDE0NTE5N2U2YmQ2Li5mMDU2OTY2YzI1YiAx MDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMTQxNyw3ICsx NDE3LDcgQEAgZmkKIGlmIHRlc3QgIiR3aXRoX2xpYnVyaW5nIiA9IHllczsgdGhlbgogICBfTElC Uz0iJExJQlMiCiAgIExJQlM9IiRMSUJVUklOR19MSUJTICRMSUJTIgotICBBQ19DSEVDS19GVU5D UyhbaW9fdXJpbmdfcXVldWVfaW5pdF9tZW1dKQorICBBQ19DSEVDS19GVU5DUyhbaW9fdXJpbmdf cXVldWVfaW5pdF9tZW0gaW9fdXJpbmdfb3Bjb2RlX3N1cHBvcnRlZF0pCiAgIExJQlM9IiRfTElC UyIKIGZpCiAKZGlmZiAtLWdpdCBhL21lc29uLmJ1aWxkIGIvbWVzb24uYnVpbGQKaW5kZXggNTU1 Yzk0Nzk2YzYuLmM0YTUyNzFhMThiIDEwMDY0NAotLS0gYS9tZXNvbi5idWlsZAorKysgYi9tZXNv bi5idWlsZApAQCAtMTA0MCw2ICsxMDQwLDExIEBAIGlmIGxpYnVyaW5nLmZvdW5kKCkKICAgICBj ZGF0YS5zZXQoJ0hBVkVfSU9fVVJJTkdfUVVFVUVfSU5JVF9NRU0nLCAxKQogICBlbmRpZgogCisg IGlmIGNjLmhhc19mdW5jdGlvbignaW9fdXJpbmdfb3Bjb2RlX3N1cHBvcnRlZCcsCisgICAgICBk ZXBlbmRlbmNpZXM6IGxpYnVyaW5nLCBhcmdzOiB0ZXN0X2NfYXJncykKKyAgICBjZGF0YS5zZXQo J0hBVkVfSU9fVVJJTkdfT1BDT0RFX1NVUFBPUlRFRCcsIDEpCisgIGVuZGlmCisKIGVuZGlmCiAK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9haW8vUkVBRE1FLm1kIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9haW8vUkVBRE1FLm1kCmluZGV4IDcyYWUzYjM3MzdkLi5jNDBhNmNlMTZj ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9haW8vUkVBRE1FLm1kCisrKyBiL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvYWlvL1JFQURNRS5tZApAQCAtMjU2LDEwICsyNTYsMTYgQEAgc3lu Y2hyb25vdXMgbWFubmVyLgogCiAjIyMjIGlvX3VyaW5nCiAKLWBpb19tZXRob2Q9aW9fdXJpbmdg IGlzIGF2YWlsYWJsZSBvbiBMaW51eCA1LjErLiBJbiBjb250cmFzdCB0byB3b3JrZXIgbW9kZSBp dAorYGlvX21ldGhvZD1pb191cmluZ2AgaXMgYXZhaWxhYmxlIG9uIExpbnV4IDUuNisuIEluIGNv bnRyYXN0IHRvIHdvcmtlciBtb2RlIGl0CiBkaXNwYXRjaGVzIGFsbCBJTyBmcm9tIHdpdGhpbiB0 aGUgcHJvY2VzcywgbG93ZXJpbmcgY29udGV4dCBzd2l0Y2ggcmF0ZSAvCiBsYXRlbmN5LgogCitX aGlsZSBpb191cmluZyB3YXMgaW50cm9kdWNlZCBpbiBMaW51eCBrZXJuZWwgNS4xLCB0aGUgb3Bl cmF0aW9ucyByZXF1aXJlZCBieQorUG9zdGdyZVNRTCAoSU9SSU5HX09QX1JFQUQgYW5kIElPUklO R19PUF9XUklURSBvcGNvZGVzIGZvciBub24tdmVjdG9yZWQgSS9PKQorYXJlIG9ubHkgYXZhaWxh YmxlIHN0YXJ0aW5nIHdpdGggTGludXgga2VybmVsIDUuNi4gQXR0ZW1wdGluZyB0byB1c2UgaW9f dXJpbmcKK29uIGtlcm5lbHMgYmV0d2VlbiA1LjEgYW5kIDUuNSB3aWxsIHJlc3VsdCBpbiBydW50 aW1lIGVycm9ycyAoRUlOVkFMKSB3aGVuCitjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuCisK IAogIyMjIEFJTyBIYW5kbGVzCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYWlv L21ldGhvZF9pb191cmluZy5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9haW8vbWV0aG9kX2lvX3Vy aW5nLmMKaW5kZXggYWY1OGM2MTE4YWMuLjI4NTNjOTJlYjE1IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9zdG9yYWdlL2Fpby9tZXRob2RfaW9fdXJpbmcuYworKysgYi9zcmMvYmFja2VuZC9zdG9y YWdlL2Fpby9tZXRob2RfaW9fdXJpbmcuYwpAQCAtMzAsNiArMzAsNyBAQAogI2lmZGVmIElPTUVU SE9EX0lPX1VSSU5HX0VOQUJMRUQKIAogI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisjaW5jbHVkZSA8 c3lzL3V0c25hbWUuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KIAogI2luY2x1ZGUgPGxpYnVyaW5n Lmg+CkBAIC0yMjUsNiArMjI2LDk2IEBAIHBnYWlvX3VyaW5nX2NoZWNrX2NhcGFiaWxpdGllcyh2 b2lkKQogCXBnYWlvX3VyaW5nX2NhcHMuY2hlY2tlZCA9IHRydWU7CiB9CiAKKy8qCisgKiBDaGVj ayBpZiB0aGUga2VybmVsIHN1cHBvcnRzIHRoZSByZXF1aXJlZCBpb191cmluZyBvcGVyYXRpb25z LgorICoKKyAqIFBvc3RncmVTUUwgcmVxdWlyZXMgZm91ciBpb191cmluZyBvcGNvZGVzOgorICog ICAtIElPUklOR19PUF9SRUFEIGFuZCBJT1JJTkdfT1BfV1JJVEUgKGFkZGVkIGluIGtlcm5lbCA1 LjYpCisgKiAgIC0gSU9SSU5HX09QX1JFQURWIGFuZCBJT1JJTkdfT1BfV1JJVEVWIChhZGRlZCBp biBrZXJuZWwgNS4xKQorICoKKyAqIFdoaWxlIGlvX3VyaW5nIHdhcyBpbnRyb2R1Y2VkIGluIExp bnV4IDUuMSB3aXRoIHZlY3RvcmVkIG9wZXJhdGlvbnMsCisgKiB0aGUgbm9uLXZlY3RvcmVkIFJF QUQvV1JJVEUgb3Bjb2RlcyB3ZXJlbid0IGFkZGVkIHVudGlsIDUuNi4gU2luY2UKKyAqIFBvc3Rn cmVTUUwgdXNlcyBhbGwgZm91ciwgd2UgbmVlZCBrZXJuZWwgNS42Ky4KKyAqCisgKiBSYXRoZXIg dGhhbiBjaGVja2luZyBrZXJuZWwgdmVyc2lvbiAod2hpY2ggaXMgdW5yZWxpYWJsZSBkdWUgdG8g dmVuZG9yCisgKiBiYWNrcG9ydHMpLCB3ZSBwcm9iZSBmb3IgYWN0dWFsIG9wY29kZSBzdXBwb3J0 IHdoZW4gcG9zc2libGUuCisgKgorICogUmV0dXJucyB0cnVlIGlmIGFueSByZXF1aXJlZCBvcGNv ZGUgaXMgTk9UIHN1cHBvcnRlZC4KKyAqLworc3RhdGljIGJvb2wKK2lzX3VyaW5nX3JlYWRfd3Jp dGVfdW5zdXBwb3J0ZWQodm9pZCkKK3sKKwlzdHJ1Y3QgaW9fdXJpbmcgdGVzdF9yaW5nOworCXN0 cnVjdCBpb191cmluZ19wYXJhbXMgcCA9IHswfTsKKwlpbnQJCQlyZXQ7CisJYm9vbAkJdW5zdXBw b3J0ZWQgPSBmYWxzZTsKKworCS8qIENyZWF0ZSBhIHRlbXBvcmFyeSByaW5nIHRvIHByb2JlIGNh cGFiaWxpdGllcyAqLworCXJldCA9IGlvX3VyaW5nX3F1ZXVlX2luaXQoMiwgJnRlc3RfcmluZywg MCk7CisJaWYgKHJldCA8IDApCisJeworCQkvKgorCQkgKiBJZiB3ZSBjYW4ndCBldmVuIGNyZWF0 ZSBhIHJpbmcsIGxldCB0aGUgbm9ybWFsIGluaXRpYWxpemF0aW9uIHBhdGgKKwkJICogaGFuZGxl IHRoZSBlcnJvciB3aXRoIGFwcHJvcHJpYXRlIG1lc3NhZ2VzLgorCQkgKi8KKwkJcmV0dXJuIGZh bHNlOworCX0KKworI2lmZGVmIEhBVkVfSU9fVVJJTkdfT1BDT0RFX1NVUFBPUlRFRAorCS8qCisJ ICogVXNlIGlvX3VyaW5nX29wY29kZV9zdXBwb3J0ZWQoKSBpZiBhdmFpbGFibGUgKGxpYnVyaW5n IDIuMSspLgorCSAqIFRoaXMgZGlyZWN0bHkgcXVlcmllcyB0aGUga2VybmVsIGZvciBvcGNvZGUg c3VwcG9ydC4KKwkgKgorCSAqIFBvc3RncmVTUUwgdXNlcyBib3RoIHNpbmdsZS1idWZmZXIgKFJF QUQvV1JJVEUpIGFuZCB2ZWN0b3JlZAorCSAqIChSRUFEVi9XUklURVYpIG9wZXJhdGlvbnMuIFJF QURWL1dSSVRFViB3ZXJlIGFkZGVkIGluIGtlcm5lbCA1LjEsCisJICogYnV0IFJFQUQvV1JJVEUg d2VyZSBhZGRlZCBpbiBrZXJuZWwgNS42LiBDaGVjayBmb3IgYWxsIGZvdXIgdG8KKwkgKiBlbnN1 cmUgY29tcGxldGUgc3VwcG9ydC4KKwkgKi8KKwlpZiAoIWlvX3VyaW5nX29wY29kZV9zdXBwb3J0 ZWQoJnRlc3RfcmluZywgSU9SSU5HX09QX1JFQUQpIHx8CisJCSFpb191cmluZ19vcGNvZGVfc3Vw cG9ydGVkKCZ0ZXN0X3JpbmcsIElPUklOR19PUF9XUklURSkgfHwKKwkJIWlvX3VyaW5nX29wY29k ZV9zdXBwb3J0ZWQoJnRlc3RfcmluZywgSU9SSU5HX09QX1JFQURWKSB8fAorCQkhaW9fdXJpbmdf b3Bjb2RlX3N1cHBvcnRlZCgmdGVzdF9yaW5nLCBJT1JJTkdfT1BfV1JJVEVWKSkKKwl7CisJCXVu c3VwcG9ydGVkID0gdHJ1ZTsKKwl9CisjZWxzZQorCS8qCisJICogRmFsbGJhY2s6IFRyeSB0byBw cm9iZSBieSBjaGVja2luZyBpZiB3ZSBjYW4gcHJlcGFyZSByZWFkIG9wZXJhdGlvbnMuCisJICog S2VybmVscyB3aXRob3V0IElPUklOR19PUF9SRUFEIHN1cHBvcnQgd2lsbCBmYWlsIGxhdGVyLCBi dXQgYXQgbGVhc3QKKwkgKiB3ZSB0cmllZC4gVGhpcyBpcyBsZXNzIHJlbGlhYmxlIGJ1dCB3b3Jr cyB3aXRoIG9sZGVyIGxpYnVyaW5nLgorCSAqLworCXsKKwkJc3RydWN0IGlvX3VyaW5nX3NxZSAq c3FlOworCisJCXNxZSA9IGlvX3VyaW5nX2dldF9zcWUoJnRlc3RfcmluZyk7CisJCWlmIChzcWUp CisJCXsKKwkJCS8qCisJCQkgKiBQcmVwYXJlIGEgZHVtbXkgcmVhZCBvcGVyYXRpb24uIE9uIGtl cm5lbHMgd2l0aG91dAorCQkJICogSU9SSU5HX09QX1JFQUQgc3VwcG9ydCwgdGhpcyB3aWxsIGJl IGFjY2VwdGVkIGhlcmUgYnV0IGZhaWwKKwkJCSAqIHdpdGggRUlOVkFMIHdoZW4gc3VibWl0dGVk LiBXZSdkIG5lZWQgdG8gYWN0dWFsbHkgc3VibWl0IHRvCisJCQkgKiBkZXRlY3QsIGJ1dCB0aGF0 IHJlcXVpcmVzIGEgdmFsaWQgZmQuIFRoZSB2ZXJzaW9uIGNoZWNrIGlzIGEKKwkJCSAqIHJlYXNv bmFibGUgZmFsbGJhY2suCisJCQkgKi8KKwkJCXN0cnVjdCB1dHNuYW1lIHV0czsKKwkJCWludAkJ CW1ham9yLAorCQkJCQkJbWlub3I7CisKKwkJCWlmICh1bmFtZSgmdXRzKSA9PSAwICYmCisJCQkJ c3NjYW5mKHV0cy5yZWxlYXNlLCAiJWQuJWQiLCAmbWFqb3IsICZtaW5vcikgPT0gMikKKwkJCXsK KwkJCQkvKiBLbm93biBwcm9ibGVtYXRpYyBrZXJuZWwgcmFuZ2UgKi8KKwkJCQlpZiAobWFqb3Ig PT0gNSAmJiBtaW5vciA+PSAxICYmIG1pbm9yIDw9IDUpCisJCQkJCXVuc3VwcG9ydGVkID0gdHJ1 ZTsKKwkJCX0KKwkJfQorCX0KKyNlbmRpZgorCisJaW9fdXJpbmdfcXVldWVfZXhpdCgmdGVzdF9y aW5nKTsKKwlyZXR1cm4gdW5zdXBwb3J0ZWQ7Cit9CisKIC8qCiAgKiBNZW1vcnkgZm9yIGFsbCBQ Z0Fpb1VyaW5nQ29udGV4dCBpbnN0YW5jZXMKICAqLwpAQCAtMjg0LDYgKzM3NSwyMyBAQCBwZ2Fp b191cmluZ19zaG1lbV9pbml0KGJvb2wgZmlyc3RfdGltZSkKIAlzaXplX3QJCXJpbmdfbWVtX3Jl bWFpbiA9IDA7CiAJY2hhcgkgICAqcmluZ19tZW1fbmV4dCA9IDA7CiAKKwkvKgorCSAqIENoZWNr IGlmIHRoZSBrZXJuZWwgc3VwcG9ydHMgdGhlIHJlcXVpcmVkIGlvX3VyaW5nIG9wZXJhdGlvbnMg YmVmb3JlCisJICogYXR0ZW1wdGluZyBmdWxsIGluaXRpYWxpemF0aW9uLiBLZXJuZWxzIHdpdGhv dXQgYWxsIHJlcXVpcmVkIG9wY29kZXMKKwkgKiAoSU9SSU5HX09QX1JFQUQsIFdSSVRFLCBSRUFE ViwgV1JJVEVWKSB3aWxsIGNhdXNlIHJ1bnRpbWUgRUlOVkFMIGVycm9ycy4KKwkgKi8KKwlpZiAo aXNfdXJpbmdfcmVhZF93cml0ZV91bnN1cHBvcnRlZCgpKQorCXsKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQllcnJtc2co Imtlcm5lbCBkb2VzIG5vdCBzdXBwb3J0IHJlcXVpcmVkIGlvX3VyaW5nIG9wZXJhdGlvbnMiKSwK KwkJCQllcnJkZXRhaWwoIlRoZSBrZXJuZWwgc3VwcG9ydHMgaW9fdXJpbmcgYnV0IGxhY2tzIG9u ZSBvciBtb3JlIG9mIHRoZSAiCisJCQkJCQkgICJyZXF1aXJlZCBvcGNvZGVzIChJT1JJTkdfT1Bf UkVBRCwgSU9SSU5HX09QX1dSSVRFLCAiCisJCQkJCQkgICJJT1JJTkdfT1BfUkVBRFYsIElPUklO R19PUF9XUklURVYpLiAiCisJCQkJCQkgICJUaGlzIHR5cGljYWxseSBvY2N1cnMgb24gTGludXgg a2VybmVscyBvbGRlciB0aGFuIDUuNi4iKSwKKwkJCQllcnJoaW50KCJFaXRoZXIgdXBncmFkZSB5 b3VyIGtlcm5lbCB0byB2ZXJzaW9uIDUuNiBvciBuZXdlciwgb3IgdXNlIGlvX21ldGhvZD13b3Jr ZXIuIikpOworCX0KKwogCS8qCiAJICogV2UgYWxsb2NhdGUgbWVtb3J5IGZvciBhbGwgUGdBaW9V cmluZ0NvbnRleHQgaW5zdGFuY2VzIGFuZCwgaWYKIAkgKiBzdXBwb3J0ZWQsIHRoZSBtZW1vcnkg cmVxdWlyZWQgZm9yIGVhY2ggb2YgdGhlIGlvX3VyaW5nIGluc3RhbmNlcywgaW4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCBkYzllMjI1NWY4 YS4uMTY0OGY0YmUyMDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwu Y29uZi5zYW1wbGUKQEAgLTIwNCw3ICsyMDQsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQogI2lvX2NvbWJpbmVf bGltaXQgPSAxMjhrQiAgICAgICAgICAgICAgICMgdXN1YWxseSAxLTEyOCBibG9ja3MgKGRlcGVu ZHMgb24gT1MpCiAKLSNpb19tZXRob2QgPSB3b3JrZXIgICAgICAgICAgICAgICAgICAgICAjIHdv cmtlciwgaW9fdXJpbmcsIHN5bmMKKyNpb19tZXRob2QgPSB3b3JrZXIgICAgICAgICAgICAgICAg ICAgICAjIHdvcmtlciwgaW9fdXJpbmcgKExpbnV4IDUuNispLCBzeW5jCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiAj aW9fbWF4X2NvbmN1cnJlbmN5ID0gLTEgICAgICAgICAgICAgICAgIyBNYXggbnVtYmVyIG9mIElP cyB0aGF0IG9uZSBwcm9jZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIyBjYW4gZXhlY3V0ZSBzaW11bHRhbmVvdXNseQotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0 KQoK --0000000000001241120648730e1d--