04 Nov, 2009

9 commits

  • sendfile(2) was reworked with the splice infrastructure, but it still
    checks f_op.sendpage() instead of f_op.splice_write() wrongly. Although
    if f_op.sendpage() exists, f_op.splice_write() always exists at the same
    time currently, the assumption will be broken in future silently. This
    patch also brings a side effect: sendfile(2) can work with any output
    file. Some security checks related to f_op are added too.

    Signed-off-by: Changli Gao
    Signed-off-by: Jens Axboe

    Changli Gao
     
  • The current PS3 VRAM driver uses msleep() to wait for completion of RSX
    DMA transfers between system memory and VRAM. Depending on the system
    timing, the processing delay and overhead of this msleep() call can
    significantly impact VRAM driver IO.

    To avoid the condition, add a short duration (200 usec max) udelay()
    polling loop before entering the msleep() polling loop.

    Signed-off-by: Hideyuki Sasaki
    Signed-off-by: Geoff Levand
    Acked-by: Jim Paris
    Cc: Geert Uytterhoeven
    Signed-off-by: Jens Axboe

    Hideyuki Sasaki
     
  • We need to rework this logic post the cooperating cfq_queue merging,
    for now just get rid of it and Jeff Moyer will fix the fall out.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • We ended up with testing the same condition twice, pretty
    pointless. Remove that first if.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Conflicts:
    block/cfq-iosched.c

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Jens Axboe
     
  • CFQ has an optimization for cooperated applications. if several
    io-context have close requests, they will get boost. But the
    optimization get abused. Considering thread a, b, which work on one
    file. a reads sectors s, s+2, s+4, ...; b reads sectors s+1, s+3, s
    +5, ... Both a and b are sequential read, so they can open idle window.
    a reads a sector s and goes to idle window and wakeup b. b reads sector
    s+1, since in current implementation, cfq_should_preempt() thinks a and
    b are cooperators, b will preempt a. b then reads sector s+1 and goes to
    idle window and wakeup a. for the same reason, a will preempt b and
    reads s+2. a and b will continue the circle. The circle will be very
    long, and a and b will occupy whole disk queue. Other applications will
    nearly have no chance to run.

    Fix this limiting coop preempt until a queue is scheduled normally
    again.

    Signed-off-by: Shaohua Li
    Acked-by: Jeff Moyer
    Signed-off-by: Jens Axboe

    Shaohua Li
     
  • Commit a6151c3a5c8e1ff5a28450bc8d6a99a2a0add0a7 inadvertently reversed
    a preempt condition check, potentially causing a performance regression.
    Make the meta check correct again.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Commit 592b09a42fc3ae6737a0f3ecf4fee42ecd0296f8 was different from
    the tested path, in that it moved the bdi super_block prune from
    unregister to destroy context. This doesn't fully fix the sync hang
    bug on unexpected device removal, as need to prune the bdi cache
    pointer before killing flusher thread.

    Tested-by: Artur Skawina
    Signed-off-by: Jens Axboe

    Jens Axboe
     

02 Nov, 2009

4 commits


01 Nov, 2009

