1. 26 Mar, 2009 15 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 · 61a09182
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (97 commits)
        USB: qcserial: add device id for HP devices
        USB: isp1760: Add a delay before reading the SKIPMAP registers in isp1760-hcd.c
        USB: allow malformed LANGID descriptors
        USB: pxa27x_udc: typo fixes and code cleanups
        USB: gadget: gadget zero uses new suspend/resume hooks
        USB: gadget: composite device-level suspend/resume hooks
        USB: r8a66597-hcd: suspend/resume support
        USB: more u32 conversion after transfer_buffer_length and actual_length
        USB: Fix cp2101 USB serial device driver termios functions for console use
        USB: CP2101 New Device ID
        USB: ipaq: handle 4 endpoint devices
        USB: S3C: Move usb-control.h to platform include
        USB: ohci-hcd: Add ARCH_S3C24XX to the ohci-s3c2410.c glue
        USB: pedantic: spelling correction in comment for ch9.h
        USB: host: fix sparse warning: Using plain integer as NULL pointer
        USB: ohci-s3c2410: fix name of bus clock
        USB: ohci-s3c2410: remove <mach/hardware.h> include
        USB: serial: rename cp2101 driver to cp210x
        USB: CP2101 Reduce Error Logging
        USB: CP2101 Support AN205 baud rates
        ...
      61a09182
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 · 0c93ea40
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (61 commits)
        Dynamic debug: fix pr_fmt() build error
        Dynamic debug: allow simple quoting of words
        dynamic debug: update docs
        dynamic debug: combine dprintk and dynamic printk
        sysfs: fix some bin_vm_ops errors
        kobject: don't block for each kobject_uevent
        sysfs: only allow one scheduled removal callback per kobj
        Driver core: Fix device_move() vs. dpm list ordering, v2
        Driver core: some cleanup on drivers/base/sys.c
        Driver core: implement uevent suppress in kobject
        vcs: hook sysfs devices into object lifetime instead of "binding"
        driver core: fix passing platform_data
        driver core: move platform_data into platform_device
        sysfs: don't block indefinitely for unmapped files.
        driver core: move knode_bus into private structure
        driver core: move knode_driver into private structure
        driver core: move klist_children into private structure
        driver core: create a private portion of struct device
        driver core: remove polling for driver_probe_done(v5)
        sysfs: reference sysfs_dirent from sysfs inodes
        ...
      
      Fixed conflicts in drivers/sh/maple/maple.c manually
      0c93ea40
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 · bc2fd381
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (53 commits)
        ide: use try_to_identify() in ide_driveid_update()
        ide: clear drive IRQ after re-enabling local IRQs in ide_driveid_update()
        ide: sanitize SELECT_MASK() usage in ide_driveid_update()
        ide: classify device type in do_probe()
        ide: remove broken EXABYTENEST support
        ide: shorten timeout value in ide_driveid_update()
        ide: propagate AltStatus workarounds to ide_driveid_update()
        ide: fix kmalloc() failure handling in ide_driveid_update()
        mn10300: remove <asm/ide.h>
        frv: remove <asm/ide.h>
        ide: remove pciirq argument from ide_pci_setup_ports()
        ide: fix ->init_chipset method to return 'int' value
        ide: remove try_to_identify() wrapper
        ide: remove no longer needed IRQ auto-probing from try_to_identify() (v2)
        ide: remove no longer needed IRQ fallback code from hwif_init()
        amd74xx: remove no longer needed ->init_hwif method
        ide: remove no longer needed IDE_HFLAG[_FORCE]_LEGACY_IRQS
        ide: use ide_pci_is_in_compatibility_mode() in ide_pci_init_{one,two}()
        ide: use pci_get_legacy_ide_irq() in ide_pci_init_{one,two}()
        ide: handle IDE_HFLAG[_FORCE]_LEGACY_IRQS in ide_pci_init_{one,two}()
        ...
      bc2fd381
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 · 928a726b
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (96 commits)
        sh: add support for SMSC Polaris platform
        sh: fix the HD64461 level-triggered interrupts handling
        sh: sh-rtc wakeup support
        sh: sh-rtc invalid time rework
        sh: sh-rtc carry interrupt rework
        sh: disallow kexec virtual entry
        sh: kexec jump: fix for ftrace.
        sh: kexec: Drop SR.BL bit toggling.
        sh: add kexec jump support
        sh: rework kexec segment code
        sh: simplify kexec vbr code
        sh: Flush only the needed range when unmapping a VMA.
        sh: Update debugfs ASID dumping for 16-bit ASID support.
        sh: tlb-pteaex: Kill off legacy PTEA updates.
        sh: Support for extended ASIDs on PTEAEX-capable SH-X3 cores.
        sh: sh7763rdp: Change IRQ number for sh_eth of sh7763rdp
        sh: espt-giga board support
        sh: dma: Make G2 DMA configurable.
        sh: dma: Make PVR2 DMA configurable.
        sh: Move IRQ multi definition of DMAC to defconfig
        ...
      928a726b
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw · 8ff64b53
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw:
        GFS2: Fix freeze issue
        Fix a minor bug in the previous patch
        GFS2: Clean up of glops.c
        GFS2: Fix locking bug in failed shared to exclusive conversion
        GFS2: Pagecache usage optimization on GFS2
        GFS2: fix sparse warning: Should it be static?
        GFS2: fix sparse warnings: constant is so big it is ...
        GFS2: Support quota/noquota mount arguments
        GFS2: Fix alignment issue and tidy gfs2_bitfit
        GFS2: Add a "demote a glock" interface to sysfs
        GFS2: Expose UUID via sysfs/uevent
        GFS2: Support generation of discard requests
        GFS2: Fix deadlock on journal flush
        GFS2: Fix error path ref counting for root inode
        GFS2: Remove unused field from glock
        GFS2: Merge lock_dlm module into GFS2
        GFS2: Remove "double" locking in quota
        GFS2: change gfs2_quota_scan into a shrinker
        GFS2: Bring back lvb-related stuff to lock_nolock to support quotas
        GFS2: Fix remount argument parsing
      8ff64b53
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6 · 61a9dc26
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:
        avr32: remove duplicated #include
        avr32: fix out-of-range rjmp instruction on large kernels
        avr32: Fix out-of-range rcalls in large kernels
      61a9dc26
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · 50201253
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (430 commits)
        ALSA: hda - Add quirk for Acer Ferrari 5000
        ALSA: hda - Use cached calls to get widget caps and pin caps
        ALSA: hda - Don't create empty/single-item input source
        ALSA: hda - Fix the wrong pin-cap check in patch_realtek.c
        ALSA: hda - Cache pin-cap values
        ALSA: hda - Avoid output amp manipulation to digital mic pins
        ALSA: hda - Add function id to proc output
        ALSA: pcm - Safer boundary checks
        ALSA: hda - Detect digital-mic inputs on ALC663 / ALC272
        ALSA: sound/ali5451: typo: s/resouces/resources/
        ALSA: hda - Don't show the current connection for power widgets
        ALSA: Fix wrong pointer to dev_err() in arm/pxa2xx-ac97-lib.c
        ASoC: Declare Headset as Mic and Headphone widgets for SDP3430
        ASoC: OMAP: N810: Add more jack functions
        ASoC: OMAP: N810: Mark not connected input pins
        ASoC: Add FLL support for WM8400
        ALSA: hda - Don't reset stream at each prepare callback
        ALSA: hda - Don't reset BDL unnecessarily
        ALSA: pcm - Fix delta calculation at boundary overlap
        ALSA: pcm - Reset invalid position even without debug option
        ...
      50201253
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 562f477a
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (29 commits)
        crypto: sha512-s390 - Add missing block size
        hwrng: timeriomem - Breaks an allyesconfig build on s390:
        nlattr: Fix build error with NET off
        crypto: testmgr - add zlib test
        crypto: zlib - New zlib crypto module, using pcomp
        crypto: testmgr - Add support for the pcomp interface
        crypto: compress - Add pcomp interface
        netlink: Move netlink attribute parsing support to lib
        crypto: Fix dead links
        hwrng: timeriomem - New driver
        crypto: chainiv - Use kcrypto_wq instead of keventd_wq
        crypto: cryptd - Per-CPU thread implementation based on kcrypto_wq
        crypto: api - Use dedicated workqueue for crypto subsystem
        crypto: testmgr - Test skciphers with no IVs
        crypto: aead - Avoid infinite loop when nivaead fails selftest
        crypto: skcipher - Avoid infinite loop when cipher fails selftest
        crypto: api - Fix crypto_alloc_tfm/create_create_tfm return convention
        crypto: api - crypto_alg_mod_lookup either tested or untested
        crypto: amcc - Add crypt4xx driver
        crypto: ansi_cprng - Add maintainer
        ...
      562f477a
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq · ada19a31
      Linus Torvalds authored
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq: (35 commits)
        [CPUFREQ] Prevent p4-clockmod from auto-binding to the ondemand governor.
        [CPUFREQ] Make cpufreq-nforce2 less obnoxious
        [CPUFREQ] p4-clockmod reports wrong frequency.
        [CPUFREQ] powernow-k8: Use a common exit path.
        [CPUFREQ] Change link order of x86 cpufreq modules
        [CPUFREQ] conservative: remove 10x from def_sampling_rate
        [CPUFREQ] conservative: fixup governor to function more like ondemand logic
        [CPUFREQ] conservative: fix dbs_cpufreq_notifier so freq is not locked
        [CPUFREQ] conservative: amend author's email address
        [CPUFREQ] Use swap() in longhaul.c
        [CPUFREQ] checkpatch cleanups for acpi-cpufreq
        [CPUFREQ] powernow-k8: Only print error message once, not per core.
        [CPUFREQ] ondemand/conservative: sanitize sampling_rate restrictions
        [CPUFREQ] ondemand/conservative: deprecate sampling_rate{min,max}
        [CPUFREQ] powernow-k8: Always compile powernow-k8 driver with ACPI support
        [CPUFREQ] Introduce /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_transition_latency
        [CPUFREQ] checkpatch cleanups for powernow-k8
        [CPUFREQ] checkpatch cleanups for ondemand governor.
        [CPUFREQ] checkpatch cleanups for powernow-k7
        [CPUFREQ] checkpatch cleanups for speedstep related drivers.
        ...
      ada19a31
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of... · 8d80ce80
      Linus Torvalds authored
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (71 commits)
        SELinux: inode_doinit_with_dentry drop no dentry printk
        SELinux: new permission between tty audit and audit socket
        SELinux: open perm for sock files
        smack: fixes for unlabeled host support
        keys: make procfiles per-user-namespace
        keys: skip keys from another user namespace
        keys: consider user namespace in key_permission
        keys: distinguish per-uid keys in different namespaces
        integrity: ima iint radix_tree_lookup locking fix
        TOMOYO: Do not call tomoyo_realpath_init unless registered.
        integrity: ima scatterlist bug fix
        smack: fix lots of kernel-doc notation
        TOMOYO: Don't create securityfs entries unless registered.
        TOMOYO: Fix exception policy read failure.
        SELinux: convert the avc cache hash list to an hlist
        SELinux: code readability with avc_cache
        SELinux: remove unused av.decided field
        SELinux: more careful use of avd in avc_has_perm_noaudit
        SELinux: remove the unused ae.used
        SELinux: check seqno when updating an avc_node
        ...
      8d80ce80
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus · 1646df40
      Linus Torvalds authored
      * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
        MIPS: R2: Fix problem with code that incorrectly modifies ebase.
        MIPS: Change {set,clear,change}_c0_<foo> to return old value.
        MIPS: compat: Remove duplicated #include
        MIPS: VR5500: Enable prefetch
        MIPS: Fix oops in dma_unmap_page on not coherent mips platforms
      1646df40
    • Wu Fengguang's avatar
      writeback: double the dirty thresholds · 1b5e62b4
      Wu Fengguang authored
      Enlarge default dirty ratios from 5/10 to 10/20.  This fixes [Bug
      #12809] iozone regression with 2.6.29-rc6.
      
      The iozone benchmarks are performed on a 1200M file, with 8GB ram.
      
        iozone -i 0 -i 1 -i 2 -i 3 -i 4 -r 4k -s 64k -s 512m -s 1200m -b tmp.xls
        iozone -B -r 4k -s 64k -s 512m -s 1200m -b tmp.xls
      
      The performance regression is triggered by commit 1cf6e7d8(mm: task
      dirty accounting fix), which makes more correct/thorough dirty
      accounting.
      
      The default 5/10 dirty ratios were picked (a) with the old dirty logic
      and (b) largely at random and (c) designed to be aggressive.  In
      particular, that (a) means that having fixed some of the dirty
      accounting, maybe the real bug is now that it was always too aggressive,
      just hidden by an accounting issue.
      
      The enlarged 10/20 dirty ratios are just about enough to fix the regression.
      
      [ We will have to look at how this affects the old fsync() latency issue,
        but that probably will need independent work.  - Linus ]
      
      Cc: Nick Piggin <npiggin@suse.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Reported-by: default avatar"Lin, Ming M" <ming.m.lin@intel.com>
      Tested-by: default avatar"Lin, Ming M" <ming.m.lin@intel.com>
      Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1b5e62b4
    • Matthew Garrett's avatar
      Make relatime default · 0a1c01c9
      Matthew Garrett authored
      Change the default behaviour of the kernel to use relatime for all
      filesystems. This can be overridden with the "strictatime" mount
      option.
      Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0a1c01c9
    • Matthew Garrett's avatar
      Add a strictatime mount option · d0adde57
      Matthew Garrett authored
      Add support for explicitly requesting full atime updates. This makes it
      possible for kernels to default to relatime but still allow userspace to
      override it.
      Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d0adde57
    • Matthew Garrett's avatar
      Allow relatime to update atime once a day · 11ff6f05
      Matthew Garrett authored
      Allow atime to be updated once per day even with relatime. This lets
      utilities like tmpreaper (which delete files based on last access time)
      continue working, making relatime a plausible default for distributions.
      Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
      Reviewed-by: default avatarMatthew Wilcox <willy@linux.intel.com>
      Acked-by: default avatarValerie Aurora Henson <vaurora@redhat.com>
      Acked-by: default avatarAlan Cox <alan@redhat.com>
      Acked-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      11ff6f05
  2. 24 Mar, 2009 25 commits
    • Greg Banks's avatar
      Dynamic debug: fix pr_fmt() build error · e6e66b02
      Greg Banks authored
      When CONFIG_DYNAMIC_DEBUG is enabled, allow callers of pr_debug()
      to provide their own definition of pr_fmt() even if that definition
      uses tricks like
      
      #define pr_fmt(fmt) "%s:" fmt, __func__
      Signed-off-by: default avatarGreg Banks <gnb@sgi.com>
      Cc: Jason Baron <jbaron@redhat.com>
      Acked-by: default avatarGeert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      e6e66b02
    • Greg Banks's avatar
      Dynamic debug: allow simple quoting of words · 9898abb3
      Greg Banks authored
      Allow simple quoting of words in the dynamic debug control language.
      
      This allows more natural specification when using the control language
      to match against printk formats, e.g
      
      #echo -n 'format "Setting node for non-present cpu" +p' >
      	/mnt/debugfs/dynamic_debug/control
      
      instead of
      
      #echo -n 'format Setting\040node\040for\040non-present\040cpu +p' >
      	/mnt/debugfs/dynamic_debug/control
      
      Adjust the dynamic debug documention to describe that and provide a
      new example.  Adjust the existing examples in the documentation to
      reflect the current whitespace escaping behaviour when reading the
      control file.  Fix some minor documentation trailing whitespace.
      Signed-off-by: default avatarGreg Banks <gnb@melbourne.sgi.com>
      Acked-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      9898abb3
    • Jason Baron's avatar
      dynamic debug: update docs · 86151fdf
      Jason Baron authored
      updates the documentation for 'dynamic debug' feature.
      Signed-off-by: default avatarGreg Banks <gnb@sgi.com>
      Signed-off-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      
      86151fdf
    • Jason Baron's avatar
      dynamic debug: combine dprintk and dynamic printk · e9d376f0
      Jason Baron authored
      This patch combines Greg Bank's dprintk() work with the existing dynamic
      printk patchset, we are now calling it 'dynamic debug'.
      
      The new feature of this patchset is a richer /debugfs control file interface,
      (an example output from my system is at the bottom), which allows fined grained
      control over the the debug output. The output can be controlled by function,
      file, module, format string, and line number.
      
      for example, enabled all debug messages in module 'nf_conntrack':
      
      echo -n 'module nf_conntrack +p' > /mnt/debugfs/dynamic_debug/control
      
      to disable them:
      
      echo -n 'module nf_conntrack -p' > /mnt/debugfs/dynamic_debug/control
      
      A further explanation can be found in the documentation patch.
      Signed-off-by: default avatarGreg Banks <gnb@sgi.com>
      Signed-off-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      e9d376f0
    • Hugh Dickins's avatar
      sysfs: fix some bin_vm_ops errors · 095160ae
      Hugh Dickins authored
      Commit 86c9508eb1c0ce5aa07b5cf1d36b60c54efc3d7a
      "sysfs: don't block indefinitely for unmapped files" in linux-next
      crashes the PowerMac G5 when X starts up.  It's caught out by the way
      powerpc's pci_mmap of legacy_mem uses shmem_zero_setup(), substituting
      a new vma->vm_file whose private_data no longer points to the bin_buffer
      (substitution done because some versions of X crash if that mmap fails).
      
      The fix to this is straightforward: the original vm_file is fput() in
      that case, so this mmap won't block sysfs at all, so just don't switch
      over to bin_vm_ops if vm_file has changed.
      
      But more fixes made before realizing that was the problem:-
      
      It should not be an error if bin_page_mkwrite() finds no underlying
      page_mkwrite().
      
      Check that a file already mmap'ed has the same underlying vm_ops
      _before_ pointing vma->vm_ops at bin_vm_ops.
      
      If the file being mmap'ed is a shmem/tmpfs file, don't fail the mmap
      on CONFIG_NUMA=y, just because that has a set_policy and get_policy:
      provide bin_set_policy, bin_get_policy and bin_migrate.
      Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
      Acked-by: default avatarEric Biederman <ebiederm@aristanetworks.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      
      095160ae
    • Arjan van de Ven's avatar
      kobject: don't block for each kobject_uevent · f520360d
      Arjan van de Ven authored
      Right now, the kobject_uevent code blocks for each uevent that's being
      generated, due to using (for hystoric reasons) UHM_WAIT_EXEC as flag to
      call_usermode_helper().  Specifically, the effect is that each uevent
      that is being sent causes the code to wake up keventd, then block until
      keventd has processed the work. Needless to say, this happens many times
      during the system boot.
      
      This patches changes that to UHN_NO_WAIT (brilliant name for a constant
      btw) so that we only schedule the work to fire the uevent message, but
      do not wait for keventd to process the work.
      
      This removes one of the bottlenecks during boot; each one of them is
      only a small effect, but the sum of them does add up.
      
      [Note, distros that need this are broken, they should be setting
      CONFIG_UEVENT_HELPER_PATH to "", that way this code path will never be
      excuted at all -- gregkh]
      Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      f520360d
    • Alex Chiang's avatar
      sysfs: only allow one scheduled removal callback per kobj · 66942064
      Alex Chiang authored
      The only way for a sysfs attribute to remove itself (without
      deadlock) is to use the sysfs_schedule_callback() interface.
      
      Vegard Nossum discovered that a poorly written sysfs ->store
      callback can repeatedly schedule remove callbacks on the same
      device over and over, e.g.
      
      	$ while true ; do echo 1 > /sys/devices/.../remove ; done
      
      If the 'remove' attribute uses the sysfs_schedule_callback API
      and also does not protect itself from concurrent accesses, its
      callback handler will be called multiple times, and will
      eventually attempt to perform operations on a freed kobject,
      leading to many problems.
      
      Instead of requiring all callers of sysfs_schedule_callback to
      implement their own synchronization, provide the protection in
      the infrastructure.
      
      Now, sysfs_schedule_callback will only allow one scheduled
      callback per kobject. On subsequent calls with the same kobject,
      return -EAGAIN.
      
      This is a short term fix. The long term fix is to allow sysfs
      attributes to remove themselves directly, without any of this
      callback hokey pokey.
      
      [cornelia.huck@de.ibm.com: s390 ccwgroup bits]
      
      Reported-by: vegard.nossum@gmail.com
      Signed-off-by: default avatarAlex Chiang <achiang@hp.com>
      Acked-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      66942064
    • Cornelia Huck's avatar
      Driver core: Fix device_move() vs. dpm list ordering, v2 · ffa6a705
      Cornelia Huck authored
      dpm_list currently relies on the fact that child devices will
      be registered after their parents to get a correct suspend
      order. Using device_move() however destroys this assumption, as
      an already registered device may be moved under a newly registered
      one.
      
      This patch adds a new argument to device_move(), allowing callers
      to specify how dpm_list should be adapted.
      Signed-off-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
      Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      ffa6a705
    • Zhenwen Xu's avatar
      Driver core: some cleanup on drivers/base/sys.c · 60530afe
      Zhenwen Xu authored
      do some cleanup on drivers/base/sys.c
      Signed-off-by: default avatarZhenwen Xu <helight.xu@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      60530afe
    • Ming Lei's avatar
      Driver core: implement uevent suppress in kobject · f67f129e
      Ming Lei authored
      This patch implements uevent suppress in kobject and removes it
      from struct device, based on the following ideas:
      
      1,Uevent sending should be one attribute of kobject, so suppressing it
      in kobject layer is more natural than in device layer. By this way,
      we can do it for other objects embedded with kobject.
      
      2,It may save several bytes for each instance of struct device.(On my
      omap3(32bit ARM) based box, can save 8bytes per device object)
      
      This patch also introduces dev_set|get_uevent_suppress() helpers to
      set and query uevent_suppress attribute in case to help kobject
      as private part of struct device in future.
      
      [This version is against the latest driver-core patch set of Greg,please
      ignore the last version.]
      Signed-off-by: default avatarMing Lei <tom.leiming@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      f67f129e
    • Kay Sievers's avatar
      vcs: hook sysfs devices into object lifetime instead of "binding" · 4995f8ef
      Kay Sievers authored
      During bootup performance tracing I noticed many occurrences of
      vca* device creation and removal, leading to the usual userspace
      uevent processing, which are, in this case, rather pointless.
      
      A simple test showing the kernel timing (not including all the
      work userspace has to do), gives us these numbers:
        $ time for i in `seq 1000`; do echo a > /dev/tty2; done
        real    0m1.142s
        user    0m0.015s
        sys     0m0.540s
      
      If we move the hook for the vcs* driver core devices from the
      tty "binding" to the vc allocation/deallocation, which is what
      the vcs* devices represent, we get the following numbers:
        $ time for i in `seq 1000`; do echo a > /dev/tty2; done
        real    0m0.152s
        user    0m0.030s
        sys     0m0.072s
      
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      4995f8ef
    • Ming Lei's avatar
      driver core: fix passing platform_data · ce21c7bc
      Ming Lei authored
      We will remove platform_data field from struct device until
      all platform devices pass its specific data from platfom_device
      and all platform drivers use platform specific data passed by
      platform_device->platform_data. This kind of conversion will
      need a long time, for thousands of files is affected.
      
      To make the conversion easily, we allow platform specific data
      passed by struct device or struct platform_device and platform
      driver may use it from struct device or struct platform_device.
      Signed-off-by: default avatarMing Lei <tom.leiming@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      ce21c7bc
    • Ming Lei's avatar
      driver core: move platform_data into platform_device · 006f4571
      Ming Lei authored
      This patch moves platform_data from struct device into
      struct platform_device, based on the two ideas:
      
      1. Now all platform_driver is registered by platform_driver_register,
         which makes probe()/release()/... of platform_driver passed parameter
         of platform_device *, so platform driver can get platform_data from
         platform_device;
      
      2. Other kind of devices do not need to use platform_data, we can
         decrease size of device if moving it to platform_device.
      
      Taking into consideration of thousands of files to be fixed and they
      can't be finished in one night(maybe it will take a long time), so we
      keep platform_data in device to allow two kind of cases coexist until
      all platform devices pass its platfrom data from
      platform_device->platform_data.
      
      All patches to do this kind of conversion are welcome.
      Signed-off-by: default avatarMing Lei <tom.leiming@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      006f4571
    • Eric W. Biederman's avatar
      sysfs: don't block indefinitely for unmapped files. · e0edd3c6
      Eric W. Biederman authored
      Modify sysfs bin files so that we can remove the bin file while they are
      still mapped.  When the kobject is removed we unmap the bin file and
      arrange for future accesses to the mapping to receive SIGBUS.
      
      Implementing this prevents a nasty DOS when pci devices are hot plugged
      and unplugged.  Where if any of their resources were mmaped the kernel
      could not free up their pci resources or release their pci data
      structures.
      
      [akpm@linux-foundation.org: remove unused var]
      Signed-off-by: default avatarEric W. Biederman <ebiederm@aristanetworks.com>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      e0edd3c6
    • Greg Kroah-Hartman's avatar
      driver core: move knode_bus into private structure · ae1b4171
      Greg Kroah-Hartman authored
      Nothing outside of the driver core should ever touch knode_bus, so
      move it out of the public eye.
      
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      ae1b4171
    • Greg Kroah-Hartman's avatar
      driver core: move knode_driver into private structure · 8940b4f3
      Greg Kroah-Hartman authored
      Nothing outside of the driver core should ever touch knode_driver, so
      move it out of the public eye.
      
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      8940b4f3
    • Greg Kroah-Hartman's avatar
      driver core: move klist_children into private structure · f791b8c8
      Greg Kroah-Hartman authored
      Nothing outside of the driver core should ever touch klist_children, or
      knode_parent, so move them out of the public eye.
      
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      f791b8c8
    • Greg Kroah-Hartman's avatar
      driver core: create a private portion of struct device · fb069a5d
      Greg Kroah-Hartman authored
      This is to be used to move things out of struct device that no code
      outside of the driver core should ever touch.
      
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      fb069a5d
    • Ming Lei's avatar
      driver core: remove polling for driver_probe_done(v5) · b23530eb
      Ming Lei authored
      This patch removes 100ms polling for driver_probe_done in
      wait_for_device_probe(), and uses wait_event() instead.
      Removing polling in fs initialization may lead to
      a faster boot.
      
      This patch also changes the return type of wait_for_device_done()
      from int to void.
      
      This patch is against Arjan's patch in linux-next tree.
      Signed-off-by: default avatarMing Lei <tom.leiming@gmail.com>
      Acked-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
      Reviewed-by: default avatarArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      b23530eb
    • Eric W. Biederman's avatar
      sysfs: reference sysfs_dirent from sysfs inodes · 04256b4a
      Eric W. Biederman authored
      The sysfs_dirent serves as both an inode and a directory entry
      for sysfs.  To prevent the sysfs inode numbers from being freed
      prematurely hold a reference to sysfs_dirent from the sysfs inode.
      
      [akpm@linux-foundation.org: add comment]
      Signed-off-by: default avatarEric W. Biederman <ebiederm@aristanetworks.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      04256b4a
    • Alex Chiang's avatar
      sysfs: sysfs_add_one WARNs with full path to duplicate filename · 425cb029
      Alex Chiang authored
      sysfs: sysfs_add_one WARNs with full path to duplicate filename
      
      As a debugging aid, it can be useful to know the full path to a
      duplicate file being created in sysfs.
      
      We now will display warnings such as:
      
      	sysfs: cannot create duplicate filename '/foo'
      
      when attempting to create multiple files named 'foo' in the sysfs
      root, or:
      
      	sysfs: cannot create duplicate filename '/bus/pci/slots/5/foo'
      
      when attempting to create multiple files named 'foo' under a
      given directory in sysfs.
      
      The path displayed is always a relative path to sysfs_root. The
      leading '/' in the path name refers to the sysfs_root mount
      point, and should not be confused with the "real" '/'.
      
      Thanks to Alex Williamson for essentially writing sysfs_pathname.
      
      Cc: Alex Williamson <alex.williamson@hp.com>
      Signed-off-by: default avatarAlex Chiang <achiang@hp.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      425cb029
    • Dave Young's avatar
      driver-core: do not register a driver with bus_type not registered · f48f3feb
      Dave Young authored
      If the bus_type is not registerd, driver_register to that bus will cause oops.
      
      I found this bug when test built-in usb serial drivers (ie. aircable driver)
      with 'nousb' cmdline params.
      
      In this patch:
      1. set the bus->p=NULL when bus_register failed and unregisterd.
      2. if bus->p is NULL, driver_register BUG_ON will be triggered.
      Signed-off-by: default avatarDave Young <hidave.darkstar@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      f48f3feb
    • Geert Uytterhoeven's avatar
      scsi/m68k: Kill NCR_700_detect() warnings · e5779a58
      Geert Uytterhoeven authored
      The patch from Ming Lei <tom.leiming@gmail.com> entitled:
          platform driver: fix incorrect use of 'platform_bus_type' with 'struct devic
      introduced the following warnings on m68k, as `dev' is now a `struct
      platform_device *' instead of a `struct device *':
      
      | drivers/scsi/a4000t.c:64: warning: passing argument 3 of 'NCR_700_detect' from incompatible pointer type
      | drivers/scsi/mvme16x_scsi.c:67: warning: passing argument 3 of 'NCR_700_detect' from incompatible pointer type
      | drivers/scsi/bvme6000_scsi.c:61: warning: passing argument 3 of 'NCR_700_detect' from incompatible pointer type
      
      I think the below is missing (untested on real hardware).
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Ming Lei <tom.leiming@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      e5779a58
    • Ming Lei's avatar
      platform driver: fix incorrect use of 'platform_bus_type' with 'struct device_driver' · 7a192ec3
      Ming Lei authored
      This patch fixes the bug reported in
      	http://bugzilla.kernel.org/show_bug.cgi?id=11681.
      
      "Lots of device drivers register a 'struct device_driver' with
      the '.bus' member set to '&platform_bus_type'. This is wrong,
      since the platform_bus functions expect the 'struct device_driver'
      to be wrapped up in a 'struct platform_driver' which provides
      some additional callbacks (like suspend_late, resume_early).
      The effect may be that platform_suspend_late() uses bogus data
      outside the device_driver struct as a pointer pointer to the
      device driver's suspend_late() function or other hard to
      reproduce failures."(Lothar Wassmann)
      Signed-off-by: default avatarMing Lei <tom.leiming@gmail.com>
      Acked-by: default avatarHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Acked-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      7a192ec3
    • Ian Abbott's avatar
      UIO: Take offset into account when determining number of pages that can be mapped · 6da2d377
      Ian Abbott authored
      If a UIO memory region does not start on a page boundary but straddles one,
      the number of actual pages that overlap the memory region may be calculated
      incorrectly because the offset isn't taken into account.  If userspace sets
      the mmap length to offset+size, it may fail with -EINVAL if UIO thinks it's
      trying to allocate too many pages.
      Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
      Cc: Hans J. Koch <hjk@linutronix.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      6da2d377