1. 16 Apr, 2012 1 commit
  2. 15 Apr, 2012 1 commit
  3. 14 Apr, 2012 11 commits
    • Chanho Park's avatar
      perf archive: Correct cutting of symbolic link · e3b61933
      Chanho Park authored
      If a '$PERF_BUILDID_DIR'(typically $HOME/.debug) is a symbolic link
      directory, cutting of the path will fail.
      
      Here is an example where a buildid directory is a symbolic link.
      
      / # ls -al /root
      lrwxrwxrwx    1 root     root            13 Mar 26  2012 /root -> opt/home/root
      / # cd ~
      /opt/home/root # perf record -a -g sleep 1
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.322 MB perf.data (~14057 samples) ]
      /opt/home/root # perf archive
      tar: Removing leading `/' from member names
      Now please run:
      
      $ tar xvf perf.data.tar.bz2 -C ~/.debug
      
      wherever you need to run 'perf report' on.
      /opt/home/root # mkdir temp
      /opt/home/root # tar xf perf.data.tar.bz2 -C ./temp
      /opt/home/root # find ./temp -name "*kernel*"
      ./temp/opt/home/root/.debug/[kernel.kallsyms]
      
      -> If successfully cut off the path, [kernel.kallsyms] is located
      in top of the archived file.
      
      This patch enables to cut correctly even if the buildid directory
      is a symbolic link.
      Signed-off-by: default avatarChanho Park <chanho61.park@samsung.com>
      Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1333348109-12598-1-git-send-email-chanho61.park@samsung.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e3b61933
    • Namhyung Kim's avatar
      perf tools: Ignore auto-generated bison/flex files · 77394ad6
      Namhyung Kim authored
      The commit 65f3e56e ("perf tools: Remove auto-generated bison/flex
      files") removed those files from git, so they'll be listed on untracked
      files after building perf. Fix it.
      Signed-off-by: default avatarNamhyung Kim <namhyung.kim@lge.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1333948274-20043-1-git-send-email-namhyung.kim@lge.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      77394ad6
    • Jiri Olsa's avatar
      perf tools: Fix parsers' rules to dependencies · 2a5204fe
      Jiri Olsa authored
      Currently the parsers objects (bison/flex related) are each time perf
      is built. No matter the generated files are already in place, the
      parser generation is executed every time.
      
      Changing the rules to have proper flex/bison objects generation
      dependencies.
      
      The parsers code is not rebuilt until the flex/bison source files
      are touched. Also when flex/bison source is changed, only dependent
      objects are rebuilt.
      Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1334140791-3024-1-git-send-email-jolsa@redhat.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      2a5204fe
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bfecc60d
      Linus Torvalds authored
      Pull perf tool fixes from Ingo Molnar.
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf kvm: Finding struct machine fails for PERF_RECORD_MMAP
        perf annotate: Validate addr in symbol__inc_addr_samples
        perf hists browser: Fix NULL deref in hists browsing code
        perf hists: Catch and handle out-of-date hist entry maps.
        perf annotate: Fix hist decay
        perf top: Add intel_idle to the skip list
      bfecc60d
    • Lubos Lunak's avatar
      do not export kernel's NULL #define to userspace · 2084c24a
      Lubos Lunak authored
      GCC's NULL is actually __null, which allows detecting some questionable
      NULL usage and warn about it.  Moreover each platform/compiler should
      have its own stddef.h anyway (which is different from linux/stddef.h).
      
      So there's no good reason to leak kernel's NULL to userspace and
      override what the compiler provides.
      Signed-off-by: default avatarLuboš Luňák <l.lunak@suse.cz>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2084c24a
    • Linus Torvalds's avatar
      Merge branch 'systemh-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux · 668ce0ac
      Linus Torvalds authored
      Pull system.h fixups for less common arch's from Paul Gortmaker:
       "Here is what is hopefully the last of the system.h related fixups.
      
        The fixes for Alpha and ia64 are code relocations consistent with what
        was done for the more mainstream architectures.  Note that the
        diffstat lines removed vs lines added are not the same since I've
        fixed some of the whitespace issues in the relocated code blocks.
        However they are functionally the same.  Compile tested locally, plus
        these two have been in linux-next for a while.
      
        There is also a trivial one line system.h related fix for the Tilera
        arch from Chris Metcalf to fix an implict include.."
      
      * 'systemh-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
        irq_work: fix compile failure on tile from missing include
        ia64: populate the cmpxchg header with appropriate code
        alpha: fix build failures from system.h dismemberment
      668ce0ac
    • Linus Torvalds's avatar
      Merge tag 'fbdev-fixes-for-3.4-1' of git://github.com/schandinat/linux-2.6 · a1c0cad3
      Linus Torvalds authored
      Pull fbdev fixes from Florian Tobias Schandinat:
       - a compile fix for au1*fb
       - a fix to make kyrofb usable on x86_64
       - a fix for uvesafb to prevent an oops due to NX-protection
      
       "The fix for kyrofb is a bit large but it's just replacing "unsigned
        long" by "u32" for 64 bit compatibility."
      
      * tag 'fbdev-fixes-for-3.4-1' of git://github.com/schandinat/linux-2.6:
        video:uvesafb: Fix oops that uvesafb try to execute NX-protected page
        fbdev: fix au1*fb builds
        kyrofb: fix on x86_64
      a1c0cad3
    • Linus Torvalds's avatar
      Merge branch 'for-linus-min' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 659e45d8
      Linus Torvalds authored
      Pull the minimal btrfs branch from Chris Mason:
       "We have a use-after-free in there, along with errors when mount -o
        discard is enabled, and a BUG_ON(we should compile with UP more
        often)."
      
      * 'for-linus-min' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: use commit root when loading free space cache
        Btrfs: fix use-after-free in __btrfs_end_transaction
        Btrfs: check return value of bio_alloc() properly
        Btrfs: remove lock assert from get_restripe_target()
        Btrfs: fix eof while discarding extents
        Btrfs: fix uninit variable in repair_eb_io_failure
        Revert "Btrfs: increase the global block reserve estimates"
      659e45d8
    • Linus Torvalds's avatar
      Merge branch 'for-3.4/drivers' of git://git.kernel.dk/linux-block · c104f1fa
      Linus Torvalds authored
      Pull block driver bits from Jens Axboe:
      
       - A series of fixes for mtip32xx.  Most from Asai at Micron, but also
         one from Greg, getting rid of the dependency on PCIE_HOTPLUG.
      
       - A few bug fixes for xen-blkfront, and blkback.
      
       - A virtio-blk fix for Vivek, making resize actually work.
      
       - Two fixes from Stephen, making larger transfers possible on cciss.
         This is needed for tape drive support.
      
      * 'for-3.4/drivers' of git://git.kernel.dk/linux-block:
        block: mtip32xx: remove HOTPLUG_PCI_PCIE dependancy
        mtip32xx: dump tagmap on failure
        mtip32xx: fix handling of commands in various scenarios
        mtip32xx: Shorten macro names
        mtip32xx: misc changes
        mtip32xx: Add new sysfs entry 'status'
        mtip32xx: make setting comp_time as common
        mtip32xx: Add new bitwise flag 'dd_flag'
        mtip32xx: fix error handling in mtip_init()
        virtio-blk: Call revalidate_disk() upon online disk resize
        xen/blkback: Make optional features be really optional.
        xen/blkback: Squash the discard support for 'file' and 'phy' type.
        mtip32xx: fix incorrect value set for drv_cleanup_done, and re-initialize and start port in mtip_restart_port()
        cciss: Fix scsi tape io with more than 255 scatter gather elements
        cciss: Initialize scsi host max_sectors for tape drive support
        xen-blkfront: make blkif_io_lock spinlock per-device
        xen/blkfront: don't put bdev right after getting it
        xen-blkfront: use bitmap_set() and bitmap_clear()
        xen/blkback: Enable blkback on HVM guests
        xen/blkback: use grant-table.c hypercall wrappers
      c104f1fa
    • Linus Torvalds's avatar
      Merge branch 'for-3.4/core' of git://git.kernel.dk/linux-block · d8dd0b6d
      Linus Torvalds authored
      Pull block core bits from Jens Axboe:
       "It's a nice and quiet round this time, since most of the tricky stuff
        has been pushed to 3.5 to give it more time to mature.  After a few
        hectic block IO core changes for 3.3 and 3.2, I'm quite happy with a
        slow round.
      
        Really minor stuff in here, the only real functional change is making
        the auto-unplug threshold a per-queue entity.  The threshold is set so
        that it's low enough that we don't hold off IO for too long, but still
        big enough to get a nice benefit from the batched insert (and hence
        queue lock cost reduction).  For raid configurations, this currently
        breaks down."
      
      * 'for-3.4/core' of git://git.kernel.dk/linux-block:
        block: make auto block plug flush threshold per-disk based
        Documentation: Add sysfs ABI change for cfq's target latency.
        block: Make cfq_target_latency tunable through sysfs.
        block: use lockdep_assert_held for queue locking
        block: blk_alloc_queue_node(): use caller's GFP flags instead of GFP_KERNEL
      d8dd0b6d
    • Kevin Hilman's avatar
      cpufreq: OMAP: fix build errors: depends on ARCH_OMAP2PLUS · 2d59dcfb
      Kevin Hilman authored
      The OMAP driver needs a 'depends on ARCH_OMAP2PLUS' since it only
      builds for OMAP2+ platforms.
      
      This 'depends on' was in the original patch from Russell King, but was
      erroneously removed by me when making this option user-selectable in
      commit b09db45c (cpufreq: OMAP driver depends CPUfreq tables.)  This
      patch remedies that.
      
      Apologies to Russell King for breaking his originally working patch.
      
      Also, thanks to Grazvydas Ignotas for reporting the same problem.
      
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Cc: Grazvydas Ignotas <notasas@gmail.com>
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2d59dcfb
  4. 13 Apr, 2012 15 commits
  5. 12 Apr, 2012 12 commits
    • Linus Torvalds's avatar
      Merge tag 'usb-3.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 7c427f45
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are a number of fixes for the USB core and drivers for 3.4-rc2
      
        Lots of tiny xhci fixes here, a few usb-serial driver fixes and new
        device ids, and a smattering of other minor fixes in different USB
        drivers.
      
        Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
      
      * tag 'usb-3.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (30 commits)
        USB: update usbtmc api documentation
        xHCI: Correct the #define XHCI_LEGACY_DISABLE_SMI
        xHCI: use gfp flags from caller instead of GFP_ATOMIC
        xHCI: add XHCI_RESET_ON_RESUME quirk for VIA xHCI host
        USB: fix bug of device descriptor got from superspeed device
        xhci: Fix register save/restore order.
        xhci: Restore event ring dequeue pointer on resume.
        xhci: Don't write zeroed pointers to xHC registers.
        xhci: Warn when hosts don't halt.
        xhci: don't re-enable IE constantly
        usb: xhci: fix section mismatch in linux-next
        xHCI: correct to print the true HSEE of USBCMD
        USB: serial: fix race between probe and open
        UHCI: hub_status_data should indicate if ports are resuming
        EHCI: keep track of ports being resumed and indicate in hub_status_data
        USB: fix race between root-hub suspend and remote wakeup
        USB: sierra: add support for Sierra Wireless MC7710
        USB: ftdi_sio: fix race condition in TIOCMIWAIT, and abort of TIOCMIWAIT when the device is removed
        USB: ftdi_sio: fix status line change handling for TIOCMIWAIT and TIOCGICOUNT
        USB: don't ignore suspend errors for root hubs
        ...
      7c427f45
    • Linus Torvalds's avatar
      Merge tag 'tty-3.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · f4f9c1ac
      Linus Torvalds authored
      Pull tty and serial fixes from Greg KH:
       "Here are some tty and serial fixes for 3.4-rc2.
      
        Most important here is the pl011 fix, which has been reported by about
        100 different people, which means more people use it than I expected
        :)
      
        There are also some 8250 driver reverts due to some problems reported
        by them.  And other minor fixes as well.
      
        Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
      
      * tag 'tty-3.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        pch_uart: Add Kontron COMe-mTT10 uart clock quirk
        pch_uart: Fix MSI setting issue
        serial/8250_pci: add a "force background timer" flag and use it for the "kt" serial port
        Revert "serial/8250_pci: setup-quirk workaround for the kt serial controller"
        Revert "serial/8250_pci: init-quirk msi support for kt serial controller"
        tty/serial/omap: console can only be built-in
        serial: samsung: fix omission initialize ulcon in reset port fn()
        printk(): add KERN_CONT where needed in hpet and vt code
        tty/serial: atmel_serial: fix RS485 half-duplex problem
        tty: serial: altera_uart: Check for NULL platform_data in probe.
        isdn/gigaset: use gig_dbg() for debugging output
        omap-serial: Fix the error handling in the omap_serial probe
        serial: PL011: move interrupt clearing
      f4f9c1ac
    • Linus Torvalds's avatar
      Merge tag 'staging-3.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 3dbc35a3
      Linus Torvalds authored
      Pull staging tree fixes from Greg KH:
       "Here are a number of bugfixes for the drivers/staging/ portion of the
        kernel that have been reported recently.
      
        Nothing major here, with maybe the exception of the ramster code can
        now be built so it is enabled in the build again, and lots of memory
        leaks that people like to have fixed on their systems.
      
        Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
      
      * tag 'staging-3.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: android: fix mem leaks in __persistent_ram_init()
        staging: vt6656: Don't leak memory in drivers/staging/vt6656/ioctl.c::private_ioctl()
        staging: iio: hmc5843: Fix crash in probe function.
        staging/xgifb: fix display on XGI Volari Z11m cards
        Staging: android: timed_gpio: Fix resource leak in timed_gpio_probe error paths
        android: make persistent_ram based drivers depend on HAVE_MEMBLOCK
        staging: iio: ak8975: Remove i2c client data corruption
        staging: drm/omap: move where DMM driver is registered
        staging: zsmalloc: fix memory leak
        Staging: rts_pstor: off by one in for loop
        staging: ozwpan: Added new maintainer for ozwpan
        staging:rts_pstor:Avoid "Bad target number" message when probing driver
        staging:rts_pstor:Fix possible panic by NULL pointer dereference
        Staging: vt6655-6: check keysize before memcpy()
        staging/media/as102: Don't call release_firmware() on uninitialized variable
        staging:iio:core add missing increment of loop index in iio_map_array_unregister()
        staging: ramster: unbreak my heart
        staging/vme: Fix module parameters
        staging: sep: Fix sign of error
      3dbc35a3
    • Linus Torvalds's avatar
      Merge tag 'driver-core-3.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · f5ad5010
      Linus Torvalds authored
      Pull driver core and kobject fixes from Greg KH:
       "Here are some minor fixes for the driver core and kobjects that people
        have reported recently.
      
        Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
      
      * tag 'driver-core-3.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        kobject: provide more diagnostic info for kobject_add_internal() failures
        sysfs: handle 'parent deleted before child added'
        sysfs: Prevent crash on unset sysfs group attributes
        sysfs: Update the name hash for an entry after changing the namespace
        drivers/base: fix compiler warning in SoC export driver - idr should be ida
        drivers/base: Remove unneeded spin_lock_init call for soc_lock
      f5ad5010
    • Linus Torvalds's avatar
      Merge tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6 · b3dfd76c
      Linus Torvalds authored
      Pull a fix for the recent irqdomain bug fixes from Grant Likely:
       "I flubbed one patch in the last pull request which broke a format
        string on 64 bit platforms.  Here's the fix."
      
      * tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6:
        irq_domain: fix type mismatch in debugfs output format
      b3dfd76c
    • Grant Likely's avatar
      irq_domain: fix type mismatch in debugfs output format · 5269a9ab
      Grant Likely authored
      sizeof(void*) returns an unsigned long, but it was being used as a width parameter to a "%-*s" format string which requires an int.  On 64 bit platforms this causes a type mismatch:
      
          linux/kernel/irq/irqdomain.c:575: warning: field width should have type
          'int', but argument 6 has type 'long unsigned int'
      
      This change casts the size to an int so printf gets the right data type.
      Reported-by: default avatarAndreas Schwab <schwab@linux-m68k.org>
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      Cc: David Daney <david.daney@cavium.com>
      5269a9ab
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9b1ef1de
      Linus Torvalds authored
      Pull trivial perf build failure fix from Thomas Gleixner.
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf tools: Fix getrusage() related build failure on glibc trunk
      9b1ef1de
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ccb1ec95
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "The itimer removal one is not strictly a fix, but I really wanted to
        avoid a rebase of the urgent ones."
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Revert "clocksource: Load the ACPI PM clocksource asynchronously"
        clockevents: tTack broadcast device mode change in tick_broadcast_switch_to_oneshot()
        itimer: Use printk_once instead of WARN_ONCE
        nohz: Fix stale jiffies update in tick_nohz_restart()
        tick: Document TICK_ONESHOT config option
        proc: stats: Use arch_idle_time for idle and iowait times if available
        itimer: Schedule silent NULL pointer fixup in setitimer() for removal
      ccb1ec95
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4a1d7544
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner.
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Use correct byte-sized register constraint in __add()
        x86: Use correct byte-sized register constraint in __xchg_op()
        x86: vsyscall: Use NULL instead 0 for a pointer argument
      4a1d7544
    • Jesper Juhl's avatar
      staging: android: fix mem leaks in __persistent_ram_init() · 474a8988
      Jesper Juhl authored
      If, in __persistent_ram_init(), the call to
      persistent_ram_buffer_init() fails or the call to
      persistent_ram_init_ecc() fails then we fail to free the memory we
      allocated to 'prz' with kzalloc() - thus leaking it.
      
      To prevent the leaks I consolidated all error exits from the function
      at a 'err:' label at the end and made all error cases jump to that
      label where we can then make sure we always free 'prz'. This is safe
      since all the situations where the code bails out happen before 'prz'
      has been stored anywhere and although we'll do a redundant kfree(NULL)
      call in the case of kzalloc() itself failing that's OK since kfree()
      deals gracefully with NULL pointers and I felt it was more important
      to keep all error exits at a single location than to avoid that one
      harmless/redundant kfree() on a error path.
      Signed-off-by: default avatarJesper Juhl <jj@chaosbits.net>
      Acked-by: default avatarColin Cross <ccross@android.com>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      474a8988
    • Jesper Juhl's avatar
      staging: vt6656: Don't leak memory in drivers/staging/vt6656/ioctl.c::private_ioctl() · 17b7e1ba
      Jesper Juhl authored
      If copy_to_user() fails in the WLAN_CMD_GET_NODE_LIST case of the
      switch in drivers/staging/vt6656/ioctl.c::private_ioctl() we'll leak
      the memory allocated to 'pNodeList'. Fix that by kfree'ing the memory
      in the failure case.
      Also remove a pointless cast (to type 'PSNodeList') of a kmalloc()
      return value - kmalloc() returns a void pointer that is implicitly
      converted, so there is no need for an explicit cast.
      Signed-off-by: default avatarJesper Juhl <jj@chaosbits.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      17b7e1ba
    • Marek Belisko's avatar
      staging: iio: hmc5843: Fix crash in probe function. · 62d2feb9
      Marek Belisko authored
      Fix crash after issuing:
      	echo hmc5843 0x1e > /sys/class/i2c-dev/i2c-2/device/new_device
      
      	[   37.180999] device: '2-001e': device_add
      	[   37.188293] bus: 'i2c': add device 2-001e
      	[   37.194549] PM: Adding info for i2c:2-001e
      	[   37.200958] bus: 'i2c': driver_probe_device: matched device 2-001e with driver hmc5843
      	[   37.210815] bus: 'i2c': really_probe: probing driver hmc5843 with device 2-001e
      	[   37.224884] HMC5843 initialized
      	[   37.228759] ------------[ cut here ]------------
      	[   37.233612] kernel BUG at mm/slab.c:505!
      	[   37.237701] Internal error: Oops - BUG: 0 [#1] PREEMPT
      	[   37.243103] Modules linked in:
      	[   37.246337] CPU: 0    Not tainted  (3.3.1-gta04+ #28)
      	[   37.251647] PC is at kfree+0x84/0x144
      	[   37.255493] LR is at kfree+0x20/0x144
      	[   37.259338] pc : [<c00b408c>]    lr : [<c00b4028>]    psr: 40000093
      	[   37.259368] sp : de249cd8  ip : 0000000c  fp : 00000090
      	[   37.271362] r10: 0000000a  r9 : de229eac  r8 : c0236274
      	[   37.276855] r7 : c09d6490  r6 : a0000013  r5 : de229c00  r4 : de229c10
      	[   37.283691] r3 : c0f00218  r2 : 00000400  r1 : c0eea000  r0 : c00b4028
      	[   37.290527] Flags: nZcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
      	[   37.298095] Control: 10c5387d  Table: 9e1d0019  DAC: 00000015
      	[   37.304107] Process sh (pid: 91, stack limit = 0xde2482f0)
      	[   37.309844] Stack: (0xde249cd8 to 0xde24a000)
      	[   37.314422] 9cc0:                                                       de229c10 de229c00
      	[   37.322998] 9ce0: de229c10 ffffffea 00000005 c0236274 de140a80 c00b4798 dec00080 de140a80
      	[   37.331573] 9d00: c032f37c dec00080 000080d0 00000001 de229c00 de229c10 c048d578 00000005
      	[   37.340148] 9d20: de229eac 0000000a 00000090 c032fa40 00000001 00000000 00000001 de229c10
      	[   37.348724] 9d40: de229eac 00000029 c075b558 00000001 00000003 00000004 de229c10 c048d594
      	[   37.357299] 9d60: 00000000 60000013 00000018 205b0007 37332020 3432322e 5d343838 c0060020
      	[   37.365905] 9d80: de251600 00000001 00000000 de251600 00000001 c0065a84 de229c00 de229c48
      	[   37.374481] 9da0: 00000006 0048d62c de229c38 de229c00 de229c00 de1f6c00 de1f6c20 00000001
      	[   37.383056] 9dc0: 00000000 c048d62c 00000000 de229c00 de229c00 de1f6c00 de1f6c20 00000001
      	[   37.391632] 9de0: 00000000 c048d62c 00000000 c0330164 00000000 de1f6c20 c048d62c de1f6c00
      	[   37.400207] 9e00: c0330078 de1f6c04 c078d714 de189b58 00000000 c02ccfd8 de1f6c20 c0795f40
      	[   37.408782] 9e20: c0238330 00000000 00000000 c02381a8 de1b9fc0 de1f6c20 de1f6c20 de249e48
      	[   37.417358] 9e40: c0238330 c0236bb0 decdbed8 de7d0f14 de1f6c20 de1f6c20 de1f6c54 de1f6c20
      	[   37.425933] 9e60: 00000000 c0238030 de1f6c20 c078d7bc de1f6c20 c02377ec de1f6c20 de1f6c28
      	[   37.434509] 9e80: dee64cb0 c0236138 c047c554 de189b58 00000000 c004b45c de1f6c20 de1f6cd8
      	[   37.443084] 9ea0: c0edfa6c de1f6c00 dee64c68 de1f6c04 de1f6c20 dee64cb8 c047c554 de189b58
      	[   37.451690] 9ec0: 00000000 c02cd634 dee64c68 de249ef4 de23b008 dee64cb0 0000000d de23b000
      	[   37.460266] 9ee0: de23b007 c02cd78c 00000002 00000000 00000000 35636d68 00333438 00000000
      	[   37.468841] 9f00: 00000000 00000000 001e0000 00000000 00000000 00000000 00000000 0a10cec0
      	[   37.477416] 9f20: 00000002 de249f80 0000000d dee62990 de189b40 c0234d88 0000000d c010c354
      	[   37.485992] 9f40: 0000000d de210f28 000acc88 de249f80 0000000d de248000 00000000 c00b7bf8
      	[   37.494567] 9f60: de210f28 000acc88 de210f28 000acc88 00000000 00000000 0000000d c00b7ed8
      	[   37.503143] 9f80: 00000000 00000000 0000000d 00000000 0007fa28 0000000d 000acc88 00000004
      	[   37.511718] 9fa0: c000e544 c000e380 0007fa28 0000000d 00000001 000acc88 0000000d 00000000
      	[   37.520294] 9fc0: 0007fa28 0000000d 000acc88 00000004 00000001 00000020 00000002 00000000
      	[   37.528869] 9fe0: 00000000 beab8624 0000ea05 b6eaebac 600d0010 00000001 00000000 00000000
      	[   37.537475] [<c00b408c>] (kfree+0x84/0x144) from [<c0236274>] (device_add+0x530/0x57c)
      	[   37.545806] [<c0236274>] (device_add+0x530/0x57c) from [<c032fa40>] (iio_device_register+0x8c8/0x990)
      	[   37.555480] [<c032fa40>] (iio_device_register+0x8c8/0x990) from [<c0330164>] (hmc5843_probe+0xec/0x114)
      	[   37.565338] [<c0330164>] (hmc5843_probe+0xec/0x114) from [<c02ccfd8>] (i2c_device_probe+0xc4/0xf8)
      	[   37.574737] [<c02ccfd8>] (i2c_device_probe+0xc4/0xf8) from [<c02381a8>] (driver_probe_device+0x118/0x218)
      	[   37.584777] [<c02381a8>] (driver_probe_device+0x118/0x218) from [<c0236bb0>] (bus_for_each_drv+0x4c/0x84)
      	[   37.594818] [<c0236bb0>] (bus_for_each_drv+0x4c/0x84) from [<c0238030>] (device_attach+0x78/0xa4)
      	[   37.604125] [<c0238030>] (device_attach+0x78/0xa4) from [<c02377ec>] (bus_probe_device+0x28/0x9c)
      	[   37.613433] [<c02377ec>] (bus_probe_device+0x28/0x9c) from [<c0236138>] (device_add+0x3f4/0x57c)
      	[   37.622650] [<c0236138>] (device_add+0x3f4/0x57c) from [<c02cd634>] (i2c_new_device+0xf8/0x19c)
      	[   37.631805] [<c02cd634>] (i2c_new_device+0xf8/0x19c) from [<c02cd78c>] (i2c_sysfs_new_device+0xb4/0x130)
      	[   37.641754] [<c02cd78c>] (i2c_sysfs_new_device+0xb4/0x130) from [<c0234d88>] (dev_attr_store+0x18/0x24)
      	[   37.651611] [<c0234d88>] (dev_attr_store+0x18/0x24) from [<c010c354>] (sysfs_write_file+0x10c/0x140)
      	[   37.661193] [<c010c354>] (sysfs_write_file+0x10c/0x140) from [<c00b7bf8>] (vfs_write+0xb0/0x178)
      	[   37.670410] [<c00b7bf8>] (vfs_write+0xb0/0x178) from [<c00b7ed8>] (sys_write+0x3c/0x68)
      	[   37.678833] [<c00b7ed8>] (sys_write+0x3c/0x68) from [<c000e380>] (ret_fast_syscall+0x0/0x3c)
      	[   37.687683] Code: 1593301c e5932000 e3120080 1a000000 (e7f001f2)
      	[   37.700775] ---[ end trace aaf805debdb69390 ]---
      
      Client data was assigned to iio_dev structure in probe but in
      hmc5843_init_client function casted to private driver data structure which
      is wrong. Possibly calling mutex_init(&data->lock); corrupt data
      which the lead to above crash.
      Signed-off-by: default avatarMarek Belisko <marek.belisko@open-nandra.com>
      Cc: stable <stable@vger.kernel.org>
      Acked-by: default avatarJonathan Cameron <jic23@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      62d2feb9