17 Feb, 2011

1 commit


31 Jan, 2011

4 commits


14 Jan, 2011

35 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
    firewire: ohci: fix compilation on arches without PAGE_KERNEL_RO

    Linus Torvalds
     
  • * 'for-2.6.38/drivers' of git://git.kernel.dk/linux-2.6-block:
    cciss: reinstate proper FIFO order of command queue list
    floppy: replace NO_GEOM macro with a function

    Linus Torvalds
     
  • * 'for-2.6.38/core' of git://git.kernel.dk/linux-2.6-block: (43 commits)
    block: ensure that completion error gets properly traced
    blktrace: add missing probe argument to block_bio_complete
    block cfq: don't use atomic_t for cfq_group
    block cfq: don't use atomic_t for cfq_queue
    block: trace event block fix unassigned field
    block: add internal hd part table references
    block: fix accounting bug on cross partition merges
    kref: add kref_test_and_get
    bio-integrity: mark kintegrityd_wq highpri and CPU intensive
    block: make kblockd_workqueue smarter
    Revert "sd: implement sd_check_events()"
    block: Clean up exit_io_context() source code.
    Fix compile warnings due to missing removal of a 'ret' variable
    fs/block: type signature of major_to_index(int) to major_to_index(unsigned)
    block: convert !IS_ERR(p) && p to !IS_ERR_NOR_NULL(p)
    cfq-iosched: don't check cfqg in choose_service_tree()
    fs/splice: Pull buf->ops->confirm() from splice_from_pipe actors
    cdrom: export cdrom_check_events()
    sd: implement sd_check_events()
    sr: implement sr_check_events()
    ...

    Linus Torvalds
     
  • * 'for-linus/i2c-2638' of git://git.fluff.org/bjdooks/linux:
    i2c-bfin-twi: move setup to the earlier subsys initcall
    i2c-bfin-twi: handle faulty slave devices better
    i2c-mv64xxx: send repeated START between messages in xfer
    i2c-nomadik: fix regression on adapter name
    i2c-omap: Set latency requirements only once for several messages
    i2c-eg20t: add driver for Intel EG20T
    i2c-ocores: add some device tree documentation
    i2c-ocores: Use devres for resource allocation
    i2c-ocores: Adapt for device tree
    i2c-iop3xx: add iomem annotation

    Linus Torvalds
     
  • * 'sh-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (31 commits)
    sh: Add support for AP-SH4AD-0A board.
    sh: Add support for AP-SH4A-3A board.
    sh: Add a new mach type for alpha project boards.
    serial: sh-sci: build fixes.
    sh: sh7372 SH4AL-DSP probe support
    sh: sh7366 Enable SDIO IRQs
    sh: sh7343 Enable SDIO IRQs
    sh: mach-ecovec24: enable runtime PM for SDHI
    sh: sh7723 / ap325rxa enable SDIO IRQs
    sh: sh7722 Enable SDIO IRQs
    sh: sh7724 Enable SDIO IRQs
    sh: Fix up legacy PTEA space attribute mapping.
    sh: Stub out legacy PCC pgprot encoding for X2 TLBs.
    sh: constify prefetch pointers.
    sh: Add a machvec callback for early memblock reservations.
    sh: update sh7757lcr_defconfig
    sh: add PVR probing for SH7757 3rd cut
    sh: Use device_initcall() instead of __initcall()
    sh: intc - convert board specific landisk code
    sh: Move init_landisk_IRQ to header file
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6: (29 commits)
    video: move SH_MIPI_DSI/SH_LCD_MIPI_DSI to the top of menu
    fbdev: Implement simple blanking in pseudocolor modes for vt8500lcdfb
    video: imx: Update the manufacturer's name
    nuc900fb: don't treat NULL clk as an error
    s3c2410fb: don't treat NULL clk as an error
    video: tidy up modedb formatting.
    video: matroxfb: Correct video option in comments and kernel config help.
    fbdev: sh_mobile_hdmi: simplify pointer handling
    fbdev: sh_mobile_hdmi: framebuffer notifiers have to be registered
    fbdev: sh_mobile_hdmi: add command line option to use the preferred EDID mode
    OMAP: DSS2: Introduce omap_channel as an omap_dss_device parameter, add new overlay manager.
    OMAP: DSS2: Use dss_features to handle DISPC bits removed on OMAP4
    OMAP: DSS2: LCD2 Channel Changes for DISPC
    OMAP: DSS2: Change remaining DISPC functions for new omap_channel argument
    OMAP: DSS2: Introduce omap_channel argument to DISPC functions used by interface drivers
    OMAP: DSS2: Represent DISPC register defines with channel as parameter
    OMAP: DSS2: Add dss_features for omap4 and overlay manager related features
    OMAP: DSS2: Clean up DISPC color mode validation checks
    OMAP: DSS2: Add back authors of panel-generic.c based drivers
    OMAP: DSS2: remove generic DPI panel driver duplicated panel drivers
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (348 commits)
    ALSA: hda - Fix NULL-derefence with a single mic in STAC auto-mic detection
    ALSA: hda - Add missing NID 0x19 fixup for Sony VAIO
    ALSA: hda - Fix ALC275 enable hardware EQ for SONY VAIO
    ALSA: oxygen: fix Xonar DG input
    ALSA: hda - Fix EAPD on Lenovo NB ALC269 to low
    ALSA: hda - Fix missing EAPD for Acer 4930G
    ALSA: hda: Disable 4/6 channels on some NVIDIA GPUs.
    ALSA: hda - Add static_hdmi_pcm option to HDMI codec parser
    ALSA: hda - Don't refer ELD when unplugged
    ASoC: tpa6130a2: Fix compiler warning
    ASoC: tlv320dac33: Add DAPM selection for LOM invert
    ASoC: DMIC codec: Adding a generic DMIC codec
    ALSA: snd-usb-us122l: Fix missing NULL checks
    ALSA: snd-usb-us122l: Fix MIDI output
    ASoC: soc-cache: Fix invalid memory access during snd_soc_lzo_cache_sync()
    ASoC: Fix section mismatch in wm8995.c
    ALSA: oxygen: add S/PDIF source selection for Claro cards
    ALSA: oxygen: fix CD/MIDI for X-Meridian (2G)
    ASoC: fix migor audio build
    ALSA: include delay.h for msleep in Xonar DG support
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (41 commits)
    fs: add documentation on fallocate hole punching
    Gfs2: fail if we try to use hole punch
    Btrfs: fail if we try to use hole punch
    Ext4: fail if we try to use hole punch
    Ocfs2: handle hole punching via fallocate properly
    XFS: handle hole punching via fallocate properly
    fs: add hole punching to fallocate
    vfs: pass struct file to do_truncate on O_TRUNC opens (try #2)
    fix signedness mess in rw_verify_area() on 64bit architectures
    fs: fix kernel-doc for dcache::prepend_path
    fs: fix kernel-doc for dcache::d_validate
    sanitize ecryptfs ->mount()
    switch afs
    move internal-only parts of ncpfs headers to fs/ncpfs
    switch ncpfs
    switch 9p
    pass default dentry_operations to mount_pseudo()
    switch hostfs
    switch affs
    switch configfs
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (46 commits)
    hwrng: via_rng - Fix memory scribbling on some CPUs
    crypto: padlock - Move padlock.h into include/crypto
    hwrng: via_rng - Fix asm constraints
    crypto: n2 - use __devexit not __exit in n2_unregister_algs
    crypto: mark crypto workqueues CPU_INTENSIVE
    crypto: mv_cesa - dont return PTR_ERR() of wrong pointer
    crypto: ripemd - Set module author and update email address
    crypto: omap-sham - backlog handling fix
    crypto: gf128mul - Remove experimental tag
    crypto: af_alg - fix af_alg memory_allocated data type
    crypto: aesni-intel - Fixed build with binutils 2.16
    crypto: af_alg - Make sure sk_security is initialized on accept()ed sockets
    net: Add missing lockdep class names for af_alg
    include: Install linux/if_alg.h for user-space crypto API
    crypto: omap-aes - checkpatch --file warning fixes
    crypto: omap-aes - initialize aes module once per request
    crypto: omap-aes - unnecessary code removed
    crypto: omap-aes - error handling implementation improved
    crypto: omap-aes - redundant locking is removed
    crypto: omap-aes - DMA initialization fixes for OMAP off mode
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    rbd: fix cleanup when trying to mount inexistent image
    net/ceph: make ceph_msgr_wq non-reentrant
    ceph: fsc->*_wq's aren't used in memory reclaim path
    ceph: Always free allocated memory in osdmap_decode()
    ceph: Makefile: Remove unnessary code
    ceph: associate requests with opening sessions
    ceph: drop redundant r_mds field
    ceph: implement DIRLAYOUTHASH feature to get dir layout from MDS
    ceph: add dir_layout to inode

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
    watchdog: Add MCF548x watchdog driver.
    watchdog: add driver for the Atheros AR71XX/AR724X/AR913X SoCs
    watchdog: Add TCO support for nVidia chipsets
    watchdog: Add support for sp5100 chipset TCO
    watchdog: f71808e_wdt: add F71862FG, F71869 to Kconfig
    watchdog: iTCO_wdt: TCO Watchdog patch for Intel DH89xxCC PCH
    watchdog: iTCO_wdt: TCO Watchdog patch for Intel NM10 DeviceIDs
    watchdog: ks8695_wdt: include mach/hardware.h instead of mach/timex.h.
    watchdog: Propagate Book E WDT period changes to all cores
    watchdog: add CONFIG_WATCHDOG_NOWAYOUT support to PowerPC Book-E watchdog driver
    watchdog: alim7101_wdt: fix compiler warning on alim7101_pci_tbl
    watchdog: alim1535_wdt: fix compiler warning on ali_pci_tbl
    watchdog: Fix reboot on W83627ehf chipset.
    watchdog: Add watchdog support for W83627DHG chip
    watchdog: f71808e_wdt: Add Fintek F71869 watchdog
    watchdog: add f71862fg support
    watchdog: clean-up f71808e_wdt.c

    Linus Torvalds
     
  • * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    hwmon: (dme1737) Minor cleanups
    hwmon: (dme1737) Add support for in7 for SCH5127
    hwmon: (emc1403) Add EMC1423 support
    hwmon: (w83627hf) Document W83627THF voltage pin mapping
    hwmon: (w83793) Drop useless mutex
    hwmon: (fschmd) Drop useless mutex
    hwmon: (w83781d) Use pr_fmt and pr_
    hwmon: (pc87427) Use pr_fmt and pr_
    hwmon: (pc87360) Use pr_fmt and pr_
    hwmon: (lm78) Use pr_fmt and pr_
    hwmon: (it87) Use pr_fmt and pr_
    hwmon: Schedule the removal of the old intrusion detection interfaces
    hwmon: (w83793) Implement the standard intrusion detection interface
    hwmon: (w83792d) Implement the standard intrusion detection interface
    hwmon: (adm9240) Implement the standard intrusion detection interface
    hwmon: (via686a) Initialize fan_div values
    hwmon: (w83795) Silent false warning from gcc
    hwmon: (ads7828) Update email contact details

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6: (45 commits)
    regulator: missing index in PTR_ERR() in isl6271a_probe()
    regulator: Assign return value of mc13xxx_reg_rmw to ret
    regulator: Add initial per-regulator debugfs support
    regulator: Make regulator_has_full_constraints a bool
    regulator: Clean up logging a bit
    regulator: Optimise out noop voltage changes
    regulator: Add API to re-apply voltage to hardware
    regulator: Staticise non-exported functions in mc13892
    regulator: Only notify voltage changes when they succeed
    regulator: Provide a selector based set_voltage_sel() operation
    regulator: Factor out voltage set operation into a separate function
    regulator: Convert WM8994 to use get_voltage_sel()
    regulator: Convert WM835x to use get_voltage_sel()
    regulator: Allow modular build of mc13xxx-core
    regulator: support PMIC mc13892
    make mc13783 regulator code generic
    Change the register name definitions for mc13783
    mach-ux500: Updated and connected ab8500 regulator board configuration
    regulators: Removed macros for initialization of ab8500 regulators
    regulators: Added verbose debug messages to ab8500 regulators
    ...

    Linus Torvalds
     
  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)
    Documentation/trace/events.txt: Remove obsolete sched_signal_send.
    writeback: fix global_dirty_limits comment runtime -> real-time
    ppc: fix comment typo singal -> signal
    drivers: fix comment typo diable -> disable.
    m68k: fix comment typo diable -> disable.
    wireless: comment typo fix diable -> disable.
    media: comment typo fix diable -> disable.
    remove doc for obsolete dynamic-printk kernel-parameter
    remove extraneous 'is' from Documentation/iostats.txt
    Fix spelling milisec -> ms in snd_ps3 module parameter description
    Fix spelling mistakes in comments
    Revert conflicting V4L changes
    i7core_edac: fix typos in comments
    mm/rmap.c: fix comment
    sound, ca0106: Fix assignment to 'channel'.
    hrtimer: fix a typo in comment
    init/Kconfig: fix typo
    anon_inodes: fix wrong function name in comment
    fix comment typos concerning "consistent"
    poll: fix a typo in comment
    ...

    Fix up trivial conflicts in:
    - drivers/net/wireless/iwlwifi/iwl-core.c (moved to iwl-legacy.c)
    - fs/ext4/ext4.h

    Also fix missed 'diabled' typo in drivers/net/bnx2x/bnx2x.h while at it.

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: hid-multitouch: minor fixes based on additional review
    HID: Switch turbox/mosart touchscreen to hid-mosart
    HID: add Add Cando touch screen 10.1-inch product id
    HID: hid-mulitouch: add support for the 'Sensing Win7-TwoFinger'
    HID: hid-multitouch: add support for Cypress TrueTouch panels
    HID: hid-multitouch: support for PixCir-based panels
    HID: set HID_MAX_FIELD at 128
    HID: add feature_mapping callback

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: add SW_ROTATE_LOCK switch type
    Input: fix force feedback capability query example
    Input: wacom_w8001 - add single-touch support
    Input: add Austria Microsystem AS5011 joystick driver
    Input: remove aaed2000 keyboard driver
    Input: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13
    Input: cy8ctmg110_ts - Convert to dev_pm_ops
    Input: migor_ts - convert to dev_pm_ops
    Input: mcs5000_ts - convert to dev_pm_ops
    Input: eeti_ts - convert to dev_pm_ops
    Input: ad7879 - convert I2C to dev_pm_ops

    Linus Torvalds
     
  • Cc: Ahmed S. Darwish
    Cc: Kyungmin Park
    Cc: Marco Stornelli
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • When hypervisor decides to decrease target balloon size while the balloon
    driver tries to lock pages hypervisor may respond with
    VMW_BALLOON_PPN_NOTNEEDED. Use this data and immediately stop reserving
    pages and wait for the next update cycle to fetch new target instead of
    continuing trying to lock pages until size of refused list grows above
    VMW_BALLOON_MAX_REFUSED (16) pages.

    As a result the driver stops bothering the hypervisor with its attempts to
    lock more pages that are not needed anymore. Most likely next order from
    hypervisor will be to reduce ballon size anyway.

    It is a small optimization.

    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitry Torokhov
     
  • This is a 1-wire/w1 DS2423 slave driver for reading the values from all 4
    counters available DS2423 devices by using standard w1_slave file. In
    ds2423 the counters are tied to ram pages 12-15 in and each of those
    ram-pages. Each of these counter values (and asoociated ram page values)
    are represented as a own line in w1_slave file. Driver has been tested on
    mips and x86.

    usage example:
    cat /sys/bus/w1/devices/1d-00000009b964/w1_slave

    00 02 00 00 00 00 00 00 00 6d 38 00 ff ff 00 00 fe ff 00 00 ff ff 00 00 ff
    ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff crc=YES c=2
    00 02 00 00 00 00 00 00 00 e0 1f 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff
    ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff crc=YES c=2
    00 5a 0e 5f 18 00 00 00 00 0b 28 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff
    ff 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 ff ff crc=YES c=408882778
    00 05 00 00 00 00 00 00 00 8d 39 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff crc=YES c=5

    Patch includes also the documentation.

    [randy.dunlap@oracle.com: fix ds2423 build, needs to select CRC16]
    Signed-off-by: Mika Laitio
    Signed-off-by: Randy Dunlap
    Cc: Evgeniy Polyakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mika Laitio
     
  • Apart from currently used standard memstick data transfer method, Sony
    introduced several newer ones, to uncover full bandwidth/capacity of its
    Pro, HG and XC media formats. This patch lays a foundation to enable
    those methods as made possible by host/media capabilities.

    As a side effect of this patch, mspro_block_read_attributes became more
    streamlined and readable.

    [akpm@linux-foundation.org: fix printk warning]
    Signed-off-by: Alex Dubov
    Reported-by: Maxim Levitsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alex Dubov
     
  • mspro_block_mutex is identical in scope to mspro_block_disk_lock and therefore
    unnecessary.

    Signed-off-by: Alex Dubov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alex Dubov
     
  • Implement the usual pattern around idr_pre_get() and idr_get_new() to
    handlethe situation where another thread concurrently steals this thread's
    idr_pre_get() preallocation.

    Signed-off-by: Alex Dubov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alex Dubov
     
  • Signed-off-by: Aries Lee
    Signed-off-by: Takashi Iwai
    Cc: Alex Dubov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Takashi Iwai
     
  • Add a function jmb38x_ms_pmos() to enable / disable PMOS setups for
    JMicron 38x controllers.

    Signed-off-by: Aries Lee
    Signed-off-by: Takashi Iwai
    Cc: Alex Dubov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Takashi Iwai
     
  • This patch corrects the definition of clock values for JMicron 38x
    controllers and sets the value properly per interface type.
    Also, it adds a check for TPC errors in the interrupt handler.

    Signed-off-by: Aries Lee
    Signed-off-by: Takashi Iwai
    Cc: Alex Dubov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Takashi Iwai
     
  • If device_register() fails then call put_device(). See comment to
    device_register.

    Signed-off-by: Vasiliy Kulikov
    Cc: Maxim Levitsky
    Cc: Alex Dubov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vasiliy Kulikov
     
  • Add PPS signal generator which utilizes STROBE pin of a parallel port to
    send PPS signals. It uses parport abstraction layer and hrtimers to
    precisely control the signal.

    Signed-off-by: Alexander Gordeev
    Cc: Rodolfo Giometti
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Gordeev
     
  • Add PPS signal generator which utilizes STROBE pin of a parallel port to
    send PPS signals. It uses parport abstraction layer and hrtimers to
    precisely control the signal.

    [akpm@linux-foundation.org: fix build]
    Signed-off-by: Alexander Gordeev
    Acked-by: Rodolfo Giometti
    Cc: john stultz
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Gordeev
     
  • Add parallel port PPS client. It uses a standard method for capturing
    timestamps for assert edge transitions: getting a timestamp soon after an
    interrupt has happened.

    This is not a very precise source of time information due to interrupt
    handling delays. However, timestamps for clear edge transitions are much
    more precise because the interrupt handler continuously polls hardware
    port until the transition is done.

    Hardware port operations require only about 1us so the maximum error
    should not exceed this value. This was my primary goal when developing
    this client.

    Clear edge capture could be disabled using clear_wait parameter.

    Signed-off-by: Alexander Gordeev
    Acked-by: Rodolfo Giometti
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Gordeev
     
  • Add an optional feature of PPSAPI, kernel consumer support, which uses the
    added hardpps() function.

    Signed-off-by: Alexander Gordeev
    Acked-by: Rodolfo Giometti
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Gordeev
     
  • This commit adds hardpps() implementation based upon the original one from
    the NTPv4 reference kernel code from David Mills. However, it is highly
    optimized towards very fast syncronization and maximum stickness to PPS
    signal. The typical error is less then a microsecond.

    To make it sync faster I had to throw away exponential phase filter so
    that the full phase offset is corrected immediately. Then I also had to
    throw away median phase filter because it gives a bigger error itself if
    used without exponential filter.

    Maybe we will find an appropriate filtering scheme in the future but it's
    not necessary if the signal quality is ok.

    Signed-off-by: Alexander Gordeev
    Acked-by: John Stultz
    Cc: Rodolfo Giometti
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Gordeev
     
  • Remove the code that gatheres timestamp in pps_tty_dcd_change() in case
    passed ts parameter is NULL because it never happens in the current code.
    Fix comments as well.

    Signed-off-by: Alexander Gordeev
    Acked-by: Rodolfo Giometti
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Gordeev
     
  • Bitwise conjunction is distributive so we can simplify some conditions.

    Signed-off-by: Alexander Gordeev
    Acked-by: Rodolfo Giometti
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Gordeev
     
  • This way less overhead is involved when running production kernel. If you
    want to debug a pps client module please define DEBUG to enable the
    checks.

    Signed-off-by: Alexander Gordeev
    Acked-by: Rodolfo Giometti
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Gordeev
     
  • Now pps_idr_lock is never used in interrupt context so we can replace
    spin_lock_irq/spin_unlock_irq with plain spin_lock/spin_unlock. But
    there is also a potential race condition when someone can steal an id
    which was allocated by idr_pre_get before it is used. So convert spin
    lock to mutex and protect the whole id generation process.

    Signed-off-by: Alexander Gordeev
    Cc: Rodolfo Giometti
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Gordeev