Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31cafd95 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (52 commits)
  phylib: Add autoload support for the LXT973 phy.
  ISDN: hysdn, fix potential NULL dereference
  vxge: fix memory leak in vxge_alloc_msix() error path
  isdn/gigaset: correct CAPI connection state storage
  isdn/gigaset: encode HLC and BC together
  isdn/gigaset: correct CAPI DATA_B3 Delivery Confirmation
  isdn/gigaset: correct CAPI voice connection encoding
  isdn/gigaset: honor CAPI application's buffer size request
  cpmac: do not leak struct net_device on phy_connect errors
  smc91c92_cs: fix the problem that lan & modem does not work simultaneously
  ipv6: fix NULL reference in proxy neighbor discovery
  Bluetooth: Bring back var 'i' increment
  xfrm: check bundle policy existance before dereferencing it
  sky2: enable rx/tx in sky2_phy_reinit()
  cnic: Disable statistics initialization for eth clients that do not support statistics
  net: add dependency on fw class module to qlcnic and netxen_nic
  snmp: fix SNMP_ADD_STATS()
  hso: remove setting of low_latency flag
  udp: Fix bogus UFO packet generation
  lasi82596: fix netdev_mc_count conversion
  ...
parents e7865c23 e2f5b045
Loading
Loading
Loading
Loading
+2 −8
Original line number Diff line number Diff line
@@ -2985,20 +2985,14 @@ F: drivers/net/ixgb/
F:	drivers/net/ixgbe/

INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
M:	Reinette Chatre <reinette.chatre@intel.com>
M:	Intel Linux Wireless <ilw@linux.intel.com>
L:	linux-wireless@vger.kernel.org
W:	http://ipw2100.sourceforge.net
S:	Odd Fixes
S:	Orphan
F:	Documentation/networking/README.ipw2100
F:	drivers/net/wireless/ipw2x00/ipw2100.*

INTEL PRO/WIRELESS 2915ABG NETWORK CONNECTION SUPPORT
M:	Reinette Chatre <reinette.chatre@intel.com>
M:	Intel Linux Wireless <ilw@linux.intel.com>
L:	linux-wireless@vger.kernel.org
W:	http://ipw2200.sourceforge.net
S:	Odd Fixes
S:	Orphan
F:	Documentation/networking/README.ipw2200
F:	drivers/net/wireless/ipw2x00/ipw2200.*

+11 −33
Original line number Diff line number Diff line
@@ -126,26 +126,6 @@ static unsigned lock_loop(unsigned numbytes, struct inbuf_t *inbuf)
	return numbytes;
}

/* set up next receive skb for data mode
 */
static void new_rcv_skb(struct bc_state *bcs)
{
	struct cardstate *cs = bcs->cs;
	unsigned short hw_hdr_len = cs->hw_hdr_len;

	if (bcs->ignore) {
		bcs->skb = NULL;
		return;
	}

	bcs->skb = dev_alloc_skb(SBUFSIZE + hw_hdr_len);
	if (bcs->skb == NULL) {
		dev_warn(cs->dev, "could not allocate new skb\n");
		return;
	}
	skb_reserve(bcs->skb, hw_hdr_len);
}

/* process a block of received bytes in HDLC data mode
 * (mstate != MS_LOCKED && !(inputstate & INS_command) && proto2 == L2_HDLC)
 * Collect HDLC frames, undoing byte stuffing and watching for DLE escapes.
@@ -159,8 +139,8 @@ static unsigned hdlc_loop(unsigned numbytes, struct inbuf_t *inbuf)
	struct cardstate *cs = inbuf->cs;
	struct bc_state *bcs = cs->bcs;
	int inputstate = bcs->inputstate;
	__u16 fcs = bcs->fcs;
	struct sk_buff *skb = bcs->skb;
	__u16 fcs = bcs->rx_fcs;
	struct sk_buff *skb = bcs->rx_skb;
	unsigned char *src = inbuf->data + inbuf->head;
	unsigned procbytes = 0;
	unsigned char c;
@@ -245,8 +225,7 @@ static unsigned hdlc_loop(unsigned numbytes, struct inbuf_t *inbuf)

				/* prepare reception of next frame */
				inputstate &= ~INS_have_data;
				new_rcv_skb(bcs);
				skb = bcs->skb;
				skb = gigaset_new_rx_skb(bcs);
			} else {
				/* empty frame (7E 7E) */
#ifdef CONFIG_GIGASET_DEBUG
@@ -255,8 +234,7 @@ static unsigned hdlc_loop(unsigned numbytes, struct inbuf_t *inbuf)
				if (!skb) {
					/* skipped (?) */
					gigaset_isdn_rcv_err(bcs);
					new_rcv_skb(bcs);
					skb = bcs->skb;
					skb = gigaset_new_rx_skb(bcs);
				}
			}

