1. 16 Mar, 2011 6 commits
    • Artem Bityutskiy's avatar
      UBI: make self-checks dynamic · 92d124f5
      Artem Bityutskiy authored
      This patch adds a possibility to dynamically switch UBI self-checks
      on and off, instead of toggling them compile-time from the configuration
      menu. This is much more flexible, and consistent with UBIFS, and this
      also simplifies UBI Kconfig menu and the code.
      
      This patch introduces two levels of self-checks - general, which
      includes all self-checks which are relatively fast, and I/O, which
      includes write-verify checks and erase-verify checks, which are
      relatively slow and involve flash I/O.
      Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      92d124f5
    • Artem Bityutskiy's avatar
      UBI: make debugging messages dynamic · b342efd4
      Artem Bityutskiy authored
      This patch adds a possibility to dynamically select UBI debugging
      messages, instead of selecting them compile-time from the configuration
      menu. This is much more flexible, and consistent with UBIFS, and this
      also simplifies UBI Kconfig menu and the code.
      Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      b342efd4
    • Artem Bityutskiy's avatar
      UBI: remove UBI_IO_DEBUG macro · 6f9fdf62
      Artem Bityutskiy authored
      This additional little macro is used to print a bit more messages
      while scanning the media. However, we have the 'dbg_bld()' macro
      for this, so we better us 'dbg_bld()' and kill UBI_IO_DEBUG. This
      simplifies the code a tiny bit.
      Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      6f9fdf62
    • Artem Bityutskiy's avatar
      UBI: kill debugging buffer · 6edb9793
      Artem Bityutskiy authored
      This patch kills the 'ubi->dbg_peb_buf' debugging buffer and the
      associated mutex, because all users of this buffer are now gone.
      We are killing this buffer because we are going to switch to
      dynamic debugging control, just like in UBIFS, which means that
      CONFIG_MTD_UBI_DEBUG_PARANOID will be removed. In this case we'd
      end up always allocating 'ubi->dbg_peb_buf', which is rather large
      (128KiB or more), and this would be wasteful. Thus, we are just
      killing it.
      Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      6edb9793
    • Artem Bityutskiy's avatar
      UBI: allocate erase checking buffer on demand · 332873d6
      Artem Bityutskiy authored
      Instead of using pre-allocated 'ubi->dbg_peb_buf' buffer in
      'ubi_dbg_check_all_ff()', dynamically allocate it when needed. The
      intend is to get rid of the pre-allocated 'ubi->dbg_peb_buf' buffer
      completely. And the need for this arises because we want to change
      to dynamic debugging control instead of compile-time control, i.e.,
      we are going to kill the CONFIG_MTD_UBI_DEBUG_PARANOID Kconfig
      option, which would mean that 'ubi->dbg_peb_buf' is always allocated,
      which would be wasteful.
      
      Thus, we are getting rid of 'ubi->dbg_peb_buf', and this is a
      preparation for that.
      signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      332873d6
    • Artem Bityutskiy's avatar
      UBI: allocate write checking buffer on demand · a7586743
      Artem Bityutskiy authored
      Instead of using pre-allocated 'ubi->dbg_peb_buf' buffer in
      'ubi_dbg_check_write()', dynamically allocate it when needed. The
      intend is to get rid of the pre-allocated 'ubi->dbg_peb_buf' buffer
      completely. And the need for this arises because we want to change
      to dynamic debugging control instead of compile-time control, i.e.,
      we are going to kill the CONFIG_MTD_UBI_DEBUG_PARANOID Kconfig
      option, which would mean that 'ubi->dbg_peb_buf' is always allocated,
      which would be wasteful.
      
      Thus, we are getting rid of 'ubi->dbg_peb_buf', and this is a
      preparation for that.
      Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      a7586743
  2. 06 Feb, 2011 5 commits
    • Artem Bityutskiy's avatar
      UBI: always re-read in case of read failures · a87f29cb
      Artem Bityutskiy authored
      When the read operation fails, UBI tries to re-read several times in
      a hope that one of the subsequent reads may succeed. However, currently
      UBI re-reads only if MTD failed to read all data, but does not re-reads
      if all the data were read, but with an integrity error (-EBADMSB). This
      patch makes UBI to always re-try reading.
      
      This should be useful for reading NAND pages with unstable bits -
      re-reading may help to get correct data.
      Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      a87f29cb
    • Artem Bityutskiy's avatar
      UBI: cleanup comments about corrupted PEBs · fef2deb3
      Artem Bityutskiy authored
      Just make them a bit more readable and explanatory.
      Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      fef2deb3
    • Artem Bityutskiy's avatar
      UBI: add slab cache for ubi_scan_leb objects · 6c1e875c
      Artem Bityutskiy authored
      During scanning UBI allocates one struct ubi_scan_leb object for each PEB,
      so it can end up allocating thousands of them. Use slab cache to reduce
      memory consumption for these 48-byte objects, because currently used
      'kmalloc()' ends up allocating 64 bytes per object, instead of 48.
      Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      6c1e875c
    • Artem Bityutskiy's avatar
      UBI: use raw mtd read function in debugging code · 7950d023
      Artem Bityutskiy authored
      This change affects only the debugging code. Namely, use mtd->read()
      function instead of ubi_io_read() to avoid bit-flips injection
      (ubi_dbg_is_bitflip()) which we do not want on the debugging path.
      Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      7950d023
    • Artem Bityutskiy's avatar
      UBI: try to reveal buggy MTD drivers · 276832d8
      Artem Bityutskiy authored
      When reading data from the flash, corrupt the buffer we are about to
      read to. The idea is to fix the following possible situation:
      
      1. The buffer contains data from previous operation, e.g., read from
         another PEB previously. The data looks like expected, e.g., if we
         just do not read anything and return - the caller would not
         notice this. E.g., if we are reading a VID header, the buffer may
         contain a valid VID header from another PEB.
      2. The driver is buggy and returns use success or -EBADMSG or
         -EUCLEAN, but it does not actually put any data to the buffer.
      
      This may confuse UBI or upper layers - they may think the buffer
      contains valid data while in fact it is just old data.
      
      Thus, try to reveal such buggy MTD drivers with simple debugging
      code which fills the read buffer with 0x12 constant.
      Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      276832d8
  3. 26 Jan, 2011 3 commits
  4. 05 Jan, 2011 1 commit
  5. 04 Jan, 2011 6 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 65f42886
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
        ipv4/route.c: respect prefsrc for local routes
        bridge: stp: ensure mac header is set
        bridge: fix br_multicast_ipv6_rcv for paged skbs
        atl1: fix oops when changing tx/rx ring params
        drivers/atm/atmtcp.c: add missing atm_dev_put
        starfire: Fix dma_addr_t size test for MIPS
        tg3: fix return value check in tg3_read_vpd()
        Broadcom CNIC core network driver: fix mem leak on allocation failures in cnic_alloc_uio_rings()
        ISDN, Gigaset: Fix memory leak in do_disconnect_req()
        CAN: Use inode instead of kernel address for /proc file
        skfp: testing the wrong variable in skfp_driver_init()
        ppp: allow disabling multilink protocol ID compression
        ehea: Avoid changing vlan flags
        ueagle-atm: fix PHY signal initialization race
      65f42886
    • Joel Sing's avatar
      ipv4/route.c: respect prefsrc for local routes · 9fc3bbb4
      Joel Sing authored
      The preferred source address is currently ignored for local routes,
      which results in all local connections having a src address that is the
      same as the local dst address. Fix this by respecting the preferred source
      address when it is provided for local routes.
      
      This bug can be demonstrated as follows:
      
       # ifconfig dummy0 192.168.0.1
       # ip route show table local | grep local.*dummy0
       local 192.168.0.1 dev dummy0  proto kernel  scope host  src 192.168.0.1
       # ip route change table local local 192.168.0.1 dev dummy0 \
           proto kernel scope host src 127.0.0.1
       # ip route show table local | grep local.*dummy0
       local 192.168.0.1 dev dummy0  proto kernel  scope host  src 127.0.0.1
      
      We now establish a local connection and verify the source IP
      address selection:
      
       # nc -l 192.168.0.1 3128 &
       # nc 192.168.0.1 3128 &
       # netstat -ant | grep 192.168.0.1:3128.*EST
       tcp        0      0 192.168.0.1:3128        192.168.0.1:33228 ESTABLISHED
       tcp        0      0 192.168.0.1:33228       192.168.0.1:3128  ESTABLISHED
      Signed-off-by: default avatarJoel Sing <jsing@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9fc3bbb4
    • Christoph Hellwig's avatar
      remove trim_fs method from Documentation/filesystems/Locking · 8a87694e
      Christoph Hellwig authored
      The ->trim_fs has been removed meanwhile, so remove it from the documentation
      as well.
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Reported-by: default avatarRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8a87694e
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · 989d873f
      Linus Torvalds authored
      * master.kernel.org:/home/rmk/linux-2.6-arm:
        ARM: pxa: fix page table corruption on resume
        ARM: it8152: add IT8152_LAST_IRQ definition to fix build error
        ARM: pxa: PXA_ESERIES depends on FB_W100.
        ARM: 6605/1: Add missing include "asm/memory.h"
        ARM: 6540/1: Stop irqsoff trace on return to user
        ARM: 6537/1: update Nomadik, U300 and Ux500 maintainers
        ARM: 6536/1: Add missing SZ_{32,64,128}
        ARM: fix cache-feroceon-l2 after stack based kmap_atomic()
        ARM: fix cache-xsc3l2 after stack based kmap_atomic()
        ARM: get rid of kmap_high_l1_vipt()
        ARM: smp: avoid incrementing mm_users on CPU startup
        ARM: pxa: PXA_ESERIES depends on FB_W100.
      989d873f
    • Andrew Morton's avatar
      arch/mn10300/kernel/irq.c: fix build · d9a1abe4
      Andrew Morton authored
      Addresses https://bugzilla.kernel.org/show_bug.cgi?id=25702Reported-by: default avatarMartin Ettl <ettl.martin@gmx.de>
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d9a1abe4
    • Mimi Zohar's avatar
      ima: fix add LSM rule bug · 867c2026
      Mimi Zohar authored
      If security_filter_rule_init() doesn't return a rule, then not everything
      is as fine as the return code implies.
      
      This bug only occurs when the LSM (eg. SELinux) is disabled at runtime.
      
      Adding an empty LSM rule causes ima_match_rules() to always succeed,
      ignoring any remaining rules.
      
       default IMA TCB policy:
        # PROC_SUPER_MAGIC
        dont_measure fsmagic=0x9fa0
        # SYSFS_MAGIC
        dont_measure fsmagic=0x62656572
        # DEBUGFS_MAGIC
        dont_measure fsmagic=0x64626720
        # TMPFS_MAGIC
        dont_measure fsmagic=0x01021994
        # SECURITYFS_MAGIC
        dont_measure fsmagic=0x73636673
      
        < LSM specific rule >
        dont_measure obj_type=var_log_t
      
        measure func=BPRM_CHECK
        measure func=FILE_MMAP mask=MAY_EXEC
        measure func=FILE_CHECK mask=MAY_READ uid=0
      
      Thus without the patch, with the boot parameters 'tcb selinux=0', adding
      the above 'dont_measure obj_type=var_log_t' rule to the default IMA TCB
      measurement policy, would result in nothing being measured.  The patch
      prevents the default TCB policy from being replaced.
      Signed-off-by: default avatarMimi Zohar <zohar@us.ibm.com>
      Cc: James Morris <jmorris@namei.org>
      Acked-by: default avatarSerge Hallyn <serge.hallyn@canonical.com>
      Cc: David Safford <safford@watson.ibm.com>
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      867c2026
  6. 03 Jan, 2011 19 commits
    • Russell King's avatar
    • Florian Westphal's avatar
      bridge: stp: ensure mac header is set · e6f26129
      Florian Westphal authored
      commit bf9ae538
      (llc: use dev_hard_header) removed the
      skb_reset_mac_header call from llc_mac_hdr_init.
      
      This seems fine itself, but br_send_bpdu() invokes ebtables LOCAL_OUT.
      
      We oops in ebt_basic_match() because it assumes eth_hdr(skb) returns
      a meaningful result.
      
      Cc: acme@ghostprotocols.net
      References: https://bugzilla.kernel.org/show_bug.cgi?id=24532Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e6f26129
    • Linus Torvalds's avatar
      Merge branch 'perf-fixes-for-linus' of... · 03ed6a3a
      Linus Torvalds authored
      Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        perf: Fix callchain hit bad cast on ascii display
        arch/x86/oprofile/op_model_amd.c: Perform initialisation on a single CPU
        watchdog: Improve initialisation error message and documentation
      03ed6a3a
    • Linus Torvalds's avatar
      Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 · 4c37a4b5
      Linus Torvalds authored
      * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
        [media] em28xx: radio_fops should also use unlocked_ioctl
        [media] wm8775: Revert changeset fcb97573 to avoid a regression
        [media] cx25840: Prevent device probe failure due to volume control ERANGE error
      4c37a4b5
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx · d45fa563
      Linus Torvalds authored
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx:
        dmaengine: provide dummy functions for DMA_ENGINE=n
        mv_xor: fix race in tasklet function
      d45fa563
    • Jan Beulich's avatar
      name_to_dev_t() must not call __init code · a1cf11d8
      Jan Beulich authored
      The function can't be __init itself (being called from some sysfs
      handler), and hence none of the functions it calls can be either.
      Signed-off-by: default avatarJan Beulich <jbeulich@novell.com>
      Acked-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a1cf11d8
    • Tomas Winkler's avatar
      bridge: fix br_multicast_ipv6_rcv for paged skbs · 9d89081d
      Tomas Winkler authored
      use pskb_may_pull to access ipv6 header correctly for paged skbs
      It was omitted in the bridge code leading to crash in blind
      __skb_pull
      
      since the skb is cloned undonditionally we also simplify the
      the exit path
      
      this fixes bug https://bugzilla.kernel.org/show_bug.cgi?id=25202
      
      Dec 15 14:36:40 User-PC hostapd: wlan0: STA 00:15:00:60:5d:34 IEEE 802.11: authenticated
      Dec 15 14:36:40 User-PC hostapd: wlan0: STA 00:15:00:60:5d:34 IEEE 802.11: associated (aid 2)
      Dec 15 14:36:40 User-PC hostapd: wlan0: STA 00:15:00:60:5d:34 RADIUS: starting accounting session 4D0608A3-00000005
      Dec 15 14:36:41 User-PC kernel: [175576.120287] ------------[ cut here ]------------
      Dec 15 14:36:41 User-PC kernel: [175576.120452] kernel BUG at include/linux/skbuff.h:1178!
      Dec 15 14:36:41 User-PC kernel: [175576.120609] invalid opcode: 0000 [#1] SMP
      Dec 15 14:36:41 User-PC kernel: [175576.120749] last sysfs file: /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/uevent
      Dec 15 14:36:41 User-PC kernel: [175576.121035] Modules linked in: approvals binfmt_misc bridge stp llc parport_pc ppdev arc4 iwlagn snd_hda_codec_realtek iwlcore i915 snd_hda_intel mac80211 joydev snd_hda_codec snd_hwdep snd_pcm snd_seq_midi drm_kms_helper snd_rawmidi drm snd_seq_midi_event snd_seq snd_timer snd_seq_device cfg80211 eeepc_wmi usbhid psmouse intel_agp i2c_algo_bit intel_gtt uvcvideo agpgart videodev sparse_keymap snd shpchp v4l1_compat lp hid video serio_raw soundcore output snd_page_alloc ahci libahci atl1c
      Dec 15 14:36:41 User-PC kernel: [175576.122712]
      Dec 15 14:36:41 User-PC kernel: [175576.122769] Pid: 0, comm: kworker/0:0 Tainted: G        W   2.6.37-rc5-wl+ #3 1015PE/1016P
      Dec 15 14:36:41 User-PC kernel: [175576.123012] EIP: 0060:[<f83edd65>] EFLAGS: 00010283 CPU: 1
      Dec 15 14:36:41 User-PC kernel: [175576.123193] EIP is at br_multicast_rcv+0xc95/0xe1c [bridge]
      Dec 15 14:36:41 User-PC kernel: [175576.123362] EAX: 0000001c EBX: f5626318 ECX: 00000000 EDX: 00000000
      Dec 15 14:36:41 User-PC kernel: [175576.123550] ESI: ec512262 EDI: f5626180 EBP: f60b5ca0 ESP: f60b5bd8
      Dec 15 14:36:41 User-PC kernel: [175576.123737]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
      Dec 15 14:36:41 User-PC kernel: [175576.123902] Process kworker/0:0 (pid: 0, ti=f60b4000 task=f60a8000 task.ti=f60b0000)
      Dec 15 14:36:41 User-PC kernel: [175576.124137] Stack:
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  ec556500 f6d06800 f60b5be8 c01087d8 ec512262 00000030 00000024 f5626180
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  f572c200 ef463440 f5626300 3affffff f6d06dd0 e60766a4 000000c4 f6d06860
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  ffffffff ec55652c 00000001 f6d06844 f60b5c64 c0138264 c016e451 c013e47d
      Dec 15 14:36:41 User-PC kernel: [175576.124181] Call Trace:
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c01087d8>] ? sched_clock+0x8/0x10
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c0138264>] ? enqueue_entity+0x174/0x440
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c016e451>] ? sched_clock_cpu+0x131/0x190
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c013e47d>] ? select_task_rq_fair+0x2ad/0x730
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c0524fc1>] ? nf_iterate+0x71/0x90
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<f83e4914>] ? br_handle_frame_finish+0x184/0x220 [bridge]
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<f83e4790>] ? br_handle_frame_finish+0x0/0x220 [bridge]
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<f83e46e9>] ? br_handle_frame+0x189/0x230 [bridge]
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<f83e4790>] ? br_handle_frame_finish+0x0/0x220 [bridge]
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<f83e4560>] ? br_handle_frame+0x0/0x230 [bridge]
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c04ff026>] ? __netif_receive_skb+0x1b6/0x5b0
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c04f7a30>] ? skb_copy_bits+0x110/0x210
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c0503a7f>] ? netif_receive_skb+0x6f/0x80
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<f82cb74c>] ? ieee80211_deliver_skb+0x8c/0x1a0 [mac80211]
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<f82cc836>] ? ieee80211_rx_handlers+0xeb6/0x1aa0 [mac80211]
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c04ff1f0>] ? __netif_receive_skb+0x380/0x5b0
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c016e242>] ? sched_clock_local+0xb2/0x190
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c012b688>] ? default_spin_lock_flags+0x8/0x10
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c05d83df>] ? _raw_spin_lock_irqsave+0x2f/0x50
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<f82cd621>] ? ieee80211_prepare_and_rx_handle+0x201/0xa90 [mac80211]
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<f82ce154>] ? ieee80211_rx+0x2a4/0x830 [mac80211]
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<f815a8d6>] ? iwl_update_stats+0xa6/0x2a0 [iwlcore]
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<f8499212>] ? iwlagn_rx_reply_rx+0x292/0x3b0 [iwlagn]
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c05d83df>] ? _raw_spin_lock_irqsave+0x2f/0x50
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<f8483697>] ? iwl_rx_handle+0xe7/0x350 [iwlagn]
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<f8486ab7>] ? iwl_irq_tasklet+0xf7/0x5c0 [iwlagn]
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c01aece1>] ? __rcu_process_callbacks+0x201/0x2d0
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c0150d05>] ? tasklet_action+0xc5/0x100
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c0150a07>] ? __do_softirq+0x97/0x1d0
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c05d910c>] ? nmi_stack_correct+0x2f/0x34
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c0150970>] ? __do_softirq+0x0/0x1d0
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  <IRQ>
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c01508f5>] ? irq_exit+0x65/0x70
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c05df062>] ? do_IRQ+0x52/0xc0
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c01036b0>] ? common_interrupt+0x30/0x38
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c03a1fc2>] ? intel_idle+0xc2/0x160
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c04daebb>] ? cpuidle_idle_call+0x6b/0x100
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c0101dea>] ? cpu_idle+0x8a/0xf0
      Dec 15 14:36:41 User-PC kernel: [175576.124181]  [<c05d2702>] ? start_secondary+0x1e8/0x1ee
      
      Cc: David Miller <davem@davemloft.net>
      Cc: Johannes Berg <johannes@sipsolutions.net>
      Cc: Stephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: default avatarTomas Winkler <tomas.winkler@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9d89081d
    • J. K. Cliburn's avatar
      atl1: fix oops when changing tx/rx ring params · 2f32c867
      J. K. Cliburn authored
      Commit 3f5a2a71 zeroes out the statistics
      message block (SMB) and coalescing message block (CMB) when adapter ring
      resources are freed.  This is desirable behavior, but, as a side effect,
      the commit leads to an oops when atl1_set_ringparam() attempts to alter
      the number of rx or tx elements in the ring buffer (by using ethtool
      -G, for example).  We don't want SMB or CMB to change during this
      operation.
      
      Modify atl1_set_ringparam() to preserve SMB and CMB when changing ring
      parameters.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarJay Cliburn <jcliburn@gmail.com>
      Reported-by: default avatarTõnu Raitviir <jussuf@linux.ee>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2f32c867
    • Ingo Molnar's avatar
      Merge branch 'perf/urgent' of... · a0a2b71b
      Ingo Molnar authored
      Merge branch 'perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/urgent
      a0a2b71b
    • Aric D. Blumer's avatar
      ARM: pxa: fix page table corruption on resume · 24c78557
      Aric D. Blumer authored
      Before this patch, the following error would sometimes occur after a
      resume on pxa3xx:
      
          /path/to/mm/memory.c:144: bad pmd 8040542e.
      
      The problem was that a temporary page table mapping was being improperly
      restored.
      
      The PXA3xx resume code creates a temporary mapping of resume_turn_on_mmu
      to avoid a prefetch abort.  The pxa3xx_resume_after_mmu code requires
      that the r1 register holding the address of this mapping not be
      modified, however, resume_turn_on_mmu does modify it. It is mostly
      correct in that r1 receives the base table address, but it may also
      get other bits in 13:0.  This results in pxa3xx_resume_after_mmu
      restoring the original mapping to the wrong place, corrupting memory
      and leaving the temporary mapping in place.
      Signed-off-by: default avatarMatt Reimer <mreimer@sdgsystems.com>
      Signed-off-by: default avatarEric Miao <eric.y.miao@gmail.com>
      24c78557
    • Mike Rapoport's avatar
      ARM: it8152: add IT8152_LAST_IRQ definition to fix build error · 823a2df2
      Mike Rapoport authored
      The commit 6ac6b817 (ARM: pxa: encode
      IRQ number into .nr_irqs) removed definition of ITE_LAST_IRQ which
      caused the following build error:
      
      CC      arch/arm/common/it8152.o
      arch/arm/common/it8152.c: In function 'it8152_init_irq':
      arch/arm/common/it8152.c:86: error: 'IT8152_LAST_IRQ' undeclared (first use in this function)
      arch/arm/common/it8152.c:86: error: (Each undeclared identifier is reported only once
      arch/arm/common/it8152.c:86: error: for each function it appears in.)
      make[2]: *** [arch/arm/common/it8152.o] Error 1
      
      Defining the IT8152_LAST_IRQ in the arch/arm/include/hardware/it8152.c
      fixes the build.
      Signed-off-by: default avatarMike Rapoport <mike@compulab.co.il>
      Signed-off-by: default avatarEric Miao <eric.y.miao@gmail.com>
      823a2df2
    • Lennert Buytenhek's avatar
      ARM: pxa: PXA_ESERIES depends on FB_W100. · 82427de2
      Lennert Buytenhek authored
      As arch/arm/mach-pxa/eseries.c references w100fb_gpio_{read,write}()
      directly.
      Signed-off-by: default avatarLennert Buytenhek <buytenh@secretlab.ca>
      Signed-off-by: default avatarEric Miao <eric.y.miao@gmail.com>
      82427de2
    • Frederic Weisbecker's avatar
      perf: Fix callchain hit bad cast on ascii display · d425de54
      Frederic Weisbecker authored
      ipchain__fprintf_graph() casts the number of hits in a branch as an
      int, which means we lose its highests bits.
      
      This results in meaningless number of callchain hits in perf.data
      that have a high number of hits recorded, typically those that have
      callchain branches hits appearing more than INT_MAX. This happens
      easily as those are pondered by the event period.
      Reported-by: default avatarNick Piggin <npiggin@kernel.dk>
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      d425de54
    • Robert Richter's avatar
      arch/x86/oprofile/op_model_amd.c: Perform initialisation on a single CPU · c7c25802
      Robert Richter authored
      Disable preemption in init_ibs(). The function only checks the
      ibs capabilities and sets up pci devices (if necessary). It runs
      only on one cpu but operates with the local APIC and some MSRs,
      thus it is better to disable preemption.
      
      [    7.034377] BUG: using smp_processor_id() in preemptible [00000000] code: modprobe/483
      [    7.034385] caller is setup_APIC_eilvt+0x155/0x180
      [    7.034389] Pid: 483, comm: modprobe Not tainted 2.6.37-rc1-20101110+ #1
      [    7.034392] Call Trace:
      [    7.034400]  [<ffffffff812a2b72>] debug_smp_processor_id+0xd2/0xf0
      [    7.034404]  [<ffffffff8101e985>] setup_APIC_eilvt+0x155/0x180
      [ ... ]
      
      Addresses https://bugzilla.kernel.org/show_bug.cgi?id=22812
      
      Reported-by: <atswartz@gmail.com>
      Signed-off-by: default avatarRobert Richter <robert.richter@amd.com>
      Cc: oprofile-list@lists.sourceforge.net <oprofile-list@lists.sourceforge.net>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Rafael J. Wysocki <rjw@sisk.pl>
      Cc: Dan Carpenter <error27@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: <stable@kernel.org>         [2.6.37.x]
      LKML-Reference: <20110103111514.GM4739@erda.amd.com>
      [ small cleanups ]
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      c7c25802
    • Hans Verkuil's avatar
      [media] em28xx: radio_fops should also use unlocked_ioctl · 8fd0bda5
      Hans Verkuil authored
      em28xx uses core assisted locking, so it shouldn't use .ioctl.
      The .ioctl callback was replaced by .unlocked_ioctl for video nodes,
      but not for radio nodes. This is now corrected.
      Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      8fd0bda5
    • Mauro Carvalho Chehab's avatar
      [media] wm8775: Revert changeset fcb97573 to avoid a regression · 46e67acd
      Mauro Carvalho Chehab authored
      It seems that cx88 and ivtv use wm8775 on some different modes. The
      patch that added support for a board with wm8775 broke ivtv boards with
      this device. As we're too close to release 2.6.37, let's just revert
      it.
      Reported-by: default avatarAndy Walls <awalls@md.metrocast.net>
      Reported-by: default avatarEric Sharkey <eric@lisaneric.org>
      Reported-by: default avatarAuric <auric@aanet.com.au>
      Reported by: David Gesswein <djg@pdp8online.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      46e67acd
    • Andy Walls's avatar
      [media] cx25840: Prevent device probe failure due to volume control ERANGE error · f23b7952
      Andy Walls authored
      This patch fixes a regression that crept into 2.6.36.
      
      The volume control scale in the cx25840 driver has an unusual mapping
      from register values to v4l2 volume control values.  Enforce the mapping
      limits, so that the default volume control setting does not fall out of
      bounds to prevent the cx25840 module device probe from failing.
      Signed-off-by: default avatarAndy Walls <awalls@md.metrocast.net>
      Cc: Hans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      f23b7952
    • Guennadi Liakhovetski's avatar
      dmaengine: provide dummy functions for DMA_ENGINE=n · 8f33d527
      Guennadi Liakhovetski authored
      This lets drivers, optionally using the dmaengine, build with DMA_ENGINE
      unselected.
      Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      8f33d527
    • Saeed Bishara's avatar
      mv_xor: fix race in tasklet function · 8333f65e
      Saeed Bishara authored
      use mv_xor_slot_cleanup() instead of __mv_xor_slot_cleanup() as the former function
      aquires the spin lock that needed to protect the drivers data.
      
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarSaeed Bishara <saeed@marvell.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      8333f65e