Package: syslinux
Version: 3.31-2
Severity: normal
Tags: patch

Sorry but the 64-bit check I submitted is broken.  As per specs in:

  http://download.intel.com/design/Xeon/applnots/24161831.pdf

Intel is using the same bit as Amd for x86-64 long mode (bit 29 in
0x80000001_edx).  However, the code checks for Intel first (and
wrong, since it checks for CPUID level being != 0 which is always
true for all modern CPUs), and then tests bit 30 in 0x1_edx.

According to the Intel spec, bit 30 in 0x1_edx means ia64 support.
For Amd [1], bit 30 in 0x1_edx is reserved.  In both cases, this
means results are undefined.

It turns out that the check *did* work for a lot of CPUs, and we didn't
find anything wrong in the tests.  However, an error could happen in
both ways, and detecting 64-bit support where it isn't present can break
the debian CDs very badly..

For a fix, see attached patch (relative to patched source).  It's NOT
tested (I haven't had time, maybe I can do some tests tomorrow).

Thanks to Guillem for the assistance in figuring out all this.

[1] 
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/25481.pdf

-- System Information:
Debian Release: 4.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-3-amd64
Locale: LANG=ca_AD.UTF-8, LC_CTYPE=ca_AD.UTF-8 (charmap=UTF-8)

Versions of packages syslinux depends on:
ii  libc6                       2.3.6.ds1-10 GNU C Library: Shared libraries

Versions of packages syslinux recommends:
ii  mtools                      3.9.10.ds1-3 Tools for manipulating MSDOS files

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to