1. 26 4月, 2012 1 次提交
    • D
      mm: nobootmem: Correct alloc_bootmem semantics. · 4e1c2b28
      David Miller 提交于
      The comments above __alloc_bootmem_node() claim that the code will
      first try the allocation using 'goal' and if that fails it will
      try again but with the 'goal' requirement dropped.
      
      Unfortunately, this is not what the code does, so fix it to do so.
      
      This is important for nobootmem conversions to architectures such
      as sparc where MAX_DMA_ADDRESS is infinity.
      
      On such architectures all of the allocations done by generic spots,
      such as the sparse-vmemmap implementation, will pass in:
      
      	__pa(MAX_DMA_ADDRESS)
      
      as the goal, and with the limit given as "-1" this will always fail
      unless we add the appropriate fallback logic here.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4e1c2b28
  2. 24 4月, 2012 19 次提交
  3. 23 4月, 2012 16 次提交
    • C
      HSI: Add HSI ABI documentation · 24b7099a
      Carlos Chinea 提交于
      Adds sysfs HSI framework documentation
      Signed-off-by: NCarlos Chinea <carlos.chinea@nokia.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      24b7099a
    • C
      HSI: hsi_char: Remove max_data_size from sysfs · fdadb6e9
      Carlos Chinea 提交于
      Remove max_data_size sysfs entry. Otherwise is possible
      to have a buffer overrun if its value is increased after
      the device is open.
      Signed-off-by: NCarlos Chinea <carlos.chinea@nokia.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      fdadb6e9
    • C
      HSI: hsi: Rework hsi_event interface · ec1c56ff
      Carlos Chinea 提交于
      Remove custom hack and make use of the notifier chain interfaces for
      delivering events from the ports to their associated clients.
      Clients that want to receive port events need to register their callbacks
      using hsi_register_port_event(). The callbacks can be called in interrupt
      context. Use hsi_unregestier_port_event() to undo the registration.
      Signed-off-by: NCarlos Chinea <carlos.chinea@nokia.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      ec1c56ff
    • C
      HSI: hsi: Remove controllers and ports from the bus · 6f02b9e9
      Carlos Chinea 提交于
      HSI controllers and ports do not belong to the HSI bus.
      Those devices are not supposed to have a driver attached to them.
      Signed-off-by: NCarlos Chinea <carlos.chinea@nokia.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      6f02b9e9
    • C
      HSI: hsi: Fix error path cleanup on client registration · 90e41f9d
      Carlos Chinea 提交于
      HSI client structure should be freed on error path after
      calling device_registration by dropping a reference to it.
      Signed-off-by: NCarlos Chinea <carlos.chinea@nokia.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      90e41f9d
    • C
      HSI: hsi: Rework hsi_controller release · 5a218ceb
      Carlos Chinea 提交于
      Use the proper release mechanism for hsi_controller and
      hsi_ports structures. Free the structures through their
      associated device release callbacks.
      Signed-off-by: NCarlos Chinea <carlos.chinea@nokia.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      5a218ceb
    • L
      Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm · e895bd79
      Linus Torvalds 提交于
      Pull ARM fixes from Russell King:
       "Here's my usual Sunday push, just for one revert which PeterZ hollered
        about after last weeks push.  Other than that, all seems strangely
        quiet as far as fixes go in non-platform ARM land at the moment."
      
      * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
        Revert "ARM: 7359/2: smp_twd: Only wait for reprogramming on active cpus"
      e895bd79
    • L
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 205b9c9c
      Linus Torvalds 提交于
      Pull powerpc fixes from Benjamin Herrenschmidt:
       "Here are a few fixes for powerpc.  Note the addition to the generic
        irq.h.  This is part of a 3-patches regression fix for mpic due to
        changes in how IRQ_TYPE_NONE is being handled.  Thomas agreed to the
        addition of the new IRQ_TYPE_DEFAULT contant, however he hasn't
        replied with an Ack to the actual patch yet.  I don't to wait much
        longer with these patches tho."
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc/mpic: Properly set default triggers
        irq: Add IRQ_TYPE_DEFAULT for use by PIC drivers
        powerpc/mpic: Fix confusion between hw_irq and virq
        powerpc/pmac: Don't add_timer() twice
        powerpc/eeh: Fix crash caused by null eeh_dev
        powerpc/mpc85xx: add MPIC message dts node
        powerpc/mpic_msgr: fix offset error when setting mer register
        powerpc/mpic_msgr: add lock for MPIC message global variable
        powerpc/mpic_msgr: fix compile error when SMP disabled
        powerpc: fix build when CONFIG_BOOKE_WDT is enabled
        powerpc/85xx: don't call of_platform_bus_probe() twice
      205b9c9c
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 7e296295
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Fix namespace init and cleanup in phonet to fix some oopses, from
          Eric W. Biederman.
      
       2) Missing kfree_skb() in AF_KEY, from Julia Lawall.
      
       3) Refcount leak and source address handling fix in l2tp from James
          Chapman.
      
       4) Memory leak fix in CAIF from Tomasz Gregorek.
      
       5) When routes are cloned from ipv6 addrconf routes, we don't process
          expirations properly.  Fix from Gao Feng.
      
       6) Fix panic on DMA errors in atl1 driver, from Tony Zelenoff.
      
       7) Only enable interrupts in 8139cp driver after we've registered the
          IRQ handler.  From Jason Wang.
      
       8) Fix too many reads of KS_CIDER register in ks8851 during probe,
          fixing crashes on spurious interrupts.  From Matt Renzelmann.
      
       9) Missing include in ath5k driver and missing iounmap on probe
          failure, from Jonathan Bither.
      
      10) Fix RX packet handling in smsc911x driver, from Will Deacon.
      
      11) Fix ixgbe WoL on fiber by leaving the laser on during shutdown.
      
      12) ks8851 needs MAX_RECV_FRAMES increased otherwise the internal MAC
          buffers are easily overflown.  Fix from Davide Cimingahi.
      
      13) Fix memory leaks in peak_usb CAN driver, from Jesper Juhl.
      
      14) gred packet scheduler can dump in WRED more when doing a netlink
          dump.  Fix from David Ward.
      
      15) Fix MTU in USB smsc75xx driver, from Stephane Fillod.
      
      16) Dummy device needs ->ndo_uninit handler to properly handle
          ->ndo_init failures.  From Hiroaki SHIMODA.
      
      17) Fix TX fragmentation in ath9k driver, from Sujith Manoharan.
      
      18) Missing RTNL lock in ixgbe PM resume, from Benjamin Poirier.
      
      19) Missing iounmap in farsync WAN driver, from Julia Lawall.
      
      20) With LRO/GRO, tcp_grow_window() is easily tricked into not growing
          the receive window properly, and this hurts performance.  Fix from
          Eric Dumazet.
      
      21) Network namespace init failure can leak net_generic data, fix from
          Julian Anastasov.
      
      22) Fix skb_over_panic due to mis-accounting in TCP for partially ACK'd
          SKBs.  From Eric Dumazet.
      
      23) New IDs for qmi_wwan driver, from Bjørn Mork.
      
      24) Fix races in ax25_exit(), from Eric W. Biederman.
      
      25) IPV6 TCP doesn't handle TCP_MAXSEG socket option properly, copy over
          logic from the IPV4 side.  From Neal Cardwell.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (59 commits)
        tcp: fix TCP_MAXSEG for established IPv6 passive sockets
        drivers/net: Do not free an IRQ if its request failed
        drop_monitor: allow more events per second
        ks8851: Fix request_irq/free_irq mismatch
        net/hyperv: Adding cancellation to ensure rndis filter is closed
        ks8851: Fix mutex deadlock in ks8851_net_stop()
        net ax25: Reorder ax25_exit to remove races.
        icplus: fix interrupt for IC+ 101A/G and 1001LF
        net: qmi_wwan: support Sierra Wireless MC77xx devices in QMI mode
        bnx2x: off by one in bnx2x_ets_e3b0_sp_pri_to_cos_set()
        ksz884x: don't copy too much in netdev_set_mac_address()
        tcp: fix retransmit of partially acked frames
        netns: do not leak net_generic data on failed init
        net/sock.h: fix sk_peek_off kernel-doc warning
        tcp: fix tcp_grow_window() for large incoming frames
        drivers/net/wan/farsync.c: add missing iounmap
        davinci_mdio: Fix MDIO timeout check
        ipv6: clean up rt6_clean_expires
        ipv6: fix rt6_update_expires
        arcnet: rimi: Fix device name in debug output
        ...
      7e296295
    • B
      powerpc/mpic: Properly set default triggers · 446f6d06
      Benjamin Herrenschmidt 提交于
      This gets rid of the unused default senses array, and replaces the
      incorrect use of IRQ_TYPE_NONE with the new IRQ_TYPE_DEFAULT for
      the initial set_trigger() call when mapping an interrupt.
      
      This in turn makes us read the HW state and update the irq desc
      accordingly.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      446f6d06
    • B
      irq: Add IRQ_TYPE_DEFAULT for use by PIC drivers · 3fca40c7
      Benjamin Herrenschmidt 提交于
      This is meant typically to allow a PIC driver's irq domain map() callback
      to establish sane defaults for the interrupt (and make sure that the HW
      and the irq_desc are in sync as far as the trigger is concerned).
      
      The irq core may not call the set_trigger callback if it thinks the
      trigger is already set to the right setting, so we need to ensure new
      descriptors are properly synchronized with the hardware.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3fca40c7
    • B
      powerpc/mpic: Fix confusion between hw_irq and virq · 3a2b4f7c
      Benjamin Herrenschmidt 提交于
      mpic_is_ipi() takes a virq and immediately converts it to a hw_irq.
      
      However, one of the two call sites calls it with a ... hw_irq. The
      other call site also happens to have the hw_irq at hand, so let's
      change it to just take that as an argument. Also change mpic_is_tm()
      for consistency.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3a2b4f7c
    • B
      powerpc/pmac: Don't add_timer() twice · 3027691e
      Benjamin Herrenschmidt 提交于
      If the interrupt and the timeout happen roughly at the same
      time, we can get into a situation where the timer function
      is run while the interrupt has already been processed. In
      this case, the timer function might end up doing an add_timer
      on an already pending timer, causing a BUG_ON() to trigger.
      
      Instead, just skip the whole timeout operation if we see that
      the timer is pending. The spinlock ensures that the only way
      that happens is if we already started a new operation and thus
      the timeout can be ignored.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3027691e
    • G
      powerpc/eeh: Fix crash caused by null eeh_dev · 2ef822c5
      Gavin Shan 提交于
      The problem was reported by Anton Blanchard. While EEH error
      happened to the PCI device without the corresponding device
      driver, kernel crash was seen. Eventually, I successfully
      reproduced the problem on Firebird-L machine with utility
      "errinjct". Initially, the device driver for Emulex ethernet
      MAC has been disabled from .config and force data parity on
      the Emulex ethernet MAC with help of "errinjct". Eventually,
      I saw the kernel crash after issueing couple of "lspci -v"
      command.
      
      The root cause behind is that the PCI device, including the
      reference to the corresponding eeh device, will be removed
      from the system while EEH does recovery. Afterwards, the
      PCI device will be probed again and added into the system
      accordingly. So it's not safe to retrieve the eeh device from
      the corresponding PCI device after the PCI device has been removed
      and not added again.
      
      The patch fixes the issue and retrieve the eeh device from OF node
      instead of PCI device after the PCI device has been removed.
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Tested-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      2ef822c5
    • B
      aec49c7c
    • N
      tcp: fix TCP_MAXSEG for established IPv6 passive sockets · d135c522
      Neal Cardwell 提交于
      Commit f5fff5dc forgot to fix TCP_MAXSEG behavior IPv6 sockets, so IPv6
      TCP server sockets that used TCP_MAXSEG would find that the advmss of
      child sockets would be incorrect. This commit mirrors the advmss logic
      from tcp_v4_syn_recv_sock in tcp_v6_syn_recv_sock. Eventually this
      logic should probably be shared between IPv4 and IPv6, but this at
      least fixes this issue.
      Signed-off-by: NNeal Cardwell <ncardwell@google.com>
      Acked-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d135c522
  4. 22 4月, 2012 4 次提交