Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 40370
b: refs/heads/master
c: 4130a4b
h: refs/heads/master
v: v3
  • Loading branch information
David S. Miller committed Oct 26, 2006
1 parent ca872a2 commit 37611c1
Show file tree
Hide file tree
Showing 11 changed files with 68 additions and 72 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2a4f739dfc59edd52eaa37d63af1bd830ea42318
refs/heads/master: 4130a4b206e7c628482aa12ec30949382c8cdc5e
4 changes: 4 additions & 0 deletions trunk/arch/sparc64/kernel/central.c
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,10 @@ static void probe_other_fhcs(void)
int board;
u32 tmp;

if (dp->parent &&
dp->parent->parent != NULL)
continue;

fhc = (struct linux_fhc *)
central_alloc_bootmem(sizeof(struct linux_fhc));
if (fhc == NULL)
Expand Down
33 changes: 24 additions & 9 deletions trunk/arch/sparc64/kernel/of_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -402,16 +402,22 @@ static void of_bus_sbus_count_cells(struct device_node *child,
*sizec = 1;
}

static int of_bus_sbus_map(u32 *addr, const u32 *range, int na, int ns, int pna)
{
return of_bus_default_map(addr, range, na, ns, pna);
}

static unsigned int of_bus_sbus_get_flags(u32 *addr)
/*
* FHC/Central bus specific translator.
*
* This is just needed to hard-code the address and size cell
* counts. 'fhc' and 'central' nodes lack the #address-cells and
* #size-cells properties, and if you walk to the root on such
* Enterprise boxes all you'll get is a #size-cells of 2 which is
* not what we want to use.
*/
static int of_bus_fhc_match(struct device_node *np)
{
return IORESOURCE_MEM;
return !strcmp(np->name, "fhc") ||
!strcmp(np->name, "central");
}

#define of_bus_fhc_count_cells of_bus_sbus_count_cells

