Skip to content

Commit

Permalink
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Browse files Browse the repository at this point in the history
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (27 commits)
  pktgen: make sure that pktgen_thread_worker has been executed
  [VLAN]: Propagate selected feature bits to VLAN devices
  drivers/atm/: remove CVS keywords
  vlan: Correctly handle device notifications for layered VLAN devices
  net: Fix call to ->change_rx_flags(dev, IFF_MULTICAST) in dev_change_flags()
  net_sched: cls_api: fix return value for non-existant classifiers
  ipsec: Use the correct ip_local_out function
  ipv6 addrconf: Allow infinite prefix lifetime.
  ipv6 route: Fix lifetime in netlink.
  ipv6 addrconf: Fix route lifetime setting in corner case.
  ndisc: Add missing strategies for per-device retrans timer/reachable time settings.
  ipv6: Move <linux/in6.h> from header-y to unifdef-y.
  l2tp: avoid skb truesize bug if headroom is increased
  wireless: Create 'device' symlink in sysfs
  wireless, airo: waitbusy() won't delay
  libertas: fix command timeout after firmware failure
  mac80211: Add RTNL version of ieee80211_iterate_active_interfaces
  mac80211 : Association with 11n hidden ssid ap.
  hostap: fix "registers" registration in procfs
  isdn/capi: Return proper errnos on module init.
  ...
  • Loading branch information
torvalds committed May 21, 2008
2 parents 789319d + d3ede32 commit e616c63
Show file tree
Hide file tree
Showing 36 changed files with 235 additions and 121 deletions.
1 change: 0 additions & 1 deletion drivers/atm/fore200e.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
/* $Id: fore200e.h,v 1.4 2000/04/14 10:10:34 davem Exp $ */
#ifndef _FORE200E_H
#define _FORE200E_H

Expand Down
2 changes: 0 additions & 2 deletions drivers/atm/fore200e_mkfirm.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
/*
$Id: fore200e_mkfirm.c,v 1.1 2000/02/21 16:04:32 davem Exp $
mkfirm.c: generates a C readable file from a binary firmware image
Christophe Lizzi (lizzi@{csti.fr, cnam.fr}), June 1999.
Expand Down
2 changes: 0 additions & 2 deletions drivers/atm/he.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
/* $Id: he.h,v 1.4 2003/05/06 22:48:00 chas Exp $ */

/*
he.h
Expand Down
7 changes: 0 additions & 7 deletions drivers/atm/idt77252.c
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
/*******************************************************************
* ident "$Id: idt77252.c,v 1.2 2001/11/11 08:13:54 ecd Exp $"
*
* $Author: ecd $
* $Date: 2001/11/11 08:13:54 $
*
* Copyright (c) 2000 ATecoM GmbH
*
Expand All @@ -29,9 +25,6 @@
* 675 Mass Ave, Cambridge, MA 02139, USA.
*
*******************************************************************/
static char const rcsid[] =
"$Id: idt77252.c,v 1.2 2001/11/11 08:13:54 ecd Exp $";


