21 Apr, 2012

18 commits

  • This results in code with less boiler plate that is a bit easier
    to read.

    Additionally stops us from using compatibility code in the sysctl
    core, hastening the day when the compatibility code can be removed.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • There isn't much advantage here except that strings paths are a bit
    easier to read, and converting everything to them allows me to kill off
    ctl_path.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • Using an ascii path to register_net_sysctl as opposed to the slightly
    awkward ctl_path allows for much simpler code.

    We no longer need to malloc dev_name to keep it alive the length of our
    sysctl register instead we can use a small temporary buffer on the
    stack.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • Using an ascii path to register_net_sysctl as opposed to the slightly
    awkward ctl_path allows for much simpler code.

    We no longer need to malloc dev_name to keep it alive the length of our
    sysctl register instead we can use a small temporary buffer on the
    stack.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • Using an ascii path to register_net_sysctl as opposed to the slightly
    awkward ctl_path allows for much simpler code.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • Using an ascii path to register_net_sysctl as opposed to the slightly
    awkward ctl_path allows for much simpler code.

    We no longer need to malloc dev_name to keep it alive the length of our
    sysctl register instead we can use a small temporary buffer on the
    stack.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • The sysctl core no longer natively understands sysctl tables
    with .child entries.

    Split the ipv6_table to remove the .child entries.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • The sysctl core no longer natively understands sysctl tables with .child
    entries.

    Kill the intermediate tables and use register_net_sysctl directly to
    remove the need for compatibility code.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • Don't register/unregister every ax25 table in a batch. Instead register
    and unregister per device ax25 sysctls as ax25 devices come and go.

    This moves ax25 to be a completely modern sysctl user. Registering the
    sysctls in just the initial network namespace, removing the use of
    .child entries that are no longer natively supported by the sysctl core
    and taking advantage of the fact that there are no longer any ordering
    constraints between registering and unregistering different sysctl
    tables.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • sysctl no longer requires explicit creation of directories. The neigh
    directory is always populated with at least a default entry so this
    won't cause any user visible changes.

    Delete the ipv4_path and the ipv4_skeleton these are no longer needed.

    Directly register the ipv4_route_table.

    And since I am an idiot remove the header definitions that I should
    have removed in the previous patch.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • sysctl no longer requires explicit creation of directories. The neigh
    directory is always populated with at least a default entry so this
    should cause no user visible changes.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • On the next line we register the net_core_table in net/core which
    creates the directory and ensures it exists.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • This makes it clearer which sysctls are relative to your current network
    namespace.

    This makes it a little less error prone by not exposing sysctls for the
    initial network namespace in other namespaces.

    This is the same way we handle all of our other network interfaces to
    userspace and I can't honestly remember why we didn't do this for
    sysctls right from the start.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • register_sysctl_rotable never caught on as an interesting way to
    register sysctls. My take on the situation is that what we want are
    sysctls that we can only see in the initial network namespace. What we
    have implemented with register_sysctl_rotable are sysctls that we can
    see in all of the network namespaces and can only change in the initial
    network namespace.

    That is a very silly way to go. Just register the network sysctls
    in the initial network namespace and we don't have any weird special
    cases to deal with.

    The sysctls affected are:
    /proc/sys/net/ipv4/ipfrag_secret_interval
    /proc/sys/net/ipv4/ipfrag_max_dist
    /proc/sys/net/ipv6/ip6frag_secret_interval
    /proc/sys/net/ipv6/mld_max_msf

    I really don't expect anyone will miss them if they can't read them in a
    child user namespace.

    CC: Pavel Emelyanov
    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • If the netfilter code is modified to use register_net_sysctl_table the
    kernel fails to boot because the per net sysctl infrasturce is not setup
    soon enough. So to avoid races call net_sysctl_init from sock_init().

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • Implementation limitations of the sysctl core won't let /proc/sys/net
    reside in a network namespace. /proc/sys/net at least must be registered
    as a normal sysctl. So register /proc/sys/net early as an empty directory
    to guarantee we don't violate this constraint and hit bugs in the sysctl
    implementation.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • Right now all of the networking sysctl registrations are running in a
    compatibiity mode. The natvie sysctl registration api takes a cstring
    for a path and a simple ctl_table. Implement register_net_sysctl so
    that we can register network sysctls without needing to use
    compatiblity code in the sysctl core.

    Switching from a ctl_path to a cstring results in less boiler plate
    and denser code that is a little easier to read.

    I would simply have changed the arguments to register_net_sysctl_table
    instead of keeping two functions in parallel but gcc will allow a
    ctl_path pointer to be passed to a char * pointer with only issuing a
    warning resulting in completely incorrect code can be built. Since I
    have to change the function name I am taking advantage of the situation
    to let both register_net_sysctl and register_net_sysctl_table live for a
    short time in parallel which makes clean conversion patches a bit easier
    to read and write.

    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • David S. Miller
     