/*
* Array of bus specific translators
Expand All @@ -433,8 +439,17 @@ static struct of_bus of_busses[] = {
.addr_prop_name = "reg",
.match = of_bus_sbus_match,
.count_cells = of_bus_sbus_count_cells,
.map = of_bus_sbus_map,
.get_flags = of_bus_sbus_get_flags,
.map = of_bus_default_map,
.get_flags = of_bus_default_get_flags,
},
/* FHC */
{
.name = "fhc",
.addr_prop_name = "reg",
.match = of_bus_fhc_match,
.count_cells = of_bus_fhc_count_cells,
.map = of_bus_default_map,
.get_flags = of_bus_default_get_flags,
},
/* Default */
{
Expand Down
30 changes: 15 additions & 15 deletions trunk/arch/sparc64/kernel/prom.c
Original file line number Diff line number Diff line change
Expand Up @@ -1079,32 +1079,32 @@ static void sun4v_vdev_irq_trans_init(struct device_node *dp)

static void irq_trans_init(struct device_node *dp)
{
const char *model;
#ifdef CONFIG_PCI
const char *model;
int i;
#endif

#ifdef CONFIG_PCI
model = of_get_property(dp, "model", NULL);
if (!model)
model = of_get_property(dp, "compatible", NULL);
if (!model)
return;

#ifdef CONFIG_PCI
for (i = 0; i < ARRAY_SIZE(pci_irq_trans_table); i++) {
struct irq_trans *t = &pci_irq_trans_table[i];
if (model) {
for (i = 0; i < ARRAY_SIZE(pci_irq_trans_table); i++) {
struct irq_trans *t = &pci_irq_trans_table[i];

if (!strcmp(model, t->name))
return t->init(dp);
if (!strcmp(model, t->name))
return t->init(dp);
}
}
#endif
#ifdef CONFIG_SBUS
if (!strcmp(dp->name, "sbus") ||
!strcmp(dp->name, "sbi"))
return sbus_irq_trans_init(dp);
#endif
if (!strcmp(dp->name, "central"))
return central_irq_trans_init(dp->child);
if (!strcmp(dp->name, "fhc") &&
!strcmp(dp->parent->name, "central"))
return central_irq_trans_init(dp);
if (!strcmp(dp->name, "virtual-devices"))
return sun4v_vdev_irq_trans_init(dp);
}
Expand Down Expand Up @@ -1516,7 +1516,7 @@ static char * __init get_one_property(phandle node, const char *name)
return buf;
}

static struct device_node * __init create_node(phandle node)
static struct device_node * __init create_node(phandle node, struct device_node *parent)
{
struct device_node *dp;

Expand All @@ -1525,6 +1525,7 @@ static struct device_node * __init create_node(phandle node)

dp = prom_early_alloc(sizeof(*dp));
dp->unique_id = unique_id++;
dp->parent = parent;

kref_init(&dp->kref);

Expand All @@ -1543,12 +1544,11 @@ static struct device_node * __init build_tree(struct device_node *parent, phandl
{
struct device_node *dp;

dp = create_node(node);
dp = create_node(node, parent);
if (dp) {
*(*nextp) = dp;
*nextp = &dp->allnext;

dp->parent = parent;
dp->path_component_name = build_path_component(dp);
dp->full_name = build_full_name(dp);

Expand All @@ -1564,7 +1564,7 @@ void __init prom_build_devicetree(void)
{
struct device_node **nextp;

allnodes = create_node(prom_root_node);
allnodes = create_node(prom_root_node, NULL);
allnodes->path_component_name = "";
allnodes->full_name = "/";

Expand Down
10 changes: 2 additions & 8 deletions trunk/drivers/net/e100.c
Original file line number Diff line number Diff line change
Expand Up @@ -2719,10 +2719,7 @@ static int e100_suspend(struct pci_dev *pdev, pm_message_t state)
struct net_device *netdev = pci_get_drvdata(pdev);
struct nic *nic = netdev_priv(netdev);

#ifdef CONFIG_E100_NAPI
if (netif_running(netdev))
netif_poll_disable(nic->netdev);
#endif
netif_poll_disable(nic->netdev);
del_timer_sync(&nic->watchdog);
netif_carrier_off(nic->netdev);

Expand Down Expand Up @@ -2766,10 +2763,7 @@ static void e100_shutdown(struct pci_dev *pdev)
struct net_device *netdev = pci_get_drvdata(pdev);
struct nic *nic = netdev_priv(netdev);

#ifdef CONFIG_E100_NAPI
if (netif_running(netdev))
netif_poll_disable(nic->netdev);
#endif
netif_poll_disable(nic->netdev);
del_timer_sync(&nic->watchdog);
netif_carrier_off(nic->netdev);

Expand Down
4 changes: 1 addition & 3 deletions trunk/drivers/net/e1000/e1000_ethtool.c
Original file line number Diff line number Diff line change
Expand Up @@ -461,8 +461,7 @@ e1000_get_regs(struct net_device *netdev,
regs_buff[24] = (uint32_t)phy_data; /* phy local receiver status */
regs_buff[25] = regs_buff[24]; /* phy remote receiver status */
if (hw->mac_type >= e1000_82540 &&
hw->mac_type < e1000_82571 &&
hw->media_type == e1000_media_type_copper) {
hw->media_type == e1000_media_type_copper) {
regs_buff[26] = E1000_READ_REG(hw, MANC);
}
}
Expand Down Expand Up @@ -1691,7 +1690,6 @@ static int e1000_wol_exclusion(struct e1000_adapter *adapter, struct ethtool_wol
int retval = 1; /* fail by default */

switch (hw->device_id) {
case E1000_DEV_ID_82542:
case E1000_DEV_ID_82543GC_FIBER:
case E1000_DEV_ID_82543GC_COPPER:
case E1000_DEV_ID_82544EI_FIBER:
Expand Down
6 changes: 3 additions & 3 deletions trunk/drivers/net/e1000/e1000_hw.h
Original file line number Diff line number Diff line change
Expand Up @@ -1961,9 +1961,9 @@ struct e1000_hw {
#define E1000_RXDCTL_GRAN 0x01000000 /* RXDCTL Granularity */

/* Transmit Descriptor Control */
#define E1000_TXDCTL_PTHRESH 0x0000003F /* TXDCTL Prefetch Threshold */
#define E1000_TXDCTL_HTHRESH 0x00003F00 /* TXDCTL Host Threshold */
#define E1000_TXDCTL_WTHRESH 0x003F0000 /* TXDCTL Writeback Threshold */
#define E1000_TXDCTL_PTHRESH 0x000000FF /* TXDCTL Prefetch Threshold */
#define E1000_TXDCTL_HTHRESH 0x0000FF00 /* TXDCTL Host Threshold */
#define E1000_TXDCTL_WTHRESH 0x00FF0000 /* TXDCTL Writeback Threshold */
#define E1000_TXDCTL_GRAN 0x01000000 /* TXDCTL Granularity */
#define E1000_TXDCTL_LWTHRESH 0xFE000000 /* TXDCTL Low Threshold */
#define E1000_TXDCTL_FULL_TX_DESC_WB 0x01010000 /* GRAN=1, WTHRESH=1 */
Expand Down
41 changes: 13 additions & 28 deletions trunk/drivers/net/e1000/e1000_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ static char e1000_driver_string[] = "Intel(R) PRO/1000 Network Driver";
#else
#define DRIVERNAPI "-NAPI"
#endif
#define DRV_VERSION "7.2.9-k4"DRIVERNAPI
#define DRV_VERSION "7.2.9-k2"DRIVERNAPI
char e1000_driver_version[] = DRV_VERSION;
static char e1000_copyright[] = "Copyright (c) 1999-2006 Intel Corporation.";

Expand Down Expand Up @@ -699,10 +699,7 @@ e1000_reset(struct e1000_adapter *adapter)
phy_data);
}

if ((adapter->en_mng_pt) &&
(adapter->hw.mac_type >= e1000_82540) &&
(adapter->hw.mac_type < e1000_82571) &&
(adapter->hw.media_type == e1000_media_type_copper)) {
if ((adapter->en_mng_pt) && (adapter->hw.mac_type < e1000_82571)) {
manc = E1000_READ_REG(&adapter->hw, MANC);
manc |= (E1000_MANC_ARP_EN | E1000_MANC_EN_MNG2HOST);
E1000_WRITE_REG(&adapter->hw, MANC, manc);
Expand Down Expand Up @@ -1079,9 +1076,8 @@ e1000_remove(struct pci_dev *pdev)

flush_scheduled_work();

if (adapter->hw.mac_type >= e1000_82540 &&
adapter->hw.mac_type < e1000_82571 &&
adapter->hw.media_type == e1000_media_type_copper) {
if (adapter->hw.mac_type < e1000_82571 &&
adapter->hw.media_type == e1000_media_type_copper) {
manc = E1000_READ_REG(&adapter->hw, MANC);
if (manc & E1000_MANC_SMBUS_EN) {
manc |= E1000_MANC_ARP_EN;
Expand Down Expand Up @@ -1808,11 +1804,9 @@ e1000_setup_rctl(struct e1000_adapter *adapter)
* followed by the page buffers. Therefore, skb->data is
* sized to hold the largest protocol header.
*/
/* allocations using alloc_page take too long for regular MTU
* so only enable packet split for jumbo frames */
pages = PAGE_USE_COUNT(adapter->netdev->mtu);
if ((adapter->hw.mac_type >= e1000_82571) && (pages <= 3) &&
PAGE_SIZE <= 16384 && (rctl & E1000_RCTL_LPE))
if ((adapter->hw.mac_type > e1000_82547_rev_2) && (pages <= 3) &&
PAGE_SIZE <= 16384)
adapter->rx_ps_pages = pages;
else
adapter->rx_ps_pages = 0;
Expand Down Expand Up @@ -2992,11 +2986,6 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
return NETDEV_TX_OK;
}

/* 82571 and newer doesn't need the workaround that limited descriptor
* length to 4kB */
if (adapter->hw.mac_type >= e1000_82571)
max_per_txd = 8192;

#ifdef NETIF_F_TSO
mss = skb_shinfo(skb)->gso_size;
/* The controller does a simple calculation to
Expand Down Expand Up @@ -3786,6 +3775,9 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter,

length = le16_to_cpu(rx_desc->length);

/* adjust length to remove Ethernet CRC */
length -= 4;

if (unlikely(!(status & E1000_RXD_STAT_EOP))) {
/* All receives must fit into a single buffer */
E1000_DBG("%s: Receive packet consumed multiple"
Expand Down Expand Up @@ -3813,10 +3805,6 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter,
}
}

/* adjust length to remove Ethernet CRC, this must be
* done after the TBI_ACCEPT workaround above */
length -= 4;

/* code added for copybreak, this should improve
* performance for small packets with large amounts
* of reassembly being done in the stack */
Expand Down Expand Up @@ -4785,9 +4773,8 @@ e1000_suspend(struct pci_dev *pdev, pm_message_t state)
pci_enable_wake(pdev, PCI_D3cold, 0);
}

if (adapter->hw.mac_type >= e1000_82540 &&
adapter->hw.mac_type < e1000_82571 &&
adapter->hw.media_type == e1000_media_type_copper) {
if (adapter->hw.mac_type < e1000_82571 &&
adapter->hw.media_type == e1000_media_type_copper) {
manc = E1000_READ_REG(&adapter->hw, MANC);
if (manc & E1000_MANC_SMBUS_EN) {
manc |= E1000_MANC_ARP_EN;
Expand Down Expand Up @@ -4838,9 +4825,8 @@ e1000_resume(struct pci_dev *pdev)

netif_device_attach(netdev);

if (adapter->hw.mac_type >= e1000_82540 &&
adapter->hw.mac_type < e1000_82571 &&
adapter->hw.media_type == e1000_media_type_copper) {
if (adapter->hw.mac_type < e1000_82571 &&
adapter->hw.media_type == e1000_media_type_copper) {
manc = E1000_READ_REG(&adapter->hw, MANC);
manc &= ~(E1000_MANC_ARP_EN);
E1000_WRITE_REG(&adapter->hw, MANC, manc);
Expand Down Expand Up @@ -4958,7 +4944,6 @@ static void e1000_io_resume(struct pci_dev *pdev)
netif_device_attach(netdev);

if (adapter->hw.mac_type >= e1000_82540 &&
adapter->hw.mac_type < e1000_82571 &&
adapter->hw.media_type == e1000_media_type_copper) {
manc = E1000_READ_REG(&adapter->hw, MANC);
manc &= ~(E1000_MANC_ARP_EN);
Expand Down
2 changes: 1 addition & 1 deletion trunk/net/bridge/br_sysfs_br.c
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ int br_sysfs_addbr(struct net_device *dev)

err = sysfs_create_bin_file(brobj, &bridge_forward);
if (err) {
pr_info("%s: can't create attribute file %s/%s\n",
pr_info("%s: can't create attribue file %s/%s\n",
__FUNCTION__, dev->name, bridge_forward.attr.name);
goto out2;
}
Expand Down
6 changes: 3 additions & 3 deletions trunk/net/ipv4/tcp_cubic.c
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ static inline void bictcp_update(struct bictcp *ca, u32 cwnd)
*/

/* change the unit from HZ to bictcp_HZ */
t = ((tcp_time_stamp + (ca->delay_min>>3) - ca->epoch_start)
t = ((tcp_time_stamp + ca->delay_min - ca->epoch_start)
<< BICTCP_HZ) / HZ;

if (t < ca->bic_K) /* t - K */
Expand Down Expand Up @@ -259,7 +259,7 @@ static inline void measure_delay(struct sock *sk)
(s32)(tcp_time_stamp - ca->epoch_start) < HZ)
return;

delay = (tcp_time_stamp - tp->rx_opt.rcv_tsecr)<<3;
delay = tcp_time_stamp - tp->rx_opt.rcv_tsecr;
if (delay == 0)
delay = 1;

Expand Down Expand Up @@ -366,7 +366,7 @@ static int __init cubictcp_register(void)

beta_scale = 8*(BICTCP_BETA_SCALE+beta)/ 3 / (BICTCP_BETA_SCALE - beta);

cube_rtt_scale = (bic_scale * 10); /* 1024*c/rtt */
cube_rtt_scale = (bic_scale << 3) / 10; /* 1024*c/rtt */

/* calculate the "K" for (wmax-cwnd) = c/rtt * K^3
* so K = cubic_root( (wmax-cwnd)*rtt/c )
Expand Down
2 changes: 1 addition & 1 deletion trunk/net/ipv4/tcp_htcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ module_param(use_bandwidth_switch, int, 0644);
MODULE_PARM_DESC(use_bandwidth_switch, "turn on/off bandwidth switcher");

struct htcp {
u32 alpha; /* Fixed point arith, << 7 */
u16 alpha; /* Fixed point arith, << 7 */
u8 beta; /* Fixed point arith, << 7 */
u8 modeswitch; /* Delay modeswitch until we had at least one congestion event */
u32 last_cong; /* Time since last congestion event end */
Expand Down

0 comments on commit 37611c1

Please sign in to comment.