1. 29 Jun, 2015 1 commit
  2. 26 Jun, 2015 1 commit
  3. 25 Jun, 2015 1 commit
  4. 22 Jun, 2015 2 commits
  5. 15 Jun, 2015 2 commits
  6. 11 Jun, 2015 3 commits
  7. 08 Jun, 2015 4 commits
    • Hans de Goede's avatar
      samsung-laptop: Use acpi_video_unregister_backlight instead of acpi_video_unregister · 9330dcdd
      Hans de Goede authored
      acpi_video_unregister() not only unregisters the acpi-video backlight
      interface but also unregisters the acpi video bus event listener, causing
      e.g. brightness hotkey presses to no longer generate keypress events.
      
      The unregistering of the acpi video bus event listener usually is
      undesirable, which by itself is a good reason to switch to
      acpi_video_unregister_backlight().
      
      Another problem with using acpi_video_unregister() rather then using
      acpi_video_unregister_backlight() is that on systems with an intel video
      opregion (most systems) and a broken_acpi_video quirk, whether or not
      the acpi video bus event listener actually gets unregistered depends on
      module load ordering:
      
      Scenario a:
      1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there
         is an intel opregion.
      2) intel.ko gets loaded, calls acpi_video_register() which registers both
         the listener and the acpi backlight interface
      3) samsung-laptop.ko gets loaded, calls acpi_video_unregister() causing
         both the listener and the acpi backlight interface to unregister
      
      Scenario b:
      1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there
         is an intel opregion.
      2) samsung-laptop.ko gets loaded, calls acpi_video_dmi_promote_vendor(),
         calls acpi_video_unregister(), which is a nop since acpi_video_register
         has not yet been called
      2) intel.ko gets loaded, calls acpi_video_register() which registers
         the listener, but does not register the acpi backlight interface due to
         the call to the preciding call to acpi_video_dmi_promote_vendor()
      
      *) acpi/video.ko always loads first as both other modules depend on it.
      
      So we end up with or without an acpi video bus event listener depending
      on module load ordering, not good.
      
      Switching to using acpi_video_unregister_backlight() means that independ
      of ordering we will always have an acpi video bus event listener fixing
      this.
      
      Note that this commit means that systems without an intel video opregion,
      and systems which were hitting scenario a wrt module load ordering, are
      now getting an acpi video bus event listener while before they were not!
      
      On some systems this may cause the brightness hotkeys to start generating
      keypresses while before they were not (good), while on other systems this
      may cause the brightness hotkeys to generate multiple keypress events for
      a single press (not so good). Since on most systems the acpi video bus is
      the canonical source for brightness events I believe that the latter case
      will needs to be handled on a case by case basis by filtering out the
      duplicate keypresses at the other source for them.
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Acked-by: Corentin Chary <corentin.chary@gmail.com)
      Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
      9330dcdd
    • Hans de Goede's avatar
      asus-wmi: Use acpi_video_unregister_backlight instead of acpi_video_unregister · 5f770658
      Hans de Goede authored
      acpi_video_unregister() not only unregisters the acpi-video backlight
      interface but also unregisters the acpi video bus event listener, causing
      e.g. brightness hotkey presses to no longer generate keypress events.
      
      The unregistering of the acpi video bus event listener usually is
      undesirable, which by itself is a good reason to switch to
      acpi_video_unregister_backlight().
      
      Another problem with using acpi_video_unregister() rather then using
      acpi_video_unregister_backlight() is that on systems with an intel video
      opregion (most systems) and a wmi_backlight_power quirk, whether or not
      the acpi video bus event listener actually gets unregistered depends on
      module load ordering:
      
      Scenario a:
      1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there
         is an intel opregion.
      2) intel.ko gets loaded, calls acpi_video_register() which registers both
         the listener and the acpi backlight interface
      3) asus-wmi.ko gets loaded, calls acpi_video_unregister() causing both
         the listener and the acpi backlight interface to unregister
      
      Scenario b:
      1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there
         is an intel opregion.
      2) asus-wmi.ko gets loaded, calls acpi_video_dmi_promote_vendor(),
         calls acpi_video_unregister(), which is a nop since acpi_video_register
         has not yet been called
      2) intel.ko gets loaded, calls acpi_video_register() which registers
         the listener, but does not register the acpi backlight interface due to
         the call to the preciding call to acpi_video_dmi_promote_vendor()
      
      *) acpi/video.ko always loads first as both other modules depend on it.
      
      So we end up with or without an acpi video bus event listener depending
      on module load ordering, not good.
      
      Switching to using acpi_video_unregister_backlight() means that independ
      of ordering we will always have an acpi video bus event listener fixing
      this.
      
      Note that this commit means that systems without an intel video opregion,
      and systems which were hitting scenario a wrt module load ordering, are
      now getting an acpi video bus event listener while before they were not!
      
      On some systems this may cause the brightness hotkeys to start generating
      keypresses while before they were not (good), while on other systems this
      may cause the brightness hotkeys to generate multiple keypress events for
      a single press (not so good). Since on most systems the acpi video bus is
      the canonical source for brightness events I believe that the latter case
      will needs to be handled on a case by case basis by filtering out the
      duplicate keypresses at the other source for them.
      
      Cc: acpi4asus-user@lists.sourceforge.net
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Acked-by: Corentin Chary <corentin.chary@gmail.com)
      Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
      5f770658
    • Hans de Goede's avatar
      apple_gmux: Use acpi_video_unregister_backlight instead of acpi_video_unregister · 85eaa5fb
      Hans de Goede authored
      acpi_video_unregister() not only unregisters the acpi-video backlight
      interface but also unregisters the acpi video bus event listener, causing
      e.g. brightness hotkey presses to no longer generate keypress events.
      
      The unregistering of the acpi video bus event listener usually is
      undesirable, which by itself is a good reason to switch to
      acpi_video_unregister_backlight().
      
      Another problem with using acpi_video_unregister() rather then using
      acpi_video_unregister_backlight() is that on systems with an intel video
      opregion (most systems) whether or not the acpi video bus event listener
      actually gets unregistered depends on module load ordering:
      
      Scenario a:
      1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there
         is an intel opregion.
      2) intel.ko gets loaded, calls acpi_video_register() which registers both
         the listener and the acpi backlight interface
      3) apple-gmux.ko gets loaded, calls acpi_video_unregister() causing both
         the listener and the acpi backlight interface to unregister
      
      Scenario b:
      1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there
         is an intel opregion.
      2) apple-gmux.ko gets loaded, calls acpi_video_dmi_promote_vendor(),
         calls acpi_video_unregister(), which is a nop since acpi_video_register
         has not yet been called
      2) intel.ko gets loaded, calls acpi_video_register() which registers
         the listener, but does not register the acpi backlight interface due to
         the call to the preciding call to acpi_video_dmi_promote_vendor()
      
      *) acpi/video.ko always loads first as both other modules depend on it.
      
      So we end up with or without an acpi video bus event listener depending
      on module load ordering, not good.
      
      Switching to using acpi_video_unregister_backlight() means that independ
      of ordering we will always have an acpi video bus event listener fixing
      this.
      
      Note that this commit means that systems without an intel video opregion,
      and systems which were hitting scenario a wrt module load ordering, are
      now getting an acpi video bus event listener while before they were not!
      
      On some systems this may cause the brightness hotkeys to start generating
      keypresses while before they were not (good), while on other systems this
      may cause the brightness hotkeys to generate multiple keypress events for
      a single press (not so good). Since on most systems the acpi video bus is
      the canonical source for brightness events I believe that the latter case
      will needs to be handled on a case by case basis by filtering out the
      duplicate keypresses at the other source for them.
      
      Cc: Seth Forshee <seth.forshee@canonical.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
      85eaa5fb
    • Radim Krčmář's avatar
      pvpanic: handle missing _STA correctly · 55cd3f01
      Radim Krčmář authored
      pvpanic was not properly detected when _STA was missing.
      
      ACPI 6.0 April 2015, 6.3.7 _STA (Status)
        If a device object (including the processor object) does not have an
        _STA object, then OSPM assumes that all of the above bits are set
        (i.e., the device is present, enabled, shown in the UI, and
        functioning).
      
      Not adhering to the specification made pvpanic dormant under QEMU 2.3.
      
      The original patch used acpi_bus_get_status_handle, which was not
      being exported, so module build blew up;  switch to acpi_bus_get_status
      and use the status it populates.
      
      Populated status is a bitfield so we can make the code self-documenting.
      We do not check 'present' because 'enabled' has to be false in that case
      by specification.  Older QEMUs set 0xff to status and newer ones do 0xb.
      Suggested-by: default avatarIgor Mammedov <imammedo@redhat.com>
      Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
      Reviewed-by: default avatarIgor Mammedov <imammedo@redhat.com>
      [dvhart@linux.intel.com: Merge acpi_bug_get_status fix to avoid bisect breakage]
      Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
      55cd3f01
  8. 01 Jun, 2015 1 commit
  9. 13 May, 2015 1 commit
    • Kast Bernd's avatar
      asus-wmi: add fan control · 53e755c2
      Kast Bernd authored
      This patch is partially based on Felipe Contrera's earlier patch, that
      was discussed here: https://lkml.org/lkml/2013/10/8/800
      Some problems of that patch are solved, now:
      
      1) The main obstacle for the earlier patch seemed to be the use of
      virt_to_phys, which is accepted, now
      
      2) random memory corruption occurred on my notebook, thus DMA-able memory
      is allocated now, which solves this problem
      
      3) hwmon interface is used instead of the thermal interface, as a
      hwmon device is already set up by this driver and seemed more
      appropriate than the thermal interface
      
      4) Calling the ACPI-functions was modularized thus it's possible to call
      some multifunctions easily, now (by using
      asus_wmi_evaluate_method_agfn).
      
      Unfortunately the WMI doesn't support controlling both fans on
      a dual-fan notebook because of an restriction in the acpi-method
      "SFNS", that is callable through the wmi. If "SFNV" would be called
      directly even dual fan configurations could be controlled, but not by using
      wmi.
      
      Speed readings only work on auto-mode, thus "-1" will be reported in
      manual mode.
      Additionally the speed readings are reported as hundreds of RPM thus
      they are not too precise.
      
      This patch is tested only on one notebook (N551JK) but a similar module,
      that contained some code to try to control the second fan also, was
      reported to work on an UX32VD, at least for the first fan.
      
      As Felipe already mentioned the low-level functions are described here:
      http://forum.notebookreview.com/threads/fan-control-on-asus-prime-ux31-ux31a-ux32a-ux32vd.705656/Signed-off-by: default avatarKast Bernd <kastbernd@gmx.de>
      Acked-by: default avatarCorentin Chary <corentin.chary@gmail.com>
      Cc: Corentin Chary <corentin.chary@gmail.com>
      Cc: Darren Hart <dvhart@infradead.org>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
      Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
      53e755c2
  10. 11 May, 2015 9 commits
  11. 06 May, 2015 4 commits
  12. 27 Apr, 2015 9 commits
    • Linus Torvalds's avatar
      Linux 4.1-rc1 · b787f68c
      Linus Torvalds authored
      b787f68c
    • Andy Lutomirski's avatar
      x86_64, asm: Work around AMD SYSRET SS descriptor attribute issue · 61f01dd9
      Andy Lutomirski authored
      AMD CPUs don't reinitialize the SS descriptor on SYSRET, so SYSRET with
      SS == 0 results in an invalid usermode state in which SS is apparently
      equal to __USER_DS but causes #SS if used.
      
      Work around the issue by setting SS to __KERNEL_DS __switch_to, thus
      ensuring that SYSRET never happens with SS set to NULL.
      
      This was exposed by a recent vDSO cleanup.
      
      Fixes: e7d6eefa x86/vdso32/syscall.S: Do not load __USER32_DS to %ss
      Signed-off-by: default avatarAndy Lutomirski <luto@kernel.org>
      Cc: Peter Anvin <hpa@zytor.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Denys Vlasenko <vda.linux@googlemail.com>
      Cc: Brian Gerst <brgerst@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      61f01dd9
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 1190944f
      Linus Torvalds authored
      Pull intel drm fixes from Dave Airlie.
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/i915: vlv: fix save/restore of GFX_MAX_REQ_COUNT reg
        drm/i915: Workaround to avoid lite restore with HEAD==TAIL
        drm/i915: cope with large i2c transfers
      1190944f
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/intel-iommu · 9f86262d
      Linus Torvalds authored
      Pull intel iommu updates from David Woodhouse:
       "This lays a little of the groundwork for upcoming Shared Virtual
        Memory support — fixing some bogus #defines for capability bits and
        adding the new ones, and starting to use the new wider page tables
        where we can, in anticipation of actually filling in the new fields
        therein.
      
        It also allows graphics devices to be assigned to VM guests again.
        This got broken in 3.17 by disallowing assignment of RMRR-afflicted
        devices.  Like USB, we do understand why there's an RMRR for graphics
        devices — and unlike USB, it's actually sane.  So we can make an
        exception for graphics devices, just as we do USB controllers.
      
        Finally, tone down the warning about the X2APIC_OPT_OUT bit, due to
        persistent requests.  X2APIC_OPT_OUT was added to the spec as a nasty
        hack to allow broken BIOSes to forbid us from using X2APIC when they
        do stupid and invasive things and would break if we did.
      
        Someone noticed that since Windows doesn't have full IOMMU support for
        DMA protection, setting the X2APIC_OPT_OUT bit made Windows avoid
        initialising the IOMMU on the graphics unit altogether.
      
        This means that it would be available for use in "driver mode", where
        the IOMMU registers are made available through a BAR of the graphics
        device and the graphics driver can do SVM all for itself.
      
        So they started setting the X2APIC_OPT_OUT bit on *all* platforms with
        SVM capabilities.  And even the platforms which *might*, if the
        planets had been aligned correctly, possibly have had SVM capability
        but which in practice actually don't"
      
      * git://git.infradead.org/intel-iommu:
        iommu/vt-d: support extended root and context entries
        iommu/vt-d: Add new extended capabilities from v2.3 VT-d specification
        iommu/vt-d: Allow RMRR on graphics devices too
        iommu/vt-d: Print x2apic opt out info instead of printing a warning
        iommu/vt-d: kill bogus ecap_niotlb_iunits()
      9f86262d
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 85f2901b
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "This has a mixture of merge window cleanups and bugfixes"
      
      * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: st: add include for pinctrl
        i2c: mux: use proper dev when removing "channel-X" symlinks
        i2c: digicolor: remove duplicate include
        i2c: Mark adapter devices with pm_runtime_no_callbacks
        i2c: pca-platform: fix broken email address
        i2c: mxs: fix broken email address
        i2c: rk3x: report number of messages transmitted
      85f2901b
    • Linus Torvalds's avatar
      Merge branch 'for-linus-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · f583381f
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "Filipe hit two problems in my block group cache patches.  We finalized
        the fixes last week and ran through more tests"
      
      * 'for-linus-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: prevent list corruption during free space cache processing
        Btrfs: fix inode cache writeout
      f583381f
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-fixes-2015-04-25' of... · 59fd7e4b
      Dave Airlie authored
      Merge tag 'drm-intel-next-fixes-2015-04-25' of git://anongit.freedesktop.org/drm-intel into drm-fixes
      
      three fixes for i915.
      
      * tag 'drm-intel-next-fixes-2015-04-25' of git://anongit.freedesktop.org/drm-intel:
        drm/i915: vlv: fix save/restore of GFX_MAX_REQ_COUNT reg
        drm/i915: Workaround to avoid lite restore with HEAD==TAIL
        drm/i915: cope with large i2c transfers
      59fd7e4b
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-4.1-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 59953fba
      Linus Torvalds authored
      Pull NFS client updates from Trond Myklebust:
       "Another set of mainly bugfixes and a couple of cleanups.  No new
        functionality in this round.
      
        Highlights include:
      
        Stable patches:
         - Fix a regression in /proc/self/mountstats
         - Fix the pNFS flexfiles O_DIRECT support
         - Fix high load average due to callback thread sleeping
      
        Bugfixes:
         - Various patches to fix the pNFS layoutcommit support
         - Do not cache pNFS deviceids unless server notifications are enabled
         - Fix a SUNRPC transport reconnection regression
         - make debugfs file creation failure non-fatal in SUNRPC
         - Another fix for circular directory warnings on NFSv4 "junctioned"
           mountpoints
         - Fix locking around NFSv4.2 fallocate() support
         - Truncating NFSv4 file opens should also sync O_DIRECT writes
         - Prevent infinite loop in rpcrdma_ep_create()
      
        Features:
         - Various improvements to the RDMA transport code's handling of
           memory registration
         - Various code cleanups"
      
      * tag 'nfs-for-4.1-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (55 commits)
        fs/nfs: fix new compiler warning about boolean in switch
        nfs: Remove unneeded casts in nfs
        NFS: Don't attempt to decode missing directory entries
        Revert "nfs: replace nfs_add_stats with nfs_inc_stats when add one"
        NFS: Rename idmap.c to nfs4idmap.c
        NFS: Move nfs_idmap.h into fs/nfs/
        NFS: Remove CONFIG_NFS_V4 checks from nfs_idmap.h
        NFS: Add a stub for GETDEVICELIST
        nfs: remove WARN_ON_ONCE from nfs_direct_good_bytes
        nfs: fix DIO good bytes calculation
        nfs: Fetch MOUNTED_ON_FILEID when updating an inode
        sunrpc: make debugfs file creation failure non-fatal
        nfs: fix high load average due to callback thread sleeping
        NFS: Reduce time spent holding the i_mutex during fallocate()
        NFS: Don't zap caches on fallocate()
        xprtrdma: Make rpcrdma_{un}map_one() into inline functions
        xprtrdma: Handle non-SEND completions via a callout
        xprtrdma: Add "open" memreg op
        xprtrdma: Add "destroy MRs" memreg op
        xprtrdma: Add "reset MRs" memreg op
        ...
      59953fba
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 9ec3a646
      Linus Torvalds authored
      Pull fourth vfs update from Al Viro:
       "d_inode() annotations from David Howells (sat in for-next since before
        the beginning of merge window) + four assorted fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        RCU pathwalk breakage when running into a symlink overmounting something
        fix I_DIO_WAKEUP definition
        direct-io: only inc/dec inode->i_dio_count for file systems
        fs/9p: fix readdir()
        VFS: assorted d_backing_inode() annotations
        VFS: fs/inode.c helpers: d_inode() annotations
        VFS: fs/cachefiles: d_backing_inode() annotations
        VFS: fs library helpers: d_inode() annotations
        VFS: assorted weird filesystems: d_inode() annotations
        VFS: normal filesystems (and lustre): d_inode() annotations
        VFS: security/: d_inode() annotations
        VFS: security/: d_backing_inode() annotations
        VFS: net/: d_inode() annotations
        VFS: net/unix: d_backing_inode() annotations
        VFS: kernel/: d_inode() annotations
        VFS: audit: d_backing_inode() annotations
        VFS: Fix up some ->d_inode accesses in the chelsio driver
        VFS: Cachefiles should perform fs modifications on the top layer only
        VFS: AF_UNIX sockets should call mknod on the top layer only
      9ec3a646
  13. 26 Apr, 2015 2 commits
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-4.1-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · c8b3fd0c
      Linus Torvalds authored
      Pull more power management and ACPI updates from Rafael Wysocki:
       "These are fixes mostly (intel_pstate, ACPI core, ACPI EC driver,
        cpupower tool), a new CPU ID for the Intel RAPL driver and one
        intel_pstate driver improvement that didn't make it to my previous
        pull requests due to timing.
      
        Specifics:
      
         - Fix a build warning in the intel_pstate driver showing up in
           non-SMP builds (Borislav Petkov)
      
         - Change one of the intel_pstate's P-state selection parameters for
           Baytrail and Cherrytrail CPUs to significantly improve performance
           at the cost of a small increase in energy consumption (Kristen
           Carlson Accardi)
      
         - Fix a NULL pointer dereference in the ACPI EC driver due to an
           unsafe list walk in the query handler removal routine (Chris
           Bainbridge)
      
         - Get rid of a false-positive lockdep warning in the ACPI container
           hot-remove code (Rafael J Wysocki)
      
         - Prevent the ACPI device enumeration code from creating device
           objects of a wrong type in some cases (Rafael J Wysocki)
      
         - Add Skylake processors support to the Intel RAPL power capping
           driver (Brian Bian)
      
         - Drop the stale MAINTAINERS entry for the ACPI dock driver that is
           regarded as part of the ACPI core and maintained along with it now
           (Chao Yu)
      
         - Fix cpupower tool breakage caused by a library API change in libpci
           3.3.0 (Lucas Stach)"
      
      * tag 'pm+acpi-4.1-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / scan: Add a scan handler for PRP0001
        ACPI / scan: Annotate physical_node_lock in acpi_scan_is_offline()
        ACPI / EC: fix NULL pointer dereference in acpi_ec_remove_query_handler()
        MAINTAINERS: remove maintainship entry of docking station driver
        powercap / RAPL: Add support for Intel Skylake processors
        cpufreq: intel_pstate: Fix an annoying !CONFIG_SMP warning
        intel_pstate: Change the setpoint for Atom params
        cpupower: fix breakage from libpci API change
      c8b3fd0c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · d89b3e19
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This push fixes a build problem with img-hash under non-standard
        configurations and a serious regression with sha512_ssse3 which can
        lead to boot failures"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: img-hash - CRYPTO_DEV_IMGTEC_HASH should depend on HAS_DMA
        crypto: x86/sha512_ssse3 - fixup for asm function prototype change
      d89b3e19