#include <linux/module.h>
#include <linux/pci.h>
Expand Down
4 changes: 0 additions & 4 deletions drivers/atm/idt77252.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
/*******************************************************************
* ident "$Id: idt77252.h,v 1.2 2001/11/11 08:13:54 ecd Exp $"
*
* $Author: ecd $
* $Date: 2001/11/11 08:13:54 $
*
* Copyright (c) 2000 ATecoM GmbH
*
Expand Down
3 changes: 2 additions & 1 deletion drivers/atm/iphase.h
Original file line number Diff line number Diff line change
Expand Up @@ -1025,7 +1025,8 @@ typedef struct iadev_t {
spinlock_t rx_lock, misc_lock;
struct atm_vcc **rx_open; /* list of all open VCs */
u16 num_rx_desc, rx_buf_sz, rxing;
u32 rx_pkt_ram, rx_tmp_cnt, rx_tmp_jif;
u32 rx_pkt_ram, rx_tmp_cnt;
unsigned long rx_tmp_jif;
void __iomem *RX_DESC_BASE_ADDR;
u32 drop_rxpkt, drop_rxcell, rx_cell_cnt, rx_pkt_cnt;
struct atm_dev *next_board; /* other iphase devices */
Expand Down
2 changes: 1 addition & 1 deletion drivers/atm/nicstarmac.copyright
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*
* Modified to work with the IDT7721 nicstar -- AAL5 (tested) only.
*
* R. D. Rechenmacher <ron@fnal.gov>, Aug. 6, 1997 $Revision: 1.1 $ $Date: 1999/08/20 11:00:11 $
* R. D. Rechenmacher <ron@fnal.gov>, Aug. 6, 1997
*
* Linux driver for the IDT77201 NICStAR PCI ATM controller.
* PHY component is expected to be 155 Mbps S/UNI-Lite or IDT 77155;
Expand Down
8 changes: 3 additions & 5 deletions drivers/base/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1291,13 +1291,11 @@ int device_rename(struct device *dev, char *new_name)
}
#else
if (dev->class) {
sysfs_remove_link(&dev->class->subsys.kobj, old_device_name);
error = sysfs_create_link(&dev->class->subsys.kobj, &dev->kobj,
dev->bus_id);
if (error) {
dev_err(dev, "%s: sysfs_create_symlink failed (%d)\n",
__func__, error);
}
if (error)
goto out;
sysfs_remove_link(&dev->class->subsys.kobj, old_device_name);
}
#endif

Expand Down
6 changes: 3 additions & 3 deletions drivers/isdn/capi/capiutil.c
Original file line number Diff line number Diff line change
Expand Up @@ -948,17 +948,17 @@ int __init cdebug_init(void)
{
g_cmsg= kmalloc(sizeof(_cmsg), GFP_KERNEL);
if (!g_cmsg)
return ENOMEM;
return -ENOMEM;
g_debbuf = kmalloc(sizeof(_cdebbuf), GFP_KERNEL);
if (!g_debbuf) {
kfree(g_cmsg);
return ENOMEM;
return -ENOMEM;
}
g_debbuf->buf = kmalloc(CDEBUG_GSIZE, GFP_KERNEL);
if (!g_debbuf->buf) {
kfree(g_cmsg);
kfree(g_debbuf);
return ENOMEM;;
return -ENOMEM;;
}
g_debbuf->size = CDEBUG_GSIZE;
g_debbuf->buf[0] = 0;
Expand Down
2 changes: 1 addition & 1 deletion drivers/isdn/hysdn/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#
config HYSDN
tristate "Hypercope HYSDN cards (Champ, Ergo, Metro) support (module only)"
depends on m && PROC_FS && PCI && BROKEN_ON_SMP
depends on m && PROC_FS && PCI
help
Say Y here if you have one of Hypercope's active PCI ISDN cards
Champ, Ergo and Metro. You will then get a module called hysdn.
Expand Down
14 changes: 5 additions & 9 deletions drivers/isdn/hysdn/boardergo.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,11 @@ ergo_interrupt(int intno, void *dev_id)
} /* ergo_interrupt */

/******************************************************************************/
/* ergo_irq_bh is the function called by the immediate kernel task list after */
/* being activated with queue_task and no interrupts active. This task is the */
/* only one handling data transfer from or to the card after booting. The task */
/* may be queued from everywhere (interrupts included). */
/* ergo_irq_bh will be called as part of the kernel clearing its shared work */
/* queue sometime after a call to schedule_work has been made passing our */
/* work_struct. This task is the only one handling data transfer from or to */
/* the card after booting. The task may be queued from everywhere */
/* (interrupts included). */
/******************************************************************************/
static void
ergo_irq_bh(struct work_struct *ugli_api)
Expand All @@ -90,7 +91,6 @@ ergo_irq_bh(struct work_struct *ugli_api)
card->hw_lock = 1; /* we now lock the hardware */