@@ -279,11 +257,11 @@ static unsigned hdlc_loop(unsigned numbytes, struct inbuf_t *inbuf)
#endif
		inputstate |= INS_have_data;
		if (skb) {
			if (skb->len == SBUFSIZE) {
			if (skb->len >= bcs->rx_bufsize) {
				dev_warn(cs->dev, "received packet too long\n");
				dev_kfree_skb_any(skb);
				/* skip remainder of packet */
				bcs->skb = skb = NULL;
				bcs->rx_skb = skb = NULL;
			} else {
				*__skb_put(skb, 1) = c;
				fcs = crc_ccitt_byte(fcs, c);
@@ -292,7 +270,7 @@ static unsigned hdlc_loop(unsigned numbytes, struct inbuf_t *inbuf)
	}

	bcs->inputstate = inputstate;
	bcs->fcs = fcs;
	bcs->rx_fcs = fcs;
	return procbytes;
}

@@ -308,18 +286,18 @@ static unsigned iraw_loop(unsigned numbytes, struct inbuf_t *inbuf)
	struct cardstate *cs = inbuf->cs;
	struct bc_state *bcs = cs->bcs;
	int inputstate = bcs->inputstate;
	struct sk_buff *skb = bcs->skb;
	struct sk_buff *skb = bcs->rx_skb;
	unsigned char *src = inbuf->data + inbuf->head;
	unsigned procbytes = 0;
	unsigned char c;

	if (!skb) {
		/* skip this block */
		new_rcv_skb(bcs);
		gigaset_new_rx_skb(bcs);
		return numbytes;
	}

	while (procbytes < numbytes && skb->len < SBUFSIZE) {
	while (procbytes < numbytes && skb->len < bcs->rx_bufsize) {
		c = *src++;
		procbytes++;

@@ -343,7 +321,7 @@ static unsigned iraw_loop(unsigned numbytes, struct inbuf_t *inbuf)
	if (inputstate & INS_have_data) {
		gigaset_skb_rcvd(bcs, skb);
		inputstate &= ~INS_have_data;
		new_rcv_skb(bcs);
		gigaset_new_rx_skb(bcs);
	}

	bcs->inputstate = inputstate;
+285 −120

File changed.

Preview size limit exceeded, changes collapsed.

+12 −24

File changed.

Preview size limit exceeded, changes collapsed.

+1 −3
Original line number Diff line number Diff line
@@ -282,9 +282,7 @@ struct reply_t gigaset_tab_cid[] =
/* dial */
{EV_DIAL,	 -1,  -1, -1,			 -1, -1, {ACT_DIAL} },
{RSP_INIT,	  0,   0, SEQ_DIAL,		601,  5, {ACT_CMD+AT_BC} },
{RSP_OK,	601, 601, -1,			602,  5, {ACT_CMD+AT_HLC} },
{RSP_NULL,	602, 602, -1,			603,  5, {ACT_CMD+AT_PROTO} },
{RSP_OK,	602, 602, -1,			603,  5, {ACT_CMD+AT_PROTO} },
{RSP_OK,	601, 601, -1,			603,  5, {ACT_CMD+AT_PROTO} },
{RSP_OK,	603, 603, -1,			604,  5, {ACT_CMD+AT_TYPE} },
{RSP_OK,	604, 604, -1,			605,  5, {ACT_CMD+AT_MSN} },
{RSP_NULL,	605, 605, -1,			606,  5, {ACT_CMD+AT_CLIP} },
Loading