1. 20 3月, 2014 1 次提交
    • B
      PCI: Don't enable decoding if BAR hasn't been assigned an address · 3cedcc36
      Bjorn Helgaas 提交于
      Don't enable memory or I/O decoding if we haven't assigned or claimed the
      BAR's resource.
      
      If we enable decoding for a BAR that hasn't been assigned an address, we'll
      likely cause bus conflicts.  This declines to enable decoding for resources
      with IORESOURCE_UNSET.
      
      Note that drivers can use pci_enable_device_io() or pci_enable_device_mem()
      if they only care about specific types of BARs.  In that case, we don't
      bother checking whether the corresponding resources are assigned or
      claimed.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      3cedcc36
  2. 28 2月, 2014 6 次提交
    • B
      PCI: Mark 64-bit resource as IORESOURCE_UNSET if we only support 32-bit · c83bd900
      Bjorn Helgaas 提交于
      If we don't support 64-bit addresses, i.e., CONFIG_PHYS_ADDR_T_64BIT is not
      set, we can't deal with BARs above 4GB.  In this case we already pretend
      the BAR contained zero; this patch also sets IORESOURCE_UNSET so we can try
      to reallocate it later.
      
      I don't think this is exactly correct: what we care about here are *bus*
      addresses, not CPU addresses, so the tests of sizeof(resource_size_t)
      probably should be on sizeof(dma_addr_t) instead.  But this is what's been
      in -next, so we'll fix that later.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      c83bd900
    • B
      PCI: Don't try to claim IORESOURCE_UNSET resources · 29003beb
      Bjorn Helgaas 提交于
      If the IORESOURCE_UNSET bit is set, it means we haven't assigned an address
      yet, so don't try to claim the region.
      
      Also, make the error messages more uniform and add info about which BAR is
      involved.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      29003beb
    • B
      PCI: Check IORESOURCE_UNSET before updating BAR · cd8a4d36
      Bjorn Helgaas 提交于
      Check to make sure we don't update a BAR with an address we haven't
      assigned.
      
      If we haven't assigned an address to a resource, we shouldn't write it to a
      BAR.  This isn't a problem for the usual path via pci_assign_resource(),
      which clears IORESOURCE_UNSET before calling pci_update_resource(), but
      paths like pci_restore_bars() can call this for resources we haven't
      assigned.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      cd8a4d36
    • B
      PCI: Don't clear IORESOURCE_UNSET when updating BAR · 434aafc1
      Bjorn Helgaas 提交于
      Clear IORESOURCE_UNSET when we assign an address to a resource, not when we
      write the address to the BAR.
      
      Also, drop the "BAR %d: set to %pR" message; this is mostly redundant with
      the "BAR %d: assigned %pR" message from pci_assign_resource().
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      434aafc1
    • B
      PCI: Mark resources as IORESOURCE_UNSET if we can't assign them · bd064f0a
      Bjorn Helgaas 提交于
      When assigning addresses to resources, mark them with IORESOURCE_UNSET
      before we start and clear IORESOURCE_UNSET if assignment is successful.
      That means that if we print the resource during assignment, we will show
      the size, not a meaningless address.
      
      Also, clear IORESOURCE_UNSET if we do assign an address, so we print the
      address when it is valid.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      bd064f0a
    • B
      PCI: Remove pci_find_parent_resource() use for allocation · f44116ae
      Bjorn Helgaas 提交于
      If the resource hasn't been allocated yet, pci_find_parent_resource() is
      documented as returning the region "where it should be allocated from."
      This is impossible in general because there may be several candidates: a
      prefetchable BAR can be put in either a prefetchable or non-prefetchable
      window, a transparent bridge may have overlapping positively- and
      subtractively-decoded windows, and a root bus may have several windows of
      the same type.
      
      Allocation should be done by pci_bus_alloc_resource(), which iterates
      through all bus resources and looks for the best match, e.g., one with the
      desired prefetchability attributes, and falls back to less-desired
      possibilities.
      
      The only valid use of pci_find_parent_resource() is to find the parent of
      an already-allocated resource so we can claim it via request_resource(),
      and all we need for that is a bus region of the correct type that contains
      the resource.
      
      Note that like 8c8def26 ("PCI: allow matching of prefetchable resources
      to non-prefetchable windows"), this depends on pci_bus_for_each_resource()
      iterating through positively-decoded regions before subtractively-decoded
      ones.  We prefer not to return a subtractively-decoded region because
      requesting from it will likely conflict with the overlapping positively-
      decoded window (see Launchpad report below).
      
      Link: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/424142Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      CC: Linus Torvalds <torvalds@linux-foundation.org>
      f44116ae
  3. 27 2月, 2014 6 次提交
    • B
      vsprintf: Add support for IORESOURCE_UNSET in %pR · d19cb803
      Bjorn Helgaas 提交于
      Sometimes we have a struct resource where we know the type (MEM/IO/etc.)
      and the size, but we haven't assigned address space for it.  The
      IORESOURCE_UNSET flag is a way to indicate this situation.  For these
      "unset" resources, the start address is meaningless, so print only the
      size, e.g.,
      
        - pci 0000:0c:00.0: reg 184: [mem 0x00000000-0x00001fff 64bit]
        + pci 0000:0c:00.0: reg 184: [mem size 0x2000 64bit]
      
      For %pr (printing with raw flags), we still print the address range,
      because %pr is mostly used for debugging anyway.
      
      Thanks to Fengguang Wu <fengguang.wu@intel.com> for suggesting
      resource_size().
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      d19cb803
    • B
      resource: Add resource_contains() · 5edb93b8
      Bjorn Helgaas 提交于
      We have two identical copies of resource_contains() already, and more
      places that could use it.  This moves it to ioport.h where it can be
      shared.
      
      resource_contains(struct resource *r1, struct resource *r2) returns true
      iff r1 and r2 are the same type (most callers already checked this
      separately) and the r1 address range completely contains r2.
      
      In addition, the new resource_contains() checks that both r1 and r2 have
      addresses assigned to them.  If a resource is IORESOURCE_UNSET, it doesn't
      have a valid address and can't contain or be contained by another resource.
      Some callers already check this or for res->start.
      
      No functional change.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      5edb93b8
    • B
      i2o: Use pci_bus_alloc_resource(), not allocate_resource() directly · d2e074cc
      Bjorn Helgaas 提交于
      Convert i2o_res_alloc() to use pci_bus_alloc_resource() rather than
      pci_find_parent_resource() and allocate_resource().  We don't have a
      resource to start with, so pci_find_parent_resource() can't do anything
      useful: a bus may have several memory resources available, so there might
      be several possible parents.  This is more likely on root buses because
      host bridges may have any number of apertures.
      
      I'm pretty sure this didn't work in the first place because it passed
      size == min == max to allocate_resource().  The min and max parameters are
      constraints on the *addresses* of the resource, not on its size, so I think
      it was impossible for allocate_resource() to succeed.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      d2e074cc
    • B
      i2o: Refactor i2o_iop_systab_set() PCI space allocation · 60f061e1
      Bjorn Helgaas 提交于
      Refactor the PCI space allocation in i2o_iop_systab_set().  This might
      improve readability slightly, but mainly it is to make the next patch
      simpler.
      
      No functional change.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      60f061e1
    • B
      i2o: Fix I/O space alignment requirement · 5c513bd5
      Bjorn Helgaas 提交于
      When i2o_iop_systab_set() allocates I/O port space, it specifies 1Mb
      alignment required.  This seems unlikely, since most platforms have only
      64Kb of I/O space total.  I think 4Kb is a more reasonable choice, since
      that's the minimum alignment of a PCI-PCI bridge I/O window.
      
      My guess is that this is a copy/paste error from the memory allocation
      code, which specifies 1Mb alignment (which is the minimum alignment of a
      PCI-PCI bridge memory window).
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      5c513bd5
    • B
      i2o: Fix I/O space allocation copy/paste error · 7ed37fc3
      Bjorn Helgaas 提交于
      When i2o_iop_systab_set() allocates I/O port space, it assigns the base of
      the new I/O port region to sb->current_mem_base, not sb->current_io_base.
      This looks like a copy/paste error, because we do use current_io_base, but
      there's no other place that sets it.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      7ed37fc3
  4. 03 2月, 2014 16 次提交
    • L
      Linus 3.14-rc1 · 38dbfb59
      Linus Torvalds 提交于
      38dbfb59
    • L
      Merge branch 'parisc-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 69048e01
      Linus Torvalds 提交于
      Pull parisc updates from Helge Deller:
       "The three major changes in this patchset is a implementation for
        flexible userspace memory maps, cache-flushing fixes (again), and a
        long-discussed ABI change to make EWOULDBLOCK the same value as
        EAGAIN.
      
        parisc has been the only platform where we had EWOULDBLOCK != EAGAIN
        to keep HP-UX compatibility.  Since we will probably never implement
        full HP-UX support, we prefer to drop this compatibility to make it
        easier for us with Linux userspace programs which mostly never checked
        for both values.  We don't expect major fall-outs because of this
        change, and if we face some, we will simply rebuild the necessary
        applications in the debian archives"
      
      * 'parisc-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: add flexible mmap memory layout support
        parisc: Make EWOULDBLOCK be equal to EAGAIN on parisc
        parisc: convert uapi/asm/stat.h to use native types only
        parisc: wire up sched_setattr and sched_getattr
        parisc: fix cache-flushing
        parisc/sti_console: prefer Linux fonts over built-in ROM fonts
      69048e01
    • M
      hpfs: optimize quad buffer loading · 1c0b8a7a
      Mikulas Patocka 提交于
      HPFS needs to load 4 consecutive 512-byte sectors when accessing the
      directory nodes or bitmaps.  We can't switch to 2048-byte block size
      because files are allocated in the units of 512-byte sectors.
      
      Previously, the driver would allocate a 2048-byte area using kmalloc,
      copy the data from four buffers to this area and eventually copy them
      back if they were modified.
      
      In the current implementation of the buffer cache, buffers are allocated
      in the pagecache.  That means that 4 consecutive 512-byte buffers are
      stored in consecutive areas in the kernel address space.  So, we don't
      need to allocate extra memory and copy the content of the buffers there.
      
      This patch optimizes the code to avoid copying the buffers.  It checks
      if the four buffers are stored in contiguous memory - if they are not,
      it falls back to allocating a 2048-byte area and copying data there.
      Signed-off-by: NMikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1c0b8a7a
    • M
      hpfs: remember free space · 2cbe5c76
      Mikulas Patocka 提交于
      Previously, hpfs scanned all bitmaps each time the user asked for free
      space using statfs.  This patch changes it so that hpfs scans the
      bitmaps only once, remembes the free space and on next invocation of
      statfs it returns the value instantly.
      
      New versions of wine are hammering on the statfs syscall very heavily,
      making some games unplayable when they're stored on hpfs, with load
      times in minutes.
      
      This should be backported to the stable kernels because it fixes
      user-visible problem (excessive level load times in wine).
      Signed-off-by: NMikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
      Cc: stable@vger.kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2cbe5c76
    • H
      parisc: add flexible mmap memory layout support · 9dabf60d
      Helge Deller 提交于
      Add support for the flexible mmap memory layout (as described in
      http://lwn.net/Articles/91829). This is especially very interesting on
      parisc since we currently only support 32bit userspace (even with a
      64bit Linux kernel).
      Signed-off-by: NHelge Deller <deller@gmx.de>
      9dabf60d
    • G
      parisc: Make EWOULDBLOCK be equal to EAGAIN on parisc · f5a408d5
      Guy Martin 提交于
      On Linux, only parisc uses a different value for EWOULDBLOCK which
      causes a lot of troubles for applications not checking for both values.
      Since the hpux compat is long dead, make EWOULDBLOCK behave the same as
      all other architectures.
      Signed-off-by: NGuy Martin <gmsoft@tuxicoman.be>
      Signed-off-by: NHelge Deller <deller@gmx.de>
      f5a408d5
    • H
      parisc: convert uapi/asm/stat.h to use native types only · 9391bc77
      Helge Deller 提交于
      The stat.h header file is exported to userspace. Some userspace
      applications failed to compile due to missing/unknown types, so we
      better convert it to use native types only (like it's done on other
      architectures too).
      Signed-off-by: NHelge Deller <deller@gmx.de>
      9391bc77
    • H
      parisc: wire up sched_setattr and sched_getattr · 998bbb2f
      Helge Deller 提交于
      Signed-off-by: NHelge Deller <deller@gmx.de>
      998bbb2f
    • H
      parisc: fix cache-flushing · 57737c49
      Helge Deller 提交于
      This commit:
      f8dae006: parisc: Ensure full cache coherency for kmap/kunmap
      caused negative caching side-effects, e.g. hanging processes with expect and
      too many inequivalent alias messages from flush_dcache_page() on Debian 5 systems.
      
      This patch now partly reverts it and has been in production use on our debian buildd
      makeservers since a week without any major problems.
      Signed-off-by: NHelge Deller <deller@gmx.de>
      Signed-off-by: NJohn David Anglin <dave.anglin@bell.net>
      Cc: stable@vger.kernel.org # v3.9+
      Signed-off-by: NHelge Deller <deller@gmx.de>
      57737c49
    • H
      parisc/sti_console: prefer Linux fonts over built-in ROM fonts · 8a10bc9d
      Helge Deller 提交于
      The built-in ROM fonts lack many necessary ASCII characters, which is
      why it makes sens to prefer the Linux fonts instead if they are
      available.  This makes consoles on STI graphics cards which are not
      supported by the stifb driver (e.g. Visualize FXe) looks much nicer.
      Signed-off-by: NHelge Deller <deller@gmx.de>
      Cc: stable@vger.kernel.org # v3.13
      8a10bc9d
    • L
      Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging · 602456bf
      Linus Torvalds 提交于
      Pull hwmon kconfig fixes from Jean Delvare.
      
      * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
        hwmon: Fix SENSORS_TMP102 dependencies to eliminate build errors
        hwmon: Fix SENSORS_LM75 dependencies to eliminate build errors
      602456bf
    • L
      Merge branch 'slab/next' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux · 7b383bef
      Linus Torvalds 提交于
      Pull SLAB changes from Pekka Enberg:
       "Random bug fixes that have accumulated in my inbox over the past few
        months"
      
      * 'slab/next' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:
        mm: Fix warning on make htmldocs caused by slab.c
        mm: slub: work around unneeded lockdep warning
        mm: sl[uo]b: fix misleading comments
        slub: Fix possible format string bug.
        slub: use lockdep_assert_held
        slub: Fix calculation of cpu slabs
        slab.h: remove duplicate kmalloc declaration and fix kernel-doc warnings
      7b383bef
    • L
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux · 87af5e5c
      Linus Torvalds 提交于
      Pull turbostat updates from Len Brown.
      
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
        tools/power turbostat: introduce -s to dump counters
        tools/power turbostat: remove unused command line option
        turbostat: Add option to report joules consumed per sample
        turbostat: run on HSX
        turbostat: Add a .gitignore to ignore the compiled turbostat binary
        turbostat: Clean up error handling; disambiguate error messages; use err and errx
        turbostat: Factor out common function to open file and exit on failure
        turbostat: Add a helper to parse a single int out of a file
        turbostat: Check return value of fscanf
        turbostat: Use GCC's CPUID functions to support PIC
        turbostat: Don't attempt to printf an off_t with %zx
        turbostat: Don't put unprocessed uapi headers in the include path
      87af5e5c
    • L
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · e4c0da21
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Olof Johansson:
       "Here's a set of patches for (hopefully) -rc1.  Some of them are fixes,
        but a good number of them also do things such as enable new drivers in
        the defconfigs for platforms that have such devices, increases
        coverage of the multiplatform defconfig and some DTS changes that
        plumbs up some of the devices that now have bindings and driver
        support.
      
        The commit dates are recent; we've mostly collected these fixes in the
        last few days but I also had to rebuild the branch yesterday to sort
        out some internal conflicts which reset the timestamps.  The changes
        should have been tested by each platform maintainer already (and few
        of them have cross-platform impact) so I'm personally not too
        concerned by it at this time"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (23 commits)
        ARM: multi_v7_defconfig: remove redundant entries and re-enable TI_EDMA
        ARM: multi_v7_defconfig: add mvebu drivers
        clocksource: kona: Add basic use of external clock
        drivers: bus: fix CCI driver kcalloc call parameters swap
        ARM: dts: bcm28155-ap: Fix Card Detection GPIO
        ARM: multi_v7_defconfig: Select CONFIG_AT803X_PHY
        ARM: keystone: config: fix build warning when CONFIG_DMADEVICES is not set
        MAINTAINERS: ARM: SiRF: use regex patterns to involve all SiRF drivers
        ARM: dts: zynq: Add SDHCI nodes
        ARM: hisi: don't select SMP
        ARM: tegra: rebuild tegra_defconfig to add DEBUG_FS
        ARM: multi_v7: copy most options from tegra_defconfig
        ARM: iop32x: fix power off handling for the EM7210 board
        ARM: integrator: restore static map on the CP
        ARM: msm_defconfig: Enable MSM clock drivers
        ARM: dts: msm: Add clock controller nodes and hook into uart
        ARM: OMAP4+: move errata initialization to omap4_pm_init_early
        ARM: OMAP4460: cpuidle: Extend PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD on cpuidle
        ARM: mvebu: fix compilation warning on Armada 370 (i.e. non-SMP)
        ARM: shmobile: r8a7790.dtsi: ficx i2c[0-3] clock reference
        ...
      e4c0da21
    • J
      hwmon: Fix SENSORS_TMP102 dependencies to eliminate build errors · 632007e2
      Jean Delvare 提交于
      Similar to what was done for the lm75 driver.
      
      Add depends on THERMAL since that is what provides the
      register/unregister functions above, but only if THERMAL_OF was
      selected as this is an optional feature of the driver.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Acked-by: NEduardo Valentin <eduardo.valentin@ti.com>
      Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
      632007e2
    • J
      hwmon: Fix SENSORS_LM75 dependencies to eliminate build errors · 920130a9
      Jean Delvare 提交于
      Based on an earlier attempt by Randy Dunlap.
      
      Fix SENSORS_LM75 dependencies to eliminate build errors:
      
      drivers/built-in.o: In function `lm75_remove':
      lm75.c:(.text+0x12bd8c): undefined reference to `thermal_zone_of_sensor_unregister'
      drivers/built-in.o: In function `lm75_probe':
      lm75.c:(.text+0x12c123): undefined reference to `thermal_zone_of_sensor_register'
      
      Add depends on THERMAL since that is what provides the
      register/unregister functions above, but only if THERMAL_OF was
      selected as this is an optional feature of the driver.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Acked-by: NEduardo Valentin <eduardo.valentin@ti.com>
      Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
      920130a9
  5. 02 2月, 2014 9 次提交
  6. 01 2月, 2014 2 次提交