summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2008-02-19 02:59:54 +0000
committerMike Frysinger <vapier@gentoo.org>2008-02-19 02:59:54 +0000
commit969961146b4d554e0991cc4719ccf4a3c63656b8 (patch)
tree726bbeb5b3ce2e5beb540965cc0b4412f7f3fb7a /app-cdr/qpxtool/files
parentold (diff)
downloadgentoo-2-969961146b4d554e0991cc4719ccf4a3c63656b8.tar.gz
gentoo-2-969961146b4d554e0991cc4719ccf4a3c63656b8.tar.bz2
gentoo-2-969961146b4d554e0991cc4719ccf4a3c63656b8.zip
Fix from upstream for newer libata versions #210391 by Slava Gorbunov.
(Portage version: 2.2_pre2)
Diffstat (limited to 'app-cdr/qpxtool/files')
-rw-r--r--app-cdr/qpxtool/files/qpxtool-0.6.1-libata.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/app-cdr/qpxtool/files/qpxtool-0.6.1-libata.patch b/app-cdr/qpxtool/files/qpxtool-0.6.1-libata.patch
new file mode 100644
index 000000000000..145e486308d7
--- /dev/null
+++ b/app-cdr/qpxtool/files/qpxtool-0.6.1-libata.patch
@@ -0,0 +1,26 @@
+http://bugs.gentoo.org/210392
+
+--- lib/qpxtransport/qpx_transport.cpp
++++ lib/qpxtransport/qpx_transport.cpp
+@@ -215,6 +215,21 @@
+ #define KERNEL_BROKEN 0
+ if (use_sg_io)
+ {
++ /* see linux-2.6.23/block/scsi_ioctl.c:36 */
++ static const unsigned char scsi_command_size[8] =
++ {
++ 6, 10, 10, 12,
++ 16, 12, 10, 10
++ };
++ char cmdsize, opcode;
++
++ opcode = cgc.cmd[0];
++ /* see linux-2.6.23/include/scsi/scsi.h:25 */
++ cmdsize = scsi_command_size[((opcode) >> 5) & 7];
++ if ((sg_io.cmd_len > 0) && (sg_io.cmd_len < cmdsize)) {
++ sg_io.cmd_len = cmdsize;
++ }
++
+ sg_io.dxferp = buf;
+ sg_io.dxfer_len = sz;
+ sg_io.dxfer_direction = use_sg_io[dir];