20 Apr, 2012

22 commits

  • MDIO_REG_ADDR_MASK is already applied in function
    atl1c_write_phy_reg and atl1c_read_phy_reg

    Signed-off-by: xiong
    Tested-by: Liu David
    Signed-off-by: David S. Miller

    Huang, Xiong
     
  • l2cb 1.1 hardware has a bug for magic wakeup,
    the workaround is to add pattern enable.
    WoL related registers are refined as well.

    Signed-off-by: xiong
    Tested-by: Liu David
    Signed-off-by: David S. Miller

    Huang, Xiong
     
  • bit PCIE_PHYMISC_FORCE_RCV_DET is only for l1c&l2c to fix WoL issue,
    other chips set bit5 of REG_MASTER_CTRL --- this way could save more
    power than the former, and the bit should be kept all time.
    l2cb 1.x has special setting for L0S/L1
    l2cb 1.x & l1d 1.x should clear Vendor Message on some platforms,
    otherwise it will cause the root complex hang.

    Signed-off-by: xiong
    Tested-by: Liu David
    Signed-off-by: David S. Miller

    Huang, Xiong
     
  • some platforms(BIOS or OS) may change ASPM configuration in
    PCI Express Link Control Register directly and dynamically
    regardless the device driver installation.
    Checking if ASPM support during the driver init phase by reading
    PCI Express Link Contrl Register doesn't make sense.
    This refine/update assume L0S/L1 is defalut enabled as hw->ctrl_flags
    inited. atl1c_set_aspm will set real configuration based on chip
    capability to hardware register.
    atl1c_disable_l0s_l1 and register definition of REG_PM_CTRL are
    refined as well.

    Signed-off-by: xiong
    Tested-by: Liu David
    Signed-off-by: David S. Miller

    Huang, Xiong
     
  • bit MASTER_CTRL_CLK_SEL_DIS could be set before enter suspend
    clear it after resume to enable pclk(PCIE clock) switch to
    low frequency(25M) in some circumstances to save power.

    Signed-off-by: xiong
    Tested-by: Liu David
    Signed-off-by: David S. Miller

    Huang, Xiong
     
  • refine/update register REG_MASTER_CTRL definition according with
    hardware spec.

    Signed-off-by: xiong
    Tested-by: Liu David
    Signed-off-by: David S. Miller

    Huang, Xiong
     
  • clear PCIE error status (error log is write-1-clear).
    REG_PCIE_UC_SEVERITY is removed as it's a standard pcie register,
    and using kernle API to access it.

    Signed-off-by: xiong
    Tested-by: Liu David
    Signed-off-by: David S. Miller

    Huang, Xiong
     
  • dmar_dly_cnt and dmaw_dly_cnt aren't used by hardware/driver any more.

    Signed-off-by: xiong
    Tested-by: Liu David
    Signed-off-by: David S. Miller

    Huang, Xiong
     
  • atl1c_configure_tx used a wrong value of MAX_TX_OFFLOAD_THRESH(9KB)
    for TSO threshold.
    the right value should be 7KB
    Fast Ethernet controller doesn't support Jumbo frame.

    Signed-off-by: xiong
    Signed-off-by: David S. Miller

    Huang, Xiong
     
  • l1c_wait_until_idle is called for serval modules (TXQ/RXQ/TXMAC/RXMAC).
    specific moudle have specific idle/busy status in reg REG_IDLE_STATUS.
    the previous code return wrongly if all modules are in idle status,
    regardless the 'stop' action is applied on individual module.
    Refine the reg REG_IDLE_STATUS definition as well.

    Signed-off-by: xiong
    Tested-by: Liu David
    Signed-off-by: David S. Miller

    Huang, Xiong
     
  • threshold setting to control ASPM for diff chips are different.
    currently, all gigabit-capability chips have limited-ASPM under
    100M throughput.

    Signed-off-by: xiong
    Tested-by: Liu David
    Signed-off-by: David S. Miller

    Huang, Xiong
     
  • On some platforms, for example where we are doing the bring-up,
    the csr clock is not passed from the framework and the Ethernet
    device driver is failing when it can work w/o any issues and
    using the default values. So this patch just warnings the case
    of the csr clock cannot be acquired but w/o failing the probe
    step. I have just tested it on ST STiH415 SoC (ARM).

    Signed-off-by: Giuseppe Cavallaro
    Signed-off-by: David S. Miller

    Giuseppe CAVALLARO
     
  • Recently the dma parameters that can be passed from the platform
    have been moved from the plat_stmmacenet_data to the stmmac_dma_cfg.

    In case of this new structure is not well allocated the driver can
    fails. This is an example how this field is managed in ST platforms

    static struct stmmac_dma_cfg gmac_dma_setting = {
    .pbl = 32,
    };

    static struct plat_stmmacenet_data stih415_ethernet_platform_data[] = {
    {
    .dma_cfg = &gmac_dma_setting,
    .has_gmac = 1,
    [snip]

    This patch so verifies that the dma_cfg passed from the platform.
    In case of it is NULL there is no reason that the driver has to fail
    and some default values can be passed. These are ok for all the
    Synopsys chips and could impact on performances, only.

    Signed-off-by: Giuseppe Cavallaro
    cc: Viresh Kumar
    Signed-off-by: David S. Miller

    Giuseppe CAVALLARO
     
  • This patch moves the mdio_register/_unregister in probe/remove
    functions and this also is required when hibernation on disk
    is done.

    Signed-off-by: Francesco Virlinzi
    Signed-off-by: Giuseppe Cavallaro
    Signed-off-by: David S. Miller

    Francesco Virlinzi
     
  • Freeze and restore can call the custom init/exit functions.
    Also the patch adds a custom data field that can be used
    for storing platform data useful on restore the embedded
    setup (e.g. GPIO, SYSCFG).

    Signed-off-by: Francesco Virlinzi
    Signed-off-by: Giuseppe Cavallaro
    Signed-off-by: David S. Miller

    Francesco Virlinzi
     
  • Remove declaration of iwl_alloc_traffic_mem from iwl-agn.h,
    from methods that was exposed to support MVM.

    MVM doesn't have to use this declaration.

    CC: netdev@vger.kernel.org
    Signed-off-by: David Spinadel
    Signed-off-by: Wey-Yi Guy
    Signed-off-by: David S. Miller

    David Spinadel
     
  • Enhances command validation done by TIPC's configuration service so
    that it works properly even if the node's network address is changed in
    mid-operation. The default node address of is now recognized as an
    alias for "this node" even after a new network address has been assigned.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Revises handling of a rejected message to ensure that a locally
    originated message is returned properly even if the node's network
    address is changed in mid-operation. The routine now treats the
    default node address of as an alias for "this node" when
    determining where to send a returned message.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Revises handling of send routines for payload messages to ensure that
    they are processed properly even if the node's network address is
    changed in mid-operation. The routines now treat the default node
    address of as an alias for "this node" when determining where
    to send an outgoing message.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • There are two send routines that might conceivably be asked by an
    application to send a message off-node when the node is still using
    the default network address. These now have an added check that
    detects this and rejects the message gracefully.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • The routine that changes the node's network address now takes TIPC's
    network lock in write mode while the main address variable and associated
    data structures are being changed; this is needed to ensure that the
    link subsystem won't attempt to send a message off-node until the sending
    port's message header template has been updated with the node's new
    network address.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Revises routines that deal with connections between two ports on
    the same node to ensure the connection is not impacted if the node's
    network address is changed in mid-operation. The routines now treat
    the default node address of as an alias for "this node" in
    the following situations:

    1) Incoming messages destined to a connected port now handle the alias
    properly when validating that the message was sent by the expected
    peer port, ensuring that the message will be accepted regardless of
    whether it specifies the node's old network address or it's current one.

    2) The code which completes connection establishment now handles the
    alias properly when determining if the peer port is on the same node
    as the connected port.

    An added benefit of addressing issue 1) is that some peer port
    validation code has been relocated to TIPC's socket subsystem, which
    means that validation is no longer done twice when a message is
    sent to a non-socket port (such as TIPC's configuration service or
    network topology service).

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens