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

Commit 8c27eba5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/net-2.6: (41 commits)
  [XFRM]: Fix leak of expired xfrm_states
  [ATM]: [he] initialize lock and tasklet earlier
  [IPV4]: Remove bogus ifdef mess in arp_process
  [SKBUFF]: Free old skb properly in skb_morph
  [IPV4]: Fix memory leak in inet_hashtables.h when NUMA is on
  [IPSEC]: Temporarily remove locks around copying of non-atomic fields
  [TCP] MTUprobe: Cleanup send queue check (no need to loop)
  [TCP]: MTUprobe: receiver window & data available checks fixed
  [MAINTAINERS]: tlan list is subscribers-only
  [SUNRPC]: Remove SPIN_LOCK_UNLOCKED
  [SUNRPC]: Make xprtsock.c:xs_setup_{udp,tcp}() static
  [PFKEY]: Sending an SADB_GET responds with an SADB_GET
  [IRDA]: Compilation for CONFIG_INET=n case
  [IPVS]: Fix compiler warning about unused register_ip_vs_protocol
  [ARP]: Fix arp reply when sender ip 0
  [IPV6] TCPMD5: Fix deleting key operation.
  [IPV6] TCPMD5: Check return value of tcp_alloc_md5sig_pool().
  [IPV4] TCPMD5: Use memmove() instead of memcpy() because we have overlaps.
  [IPV4] TCPMD5: Omit redundant NULL check for kfree() argument.
  ieee80211: Stop net_ratelimit/IEEE80211_DEBUG_DROP log pollution
  ...
parents 8912858b 5dba4797
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3725,7 +3725,7 @@ S: Maintained
TLAN NETWORK DRIVER
P:	Samuel Chessman
M:	chessman@tux.org
L:	tlan-devel@lists.sourceforge.net
L:	tlan-devel@lists.sourceforge.net (subscribers-only)
W:	http://sourceforge.net/projects/tlan/
S:	Maintained

+5 −5
Original line number Diff line number Diff line
@@ -394,6 +394,11 @@ he_init_one(struct pci_dev *pci_dev, const struct pci_device_id *pci_ent)
	he_dev->atm_dev->dev_data = he_dev;
	atm_dev->dev_data = he_dev;
	he_dev->number = atm_dev->number;
#ifdef USE_TASKLET
	tasklet_init(&he_dev->tasklet, he_tasklet, (unsigned long) he_dev);
#endif
	spin_lock_init(&he_dev->global_lock);

	if (he_start(atm_dev)) {
		he_stop(he_dev);
		err = -ENODEV;
@@ -1173,11 +1178,6 @@ he_start(struct atm_dev *dev)
	if ((err = he_init_irq(he_dev)) != 0)
		return err;

#ifdef USE_TASKLET
	tasklet_init(&he_dev->tasklet, he_tasklet, (unsigned long) he_dev);
#endif
	spin_lock_init(&he_dev->global_lock);

	/* 4.11 enable pci bus controller state machines */
	host_cntl |= (OUTFF_ENB | CMDFF_ENB |
				QUICK_RD_RETRY | QUICK_WR_RETRY | PERR_INT_ENB);
+3 −4
Original line number Diff line number Diff line
@@ -1032,7 +1032,7 @@ static void rt2500usb_write_tx_desc(struct rt2x00_dev *rt2x00dev,
}

static int rt2500usb_get_tx_data_len(struct rt2x00_dev *rt2x00dev,
				     int maxpacket, struct sk_buff *skb)
				     struct sk_buff *skb)
{
	int length;

@@ -1041,7 +1041,7 @@ static int rt2500usb_get_tx_data_len(struct rt2x00_dev *rt2x00dev,
	 * but it must _not_ be a multiple of the USB packet size.
	 */
	length = roundup(skb->len, 2);
	length += (2 * !(length % maxpacket));
	length += (2 * !(length % rt2x00dev->usb_maxpacket));

	return length;
}
@@ -1643,7 +1643,6 @@ static int rt2500usb_beacon_update(struct ieee80211_hw *hw,
	struct data_entry *beacon;
	struct data_entry *guardian;
	int pipe = usb_sndbulkpipe(usb_dev, 1);
	int max_packet = usb_maxpacket(usb_dev, pipe, 1);
	int length;

	/*
@@ -1672,7 +1671,7 @@ static int rt2500usb_beacon_update(struct ieee80211_hw *hw,
							 ring->desc_size),
				skb->len - ring->desc_size, control);

	length = rt2500usb_get_tx_data_len(rt2x00dev, max_packet, skb);
	length = rt2500usb_get_tx_data_len(rt2x00dev, skb);

	usb_fill_bulk_urb(beacon->priv, usb_dev, pipe,
			  skb->data, length, rt2500usb_beacondone, beacon);
+6 −1
Original line number Diff line number Diff line
@@ -418,7 +418,7 @@ struct rt2x00lib_ops {
	int (*write_tx_data) (struct rt2x00_dev *rt2x00dev,
			      struct data_ring *ring, struct sk_buff *skb,
			      struct ieee80211_tx_control *control);
	int (*get_tx_data_len) (struct rt2x00_dev *rt2x00dev, int maxpacket,
	int (*get_tx_data_len) (struct rt2x00_dev *rt2x00dev,
				struct sk_buff *skb);
	void (*kick_tx_queue) (struct rt2x00_dev *rt2x00dev,
			       unsigned int queue);
@@ -598,6 +598,11 @@ struct rt2x00_dev {
	 */
	u32 *rf;

	/*
	 * USB Max frame size (for rt2500usb & rt73usb).
	 */
	u16 usb_maxpacket;

	/*
	 * Current TX power value.
	 */
+6 −3
Original line number Diff line number Diff line
@@ -159,7 +159,6 @@ int rt2x00usb_write_tx_data(struct rt2x00_dev *rt2x00dev,
	    interface_to_usbdev(rt2x00dev_usb(rt2x00dev));
	struct data_entry *entry = rt2x00_get_data_entry(ring);
	int pipe = usb_sndbulkpipe(usb_dev, 1);
	int max_packet = usb_maxpacket(usb_dev, pipe, 1);
	u32 length;

	if (rt2x00_ring_full(ring)) {
@@ -194,8 +193,7 @@ int rt2x00usb_write_tx_data(struct rt2x00_dev *rt2x00dev,
	 * length of the data to usb_fill_bulk_urb. Pass the skb
	 * to the driver to determine what the length should be.
	 */
	length = rt2x00dev->ops->lib->get_tx_data_len(rt2x00dev,
						      max_packet, skb);
	length = rt2x00dev->ops->lib->get_tx_data_len(rt2x00dev, skb);

	/*
	 * Initialize URB and send the frame to the device.
@@ -490,6 +488,11 @@ int rt2x00usb_probe(struct usb_interface *usb_intf,
	rt2x00dev->ops = ops;
	rt2x00dev->hw = hw;

	rt2x00dev->usb_maxpacket =
	    usb_maxpacket(usb_dev, usb_sndbulkpipe(usb_dev, 1), 1);
	if (!rt2x00dev->usb_maxpacket)
		rt2x00dev->usb_maxpacket = 1;

	retval = rt2x00usb_alloc_reg(rt2x00dev);
	if (retval)
		goto exit_free_device;
Loading