08 Jun, 2011

8 commits

  • _sdata needs to be declared in the linker script now as of commit
    a2d063ac216c ("extable, core_kernel_data(): Make sure all archs define
    _sdata")

    Signed-off-by: David Howells
    Cc: Steven Rostedt
    Signed-off-by: Linus Torvalds

    David Howells
     
  • die_if_no_fixup() shouldn't use get_user() as it doesn't call set_fs() to
    indicate that it wants to probe a kernel address. Instead it should use
    probe_kernel_read().

    This fixes the problem of gdb seeing SIGILL rather than SIGTRAP when hitting
    the KGDB special breakpoint upon SysRq+g being seen. The problem was that
    die_if_no_fixup() was failing to read the opcode of the instruction that caused
    the exception, and thus not fixing up the exception.

    This caused gdb to get a S04 response to the $? request in its remote protocol
    rather than S05 - which would then cause it to continue with $C04 rather than
    $c in an attempt to pass the signal onto the inferior process. The kernel,
    however, does not support $Cnn, and so objects by returning an E22 response,
    indicating an error. gdb does not expect this and prints:

    warning: Remote failure reply: E22

    and then returns to the gdb command prompt unable to continue.

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • One of the kernel debugger cacheflush variants escaped proper testing. Two of
    the labels are wrong, being derived from the code that was copied to construct
    the variant.

    The first label results in the following assembler message:

    AS arch/mn10300/mm/cache-dbg-flush-by-reg.o
    arch/mn10300/mm/cache-dbg-flush-by-reg.S: Assembler messages:
    arch/mn10300/mm/cache-dbg-flush-by-reg.S:123: Error: symbol `debugger_local_cache_flushinv_no_dcache' is already defined

    And the second label results in the following linker message:

    arch/mn10300/mm/built-in.o:(.text+0x1d39): undefined reference to `mn10300_local_icache_inv_range_reg_end'
    arch/mn10300/mm/built-in.o:(.text+0x1d39): relocation truncated to fit: R_MN10300_PCREL16 against undefined symbol `mn10300_local_icache_inv_range_reg_end'

    To test this file the following configuration pieces must be set:

    CONFIG_AM34=y
    CONFIG_MN10300_CACHE_WBACK=y
    CONFIG_MN10300_DEBUGGER_CACHE_FLUSH_BY_REG=y
    CONFIG_MN10300_CACHE_MANAGE_BY_REG=y
    CONFIG_AM34_HAS_CACHE_SNOOP=n

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
    [S390] fix kvm defines for 31 bit compile
    [S390] use generic RCU page-table freeing code
    [S390] qdio: Split SBAL entry flags
    [S390] kvm-s390: fix stfle facilities numbers >=64
    [S390] kvm-s390: Fix host crash on misbehaving guests

    Linus Torvalds
     
  • * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (21 commits)
    ARM: OMAP4: MMC: increase delay for pbias
    arm: omap2plus: move NAND_BLOCK_SIZE out of boards
    omap4: hwmod: Enable the keypad
    omap3: Free Beagle rev gpios when they are read, so others can read them later
    arm: omap3: beagle: Ensure msecure is mux'd to be able to set the RTC
    omap: rx51: Don't power up speaker amplifier at bootup
    omap: rx51: Set regulator V28_A always on
    ARM: OMAP4: MMC: no regulator off during probe for eMMC
    arm: omap2plus: fix ads7846 pendown gpio request
    ARM: OMAP2: Add missing iounmap in omap4430_phy_init
    ARM: omap4: Pass core and wakeup mux tables to omap4_mux_init
    ARM: omap2+: mux: Allow board mux settings to be NULL
    OMAP4: fix return value of omap4_l3_init
    OMAP: iovmm: fix SW flags passed by user
    arch/arm/mach-omap1/dma.c: Invert calls to platform_device_put and platform_device_del
    OMAP2+: mux: fix compilation warnings
    OMAP: SRAM: Fix warning: format '%08lx' expects type 'long unsigned int'
    arm: omap3: cm-t3517: fix section mismatch warning
    OMAP2+: Fix 9 section mismatch(es) warnings from mach-omap2/built-in.o
    ARM: OMAP2: Add missing include of linux/gpio.h
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:
    GFS2: Processes waiting on inode glock that no processes are holding

    Linus Torvalds
     
  • …l/git/lethal/fbdev-3.x

    * 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-3.x:
    video: Fix use-after-free by vga16fb on rmmod
    video: Convert vmalloc/memset to vzalloc
    efifb: Disallow manual bind and unbind
    efifb: Fix mismatched request/release_mem_region
    efifb: Enable write-combining
    drivers/video/pxa168fb.c: add missing clk_put
    drivers/video/imxfb.c: add missing clk_put
    fbdev: bf537-lq035: add missing blacklight properties type
    savagefb: Use panel CVT mode as default
    fbdev: sh_mobile_lcdcfb: Fix up fallout from MERAM changes.

    Linus Torvalds
     
  • * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
    vfs: make unlink() and rmdir() return ENOENT in preference to EROFS
    lmLogOpen() broken failure exit
    usb: remove bad dput after dentry_unhash
    more conservative S_NOSEC handling

    Linus Torvalds
     

07 Jun, 2011

2 commits

  • If user space attempts to remove a non-existent file or directory, and
    the file system is mounted read-only, return ENOENT instead of EROFS.
    Either error code is arguably valid/correct, but ENOENT is a more
    specific error message.

    Reported-by: Michael Tokarev
    Signed-off-by: "Theodore Ts'o"
    Signed-off-by: Al Viro

    Theodore Ts'o
     
  • Callers of lmLogOpen() expect it to return -E... on failure exits, which
    is what it returns, except for the case of blkdev_get_by_dev() failure.
    It that case lmLogOpen() return the error with the wrong sign...

    Signed-off-by: Al Viro
    Acked-by: Dave Kleikamp

    Al Viro
     

06 Jun, 2011

11 commits

  • KVM is not available for 31 bit but the KVM defines cause warnings:

    arch/s390/include/asm/pgtable.h: In function 'ptep_test_and_clear_user_dirty':
    arch/s390/include/asm/pgtable.h:817: warning: integer constant is too large for 'unsigned long' type
    arch/s390/include/asm/pgtable.h:818: warning: integer constant is too large for 'unsigned long' type
    arch/s390/include/asm/pgtable.h: In function 'ptep_test_and_clear_user_young':
    arch/s390/include/asm/pgtable.h:837: warning: integer constant is too large for 'unsigned long' type
    arch/s390/include/asm/pgtable.h:838: warning: integer constant is too large for 'unsigned long' type

    Add 31 bit versions of the KVM defines to remove the warnings.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • Replace the s390 specific rcu page-table freeing code with the
    generic variant. This requires to duplicate the definition for the
    struct mmu_table_batch as s390 does not use the generic tlb flush
    code.

    While we are at it remove the restriction that page table fragments
    can not be reused after a single fragment has been freed with rcu
    and split out allocation and freeing of page tables with pgstes.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • The qdio SBAL entry flag is made-up of four different values that are
    independent of one another. Some of the bits are reserved by the
    hardware and should not be changed by qdio. Currently all four values
    are overwritten since the SBAL entry flag is defined as an u32.

    Split the SBAL entry flag into four u8's as defined by the hardware
    and don't touch the reserved bits.

    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Jan Glauber
     
  • Currently KVM masks out the known good facilities only for the first
    double word, but passed the 2nd double word without filtering. This
    breaks some code on newer systems:

    [ 0.593966] ------------[ cut here ]------------
    [ 0.594086] WARNING: at arch/s390/oprofile/hwsampler.c:696
    [ 0.594213] Modules linked in:
    [ 0.594321] Modules linked in:
    [ 0.594439] CPU: 0 Not tainted 3.0.0-rc1 #46
    [ 0.594564] Process swapper (pid: 1, task: 00000001effa8038, ksp: 00000001effafab8)
    [ 0.594735] Krnl PSW : 0704100180000000 00000000004ab89a (hwsampler_setup+0x75a/0x7b8)
    [ 0.594910] R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:1 PM:0 EA:3
    [ 0.595120] Krnl GPRS: ffffffff00000000 00000000ffffffea ffffffffffffffea 00000000004a98f8
    [ 0.595351] 00000000004aa002 0000000000000001 000000000080e720 000000000088b9f8
    [ 0.595522] 000000000080d3e8 0000000000000000 0000000000000000 000000000080e464
    [ 0.595725] 0000000000000000 00000000005db198 00000000004ab3a2 00000001effafd98
    [ 0.595901] Krnl Code: 00000000004ab88c: c0e5000673ca brasl %r14,57a020
    [ 0.596071] 00000000004ab892: a7f4fc77 brc 15,4ab180
    [ 0.596276] 00000000004ab896: a7f40001 brc 15,4ab898
    [ 0.596454] >00000000004ab89a: a7c8ffa1 lhi %r12,-95
    [ 0.596657] 00000000004ab89e: a7f4fc71 brc 15,4ab180
    [ 0.596854] 00000000004ab8a2: a7f40001 brc 15,4ab8a4
    [ 0.597029] 00000000004ab8a6: a7f4ff22 brc 15,4ab6ea
    [ 0.597230] 00000000004ab8aa: c0200011009a larl %r2,6cb9de
    [ 0.597441] Call Trace:
    [ 0.597511] ([] hwsampler_setup+0x262/0x7b8)
    [ 0.597676] [] oprofile_arch_init+0x32/0xd0
    [ 0.597834] [] oprofile_init+0x28/0x74
    [ 0.597991] [] do_one_initcall+0x3a/0x170
    [ 0.598151] [] kernel_init+0x142/0x1ec
    [ 0.598314] [] kernel_thread_starter+0x6/0xc
    [ 0.598468] [] kernel_thread_starter+0x0/0xc
    [ 0.598606] Last Breaking-Event-Address:
    [ 0.598707] [] hwsampler_setup+0x756/0x7b8
    [ 0.598863] ---[ end trace ce3179037f4e3e5b ]---

    So lets also mask the 2nd double word. Facilites 66,76,76,77 should be fine.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Martin Schwidefsky

    Christian Borntraeger
     
  • commit 9ff4cfb3fcfd48b49fdd9be7381b3be340853aa4 ([S390] kvm-390: Let
    kernel exit SIE instruction on work) fixed a problem of commit
    commit cd3b70f5d4d82f85d1e1d6e822f38ae098cf7c72 ([S390] virtualization
    aware cpu measurement) but uncovered another one.

    If a kvm guest accesses guest real memory that doesnt exist, the
    page fault handler calls the sie hook, which then rewrites
    the return psw from sie_inst to either sie_exit or sie_reenter.
    On return, the page fault handler will then detect the wrong access
    as a kernel fault causing a kernel oops in sie_reenter or sie_exit.

    We have to add these two addresses to the exception table to allow
    graceful exits.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Martin Schwidefsky

    Christian Borntraeger
     
  • Since fb_info is now refcounted and thus may get freed at any time it
    gets unregistered module unloading will try to unregister framebuffer
    as stored in platform data on probe though this pointer may
    be stale.

    Cleanup platform data on framebuffer release.

    CC: stable@kernel.org
    Signed-off-by: Bruno Prémont
    Signed-off-by: Paul Mundt

    Bruno Prémont
     
  • Linus Torvalds
     
  • Al Viro observes that in the hugetlb case, handle_mm_fault() may return
    a value of the kind ENOSPC when its caller is expecting a value of the
    kind VM_FAULT_SIGBUS: fix alloc_huge_page()'s failure returns.

    Signed-off-by: Hugh Dickins
    Acked-by: Al Viro
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ALSA: usb - turn off de-emphasis in s/pdif for cm6206
    ALSA: asihpi: Use angle brackets for system includes
    ALSA: fm801: add error handling if auto-detect fails
    ALSA: hda - Check pin support EAPD in ad198x_power_eapd_write
    ALSA: hda - Fix HP and Front pins of ad1988/ad1989 in ad198x_power_eapd()
    ALSA: 6fire: Don't leak firmware in error path
    ASoC: Fix wm_hubs input PGA ZC bits
    ASoC: Fix dapm_is_shared_kcontrol so everything isn't shared

    Linus Torvalds
     
  • * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging:
    hwmon: (max6642): Better chip detection schema
    hwmon: (coretemp) Further relax temperature range checks
    hwmon: (coretemp) Fix TjMax detection for older CPUs
    hwmon: (coretemp) Relax target temperature range check
    hwmon: (max6642) Rename temp_fault sysfs attribute to temp2_fault

    Linus Torvalds
     
  • Takashi Iwai
     

05 Jun, 2011

4 commits

  • * 'for-linus' of git://android.git.kernel.org/kernel/tegra:
    ARM: Tegra: Harmony: Fix conflicting GPIO numbering

    Linus Torvalds
     
  • Currently, both the WM8903 and TPS6586x chips attempt to register with
    gpiolib using the same GPIO numbers. This causes the audio driver to
    fail to initialize.

    To solve this, add a define to board-harmony.h for the TPS6586x, and make
    board-harmony-power.c use this define, instead of directly referencing
    TEGRA_NR_GPIOS.

    This fixes a regression introduced by commit
    6f168f2fa60f87e85e0df25e87e2372f22f5eb7c.
    ARM: tegra: harmony: initialize the TPS65862 PMIC

    Signed-off-by: Stephen Warren
    Signed-off-by: Colin Cross

    Stephen Warren
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (25 commits)
    btrfs: fix uninitialized variable warning
    btrfs: add helper for fs_info->closing
    Btrfs: add mount -o inode_cache
    btrfs: scrub: add explicit plugging
    btrfs: use btrfs_ino to access inode number
    Btrfs: don't save the inode cache if we are deleting this root
    btrfs: false BUG_ON when degraded
    Btrfs: don't save the inode cache in non-FS roots
    Btrfs: make sure we don't overflow the free space cache crc page
    Btrfs: fix uninit variable in the delayed inode code
    btrfs: scrub: don't reuse bios and pages
    Btrfs: leave spinning on lookup and map the leaf
    Btrfs: check for duplicate entries in the free space cache
    Btrfs: don't try to allocate from a block group that doesn't have enough space
    Btrfs: don't always do readahead
    Btrfs: try not to sleep as much when doing slow caching
    Btrfs: kill BTRFS_I(inode)->block_group
    Btrfs: don't look at the extent buffer level 3 times in a row
    Btrfs: map the node block when looking for readahead targets
    Btrfs: set range_start to the right start in count_range_bits
    ...

    Linus Torvalds
     
  • Improve detection of MAX6642 by reading non existing registers (0x04, 0x06
    and 0xff). Reading those registers returns the previously read value.

    Signed-off-by: Per Dalen
    [guenter.roeck@ericsson.com: added second set of register reads]
    Signed-off-by: Guenter Roeck

    Per Dalén
     

04 Jun, 2011

15 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
    [SCSI] Fix oops caused by queue refcounting failure

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (40 commits)
    tg3: Fix tg3_skb_error_unmap()
    net: tracepoint of net_dev_xmit sees freed skb and causes panic
    drivers/net/can/flexcan.c: add missing clk_put
    net: dm9000: Get the chip in a known good state before enabling interrupts
    drivers/net/davinci_emac.c: add missing clk_put
    af-packet: Add flag to distinguish VID 0 from no-vlan.
    caif: Fix race when conditionally taking rtnl lock
    usbnet/cdc_ncm: add missing .reset_resume hook
    vlan: fix typo in vlan_dev_hard_start_xmit()
    net/ipv4: Check for mistakenly passed in non-IPv4 address
    iwl4965: correctly validate temperature value
    bluetooth l2cap: fix locking in l2cap_global_chan_by_psm
    ath9k: fix two more bugs in tx power
    cfg80211: don't drop p2p probe responses
    Revert "net: fix section mismatches"
    drivers/net/usb/catc.c: Fix potential deadlock in catc_ctrl_run()
    sctp: stop pending timers and purge queues when peer restart asoc
    drivers/net: ks8842 Fix crash on received packet when in PIO mode.
    ip_options_compile: properly handle unaligned pointer
    iwlagn: fix incorrect PCI subsystem id for 6150 devices
    ...

    Linus Torvalds
     
  • With Linus' tree, today's linux-next build (powercp ppc64_defconfig)
    produced this warning:

    fs/btrfs/delayed-inode.c: In function 'btrfs_delayed_update_inode':
    fs/btrfs/delayed-inode.c:1598:6: warning: 'ret' may be used
    uninitialized in this function

    Introduced by commit 16cdcec736cd ("btrfs: implement delayed inode items
    operation").

    This fixes a bug in btrfs_update_inode(): if the returned value from
    btrfs_delayed_update_inode is a nonzero garbage, inode stat data are not
    updated and several call paths may hit a BUG_ON or fail with strange
    code.

    Reported-by: Stephen Rothwell
    Signed-off-by: David Sterba

    David Sterba
     
  • wrap checking of filesystem 'closing' flag and fix a few missing memory
    barriers.

    Signed-off-by: David Sterba

    David Sterba
     
  • This makes the inode map cache default to off until we
    fix the overflow problem when the free space crcs don't fit
    inside a single page.

    Signed-off-by: Chris Mason

    Chris Mason
     
  • With the removal of the implicit plugging scrub ends up doing more and
    smaller I/O than necessary. This patch adds explicit plugging per chunk.

    Signed-off-by: Arne Jansen
    Signed-off-by: Chris Mason

    Arne Jansen
     
  • commit 4cb5300bc ("Btrfs: add mount -o auto_defrag") accesses inode
    number directly while it should use the helper with the new inode
    number allocator.

    Signed-off-by: David Sterba
    Signed-off-by: Chris Mason

    David Sterba
     
  • With xfstest 254 I can panic the box every time with the inode number caching
    stuff on. This is because we clean the inodes out when we delete the subvolume,
    but then we write out the inode cache which adds an inode to the subvolume inode
    tree, and then when it gets evicted again the root gets added back on the dead
    roots list and is deleted again, so we have a double free. To stop this from
    happening just return 0 if refs is 0 (and we're not the tree root since tree
    root always has refs of 0). With this fix 254 no longer panics. Thanks,

    Signed-off-by: Josef Bacik
    Tested-by: David Sterba
    Signed-off-by: Chris Mason

    Josef Bacik
     
  • In degraded mode the struct btrfs_device of missing devs don't have
    device->name set. A kstrdup of NULL correctly returns NULL. Don't
    BUG in this case.

    Signed-off-by: Arne Jansen
    Signed-off-by: Chris Mason

    Arne Jansen
     
  • This adds extra checks to make sure the inode map we are caching really
    belongs to a FS root instead of a special relocation tree. It
    prevents crashes during balancing operations.

    Signed-off-by: Liu Bo
    Signed-off-by: Chris Mason

    liubo
     
  • The free space cache uses only one page for crcs right now,
    which means we can't have a cache file bigger than the
    crcs we can fit in the first page. This adds a check to
    enforce that restriction.

    Signed-off-by: Chris Mason

    Chris Mason
     
  • The nitems counter needs to start at zero

    Signed-off-by: Chris Mason

    Chris Mason
     
  • The current scrub implementation reuses bios and pages as often as possible,
    allocating them only on start and releasing them when finished. This leads
    to more problems with the block layer than it's worth. The elevator gets
    confused when there are more pages added to the bio than bi_size suggests.
    This patch completely rips out the reuse of bios and pages and allocates
    them freshly for each submit.

    Signed-off-by: Arne Jansen
    Signed-off-by: Chris Maosn

    Arne Jansen
     
  • * 'for-linus' of git://git.kernel.dk/linux-block:
    block: Use hlist_entry() for io_context.cic_list.first
    cfq-iosched: Remove bogus check in queue_fail path
    xen/blkback: potential null dereference in error handling
    xen/blkback: don't call vbd_size() if bd_disk is NULL
    block: blkdev_get() should access ->bd_disk only after success
    CFQ: Fix typo and remove unnecessary semicolon
    block: remove unwanted semicolons
    Revert "block: Remove extra discard_alignment from hd_struct."
    nbd: adjust 'max_part' according to part_shift
    nbd: limit module parameters to a sane value
    nbd: pass MSG_* flags to kernel_recvmsg()
    block: improve the bio_add_page() and bio_add_pc_page() descriptions

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin:
    Blackfin: strncpy: fix handling of zero lengths

    Linus Torvalds