9 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6:
    Staging: fix wireless drivers depends
    Staging: wireless drivers Kconfig change
    Staging: android: mark subsystem as broken
    Staging: remove stlc45xx driver
    Staging: rtl8187se/rtl8192e/rtl8192su: allow module unload
    Staging: vt6656: fix the memory free bug in vntwusb_disconnect()
    Staging: Panel: prevent driver from calling misc_deregister twice on same ressource
    Staging: hv: fix oops in vmbus - missing #include
    Staging: hv: fix oops in vmbus - netvsc list_head
    Staging: hv: fix oops in vmbus - udev events
    Staging: hv: Fix vmbus load hang caused by faulty data packing
    Staging: hv: Fix null pointer error after vmbus loading
    Staging: hv TODO patches

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
    USB: fsl_udc_core: Fix kernel oops on module removal
    USB: option: TLAYTECH TUE800 support
    USB: r8a66597-hcd: fix cannot detect a device when uses_new_polling is set
    USB: serial: sierra driver autopm fixes
    USB: serial: sierra driver send_setup() autopm fix
    USB: rndis_host: debug info clobbered before it is logged

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:
    tty: Mark generic_serial users as BROKEN

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:
    Documentation: ABI: /sys/devices/system/cpu/cpu#/node
    Documentation: ABI: /sys/devices/system/cpu/cpuidle/
    Documentation: ABI: /sys/devices/system/cpu/sched_[mc|smt]_power_savings
    Documentation: ABI: /sys/devices/system/cpu/cpu#/ topology files
    Documentation: ABI: /sys/devices/system/cpu/ topology files
    Documentation: ABI: document /sys/devices/system/cpu/
    Documentation: ABI: rename sysfs-devices-cache_disable properly
    Driver core: allow certain drivers prohibit bind/unbind via sysfs
    Driver core: fix driver_register() return value

    Linus Torvalds
     
  • * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
    [S390] smp: fix sigp sense handling
    [S390] smp: fix sigp stop handling
    [S390] cputime: fix overflow on 31 bit systems
    [S390] call home: fix string length handling
    [S390] call home: fix error handling in init function
    [S390] smp: fix prefix handling of offlined cpus
    [S390] s/r: cmm resume fix
    [S390] call home: fix local buffer usage in proc handler

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/fs/xfs/xfs:
    xfs: fix xfs_quota remove error
    xfs: free temporary cursor in xfs_dialloc

    Linus Torvalds
     
  • * 'for-linus' of git://neil.brown.name/md:
    async_tx: fix asynchronous raid6 recovery for ddf layouts
    async_pq: rename scribble page
    async_pq: kill a stray dma_map() call and other cleanups
    md/raid6: kill a gcc-4.0.1 'uninitialized variable' warning
    raid6/async_tx: handle holes in block list in async_syndrome_val
    md/async: don't pass a memory pointer as a page pointer.
    md: Fix handling of raid5 array which is being reshaped to fewer devices.
    md: fix problems with RAID6 calculations for DDF.
    md/raid456: downlevel multicore operations to raid_run_ops
    md: drivers/md/unroll.pl replaced with awk analog
    md: remove clumsy usage of do_sync_mapping_range from bitmap code
    md: raid1/raid10: handle allocation errors during array setup.
    md/raid5: initialize conf->device_lock earlier
    md/raid1/raid10: add a cond_resched
    Revert "md: do not progress the resync process if the stripe was blocked"

    Linus Torvalds
     
  • Commit ef7562b7f28319e6dd1f85dc1af87df2a7a84832 ("dpt_i2o: Fix up
    copy*user") had a silly typo: EINVAL should be -EINVAL.

    Signed-off-by: OGAWA Hirofumi
    Cc: stable@kernel.org
    Cc: Alan Cox
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     
  • Don't pass NULL pointers to fput() in the error handling paths of the NOMMU
    do_mmap_pgoff() as it can't handle it.

    The following can be used as a test program:

    int main() { static long long a[1024 * 1024 * 20] = { 0 }; return a;}

    Without the patch, the code oopses in atomic_long_dec_and_test() as called by
    fput() after the kernel complains that it can't allocate that big a chunk of
    memory. With the patch, the kernel just complains about the allocation size
    and then the program segfaults during execve() as execve() can't complete the
    allocation of all the new ELF program segments.

    Reported-by: Robin Getz
    Signed-off-by: David Howells
    Acked-by: Robin Getz
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    David Howells
     

31 Oct, 2009

18 commits

  • Describe NUMA node symlink created for CPUs when CONFIG_NUMA is set.

    Cc: Randy Dunlap
    Signed-off-by: Alex Chiang
    Signed-off-by: Greg Kroah-Hartman

    Alex Chiang
     
  • Document cpuidle sysfs attributes by reading code, Documentation/cpuidle/,
    and git logs.

    Cc: Venki Pallipadi
    Cc: Len Brown
    Signed-off-by: Alex Chiang
    Signed-off-by: Greg Kroah-Hartman

    Alex Chiang
     
  • Document sched_[mc|smt]_power_savings by reading existing code and
    git logs.

    Cc: Suresh Siddha
    Cc: Ingo Molnar
    Signed-off-by: Alex Chiang
    Signed-off-by: Greg Kroah-Hartman

    Alex Chiang
     
  • Add brief descriptions for the following sysfs files:

    /sys/devices/system/cpu/cpu#/topology/core_id
    /sys/devices/system/cpu/cpu#/topology/core_siblings
    /sys/devices/system/cpu/cpu#/topology/core_siblings_list
    /sys/devices/system/cpu/cpu#/topology/physical_package_id
    /sys/devices/system/cpu/cpu#/topology/thread_siblings
    /sys/devices/system/cpu/cpu#/topology/thread_siblings_list

    The descriptions in Documentation/cputopology.txt weren't very
    informative, so I attempted a better description based on code
    reading and hopeful guessing.

    Updated Documentation/cputopology.txt with the better descriptions and
    fixed some style issues.

    Cc: Mike Travis
    Cc: Rusty Russell
    Signed-off-by: Alex Chiang
    Signed-off-by: Greg Kroah-Hartman

    Alex Chiang
     
  • Add brief descriptions for the following sysfs files:

    /sys/devices/system/cpu/kernel_max
    /sys/devices/system/cpu/offline
    /sys/devices/system/cpu/online
    /sys/devices/system/cpu/possible
    /sys/devices/system/cpu/present

    Excerpted the relevant information from Documentation/cputopology.txt
    and pointed back to cputopology.txt as the authoritative source of
    information.

    Cc: Mike Travis
    Cc: Rusty Russell
    Signed-off-by: Alex Chiang
    Signed-off-by: Greg Kroah-Hartman

    Alex Chiang
     
  • This interface has been around for a long time, but hasn't been
    officially documented.

    Document the top level sysfs directory for CPU attributes.

    Signed-off-by: Alex Chiang
    Signed-off-by: Greg Kroah-Hartman

    Alex Chiang
     
  • Rename sysfs-devices-cache_disable to sysfs-devices-system-cpu, in
    order to keep a stricter correlation between a sysfs directory and
    its documentation.

    Reported-by: David Rientjes
    Signed-off-by: Alex Chiang
    Acked-by: David Rientjes
    Signed-off-by: Greg Kroah-Hartman

    Alex Chiang
     
  • Platform drivers registered via platform_driver_probe() can be bound
    to devices only once, upon registration, because discard their probe()
    routines to save memory. Unbinding the driver through sysfs 'unbind'
    leaves the device stranded and confuses users so let's not create
    bind and unbind attributes for such drivers.

    Signed-off-by: Dmitry Torokhov
    Cc: Éric Piel
    Signed-off-by: Greg Kroah-Hartman

    Dmitry Torokhov
     
  • In this patch:
    http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=16dc42e018c2868211b4928f20a957c0c216126c
    the check was added for another driver to already claim the same device
    on the same bus. But the returned error code was wrong: to modprobe, the
    -EEXIST means that _this_ driver is already installed. It therefore
    doesn't produce the needed error message when _another_ driver is trying
    to register for the same device. Returning -EBUSY fixes the problem.

    Signed-off-by: Stas Sergeev
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Stas Sergeev
     
  • fsl_udc_release() calls dma_free_coherent() with an inappropriate
    device passed to it, and since the device has no dma_ops, the following
    oops pops up:

    Kernel BUG at d103ce9c [verbose debug info unavailable]
    Oops: Exception in kernel mode, sig: 5 [#1]
    ...
    NIP [d103ce9c] fsl_udc_release+0x50/0x80 [fsl_usb2_udc]
    LR [d103ce74] fsl_udc_release+0x28/0x80 [fsl_usb2_udc]
    Call Trace:
    [cfbc7dc0] [d103ce74] fsl_udc_release+0x28/0x80 [fsl_usb2_udc]
    [cfbc7dd0] [c01a35c4] device_release+0x2c/0x90
    [cfbc7de0] [c016b480] kobject_cleanup+0x58/0x98
    [cfbc7e00] [c016c52c] kref_put+0x54/0x6c
    [cfbc7e10] [c016b360] kobject_put+0x34/0x64
    [cfbc7e20] [c01a1d0c] put_device+0x1c/0x2c
    [cfbc7e30] [d103dbfc] fsl_udc_remove+0xc0/0x1e4 [fsl_usb2_udc]
    ...

    This patch fixes the issue by passing dev->parent, which points to
    a correct device.

    Signed-off-by: Anton Vorontsov
    Cc: Li Yang
    Cc: David Brownell
    Cc: Guennadi Liakhovetski
    Signed-off-by: Greg Kroah-Hartman

    Anton Vorontsov
     
  • Add ID for Tlaytech TUE800 CDMA modem to the option driver.

    Signed-off-by: Bryan Wu
    Acked-By: Matthias Urlichs
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Bryan Wu
     
  • Signed-off-by: Yoshihiro Shimoda
    Signed-off-by: Greg Kroah-Hartman

    Yoshihiro Shimoda
     
  • This patch presents fixes for the autosuspend feature implementation in
    sierra usb serial driver in functions sierra_open(), sierra_close() and
    stop_read_write_urbs().

    The patch "sierra_close() must resume the device before it notifies it
    of a closure" submitted by Oliver Neukum on Wed, October 14 has been
    merged as fix in sierra_close() function.

    The bug fix in sierra_open() function restores the autopm interface
    state on error condition.

    The bug fix in in stop_read_write_urbs() function assures that both
    receive and interrupt urbs are recycled.

    Signed-off-by: Elina Pasheva
    Signed-off-by: Greg Kroah-Hartman

    Elina Pasheva
     
  • This patch presents a fix for the autosuspend feature implementation in
    sierra usb serial driver for function sierra_send_setup(). Because it
    is possible to call sierra_send_setup() before sierra_open() or after
    sierra_close() we added a get/put interface activity to assure that the
    usb control can happen even when the device is autosuspended.

    Signed-off-by: Elina Pasheva
    Tested-by: Matthew Safar
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Elina Pasheva
     
  • The MTU throttle-down if a RNDIS device doesn't support a particular
    packet size is being incorrectly logged. The attempted packet size is
    being clobbered before it gets logged.

    First patch; please inform if I'm doing this incorrectly. Diff'd
    against latest official source as per the FAQ; forward port to current
    git version is straightforward.

    Signed-off-by: George Nassar
    Signed-off-by: Greg Kroah-Hartman

    George Nassar
     
  • These drivers can (erroneously) be enabled even when
    CONFIG_NET=n, CONFIG_NETDEVICES=n, CONFIG_WLAN=n, etc.
    Stop this.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Greg Kroah-Hartman

    Randy Dunlap
     
  • Change the wireless drivers to depend on CONFIG_WLAN instead of
    CONFIG_WLAN_80211 which is going away soon.

    Cc: John W. Linville
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • It's causing lots of build errors, so just mark it as broken. It is
    scheduled to be removed in 2.6.33 anyway.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman