1. 30 1月, 2009 12 次提交
  2. 27 1月, 2009 7 次提交
  3. 24 1月, 2009 1 次提交
  4. 23 1月, 2009 10 次提交
  5. 22 1月, 2009 10 次提交
    • T
      debugobjects: add and use INIT_WORK_ON_STACK · 336f6c32
      Thomas Gleixner 提交于
      Impact: Fix debugobjects warning
      
      debugobject enabled kernels spit out a warning in hpet code due to a
      workqueue which is initialized on stack.
      
      Add INIT_WORK_ON_STACK() which calls init_timer_on_stack() and use it
      in hpet.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      336f6c32
    • J
      drm: create mode_config idr lock · ad2563c2
      Jesse Barnes 提交于
      Create a separate mode_config IDR lock for simplicity.  The core DRM
      config structures (connector, mode, etc. lists) are still protected by
      the mode_config mutex, but the CRTC IDR (used for the various identifier
      IDs) is now protected by the mode_config idr_mutex.  Simplifies the
      locking a bit and removes a warning.
      
      All objects are protected by the config mutex, we may in the future,
      split the object further to have reference counts.
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      ad2563c2
    • C
      net: ppp_generic - introduce net-namespace functionality v2 · 273ec51d
      Cyrill Gorcunov 提交于
      - Each namespace contains ppp channels and units separately
        with appropriate locks
      Signed-off-by: NCyrill Gorcunov <gorcunov@openvz.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      273ec51d
    • M
      virtio_net: add link status handling · 9f4d26d0
      Mark McLoughlin 提交于
      Allow the host to inform us that the link is down by adding
      a VIRTIO_NET_F_STATUS which indicates that device status is
      available in virtio_net config.
      
      This is currently useful for simulating link down conditions
      (e.g. using proposed qemu 'set_link' monitor command) but
      would also be needed if we were to support device assignment
      via virtio.
      Signed-off-by: NMark McLoughlin <markmc@redhat.com>
      Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (added future masking)
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9f4d26d0
    • E
      inet: Allowing more than 64k connections and heavily optimize bind(0) time. · a9d8f911
      Evgeniy Polyakov 提交于
      With simple extension to the binding mechanism, which allows to bind more
      than 64k sockets (or smaller amount, depending on sysctl parameters),
      we have to traverse the whole bind hash table to find out empty bucket.
      And while it is not a problem for example for 32k connections, bind()
      completion time grows exponentially (since after each successful binding
      we have to traverse one bucket more to find empty one) even if we start
      each time from random offset inside the hash table.
      
      So, when hash table is full, and we want to add another socket, we have
      to traverse the whole table no matter what, so effectivelly this will be
      the worst case performance and it will be constant.
      
      Attached picture shows bind() time depending on number of already bound
      sockets.
      
      Green area corresponds to the usual binding to zero port process, which
      turns on kernel port selection as described above. Red area is the bind
      process, when number of reuse-bound sockets is not limited by 64k (or
      sysctl parameters). The same exponential growth (hidden by the green
      area) before number of ports reaches sysctl limit.
      
      At this time bind hash table has exactly one reuse-enbaled socket in a
      bucket, but it is possible that they have different addresses. Actually
      kernel selects the first port to try randomly, so at the beginning bind
      will take roughly constant time, but with time number of port to check
      after random start will increase. And that will have exponential growth,
      but because of above random selection, not every next port selection
      will necessary take longer time than previous. So we have to consider
      the area below in the graph (if you could zoom it, you could find, that
      there are many different times placed there), so area can hide another.
      
      Blue area corresponds to the port selection optimization.
      
      This is rather simple design approach: hashtable now maintains (unprecise
      and racely updated) number of currently bound sockets, and when number
      of such sockets becomes greater than predefined value (I use maximum
      port range defined by sysctls), we stop traversing the whole bind hash
      table and just stop at first matching bucket after random start. Above
      limit roughly corresponds to the case, when bind hash table is full and
      we turned on mechanism of allowing to bind more reuse-enabled sockets,
      so it does not change behaviour of other sockets.
      Signed-off-by: NEvgeniy Polyakov <zbr@ioremap.net>
      Tested-by: NDenys Fedoryschenko <denys@visp.net.lb>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a9d8f911
    • G
      dccp: Initialisation and type-checking of feature sysctls · 883ca833
      Gerrit Renker 提交于
      This patch takes care of initialising and type-checking sysctls
      related to feature negotiation. Type checking is important since some
      of the sysctls now directly impact the feature-negotiation process.
      
      The sysctls are initialised with the known default values for each
      feature.  For the type-checking the value constraints from RFC 4340
      are used:
      
       * Sequence Window uses the specified Wmin=32, the maximum is ulong (4 bytes),
         tested and confirmed that it works up to 4294967295 - for Gbps speed;
       * Ack Ratio is between 0 .. 0xffff (2-byte unsigned integer);
       * CCIDs are between 0 .. 255;
       * request_retries, retries1, retries2 also between 0..255 for good measure;
       * tx_qlen is checked to be non-negative;
       * sync_ratelimit remains as before.
      
      Notes:
      ------
       1. Die s@sysctl_dccp_feat@sysctl_dccp@g since the sysctls are now in feat.c.
       2. As pointed out by Arnaldo, the pattern of type-checking repeats itself in
          other places, sometimes with exactly the same kind of definitions (e.g.
          "static int zero;"). It may be a good idea (kernel janitors?) to consolidate
          type checking. For the sake of keeping the changeset small and in order not
          to affect other subsystems, I have not strived to generalise here.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      883ca833
    • G
      dccp: Implement both feature-local and feature-remote Sequence Window feature · 792b4878
      Gerrit Renker 提交于
      This adds full support for local/remote Sequence Window feature, from which the
        * sequence-number-validity (W) and
        * acknowledgment-number-validity (W') windows
      derive as specified in RFC 4340, 7.5.3.
      
      Specifically, the following is contained in this patch:
        * integrated new socket fields into dccp_sk;
        * updated the update_gsr/gss routines with regard to these fields;
        * updated handler code: the Sequence Window feature is located at the TX side,
          so the local feature is meant if the handler-rx flag is false;
        * the initialisation of `rcv_wnd' in reqsk is removed, since
          - rcv_wnd is not used by the code anywhere;
          - sequence number checks are not done in the LISTEN state (cf. 7.5.3);
          - dccp_check_req checks the Ack number validity more rigorously;
        * the `struct dccp_minisock' became empty and is now removed.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      792b4878
    • G
      dccp: Initialisation framework for feature negotiation · f90f92ee
      Gerrit Renker 提交于
      This initialises feature negotiation from two tables, which are in
      turn are initialised from sysctls.
      
      As a novel feature, specifics of the implementation (e.g. that short
      seqnos and ECN are not yet available) are advertised for robustness.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f90f92ee
    • B
      net: Remove redundant NAPI functions · 288379f0
      Ben Hutchings 提交于
      Following the removal of the unused struct net_device * parameter from
      the NAPI functions named *netif_rx_* in commit 908a7a16, they are
      exactly equivalent to the corresponding *napi_* functions and are
      therefore redundant.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      Acked-by: NNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      288379f0
    • C
      sc92031: use device id directly instead of made-up name · 5ec99fdf
      Cesar Eduardo Barros 提交于
      Instead of making up a name for the device ids, put them directly in the
      device id table. Also move the vendor id to pci_ids.h.
      Signed-off-by: NCesar Eduardo Barros <cesarb@cesarb.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5ec99fdf