03 Mar, 2010

8 commits


30 Jan, 2010

2 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: update multi-touch protocol documentation
    Input: add the ABS_MT_PRESSURE event
    Input: winbond-cir - remove dmesg spam
    Input: lifebook - add another Lifebook DMI signature
    Input: ad7879 - support auxiliary GPIOs via gpiolib

    Linus Torvalds
     
  • 'flush_old_exec()' is the point of no return when doing an execve(), and
    it is pretty badly misnamed. It doesn't just flush the old executable
    environment, it also starts up the new one.

    Which is very inconvenient for things like setting up the new
    personality, because we want the new personality to affect the starting
    of the new environment, but at the same time we do _not_ want the new
    personality to take effect if flushing the old one fails.

    As a result, the x86-64 '32-bit' personality is actually done using this
    insane "I'm going to change the ABI, but I haven't done it yet" bit
    (TIF_ABI_PENDING), with SET_PERSONALITY() not actually setting the
    personality, but just the "pending" bit, so that "flush_thread()" can do
    the actual personality magic.

    This patch in no way changes any of that insanity, but it does split the
    'flush_old_exec()' function up into a preparatory part that can fail
    (still called flush_old_exec()), and a new part that will actually set
    up the new exec environment (setup_new_exec()). All callers are changed
    to trivially comply with the new world order.

    Signed-off-by: H. Peter Anvin
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

29 Jan, 2010

2 commits


28 Jan, 2010

2 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
    [SCSI] aic79xx: check for non-NULL scb in ahd_handle_nonpkt_busfree
    [SCSI] zfcp: Set hardware timeout as requested by BSG request.
    [SCSI] zfcp: Introduce bsg_timeout callback.
    [SCSI] scsi_transport_fc: Allow LLD to reset FC BSG timeout
    [SCSI] zfcp: add missing compat ptr conversion
    [SCSI] zfcp: Fix linebreak in hba trace
    [SCSI] zfcp: Issue zfcp_fc_wka_port_put after FC CT BSG request
    [SCSI] qla2xxx: Update version number to 8.03.01-k10.
    [SCSI] fc-transport: Use packed modifier for fc_bsg_request structure.
    [SCSI] qla2xxx: Perform fast mailbox read of flash regardless of size nor address alignment.
    [SCSI] qla2xxx: Correct FCP2 recovery handling.
    [SCSI] scsi_lib: Fix bug in completion of bidi commands
    [SCSI] mptsas: Fix issue with chain pools allocation on katmai
    [SCSI] aacraid: fix File System going into read-only mode
    [SCSI] lpfc: fix file permissions

    Linus Torvalds
     
  • It's a simplified 'read_cache_page()' which takes a page allocation
    flag, so that different paths can control how aggressive the memory
    allocations are that populate a address space.

    In particular, the intel GPU object mapping code wants to be able to do
    a certain amount of own internal memory management by automatically
    shrinking the address space when memory starts getting tight. This
    allows it to dynamically use different memory allocation policies on a
    per-allocation basis, rather than depend on the (static) address space
    gfp policy.

    The actual new function is a one-liner, but re-organizing the helper
    functions to the point where you can do this with a single line of code
    is what most of the patch is all about.

    Tested-by: Chris Wilson
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

27 Jan, 2010

1 commit


26 Jan, 2010

