1. 01 5月, 2007 16 次提交
    • J
      [libata reset-seq] build and merge fixes · 27c78b37
      Jeff Garzik 提交于
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      27c78b37
    • T
      libata: reimplement reset sequencing · 31daabda
      Tejun Heo 提交于
      libata previously depended upon waits in prereset to get resets after
      hotplug right for both spin up and device ready wait.  This was
      necessary both for reliablity and speed as reset was likely to fail if
      initiated too early and each try usually took more than 30secs to
      fail.  Previous patches fixed the reliability part by fixing status
      and SCR handling in resets.  This patch remedies the speed part by
      improving reset sequencing.
      
      Prereset waiting timeout is adjusted to 10s because spinup wait is
      replaced by reset sequencing and !BSY wait is not as important as
      before.  During boot or module loading where the drive is already
      fully spun up, !BSY wait succeeds immediately, so 10s should be enough
      in most cases.  It matters after hotplugging or other error
      conditions, but in those cases, !BSY wait in prereset simply can't be
      relied upon due to the varied and weird behaviors ATA controllers and
      devices show.
      
      Reset is now driven by ata_eh_reset_timeouts[] table which contains
      timeouts for each reset try.  The first reset can be softreset but the
      following ones are always hardreset if available.  Each timeout
      defines deadline for the reset try.  If a reset try fails, reset is
      retried with the next timeout till the end of the timeout table is
      reached.  If a reset try fails before the timeout with error, libata
      waits till the deadline of the failed try before retrying.
      
      IOW, the timeout table defines timetable of reset tries such that the
      n'th try always begins at least after the sum of all previous timeouts
      has passed.  The current timetable defines 4 tries and takes around 1
      minute.
      
      @0	: First try.  This should succeed most of the time during boot.
      @10	: 10s is enough to spin up most consumer harddrives.  Give it
      	  another shot.
      @20	: 20s should spin up > 99% of working drives.  This has 30s
      	  timeout for retarded devices needing long idleness post reset.
      @55	: Final try with 5s timeout just in case.
      
      The above timetable is trade off between not annoying the device too
      much with frequent resets and taking reasonable amount of time in most
      cases.  Some controllers may do better with shorter timeouts while
      others may fare better with longer but we just can't rely upon LLD
      writers to test each controller with wide variety of devices using
      various scenarios.  We need default behavior which reasonably fits
      most cases.
      
      I've tested the above timetable on a dozen SATA controllers and a few
      PATA controllers with about a dozen different drives from all major
      vendors and 4 different ODDs from three different vendors for both
      boot and hotplug (if available) cases.
      
      Boot probing is not affected unless the device is broken in which
      cases new code gives up on the port after a minute rather than five or
      nine minutes.  When hotplugging, most devices get detected on the
      first or second try.  Multi-platter drives with long spin up time
      which sometimes took > 40 secs with the original code, now usually
      comes up during the second try and at least right after the third try
      @20.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      31daabda
    • T
      libata: improve ata_std_prereset() · b8cffc6a
      Tejun Heo 提交于
      This patch updates ata_std_prereset() as follows.
      
      * Don't fail on phy resume failure.  Just whine and continue.  Failure
        from prereset makes libata abort whole reset sequence and give up
        the port, so prereset() should be best effort.  This is more
        important with the coming EH updates as prereset() will be called
        with shorter timeout.
      
      * If ata_wait_ready() fails, whine and request hardreset instead.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      b8cffc6a
    • T
      libata: improve 0xff status handling · 9b89391c
      Tejun Heo 提交于
      For PATA, 0xff status indicates empty port.  For SATA, it depends on
      how the controller emulates status register.  On some controllers,
      0xff is used to represent broken link or certain stage during reset.
      
      libata currently deals SATA the same.  This hasn't caused any problem
      because problematic situations usually only occur after hotplug or
      other link disruption events and libata blindly waited for the device
      to spin up and settle after hotplug giving the link and device
      whatever time to go through those stages.
      
      libata is going to replace unconditional spinup wait with generic
      timed sequence of resets, so not only getting 0xff handling right for
      SATA is, well, the right thing to do, it's much more important now.
      
      This patch makes the following changes.
      
      * Make ata_bus_softreset() return -ENODEV if any of its wait fails
        due to 0xff status.
      
      * Fail soft/hardreset if status wait returns -ENODEV indicating 0xff
        status while SStatus says the link is online.  e.g. Reset fails if
        status is 0xff after reset when SStatus reports the linke is online.
        If SCR registers are not available, everything is the same as
        before.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      9b89391c
    • T
      libata: add deadline support to prereset and reset methods · d4b2bab4
      Tejun Heo 提交于
      Add @deadline to prereset and reset methods and make them honor it.
      ata_wait_ready() which directly takes @deadline is implemented to be
      used as the wait function.  This patch is in preparation for EH timing
      improvements.
      
      * ata_wait_ready() never does busy sleep.  It's only used from EH and
        no wait in EH is that urgent.  This function also prints 'be
        patient' message automatically after 5 secs of waiting if more than
        3 secs is remaining till deadline.
      
      * ata_bus_post_reset() now fails with error code if any of its wait
        fails.  This is important because earlier reset tries will have
        shorter timeout than the spec requires.  If a device fails to
        respond before the short timeout, reset should be retried with
        longer timeout rather than silently ignoring the device.
      
        There are three behavior differences.
      
        1. Timeout is applied to both devices at once, not separately.  This
           is more consistent with what the spec says.
      
        2. When a device passes devchk but fails to become ready before
           deadline.  Previouly, post_reset would just succeed and let
           device classification remove the device.  New code fails the
           reset thus causing reset retry.  After a few times, EH will give
           up disabling the port.
      
        3. When slave device passes devchk but fails to become accessible
           (TF-wise) after reset.  Original code disables dev1 after 30s
           timeout and continues as if the device doesn't exist, while the
           patched code fails reset.  When this happens, new code fails
           reset on whole port rather than proceeding with only the primary
           device.
      
        If the failing device is suffering transient problems, new code
        retries reset which is a better behavior.  If the failing device is
        actually broken, the net effect is identical to it, but not to the
        other device sharing the channel.  In the previous code, reset would
        have succeeded after 30s thus detecting the working one.  In the new
        code, reset fails and whole port gets disabled.  IMO, it's a
        pathological case anyway (broken device sharing bus with working
        one) and doesn't really matter.
      
      * ata_bus_softreset() is changed to return error code from
        ata_bus_post_reset().  It used to return 0 unconditionally.
      
      * Spin up waiting is to be removed and not converted to honor
        deadline.
      
      * To be on the safe side, deadline is set to 40s for the time being.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      d4b2bab4
    • L
      libata: honour host controllers that want just one host · dc87c398
      Linus Torvalds 提交于
      The Marvell IDE interface on my machine would hit a BUG_ON() in
      lib/iomem.c because it was calling ata_pci_init_one() specifying just a
      single port on the host, but that would actually end up trying to
      initialize two ports, the second one with bogus information.
      
      This fixes "ata_pci_init_one()" so that it actually passes down the
      n_ports variable that it got from the low-level driver to the host
      allocation routine ("ata_host_alloc_pinfo()"), which results in the ATA
      layer actually having the correct port number information.
      
      And in order to make it all work, I also needed to fix a few places that
      had incorrectly hard-coded the fact that a host always had exactly two
      ports (both ata_pci_init_bmdma() and ata_request_legacy_irqs() would
      just always iterate over both ports).
      Acked-by: NJeff Garzik <jeff@garzik.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      dc87c398
    • D
      pm: include EIO from errno-base.h · 14e38ac8
      David Rientjes 提交于
      For backwards compatibility, call_platform_enable_wakeup() can return 0
      instead of -EIO since we aren't guaranteed to have errno defined.
      
      Cc: David Brownell <david-b@pacbell.net>
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Cc: "Randy.Dunlap" <rdunlap@xenotime.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      14e38ac8
    • J
      Add kvasprintf() · 11443ec7
      Jeremy Fitzhardinge 提交于
      Add a kvasprintf() function to complement kasprintf().
      
      No in-tree users yet, but I have some coming up.
      
      [akpm@linux-foundation.org: EXPORT it]
      Signed-off-by: NJeremy Fitzhardinge <jeremy@xensource.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Keir Fraser <keir@xensource.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      11443ec7
    • J
      power management: force pm_ops.valid callback to be assigned · 9684e51c
      Johannes Berg 提交于
      This patch changes the docs and behaviour from "all states valid" to "no
      states valid" if no .valid callback is assigned.  Users of pm_ops that only
      need mem sleep can assign pm_valid_only_mem without any overhead, others
      will require more elaborate callbacks.
      
      Now that all users of pm_ops have a .valid callback this is a safe thing to
      do and prevents things from getting messy again as they were before.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Looks-okay-to: Rafael J. Wysocki <rjw@sisk.pl>
      Cc: <linux-pm@lists.linux-foundation.org>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9684e51c
    • J
      power management: implement pm_ops.valid for everybody · e8c9c502
      Johannes Berg 提交于
      Almost all users of pm_ops only support mem sleep, don't check in .valid and
      don't reject any others in .prepare so users can be confused if they check
      /sys/power/state, especially when new states are added (these would then
      result in s-t-r although they're supposed to be something different).
      
      This patch implements a generic pm_valid_only_mem function that is then
      exported for users and puts it to use in almost all existing pm_ops.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Cc: David Brownell <david-b@pacbell.net>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Cc: linux-pm@lists.linux-foundation.org
      Cc: Len Brown <lenb@kernel.org>
      Acked-by: NRussell King <rmk@arm.linux.org.uk>
      Cc: Greg KH <greg@kroah.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e8c9c502
    • J
      power management: remove firmware disk mode · 11d77d0c
      Johannes Berg 提交于
      This patch removes the firmware disk suspend mode which is the wrong approach,
      it is supposed to be used for implementing firmware-based disk suspend but
      cannot actually be used for that.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Cc: <linux-pm@lists.linux-foundation.org>
      Cc: David Brownell <david-b@pacbell.net>
      Cc: Len Brown <lenb@kernel.org>
      Acked-by: NRussell King <rmk@arm.linux.org.uk>
      Cc: Greg KH <greg@kroah.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      11d77d0c
    • J
      rework pm_ops pm_disk_mode, kill misuse · fe0c935a
      Johannes Berg 提交于
      This patch series cleans up some misconceptions about pm_ops.  Some users of
      the pm_ops structure attempt to use it to stop the user from entering suspend
      to disk, this, however, is not possible since the user can always use
      "shutdown" in /sys/power/disk and then the pm_ops are never invoked.  Also,
      platforms that don't support suspend to disk simply should not allow
      configuring SOFTWARE_SUSPEND (read the help text on it, it only selects
      suspend to disk and nothing else, all the other stuff depends on PM).
      
      The pm_ops structure is actually intended to provide a way to enter
      platform-defined sleep states (currently supported states are "standby" and
      "mem" (suspend to ram)) and additionally (if SOFTWARE_SUSPEND is configured)
      allows a platform to support a platform specific way to enter low-power mode
      once everything has been saved to disk.  This is currently only used by ACPI
      (S4).
      
      This patch:
      
      The pm_ops.pm_disk_mode is used in totally bogus ways since nobody really
      seems to understand what it actually does.
      
      This patch clarifies the pm_disk_mode description.
      
      It also removes all the arm and sh users that think they can veto suspend to
      disk via pm_ops; not so since the user can always do echo shutdown >
      /sys/power/disk, they need to find a better way involving Kconfig or such.
      
      ACPI is the only user left with a non-zero pm_disk_mode.
      
      The patch also sets the default mode to shutdown again, but when a new pm_ops
      is registered its pm_disk_mode is selected as default, that way the default
      stays for ACPI where it is apparently required.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Cc: David Brownell <david-b@pacbell.net>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Cc: <linux-pm@lists.linux-foundation.org>
      Cc: Len Brown <lenb@kernel.org>
      Acked-by: NRussell King <rmk@arm.linux.org.uk>
      Cc: Greg KH <greg@kroah.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Acked-by: NPaul Mundt <lethal@linux-sh.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fe0c935a
    • J
      reiserfs: suppress lockdep warning · 1173a729
      Jeff Mahoney 提交于
      We're getting lockdep warnings due to a post-2.6.21-rc7 bugfix.
      
      The xattr_sem can never be taken in the manner described. Internal inodes
      are protected by I_PRIVATE.  Add the appropriate annotation.
      
      Cc: <stable@kernel.org>
      Cc: "Antonino A. Daplas" <adaplas@pol.net>
      Cc: Takashi Iwai <tiwai@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1173a729
    • R
      Extend print_symbol capability · 42e38083
      Robert Peterson 提交于
      Today's print_symbol function dumps a kernel symbol with printk.  This
      patch extends the functionality of kallsyms.c so that the symbol lookup
      function may be used without the printk.  This is useful for modules that
      want to dump symbols elsewhere, for example, to debugfs.  I intend to use
      the new function call in the GFS2 file system (which will be a separate
      patch).
      
      [akpm@linux-foundation.org: build fix]
      [clameter@sgi.com: sprint_symbol should return length of string like sprintf]
      Signed-off-by: NRobert Peterson <rpeterso@redhat.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: "Randy.Dunlap" <rdunlap@xenotime.net>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Acked-by: NPaulo Marques <pmarques@grupopie.com>
      Signed-off-by: NChristoph Lameter <clameter@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      42e38083
    • D
      [UDP]: Do not allow specific bind when wildcard bind exists. · de34ed91
      David S. Miller 提交于
      When allocating local ports, do not allow a bind to a port
      with a specific local address when a bind to that port with
      a wildcard local address already exists.
      
      Noticed by Linus.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      de34ed91
    • D
      [IPV4] UDP: Fix endianness bugs in hashing changes. · b7b5f487
      David S. Miller 提交于
      I accidently applied an earlier version of Eric Dumazet's patch, from
      March 21st.  His version from March 30th didn't have these bugs, so
      this just interdiffs to the correct patch.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b7b5f487
  2. 30 4月, 2007 24 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 · 40caf5ea
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (56 commits)
        ieee1394: remove garbage from Kconfig
        ieee1394: more help in Kconfig
        ieee1394: ohci1394: Fix mistake in printk message.
        ieee1394: ohci1394: remove unnecessary rcvPhyPkt bit flipping in LinkControl register
        ieee1394: ohci1394: fix cosmetic problem in error logging
        ieee1394: eth1394: send async streams at S100 on 1394b buses
        ieee1394: eth1394: fix error path in module_init
        ieee1394: eth1394: correct return codes in hard_start_xmit
        ieee1394: eth1394: hard_start_xmit is called in atomic context
        ieee1394: eth1394: some conditions are unlikely
        ieee1394: eth1394: clean up fragment_overlap
        ieee1394: eth1394: don't use alloc_etherdev
        ieee1394: eth1394: omit useless set_mac_address callback
        ieee1394: eth1394: CONFIG_INET is always defined
        ieee1394: eth1394: allow MTU bigger than 1500
        ieee1394: unexport highlevel_host_reset
        ieee1394: eth1394: contain host reset
        ieee1394: eth1394: shorter error messages
        ieee1394: eth1394: correct a memset argument
        ieee1394: eth1394: refactor .probe and .update
        ...
      40caf5ea
    • L
      Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jikos/hid · d6454706
      Linus Torvalds 提交于
      * 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jikos/hid: (21 commits)
        USB HID: don't warn on idVendor == 0
        USB HID: add 'quirks' module parameter
        USB HID: add support for dynamically-created quirks
        USB HID: clarify static quirk handling as squirks
        USB HID: encapsulate quirk handling into hid-quirks.c
        USB HID: EMS USBII device needs HID_QUIRK_MULTI_INPUT
        HID: update copyright and authorship macro
        HID: introduce proper zeroing of unused bits in output reports
        USB HID: add support for WiseGroup MP-8800 Quad Joypad
        USB HID: add FF support for Logitech Force 3D Pro Joystick
        USB HID: numlock quirk for dell W7658 keyboard
        USB HID: Logitech MX3000 keyboard needs report descriptor quirk
        USB HID: extend quirk for Logitech S510 keyboard
        USB HID: usbkbd/usbmouse - handle errors when registering devices
        USB HID: add QUIRK_HIDDEV for Belkin Flip KVM
        HID: enable dead keys on a belkin wireless keyboard
        USB HID: Thustmaster firestorm dual power v1 support
        USB HID: specify explicit size for hid_blacklist.quirks
        USB HID: fix retry & reset logic
        USB HID: consolidate vendor/product ids
        ...
      d6454706
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · 152a6a9d
      Linus Torvalds 提交于
      * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (21 commits)
        [IPV4] SNMP: Support OutMcastPkts and OutBcastPkts
        [IPV4] SNMP: Support InMcastPkts and InBcastPkts
        [IPV4] SNMP: Support InTruncatedPkts
        [IPV4] SNMP: Support InNoRoutes
        [SNMP]: Add definitions for {In,Out}BcastPkts
        [TCP] FRTO: RFC4138 allows Nagle override when new data must be sent
        [TCP] FRTO: Delay skb available check until it's mandatory
        [XFRM]: Restrict upper layer information by bundle.
        [TCP]: Catch skb with S+L bugs earlier
        [PATCH] INET : IPV4 UDP lookups converted to a 2 pass algo
        [L2TP]: Add the ability to autoload a pppox protocol module.
        [SKB]: Introduce skb_queue_walk_safe()
        [AF_IUCV/IUCV]: smp_call_function deadlock
        [IPV6]: Fix slab corruption running ip6sic
        [TCP]: Update references in two old comments
        [XFRM]: Export SPD info
        [IPV6]: Track device renames in snmp6.
        [SCTP]: Fix sctp_getsockopt_local_addrs_old() to use local storage.
        [NET]: Remove NETIF_F_INTERNAL_STATS, default to internal stats.
        [NETPOLL]: Remove CONFIG_NETPOLL_RX
        ...
      152a6a9d
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block · cd9bb7e7
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block:
        [PATCH] elevator: elv_list_lock does not need irq disabling
        [BLOCK] Don't pin lots of memory in mempools
        cfq-iosched: speedup cic rb lookup
        ll_rw_blk: add io_context private pointer
        cfq-iosched: get rid of cfqq hash
        cfq-iosched: tighten queue request overlap condition
        cfq-iosched: improve sync vs async workloads
        cfq-iosched: never allow an async queue idling
        cfq-iosched: get rid of ->dispatch_slice
        cfq-iosched: don't pass unused preemption variable around
        cfq-iosched: get rid of ->cur_rr and ->cfq_list
        cfq-iosched: slice offset should take ioprio into account
        [PATCH] cfq-iosched: style cleanups and comments
        cfq-iosched: sort IDLE queues into the rbtree
        cfq-iosched: sort RT queues into the rbtree
        [PATCH] cfq-iosched: speed up rbtree handling
        cfq-iosched: rework the whole round-robin list concept
        cfq-iosched: minor updates
        cfq-iosched: development update
        cfq-iosched: improve preemption for cooperating tasks
      cd9bb7e7
    • L
      Merge branch 'for-2.6.22' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc · 24a77daf
      Linus Torvalds 提交于
      * 'for-2.6.22' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (255 commits)
        [POWERPC] Remove dev_dbg redefinition in drivers/ps3/vuart.c
        [POWERPC] remove kernel module option for booke wdt
        [POWERPC] Avoid putting cpu node twice
        [POWERPC] Spinlock initializer cleanup
        [POWERPC] ppc4xx_sgdma needs dma-mapping.h
        [POWERPC] arch/powerpc/sysdev/timer.c build fix
        [POWERPC] get_property cleanups
        [POWERPC] Remove the unused HTDMSOUND driver
        [POWERPC] cell: cbe_cpufreq cleanup and crash fix
        [POWERPC] Declare enable_kernel_spe in a header
        [POWERPC] Add dt_xlate_addr() to bootwrapper
        [POWERPC] bootwrapper: CONFIG_ -> CONFIG_DEVICE_TREE
        [POWERPC] Don't define a custom bd_t for Xilixn Virtex based boards.
        [POWERPC] Add sane defaults for Xilinx EDK generated xparameters files
        [POWERPC] Add uartlite boot console driver for the zImage wrapper
        [POWERPC] Stop using ppc_sys for Xilinx Virtex boards
        [POWERPC] New registration for common Xilinx Virtex ppc405 platform devices
        [POWERPC] Merge common virtex header files
        [POWERPC] Rework Kconfig dependancies for Xilinx Virtex ppc405 platform
        [POWERPC] Clean up cpufreq Kconfig dependencies
        ...
      24a77daf
    • M
      [IPV4] SNMP: Support OutMcastPkts and OutBcastPkts · 80787ebc
      Mitsuru Chinen 提交于
      A transmitted IP multicast datagram should be counted as OutMcastPkts.
      By the same token, a transmitted IP broadcast datagram should be
      counted as OutBcastPkts.
      Signed-off-by: NMitsuru Chinen <mitch@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      80787ebc
    • M
      [IPV4] SNMP: Support InMcastPkts and InBcastPkts · 5506b54b
      Mitsuru Chinen 提交于
      A received IP multicast datagram should be counted as InMcastPkts.
      By the same token, a received IP broadcast datagram should be
      counted as InBcastPkts.
      Signed-off-by: NMitsuru Chinen <mitch@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5506b54b
    • M
      [IPV4] SNMP: Support InTruncatedPkts · 704aed53
      Mitsuru Chinen 提交于
      An IP datagram which is being discarded because the datagram frame
      didn't carry enough data should be counted as InTruncatedPkts.
      Signed-off-by: NMitsuru Chinen <mitch@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      704aed53
    • M
      [IPV4] SNMP: Support InNoRoutes · e91a47eb
      Mitsuru Chinen 提交于
      An IP datagram which is being discarded because of no routes in the
      forwarding path should be counted as InNoRoutes.
      Signed-off-by: NMitsuru Chinen <mitch@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e91a47eb
    • M
      [SNMP]: Add definitions for {In,Out}BcastPkts · 71ff6c0a
      Mitsuru Chinen 提交于
      The updated IP-MIB RFC (RFC4293) specifys new objects, InBcastPkts
      and OutBcastPkts. This adds definitions for them.
      Signed-off-by: NMitsuru Chinen <mitch@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      71ff6c0a
    • I
      [TCP] FRTO: RFC4138 allows Nagle override when new data must be sent · d551e454
      Ilpo Järvinen 提交于
      This is a corner case where less than MSS sized new data thingie
      is awaiting in the send queue. For F-RTO to work correctly, a
      new data segment must be sent at certain point or F-RTO cannot
      be used at all. RFC4138 allows overriding of Nagle at that
      point.
      
      Implementation uses frto_counter states 2 and 3 to distinguish
      when Nagle override is needed.
      Signed-off-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d551e454
    • I
      [TCP] FRTO: Delay skb available check until it's mandatory · 575ee714
      Ilpo Järvinen 提交于
      No new data is needed until the first ACK comes, so no need to check
      for application limitedness until then.
      Signed-off-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      575ee714
    • M
      [XFRM]: Restrict upper layer information by bundle. · 157bfc25
      Masahide NAKAMURA 提交于
      On MIPv6 usage, XFRM sub policy is enabled.
      When main (IPsec) and sub (MIPv6) policy selectors have the same
      address set but different upper layer information (i.e. protocol
      number and its ports or type/code), multiple bundle should be created.
      However, currently we have issue to use the same bundle created for
      the first time with all flows covered by the case.
      
      It is useful for the bundle to have the upper layer information
      to be restructured correctly if it does not match with the flow.
      
      1. Bundle was created by two policies
      Selector from another policy is added to xfrm_dst.
      If the flow does not match the selector, it goes to slow path to
      restructure new bundle by single policy.
      
      2. Bundle was created by one policy
      Flow cache is added to xfrm_dst as originated one. If the flow does
      not match the cache, it goes to slow path to try searching another
      policy.
      Signed-off-by: NMasahide NAKAMURA <nakam@linux-ipv6.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      157bfc25
    • I
      [TCP]: Catch skb with S+L bugs earlier · 34588b4c
      Ilpo Järvinen 提交于
      SACKED_ACKED and LOST are mutually exclusive with SACK, thus
      having their sum larger than packets_out is bug with SACK.
      Eventually these bugs trigger traps in the tcp_clean_rtx_queue
      with SACK but it's much more informative to do this here.
      
      Non-SACK TCP, however, could get more than packets_out duplicate
      ACKs which each increment sacked_out, so it makes sense to do
      this kind of limitting for non-SACK TCP but not for SACK enabled
      one. Perhaps the author had the opposite in mind but did the
      logic accidently wrong way around? Anyway, the sacked_out
      incrementer code for non-SACK already deals this issue before
      calling sync_left_out so this trapping can be done
      unconditionally.
      Signed-off-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      34588b4c
    • E
      [PATCH] INET : IPV4 UDP lookups converted to a 2 pass algo · 6aaf47fa
      Eric Dumazet 提交于
      Some people want to have many UDP sockets, binded to a single port but
      many different addresses. We currently hash all those sockets into a
      single chain.  Processing of incoming packets is very expensive,
      because the whole chain must be examined to find the best match.
      
      I chose in this patch to hash UDP sockets with a hash function that
      take into account both their port number and address : This has a
      drawback because we need two lookups : one with a given address, one
      with a wildcard (null) address.
      Signed-off-by: NEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6aaf47fa
    • J
      [L2TP]: Add the ability to autoload a pppox protocol module. · 65def812
      James Chapman 提交于
      This patch allows a name "pppox-proto-nnn" to be used in modprobe.conf
      to autoload a PPPoX protocol nnn.
      Signed-off-by: NJames Chapman <jchapman@katalix.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      65def812
    • J
      Merge branch 'cfq' into for-linus · 07e44708
      Jens Axboe 提交于
      07e44708
    • J
      [PATCH] elevator: elv_list_lock does not need irq disabling · 2a12dcd7
      Jens Axboe 提交于
      It's never grabbed from irq context, so just make it plain spin_lock().
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      2a12dcd7
    • J
      [BLOCK] Don't pin lots of memory in mempools · 5972511b
      Jens Axboe 提交于
      Currently we scale the mempool sizes depending on memory installed
      in the machine, except for the bio pool itself which sits at a fixed
      256 entry pre-allocation.
      
      There's really no point in "optimizing" this OOM path, we just need
      enough preallocated to make progress. A single unit is enough, lets
      scale it down to 2 just to be on the safe side.
      
      This patch saves ~150kb of pinned kernel memory on a 32-bit box.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      5972511b
    • J
      [SKB]: Introduce skb_queue_walk_safe() · 46f8914e
      James Chapman 提交于
      This patch provides a method for walking skb lists while inserting or
      removing skbs from the list.
      Signed-off-by: NJames Chapman <jchapman@katalix.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      46f8914e
    • J
      cfq-iosched: speedup cic rb lookup · 597bc485
      Jens Axboe 提交于
      We often lookup the same queue many times in succession, so cache
      the last looked up queue to avoid browsing the rbtree.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      597bc485
    • J
      ll_rw_blk: add io_context private pointer · 4e521c27
      Jens Axboe 提交于
      To be used by as/cfq as they see fit.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      4e521c27
    • V
      cfq-iosched: get rid of cfqq hash · 91fac317
      Vasily Tarasov 提交于
      cfq hash is no more necessary.  We always can get cfqq from io context.
      cfq_get_io_context_noalloc() function is introduced, because we don't
      want to allocate cic on merging and checking may_queue.  In order to
      identify sync queue we've used hash key = CFQ_KEY_ASYNC. Since hash is
      eliminated we need to use other criterion: sync flag for queue is added.
      In all places where we dig in rb_tree we're in current context, so no
      additional locking is required.
      
      Advantages of this patch: no additional memory for hash, no seeking in
      hash, code is cleaner. But it is necessary now to seek cic in per-ioc
      rbtree, but it is faster:
      - most processes work only with few devices
      - most systems have only few block devices
      - it is a rb-tree
      Signed-off-by: NVasily Tarasov <vtaras@openvz.org>
      
      Changes by me:
      
      - Merge into CFQ devel branch
      - Get rid of cfq_get_io_context_noalloc()
      - Fix various bugs with dereferencing cic->cfqq[] with offset other
        than 0 or 1.
      - Fix bug in cfqq setup, is_sync condition was reversed.
      - Fix bug where only bio_sync() is used, we need to check for a READ too
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      91fac317
    • J
      cfq-iosched: tighten queue request overlap condition · cc197479
      Jens Axboe 提交于
      For tagged devices, allow overlap of requests if the idle window
      isn't enabled on the current active queue.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      cc197479