do {
sti(); /* reenable other ints */
again = 0; /* assume loop not to be repeated */

if (!dpr->ToHyFlag) {
Expand All @@ -110,7 +110,6 @@ ergo_irq_bh(struct work_struct *ugli_api)
again = 1; /* restart loop */
}
} /* a message has arrived for us */
cli(); /* no further ints */
if (again) {
dpr->ToHyInt = 1;
dpr->ToPcInt = 1; /* interrupt to E1 for all cards */
Expand Down Expand Up @@ -242,7 +241,6 @@ ergo_writebootimg(struct HYSDN_CARD *card, unsigned char *buf,
byteout(card->iobase + PCI9050_USER_IO, PCI9050_E1_RUN); /* start E1 processor */
/* the interrupts are still masked */

sti();
msleep_interruptible(20); /* Timeout 20ms */

if (((tDpramBootSpooler *) card->dpram)->Len != DPRAM_SPOOLER_DATA_SIZE) {
Expand Down Expand Up @@ -276,7 +274,6 @@ ergo_writebootseq(struct HYSDN_CARD *card, unsigned char *buf, int len)
dst = sp->Data; /* point to data in spool structure */
buflen = sp->Len; /* maximum len of spooled data */
wr_mirror = sp->WrPtr; /* only once read */
sti();

/* try until all bytes written or error */
i = 0x1000; /* timeout value */
Expand Down Expand Up @@ -380,7 +377,6 @@ ergo_waitpofready(struct HYSDN_CARD *card)
#endif /* CONFIG_HYSDN_CAPI */
return (0); /* success */
} /* data has arrived */
sti();
msleep_interruptible(50); /* Timeout 50ms */
} /* wait until timeout */

Expand Down
12 changes: 10 additions & 2 deletions drivers/net/bonding/bond_sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -1437,8 +1437,16 @@ int bond_create_sysfs(void)
* configure multiple bonding devices.
*/
if (ret == -EEXIST) {
netdev_class = NULL;
return 0;
/* Is someone being kinky and naming a device bonding_master? */
if (__dev_get_by_name(&init_net,
class_attr_bonding_masters.attr.name))
printk(KERN_ERR
"network device named %s already exists in sysfs",
class_attr_bonding_masters.attr.name);
else {
netdev_class = NULL;
return 0;
}
}

return ret;
Expand Down
13 changes: 8 additions & 5 deletions drivers/net/pppol2tp.c
Original file line number Diff line number Diff line change
Expand Up @@ -980,6 +980,8 @@ static int pppol2tp_xmit(struct ppp_channel *chan, struct sk_buff *skb)
__wsum csum = 0;
struct udphdr *uh;
unsigned int len;
int old_headroom;
int new_headroom;

if (sock_flag(sk, SOCK_DEAD) || !(sk->sk_state & PPPOX_CONNECTED))
goto abort;
Expand All @@ -1001,16 +1003,18 @@ static int pppol2tp_xmit(struct ppp_channel *chan, struct sk_buff *skb)

/* Check that there's enough headroom in the skb to insert IP,
* UDP and L2TP and PPP headers. If not enough, expand it to
* make room. Note that a new skb (or a clone) is
* allocated. If we return an error from this point on, make
* sure we free the new skb but do not free the original skb
* since that is done by the caller for the error case.
* make room. Adjust truesize.
*/
headroom = NET_SKB_PAD + sizeof(struct iphdr) +
sizeof(struct udphdr) + hdr_len + sizeof(ppph);
old_headroom = skb_headroom(skb);
if (skb_cow_head(skb, headroom))
goto abort;

new_headroom = skb_headroom(skb);
skb_orphan(skb);
skb->truesize += new_headroom - old_headroom;

/* Setup PPP header */
__skb_push(skb, sizeof(ppph));
skb->data[0] = ppph[0];
Expand Down Expand Up @@ -1065,7 +1069,6 @@ static int pppol2tp_xmit(struct ppp_channel *chan, struct sk_buff *skb)
/* Get routing info from the tunnel socket */
dst_release(skb->dst);
skb->dst = dst_clone(__sk_dst_get(sk_tun));
skb_orphan(skb);
skb->sk = sk_tun;

/* Queue the packet to IP for output */
Expand Down
3 changes: 2 additions & 1 deletion drivers/net/wireless/airo.c
Original file line number Diff line number Diff line change
Expand Up @@ -2668,6 +2668,7 @@ static struct net_device *init_wifidev(struct airo_info *ai,
dev->irq = ethdev->irq;
dev->base_addr = ethdev->base_addr;
dev->wireless_data = ethdev->wireless_data;
SET_NETDEV_DEV(dev, ethdev->dev.parent);
memcpy(dev->dev_addr, ethdev->dev_addr, dev->addr_len);
err = register_netdev(dev);
if (err<0) {
Expand Down Expand Up @@ -2904,7 +2905,7 @@ EXPORT_SYMBOL(init_airo_card);

static int waitbusy (struct airo_info *ai) {
int delay = 0;
while ((IN4500 (ai, COMMAND) & COMMAND_BUSY) & (delay < 10000)) {
while ((IN4500 (ai, COMMAND) & COMMAND_BUSY) && (delay < 10000)) {
udelay (10);
if ((++delay % 20) == 0)
OUT4500(ai, EVACK, EV_CLEARCOMMANDBUSY);
Expand Down
9 changes: 4 additions & 5 deletions drivers/net/wireless/hostap/hostap_hw.c
Original file line number Diff line number Diff line change
Expand Up @@ -3276,11 +3276,6 @@ while (0)
}
printk(KERN_INFO "%s: Registered netdevice %s\n", dev_info, dev->name);

#ifndef PRISM2_NO_PROCFS_DEBUG
create_proc_read_entry("registers", 0, local->proc,
prism2_registers_proc_read, local);
#endif /* PRISM2_NO_PROCFS_DEBUG */

hostap_init_data(local);
return dev;

Expand All @@ -3307,6 +3302,10 @@ static int hostap_hw_ready(struct net_device *dev)
netif_carrier_off(local->ddev);
}
hostap_init_proc(local);
#ifndef PRISM2_NO_PROCFS_DEBUG
create_proc_read_entry("registers", 0, local->proc,
prism2_registers_proc_read, local);
#endif /* PRISM2_NO_PROCFS_DEBUG */
hostap_init_ap_proc(local);
return 0;
}
Expand Down
1 change: 1 addition & 0 deletions drivers/net/wireless/ipw2200.c
Original file line number Diff line number Diff line change
Expand Up @@ -11584,6 +11584,7 @@ static int ipw_prom_alloc(struct ipw_priv *priv)
priv->prom_net_dev->hard_start_xmit = ipw_prom_hard_start_xmit;

priv->prom_priv->ieee->iw_mode = IW_MODE_MONITOR;
SET_NETDEV_DEV(priv->prom_net_dev, &priv->pci_dev->dev);

rc = register_netdev(priv->prom_net_dev);
if (rc) {
Expand Down
2 changes: 2 additions & 0 deletions drivers/net/wireless/libertas/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -756,6 +756,7 @@ static int lbs_thread(void *data)
priv->nr_retries = 0;
} else {
priv->cur_cmd = NULL;
priv->dnld_sent = DNLD_RES_RECEIVED;
lbs_pr_info("requeueing command %x due to timeout (#%d)\n",
le16_to_cpu(cmdnode->cmdbuf->command), priv->nr_retries);

Expand Down Expand Up @@ -1564,6 +1565,7 @@ static int lbs_add_rtap(struct lbs_private *priv)
rtap_dev->hard_start_xmit = lbs_rtap_hard_start_xmit;
rtap_dev->set_multicast_list = lbs_set_multicast_list;
rtap_dev->priv = priv;
SET_NETDEV_DEV(rtap_dev, priv->dev->dev.parent);

ret = register_netdev(rtap_dev);
if (ret) {
Expand Down
6 changes: 1 addition & 5 deletions fs/sysfs/dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -419,12 +419,8 @@ void sysfs_addrm_start(struct sysfs_addrm_cxt *acxt,
*/
int sysfs_add_one(struct sysfs_addrm_cxt *acxt, struct sysfs_dirent *sd)
{
if (sysfs_find_dirent(acxt->parent_sd, sd->s_name)) {
printk(KERN_WARNING "sysfs: duplicate filename '%s' "
"can not be created\n", sd->s_name);
WARN_ON(1);
if (sysfs_find_dirent(acxt->parent_sd, sd->s_name))
return -EEXIST;
}

sd->s_parent = sysfs_get(acxt->parent_sd);

Expand Down
2 changes: 1 addition & 1 deletion include/linux/Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ header-y += if_slip.h
header-y += if_strip.h
header-y += if_tun.h
header-y += if_tunnel.h
header-y += in6.h
header-y += in_route.h
header-y += ioctl.h
header-y += ip6_tunnel.h
Expand Down Expand Up @@ -236,6 +235,7 @@ unifdef-y += if_vlan.h
unifdef-y += igmp.h
unifdef-y += inet_diag.h
unifdef-y += in.h
unifdef-y += in6.h
unifdef-y += inotify.h
unifdef-y += input.h
unifdef-y += ip.h
Expand Down
7 changes: 2 additions & 5 deletions include/linux/atm.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,11 @@
* documentation. Do not change them.
*/

#ifdef __KERNEL__
#include <linux/socket.h>
#include <linux/types.h>
#endif
#include <linux/compiler.h>
#include <linux/atmapi.h>
#include <linux/atmsap.h>
#include <linux/atmioc.h>
#include <linux/types.h>


/* general ATM constants */
Expand Down Expand Up @@ -212,7 +209,7 @@ struct sockaddr_atmsvc {
char pub[ATM_E164_LEN+1]; /* public address (E.164) */
/* unused addresses must be bzero'ed */
char lij_type; /* role in LIJ call; one of ATM_LIJ* */
uint32_t lij_id; /* LIJ call identifier */
__u32 lij_id; /* LIJ call identifier */
} sas_addr __ATM_API_ALIGN; /* SVC address */
};

Expand Down
12 changes: 5 additions & 7 deletions include/linux/atm_tcp.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,19 @@
#define LINUX_ATM_TCP_H

#include <linux/atmapi.h>

#ifdef __KERNEL__
#include <linux/types.h>
#endif
#include <linux/atm.h>
#include <linux/atmioc.h>
#include <linux/types.h>


/*
* All values in struct atmtcp_hdr are in network byte order
*/

struct atmtcp_hdr {
uint16_t vpi;
uint16_t vci;
uint32_t length; /* ... of data part */
__u16 vpi;
__u16 vci;
__u32 length; /* ... of data part */
};

/*
Expand Down
6 changes: 4 additions & 2 deletions include/linux/netdevice.h
Original file line number Diff line number Diff line change
Expand Up @@ -514,10 +514,12 @@ struct net_device
#define NETIF_F_NETNS_LOCAL 8192 /* Does not change network namespaces */
#define NETIF_F_MULTI_QUEUE 16384 /* Has multiple TX/RX queues */
#define NETIF_F_LRO 32768 /* large receive offload */
#define NETIF_F_VLAN_TSO 65536 /* Supports TSO for VLANs */
#define NETIF_F_VLAN_CSUM 131072 /* Supports TX checksumming for VLANs */

/* Segmentation offload features */
#define NETIF_F_GSO_SHIFT 16
#define NETIF_F_GSO_MASK 0xffff0000
#define NETIF_F_GSO_SHIFT 20
#define NETIF_F_GSO_MASK 0xfff00000
#define NETIF_F_TSO (SKB_GSO_TCPV4 << NETIF_F_GSO_SHIFT)
#define NETIF_F_UFO (SKB_GSO_UDP << NETIF_F_GSO_SHIFT)
#define NETIF_F_GSO_ROBUST (SKB_GSO_DODGY << NETIF_F_GSO_SHIFT)
Expand Down
Loading

0 comments on commit e616c63

Please sign in to comment.