3 commits

  • * 'kvm-updates/2.6.33' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: x86: Fix leak of free lapic date in kvm_arch_vcpu_init()
    KVM: x86: Fix probable memory leak of vcpu->arch.mce_banks
    KVM: S390: fix potential array overrun in intercept handling
    KVM: fix spurious interrupt with irqfd
    eventfd - allow atomic read and waitqueue remove
    KVM: MMU: bail out pagewalk on kvm_read_guest error
    KVM: properly check max PIC pin in irq route setup
    KVM: only allow one gsi per fd
    KVM: x86: Fix host_mapping_level()
    KVM: powerpc: Show timing option only on embedded
    KVM: Fix race between APIC TMR and IRR

    Linus Torvalds
     
  • * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (95 commits)
    drm/radeon/kms: preface warning printk with driver name
    drm/radeon/kms: drop unnecessary printks.
    drm: fix regression in fb blank handling
    drm/radeon/kms: make hibernate work on IGPs
    drm/vmwgfx: Optimize memory footprint for DMA buffers.
    drm/ttm: Allow system memory as a busy placement.
    drm/ttm: Fix race condition in ttm_bo_delayed_delete (v3, final)
    drm/nv50: prevent switching off SOR when in use for DVI-over-DP
    drm/nv50: fail auxch transaction if reply count not what we expect
    drm/nouveau: fix failure path if userspace specifies no valid memtypes
    drm/nouveau: report LVDS as disconnected if lid closed
    drm/radeon/kms: fix legacy get_engine/memory clock
    drm/radeon/kms/atom: atom parser fixes
    drm/radeon/kms: clean up atombios pll code
    drm/radeon/kms: clean up pll struct
    drm/radeon/kms/atom: fix crtc lock ordering
    drm/radeon: r6xx/r7xx possible security issue, system ram access
    drm/radeon/kms: r600/r700 don't test ib if ib initialization fails
    drm/radeon/kms: Forbid creation of framebuffer with no valid GEM object
    drm/radeon/kms: r600 handle irq vector ring overflow
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)
    virtio_net: Make delayed refill more reliable
    sfc: Use fixed-size buffers for MCDI NVRAM requests
    sfc: Add workspace for GMAC bug workaround to MCDI MAC_STATS buffer
    tcp_probe: avoid modulus operation and wrap fix
    qlge: Only free resources if they were allocated
    netns xfrm: deal with dst entries in netns
    sky2: revert config space change
    vlan: fix vlan_skb_recv()
    netns xfrm: fix "ip xfrm state|policy count" misreport
    sky2: Enable/disable WOL per hardware device
    net: Fix IPv6 GSO type checks in Intel ethernet drivers
    igb/igbvf: cleanup exception handling in tx_map_adv
    MAINTAINERS: Add Intel igbvf maintainer
    e1000/e1000e: don't use small hardware rx buffers
    fmvj18x_cs: add new id (Panasonic lan & modem card)
    be2net: swap only first 2 fields of mcc_wrb
    Please add support for Microsoft MN-120 PCMCIA network card
    be2net: fix bug in rx page posting
    wimax/i2400m: Add support for more i6x50 SKUs
    e1000e: enhance frame fragment detection
    ...

    Linus Torvalds
     

25 Jan, 2010

3 commits

  • KVM needs a wait to atomically remove themselves from the eventfd ->poll()
    wait queue head, in order to handle correctly their IRQfd deassign
    operation.

    This patch introduces such API, plus a way to read an eventfd from its
    context.

    Signed-off-by: Davide Libenzi
    Signed-off-by: Avi Kivity

    Davide Libenzi
     
  • GC is non-existent in netns, so after you hit GC threshold, no new
    dst entries will be created until someone triggers cleanup in init_net.

    Make xfrm4_dst_ops and xfrm6_dst_ops per-netns.
    This is not done in a generic way, because it woule waste
    (AF_MAX - 2) * sizeof(struct dst_ops) bytes per-netns.

    Reorder GC threshold initialization so it'd be done before registering
    XFRM policies.

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: David S. Miller

    Alexey Dobriyan
     
  • * git://git.infradead.org/~dwmw2/mtd-2.6.33:
    mtd: tests: fix read, speed and stress tests on NOR flash
    mtd: Really add ARM pismo support
    kmsg_dump: Dump on crash_kexec as well

    Linus Torvalds
     

24 Jan, 2010

1 commit


23 Jan, 2010

1 commit


22 Jan, 2010

2 commits


21 Jan, 2010

5 commits

  • * 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
     
  • 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
     
  • 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
     
  • 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
     

20 Jan, 2010

2 commits


19 Jan, 2010

