<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>410556</bug_id>
          
          <creation_ts>2019-08-04 01:27:12 +0000</creation_ts>
          <short_desc>[PATCH] add support for BLKIO{MIN,OPT} and BLKALIGNOFF ioctls</short_desc>
          <delta_ts>2019-12-30 10:14:51 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>6</classification_id>
          <classification>Developer tools</classification>
          <product>valgrind</product>
          <component>general</component>
          <version>unspecified</version>
          <rep_platform>Debian unstable</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Nick Black">dankamongmen</reporter>
          <assigned_to name="Julian Seward">jseward</assigned_to>
          
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1872764</commentid>
    <comment_count>0</comment_count>
      <attachid>121919</attachid>
    <who name="Nick Black">dankamongmen</who>
    <bug_when>2019-08-04 01:27:12 +0000</bug_when>
    <thetext>Created attachment 121919
Patch to bring blk ioctls up to speed with 5.2.5

Valgrind as checked out from git://sourceware.org/git/valgrind.git (and forked to 
git@github.com:dankamongmen/valgrind.git) is missing support for three Linux block ioctl()s. This was discovered while developing Growlight (https://github.com/dankamongmen/growlight/issues/8). Without this patch, Valgrind gives a false warning following my BLKALIGNOFF call. With it, there is no such warning.

STEPS TO REPRODUCE
1. Call one of the mentioned ioctl()s under Valgrind
2. Use the result

OBSERVED RESULT
==15964== Warning: noted but unhandled ioctl 0x127a with no size/direction hints.
==15964==    This could cause spurious value errors to appear.
==15964==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==15964== Thread 4:
==15964== Conditional jump or move depends on uninitialised value(s)
==15964==    at 0x4D99883: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==15964==    by 0x4D9A465: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==15964==    by 0x4D99A88: ??? (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==15964==    by 0x4D8817A: blkid_do_fullprobe (in /lib/x86_64-linux-gnu/libblkid.so.1.1.0)
==15964==    by 0x114E1E: probe_blkid_superblock (libblkid.c:127)
==15964==    by 0x110CE0: rescan (growlight.c:1014)
==15964==    by 0x110CE0: rescan (growlight.c:905)
==15964==    by 0x1121C5: create_new_device_inner (growlight.c:1137)
==15964==    by 0x1121C5: create_new_device (growlight.c:1179)
==15964==    by 0x112445: lookup_device (growlight.c:1249)
==15964==    by 0x112445: lookup_device (growlight.c:1201)
==15964==    by 0x113C6C: scan_device (growlight.c:1381)
==15964==    by 0x5215FA2: start_thread (pthread_create.c:486)
==15964==    by 0x53284CE: clone (clone.S:95)

EXPECTED RESULT
Smooth sailing

SOFTWARE/OS VERSIONS
Linux: 5.2.5

ADDITIONAL INFORMATION
Please merge. I&apos;ve contributed once before, an ioctl for CDROM_GET_CAPABILITY back in 2012 (due to the same project, actually).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872765</commentid>
    <comment_count>1</comment_count>
    <who name="Nick Black">dankamongmen</who>
    <bug_when>2019-08-04 01:27:35 +0000</bug_when>
    <thetext>From 0fe56735ca5ddad378126bd2954d93f5dcfbc876 Mon Sep 17 00:00:00 2001
From: nick black &lt;dankamongmen@gmail.com&gt;
Date: Sat, 3 Aug 2019 20:43:30 -0400
Subject: [PATCH] linux-ioctl: add BLKIO{MIN,OPT} and BLKALIGNOFF

Signed-off-by: nick black &lt;dankamongmen@gmail.com&gt;
---
 coregrind/m_syswrap/syswrap-linux.c | 18 ++++++++++++++++++
 include/vki/vki-linux.h             |  5 ++++-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c
index 9d9a1d4ea..a7bc9732b 100644
--- a/coregrind/m_syswrap/syswrap-linux.c
+++ b/coregrind/m_syswrap/syswrap-linux.c
@@ -7236,6 +7236,15 @@ PRE(sys_ioctl)
    case VKI_BLKPBSZGET:
       PRE_MEM_WRITE( &quot;ioctl(BLKPBSZGET)&quot;, ARG3, sizeof(int));
       break;
+   case VKI_BLKIOMIN:
+      PRE_MEM_WRITE( &quot;ioctl(BLKIOMIN)&quot;, ARG3, sizeof(vki_uint));
+      break;
+   case VKI_BLKIOOPT:
+      PRE_MEM_WRITE( &quot;ioctl(BLKIOOPT)&quot;, ARG3, sizeof(vki_uint));
+      break;
+   case VKI_BLKALIGNOFF:
+      PRE_MEM_WRITE( &quot;ioctl(BLKALIGNOFF)&quot;, ARG3, sizeof(int));
+      break;
    case VKI_BLKDISCARDZEROES:
       PRE_MEM_WRITE( &quot;ioctl(BLKDISCARDZEROES)&quot;, ARG3, sizeof(vki_uint));
       break;
@@ -10072,6 +10081,15 @@ POST(sys_ioctl)
    case VKI_BLKPBSZGET:
       POST_MEM_WRITE(ARG3, sizeof(int));
       break;
+   case VKI_BLKIOMIN:
+      POST_MEM_WRITE(ARG3, sizeof(vki_uint));
+      break;
+   case VKI_BLKIOOPT:
+      POST_MEM_WRITE(ARG3, sizeof(vki_uint));
+      break;
+   case VKI_BLKALIGNOFF:
+      POST_MEM_WRITE(ARG3, sizeof(int));
+      break;
    case VKI_BLKDISCARDZEROES:
       POST_MEM_WRITE(ARG3, sizeof(vki_uint));
       break;
diff --git a/include/vki/vki-linux.h b/include/vki/vki-linux.h
index 76bc7837b..a9bfb1ad0 100644
--- a/include/vki/vki-linux.h
+++ b/include/vki/vki-linux.h
@@ -1813,7 +1813,7 @@ struct vki_ppdev_frob_struct {
 #define VKI_PPSETFLAGS	_VKI_IOW(VKI_PP_IOCTL, 0x9b, int)
 
 //----------------------------------------------------------------------
-// From linux-3.16/include/uapi/linux/fs.h
+// From linux-5.2.5/include/uapi/linux/fs.h
 //----------------------------------------------------------------------
 
 #define VKI_BLKROSET   _VKI_IO(0x12,93)	/* set device read-only (0 = read-write) */
@@ -1832,6 +1832,9 @@ struct vki_ppdev_frob_struct {
 #define VKI_BLKBSZSET  _VKI_IOW(0x12,113,vki_size_t)
 #define VKI_BLKGETSIZE64 _VKI_IOR(0x12,114,vki_size_t) /* return device size in bytes (u64 *arg) */
 #define VKI_BLKDISCARD _VKI_IO(0x12,119)
+#define VKI_BLKIOMIN _VKI_IO(0x12,120)
+#define VKI_BLKIOOPT _VKI_IO(0x12,121)
+#define VKI_BLKALIGNOFF _VKI_IO(0x12,122)
 #define VKI_BLKPBSZGET _VKI_IO(0x12,123)
 #define VKI_BLKDISCARDZEROES _VKI_IO(0x12,124)
 #define VKI_BLKZEROOUT _VKI_IO(0x12,127)
-- 
2.23.0.rc1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1880639</commentid>
    <comment_count>2</comment_count>
    <who name="Nick Black">dankamongmen</who>
    <bug_when>2019-09-18 00:07:08 +0000</bug_when>
    <thetext>Hey there! Any chance this can get merged? It seems to work pretty well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1899066</commentid>
    <comment_count>3</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2019-12-28 16:50:10 +0000</bug_when>
    <thetext>Will be merged in the next month or so, providing it doesn&apos;t break anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1899384</commentid>
    <comment_count>4</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2019-12-30 10:14:51 +0000</bug_when>
    <thetext>Committed as 11b7891a8a39b0dae39c97cfcd039a708f83a69a.
Thanks for the patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121919</attachid>
            <date>2019-08-04 01:27:12 +0000</date>
            <delta_ts>2019-08-04 01:27:12 +0000</delta_ts>
            <desc>Patch to bring blk ioctls up to speed with 5.2.5</desc>
            <filename>0001-linux-ioctl-add-BLKIO-MIN-OPT-and-BLKALIGNOFF.patch</filename>
            <type>text/plain</type>
            <size>2784</size>
            <attacher name="Nick Black">dankamongmen</attacher>
            
              <data encoding="base64">RnJvbSAwZmU1NjczNWNhNWRkYWQzNzgxMjZiZDI5NTRkOTNmNWRjZmJjODc2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBuaWNrIGJsYWNrIDxkYW5rYW1vbmdtZW5AZ21haWwuY29tPgpE
YXRlOiBTYXQsIDMgQXVnIDIwMTkgMjA6NDM6MzAgLTA0MDAKU3ViamVjdDogW1BBVENIXSBsaW51
eC1pb2N0bDogYWRkIEJMS0lPe01JTixPUFR9IGFuZCBCTEtBTElHTk9GRgoKU2lnbmVkLW9mZi1i
eTogbmljayBibGFjayA8ZGFua2Ftb25nbWVuQGdtYWlsLmNvbT4KLS0tCiBjb3JlZ3JpbmQvbV9z
eXN3cmFwL3N5c3dyYXAtbGludXguYyB8IDE4ICsrKysrKysrKysrKysrKysrKwogaW5jbHVkZS92
a2kvdmtpLWxpbnV4LmggICAgICAgICAgICAgfCAgNSArKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAy
MiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21f
c3lzd3JhcC9zeXN3cmFwLWxpbnV4LmMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtbGlu
dXguYwppbmRleCA5ZDlhMWQ0ZWEuLmE3YmM5NzMyYiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21f
c3lzd3JhcC9zeXN3cmFwLWxpbnV4LmMKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFw
LWxpbnV4LmMKQEAgLTcyMzYsNiArNzIzNiwxNSBAQCBQUkUoc3lzX2lvY3RsKQogICAgY2FzZSBW
S0lfQkxLUEJTWkdFVDoKICAgICAgIFBSRV9NRU1fV1JJVEUoICJpb2N0bChCTEtQQlNaR0VUKSIs
IEFSRzMsIHNpemVvZihpbnQpKTsKICAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfQkxLSU9NSU46
CisgICAgICBQUkVfTUVNX1dSSVRFKCAiaW9jdGwoQkxLSU9NSU4pIiwgQVJHMywgc2l6ZW9mKHZr
aV91aW50KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0JMS0lPT1BUOgorICAgICAgUFJF
X01FTV9XUklURSggImlvY3RsKEJMS0lPT1BUKSIsIEFSRzMsIHNpemVvZih2a2lfdWludCkpOwor
ICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9CTEtBTElHTk9GRjoKKyAgICAgIFBSRV9NRU1fV1JJ
VEUoICJpb2N0bChCTEtBTElHTk9GRikiLCBBUkczLCBzaXplb2YoaW50KSk7CisgICAgICBicmVh
azsKICAgIGNhc2UgVktJX0JMS0RJU0NBUkRaRVJPRVM6CiAgICAgICBQUkVfTUVNX1dSSVRFKCAi
aW9jdGwoQkxLRElTQ0FSRFpFUk9FUykiLCBBUkczLCBzaXplb2YodmtpX3VpbnQpKTsKICAgICAg
IGJyZWFrOwpAQCAtMTAwNzIsNiArMTAwODEsMTUgQEAgUE9TVChzeXNfaW9jdGwpCiAgICBjYXNl
IFZLSV9CTEtQQlNaR0VUOgogICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKGludCkp
OwogICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9CTEtJT01JTjoKKyAgICAgIFBPU1RfTUVNX1dS
SVRFKEFSRzMsIHNpemVvZih2a2lfdWludCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9C
TEtJT09QVDoKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsIHNpemVvZih2a2lfdWludCkpOwor
ICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9CTEtBTElHTk9GRjoKKyAgICAgIFBPU1RfTUVNX1dS
SVRFKEFSRzMsIHNpemVvZihpbnQpKTsKKyAgICAgIGJyZWFrOwogICAgY2FzZSBWS0lfQkxLRElT
Q0FSRFpFUk9FUzoKICAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsIHNpemVvZih2a2lfdWludCkp
OwogICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZraS92a2ktbGludXguaCBiL2lu
Y2x1ZGUvdmtpL3ZraS1saW51eC5oCmluZGV4IDc2YmM3ODM3Yi4uYTliZmIxYWQwIDEwMDY0NAot
LS0gYS9pbmNsdWRlL3ZraS92a2ktbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktbGludXgu
aApAQCAtMTgxMyw3ICsxODEzLDcgQEAgc3RydWN0IHZraV9wcGRldl9mcm9iX3N0cnVjdCB7CiAj
ZGVmaW5lIFZLSV9QUFNFVEZMQUdTCV9WS0lfSU9XKFZLSV9QUF9JT0NUTCwgMHg5YiwgaW50KQog
CiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLS8vIEZyb20gbGludXgtMy4xNi9pbmNsdWRlL3VhcGkvbGludXgv
ZnMuaAorLy8gRnJvbSBsaW51eC01LjIuNS9pbmNsdWRlL3VhcGkvbGludXgvZnMuaAogLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKICNkZWZpbmUgVktJX0JMS1JPU0VUICAgX1ZLSV9JTygweDEyLDkzKQkvKiBz
ZXQgZGV2aWNlIHJlYWQtb25seSAoMCA9IHJlYWQtd3JpdGUpICovCkBAIC0xODMyLDYgKzE4MzIs
OSBAQCBzdHJ1Y3QgdmtpX3BwZGV2X2Zyb2Jfc3RydWN0IHsKICNkZWZpbmUgVktJX0JMS0JTWlNF
VCAgX1ZLSV9JT1coMHgxMiwxMTMsdmtpX3NpemVfdCkKICNkZWZpbmUgVktJX0JMS0dFVFNJWkU2
NCBfVktJX0lPUigweDEyLDExNCx2a2lfc2l6ZV90KSAvKiByZXR1cm4gZGV2aWNlIHNpemUgaW4g
Ynl0ZXMgKHU2NCAqYXJnKSAqLwogI2RlZmluZSBWS0lfQkxLRElTQ0FSRCBfVktJX0lPKDB4MTIs
MTE5KQorI2RlZmluZSBWS0lfQkxLSU9NSU4gX1ZLSV9JTygweDEyLDEyMCkKKyNkZWZpbmUgVktJ
X0JMS0lPT1BUIF9WS0lfSU8oMHgxMiwxMjEpCisjZGVmaW5lIFZLSV9CTEtBTElHTk9GRiBfVktJ
X0lPKDB4MTIsMTIyKQogI2RlZmluZSBWS0lfQkxLUEJTWkdFVCBfVktJX0lPKDB4MTIsMTIzKQog
I2RlZmluZSBWS0lfQkxLRElTQ0FSRFpFUk9FUyBfVktJX0lPKDB4MTIsMTI0KQogI2RlZmluZSBW
S0lfQkxLWkVST09VVCBfVktJX0lPKDB4MTIsMTI3KQotLSAKMi4yMy4wLnJjMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>