09 Feb, 2010

4 commits


29 Jan, 2010

4 commits

  • Grant Likely
     
  • In struct device_node, the phandle is named 'linux_phandle' for PowerPC
    and MicroBlaze, and 'node' for SPARC. There is no good reason for the
    difference, it is just an artifact of the code diverging over a couple
    of years. This patch renames both to simply .phandle.

    Note: the .node also existed in PowerPC/MicroBlaze, but the only user
    seems to be arch/powerpc/platforms/powermac/pfunc_core.c. It doesn't
    look like the assignment between .linux_phandle and .node is
    significantly different enough to warrant the separate code paths
    unless ibm,phandle properties actually appear in Apple device trees.

    I think it is safe to eliminate the old .node property and use
    phandle everywhere.

    Signed-off-by: Grant Likely
    Acked-by: David S. Miller
    Tested-by: Wolfram Sang
    Acked-by: Benjamin Herrenschmidt

    Grant Likely
     
  • Merge common code between PowerPC and MicroBlaze

    Signed-off-by: Grant Likely
    Tested-by: Wolfram Sang
    Acked-by: Benjamin Herrenschmidt

    Grant Likely
     
  • Merge common code between PowerPC and Microblaze

    Signed-off-by: Grant Likely
    Tested-by: Wolfram Sang
    Acked-by: Benjamin Herrenschmidt

    Grant Likely
     

22 Jan, 2010

3 commits


21 Jan, 2010

29 commits

  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    libata: retry FS IOs even if it has failed with AC_ERR_INVALID

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:
    tty: fix race in tty_fasync
    serial: serial_cs: oxsemi quirk breaks resume
    serial: imx: bit &/| confusion
    serial: Fix crash if the minimum rate of the device is > 9600 baud
    serial-core: resume serial hardware with no_console_suspend
    serial: 8250_pnp: use wildcard for serial Wacom tablets
    nozomi: quick fix for the close/close bug
    compat_ioctl: Supress "unknown cmd" message on serial /dev/console

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6:
    Staging: hv: fix smp problems in the hyperv core code
    Staging: et131x: Fix 2.6.33rc1 regression in et131x
    Staging: asus_oled: fix oops in 2.6.32.2

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:
    Revert "sysdev: fix prototype for memory_sysdev_class show/store functions"
    driver-core: fix devtmpfs crash on s390

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
    USB: isp1362: fix build failure on ARM systems via irq_flags cleanup
    USB: isp1362: better 64bit printf warning fixes
    USB: fix usbstorage for 2770:915d delivers no FAT
    USB: Fix level of isp1760 Reloading ptd error message
    USB: FHCI: avoid NULL pointer dereference
    USB: Fix duplicate sysfs problem after device reset.
    USB: add speed values for USB 3.0 and wireless controllers
    USB: add missing delay during remote wakeup
    USB: EHCI & UHCI: fix race between root-hub suspend and port resume
    USB: EHCI: fix handling of unusual interrupt intervals
    USB: Don't use GFP_KERNEL while we cannot reset a storage device
    USB: fix bitmask merge error
    usb: serial: fix memory leak in generic driver
    USB: serial: fix USB serial fix kfifo_len locking

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
    fs/bio.c: fix shadows sparse warning
    drbd: The kernel code is now equivalent to out of tree release 8.3.7
    drbd: Allow online resizing of DRBD devices while peer not reachable (needs to be explicitly forced)
    drbd: Don't go into StandAlone mode when authentification failes because of network error
    drivers/block/drbd/drbd_receiver.c: correct NULL test
    cfq-iosched: Respect ioprio_class when preempting
    genhd: overlapping variable definition
    block: removed unused as_io_context
    DM: Fix device mapper topology stacking
    block: bdev_stack_limits wrapper
    block: Fix discard alignment calculation and printing
    block: Correct handling of bottom device misaligment
    drbd: check on CONFIG_LBDAF, not LBD
    drivers/block/drbd: Correct NULL test
    drbd: Silenced an assert that could triggered after changing write ordering method
    drbd: Kconfig fix
    drbd: Fix for a race between IO and a detach operation [Bugz 262]
    drbd: Use drbd_crypto_is_hash() instead of an open coded check

    Linus Torvalds
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (23 commits)
    ACPI: delete acpi_processor_power_verify_c2()
    ACPI: allow C3 > 1000usec
    ACPI: enable C2 and Turbo-mode on Nehalem notebooks on A/C
    ACPI: power_meter: remove double kfree()
    ACPI: processor: restrict early _PDC to opt-in platforms
    ACPI: Fix unused variable warning in sbs.c
    acpi: make ACPI device id constant
    sony-laptop - fix using of uninitialized variable
    ACPI: Fix section mismatch error for acpi_early_processor_set_pdc()
    eeepc-laptop: disable wireless hotplug for 1201N
    eeepc-laptop: add hotplug_disable parameter
    eeepc-laptop: switch to using sparse keymap library
    eeepc-laptop: dmi blacklist to disable pci hotplug code
    eeepc-laptop: disable cpu speed control on EeePC 701
    ACPI: don't cond_resched if irq is disabled
    ACPI: Remove unnecessary cast.
    ACPI: Advertise to BIOS in _OSC: _OST on _PPC changes
    ACPI: EC: Add wait for irq storm
    ACPI: SBS: Move SBS HC callback to faster Notify queue
    x86, ACPI: delete acpi_boot_table_init() return value
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:
    ecryptfs: use after free
    ecryptfs: Eliminate useless code
    ecryptfs: fix interpose/interpolate typos in comments
    ecryptfs: pass matching flags to interpose as defined and used there
    ecryptfs: remove unnecessary d_drop calls in ecryptfs_link
    ecryptfs: don't ignore return value from lock_rename
    ecryptfs: initialize private persistent file before dereferencing pointer
    eCryptfs: Remove mmap from directory operations
    eCryptfs: Add getattr function
    eCryptfs: Use notify_change for truncating lower inodes

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
    Btrfs: fix possible panic on unmount
    Btrfs: deal with NULL acl sent to btrfs_set_acl
    Btrfs: fix regression in orphan cleanup
    Btrfs: Fix race in btrfs_mark_extent_written
    Btrfs, fix memory leaks in error paths
    Btrfs: align offsets for btrfs_ordered_update_i_size
    btrfs: fix missing last-entry in readdir(3)

    Linus Torvalds
     
  • In free_unmap_area_noflush(), va->flags is marked as VM_LAZY_FREE first, and
    then vmap_lazy_nr is increased atomically.

    But, in __purge_vmap_area_lazy(), while traversing of vmap_are_list, nr
    is counted by checking VM_LAZY_FREE is set to va->flags. After counting
    the variable nr, kernel reads vmap_lazy_nr atomically and checks a
    BUG_ON condition whether nr is greater than vmap_lazy_nr to prevent
    vmap_lazy_nr from being negative.

    The problem is that, if interrupted right after marking VM_LAZY_FREE,
    increment of vmap_lazy_nr can be delayed. Consequently, BUG_ON
    condition can be met because nr is counted more than vmap_lazy_nr.

    It is highly probable when vmalloc/vfree are called frequently. This
    scenario have been verified by adding delay between marking VM_LAZY_FREE
    and increasing vmap_lazy_nr in free_unmap_area_noflush().

    Even the vmap_lazy_nr is for checking high watermark, it never be the
    strict watermark. Although the BUG_ON condition is to prevent
    vmap_lazy_nr from being negative, vmap_lazy_nr is signed variable. So,
    it could go down to negative value temporarily.

    Consequently, removing the BUG_ON condition is proper.

    A possible BUG_ON message is like the below.

    kernel BUG at mm/vmalloc.c:517!
    invalid opcode: 0000 [#1] SMP
    EIP: 0060:[] EFLAGS: 00010297 CPU: 3
    EIP is at __purge_vmap_area_lazy+0x144/0x150
    EAX: ee8a8818 EBX: c08e77d4 ECX: e7c7ae40 EDX: c08e77ec
    ESI: 000081fe EDI: e7c7ae60 EBP: e7c7ae64 ESP: e7c7ae3c
    DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
    Call Trace:
    [] free_unmap_vmap_area_noflush+0x69/0x70
    [] remove_vm_area+0x22/0x70
    [] __vunmap+0x45/0xe0
    [] vmalloc+0x2c/0x30
    Code: 8d 59 e0 eb 04 66 90 89 cb 89 d0 e8 87 fe ff ff 8b 43 20 89 da 8d 48 e0 8d 43 20 3b 04 24 75 e7 fe 05 a8 a5 a3 c0 e9 78 ff ff ff 0b eb fe 90 8d b4 26 00 00 00 00 56 89 c6 b8 ac a5 a3 c0 31
    EIP: [] __purge_vmap_area_lazy+0x144/0x150 SS:ESP 0068:e7c7ae3c

    [ See also http://marc.info/?l=linux-kernel&m=126335856228090&w=2 ]

    Signed-off-by: Yongseok Koh
    Reviewed-by: Minchan Kim
    Cc: Nick Piggin
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yongseok Koh
     
  • * 'sh/for-2.6.33' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
    sh64: wire up sys_accept4.
    sh: unwire sys_recvmmsg.
    sh: ms7724: Correct sh-eth EEPROM polling timeout.

    Linus Torvalds
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    ARM: 5888/1: arm: Update comments in cacheflush.h and remove unnecessary V6 and V7 comments
    ARM: 5886/1: arm: Fix cpu_proc_fin() for proc-v7.S and make kexec work
    ARM: 5885/1: arm: Flush TLB entries in setup_mm_for_reboot()
    ARM: 5884/1: arm: Fix DCC console for v7
    ARM: 5883/1: Revert "disable NX support for OABI-supporting kernels"
    ARM: 5882/1: ARM: Fix uncompress code compile for different defines of flush(void)
    ARM: fix badly placed mach/plat entries in Kconfig & Makefile

    Linus Torvalds
     
  • Propagate the ANY bit into the fixed counter config for v3 and higher.

    Signed-off-by: Stephane Eranian
    [a.p.zijlstra@chello.nl: split from larger patch]
    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Stephane Eranian
     
  • The is_software_event() definition always confuses me because its an
    exclusive expression, make it an inclusive one.

    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Anton reported that perf record kept receiving events even after calling
    ioctl(PERF_EVENT_IOC_DISABLE). It turns out that FORK,COMM and MMAP
    events didn't respect the disabled state and kept flowing in.

    Reported-by: Anton Blanchard
    Signed-off-by: Peter Zijlstra
    Tested-by: Anton Blanchard
    LKML-Reference:
    CC: stable@kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Paul questioned the context in which we should call
    perf_event_do_pending(). After looking at that I found that it should be
    called from IRQ context these days, however the fallback call-site is
    placed in softirq context. Ammend this by placing the callback in the IRQ
    timer path.

    Reported-by: Paul Mackerras
    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Assume A->B schedule is processing, if B have acquired BKL before and it
    need reschedule this time. Then on B's context, it will go to
    need_resched_nonpreemptible for reschedule. But at this time, prev and
    switch_count are related to A. It's wrong and will lead to incorrect
    scheduler statistics.

    Signed-off-by: Yong Zhang
    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Yong Zhang
     
  • SD_PREFER_SIBLING is set at the CPU domain level if power saving isn't
    enabled, leading to many cache misses on large machines as we traverse
    looking for an idle shared cache to wake to. Change the enabler of
    select_idle_sibling() to SD_SHARE_PKG_RESOURCES, and enable same at the
    sibling domain level.

    Reported-by: Lin Ming
    Signed-off-by: Mike Galbraith
    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Mike Galbraith
     
  • There was some left over #ifdef ARM logic that is outdated but no one
    really noticed. So instead of relying on this tricky logic, properly
    load and utilize the platform irq_flags resources.

    Reported-by: Ben Hutchings
    Signed-off-by: Lothar Wassmann
    Signed-off-by: Mike Frysinger
    Signed-off-by: Greg Kroah-Hartman

    Lothar Wassmann
     
  • Some hosts that treat the return value of sizeof differently from unsigned
    long might still hit warnings. So use %zu for sizeof() values. This is a
    better version of the previous commit b0a9cf297e58721933.

    Signed-off-by: Lothar Wassmann
    Signed-off-by: Mike Frysinger
    Signed-off-by: Greg Kroah-Hartman

    Lothar Wassmann
     
  • Resolves kernel.org bug 14914.

    Remove entry for 2770:915d (usb digital camera with mass storage
    support) from unusual_devs.h. The fix triggered by the entry causes
    the file system on the camera to be completely inaccessible (no
    partition table, the device is not mountable).

    The patch works, but let me clarify a few things about it. All the
    patch does is remove the entry for this device from the
    drivers/usb/storage/unusual_devs.h, which is supposed to help with a
    problem with the device's reported size (I think). I'm pretty sure it
    was originally added for a reason, so I'm not sure removing it won't
    cause other problems to reappear. Also, I should note that this
    unusual_devs.h entry was present (and activating workarounds) in
    2.6.29, but in that version everything works fine. Starting with
    2.6.30, things no longer work.

    Signed-off-by: Ryan May
    Cc: Rohan Hart
    Signed-off-by: Greg Kroah-Hartman

    Ryan May
     
  • This error message is not actually an error, it's an information
    message. It is triggered when a transfer which ended in a NAQ is
    retried successfully by the hardware.

    Signed-off-by: Colin Tuckley
    Cc: Sebastian Andrzej Siewior
    Cc: Catalin Marinas
    Signed-off-by: Greg Kroah-Hartman

    Colin Tuckley
     
  • Assign fhci only if usb is not NULL.

    Signed-off-by: Alexander Beregalov
    Signed-off-by: Greg Kroah-Hartman

    Alexander Beregalov
     
  • Borislav Petkov reports issues with duplicate sysfs endpoint files after a
    resume from a hibernate. It turns out that the code to support alternate
    settings under xHCI has issues when a device with a non-default alternate
    setting is reset during the hibernate:

    [ 427.681810] Restarting tasks ...
    [ 427.681995] hub 1-0:1.0: state 7 ports 6 chg 0004 evt 0000
    [ 427.682019] usb usb3: usb resume
    [ 427.682030] ohci_hcd 0000:00:12.0: wakeup root hub
    [ 427.682191] hub 1-0:1.0: port 2, status 0501, change 0000, 480 Mb/s
    [ 427.682205] usb 1-2: usb wakeup-resume
    [ 427.682226] usb 1-2: finish reset-resume
    [ 427.682886] done.
    [ 427.734658] ehci_hcd 0000:00:12.2: port 2 high speed
    [ 427.734663] ehci_hcd 0000:00:12.2: GetStatus port 2 status 001005 POWER sig=se0 PE CONNECT
    [ 427.746682] hub 3-0:1.0: hub_reset_resume
    [ 427.746693] hub 3-0:1.0: trying to enable port power on non-switchable hub
    [ 427.786715] usb 1-2: reset high speed USB device using ehci_hcd and address 2
    [ 427.839653] ehci_hcd 0000:00:12.2: port 2 high speed
    [ 427.839666] ehci_hcd 0000:00:12.2: GetStatus port 2 status 001005 POWER sig=se0 PE CONNECT
    [ 427.847717] ohci_hcd 0000:00:12.0: GetStatus roothub.portstatus [1] = 0x00010100 CSC PPS
    [ 427.915497] hub 1-2:1.0: remove_intf_ep_devs: if: ffff88022f9e8800 ->ep_devs_created: 1
    [ 427.915774] hub 1-2:1.0: remove_intf_ep_devs: bNumEndpoints: 1
    [ 427.915934] hub 1-2:1.0: if: ffff88022f9e8800: endpoint devs removed.
    [ 427.916158] hub 1-2:1.0: create_intf_ep_devs: if: ffff88022f9e8800 ->ep_devs_created: 0, ->unregistering: 0
    [ 427.916434] hub 1-2:1.0: create_intf_ep_devs: bNumEndpoints: 1
    [ 427.916609] ep_81: create, parent hub
    [ 427.916632] ------------[ cut here ]------------
    [ 427.916644] WARNING: at fs/sysfs/dir.c:477 sysfs_add_one+0x82/0x96()
    [ 427.916649] Hardware name: System Product Name
    [ 427.916653] sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:12.2/usb1/1-2/1-2:1.0/ep_81'
    [ 427.916658] Modules linked in: binfmt_misc kvm_amd kvm powernow_k8 cpufreq_ondemand cpufreq_powersave cpufreq_userspace freq_table cpufreq_conservative ipv6 vfat fat
    +8250_pnp 8250 pcspkr ohci_hcd serial_core k10temp edac_core
    [ 427.916694] Pid: 278, comm: khubd Not tainted 2.6.33-rc2-00187-g08d869a-dirty #13
    [ 427.916699] Call Trace:

    The problem is caused by a mismatch between the USB core's view of the
    device state and the USB device and xHCI host's view of the device state.

    After the device reset and re-configuration, the device and the xHCI host
    think they are using alternate setting 0 of all interfaces. However, the
    USB core keeps track of the old state, which may include non-zero
    alternate settings. It uses intf->cur_altsetting to keep the endpoint
    sysfs files for the old state across the reset.

    The bandwidth allocation functions need to know what the xHCI host thinks
    the current alternate settings are, so original patch set
    intf->cur_altsetting to the alternate setting 0. This caused duplicate
    endpoint files to be created.

    The solution is to not set intf->cur_altsetting before calling
    usb_set_interface() in usb_reset_and_verify_device(). Instead, we add a
    new flag to struct usb_interface to tell usb_hcd_alloc_bandwidth() to use
    alternate setting 0 as the currently installed alternate setting.

    Signed-off-by: Sarah Sharp
    Tested-by: Borislav Petkov
    Cc: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Sarah Sharp
     
  • These controllers say "unknown" for their speed in sysfs, which
    obviously isn't correct.

    Reported-by: Kurt Garloff
    Cc: Sarah Sharp
    Cc: David Vrabel
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • This patch (as1330) fixes a bug in khbud's handling of remote
    wakeups. When a device sends a remote-wakeup request, the parent hub
    (or the host controller driver, for directly attached devices) begins
    the resume sequence and notifies khubd when the sequence finishes. At
    this point the port's SUSPEND feature is automatically turned off.

    However the device needs an additional 10-ms resume-recovery time
    (TRSMRCY in the USB spec). Khubd does not wait for this delay if the
    SUSPEND feature is off, and as a result some devices fail to behave
    properly following a remote wakeup. This patch adds the missing
    delay to the remote-wakeup path.

    It also extends the resume-signalling delay used by ehci-hcd and
    uhci-hcd from 20 ms (the value in the spec) to 25 ms (the value we use
    for non-remote-wakeup resumes). The extra time appears to help some
    devices.

    Signed-off-by: Alan Stern
    Cc: stable
    Cc: Rickard Bellini
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as1321) fixes a problem with EHCI and UHCI root-hub
    suspends: If the suspend occurs while a port is trying to resume, the
    resume doesn't finish and simply gets lost. When remote wakeup is
    enabled, this is undesirable behavior.

    The patch checks first to see if any port resumes are in progress, and
    if they are then it fails the root-hub suspend with -EBUSY.

    Signed-off-by: Alan Stern
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as1320) fixes two problems related to interrupt-URB
    scheduling in ehci-hcd.

    URBs with an interval of 2 or 4 microframes aren't handled.
    For the time being, the patch reduces to interval to 1 uframe.

    URBs are constrained to have an interval no larger than 1024
    frames by usb_submit_urb(). But some EHCI controllers allow
    use of a schedule as short as 256 frames; for these
    controllers we may have to decrease the interval to the
    actual schedule length.

    The second problem isn't very significant since few devices expose
    interrupt endpoints with an interval larger than 256 frames. But the
    first problem is critical; it will prevent the kernel from working
    with devices having interrupt intervals of 2 or 4 uframes.

    Signed-off-by: Alan Stern
    Cc: stable
    Tested-by: Glynn Farrow
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • Memory allocations with GFP_KERNEL can cause IO to a storage
    device which can fail resulting in a need to reset the device.
    Therefore GFP_KERNEL cannot be safely used between usb_lock_device()
    and usb_unlock_device(). Replace by GFP_NOIO.

    Signed-off-by: Oliver Neukum
    Cc: stable
    Cc: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Oliver Neukum