2 commits

  • commit 541cd3ee00a4fe975b22fac6a3bc846bacef37f7 ("phylib: Fix deadlock
    on resume") caused TI DaVinci EMAC ethernet driver to oops upon resume:

    PM: resume of devices complete after 237.098 msecs
    Restarting tasks ... done.
    kernel BUG at kernel/workqueue.c:354!
    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    [...]
    Backtrace:
    [] (__bug+0x0/0x2c) from [] (queue_delayed_work_on+0x74/0xf8)
    [] (queue_delayed_work_on+0x0/0xf8) from [] (queue_delayed_work+0x2c/0x30)

    The oops pops up because TI DaVinci EMAC driver detaches PHY on
    suspend and attaches it back on resume. Attaching makes phylib call
    phy_start_machine() that initializes a workqueue. On the other hand,
    PHY's resume routine will call phy_start_machine() again, and that
    will cause the oops since we just destroyed the already scheduled
    workqueue.

    This patch fixes the issue by moving workqueue initialization to
    phy_device_create().

    p.s. We don't see this oops with ucc_geth and gianfar drivers because
    they perform a fine-grained suspend, i.e. they just stop the PHYs
    without detaching.

    Reported-by: Sekhar Nori
    Signed-off-by: Anton Vorontsov
    Tested-by: Sekhar Nori
    Signed-off-by: David S. Miller

    Anton Vorontsov
     
  • Drop the simple fancy sysfs hooks for the aux GPIOs and expose these via
    the gpiolib interface so that other drivers can use them.

    Signed-off-by: Michael Hennerich
    Signed-off-by: Mike Frysinger
    Signed-off-by: Dmitry Torokhov

    Michael Hennerich
     

18 Jan, 2010

4 commits

  • This patch abstracts out the CNF area code from tmio_mmc which
    is not present in all hardware that can use this driver. This
    is required so that we can support non-toshiba based hardware.

    ASIC3 support by Philipp Zabel

    Signed-off-by: Ian Molton
    Signed-off-by: Magnus Damm
    Signed-off-by: Samuel Ortiz

    Ian Molton
     
  • The constants used to specify ISINK ramp times for WM835x had the
    wrong shifts so that the on times applied to the off ramp and vice
    versa. The masks for the bitfields are correct.

    Signed-off-by: Mark Brown
    Cc: stable@kernel.org
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
    do_add_mount() should sanitize mnt_flags
    CIFS shouldn't make mountpoints shrinkable
    mnt_flags fixes in do_remount()
    attach_recursive_mnt() needs to hold vfsmount_lock over set_mnt_shared()
    may_umount() needs namespace_sem
    Fix configfs leak
    Fix the -ESTALE handling in do_filp_open()
    ecryptfs: Fix refcnt leak on ecryptfs_follow_link() error path
    Fix ACC_MODE() for real
    Unrot uml mconsole a bit
    hppfs: handle ->put_link()
    Kill 9p readlink()
    fix autofs/afs/etc. magic mountpoint breakage

    Linus Torvalds
     
  • The 32bit kernel does not add padding bytes in the fc_bsg_request structure
    whereas the 64bit kernel adds padding bytes in the fc_bsg_request structure.
    Due to this, structure elements gets mismatched with 32bit application and
    64bit kernel.To resolve this, used packed modifier to avoid adding padding bytes.
    Signed-off-by: Giridhar Malavali
    Signed-off-by: James Bottomley

    Harish Zunjarrao
     

17 Jan, 2010

2 commits

  • …nel/git/tip/linux-2.6-tip

    * 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    tracing/filters: Add comment for match callbacks
    tracing/filters: Fix MATCH_FULL filter matching for PTR_STRING
    tracing/filters: Fix MATCH_MIDDLE_ONLY filter matching
    lib: Introduce strnstr()
    tracing/filters: Fix MATCH_END_ONLY filter matching
    tracing/filters: Fix MATCH_FRONT_ONLY filter matching
    ftrace: Fix MATCH_END_ONLY function filter
    tracing/x86: Derive arch from bits argument in recordmcount.pl
    ring-buffer: Add rb_list_head() wrapper around new reader page next field
    ring-buffer: Wrap a list.next reference with rb_list_head()

    Linus Torvalds
     
  • Fix a problem in NOMMU mmap with ramfs whereby a shared mmap can happen
    over the end of a truncation. The problem is that
    ramfs_nommu_check_mappings() checks that the reduced file size against the
    VMA tree, but not the vm_region tree.

    The following sequence of events can cause the problem:

    fd = open("/tmp/x", O_RDWR|O_TRUNC|O_CREAT, 0600);
    ftruncate(fd, 32 * 1024);
    a = mmap(NULL, 32 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
    b = mmap(NULL, 16 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
    munmap(a, 32 * 1024);
    ftruncate(fd, 16 * 1024);
    c = mmap(NULL, 32 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);

    Mapping 'a' creates a vm_region covering 32KB of the file. Mapping 'b'
    sees that the vm_region from 'a' is covering the region it wants and so
    shares it, pinning it in memory.

    Mapping 'a' then goes away and the file is truncated to the end of VMA
    'b'. However, the region allocated by 'a' is still in effect, and has
    _not_ been reduced.

    Mapping 'c' is then created, and because there's a vm_region covering the
    desired region, get_unmapped_area() is _not_ called to repeat the check,
    and the mapping is granted, even though the pages from the latter half of
    the mapping have been discarded.

    However:

    d = mmap(NULL, 16 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);

    Mapping 'd' should work, and should end up sharing the region allocated by
    'a'.

    To deal with this, we shrink the vm_region struct during the truncation,
    lest do_mmap_pgoff() take it as licence to share the full region
    automatically without calling the get_unmapped_area() file op again.

    Signed-off-by: David Howells
    Acked-by: Al Viro
    Cc: Greg Ungerer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells