16 Jun, 2009

25 commits

  • request_firmware_nowait declares it can be called in non-sleep contexts,
    but kthead_run called by request_firmware_nowait may sleep. So fix its
    documentation and comment to make callers clear about it.

    Signed-off-by: Ming Lei
    Signed-off-by: Greg Kroah-Hartman

    Ming Lei
     
  • With SAMPLE_KOBJECT=y, it isn't even linked into the kernel image.

    Signed-off-by: Michal Marek
    Signed-off-by: Greg Kroah-Hartman

    Michal Marek
     
  • A patch series to make .shutdown execute asynchronously. Some drivers's
    shutdown can take a lot of time. The patches can help save some shutdown
    time. The patches use Arjan's async API.

    This patch:

    synchronize all tasks submitted by .shutdown

    Signed-off-by: Shaohua Li
    Cc: Arjan van de Ven
    Cc: Dmitry Torokhov
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Shaohua Li
     
  • Fix an error in debugfs_create_blob's docbook description

    It cannot actually be used to write a binary blob.

    Signed-off-by: Jonathan Corbet

    Jonathan Corbet
     
  • sysdev_class_register should check the kobject_set_name return value.

    Add the return value checking code.

    Signed-off-by: Dave Young
    Signed-off-by: Greg Kroah-Hartman

    Dave Young
     
  • kset_create should check the kobject_set_name return value.

    Add the return value checking code.

    Signed-off-by: Dave Young
    Signed-off-by: Greg Kroah-Hartman

    Dave Young
     
  • We are looking for matching drivers, not devices.

    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Dmitry Torokhov
     
  • debugfs: dont stop on first failed recursive delete

    While running a while loop of removing a module that removes a debugfs
    directory with debugfs_remove_recursive, and at the same time doing a
    while loop of cat of a file in that directory, I would hit a point where
    somehow the cat of the file caused the remove to fail.

    The result is that other files did not get removed when the module
    was removed. I simple read of one of those file can oops the kernel
    because the operations to the file no longer exist (removed by module).

    The funny thing is that the file being cat'ed was removed. It was
    the siblings that were not. I see in the code to debugfs_remove_recursive
    there's a test that checks if the child fails to bail out of the loop
    to prevent an infinite loop.

    What this patch does is to still try any siblings in that directory.
    If all the siblings fail, or there are no more siblings, then we exit
    the loop.

    This fixes the above symptom, but...

    This is no full proof. It makes the debugfs_remove_recursive a bit more
    robust, but it does not explain why the one file failed. There may
    be some kind of delay deletion that makes the debugfs think it did
    not succeed. So this patch is more of a fix for the symptom but not
    the disease.

    This patch still makes the debugfs_remove_recursive more robust and
    until I can find out why the bug exists, this patch will keep
    the kernel from oopsing in most cases. Even after the cause is found
    I think this change can stand on its own and should be kept.

    [ Impact: prevent kernel oops on module unload and reading debugfs files ]

    Signed-off-by: Steven Rostedt
    Signed-off-by: Greg Kroah-Hartman

    Steven Rostedt
     
  • This converts resource and IRQ getbyname functions for the platform
    bus to use const char *, I ran into compiler moanings when I tried
    using a const char * for looking up a certain resource.

    Signed-off-by: Linus Walleij
    Signed-off-by: Greg Kroah-Hartman

    Linus Walleij
     
  • This patch adds a new bus notifier event which is emitted _after_ a
    device is removed from its driver. This event will be used by the
    dma-api debug code to check if a driver has released all dma allocations
    for that device.

    Signed-off-by: Joerg Roedel
    Signed-off-by: Greg Kroah-Hartman

    Joerg Roedel
     
  • against v2.6.30-rc3-next tree.

    Signed-off-by: Ming Lei
    Signed-off-by: Greg Kroah-Hartman

    Ming Lei
     
  • There is the possiblity of a memory leak if a page is allocated and if
    sysfs_getlink() fails in the sysfs_follow_link.

    Signed-off-by: Armin Kuster
    Signed-off-by: Greg Kroah-Hartman

    Armin Kuster
     
  • Add a blurb to the driver-model documentation about how (not) to add
    extra attributes to a struct device at driver probe time.

    Signed-off-by: Grant Likely
    Cc: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Grant Likely
     
  • During bootup performance tracing we see repeated occurrences of
    /sys/kernel/uid/* events for the same uid, leading to a,
    in this case, rather pointless userspace processing for the
    same uid over and over.

    This is usually caused by tools which change their uid to "nobody",
    to run without privileges to read data supplied by untrusted users.

    This change delays the execution of the (already existing) scheduled
    work, to cleanup the uid after one second, so the allocated and announced
    uid can possibly be re-used by another process.

    This is the current behavior, where almost every invocation of a
    binary, which changes the uid, creates two events:
    $ read START < /sys/kernel/uevent_seqnum; \
    for i in `seq 100`; do su --shell=/bin/true bin; done; \
    read END < /sys/kernel/uevent_seqnum; \
    echo $(($END - $START))
    178

    With the delayed cleanup, we get only two events, and userspace finishes
    a bit faster too:
    $ read START < /sys/kernel/uevent_seqnum; \
    for i in `seq 100`; do su --shell=/bin/true bin; done; \
    read END < /sys/kernel/uevent_seqnum; \
    echo $(($END - $START))
    1

    Acked-by: Dhaval Giani
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • All recent distros depend on the non-deprecated sysfs layout, so
    change the default value of the option to reflect that.

    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] fix compile error in arch/ia64/mm/extable.c

    Linus Torvalds
     
  • …kernel/git/tip/linux-2.6-tip

    * 'timers-for-linus-migration' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    timers: Logic to move non pinned timers
    timers: /proc/sys sysctl hook to enable timer migration
    timers: Identifying the existing pinned timers
    timers: Framework for identifying pinned timers
    timers: allow deferrable timers for intervals tv2-tv5 to be deferred

    Fix up conflicts in kernel/sched.c and kernel/timer.c manually

    Linus Torvalds
     
  • …x/kernel/git/tip/linux-2.6-tip

    * 'timers-for-linus-clockevents' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    clockevent: export register_device and delta2ns
    clockevents: tick_broadcast_device can become static

    Linus Torvalds
     
  • …x/kernel/git/tip/linux-2.6-tip

    * 'timers-for-linus-clocksource' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    clocksource: prevent selection of low resolution clocksourse also for nohz=on
    clocksource: sanity check sysfs clocksource changes

    Linus Torvalds
     
  • …/git/tip/linux-2.6-tip

    * 'timers-for-linus-ntp' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    ntp: fix comment typos
    ntp: adjust SHIFT_PLL to improve NTP convergence

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1244 commits)
    pkt_sched: Rename PSCHED_US2NS and PSCHED_NS2US
    ipv4: Fix fib_trie rebalancing
    Bluetooth: Fix issue with uninitialized nsh.type in DTL-1 driver
    Bluetooth: Fix Kconfig issue with RFKILL integration
    PIM-SM: namespace changes
    ipv4: update ARPD help text
    net: use a deferred timer in rt_check_expire
    ieee802154: fix kconfig bool/tristate muckup
    bonding: initialization rework
    bonding: use is_zero_ether_addr
    bonding: network device names are case sensative
    bonding: elminate bad refcount code
    bonding: fix style issues
    bonding: fix destructor
    bonding: remove bonding read/write semaphore
    bonding: initialize before registration
    bonding: bond_create always called with default parameters
    x_tables: Convert printk to pr_err
    netfilter: conntrack: optional reliable conntrack event delivery
    list_nulls: add hlist_nulls_add_head and hlist_nulls_del
    ...

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (103 commits)
    powerpc: Fix bug in move of altivec code to vector.S
    powerpc: Add support for swiotlb on 32-bit
    powerpc/spufs: Remove unused error path
    powerpc: Fix warning when printing a resource_size_t
    powerpc/xmon: Remove unused variable in xmon.c
    powerpc/pseries: Fix warnings when printing resource_size_t
    powerpc: Shield code specific to 64-bit server processors
    powerpc: Separate PACA fields for server CPUs
    powerpc: Split exception handling out of head_64.S
    powerpc: Introduce CONFIG_PPC_BOOK3S
    powerpc: Move VMX and VSX asm code to vector.S
    powerpc: Set init_bootmem_done on NUMA platforms as well
    powerpc/mm: Fix a AB->BA deadlock scenario with nohash MMU context lock
    powerpc/mm: Fix some SMP issues with MMU context handling
    powerpc: Add PTRACE_SINGLEBLOCK support
    fbdev: Add PLB support and cleanup DCR in xilinxfb driver.
    powerpc/virtex: Add ml510 reference design device tree
    powerpc/virtex: Add Xilinx ML510 reference design support
    powerpc/virtex: refactor intc driver and add support for i8259 cascading
    powerpc/virtex: Add support for Xilinx PCI host bridge
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6:
    regulator/max1586: fix V3 gain calculation integer overflow
    regulator/max1586: support increased V3 voltage range
    regulator: lp3971 - fix driver link error when built-in.
    LP3971 PMIC regulator driver (updated and combined version)
    regulator: remove driver_data direct access of struct device
    regulator: Set MODULE_ALIAS for regulator drivers
    regulator: Support list_voltage for fixed voltage regulator
    regulator: Move regulator drivers to subsys_initcall()
    regulator: build fix for powerpc - renamed show_state
    regulator: add userspace-consumer driver
    Maxim 1586 regulator driver

    Linus Torvalds
     
  • ad6561dffa17f17bb68d7207d422c26c381c4313 ("module: trim exception table on init
    free.") put a bogus trim_init_extable() function into ia64 which didn't compile.

    Signed-off-by: Rusty Russell
    Signed-off-by: Tony Luck

    Rusty Russell
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: (22 commits)
    nilfs2: support contiguous lookup of blocks
    nilfs2: add sync_page method to page caches of meta data
    nilfs2: use device's backing_dev_info for btree node caches
    nilfs2: return EBUSY against delete request on snapshot
    nilfs2: modify list of unsupported features in caveats
    nilfs2: enable sync_page method
    nilfs2: set bio unplug flag for the last bio in segment
    nilfs2: allow future expansion of metadata read out via get info ioctl
    NILFS2: Pagecache usage optimization on NILFS2
    nilfs2: remove nilfs_btree_operations from btree mapping
    nilfs2: remove nilfs_direct_operations from direct mapping
    nilfs2: remove bmap pointer operations
    nilfs2: remove useless b_low and b_high fields from nilfs_bmap struct
    nilfs2: remove pointless NULL check of bpop_commit_alloc_ptr function
    nilfs2: move get block functions in bmap.c into btree codes
    nilfs2: remove nilfs_bmap_delete_block
    nilfs2: remove nilfs_bmap_put_block
    nilfs2: remove header file for segment list operations
    nilfs2: eliminate removal list of segments
    nilfs2: add sufile function that can modify multiple segment usages
    ...

    Linus Torvalds
     

15 Jun, 2009

15 commits

  • On Thu, May 28, 2009 at 10:59 AM, Mark Brown wrote:
    > On Thu, May 28, 2009 at 07:15:16AM +0200, Philipp Zabel wrote:
    >> The V3 regulator can be configured with an external resistor
    >> connected to the feedback pin (R24 in the data sheet) to
    >> increase the voltage range.
    >>
    >> For example, hx4700 has R24 = 3.32 kOhm to achieve a maximum
    >> V3 voltage of 1.55 V which is needed for 624 MHz CPU frequency.
    >>
    >> Signed-off-by: Philipp Zabel
    >
    > Looks good.
    >
    > Acked-by: Mark Brown

    Thanks, but it turns out I hit a 32 bit integer overflow in
    the gain calculation. I'd like to mend that with the following
    patch. Now max_uV could be increased up to 4.294 V, enough to
    charge LiPo cells.

    Signed-off-by: Philipp Zabel
    Acked-by: Robert Jarzmik
    Signed-off-by: Liam Girdwood

    Philipp Zabel
     
  • The V3 regulator can be configured with an external resistor
    connected to the feedback pin (R24 in the data sheet) to
    increase the voltage range.

    For example, hx4700 has R24 = 3.32 kOhm to achieve a maximum
    V3 voltage of 1.55 V which is needed for 624 MHz CPU frequency.

    Signed-off-by: Philipp Zabel
    Acked-by: Mark Brown
    Acked-by: Robert Jarzmik
    Signed-off-by: Liam Girdwood

    Philipp Zabel
     
  • lp3971_i2c_remove' referenced in section `.data' of drivers/built-in.o:
    defined in discarded section `.devexit.text' of drivers/built-in.o

    Signed-off-by: Liam Girdwood

    Liam Girdwood
     
  • This patch adds regulator drivers for National Semiconductors LP3971 PMIC.
    This LP3971 PMIC controller has 3 DC/DC voltage converters and 5 low
    drop-out (LDO) regulators. LP3971 PMIC controller uses I2C interface.

    Reviewed-by: Kyungmin Park
    Signed-off-by: Marek Szyprowski
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Marek Szyprowski
     
  • In the near future, the driver core is going to not allow direct access
    to the driver_data pointer in struct device. Instead, the functions
    dev_get_drvdata() and dev_set_drvdata() should be used. These functions
    have been around since the beginning, so are backwards compatible with
    all older kernel versions.

    Cc: Mark Brown
    Cc: Liam Girdwood
    Signed-off-by: Greg Kroah-Hartman
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Greg Kroah-Hartman
     
  • Several of the regulator drivers didn't have MODULE_ALIAS so couldn't be
    auto loaded. Add the MODULE_ALIAS in case they do get built as modules.

    Signed-off-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Mark Brown
     
  • Signed-off-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Mark Brown
     
  • Regulators need to be available early in init in order to allow them
    to be available for consumers when requested. This is generally done
    by registering them at subsys_initcall() time but not all regulator
    drivers have done that. Convert these drivers to do so in order to
    mimimise future support.

    Signed-off-by: Mark Brown
    Acked-by: Mike Rapoport
    Signed-off-by: Liam Girdwood

    Mark Brown
     
  • This patch fixes the follwing build failure on powerpc:-

    > Today's linux-next build (powerpc allyesconfig) failed like this:
    >
    > drivers/regulator/userspace-consumer.c:43: error: conflicting types
    > for 'show_state'
    > include/linux/sched.h:273: note: previous definition of 'show_state'
    > was here
    >
    > Caused by commit 5defa2bce704ca4151cfe24e4297aa7797cafd22 ("regulator:
    > add userspace-consumer driver") which I have reverted for today.

    Signed-off-by: Liam Girdwood

    Liam Girdwood
     
  • The userspace-consumer driver allows control of voltage and current
    regulator state from userspace. This is required for fine-grained
    power management of devices that are completely controller by userspace
    applications, e.g. a GPS transciever connected to a serial port.

    Signed-off-by: Mike Rapoport
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Mike Rapoport
     
  • The Maxim 1586 regulator is a voltage regulator with 2
    voltage outputs, specially suitable for Marvell PXA
    chips. One output is in the range of required VCC_CORE by
    the PXA27x chips, the other in the VCC_USIM required as well
    by PXA27x chips.

    The chip is controlled through the I2C bus.

    Signed-off-by: Robert Jarzmik
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Robert Jarzmik
     
  • Conflicts:
    Documentation/feature-removal-schedule.txt
    drivers/scsi/fcoe/fcoe.c
    net/core/drop_monitor.c
    net/core/net-traces.c

    David S. Miller
     
  • Let's use TICKS instead of US, so PSCHED_TICKS2NS and PSCHED_NS2TICKS
    (like in PSCHED_TICKS_PER_SEC already) to avoid misleading.

    Signed-off-by: Jarek Poplawski
    Signed-off-by: David S. Miller

    Jarek Poplawski
     
  • While doing trie_rebalance(): resize(), inflate(), halve() RCU free
    tnodes before updating their parents. It depends on RCU delaying the
    real destruction, but if RCU readers start after call_rcu() and before
    parent update they could access freed memory.

    It is currently prevented with preempt_disable() on the update side,
    but it's not safe, except maybe classic RCU, plus it conflicts with
    memory allocations with GFP_KERNEL flag used from these functions.

    This patch explicitly delays freeing of tnodes by adding them to the
    list, which is flushed after the update is finished.

    Reported-by: Yan Zheng
    Signed-off-by: Jarek Poplawski
    Signed-off-by: David S. Miller

    Jarek Poplawski
     
  • On systems where CONFIG_SHMEM is disabled, mounting tmpfs filesystems can
    fail when tmpfs options are used. This is because tmpfs creates a small
    wrapper around ramfs which rejects unknown options, and ramfs itself only
    supports a tiny subset of what tmpfs supports. This makes it pretty hard
    to use the same userspace systems across different configuration systems.
    As such, ramfs should ignore the tmpfs options when tmpfs is merely a
    wrapper around ramfs.

    This used to work before commit c3b1b1cbf0 as previously, ramfs would
    ignore all options. But now, we get:
    ramfs: bad mount option: size=10M
    mount: mounting mdev on /dev failed: Invalid argument

    Another option might be to restore the previous behavior, where ramfs
    simply ignored all unknown mount options ... which is what Hugh prefers.

    Signed-off-by: Mike Frysinger
    Signed-off-by: Hugh Dickins
    Acked-by: Matt Mackall
    Acked-by: Wu Fengguang
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Frysinger