1. 27 Mar, 2012 15 commits
  2. 25 Mar, 2012 11 commits
  3. 21 Mar, 2012 14 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · e2a0883e
      Linus Torvalds authored
      Pull vfs pile 1 from Al Viro:
       "This is _not_ all; in particular, Miklos' and Jan's stuff is not there
        yet."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (64 commits)
        ext4: initialization of ext4_li_mtx needs to be done earlier
        debugfs-related mode_t whack-a-mole
        hfsplus: add an ioctl to bless files
        hfsplus: change finder_info to u32
        hfsplus: initialise userflags
        qnx4: new helper - try_extent()
        qnx4: get rid of qnx4_bread/qnx4_getblk
        take removal of PF_FORKNOEXEC to flush_old_exec()
        trim includes in inode.c
        um: uml_dup_mmap() relies on ->mmap_sem being held, but activate_mm() doesn't hold it
        um: embed ->stub_pages[] into mmu_context
        gadgetfs: list_for_each_safe() misuse
        ocfs2: fix leaks on failure exits in module_init
        ecryptfs: make register_filesystem() the last potential failure exit
        ntfs: forgets to unregister sysctls on register_filesystem() failure
        logfs: missing cleanup on register_filesystem() failure
        jfs: mising cleanup on register_filesystem() failure
        make configfs_pin_fs() return root dentry on success
        configfs: configfs_create_dir() has parent dentry in dentry->d_parent
        configfs: sanitize configfs_create()
        ...
      e2a0883e
    • Linus Torvalds's avatar
      Merge branch 'vm' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 3a990a52
      Linus Torvalds authored
      Pull munmap/truncate race fixes from Al Viro:
       "Fixes for racy use of unmap_vmas() on truncate-related codepaths"
      
      * 'vm' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        VM: make zap_page_range() callers that act on a single VMA use separate helper
        VM: make unmap_vmas() return void
        VM: don't bother with feeding upper limit to tlb_finish_mmu() in exit_mmap()
        VM: make zap_page_range() return void
        VM: can't go through the inner loop in unmap_vmas() more than once...
        VM: unmap_page_range() can return void
      3a990a52
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 3556485f
      Linus Torvalds authored
      Pull security subsystem updates for 3.4 from James Morris:
       "The main addition here is the new Yama security module from Kees Cook,
        which was discussed at the Linux Security Summit last year.  Its
        purpose is to collect miscellaneous DAC security enhancements in one
        place.  This also marks a departure in policy for LSM modules, which
        were previously limited to being standalone access control systems.
        Chromium OS is using Yama, and I believe there are plans for Ubuntu,
        at least.
      
        This patchset also includes maintenance updates for AppArmor, TOMOYO
        and others."
      
      Fix trivial conflict in <net/sock.h> due to the jumo_label->static_key
      rename.
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (38 commits)
        AppArmor: Fix location of const qualifier on generated string tables
        TOMOYO: Return error if fails to delete a domain
        AppArmor: add const qualifiers to string arrays
        AppArmor: Add ability to load extended policy
        TOMOYO: Return appropriate value to poll().
        AppArmor: Move path failure information into aa_get_name and rename
        AppArmor: Update dfa matching routines.
        AppArmor: Minor cleanup of d_namespace_path to consolidate error handling
        AppArmor: Retrieve the dentry_path for error reporting when path lookup fails
        AppArmor: Add const qualifiers to generated string tables
        AppArmor: Fix oops in policy unpack auditing
        AppArmor: Fix error returned when a path lookup is disconnected
        KEYS: testing wrong bit for KEY_FLAG_REVOKED
        TOMOYO: Fix mount flags checking order.
        security: fix ima kconfig warning
        AppArmor: Fix the error case for chroot relative path name lookup
        AppArmor: fix mapping of META_READ to audit and quiet flags
        AppArmor: Fix underflow in xindex calculation
        AppArmor: Fix dropping of allowed operations that are force audited
        AppArmor: Add mising end of structure test to caps unpacking
        ...
      3556485f
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · b8716614
      Linus Torvalds authored
      Pull crypto update from Herbert Xu:
       "* sha512 bug fixes (already in your tree).
        * SHA224/SHA384 AEAD support in caam.
        * X86-64 optimised version of Camellia.
        * Tegra AES support.
        * Bulk algorithm registration interface to make driver registration easier.
        * padata race fixes.
        * Misc fixes."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (31 commits)
        padata: Fix race on sequence number wrap
        padata: Fix race in the serialization path
        crypto: camellia - add assembler implementation for x86_64
        crypto: camellia - rename camellia.c to camellia_generic.c
        crypto: camellia - fix checkpatch warnings
        crypto: camellia - rename camellia module to camellia_generic
        crypto: tcrypt - add more camellia tests
        crypto: testmgr - add more camellia test vectors
        crypto: camellia - simplify key setup and CAMELLIA_ROUNDSM macro
        crypto: twofish-x86_64/i586 - set alignmask to zero
        crypto: blowfish-x86_64 - set alignmask to zero
        crypto: serpent-sse2 - combine ablk_*_init functions
        crypto: blowfish-x86_64 - use crypto_[un]register_algs
        crypto: twofish-x86_64-3way - use crypto_[un]register_algs
        crypto: serpent-sse2 - use crypto_[un]register_algs
        crypto: serpent-sse2 - remove dead code from serpent_sse2_glue.c::serpent_sse2_init()
        crypto: twofish-x86 - Remove dead code from twofish_glue_3way.c::init()
        crypto: In crypto_add_alg(), 'exact' wants to be initialized to 0
        crypto: caam - fix gcc 4.6 warning
        crypto: Add bulk algorithm registration interface
        ...
      b8716614
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 31f67652
      Linus Torvalds authored
      Pull hwmon changes for v3.4 from Guenter Roeck:
       "Mostly cleanup.  No new drivers this time around, but support for
        several chips added to existing drivers: TPS40400, TPS40422, MTD040,
        MAX34446, ZL9101M, ZL9117M, and LM96080.  Also, added watchdog support
        for SCH56xx, and additional attributes for a couple of drivers."
      
      * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (137 commits)
        hwmon: (sch56xx) Add support for the integrated watchdog (v2)
        hwmon: (w83627ehf) Add support for temperature offset registers
        hwmon: (jc42) Remove unnecessary device IDs
        hwmon: (zl6100) Add support for ZL9101M and ZL9117M
        hwmon: (adm1275) Add support for ADM1075
        hwmon: (max34440) Add support for MAX34446
        hwmon: (pmbus) Add more virtual registers
        hwmon: (pmbus) Add support for Lineage Power MDT040
        hwmon: (pmbus) Add support for TI TPS40400 and TPS40422
        hwmon: (max34440) Add support for 'lowest' output voltage attribute
        hwmon: (jc42) Convert to use devm_kzalloc
        hwmon: (max16065) Convert to use devm_kzalloc
        hwmon: (smm665) Convert to use devm_kzalloc
        hwmon: (ltc4261) Convert to use devm_kzalloc
        hwmon: (pmbus) Simplify remove functions
        hwmon: (pmbus) Convert pmbus drivers to use devm_kzalloc
        hwmon: (lineage-pem) Convert to use devm_kzalloc
        hwmon: (hwmon-vid) Fix checkpatch issues
        hwmon: (hwmon-vid) Add new entries to VRM model table
        hwmon: (lm80) Add detection of NatSemi/TI LM96080
        ...
      31f67652
    • Linus Torvalds's avatar
      Merge tag 'regulator-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · d15d7644
      Linus Torvalds authored
      Pull regulator updates for 3.4 from Mark Brown:
       "This has been a fairly quiet release from a regulator point of view,
        the only real framework features added were devm support and a
        convenience helper for setting up fixed voltage regulators.
      
        We also added a couple of drivers (but will drop the BQ240022 driver
        via the arm-soc tree as it's been replaced by the more generic
        gpio-regulator driver) and Axel Lin continued his relentless and
        generally awesome stream of fixes and cleanups."
      
      * tag 'regulator-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (93 commits)
        regulator: Fix up a confusing dev_warn when DT lookup fails
        regulator: Convert tps6507x to set_voltage_sel
        regulator: Refactor tps6507x to use one tps6507x_pmic_ops for all LDOs and DCDCs
        regulator: Make s5m8767_get_voltage_register always return correct register
        regulator: s5m8767: Check pdata->buck[2|3|4]_gpiodvs earlier
        regulator: tps65910: Provide settling time for DCDC voltage change
        regulator: Add Anatop regulator driver
        regulator: Simplify implementation of tps65912_get_voltage_dcdc
        regulator: Use tps65912_set_voltage_sel for both DCDCx and LDOx
        regulator: tps65910: Provide settling time for enabling rails
        regulator: max8925: Use DIV_ROUND_UP macro
        regulator: tps65912: Use simple equations to get register address
        regulator: Fix the logic of tps65910_get_mode
        regulator: Merge tps65217_pmic_ldo234_ops and tps65217_pmic_dcdc_ops to tps65217_pmic_ops
        regulator: Use DIV_ROUND_CLOSEST in wm8350_isink_get_current
        regulator: Use array to store dcdc_range settings for tps65912
        regulator: Rename s5m8767_convert_voltage to s5m8767_convert_voltage_to_sel
        regulator: tps6524x: Remove unneeded comment for N_REGULATORS
        regulator: Rename set_voltage_sel callback function name to *_sel
        regulator: Fix s5m8767_set_voltage_time_sel calculation value
        ...
      d15d7644
    • Linus Torvalds's avatar
      Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 0c2fe82a
      Linus Torvalds authored
      Pull InfiniBand/RDMA changes for the 3.4 merge window from Roland Dreier:
       "Nothing big really stands out; by patch count lots of fixes to the
        mlx4 driver plus some cleanups and fixes to the core and other
        drivers."
      
      * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (28 commits)
        mlx4_core: Scale size of MTT table with system RAM
        mlx4_core: Allow dynamic MTU configuration for IB ports
        IB/mlx4: Fix info returned when querying IBoE ports
        IB/mlx4: Fix possible missed completion event
        mlx4_core: Report thermal error events
        mlx4_core: Fix one more static exported function
        IB: Change CQE "csum_ok" field to a bit flag
        RDMA/iwcm: Reject connect requests if cmid is not in LISTEN state
        RDMA/cxgb3: Don't pass irq flags to flush_qp()
        mlx4_core: Get rid of redundant ext_port_cap flags
        RDMA/ucma: Fix AB-BA deadlock
        IB/ehca: Fix ilog2() compile failure
        IB: Use central enum for speed instead of hard-coded values
        IB/iser: Post initial receive buffers before sending the final login request
        IB/iser: Free IB connection resources in the proper place
        IB/srp: Consolidate repetitive sysfs code
        IB/srp: Use pr_fmt() and pr_err()/pr_warn()
        IB/core: Fix SDR rates in sysfs
        mlx4: Enforce device max FMR maps in FMR alloc
        IB/mlx4: Set bad_wr for invalid send opcode
        ...
      0c2fe82a
    • Linus Torvalds's avatar
      Merge tag 'spi-for-linus' of git://git.secretlab.ca/git/linux-2.6 · 5f0e685f
      Linus Torvalds authored
      Pull SPI changes for v3.4 from Grant Likely:
       "Mostly a bunch of new drivers and driver bug fixes; but this also
        includes a few patches that create a core message queue infrastructure
        for the spi subsystem instead of making each driver open code it."
      
      * tag 'spi-for-linus' of git://git.secretlab.ca/git/linux-2.6: (34 commits)
        spi/fsl-espi: Make sure pm is within 2..32
        spi/fsl-espi: make the clock computation easier to read
        spi: sh-hspi: modify write/read method
        spi: sh-hspi: control spi clock more correctly
        spi: sh-hspi: convert to using core message queue
        spi: s3c64xx: Fix build
        spi: s3c64xx: remove unnecessary callback msg->complete
        spi: remove redundant variable assignment
        spi: release lock on error path in spi_pump_messages()
        spi: Compatibility with direction which is used in samsung DMA operation
        spi-topcliff-pch: add recovery processing in case wait-event timeout
        spi-topcliff-pch: supports a spi mode setup and bit order setup by IO control
        spi-topcliff-pch: Fix issue for transmitting over 4KByte
        spi-topcliff-pch: Modify pci-bus number dynamically to get DMA device info
        spi/imx: simplify error handling to free gpios
        spi: Convert to DEFINE_PCI_DEVICE_TABLE
        spi: add Broadcom BCM63xx SPI controller driver
        SPI: add CSR SiRFprimaII SPI controller driver
        spi-topcliff-pch: fix -Wuninitialized warning
        spi: Mark spi_register_board_info() __devinit
        ...
      5f0e685f
    • Linus Torvalds's avatar
      Merge tag 'dt-for-linus' of git://git.secretlab.ca/git/linux-2.6 · f8974cb7
      Linus Torvalds authored
      Pull core device tree changes for Linux v3.4 from Grant Likely:
       "This branch contains a minor documentation addition, a utility
        function for parsing string properties needed by some of the new ARM
        platforms, disables dynamic DT code that isn't used anywhere but on a
        few PPC machines, and exports DT node compatible data to userspace via
        UEVENT properties.  Nothing earth shattering here."
      
      * tag 'dt-for-linus' of git://git.secretlab.ca/git/linux-2.6:
        of: Only compile OF_DYNAMIC on PowerPC pseries and iseries
        arm/dts: OMAP3: Add omap3evm and am335xevm support
        drivercore: Output common devicetree information in uevent
        of: Add of_property_match_string() to find index into a string list
      f8974cb7
    • Linus Torvalds's avatar
      Merge tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6 · c207f3a4
      Linus Torvalds authored
      Pull irq_domain support for all architectures from Grant Likely:
       "Generialize powerpc's irq_host as irq_domain
      
        This branch takes the PowerPC irq_host infrastructure (reverse mapping
        from Linux IRQ numbers to hardware irq numbering), generalizes it,
        renames it to irq_domain, and makes it available to all architectures.
      
        Originally the plan has been to create an all-new irq_domain
        implementation which addresses some of the powerpc shortcomings such
        as not handling 1:1 mappings well, but doing that proved to be far
        more difficult and invasive than generalizing the working code and
        refactoring it in-place.  So, this branch rips out the 'new'
        irq_domain and replaces it with the modified powerpc version (in a
        fully bisectable way of course).  It converts all users over to the
        new API and makes irq_domain selectable on any architecture.
      
        No architecture is forced to enable irq_domain, but the infrastructure
        is required for doing OpenFirmware style irq translations.  It will
        even work on SPARC even though SPARC has it's own mechanism for
        translating irqs at boot time.  MIPS, microblaze, embedded x86 and c6x
        are converted too.
      
        The resulting irq_domain code is probably still too verbose and can be
        optimized more, but that can be done incrementally and is a task for
        follow-on patches."
      
      * tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6: (31 commits)
        dt: fix twl4030 for non-dt compile on x86
        mfd: twl-core: Add IRQ_DOMAIN dependency
        devicetree: Add empty of_platform_populate() for !CONFIG_OF_ADDRESS (sparc)
        irq_domain: Centralize definition of irq_dispose_mapping()
        irq_domain/mips: Allow irq_domain on MIPS
        irq_domain/x86: Convert x86 (embedded) to use common irq_domain
        ppc-6xx: fix build failure in flipper-pic.c and hlwd-pic.c
        irq_domain/microblaze: Convert microblaze to use irq_domains
        irq_domain/powerpc: Replace custom xlate functions with library functions
        irq_domain/powerpc: constify irq_domain_ops
        irq_domain/c6x: Use library of xlate functions
        irq_domain/c6x: constify irq_domain structures
        irq_domain/c6x: Convert c6x to use generic irq_domain support.
        irq_domain: constify irq_domain_ops
        irq_domain: Create common xlate functions that device drivers can use
        irq_domain: Remove irq_domain_add_simple()
        irq_domain: Remove 'new' irq_domain in favour of the ppc one
        mfd: twl-core.c: Fix the number of interrupts managed by twl4030
        of/address: add empty static inlines for !CONFIG_OF
        irq_domain: Add support for base irq and hwirq in legacy mappings
        ...
      c207f3a4
    • Linus Torvalds's avatar
      Merge tag 'pm-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · c7c66c0c
      Linus Torvalds authored
      Pull power management updates for 3.4 from Rafael Wysocki:
       "Assorted extensions and fixes including:
      
        * Introduction of early/late suspend/hibernation device callbacks.
        * Generic PM domains extensions and fixes.
        * devfreq updates from Axel Lin and MyungJoo Ham.
        * Device PM QoS updates.
        * Fixes of concurrency problems with wakeup sources.
        * System suspend and hibernation fixes."
      
      * tag 'pm-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (43 commits)
        PM / Domains: Check domain status during hibernation restore of devices
        PM / devfreq: add relation of recommended frequency.
        PM / shmobile: Make MTU2 driver use pm_genpd_dev_always_on()
        PM / shmobile: Make CMT driver use pm_genpd_dev_always_on()
        PM / shmobile: Make TMU driver use pm_genpd_dev_always_on()
        PM / Domains: Introduce "always on" device flag
        PM / Domains: Fix hibernation restore of devices, v2
        PM / Domains: Fix handling of wakeup devices during system resume
        sh_mmcif / PM: Use PM QoS latency constraint
        tmio_mmc / PM: Use PM QoS latency constraint
        PM / QoS: Make it possible to expose PM QoS latency constraints
        PM / Sleep: JBD and JBD2 missing set_freezable()
        PM / Domains: Fix include for PM_GENERIC_DOMAINS=n case
        PM / Freezer: Remove references to TIF_FREEZE in comments
        PM / Sleep: Add more wakeup source initialization routines
        PM / Hibernate: Enable usermodehelpers in hibernate() error path
        PM / Sleep: Make __pm_stay_awake() delete wakeup source timers
        PM / Sleep: Fix race conditions related to wakeup source timer function
        PM / Sleep: Fix possible infinite loop during wakeup source destruction
        PM / Hibernate: print physical addresses consistently with other parts of kernel
        ...
      c7c66c0c
    • Linus Torvalds's avatar
      Merge branch 'kmap_atomic' of git://github.com/congwang/linux · 9f393834
      Linus Torvalds authored
      Pull kmap_atomic cleanup from Cong Wang.
      
      It's been in -next for a long time, and it gets rid of the (no longer
      used) second argument to k[un]map_atomic().
      
      Fix up a few trivial conflicts in various drivers, and do an "evil
      merge" to catch some new uses that have come in since Cong's tree.
      
      * 'kmap_atomic' of git://github.com/congwang/linux: (59 commits)
        feature-removal-schedule.txt: schedule the deprecated form of kmap_atomic() for removal
        highmem: kill all __kmap_atomic() [swarren@nvidia.com: highmem: Fix ARM build break due to __kmap_atomic rename]
        drbd: remove the second argument of k[un]map_atomic()
        zcache: remove the second argument of k[un]map_atomic()
        gma500: remove the second argument of k[un]map_atomic()
        dm: remove the second argument of k[un]map_atomic()
        tomoyo: remove the second argument of k[un]map_atomic()
        sunrpc: remove the second argument of k[un]map_atomic()
        rds: remove the second argument of k[un]map_atomic()
        net: remove the second argument of k[un]map_atomic()
        mm: remove the second argument of k[un]map_atomic()
        lib: remove the second argument of k[un]map_atomic()
        power: remove the second argument of k[un]map_atomic()
        kdb: remove the second argument of k[un]map_atomic()
        udf: remove the second argument of k[un]map_atomic()
        ubifs: remove the second argument of k[un]map_atomic()
        squashfs: remove the second argument of k[un]map_atomic()
        reiserfs: remove the second argument of k[un]map_atomic()
        ocfs2: remove the second argument of k[un]map_atomic()
        ntfs: remove the second argument of k[un]map_atomic()
        ...
      9f393834
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · 69a7aebc
      Linus Torvalds authored
      Pull trivial tree from Jiri Kosina:
       "It's indeed trivial -- mostly documentation updates and a bunch of
        typo fixes from Masanari.
      
        There are also several linux/version.h include removals from Jesper."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (101 commits)
        kcore: fix spelling in read_kcore() comment
        constify struct pci_dev * in obvious cases
        Revert "char: Fix typo in viotape.c"
        init: fix wording error in mm_init comment
        usb: gadget: Kconfig: fix typo for 'different'
        Revert "power, max8998: Include linux/module.h just once in drivers/power/max8998_charger.c"
        writeback: fix fn name in writeback_inodes_sb_nr_if_idle() comment header
        writeback: fix typo in the writeback_control comment
        Documentation: Fix multiple typo in Documentation
        tpm_tis: fix tis_lock with respect to RCU
        Revert "media: Fix typo in mixer_drv.c and hdmi_drv.c"
        Doc: Update numastat.txt
        qla4xxx: Add missing spaces to error messages
        compiler.h: Fix typo
        security: struct security_operations kerneldoc fix
        Documentation: broken URL in libata.tmpl
        Documentation: broken URL in filesystems.tmpl
        mtd: simplify return logic in do_map_probe()
        mm: fix comment typo of truncate_inode_pages_range
        power: bq27x00: Fix typos in comment
        ...
      69a7aebc
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · d464c92b
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
       "It contains HID driver updates all over the place -- a lot of new
        hardware support especially in the multitouch area, including generic
        handling of all multitouch devices by the hid-multitiouch driver
        automatically."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (42 commits)
        HID: multitouch: add PID for Fructel product
        HID: wacom: Add reporting of wheel for Intuos4 WL
        HID: wacom: Replace __set_bit with input_set_capability
        HID: tivo: add support for BT-version (0x1200)
        HID: wacom: Reset stylus buttons - Intuos4 WL
        HID: multitouch: detect serial protocol
        HID: handle all multitouch devices through hid-multitouch
        HID: multitouch: fix handling of buggy reports descriptors for Dell ST2220T
        HID: make it possible to force hid-core claim the device
        HID: multitouch: add support for eGalax 0x722a
        HID: usbhid: add quirk no_get for quanta 3008 devices
        HID: multitouch: add more eGalax devices
        HID: multitouch: add new PID from Ideacom
        HID: multitouch: add support for Atmel maXTouch 03eb:2118
        HID: waltop: Add support for tablet with PID 0038
        HID: waltop: Replace original rdescs with links
        HID: uclogic: Replace original rdescs with links
        HID: wacom: Add pad buttons reporting on Intuos4 WL
        HID: wacom: report distance for Intuos4 WL
        HID: kye: Add support for 3 tablets
        ...
      d464c92b