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

Commit b69bc396 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge commit 'v2.6.29-rc5' into x86/apic

parents c466ed2e d2f8d7ee
Loading
Loading
Loading
Loading
+2 −4
Original line number Original line Diff line number Diff line
@@ -137,7 +137,7 @@ static void cn_test_timer_func(unsigned long __data)


		memcpy(m + 1, data, m->len);
		memcpy(m + 1, data, m->len);


		cn_netlink_send(m, 0, gfp_any());
		cn_netlink_send(m, 0, GFP_ATOMIC);
		kfree(m);
		kfree(m);
	}
	}


@@ -160,10 +160,8 @@ static int cn_test_init(void)
		goto err_out;
		goto err_out;
	}
	}


	init_timer(&cn_test_timer);
	setup_timer(&cn_test_timer, cn_test_timer_func, 0);
	cn_test_timer.function = cn_test_timer_func;
	cn_test_timer.expires = jiffies + HZ;
	cn_test_timer.expires = jiffies + HZ;
	cn_test_timer.data = 0;
	add_timer(&cn_test_timer);
	add_timer(&cn_test_timer);


	return 0;
	return 0;
+1 −1
Original line number Original line Diff line number Diff line
VERSION = 2
VERSION = 2
PATCHLEVEL = 6
PATCHLEVEL = 6
SUBLEVEL = 29
SUBLEVEL = 29
EXTRAVERSION = -rc4
EXTRAVERSION = -rc5
NAME = Erotic Pickled Herring
NAME = Erotic Pickled Herring


# *DOCUMENTATION*
# *DOCUMENTATION*
+2 −2
Original line number Original line Diff line number Diff line
@@ -2519,8 +2519,8 @@ fore200e_load_and_start_fw(struct fore200e* fore200e)
	return err;
	return err;


    sprintf(buf, "%s%s", fore200e->bus->proc_name, FW_EXT);
    sprintf(buf, "%s%s", fore200e->bus->proc_name, FW_EXT);
    if (request_firmware(&firmware, buf, device) == 1) {
    if ((err = request_firmware(&firmware, buf, device)) < 0) {
	printk(FORE200E "missing %s firmware image\n", fore200e->bus->model_name);
	printk(FORE200E "problem loading firmware image %s\n", fore200e->bus->model_name);
	return err;
	return err;
    }
    }


+16 −10
Original line number Original line Diff line number Diff line
@@ -493,21 +493,27 @@ static bool receive_pcb(struct net_device *dev, pcb_struct * pcb)
	}
	}
	/* read the data */
	/* read the data */
	spin_lock_irqsave(&adapter->lock, flags);
	spin_lock_irqsave(&adapter->lock, flags);
	i = 0;
	for (i = 0; i < MAX_PCB_DATA; i++) {
	do {
		for (j = 0; j < 20000; j++) {
		j = 0;
			stat = get_status(dev->base_addr);
		while (((stat = get_status(dev->base_addr)) & ACRF) == 0 && j++ < 20000);
			if (stat & ACRF)
		pcb->data.raw[i++] = inb_command(dev->base_addr);
				break;
		if (i > MAX_PCB_DATA)
		}
			INVALID_PCB_MSG(i);
		pcb->data.raw[i] = inb_command(dev->base_addr);
	} while ((stat & ASF_PCB_MASK) != ASF_PCB_END && j < 20000);
		if ((stat & ASF_PCB_MASK) == ASF_PCB_END || j >= 20000)
			break;
	}
	spin_unlock_irqrestore(&adapter->lock, flags);
	spin_unlock_irqrestore(&adapter->lock, flags);
	if (i >= MAX_PCB_DATA) {
		INVALID_PCB_MSG(i);
		return false;
	}
	if (j >= 20000) {
	if (j >= 20000) {
		TIMEOUT_MSG(__LINE__);
		TIMEOUT_MSG(__LINE__);
		return false;
		return false;
	}
	}
	/* woops, the last "data" byte was really the length! */
	/* the last "data" byte was really the length! */
	total_length = pcb->data.raw[--i];
	total_length = pcb->data.raw[i];


	/* safety check total length vs data length */
	/* safety check total length vs data length */
	if (total_length != (pcb->length + 2)) {
	if (total_length != (pcb->length + 2)) {
+22 −14
Original line number Original line Diff line number Diff line
/* bnx2.c: Broadcom NX2 network driver.
/* bnx2.c: Broadcom NX2 network driver.
 *
 *
 * Copyright (c) 2004-2008 Broadcom Corporation
 * Copyright (c) 2004-2009 Broadcom Corporation
 *
 *
 * This program is free software; you can redistribute it and/or modify
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * it under the terms of the GNU General Public License as published by
@@ -57,8 +57,8 @@


#define DRV_MODULE_NAME		"bnx2"
#define DRV_MODULE_NAME		"bnx2"
#define PFX DRV_MODULE_NAME	": "
#define PFX DRV_MODULE_NAME	": "
#define DRV_MODULE_VERSION	"1.9.0"
#define DRV_MODULE_VERSION	"1.9.2"
#define DRV_MODULE_RELDATE	"Dec 16, 2008"
#define DRV_MODULE_RELDATE	"Feb 11, 2009"


#define RUN_AT(x) (jiffies + (x))
#define RUN_AT(x) (jiffies + (x))


@@ -2910,18 +2910,8 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)


		rx_hdr = (struct l2_fhdr *) skb->data;
		rx_hdr = (struct l2_fhdr *) skb->data;
		len = rx_hdr->l2_fhdr_pkt_len;
		len = rx_hdr->l2_fhdr_pkt_len;
		status = rx_hdr->l2_fhdr_status;


		if ((status = rx_hdr->l2_fhdr_status) &
			(L2_FHDR_ERRORS_BAD_CRC |
			L2_FHDR_ERRORS_PHY_DECODE |
			L2_FHDR_ERRORS_ALIGNMENT |
			L2_FHDR_ERRORS_TOO_SHORT |
			L2_FHDR_ERRORS_GIANT_FRAME)) {

			bnx2_reuse_rx_skb(bp, rxr, skb, sw_ring_cons,
					  sw_ring_prod);
			goto next_rx;
		}
		hdr_len = 0;
		hdr_len = 0;
		if (status & L2_FHDR_STATUS_SPLIT) {
		if (status & L2_FHDR_STATUS_SPLIT) {
			hdr_len = rx_hdr->l2_fhdr_ip_xsum;
			hdr_len = rx_hdr->l2_fhdr_ip_xsum;
@@ -2931,6 +2921,24 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
			pg_ring_used = 1;
			pg_ring_used = 1;
		}
		}


		if (unlikely(status & (L2_FHDR_ERRORS_BAD_CRC |
				       L2_FHDR_ERRORS_PHY_DECODE |
				       L2_FHDR_ERRORS_ALIGNMENT |
				       L2_FHDR_ERRORS_TOO_SHORT |
				       L2_FHDR_ERRORS_GIANT_FRAME))) {

			bnx2_reuse_rx_skb(bp, rxr, skb, sw_ring_cons,
					  sw_ring_prod);
			if (pg_ring_used) {
				int pages;

				pages = PAGE_ALIGN(len - hdr_len) >> PAGE_SHIFT;

				bnx2_reuse_rx_skb_pages(bp, rxr, NULL, pages);
			}
			goto next_rx;
		}

		len -= 4;
		len -= 4;


		if (len <= bp->rx_copy_thresh) {
		if (len <= bp->rx_copy_thresh) {
Loading