mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 05:02:12 +00:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (47 commits) rose: Wrong list_lock argument in rose_node seqops netns: Fix reassembly timer to use the right namespace netns: Fix device renaming for sysfs bnx2: Update version to 1.7.5. bnx2: Update RV2P firmware for 5709. bnx2: Zero out context memory for 5709. bnx2: Fix register test on 5709. bnx2: Fix remote PHY initial link state. bnx2: Refine remote PHY locking. bridge: forwarding table information for >256 devices tg3: Update version to 3.92 tg3: Add link state reporting to UMP firmware tg3: Fix ethtool loopback test for 5761 BX devices tg3: Fix 5761 NVRAM sizes tg3: Use constant 500KHz MI clock on adapters with a CPMU hci_usb.h: fix hard-to-trigger race dccp: ccid2.c, ccid3.c use clamp(), clamp_t() net: remove NR_CPUS arrays in net/core/dev.c net: use get/put_unaligned_* helpers bluetooth: use get/put_unaligned_* helpers ...
This commit is contained in:
commit
4f9faaace2
@ -70,7 +70,8 @@ static inline void _urb_queue_head(struct _urb_queue *q, struct _urb *_urb)
|
||||
{
|
||||
unsigned long flags;
|
||||
spin_lock_irqsave(&q->lock, flags);
|
||||
list_add(&_urb->list, &q->head); _urb->queue = q;
|
||||
/* _urb_unlink needs to know which spinlock to use, thus mb(). */
|
||||
_urb->queue = q; mb(); list_add(&_urb->list, &q->head);
|
||||
spin_unlock_irqrestore(&q->lock, flags);
|
||||
}
|
||||
|
||||
@ -78,19 +79,23 @@ static inline void _urb_queue_tail(struct _urb_queue *q, struct _urb *_urb)
|
||||
{
|
||||
unsigned long flags;
|
||||
spin_lock_irqsave(&q->lock, flags);
|
||||
list_add_tail(&_urb->list, &q->head); _urb->queue = q;
|
||||
/* _urb_unlink needs to know which spinlock to use, thus mb(). */
|
||||
_urb->queue = q; mb(); list_add_tail(&_urb->list, &q->head);
|
||||
spin_unlock_irqrestore(&q->lock, flags);
|
||||
}
|
||||
|
||||
static inline void _urb_unlink(struct _urb *_urb)
|
||||
{
|
||||
struct _urb_queue *q = _urb->queue;
|
||||
struct _urb_queue *q;
|
||||
unsigned long flags;
|
||||
if (q) {
|
||||
spin_lock_irqsave(&q->lock, flags);
|
||||
list_del(&_urb->list); _urb->queue = NULL;
|
||||
spin_unlock_irqrestore(&q->lock, flags);
|
||||
}
|
||||
|
||||
mb();
|
||||
q = _urb->queue;
|
||||
/* If q is NULL, it will die at easy-to-debug NULL pointer dereference.
|
||||
No need to BUG(). */
|
||||
spin_lock_irqsave(&q->lock, flags);
|
||||
list_del(&_urb->list); _urb->queue = NULL;
|
||||
spin_unlock_irqrestore(&q->lock, flags);
|
||||
}
|
||||
|
||||
struct hci_usb {
|
||||
|
@ -34,7 +34,7 @@ struct net_device *__alloc_ei_netdev(int size)
|
||||
|
||||
void NS8390_init(struct net_device *dev, int startp)
|
||||
{
|
||||
return __NS8390_init(dev, startp);
|
||||
__NS8390_init(dev, startp);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(ei_open);
|
||||
|
@ -56,8 +56,8 @@
|
||||
|
||||
#define DRV_MODULE_NAME "bnx2"
|
||||
#define PFX DRV_MODULE_NAME ": "
|
||||
#define DRV_MODULE_VERSION "1.7.4"
|
||||
#define DRV_MODULE_RELDATE "February 18, 2008"
|
||||
#define DRV_MODULE_VERSION "1.7.5"
|
||||
#define DRV_MODULE_RELDATE "April 29, 2008"
|
||||
|
||||
#define RUN_AT(x) (jiffies + (x))
|
||||
|
||||
@ -1631,8 +1631,10 @@ bnx2_set_default_remote_link(struct bnx2 *bp)
|
||||
static void
|
||||
bnx2_set_default_link(struct bnx2 *bp)
|
||||
{
|
||||
if (bp->phy_flags & BNX2_PHY_FLAG_REMOTE_PHY_CAP)
|
||||
return bnx2_set_default_remote_link(bp);
|
||||
if (bp->phy_flags & BNX2_PHY_FLAG_REMOTE_PHY_CAP) {
|
||||
bnx2_set_default_remote_link(bp);
|
||||
return;
|
||||
}
|
||||
|
||||
bp->autoneg = AUTONEG_SPEED | AUTONEG_FLOW_CTRL;
|
||||
bp->req_line_speed = 0;
|
||||
@ -1715,7 +1717,6 @@ bnx2_remote_phy_event(struct bnx2 *bp)
|
||||
break;
|
||||
}
|
||||
|
||||
spin_lock(&bp->phy_lock);
|
||||
bp->flow_ctrl = 0;
|
||||
if ((bp->autoneg & (AUTONEG_SPEED | AUTONEG_FLOW_CTRL)) !=
|
||||
(AUTONEG_SPEED | AUTONEG_FLOW_CTRL)) {
|
||||
@ -1737,7 +1738,6 @@ bnx2_remote_phy_event(struct bnx2 *bp)
|
||||
if (old_port != bp->phy_port)
|
||||
bnx2_set_default_link(bp);
|
||||
|
||||
spin_unlock(&bp->phy_lock);
|
||||
}
|
||||
if (bp->link_up != link_up)
|
||||
bnx2_report_link(bp);
|
||||
@ -2222,6 +2222,11 @@ bnx2_init_5709_context(struct bnx2 *bp)
|
||||
for (i = 0; i < bp->ctx_pages; i++) {
|
||||
int j;
|
||||
|
||||
if (bp->ctx_blk[i])
|
||||
memset(bp->ctx_blk[i], 0, BCM_PAGE_SIZE);
|
||||
else
|
||||
return -ENOMEM;
|
||||
|
||||
REG_WR(bp, BNX2_CTX_HOST_PAGE_TBL_DATA0,
|
||||
(bp->ctx_blk_mapping[i] & 0xffffffff) |
|
||||
BNX2_CTX_HOST_PAGE_TBL_DATA0_VALID);
|
||||
@ -2445,14 +2450,15 @@ bnx2_phy_event_is_set(struct bnx2 *bp, struct bnx2_napi *bnapi, u32 event)
|
||||
static void
|
||||
bnx2_phy_int(struct bnx2 *bp, struct bnx2_napi *bnapi)
|
||||
{
|
||||
if (bnx2_phy_event_is_set(bp, bnapi, STATUS_ATTN_BITS_LINK_STATE)) {
|
||||
spin_lock(&bp->phy_lock);
|
||||
spin_lock(&bp->phy_lock);
|
||||
|
||||
if (bnx2_phy_event_is_set(bp, bnapi, STATUS_ATTN_BITS_LINK_STATE))
|
||||
bnx2_set_link(bp);
|
||||
spin_unlock(&bp->phy_lock);
|
||||
}
|
||||
if (bnx2_phy_event_is_set(bp, bnapi, STATUS_ATTN_BITS_TIMER_ABORT))
|
||||
bnx2_set_remote_link(bp);
|
||||
|
||||
spin_unlock(&bp->phy_lock);
|
||||
|
||||
}
|
||||
|
||||
static inline u16
|
||||
@ -3174,6 +3180,12 @@ load_rv2p_fw(struct bnx2 *bp, __le32 *rv2p_code, u32 rv2p_code_len,
|
||||
int i;
|
||||
u32 val;
|
||||
|
||||
if (rv2p_proc == RV2P_PROC2 && CHIP_NUM(bp) == CHIP_NUM_5709) {
|
||||
val = le32_to_cpu(rv2p_code[XI_RV2P_PROC2_MAX_BD_PAGE_LOC]);
|
||||
val &= ~XI_RV2P_PROC2_BD_PAGE_SIZE_MSK;
|
||||
val |= XI_RV2P_PROC2_BD_PAGE_SIZE;
|
||||
rv2p_code[XI_RV2P_PROC2_MAX_BD_PAGE_LOC] = cpu_to_le32(val);
|
||||
}
|
||||
|
||||
for (i = 0; i < rv2p_code_len; i += 8) {
|
||||
REG_WR(bp, BNX2_RV2P_INSTR_HIGH, le32_to_cpu(*rv2p_code));
|
||||
@ -4215,13 +4227,6 @@ bnx2_init_remote_phy(struct bnx2 *bp)
|
||||
if (netif_running(bp->dev)) {
|
||||
u32 sig;
|
||||
|
||||
if (val & BNX2_LINK_STATUS_LINK_UP) {
|
||||
bp->link_up = 1;
|
||||
netif_carrier_on(bp->dev);
|
||||
} else {
|
||||
bp->link_up = 0;
|
||||
netif_carrier_off(bp->dev);
|
||||
}
|
||||
sig = BNX2_DRV_ACK_CAP_SIGNATURE |
|
||||
BNX2_FW_CAP_REMOTE_PHY_CAPABLE;
|
||||
bnx2_shmem_wr(bp, BNX2_DRV_ACK_CAP_MB, sig);
|
||||
@ -4878,6 +4883,8 @@ bnx2_init_nic(struct bnx2 *bp)
|
||||
spin_lock_bh(&bp->phy_lock);
|
||||
bnx2_init_phy(bp);
|
||||
bnx2_set_link(bp);
|
||||
if (bp->phy_flags & BNX2_PHY_FLAG_REMOTE_PHY_CAP)
|
||||
bnx2_remote_phy_event(bp);
|
||||
spin_unlock_bh(&bp->phy_lock);
|
||||
return 0;
|
||||
}
|
||||
@ -4920,7 +4927,7 @@ bnx2_test_registers(struct bnx2 *bp)
|
||||
{ 0x0c08, BNX2_FL_NOT_5709, 0x0f0ff073, 0x00000000 },
|
||||
|
||||
{ 0x1000, 0, 0x00000000, 0x00000001 },
|
||||
{ 0x1004, 0, 0x00000000, 0x000f0001 },
|
||||
{ 0x1004, BNX2_FL_NOT_5709, 0x00000000, 0x000f0001 },
|
||||
|
||||
{ 0x1408, 0, 0x01c00800, 0x00000000 },
|
||||
{ 0x149c, 0, 0x8000ffff, 0x00000000 },
|
||||
|
@ -3173,251 +3173,267 @@ static struct fw_info bnx2_rxp_fw_09 = {
|
||||
};
|
||||
|
||||
static u8 bnx2_xi_rv2p_proc1[] = {
|
||||
/* Date: 01/14/2008 15:44 */
|
||||
0xc5, 0x56, 0xcd, 0x6b, 0x13, 0x51, 0x10, 0x9f, 0xdd, 0x7c, 0x6c, 0x9a,
|
||||
0x6c, 0xb2, 0xa1, 0x6a, 0x09, 0x35, 0xd2, 0x58, 0x7a, 0x30, 0x6d, 0xc4,
|
||||
0x56, 0x3d, 0x78, 0x28, 0x54, 0x7a, 0x11, 0xac, 0xa7, 0x1e, 0x44, 0xc4,
|
||||
0xcf, 0x20, 0x05, 0xf5, 0x8f, 0x70, 0x51, 0xab, 0x20, 0x78, 0x28, 0x68,
|
||||
0xb4, 0x7e, 0xa0, 0x27, 0x15, 0xf1, 0x90, 0x1c, 0x04, 0x05, 0x45, 0x50,
|
||||
0xf0, 0xa4, 0x37, 0x41, 0xbd, 0x54, 0xc5, 0x0f, 0xf0, 0xe2, 0x45, 0x8f,
|
||||
0xda, 0xf8, 0xde, 0xcc, 0xef, 0xd9, 0xdd, 0x4d, 0xd2, 0x14, 0x0f, 0x1a,
|
||||
0x68, 0x7f, 0xec, 0xdb, 0xdf, 0x9b, 0x37, 0xf3, 0x9b, 0x79, 0x33, 0x9b,
|
||||
0x27, 0x22, 0x9b, 0xfc, 0xc6, 0x80, 0x42, 0x72, 0xad, 0x58, 0x4a, 0x81,
|
||||
0x45, 0x74, 0xcf, 0x65, 0xf4, 0x37, 0x91, 0xfc, 0x46, 0x04, 0xfc, 0x91,
|
||||
0xbc, 0xfa, 0xff, 0x9d, 0x26, 0x4a, 0x1a, 0x63, 0x34, 0xb1, 0x5e, 0xe3,
|
||||
0x24, 0x3d, 0x29, 0x15, 0x14, 0xfe, 0x6a, 0x92, 0xaf, 0x9f, 0x87, 0xea,
|
||||
0x0f, 0x1a, 0x19, 0xb6, 0xfb, 0x0e, 0xfb, 0xdf, 0xc4, 0x04, 0xb7, 0x55,
|
||||
0x52, 0x62, 0x07, 0x48, 0x1b, 0xf3, 0x0c, 0xaf, 0xe6, 0xf4, 0x73, 0xd1,
|
||||
0xf2, 0x37, 0xe2, 0x7c, 0x5b, 0xd6, 0x17, 0xe6, 0x3c, 0xbd, 0x4e, 0xef,
|
||||
0x27, 0xf5, 0xb3, 0x97, 0x3e, 0xdd, 0x48, 0xb1, 0x5d, 0x79, 0xdf, 0x9b,
|
||||
0x3e, 0xcd, 0xfb, 0x5c, 0x4b, 0xec, 0xa9, 0x3f, 0xde, 0xbf, 0x55, 0xd9,
|
||||
0x81, 0xdf, 0x24, 0x76, 0x0e, 0x96, 0xf4, 0xfa, 0x76, 0xf0, 0xc6, 0xc1,
|
||||
0x2b, 0xb6, 0xf0, 0x16, 0xe6, 0x34, 0x3a, 0x54, 0xad, 0xe8, 0x78, 0x06,
|
||||
0x49, 0xe2, 0x49, 0xd0, 0x4c, 0xca, 0x15, 0x9d, 0x06, 0x84, 0xfd, 0x6e,
|
||||
0x58, 0xef, 0x57, 0xbe, 0x0d, 0x6b, 0xde, 0x82, 0x8a, 0xdb, 0xc4, 0x1b,
|
||||
0xe6, 0x39, 0x15, 0x63, 0x57, 0xf3, 0xde, 0x2a, 0x9e, 0x89, 0x2f, 0x18,
|
||||
0x57, 0x26, 0x10, 0x57, 0x24, 0xde, 0x96, 0xf8, 0x82, 0x7a, 0xa5, 0xda,
|
||||
0xf8, 0xaf, 0xcf, 0x51, 0xbe, 0xf0, 0x39, 0x49, 0xe8, 0x9c, 0x8c, 0xec,
|
||||
0x4b, 0x76, 0x88, 0xfb, 0x93, 0x35, 0xb3, 0x21, 0xec, 0x3f, 0x91, 0xb6,
|
||||
0xf7, 0x54, 0xf9, 0x8d, 0xf5, 0x72, 0x3b, 0x1d, 0x12, 0xd0, 0xe1, 0x31,
|
||||
0xe2, 0x9b, 0xa2, 0x21, 0xbb, 0xc0, 0xef, 0xe3, 0xbc, 0x7f, 0xad, 0xf2,
|
||||
0x47, 0xe3, 0x3a, 0xe0, 0x7a, 0xe0, 0x01, 0xe0, 0x7e, 0xe0, 0x1a, 0xe0,
|
||||
0x6a, 0xe0, 0x2a, 0x60, 0x2f, 0xf0, 0x32, 0x30, 0x0f, 0xf4, 0x80, 0x39,
|
||||
0xe0, 0x05, 0xa0, 0x0b, 0xcc, 0x00, 0x6b, 0xc0, 0xab, 0xc0, 0x14, 0xf0,
|
||||
0x28, 0xf0, 0x21, 0xf0, 0x31, 0xf0, 0x0b, 0xf0, 0x1c, 0xd0, 0xb1, 0x60,
|
||||
0x0f, 0xa8, 0x7e, 0x3e, 0xee, 0x47, 0x48, 0xa7, 0xeb, 0xa8, 0x7f, 0xad,
|
||||
0x33, 0xde, 0x97, 0x0d, 0x0f, 0xf9, 0x65, 0x9d, 0x2e, 0x83, 0xd7, 0x5b,
|
||||
0xbf, 0x19, 0xb9, 0x27, 0xa5, 0xae, 0xf7, 0x23, 0x9a, 0x37, 0x8f, 0xe3,
|
||||
0x39, 0xb4, 0xc3, 0xe3, 0x73, 0x72, 0x49, 0x59, 0x37, 0x6e, 0xed, 0xf1,
|
||||
0x04, 0x8f, 0xa4, 0x05, 0x3f, 0xa7, 0x7b, 0xd4, 0xff, 0x66, 0x73, 0x26,
|
||||
0x23, 0xcf, 0x87, 0xb3, 0x46, 0x67, 0x63, 0xc7, 0xf8, 0xd3, 0xcd, 0x8f,
|
||||
0x4e, 0xe7, 0x19, 0xbf, 0xba, 0x9d, 0x2b, 0x58, 0xb5, 0xc3, 0xf1, 0x5f,
|
||||
0x19, 0x15, 0x8c, 0x8f, 0x31, 0x54, 0xdc, 0x64, 0x5c, 0xe3, 0x56, 0xf7,
|
||||
0xb9, 0x39, 0x47, 0xa3, 0x5b, 0xa8, 0xf1, 0x7d, 0x89, 0x53, 0x2d, 0xa9,
|
||||
0xed, 0xfe, 0x6c, 0x9e, 0x17, 0x5e, 0xff, 0xe1, 0x97, 0x8c, 0x85, 0x2b,
|
||||
0x2f, 0x84, 0xff, 0xba, 0xe4, 0x32, 0xee, 0x1e, 0xa1, 0xc8, 0xcf, 0xbc,
|
||||
0x97, 0xfb, 0xe8, 0xb3, 0xdf, 0x3f, 0x2c, 0xbf, 0x61, 0xce, 0xc1, 0xbe,
|
||||
0xe3, 0x26, 0x8f, 0x79, 0xf6, 0x73, 0x90, 0xe4, 0x79, 0xba, 0x2c, 0xef,
|
||||
0xa7, 0xcb, 0xb8, 0xcf, 0x83, 0xe1, 0x7a, 0x90, 0x7b, 0x11, 0x43, 0xbe,
|
||||
0xf7, 0xe2, 0x5e, 0x44, 0xef, 0x71, 0xaa, 0x7e, 0x73, 0x2e, 0x58, 0x2f,
|
||||
0x05, 0xaa, 0x8e, 0xc1, 0x9f, 0x96, 0x3c, 0x9b, 0xbe, 0x6c, 0xea, 0x9d,
|
||||
0x97, 0xeb, 0x7e, 0x2c, 0xa4, 0xdf, 0x76, 0xaa, 0x04, 0xf3, 0x64, 0xb5,
|
||||
0xa9, 0x97, 0x6e, 0xe7, 0x84, 0xec, 0xe5, 0x54, 0x06, 0xa8, 0xb5, 0x8e,
|
||||
0x1d, 0xc4, 0x35, 0x81, 0x3a, 0x5e, 0xdb, 0x52, 0xc7, 0xa6, 0xdf, 0x4b,
|
||||
0x3d, 0x77, 0xea, 0x5f, 0x7f, 0xdf, 0xa7, 0x85, 0xe7, 0x07, 0xea, 0xd3,
|
||||
0xf4, 0x43, 0xe8, 0xe4, 0x30, 0xaf, 0xb8, 0x70, 0x5f, 0xf2, 0x26, 0xfd,
|
||||
0x5c, 0x15, 0xa3, 0x1f, 0xf6, 0xd3, 0x31, 0xf1, 0x0d, 0x04, 0xfb, 0xe7,
|
||||
0x50, 0x87, 0x7c, 0x05, 0xfb, 0x6e, 0x54, 0x97, 0x70, 0xdd, 0x4b, 0xfe,
|
||||
0xd3, 0xd0, 0xa9, 0xbf, 0x4b, 0x5f, 0xe8, 0x01, 0x6f, 0xcd, 0x32, 0x3c,
|
||||
0xb1, 0x3b, 0x59, 0x0e, 0xf6, 0x11, 0xaf, 0x89, 0xfe, 0x87, 0x7d, 0x7d,
|
||||
0xf5, 0x47, 0x1d, 0xf2, 0x30, 0xfe, 0x7f, 0xf3, 0x80, 0xf9, 0x52, 0xb4,
|
||||
0x24, 0x0f, 0x09, 0x5a, 0x99, 0xbe, 0x84, 0xf8, 0xa9, 0x83, 0xbe, 0x49,
|
||||
0xe8, 0xf0, 0x6d, 0x71, 0x79, 0x7d, 0x33, 0xe0, 0x7d, 0x0d, 0xf0, 0xb8,
|
||||
0x2e, 0xc6, 0xe5, 0xfe, 0x39, 0xd5, 0x2f, 0x11, 0xdd, 0xc6, 0x2a, 0xba,
|
||||
0xaf, 0x9c, 0xa0, 0x06, 0xe2, 0x7a, 0x1b, 0x8a, 0x2f, 0xab, 0xfc, 0x93,
|
||||
0xef, 0x84, 0x3b, 0x0d, 0xa3, 0x83, 0xbc, 0x2e, 0x55, 0x04, 0x6f, 0x33,
|
||||
0x3f, 0x1f, 0xd0, 0x23, 0xac, 0x9b, 0xe8, 0x91, 0xa7, 0x5b, 0x7f, 0xfa,
|
||||
0x8d, 0xc7, 0xf6, 0x46, 0xd1, 0xaf, 0x0f, 0xa1, 0x6f, 0x7e, 0x48, 0x4b,
|
||||
0x5f, 0xae, 0x4e, 0x71, 0xff, 0xa4, 0x3e, 0xf4, 0xcf, 0x6a, 0x56, 0x9e,
|
||||
0xfb, 0xb3, 0xf2, 0x1d, 0x36, 0xea, 0xb8, 0xcc, 0xeb, 0xcf, 0x0a, 0xf6,
|
||||
0x65, 0xf4, 0xbe, 0x02, 0x7d, 0xdc, 0xc5, 0xf4, 0xca, 0xbc, 0x2b, 0x7d,
|
||||
0x74, 0xfe, 0x05, 0xfa, 0xba, 0x67, 0x74, 0x42, 0xbc, 0x5b, 0xf4, 0x7a,
|
||||
0x1f, 0x7f, 0xf2, 0x2c, 0xe9, 0xab, 0x38, 0xc3, 0xe2, 0xdf, 0x0d, 0x78,
|
||||
0x5f, 0x32, 0xfb, 0x06, 0xb4, 0x9e, 0x4f, 0x16, 0xcd, 0xdc, 0x18, 0xdc,
|
||||
0xa1, 0xfd, 0xf1, 0x28, 0xe7, 0x48, 0x3e, 0x05, 0x15, 0xcf, 0x76, 0xf4,
|
||||
0xb6, 0xe2, 0xac, 0x2d, 0xcf, 0xb3, 0x27, 0xd9, 0xcc, 0xae, 0x59, 0xb3,
|
||||
0x3e, 0xc9, 0x05, 0x3a, 0x7d, 0xf7, 0x19, 0xaf, 0xe7, 0x1a, 0x31, 0x59,
|
||||
0x77, 0xa6, 0x8c, 0x1e, 0x1e, 0xc7, 0x57, 0x13, 0x3d, 0xf6, 0x5d, 0x14,
|
||||
0xdc, 0x4b, 0x3b, 0x19, 0xd3, 0x35, 0x57, 0xe6, 0xca, 0xbc, 0x9b, 0x62,
|
||||
0x24, 0xd6, 0xc3, 0xde, 0x2c, 0xf3, 0x21, 0x81, 0xbe, 0xde, 0x13, 0xc8,
|
||||
0x53, 0x74, 0xde, 0xae, 0x34, 0x5f, 0xc1, 0x39, 0x60, 0xe6, 0x43, 0xb4,
|
||||
0xdf, 0x67, 0x51, 0x67, 0xd7, 0xba, 0xd4, 0xa3, 0xe9, 0x9f, 0x97, 0x16,
|
||||
0xe5, 0x1e, 0xb4, 0x9b, 0xb3, 0x1a, 0x73, 0x1d, 0xbe, 0x0f, 0x8a, 0xa8,
|
||||
0x3f, 0x33, 0x0f, 0xdb, 0x7d, 0x07, 0x08, 0x7f, 0x65, 0xf3, 0x3f, 0xdf,
|
||||
0x61, 0xfe, 0xff, 0xb3, 0x39, 0x5f, 0x58, 0xca, 0xa3, 0xa9, 0xd3, 0x60,
|
||||
0x1e, 0x83, 0xf5, 0x1a, 0x9d, 0xc3, 0xcb, 0xcd, 0xdf, 0x1c, 0x74, 0x3e,
|
||||
0x06, 0x9d, 0xe3, 0x94, 0x88, 0xb1, 0x30, 0x6e, 0xfc, 0x14, 0xdb, 0xb5,
|
||||
0x67, 0x6d, 0xa6, 0xbb, 0x89, 0x33, 0x96, 0xc6, 0x9c, 0x7b, 0x46, 0x78,
|
||||
0x71, 0x59, 0x2f, 0x18, 0x3c, 0x7b, 0x4a, 0xbe, 0xfb, 0x6c, 0xfa, 0x0d,
|
||||
0x6d, 0x29, 0x98, 0xe1, 0x30, 0x0d, 0x00, 0x00, 0x00 };
|
||||
/* Date: 04/25/2008 22:02 */
|
||||
0xbd, 0x56, 0x4f, 0x68, 0x1c, 0x55, 0x18, 0xff, 0x76, 0x76, 0x77, 0x66,
|
||||
0x33, 0x3b, 0xbb, 0xb3, 0xd8, 0x34, 0x4c, 0xb7, 0x2b, 0x59, 0x83, 0x97,
|
||||
0xdd, 0x6c, 0x69, 0xa2, 0x15, 0x04, 0x53, 0x5a, 0x72, 0x09, 0xd8, 0x9e,
|
||||
0x02, 0xb5, 0x52, 0x84, 0xb6, 0x8b, 0xf4, 0x52, 0x5a, 0x28, 0x78, 0x11,
|
||||
0x84, 0x0e, 0x6d, 0x93, 0x82, 0xe8, 0x61, 0xc1, 0x06, 0x12, 0x44, 0xa3,
|
||||
0x07, 0x95, 0x60, 0x61, 0x07, 0x3c, 0x78, 0x10, 0x14, 0x15, 0x11, 0x6c,
|
||||
0x0f, 0x85, 0x88, 0xf6, 0xd2, 0x54, 0x4b, 0x0b, 0x1e, 0x5b, 0x3c, 0xd6,
|
||||
0x8c, 0xef, 0xfb, 0xf3, 0x92, 0x99, 0x97, 0x9d, 0x24, 0xa7, 0x2e, 0xb4,
|
||||
0x3f, 0xbe, 0x37, 0xdf, 0xbf, 0xf7, 0xfd, 0xf9, 0xbd, 0xd4, 0x00, 0xc0,
|
||||
0x82, 0x30, 0x1a, 0x55, 0x08, 0x65, 0x2b, 0x5f, 0x52, 0x90, 0x03, 0xf8,
|
||||
0x1a, 0xf8, 0x57, 0xf4, 0x48, 0x0e, 0x0f, 0x8a, 0x3c, 0xce, 0x10, 0x8e,
|
||||
0xd7, 0xd4, 0xff, 0x17, 0xe0, 0x48, 0x13, 0x31, 0x0f, 0x47, 0x5e, 0x40,
|
||||
0x3c, 0x0c, 0xdf, 0x37, 0x03, 0x85, 0xff, 0xc5, 0x10, 0xa2, 0x3c, 0xdc,
|
||||
0xff, 0x36, 0x2a, 0x93, 0xff, 0x35, 0xb1, 0xff, 0x33, 0xcf, 0xf8, 0x6a,
|
||||
0xa7, 0xc4, 0x7e, 0x04, 0xe1, 0x40, 0x8d, 0x60, 0xb5, 0x87, 0xf2, 0x89,
|
||||
0x13, 0x60, 0xa3, 0x9f, 0x4f, 0x94, 0x02, 0xca, 0x8d, 0x5c, 0x78, 0x40,
|
||||
0xf2, 0xb2, 0x58, 0xef, 0x5e, 0xcf, 0xc7, 0x73, 0xb8, 0x3f, 0x8d, 0xf2,
|
||||
0x3e, 0xf7, 0x5a, 0x0f, 0x31, 0x80, 0x73, 0x25, 0x8f, 0xef, 0x33, 0xca,
|
||||
0x6e, 0xd7, 0xda, 0x68, 0xa7, 0x74, 0xdb, 0xe2, 0xb7, 0x88, 0x7e, 0xff,
|
||||
0x89, 0xd9, 0x2f, 0xfa, 0x4b, 0xfa, 0x69, 0x28, 0x3f, 0x78, 0x6e, 0x4b,
|
||||
0x5e, 0xb6, 0x91, 0x97, 0xad, 0xf2, 0x90, 0x3a, 0x80, 0xce, 0x03, 0x71,
|
||||
0xaf, 0x8a, 0x8b, 0x7e, 0x1f, 0xcb, 0xbd, 0x01, 0x4e, 0x37, 0xc5, 0x7f,
|
||||
0x84, 0xe8, 0xe5, 0xd8, 0x9f, 0xfa, 0x27, 0xf7, 0xd8, 0xea, 0x47, 0xd7,
|
||||
0x29, 0x9d, 0xbf, 0xd3, 0xd1, 0xdf, 0x75, 0x3f, 0x30, 0xce, 0x1d, 0x15,
|
||||
0x27, 0xa9, 0x0f, 0x3b, 0xe8, 0xff, 0xa6, 0xf4, 0xd3, 0x7e, 0xf9, 0xfc,
|
||||
0xd7, 0xcd, 0xf3, 0xd6, 0xa0, 0xba, 0x15, 0x8d, 0xba, 0xfd, 0x28, 0x75,
|
||||
0x9b, 0x81, 0x17, 0xad, 0x80, 0xf4, 0x0a, 0x80, 0xb8, 0x5f, 0x25, 0x80,
|
||||
0xf8, 0xbc, 0xe0, 0x45, 0xc1, 0xcf, 0x04, 0x97, 0x05, 0xf7, 0x0a, 0x0e,
|
||||
0x0b, 0xee, 0x11, 0x7c, 0x4e, 0xf0, 0x6f, 0xc1, 0x9a, 0xa0, 0x2f, 0x58,
|
||||
0x15, 0xbc, 0x27, 0xe8, 0x09, 0x96, 0x0d, 0x7f, 0x75, 0xc1, 0x92, 0x60,
|
||||
0x24, 0xf8, 0x9a, 0x61, 0xef, 0xe6, 0x18, 0x57, 0x45, 0x3e, 0x28, 0xf2,
|
||||
0x49, 0x91, 0xb1, 0xa0, 0x32, 0xf7, 0xa9, 0x7a, 0x7d, 0xbe, 0xd1, 0xdf,
|
||||
0xd5, 0x9e, 0x7c, 0x6f, 0x69, 0xbd, 0x12, 0xd5, 0x0f, 0xda, 0x49, 0xfd,
|
||||
0x8f, 0xb7, 0xd1, 0x67, 0xb5, 0xe9, 0xd6, 0x20, 0xbb, 0x1b, 0x31, 0xe7,
|
||||
0xf1, 0x91, 0xd8, 0x07, 0xfd, 0xef, 0x32, 0xf6, 0x68, 0xaa, 0x63, 0xce,
|
||||
0xd7, 0xa0, 0x3d, 0x7a, 0x45, 0xf6, 0xe8, 0xd0, 0x96, 0xf9, 0xe5, 0x39,
|
||||
0x3d, 0x2a, 0xf6, 0x53, 0x32, 0x9f, 0x8d, 0x0c, 0xbd, 0x30, 0xb1, 0xaf,
|
||||
0x14, 0x2f, 0x63, 0x1f, 0x6e, 0xe6, 0xba, 0x1d, 0x8c, 0x5b, 0x94, 0xb8,
|
||||
0x59, 0xf9, 0xa1, 0xbd, 0xcc, 0x6f, 0x4b, 0xcf, 0x71, 0x7a, 0x7e, 0x79,
|
||||
0x0e, 0x6d, 0x63, 0x0e, 0x2f, 0xed, 0xd0, 0x87, 0xb2, 0x51, 0xcf, 0xf3,
|
||||
0x4a, 0x9f, 0x45, 0xcb, 0x62, 0x5c, 0x62, 0xec, 0x78, 0x76, 0x01, 0xf1,
|
||||
0x90, 0xf7, 0x0b, 0xfb, 0x1b, 0xa5, 0x7b, 0x78, 0xc1, 0x02, 0xed, 0x6d,
|
||||
0x01, 0x16, 0xec, 0x21, 0x85, 0x4f, 0xe3, 0x0f, 0x59, 0xaf, 0x5e, 0xbc,
|
||||
0x4d, 0x18, 0x2c, 0xdd, 0x62, 0xfd, 0x3f, 0x9a, 0x9c, 0xf7, 0x1b, 0xe3,
|
||||
0x60, 0xfc, 0xf4, 0x77, 0xd9, 0x77, 0x1f, 0xe5, 0x7f, 0x73, 0x61, 0xa4,
|
||||
0xe3, 0x88, 0xdd, 0x79, 0xbd, 0x47, 0xfc, 0xbb, 0x62, 0xd7, 0xa8, 0x6e,
|
||||
0xef, 0x47, 0x24, 0x0e, 0x7b, 0xf3, 0xcc, 0xaf, 0x1f, 0x44, 0xfa, 0x3e,
|
||||
0xc2, 0x2b, 0x6d, 0xb6, 0xab, 0x50, 0x9c, 0x3d, 0xfd, 0x65, 0x63, 0x3e,
|
||||
0x9a, 0xbb, 0xe2, 0xd7, 0x27, 0xf1, 0x26, 0xbf, 0x26, 0xef, 0xaf, 0xf9,
|
||||
0xb5, 0x04, 0x67, 0x66, 0x7c, 0x8a, 0x57, 0xb5, 0xd9, 0xcd, 0x9b, 0x3e,
|
||||
0xe3, 0xdb, 0x2e, 0xe3, 0x43, 0x17, 0xeb, 0x13, 0xc7, 0xe7, 0xca, 0x2c,
|
||||
0x9f, 0xad, 0xe8, 0xbd, 0xd6, 0xf6, 0x3a, 0xaf, 0xed, 0xf2, 0xc1, 0xf8,
|
||||
0x3a, 0x8e, 0xce, 0x43, 0xc7, 0x4b, 0xcf, 0x43, 0x76, 0x5c, 0xc6, 0xae,
|
||||
0x95, 0xae, 0xc3, 0xd2, 0x04, 0x63, 0x61, 0x12, 0xf3, 0xfa, 0x21, 0xde,
|
||||
0xd8, 0xeb, 0x56, 0x8d, 0xf4, 0xc6, 0x80, 0xe5, 0x59, 0x99, 0xbf, 0x59,
|
||||
0xda, 0x47, 0xc5, 0x37, 0x16, 0x62, 0x1d, 0x42, 0x7a, 0x6f, 0x2c, 0xf7,
|
||||
0x67, 0x9a, 0x87, 0xbc, 0x9c, 0xab, 0xfa, 0x8f, 0xa5, 0xf7, 0x78, 0x8d,
|
||||
0xe7, 0xad, 0x94, 0x9e, 0xd3, 0x46, 0x3c, 0x78, 0xfe, 0xdd, 0xfe, 0x72,
|
||||
0x6f, 0x50, 0x3f, 0x74, 0x7e, 0x01, 0x74, 0x27, 0xb3, 0xde, 0x09, 0xfd,
|
||||
0x3e, 0x6b, 0x9e, 0xa4, 0xe3, 0x7e, 0x98, 0x4f, 0xdd, 0xfb, 0x28, 0x74,
|
||||
0x06, 0xf9, 0xff, 0x46, 0xbf, 0x7b, 0x03, 0xf6, 0x76, 0xa7, 0xb8, 0x29,
|
||||
0xff, 0x55, 0xb5, 0x39, 0xb0, 0x75, 0xef, 0x1c, 0x63, 0x4f, 0x9f, 0xae,
|
||||
0xf3, 0x9e, 0x36, 0xb6, 0xcc, 0xa7, 0xe6, 0xaf, 0xe6, 0xb6, 0xfc, 0xf5,
|
||||
0xac, 0xf8, 0xca, 0x02, 0xe6, 0x2b, 0x7c, 0x4f, 0xd2, 0x79, 0x3a, 0xfa,
|
||||
0x9e, 0x06, 0x2f, 0xf1, 0xfd, 0xee, 0xaf, 0xef, 0x8e, 0xdf, 0x92, 0x75,
|
||||
0x1a, 0xc4, 0x6f, 0xae, 0xc1, 0x57, 0xbf, 0xaf, 0x6f, 0xf2, 0x1b, 0x7e,
|
||||
0x5f, 0x59, 0xe1, 0xfe, 0xbd, 0x97, 0x98, 0xdf, 0x64, 0xdd, 0x87, 0xa4,
|
||||
0xee, 0x4a, 0x8f, 0xec, 0x6f, 0x1b, 0xf6, 0xba, 0xff, 0xef, 0x08, 0x6f,
|
||||
0x5a, 0x53, 0x3c, 0x7f, 0x4e, 0xf7, 0x91, 0xd1, 0x97, 0xc9, 0x0e, 0xee,
|
||||
0xd5, 0x65, 0x88, 0xa4, 0x6e, 0x77, 0x53, 0xf5, 0xab, 0x08, 0x4f, 0x38,
|
||||
0xf0, 0x55, 0xa4, 0xeb, 0xac, 0xfb, 0xc8, 0xf8, 0x25, 0xe9, 0xd7, 0x76,
|
||||
0xa8, 0x77, 0x0d, 0xbe, 0xd8, 0xe0, 0x41, 0x9f, 0xfc, 0x4d, 0x08, 0xaf,
|
||||
0x9c, 0x91, 0xfd, 0xfe, 0xcb, 0x65, 0xfe, 0xe8, 0x1e, 0xa3, 0x3d, 0x87,
|
||||
0x11, 0xd9, 0xf3, 0x6e, 0x85, 0xe5, 0x7a, 0x85, 0x79, 0x71, 0xc2, 0xf1,
|
||||
0x48, 0xaf, 0x5e, 0x61, 0x1c, 0x29, 0xa3, 0x5d, 0x00, 0x0f, 0x8e, 0x93,
|
||||
0x7a, 0x67, 0xd1, 0x63, 0x7e, 0x5f, 0xbc, 0x25, 0xfc, 0xe3, 0xeb, 0xfa,
|
||||
0xc9, 0x7d, 0x5f, 0xc6, 0xf3, 0x11, 0xb5, 0xcf, 0xc9, 0x7e, 0x28, 0x9d,
|
||||
0x36, 0xe7, 0xf7, 0xa9, 0x64, 0xdf, 0xf4, 0x93, 0xf5, 0xd6, 0xf3, 0xbd,
|
||||
0x9c, 0xd1, 0xa7, 0x99, 0x58, 0xf3, 0xdf, 0xd8, 0x0c, 0xe6, 0xeb, 0x43,
|
||||
0xd5, 0xe1, 0xf9, 0x60, 0x54, 0x7e, 0x2c, 0x07, 0xcd, 0x1a, 0x73, 0xc2,
|
||||
0x27, 0x73, 0x57, 0xc8, 0xcd, 0xf1, 0x39, 0x7d, 0x3e, 0x4d, 0x0b, 0x32,
|
||||
0xbb, 0xf2, 0x13, 0x9d, 0x57, 0xa3, 0x3c, 0x9f, 0x3b, 0xc7, 0x74, 0xbd,
|
||||
0x7c, 0xba, 0xff, 0x02, 0xd7, 0xeb, 0xad, 0x1b, 0x8c, 0xa7, 0xe0, 0x75,
|
||||
0x42, 0x77, 0xc1, 0x63, 0x7e, 0x5c, 0xf4, 0x4a, 0x84, 0x40, 0xf5, 0xb2,
|
||||
0x5e, 0xe2, 0x77, 0xad, 0x28, 0xef, 0xd1, 0x50, 0xa2, 0x8f, 0xe6, 0xfb,
|
||||
0xb1, 0xdb, 0x7e, 0x26, 0xf9, 0x54, 0xbf, 0x6b, 0x39, 0xe3, 0xef, 0xc8,
|
||||
0x8a, 0x31, 0x9f, 0xef, 0x66, 0xcc, 0x67, 0x33, 0x63, 0xbe, 0x4d, 0x5e,
|
||||
0xb9, 0x24, 0x7b, 0x57, 0x80, 0x62, 0x9e, 0x1e, 0x26, 0xaf, 0x70, 0x95,
|
||||
0xfa, 0x6b, 0xcd, 0xf1, 0xbb, 0xee, 0x15, 0xe7, 0x73, 0x54, 0x37, 0x6f,
|
||||
0x9e, 0xf5, 0x0a, 0x7c, 0x1e, 0x68, 0xbc, 0x7e, 0x95, 0xdf, 0x4f, 0x0b,
|
||||
0xfe, 0x07, 0x89, 0x6e, 0x1e, 0x13, 0x00, 0x0d, 0x00, 0x00, 0x00 };
|
||||
|
||||
static u8 bnx2_xi_rv2p_proc2[] = {
|
||||
/* Date: 01/14/2008 15:44 */
|
||||
0xad, 0x58, 0x5d, 0x6c, 0xd3, 0x55, 0x14, 0xbf, 0xfd, 0x58, 0xdb, 0x75,
|
||||
0xff, 0xb6, 0x63, 0x9b, 0xdd, 0xa7, 0x6e, 0x6e, 0x61, 0x6c, 0xd8, 0xcd,
|
||||
0xd1, 0x8d, 0x4f, 0x4d, 0x5c, 0x86, 0x19, 0x20, 0x26, 0x8c, 0x61, 0xd4,
|
||||
0x37, 0xd8, 0x90, 0xb2, 0xb2, 0x8d, 0x2c, 0x8c, 0xf0, 0xc0, 0x8b, 0x0d,
|
||||
0xd3, 0xf1, 0xd2, 0x07, 0x47, 0xb2, 0x0d, 0x8d, 0xc1, 0x45, 0x7d, 0x40,
|
||||
0x9f, 0xec, 0x83, 0x52, 0x30, 0xc6, 0xc4, 0xe8, 0x42, 0xf0, 0x01, 0x48,
|
||||
0x30, 0xc6, 0x68, 0x48, 0x08, 0xea, 0x32, 0x10, 0x75, 0x0c, 0xfb, 0x64,
|
||||
0x98, 0xf7, 0x9e, 0xdf, 0xb9, 0xff, 0xfe, 0xff, 0x5d, 0x27, 0x18, 0xec,
|
||||
0x43, 0x4f, 0xef, 0xbd, 0xe7, 0x9e, 0x7b, 0x3e, 0x7e, 0xe7, 0x9c, 0x7b,
|
||||
0x5b, 0x2c, 0x84, 0x70, 0x8a, 0x44, 0xaa, 0x56, 0x52, 0x61, 0x38, 0x5c,
|
||||
0x02, 0x9f, 0xb5, 0xc5, 0x44, 0xae, 0xa5, 0x7c, 0xf2, 0xbb, 0x40, 0xbc,
|
||||
0xe4, 0xac, 0xa0, 0xb1, 0x5b, 0x28, 0x1a, 0x12, 0x22, 0x61, 0xa5, 0xa5,
|
||||
0x4c, 0xaf, 0x32, 0xfd, 0x9d, 0xe9, 0xe3, 0x0e, 0xd0, 0x2b, 0x3c, 0xde,
|
||||
0xc2, 0xe3, 0x6b, 0x3c, 0xfe, 0x91, 0xe9, 0x46, 0x9e, 0xdf, 0xcc, 0x34,
|
||||
0xc9, 0x74, 0x3b, 0xaf, 0xa7, 0x99, 0xca, 0x4f, 0xc2, 0x90, 0x5f, 0x72,
|
||||
0xb9, 0x59, 0xeb, 0x69, 0x60, 0xba, 0x19, 0xfa, 0xee, 0xa9, 0x53, 0x7c,
|
||||
0xf3, 0x4b, 0x59, 0x3e, 0xcc, 0x5f, 0x9f, 0x00, 0xad, 0xc5, 0xae, 0x8f,
|
||||
0x13, 0x4f, 0xeb, 0xfd, 0x20, 0x7d, 0x01, 0xd0, 0x7e, 0xb6, 0xbf, 0x33,
|
||||
0x42, 0x24, 0xb9, 0xdf, 0x89, 0x71, 0x77, 0xa3, 0xf2, 0x43, 0x89, 0x70,
|
||||
0x3b, 0x95, 0x9c, 0x56, 0x9f, 0xe7, 0x3c, 0xe6, 0x5f, 0x0d, 0x81, 0xbe,
|
||||
0xe6, 0x07, 0xfd, 0xc5, 0x5f, 0x28, 0xbf, 0x97, 0x96, 0x62, 0x45, 0x2c,
|
||||
0xdf, 0x60, 0xb5, 0x8b, 0xb0, 0x7f, 0xd6, 0x80, 0x1e, 0x2f, 0xd7, 0x41,
|
||||
0xbf, 0xef, 0x9f, 0x52, 0xf3, 0x2e, 0x91, 0x60, 0x39, 0x42, 0x68, 0x3d,
|
||||
0x79, 0x7d, 0x10, 0xfb, 0x56, 0xad, 0xc1, 0xea, 0x5b, 0x31, 0x8c, 0xab,
|
||||
0x3f, 0x28, 0xa6, 0xb8, 0x9c, 0x4e, 0x69, 0xfe, 0x7c, 0x72, 0xdd, 0x52,
|
||||
0x2e, 0xe4, 0x8b, 0x7a, 0x1f, 0x29, 0x93, 0x88, 0x80, 0x8a, 0x96, 0xdc,
|
||||
0x73, 0x20, 0x7f, 0x6a, 0xb5, 0x9a, 0x77, 0x8a, 0x5e, 0x97, 0x9a, 0xf7,
|
||||
0x88, 0xde, 0xb8, 0xf6, 0x2f, 0xd6, 0x63, 0x1e, 0x22, 0x15, 0x7d, 0xe3,
|
||||
0xca, 0xce, 0x90, 0xd8, 0xe7, 0x0c, 0x11, 0x3f, 0xfc, 0xe2, 0xf2, 0x19,
|
||||
0x9f, 0x81, 0xff, 0xcb, 0x5a, 0x83, 0x6c, 0x89, 0xb5, 0x63, 0x5f, 0x59,
|
||||
0x14, 0x74, 0x32, 0x5a, 0xa0, 0x48, 0x24, 0x36, 0x4a, 0xc3, 0xd6, 0x9b,
|
||||
0xeb, 0x7c, 0xc4, 0x97, 0x68, 0xd1, 0xf1, 0xd3, 0xf1, 0x52, 0x71, 0xfc,
|
||||
0x44, 0xc6, 0x91, 0xdd, 0xd2, 0x00, 0xbf, 0xfe, 0xba, 0x5a, 0xf1, 0x4b,
|
||||
0xe7, 0xd6, 0xe3, 0x9c, 0xac, 0x7e, 0xd6, 0xf8, 0x7f, 0xf4, 0x1f, 0xe2,
|
||||
0xaf, 0xe4, 0x75, 0xb2, 0x5f, 0xea, 0xa4, 0x5f, 0x14, 0xad, 0x71, 0x24,
|
||||
0x5a, 0xec, 0xf1, 0xb8, 0x3e, 0x11, 0xa2, 0xdf, 0xb7, 0xba, 0x8a, 0xc9,
|
||||
0xaf, 0xbb, 0x30, 0x7f, 0xaa, 0xfb, 0x1c, 0xe2, 0xb1, 0x83, 0xec, 0x17,
|
||||
0xfe, 0x37, 0x3e, 0xc5, 0xae, 0xbe, 0x80, 0x1a, 0xbf, 0xd2, 0x11, 0xbb,
|
||||
0x80, 0xf5, 0x82, 0x31, 0xf8, 0x75, 0x17, 0x4b, 0xdd, 0xe1, 0x72, 0x28,
|
||||
0x92, 0xf4, 0x8c, 0xd1, 0xd0, 0x98, 0xa5, 0x75, 0x43, 0x9c, 0x4c, 0x61,
|
||||
0xfd, 0x70, 0x91, 0x1a, 0xef, 0x8a, 0xcc, 0x63, 0x1c, 0x89, 0x8f, 0xf3,
|
||||
0x46, 0x27, 0xfc, 0x70, 0xcb, 0x09, 0x79, 0x0c, 0x2f, 0xbf, 0x9b, 0xe2,
|
||||
0xe0, 0x10, 0x46, 0x37, 0xe8, 0x9b, 0xb4, 0xfe, 0xb7, 0x23, 0x49, 0x76,
|
||||
0x77, 0x07, 0xdd, 0xe7, 0xc0, 0xc8, 0xb8, 0x36, 0x71, 0xab, 0x71, 0xff,
|
||||
0xb0, 0xf8, 0x1d, 0x37, 0x34, 0x5e, 0xd9, 0xff, 0xec, 0xdf, 0xf7, 0x44,
|
||||
0x2e, 0x4e, 0x41, 0xbb, 0x1b, 0x41, 0x3d, 0x0d, 0xb9, 0x78, 0xd5, 0xf8,
|
||||
0xb4, 0xfb, 0x99, 0xe3, 0x63, 0xc1, 0x0b, 0x11, 0x89, 0x13, 0x1b, 0x6e,
|
||||
0x18, 0xa7, 0x95, 0xd2, 0x5f, 0x3a, 0xfe, 0x4a, 0x90, 0x57, 0x0c, 0xb2,
|
||||
0xbc, 0x38, 0xdb, 0x35, 0xc4, 0x76, 0xdd, 0xf1, 0x6b, 0xbf, 0x6a, 0x7b,
|
||||
0x40, 0x4f, 0xda, 0xec, 0x71, 0x48, 0x3c, 0xd9, 0x71, 0xc8, 0xfa, 0x24,
|
||||
0xbf, 0xa9, 0xc7, 0x8f, 0xea, 0x06, 0x50, 0xd3, 0xce, 0x46, 0xc5, 0xe7,
|
||||
0x89, 0x4e, 0xa7, 0xec, 0x38, 0xd4, 0xf9, 0xb8, 0xa7, 0x4e, 0xcb, 0x57,
|
||||
0xb8, 0xcc, 0x48, 0x5c, 0x22, 0x6e, 0xa7, 0x53, 0xd6, 0xfc, 0xac, 0xca,
|
||||
0x93, 0x9f, 0xf6, 0xbc, 0xd0, 0x7e, 0x39, 0x1c, 0xa0, 0x02, 0xd5, 0x71,
|
||||
0x79, 0xce, 0x7e, 0x1e, 0xf0, 0xed, 0x35, 0xf1, 0x53, 0xb6, 0x81, 0xfd,
|
||||
0xc7, 0x34, 0xbc, 0x51, 0xc9, 0xeb, 0x61, 0xf9, 0x6d, 0x2c, 0xdf, 0xb0,
|
||||
0xe4, 0x9d, 0xd2, 0xaf, 0xcb, 0xcc, 0x37, 0x1d, 0xb7, 0x6c, 0xde, 0x69,
|
||||
0xff, 0xd1, 0xf9, 0x91, 0xcb, 0x73, 0x6a, 0x7f, 0xf5, 0x03, 0xf2, 0x70,
|
||||
0x93, 0x29, 0xef, 0x3b, 0x33, 0xdf, 0xd4, 0x7a, 0x91, 0x78, 0x8e, 0x87,
|
||||
0xf6, 0x7a, 0xf2, 0xa7, 0xac, 0x27, 0x64, 0x87, 0xcf, 0x38, 0xc7, 0xf5,
|
||||
0x63, 0x54, 0x9d, 0x53, 0xc1, 0x7a, 0x57, 0xb0, 0xde, 0xb2, 0x5f, 0xb5,
|
||||
0x70, 0x9d, 0xd9, 0x6b, 0xad, 0x17, 0x6b, 0x2d, 0x79, 0xaf, 0xc6, 0x4d,
|
||||
0x4b, 0xcb, 0xfb, 0x85, 0xcd, 0x9f, 0x09, 0x41, 0xfe, 0xf7, 0x72, 0x7c,
|
||||
0x3c, 0x79, 0xfa, 0x8b, 0xe6, 0x07, 0xbe, 0xb6, 0x11, 0xbf, 0xcf, 0xc4,
|
||||
0xbf, 0xdd, 0xde, 0xaa, 0x3c, 0x75, 0x27, 0xd7, 0x7e, 0xf8, 0xb3, 0xcf,
|
||||
0x19, 0x20, 0xbe, 0x1b, 0x23, 0x6a, 0xdf, 0x49, 0x87, 0xf6, 0x53, 0x27,
|
||||
0xea, 0x90, 0x03, 0xf6, 0xd6, 0xb0, 0xbd, 0x72, 0xb9, 0x85, 0xf0, 0xef,
|
||||
0xbb, 0x31, 0x62, 0xb5, 0xd7, 0xf8, 0x97, 0xf3, 0xec, 0xb8, 0x19, 0xe1,
|
||||
0x3e, 0xd6, 0x8f, 0xbc, 0xf0, 0xed, 0xff, 0x5c, 0xeb, 0xc3, 0xe7, 0x86,
|
||||
0xf4, 0xf9, 0x4a, 0x5e, 0xb5, 0x98, 0x1b, 0x55, 0xfb, 0x1f, 0x13, 0x0c,
|
||||
0x33, 0x31, 0xdc, 0x84, 0xfa, 0x77, 0xe7, 0x00, 0xf4, 0x1f, 0x6e, 0xd4,
|
||||
0x7d, 0x1c, 0x38, 0x16, 0x5c, 0xff, 0xbf, 0x9e, 0xc8, 0xe7, 0x97, 0x41,
|
||||
0x07, 0xf8, 0xca, 0xd8, 0xae, 0x62, 0xb6, 0x2b, 0x22, 0x72, 0xeb, 0xec,
|
||||
0x5e, 0xca, 0x97, 0x4e, 0xe6, 0x7b, 0x56, 0xd7, 0xe3, 0x65, 0x7c, 0xb0,
|
||||
0xbf, 0x80, 0xcf, 0xcf, 0xe7, 0xaf, 0x7c, 0x72, 0xd3, 0x8c, 0xa3, 0x01,
|
||||
0xe6, 0x73, 0xe7, 0xa9, 0xf3, 0x18, 0x65, 0xd6, 0x50, 0x9d, 0x3f, 0x73,
|
||||
0x3c, 0xad, 0xf8, 0x02, 0x26, 0xce, 0xed, 0x76, 0xfd, 0x74, 0xff, 0xd1,
|
||||
0xfd, 0xaf, 0xf8, 0xc2, 0xe2, 0x60, 0x70, 0x25, 0x3f, 0xbb, 0xd5, 0xf4,
|
||||
0xcc, 0x42, 0x5a, 0xc7, 0xc9, 0x20, 0x3b, 0xe7, 0x46, 0xd5, 0xf9, 0x1f,
|
||||
0xe6, 0xf8, 0xdf, 0x69, 0xf1, 0x3f, 0xf8, 0x9f, 0x88, 0x3c, 0xaa, 0xdf,
|
||||
0xf3, 0xf5, 0xe5, 0x2f, 0xee, 0x2f, 0xcf, 0x13, 0x35, 0x7f, 0xe1, 0xa1,
|
||||
0xfd, 0xb1, 0xbb, 0xdd, 0x6a, 0x7f, 0x83, 0x98, 0x4d, 0x21, 0xbf, 0x7a,
|
||||
0x18, 0x87, 0xfb, 0xb8, 0x5e, 0xdf, 0xf0, 0xab, 0x09, 0x9f, 0xe8, 0xdf,
|
||||
0x49, 0xfe, 0x10, 0xe1, 0x22, 0xf8, 0xa7, 0xff, 0x45, 0xed, 0x4f, 0xcc,
|
||||
0x57, 0x51, 0xbf, 0x75, 0x89, 0x1e, 0xaf, 0x41, 0xfc, 0x55, 0x01, 0xd0,
|
||||
0x30, 0xd7, 0xf9, 0x59, 0xb3, 0x8f, 0x81, 0x9e, 0xf6, 0xe8, 0xba, 0x8c,
|
||||
0x7e, 0xfe, 0x95, 0x47, 0x31, 0xc8, 0x20, 0x35, 0xa3, 0x3e, 0x77, 0x35,
|
||||
0x1a, 0xb4, 0xde, 0xdb, 0x0c, 0x3c, 0x89, 0x7a, 0xdd, 0xe7, 0xf0, 0xe1,
|
||||
0x3e, 0x50, 0x95, 0xed, 0x77, 0xd6, 0x7e, 0x58, 0x68, 0xe9, 0x07, 0xfa,
|
||||
0x3c, 0xed, 0x47, 0x2d, 0x97, 0x86, 0xb2, 0xaf, 0x58, 0xfb, 0xa1, 0xee,
|
||||
0x13, 0x8b, 0xdc, 0x27, 0x4a, 0xc5, 0xc5, 0x14, 0xec, 0x9a, 0x4d, 0xe5,
|
||||
0xe2, 0x4f, 0x9f, 0xa7, 0xe5, 0x41, 0x6f, 0x6d, 0x47, 0x56, 0x3e, 0xce,
|
||||
0x3f, 0xc0, 0x7a, 0xfe, 0x4c, 0xf7, 0xd8, 0x30, 0xdb, 0xa3, 0xe4, 0x62,
|
||||
0x7e, 0x3b, 0xf7, 0xe7, 0x84, 0x39, 0xb6, 0xf7, 0xd5, 0x1e, 0xd2, 0xab,
|
||||
0x84, 0xf1, 0x16, 0xb6, 0xe4, 0x03, 0xf8, 0xcb, 0xda, 0x40, 0x27, 0xdb,
|
||||
0x74, 0x1c, 0x74, 0xbc, 0x74, 0x7c, 0x10, 0xc7, 0xf0, 0x3a, 0x62, 0xeb,
|
||||
0xe8, 0x5f, 0x47, 0x7d, 0xa4, 0xad, 0x7f, 0x41, 0xe3, 0x0f, 0xfb, 0x77,
|
||||
0x47, 0x14, 0xff, 0xeb, 0xe2, 0x2a, 0xe1, 0x50, 0x88, 0x1f, 0x98, 0x66,
|
||||
0xfb, 0x15, 0x07, 0xc0, 0xcc, 0x57, 0x8e, 0x5f, 0x01, 0x4f, 0xb7, 0xeb,
|
||||
0x7a, 0xae, 0xe3, 0x65, 0xcd, 0xd7, 0xd8, 0x32, 0xdc, 0x66, 0xeb, 0xb2,
|
||||
0xb6, 0x53, 0xf1, 0x47, 0x18, 0x8f, 0x3e, 0xd1, 0xb5, 0x0d, 0xf7, 0xdc,
|
||||
0xa0, 0x17, 0x75, 0x3f, 0xe8, 0xb5, 0xc6, 0x4b, 0xe2, 0xa2, 0xd0, 0xab,
|
||||
0x86, 0x35, 0x25, 0x85, 0x64, 0xcf, 0xa9, 0x4b, 0xdf, 0xd2, 0xf2, 0xfb,
|
||||
0xd3, 0x45, 0x98, 0x2f, 0xdf, 0x19, 0x22, 0x7f, 0x4c, 0x01, 0xcf, 0xef,
|
||||
0x4e, 0x82, 0xbe, 0x23, 0x5e, 0xc0, 0xfe, 0x92, 0x13, 0x74, 0x0f, 0xf4,
|
||||
0x95, 0x33, 0x3e, 0x2b, 0x50, 0x27, 0x92, 0xd3, 0x74, 0x2f, 0x59, 0x5a,
|
||||
0x12, 0x01, 0x45, 0x3d, 0x66, 0xbf, 0x01, 0x3e, 0xdd, 0x96, 0x38, 0x3f,
|
||||
0x08, 0xaf, 0x74, 0xaf, 0x94, 0x78, 0xc4, 0x76, 0xc6, 0xad, 0x2f, 0x17,
|
||||
0xb7, 0xda, 0x1f, 0x15, 0xce, 0xbc, 0x38, 0xdd, 0x60, 0xc7, 0xa9, 0x87,
|
||||
0x71, 0x7a, 0xcf, 0xec, 0xef, 0xcb, 0xe5, 0xa2, 0xcf, 0x5f, 0xfc, 0xdf,
|
||||
0x70, 0x0b, 0xba, 0xbd, 0x41, 0x9d, 0x5f, 0xbe, 0xac, 0x1e, 0xd7, 0xda,
|
||||
0xe2, 0xdc, 0x7c, 0x5f, 0xeb, 0x75, 0xc2, 0x63, 0x5d, 0x6f, 0x31, 0xfb,
|
||||
0xd9, 0x11, 0x7e, 0xe7, 0x65, 0x0c, 0xfa, 0x11, 0xbd, 0x93, 0xa4, 0xa1,
|
||||
0x51, 0x79, 0x56, 0xf1, 0x35, 0x45, 0x8f, 0x70, 0xbd, 0xbd, 0xe4, 0x42,
|
||||
0xbd, 0x19, 0x38, 0x80, 0xf1, 0x65, 0xae, 0x1f, 0x77, 0xd7, 0x50, 0x5d,
|
||||
0x8e, 0x1e, 0x39, 0xaf, 0xe5, 0x91, 0x1c, 0x23, 0xc3, 0x75, 0xfd, 0x79,
|
||||
0x17, 0xd7, 0x5b, 0xf2, 0x9b, 0x3b, 0xfa, 0x07, 0xdd, 0x67, 0xdc, 0xa2,
|
||||
0xeb, 0x49, 0x45, 0x2b, 0x65, 0xfd, 0xe6, 0xf3, 0x9f, 0x01, 0xed, 0xf5,
|
||||
0x82, 0x8a, 0x66, 0x7b, 0x3c, 0x84, 0x69, 0x17, 0x46, 0x9e, 0x7a, 0x96,
|
||||
0xd3, 0x87, 0xb1, 0x97, 0xef, 0x65, 0xd3, 0xec, 0xa7, 0x20, 0xf9, 0xa3,
|
||||
0x58, 0xda, 0xa9, 0x68, 0x28, 0x3a, 0x9a, 0x86, 0xfe, 0x43, 0x5b, 0x61,
|
||||
0xdf, 0x22, 0xdb, 0xcd, 0x34, 0xf8, 0xf6, 0x18, 0xe1, 0x2f, 0x38, 0x8e,
|
||||
0x77, 0x48, 0xd0, 0x33, 0x06, 0x3b, 0x86, 0x32, 0x18, 0x2f, 0x6e, 0x06,
|
||||
0xfd, 0x6b, 0x0b, 0xf6, 0x1d, 0x3d, 0xce, 0xfe, 0xd8, 0x9a, 0x7f, 0xdf,
|
||||
0xc0, 0x3d, 0xf0, 0x0d, 0x37, 0xa9, 0xf3, 0x07, 0x67, 0xf8, 0xfd, 0x22,
|
||||
0xe2, 0x2e, 0x35, 0x8e, 0x1b, 0x19, 0x1e, 0x1f, 0xe2, 0xfa, 0x7e, 0x9b,
|
||||
0xdf, 0x1b, 0x43, 0x39, 0xef, 0x8d, 0x79, 0xdc, 0x33, 0x67, 0x32, 0x49,
|
||||
0xe0, 0x22, 0x51, 0x98, 0xfb, 0x5e, 0x55, 0xe3, 0x9a, 0x68, 0x39, 0xc7,
|
||||
0xa9, 0x6c, 0x3d, 0xe8, 0xe4, 0x7a, 0xbc, 0x13, 0x86, 0x8e, 0xb1, 0x5f,
|
||||
0x3a, 0x28, 0x4e, 0xad, 0x0b, 0xe9, 0x95, 0xde, 0xc9, 0xe0, 0x9b, 0xe2,
|
||||
0x73, 0xc3, 0xdc, 0x4f, 0xc2, 0xc8, 0x3f, 0x51, 0x91, 0xe4, 0x77, 0xcb,
|
||||
0x04, 0xee, 0x9d, 0x53, 0x06, 0x68, 0x38, 0xa0, 0xf5, 0x45, 0x3e, 0x26,
|
||||
0x52, 0xc8, 0x3b, 0xac, 0x3b, 0x2c, 0xeb, 0x7c, 0x1f, 0x59, 0xf6, 0xce,
|
||||
0x51, 0x74, 0xd1, 0x51, 0xea, 0xd0, 0x76, 0x62, 0xb5, 0x3f, 0xa0, 0xf0,
|
||||
0x7b, 0xd3, 0xcc, 0xab, 0x79, 0xf2, 0x5b, 0xf5, 0x4c, 0x86, 0xf4, 0xaf,
|
||||
0x12, 0xa5, 0xd4, 0x87, 0x2b, 0x83, 0x0b, 0xf0, 0x63, 0x74, 0x9a, 0xfd,
|
||||
0x3f, 0xb2, 0x09, 0xf4, 0x18, 0xe3, 0x4f, 0xe3, 0xea, 0xca, 0x46, 0x83,
|
||||
0xf6, 0xcd, 0x8d, 0xe2, 0x1c, 0x7d, 0x8f, 0xc8, 0x7d, 0x8f, 0x6b, 0x3c,
|
||||
0x56, 0xb6, 0xa3, 0x90, 0x0e, 0x1c, 0x55, 0xe7, 0x04, 0x24, 0x8e, 0x94,
|
||||
0xfe, 0xd2, 0x27, 0x9c, 0x8f, 0x76, 0x9c, 0x2a, 0x1c, 0xeb, 0xfc, 0xb0,
|
||||
0xe2, 0x3b, 0x37, 0xdf, 0xb3, 0x78, 0x0d, 0xd2, 0xbd, 0x5c, 0x16, 0xb9,
|
||||
0x04, 0xbf, 0x9b, 0xf8, 0x7e, 0xb0, 0x52, 0xfc, 0xde, 0x46, 0xfc, 0xa2,
|
||||
0xac, 0xb7, 0x11, 0x1f, 0x43, 0x5f, 0x1c, 0x67, 0x1c, 0xcd, 0x37, 0xf1,
|
||||
0xfd, 0x87, 0xf5, 0xfb, 0x8d, 0xdf, 0x67, 0xc0, 0x9b, 0xd7, 0x88, 0xa5,
|
||||
0x19, 0x5f, 0x8c, 0xfb, 0x43, 0x6c, 0xf7, 0x6d, 0xd8, 0x6d, 0x68, 0xbb,
|
||||
0xe3, 0xa6, 0xdd, 0xfa, 0x7e, 0x65, 0x95, 0x53, 0x22, 0x71, 0xab, 0xe8,
|
||||
0x2a, 0xe3, 0x0a, 0xd5, 0xb3, 0x02, 0xb6, 0x53, 0xf2, 0xb5, 0x2b, 0x7b,
|
||||
0x82, 0x6c, 0x4f, 0x40, 0x1c, 0x6c, 0xb5, 0xee, 0x2b, 0xe2, 0x7d, 0x7e,
|
||||
0xb9, 0x0f, 0xf3, 0xa8, 0x0b, 0xc6, 0x0a, 0xfe, 0x54, 0x7e, 0xd3, 0x72,
|
||||
0x73, 0xf3, 0xde, 0xea, 0x3f, 0xba, 0x91, 0xd2, 0x07, 0xf5, 0x4d, 0xc6,
|
||||
0xa9, 0x05, 0xff, 0x1f, 0xe8, 0xfa, 0x76, 0x97, 0xee, 0xaf, 0xfe, 0x33,
|
||||
0xc3, 0xa8, 0x4f, 0x67, 0x86, 0xcf, 0xf2, 0xbb, 0x83, 0xfd, 0xd2, 0x43,
|
||||
0xff, 0x5b, 0xc8, 0xd8, 0xd5, 0xdb, 0xeb, 0x9b, 0x5d, 0x8f, 0x6a, 0x8b,
|
||||
0x1e, 0xfa, 0xdc, 0x7f, 0x00, 0x5a, 0x33, 0xe6, 0xc0, 0x30, 0x14, 0x00,
|
||||
0x00, 0x00 };
|
||||
/* Date: 04/25/2008 22:02 */
|
||||
#define XI_RV2P_PROC2_MAX_BD_PAGE_LOC 5
|
||||
#define XI_RV2P_PROC2_BD_PAGE_SIZE_MSK 0xffff
|
||||
#define XI_RV2P_PROC2_BD_PAGE_SIZE ((PAGE_SIZE / 16) - 1)
|
||||
0xad, 0x58, 0x5b, 0x6c, 0x54, 0x55, 0x14, 0x3d, 0xf3, 0xe8, 0xcc, 0xed,
|
||||
0xcc, 0x9d, 0x99, 0xd2, 0xd6, 0xe9, 0x8b, 0x48, 0x69, 0xa5, 0x74, 0x70,
|
||||
0x0a, 0x65, 0x5a, 0x1e, 0x3e, 0x12, 0x49, 0xd1, 0x02, 0x3e, 0x42, 0xa9,
|
||||
0x86, 0x98, 0x18, 0x03, 0x9d, 0x4a, 0xe9, 0x40, 0x4b, 0x2a, 0x25, 0x7c,
|
||||
0xf0, 0xe3, 0x84, 0x62, 0xf9, 0x99, 0x44, 0x4b, 0x80, 0x16, 0x63, 0x48,
|
||||
0x23, 0x3f, 0xc4, 0xbf, 0x26, 0x28, 0x45, 0x3f, 0x4c, 0x88, 0x36, 0x04,
|
||||
0x3e, 0xc0, 0x44, 0x63, 0xfc, 0x21, 0x12, 0xc4, 0x5a, 0xa0, 0xc1, 0x82,
|
||||
0x36, 0xc6, 0x48, 0xeb, 0x3d, 0x7b, 0xed, 0x73, 0xe7, 0xde, 0xe9, 0x2d,
|
||||
0x8f, 0x48, 0x3f, 0x58, 0x9c, 0x73, 0xf7, 0x39, 0x67, 0xef, 0xb5, 0x1f,
|
||||
0x67, 0x9f, 0x29, 0x10, 0x42, 0x78, 0x45, 0x7a, 0x64, 0x91, 0x81, 0x22,
|
||||
0xe8, 0xf6, 0x68, 0x06, 0xcc, 0x0a, 0x91, 0x57, 0x2a, 0xc7, 0xc2, 0x2d,
|
||||
0xf8, 0x6f, 0x59, 0x01, 0xc1, 0x0f, 0x23, 0xf2, 0xbb, 0x5f, 0xbc, 0xe5,
|
||||
0xc6, 0x77, 0xaf, 0x90, 0x18, 0x11, 0x22, 0x2d, 0xb1, 0x80, 0x31, 0xc6,
|
||||
0xe8, 0x72, 0x01, 0x4b, 0x18, 0x5f, 0x61, 0x14, 0x8c, 0xba, 0x1b, 0xe8,
|
||||
0x66, 0xf4, 0xaa, 0x79, 0x5e, 0xaf, 0xf1, 0x7c, 0x3b, 0xe3, 0x76, 0x9e,
|
||||
0xff, 0xdd, 0x40, 0xa5, 0x97, 0x1c, 0x4f, 0xce, 0x8a, 0xb4, 0x8e, 0x6d,
|
||||
0x63, 0x6a, 0x5e, 0x27, 0x48, 0xc7, 0xa0, 0xf7, 0x9b, 0x95, 0xb4, 0xce,
|
||||
0x41, 0x4e, 0xce, 0xdf, 0x98, 0x55, 0xfb, 0x1d, 0xf4, 0xc8, 0xf1, 0x2f,
|
||||
0xc6, 0xd8, 0x25, 0x87, 0xc5, 0x51, 0x6c, 0x53, 0x5c, 0x9a, 0x91, 0xfb,
|
||||
0x78, 0xc4, 0xd0, 0x80, 0x46, 0xac, 0x1c, 0xd7, 0x31, 0x4e, 0x13, 0x1f,
|
||||
0x2e, 0x63, 0xcc, 0xfb, 0x31, 0x96, 0x85, 0x70, 0xee, 0xd6, 0x4a, 0x9c,
|
||||
0xf7, 0xd3, 0xb3, 0x90, 0x4b, 0x47, 0x14, 0xa1, 0xf8, 0xbe, 0x48, 0xf0,
|
||||
0xf7, 0xdd, 0x72, 0x3c, 0xe5, 0x2a, 0x72, 0x81, 0x57, 0xbf, 0x50, 0x7a,
|
||||
0x42, 0xee, 0xea, 0x40, 0xae, 0x3c, 0x0d, 0x3f, 0x4f, 0xaf, 0x50, 0x76,
|
||||
0x00, 0xda, 0x42, 0xc0, 0xa4, 0x07, 0xb8, 0x2e, 0x4e, 0x90, 0x69, 0x67,
|
||||
0x47, 0x36, 0xd7, 0x48, 0x3d, 0x0a, 0x85, 0xd7, 0x2d, 0xf7, 0x5b, 0xa1,
|
||||
0xf9, 0xce, 0x61, 0xfe, 0x6d, 0xd6, 0xeb, 0xbd, 0x00, 0xf0, 0x46, 0x20,
|
||||
0xdf, 0xf8, 0x77, 0x76, 0xb6, 0x23, 0x68, 0xb7, 0x2b, 0x1d, 0xc4, 0xfa,
|
||||
0x31, 0xdd, 0xc9, 0x3e, 0xcf, 0x03, 0xec, 0xc3, 0xba, 0x05, 0x4b, 0xf1,
|
||||
0xf5, 0xe3, 0x0e, 0x8c, 0x2b, 0x4e, 0x49, 0x39, 0x9f, 0x18, 0x1a, 0x71,
|
||||
0xe2, 0x23, 0x77, 0x7f, 0x23, 0x4e, 0x23, 0x38, 0x47, 0x54, 0x69, 0xa4,
|
||||
0x54, 0x3a, 0x0e, 0x14, 0x75, 0x8e, 0xfc, 0x88, 0xe3, 0x4b, 0xe4, 0xbc,
|
||||
0x5b, 0xb4, 0x7a, 0x74, 0x3a, 0xa7, 0x35, 0xa5, 0xe2, 0x02, 0xdf, 0x3b,
|
||||
0x7c, 0x04, 0xa5, 0x6d, 0xfd, 0xd2, 0xde, 0x88, 0xd8, 0xee, 0x8e, 0x90,
|
||||
0x3c, 0xf8, 0xf1, 0x68, 0xfa, 0x97, 0x90, 0xff, 0x66, 0x91, 0x4e, 0x36,
|
||||
0x75, 0x34, 0x60, 0x5d, 0x71, 0x02, 0x78, 0x2c, 0x91, 0x27, 0x21, 0xde,
|
||||
0xd1, 0x4b, 0xc3, 0xe5, 0xd7, 0x57, 0x6a, 0x24, 0x97, 0xae, 0x53, 0x71,
|
||||
0xa7, 0xfc, 0x27, 0xfd, 0x3a, 0x64, 0xc6, 0x99, 0xa8, 0x06, 0xbf, 0xbf,
|
||||
0x2d, 0x91, 0xf2, 0x06, 0xc9, 0x55, 0x38, 0x27, 0xab, 0x9f, 0x35, 0x6e,
|
||||
0x07, 0x2c, 0x71, 0xfb, 0x78, 0xf1, 0xb0, 0x8e, 0xf8, 0x59, 0xc7, 0x3c,
|
||||
0x55, 0x1a, 0x3c, 0x49, 0x5c, 0xe8, 0x4a, 0xd7, 0xd9, 0xfd, 0x74, 0x75,
|
||||
0x20, 0x42, 0xff, 0xbf, 0xd9, 0x54, 0x40, 0x3c, 0x6f, 0xc6, 0xfc, 0x91,
|
||||
0xe6, 0xb3, 0xf0, 0xd3, 0x26, 0xe2, 0x43, 0x04, 0x0e, 0x7d, 0x81, 0x55,
|
||||
0x6d, 0x14, 0xdf, 0xdd, 0x8d, 0x1d, 0x5f, 0x61, 0x9c, 0xf4, 0xc8, 0xf1,
|
||||
0x6e, 0xbd, 0x7d, 0x14, 0xf2, 0x79, 0x7d, 0xe0, 0x7d, 0x33, 0x9f, 0xb2,
|
||||
0xc9, 0x43, 0xf9, 0x94, 0xf1, 0xf5, 0xd1, 0x50, 0x1f, 0xa3, 0xef, 0x05,
|
||||
0xe2, 0xf0, 0x08, 0xbe, 0xef, 0x09, 0x4a, 0x3b, 0xdf, 0x37, 0xf3, 0x2e,
|
||||
0xe5, 0xc3, 0xfa, 0xcc, 0x00, 0xf2, 0x66, 0xe2, 0x8c, 0x1c, 0x6f, 0x8b,
|
||||
0x4f, 0x40, 0x3e, 0x9e, 0xea, 0xe7, 0x8d, 0xdd, 0xe0, 0xf1, 0xa6, 0x1b,
|
||||
0xf2, 0x1c, 0xa6, 0x01, 0x2f, 0xf9, 0xd1, 0x25, 0xf4, 0x66, 0xe0, 0x87,
|
||||
0xf4, 0xfd, 0x5f, 0x57, 0x86, 0x78, 0xdb, 0x1a, 0xf6, 0x9e, 0x55, 0xfc,
|
||||
0x30, 0x46, 0x94, 0x5d, 0xc0, 0x47, 0xcd, 0x83, 0xfe, 0x79, 0xf3, 0x80,
|
||||
0xfd, 0x19, 0x7b, 0x58, 0x1e, 0x00, 0x9b, 0x6b, 0x80, 0xbe, 0x6a, 0x29,
|
||||
0x9f, 0xff, 0x18, 0xf9, 0xc0, 0x7a, 0xcd, 0xc9, 0x37, 0xcc, 0x66, 0xe3,
|
||||
0x94, 0xc0, 0x88, 0x4f, 0x5b, 0xbc, 0x72, 0x7e, 0x2c, 0x36, 0xfc, 0xa0,
|
||||
0xe2, 0x4e, 0x6e, 0xe8, 0x17, 0xbb, 0x79, 0xdf, 0x14, 0xf3, 0xd1, 0xc5,
|
||||
0x7c, 0x4c, 0x32, 0xee, 0x09, 0x2a, 0x1e, 0x80, 0x87, 0x75, 0x9c, 0xdb,
|
||||
0x9a, 0x92, 0x7e, 0x5c, 0xeb, 0x50, 0x3f, 0x55, 0x9d, 0x84, 0x9f, 0x86,
|
||||
0xd8, 0xaf, 0x27, 0xcc, 0x7a, 0xa9, 0xf8, 0x9d, 0xaf, 0x6e, 0xda, 0xf3,
|
||||
0x29, 0xc7, 0xce, 0xcc, 0x77, 0x55, 0x58, 0x5e, 0x58, 0x0d, 0x34, 0xf9,
|
||||
0xad, 0xa1, 0x3c, 0x0e, 0x97, 0x8c, 0x2a, 0xfb, 0xa4, 0x7e, 0xb7, 0x55,
|
||||
0x1e, 0x86, 0x07, 0x0f, 0x12, 0x06, 0x0a, 0x4f, 0xc9, 0x73, 0xca, 0x1d,
|
||||
0xea, 0x8a, 0x3d, 0x9f, 0x73, 0xf9, 0xdd, 0x13, 0xa2, 0x42, 0xdb, 0x78,
|
||||
0x79, 0xdc, 0x9e, 0xb7, 0xc8, 0x4f, 0xbf, 0x19, 0xdf, 0xc5, 0xab, 0xd9,
|
||||
0x0f, 0x8c, 0xd1, 0x35, 0x72, 0xdf, 0x16, 0x3e, 0xa7, 0x9e, 0xcf, 0xd1,
|
||||
0x2d, 0x75, 0x43, 0xea, 0x59, 0x68, 0xd6, 0x0b, 0x15, 0x1f, 0xd9, 0xba,
|
||||
0xa1, 0xfc, 0x40, 0xe7, 0xc7, 0x2f, 0x8f, 0xcb, 0xf5, 0x15, 0x0f, 0xa9,
|
||||
0x23, 0x9a, 0xb9, 0xdf, 0x8f, 0x66, 0x9d, 0x90, 0xdf, 0x83, 0xe2, 0x25,
|
||||
0x1e, 0xda, 0xeb, 0xe1, 0x1f, 0x46, 0x3d, 0x24, 0x3b, 0x34, 0xfd, 0x2c,
|
||||
0xd7, 0xbf, 0x5e, 0x79, 0x4e, 0x29, 0xeb, 0x5d, 0xca, 0x7a, 0x1b, 0xd7,
|
||||
0x73, 0x1d, 0xd7, 0xc9, 0x6d, 0xd6, 0x7a, 0xf7, 0xcf, 0x4c, 0xb6, 0x6e,
|
||||
0xc9, 0xf1, 0xdf, 0x33, 0x73, 0xef, 0x5f, 0x47, 0x5e, 0xd3, 0x22, 0x82,
|
||||
0x3e, 0x23, 0x1d, 0x51, 0x7d, 0x41, 0x6e, 0xfd, 0xcb, 0xb5, 0x03, 0xbc,
|
||||
0xb4, 0xb9, 0x43, 0x24, 0x77, 0xad, 0xc7, 0xde, 0x27, 0xa0, 0x0e, 0x56,
|
||||
0xba, 0xa0, 0xf7, 0x42, 0xd6, 0xdb, 0xd8, 0xaf, 0x8e, 0xf2, 0x41, 0xbb,
|
||||
0xd6, 0x63, 0xd5, 0xfb, 0xfa, 0xcc, 0xfc, 0xe7, 0x39, 0xc7, 0x41, 0x0f,
|
||||
0xdf, 0xaf, 0x49, 0xc4, 0xb1, 0xd6, 0xfe, 0xb5, 0xd2, 0x8b, 0xcf, 0x8f,
|
||||
0x28, 0x3d, 0x74, 0xf2, 0xd3, 0x78, 0xaf, 0xdc, 0xa7, 0x48, 0x70, 0xd8,
|
||||
0x88, 0xee, 0x5a, 0xd4, 0xdf, 0xc9, 0x1d, 0xb0, 0xa3, 0xbb, 0x46, 0xea,
|
||||
0x61, 0x78, 0x25, 0x8d, 0x3c, 0x17, 0x7c, 0x1f, 0x7d, 0x3b, 0xe0, 0xe4,
|
||||
0xd7, 0x4b, 0x2c, 0x57, 0xcc, 0xf6, 0x15, 0xb0, 0x7d, 0x71, 0x91, 0x5b,
|
||||
0xe7, 0xb7, 0x55, 0xd2, 0x7d, 0xc0, 0x72, 0x2f, 0xaa, 0xfb, 0xc0, 0x90,
|
||||
0x93, 0xfb, 0xe4, 0xf1, 0x3e, 0x4e, 0x3c, 0x39, 0xed, 0x33, 0xca, 0x71,
|
||||
0xd0, 0xc9, 0x72, 0x5e, 0x87, 0x7b, 0x05, 0xa3, 0xe9, 0xa5, 0x74, 0xaf,
|
||||
0x9c, 0x3c, 0x40, 0xf7, 0x43, 0xc8, 0x8c, 0x53, 0xbb, 0x1d, 0x67, 0x9e,
|
||||
0x20, 0xef, 0x52, 0x3e, 0x2a, 0x76, 0x86, 0xe7, 0xe3, 0xd7, 0x2b, 0xa7,
|
||||
0x87, 0xa7, 0x46, 0x95, 0x7f, 0x74, 0xb2, 0x77, 0xbc, 0x57, 0xf5, 0xb1,
|
||||
0x56, 0xde, 0xdd, 0x16, 0xde, 0x21, 0xff, 0x74, 0xfc, 0xff, 0xf2, 0xed,
|
||||
0xd4, 0x1f, 0x1c, 0x9d, 0x31, 0xfb, 0x50, 0x9f, 0x53, 0xfd, 0x5f, 0x61,
|
||||
0xc6, 0xcb, 0x5e, 0xee, 0xef, 0xa6, 0x75, 0xfa, 0x4f, 0x62, 0x32, 0x43,
|
||||
0x43, 0xbd, 0xec, 0xb4, 0x94, 0x5b, 0x96, 0xd8, 0xcb, 0x76, 0x5d, 0xf4,
|
||||
0xc0, 0xee, 0xce, 0x1d, 0x18, 0x5f, 0xe6, 0x7a, 0x7d, 0x97, 0xeb, 0xe3,
|
||||
0x16, 0x0d, 0x38, 0x59, 0x4b, 0x7c, 0x24, 0xf6, 0x9e, 0x53, 0xfb, 0xd3,
|
||||
0xbe, 0xfa, 0x34, 0xf3, 0xf9, 0xb2, 0x87, 0xed, 0xac, 0x22, 0x3f, 0x26,
|
||||
0xee, 0x50, 0x3d, 0xf0, 0x8a, 0xa6, 0xc5, 0x12, 0xcb, 0x0c, 0xde, 0x58,
|
||||
0x9f, 0x17, 0x80, 0xad, 0x7e, 0xa6, 0x21, 0x96, 0xeb, 0x67, 0x4c, 0xfb,
|
||||
0xaa, 0x78, 0x7d, 0x1b, 0xc6, 0x7e, 0xae, 0x67, 0x83, 0xac, 0xd7, 0xd1,
|
||||
0x5a, 0x60, 0x38, 0x86, 0x3e, 0x61, 0x9c, 0xee, 0x85, 0x48, 0xa2, 0x77,
|
||||
0x14, 0xf6, 0x74, 0xad, 0x87, 0xbd, 0xf7, 0x98, 0x07, 0xc6, 0xf0, 0x89,
|
||||
0x3e, 0xba, 0x77, 0xc2, 0xfd, 0xe8, 0x33, 0xc2, 0xbe, 0x3e, 0xd8, 0xd1,
|
||||
0x35, 0x8d, 0xf1, 0xbd, 0xe7, 0x80, 0x7f, 0x3d, 0x8f, 0x75, 0xfb, 0x0e,
|
||||
0x30, 0x3f, 0xeb, 0x9d, 0xd7, 0x75, 0xfe, 0x09, 0xb9, 0xee, 0x5a, 0x79,
|
||||
0xfe, 0xbb, 0xc3, 0xdc, 0x7f, 0x88, 0x14, 0xf5, 0x3b, 0xef, 0xe8, 0xd3,
|
||||
0x3c, 0xde, 0xc5, 0xf7, 0xe2, 0x2d, 0xee, 0x17, 0xba, 0x72, 0xfa, 0x85,
|
||||
0x09, 0xd4, 0xe9, 0xe1, 0xe9, 0x8c, 0x9c, 0x30, 0xea, 0x65, 0xbe, 0x93,
|
||||
0x7f, 0xf5, 0x44, 0x09, 0xfb, 0xad, 0x78, 0x15, 0xf0, 0xd8, 0x2a, 0xdc,
|
||||
0xd7, 0x5d, 0xfb, 0x99, 0x9f, 0x46, 0xf2, 0xd3, 0xf2, 0xa9, 0xd1, 0xdc,
|
||||
0xf5, 0x32, 0x7e, 0x3a, 0x8d, 0xf8, 0x51, 0xe7, 0x40, 0x3e, 0x19, 0x92,
|
||||
0xf3, 0xf7, 0xcc, 0xba, 0x3f, 0x41, 0x7a, 0x57, 0x0c, 0x4f, 0xd3, 0xfa,
|
||||
0x72, 0x51, 0x44, 0xf1, 0x57, 0x16, 0x9e, 0x82, 0x1d, 0x89, 0x41, 0xb6,
|
||||
0xbf, 0x67, 0x2d, 0x70, 0x3f, 0xfb, 0x5f, 0xf9, 0xf5, 0xca, 0x1a, 0x9d,
|
||||
0xd6, 0x8d, 0xf7, 0xe2, 0x1c, 0x95, 0x3f, 0xb9, 0xfd, 0xb0, 0x8a, 0x87,
|
||||
0xb2, 0x06, 0x1a, 0x8b, 0xce, 0x7d, 0xf2, 0x9c, 0x90, 0xe1, 0x47, 0x19,
|
||||
0x47, 0x06, 0x47, 0x7c, 0x5f, 0xdb, 0xe3, 0x44, 0xc6, 0x91, 0x8a, 0x57,
|
||||
0x6b, 0x7c, 0x59, 0xe3, 0xc7, 0x1e, 0x37, 0x61, 0xba, 0x57, 0x8c, 0x22,
|
||||
0x90, 0xa6, 0x77, 0x44, 0x62, 0x70, 0xe0, 0xc1, 0xfc, 0x9d, 0x00, 0x7f,
|
||||
0x09, 0xd6, 0x5b, 0x4f, 0x51, 0x1f, 0xfa, 0x94, 0xe8, 0x67, 0x3f, 0x4e,
|
||||
0xd4, 0x72, 0xde, 0x57, 0xc1, 0x8f, 0x3d, 0xcf, 0x40, 0x9f, 0x1e, 0xce,
|
||||
0x9f, 0xdb, 0xdc, 0x5f, 0xc0, 0xff, 0x7e, 0xbd, 0x63, 0x94, 0xfd, 0xcd,
|
||||
0x71, 0xb8, 0x8b, 0x79, 0xb8, 0x05, 0x1e, 0x74, 0xc5, 0x43, 0xca, 0xe4,
|
||||
0x41, 0xd5, 0x19, 0xeb, 0x3e, 0x85, 0x46, 0x1c, 0x49, 0x5c, 0xa0, 0x5f,
|
||||
0xa1, 0x3e, 0x2c, 0x8f, 0xed, 0x36, 0xe4, 0x1a, 0xa4, 0x7d, 0x61, 0xb6,
|
||||
0x2f, 0x24, 0x76, 0x2e, 0xb7, 0xae, 0x0b, 0xf2, 0xba, 0x80, 0xb1, 0x0e,
|
||||
0xf3, 0xc8, 0x53, 0x7d, 0x1e, 0x7e, 0x25, 0x8f, 0x6a, 0xdf, 0xdc, 0x7c,
|
||||
0xb4, 0xf2, 0x49, 0x15, 0x9a, 0xfe, 0x50, 0x87, 0x0c, 0xbf, 0x51, 0xbd,
|
||||
0xd2, 0xcd, 0xfa, 0x73, 0x97, 0xea, 0x79, 0xe0, 0x64, 0x37, 0xea, 0xc5,
|
||||
0xc9, 0xee, 0xd3, 0x7c, 0xff, 0x32, 0x2f, 0x2d, 0xf4, 0x6e, 0x30, 0xb8,
|
||||
0xab, 0xb2, 0xd7, 0x1f, 0xbb, 0x1e, 0x15, 0x16, 0x3d, 0xd4, 0xb9, 0x0f,
|
||||
0xeb, 0x0f, 0xd0, 0x9f, 0x6e, 0xa0, 0xfe, 0x40, 0x33, 0xfb, 0x6c, 0xfb,
|
||||
0x3d, 0x72, 0xeb, 0xfe, 0xe3, 0xde, 0x23, 0x5b, 0x1a, 0xac, 0xe7, 0xc5,
|
||||
0xc4, 0xd8, 0x08, 0xce, 0x69, 0xe1, 0x7b, 0x7b, 0x3b, 0xe7, 0xf7, 0xb5,
|
||||
0x40, 0x84, 0xce, 0x4d, 0xbe, 0x46, 0xf6, 0x8a, 0x68, 0x10, 0xf6, 0x25,
|
||||
0x5f, 0xc7, 0xf7, 0x64, 0x08, 0xf3, 0xe5, 0x21, 0xfc, 0x3e, 0xd0, 0xe2,
|
||||
0xd7, 0x49, 0xbe, 0x3c, 0x04, 0x8c, 0x72, 0x5d, 0x18, 0x33, 0xdf, 0x11,
|
||||
0xc0, 0x21, 0xdf, 0x7c, 0xef, 0x08, 0xbc, 0xc7, 0xce, 0xfb, 0x50, 0x37,
|
||||
0x44, 0x0c, 0xfd, 0x73, 0x53, 0x8d, 0x4e, 0xdf, 0x5b, 0x63, 0xb8, 0x9f,
|
||||
0x51, 0x97, 0xe7, 0xda, 0x55, 0x81, 0x78, 0x2d, 0xcf, 0xbe, 0x37, 0xac,
|
||||
0xef, 0x12, 0x3d, 0x31, 0x68, 0xf6, 0xfd, 0x76, 0x3d, 0x90, 0x67, 0x72,
|
||||
0x7f, 0x1a, 0x1a, 0xfd, 0xf5, 0xa3, 0xbc, 0x47, 0x3c, 0xdc, 0xaf, 0xdd,
|
||||
0x99, 0x45, 0xbc, 0x16, 0x89, 0x0b, 0x23, 0xe0, 0x61, 0x6c, 0xc4, 0x29,
|
||||
0x8f, 0xa5, 0x1e, 0xea, 0x1c, 0xd8, 0xa5, 0xec, 0xcc, 0x9e, 0x0b, 0xbd,
|
||||
0x76, 0xb0, 0xfe, 0xbf, 0xd2, 0xef, 0x17, 0x51, 0xb6, 0x57, 0xee, 0x8b,
|
||||
0xf9, 0x8d, 0xf4, 0x6e, 0xca, 0x13, 0x69, 0x73, 0x6c, 0x7f, 0xcf, 0xb4,
|
||||
0x90, 0x5e, 0x85, 0x7c, 0xaf, 0x47, 0x2d, 0xfd, 0x07, 0xe4, 0x8b, 0xeb,
|
||||
0x81, 0xc7, 0xea, 0x95, 0xdf, 0x94, 0x7f, 0x95, 0x3f, 0xe1, 0xf7, 0xe8,
|
||||
0x4a, 0x12, 0x6b, 0x4c, 0xae, 0xa4, 0x84, 0xaf, 0x4f, 0x4e, 0xa9, 0x7b,
|
||||
0x1e, 0xeb, 0xb7, 0xc4, 0xa5, 0xfc, 0x07, 0xe2, 0xfb, 0x38, 0x2e, 0xd6,
|
||||
0x9f, 0x19, 0xb3, 0xfd, 0xbd, 0xe0, 0x3f, 0xeb, 0x3b, 0xc1, 0x23, 0xce,
|
||||
0xe7, 0xf1, 0x74, 0x83, 0xea, 0x7b, 0xe7, 0x7b, 0xef, 0x48, 0x3b, 0x3e,
|
||||
0xba, 0x9f, 0xdb, 0x47, 0x67, 0xfb, 0x60, 0x65, 0xaf, 0x5c, 0x57, 0xcf,
|
||||
0x71, 0xac, 0x89, 0xa6, 0x0d, 0xf8, 0x7d, 0x23, 0xec, 0x47, 0xde, 0x84,
|
||||
0xfd, 0x4e, 0xef, 0x52, 0x23, 0x8e, 0xf2, 0xa9, 0x60, 0x2c, 0x2c, 0xcc,
|
||||
0x27, 0xfb, 0x8e, 0x5c, 0xbc, 0x44, 0x62, 0x9f, 0x0d, 0x06, 0x31, 0x5f,
|
||||
0xd2, 0x84, 0x63, 0xbc, 0x14, 0xf7, 0x1e, 0x71, 0x08, 0x79, 0xf1, 0xe9,
|
||||
0x31, 0xe0, 0x27, 0xe2, 0x55, 0xec, 0x53, 0x78, 0x90, 0xee, 0x53, 0xad,
|
||||
0x04, 0x34, 0x67, 0x06, 0x39, 0xde, 0x4b, 0xdd, 0xf4, 0xfb, 0xe2, 0xac,
|
||||
0x08, 0x49, 0xf4, 0x99, 0xf9, 0x8b, 0xb8, 0xf6, 0x5a, 0xfc, 0xff, 0xa8,
|
||||
0x71, 0x4e, 0xf5, 0xc9, 0x88, 0x63, 0x6c, 0xc3, 0xf1, 0xae, 0xe5, 0xc6,
|
||||
0xbb, 0xe2, 0xa9, 0xd4, 0xed, 0x18, 0xdf, 0xab, 0xe7, 0xc6, 0xb7, 0xd2,
|
||||
0x4f, 0xf2, 0x7d, 0xd7, 0xbc, 0x3f, 0xe7, 0xee, 0x8f, 0xf7, 0xd3, 0x85,
|
||||
0x27, 0x16, 0xdf, 0xc0, 0x8d, 0xd5, 0xf2, 0xfc, 0x92, 0x39, 0x7d, 0x72,
|
||||
0x6e, 0xfe, 0xa1, 0xde, 0xbd, 0x61, 0xc4, 0xc3, 0x7f, 0x69, 0x4a, 0x77,
|
||||
0x8f, 0xc8, 0x15, 0x00, 0x00, 0x00 };
|
||||
|
||||
static u8 bnx2_TPAT_b09FwText[] = {
|
||||
0xbd, 0x58, 0x5d, 0x6c, 0x1c, 0xd5, 0x15, 0x3e, 0x73, 0x67, 0xd6, 0x3b,
|
||||
|
@ -64,8 +64,8 @@
|
||||
|
||||
#define DRV_MODULE_NAME "tg3"
|
||||
#define PFX DRV_MODULE_NAME ": "
|
||||
#define DRV_MODULE_VERSION "3.91"
|
||||
#define DRV_MODULE_RELDATE "April 18, 2008"
|
||||
#define DRV_MODULE_VERSION "3.92"
|
||||
#define DRV_MODULE_RELDATE "May 2, 2008"
|
||||
|
||||
#define TG3_DEF_MAC_MODE 0
|
||||
#define TG3_DEF_RX_MODE 0
|
||||
@ -1656,12 +1656,76 @@ static int tg3_set_power_state(struct tg3 *tp, pci_power_t state)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* tp->lock is held. */
|
||||
static void tg3_wait_for_event_ack(struct tg3 *tp)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* Wait for up to 2.5 milliseconds */
|
||||
for (i = 0; i < 250000; i++) {
|
||||
if (!(tr32(GRC_RX_CPU_EVENT) & GRC_RX_CPU_DRIVER_EVENT))
|
||||
break;
|
||||
udelay(10);
|
||||
}
|
||||
}
|
||||
|
||||
/* tp->lock is held. */
|
||||
static void tg3_ump_link_report(struct tg3 *tp)
|
||||
{
|
||||
u32 reg;
|
||||
u32 val;
|
||||
|
||||
if (!(tp->tg3_flags2 & TG3_FLG2_5780_CLASS) ||
|
||||
!(tp->tg3_flags & TG3_FLAG_ENABLE_ASF))
|
||||
return;
|
||||
|
||||
tg3_wait_for_event_ack(tp);
|
||||
|
||||
tg3_write_mem(tp, NIC_SRAM_FW_CMD_MBOX, FWCMD_NICDRV_LINK_UPDATE);
|
||||
|
||||
tg3_write_mem(tp, NIC_SRAM_FW_CMD_LEN_MBOX, 14);
|
||||
|
||||
val = 0;
|
||||
if (!tg3_readphy(tp, MII_BMCR, ®))
|
||||
val = reg << 16;
|
||||
if (!tg3_readphy(tp, MII_BMSR, ®))
|
||||
val |= (reg & 0xffff);
|
||||
tg3_write_mem(tp, NIC_SRAM_FW_CMD_DATA_MBOX, val);
|
||||
|
||||
val = 0;
|
||||
if (!tg3_readphy(tp, MII_ADVERTISE, ®))
|
||||
val = reg << 16;
|
||||
if (!tg3_readphy(tp, MII_LPA, ®))
|
||||
val |= (reg & 0xffff);
|
||||
tg3_write_mem(tp, NIC_SRAM_FW_CMD_DATA_MBOX + 4, val);
|
||||
|
||||
val = 0;
|
||||
if (!(tp->tg3_flags2 & TG3_FLG2_MII_SERDES)) {
|
||||
if (!tg3_readphy(tp, MII_CTRL1000, ®))
|
||||
val = reg << 16;
|
||||
if (!tg3_readphy(tp, MII_STAT1000, ®))
|
||||
val |= (reg & 0xffff);
|
||||
}
|
||||
tg3_write_mem(tp, NIC_SRAM_FW_CMD_DATA_MBOX + 8, val);
|
||||
|
||||
if (!tg3_readphy(tp, MII_PHYADDR, ®))
|
||||
val = reg << 16;
|
||||
else
|
||||
val = 0;
|
||||
tg3_write_mem(tp, NIC_SRAM_FW_CMD_DATA_MBOX + 12, val);
|
||||
|
||||
val = tr32(GRC_RX_CPU_EVENT);
|
||||
val |= GRC_RX_CPU_DRIVER_EVENT;
|
||||
tw32_f(GRC_RX_CPU_EVENT, val);
|
||||
}
|
||||
|
||||
static void tg3_link_report(struct tg3 *tp)
|
||||
{
|
||||
if (!netif_carrier_ok(tp->dev)) {
|
||||
if (netif_msg_link(tp))
|
||||
printk(KERN_INFO PFX "%s: Link is down.\n",
|
||||
tp->dev->name);
|
||||
tg3_ump_link_report(tp);
|
||||
} else if (netif_msg_link(tp)) {
|
||||
printk(KERN_INFO PFX "%s: Link is up at %d Mbps, %s duplex.\n",
|
||||
tp->dev->name,
|
||||
@ -1679,6 +1743,7 @@ static void tg3_link_report(struct tg3 *tp)
|
||||
"on" : "off",
|
||||
(tp->link_config.active_flowctrl & TG3_FLOW_CTRL_RX) ?
|
||||
"on" : "off");
|
||||
tg3_ump_link_report(tp);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2097,9 +2162,11 @@ static int tg3_setup_copper_phy(struct tg3 *tp, int force_reset)
|
||||
MAC_STATUS_LNKSTATE_CHANGED));
|
||||
udelay(40);
|
||||
|
||||
tp->mi_mode = MAC_MI_MODE_BASE;
|
||||
tw32_f(MAC_MI_MODE, tp->mi_mode);
|
||||
udelay(80);
|
||||
if ((tp->mi_mode & MAC_MI_MODE_AUTO_POLL) != 0) {
|
||||
tw32_f(MAC_MI_MODE,
|
||||
(tp->mi_mode & ~MAC_MI_MODE_AUTO_POLL));
|
||||
udelay(80);
|
||||
}
|
||||
|
||||
tg3_writephy(tp, MII_TG3_AUX_CTRL, 0x02);
|
||||
|
||||
@ -5498,19 +5565,17 @@ static void tg3_stop_fw(struct tg3 *tp)
|
||||
if ((tp->tg3_flags & TG3_FLAG_ENABLE_ASF) &&
|
||||
!(tp->tg3_flags3 & TG3_FLG3_ENABLE_APE)) {
|
||||
u32 val;
|
||||
int i;
|
||||
|
||||
/* Wait for RX cpu to ACK the previous event. */
|
||||
tg3_wait_for_event_ack(tp);
|
||||
|
||||
tg3_write_mem(tp, NIC_SRAM_FW_CMD_MBOX, FWCMD_NICDRV_PAUSE_FW);
|
||||
val = tr32(GRC_RX_CPU_EVENT);
|
||||
val |= (1 << 14);
|
||||
val |= GRC_RX_CPU_DRIVER_EVENT;
|
||||
tw32(GRC_RX_CPU_EVENT, val);
|
||||
|
||||
/* Wait for RX cpu to ACK the event. */
|
||||
for (i = 0; i < 100; i++) {
|
||||
if (!(tr32(GRC_RX_CPU_EVENT) & (1 << 14)))
|
||||
break;
|
||||
udelay(1);
|
||||
}
|
||||
/* Wait for RX cpu to ACK this event. */
|
||||
tg3_wait_for_event_ack(tp);
|
||||
}
|
||||
}
|
||||
|
||||
@ -7102,7 +7167,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
||||
tp->link_config.autoneg = tp->link_config.orig_autoneg;
|
||||
}
|
||||
|
||||
tp->mi_mode = MAC_MI_MODE_BASE;
|
||||
tp->mi_mode &= ~MAC_MI_MODE_AUTO_POLL;
|
||||
tw32_f(MAC_MI_MODE, tp->mi_mode);
|
||||
udelay(80);
|
||||
|
||||
@ -7400,14 +7465,16 @@ static void tg3_timer(unsigned long __opaque)
|
||||
if (tp->tg3_flags & TG3_FLAG_ENABLE_ASF) {
|
||||
u32 val;
|
||||
|
||||
tg3_wait_for_event_ack(tp);
|
||||
|
||||
tg3_write_mem(tp, NIC_SRAM_FW_CMD_MBOX,
|
||||
FWCMD_NICDRV_ALIVE3);
|
||||
tg3_write_mem(tp, NIC_SRAM_FW_CMD_LEN_MBOX, 4);
|
||||
/* 5 seconds timeout */
|
||||
tg3_write_mem(tp, NIC_SRAM_FW_CMD_DATA_MBOX, 5);
|
||||
val = tr32(GRC_RX_CPU_EVENT);
|
||||
val |= (1 << 14);
|
||||
tw32(GRC_RX_CPU_EVENT, val);
|
||||
val |= GRC_RX_CPU_DRIVER_EVENT;
|
||||
tw32_f(GRC_RX_CPU_EVENT, val);
|
||||
}
|
||||
tp->asf_counter = tp->asf_multiplier;
|
||||
}
|
||||
@ -9568,14 +9635,9 @@ static int tg3_test_loopback(struct tg3 *tp)
|
||||
|
||||
/* Turn off link-based power management. */
|
||||
cpmuctrl = tr32(TG3_CPMU_CTRL);
|
||||
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 ||
|
||||
GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5761_AX)
|
||||
tw32(TG3_CPMU_CTRL,
|
||||
cpmuctrl & ~(CPMU_CTRL_LINK_SPEED_MODE |
|
||||
CPMU_CTRL_LINK_AWARE_MODE));
|
||||
else
|
||||
tw32(TG3_CPMU_CTRL,
|
||||
cpmuctrl & ~CPMU_CTRL_LINK_AWARE_MODE);
|
||||
tw32(TG3_CPMU_CTRL,
|
||||
cpmuctrl & ~(CPMU_CTRL_LINK_SPEED_MODE |
|
||||
CPMU_CTRL_LINK_AWARE_MODE));
|
||||
}
|
||||
|
||||
if (tg3_run_loopback(tp, TG3_MAC_LOOPBACK))
|
||||
@ -9892,7 +9954,7 @@ static void __devinit tg3_get_nvram_size(struct tg3 *tp)
|
||||
return;
|
||||
}
|
||||
}
|
||||
tp->nvram_size = 0x80000;
|
||||
tp->nvram_size = TG3_NVRAM_SIZE_512KB;
|
||||
}
|
||||
|
||||
static void __devinit tg3_get_nvram_info(struct tg3 *tp)
|
||||
@ -10033,11 +10095,14 @@ static void __devinit tg3_get_5755_nvram_info(struct tg3 *tp)
|
||||
tp->nvram_pagesize = 264;
|
||||
if (nvcfg1 == FLASH_5755VENDOR_ATMEL_FLASH_1 ||
|
||||
nvcfg1 == FLASH_5755VENDOR_ATMEL_FLASH_5)
|
||||
tp->nvram_size = (protect ? 0x3e200 : 0x80000);
|
||||
tp->nvram_size = (protect ? 0x3e200 :
|
||||
TG3_NVRAM_SIZE_512KB);
|
||||
else if (nvcfg1 == FLASH_5755VENDOR_ATMEL_FLASH_2)
|
||||
tp->nvram_size = (protect ? 0x1f200 : 0x40000);
|
||||
tp->nvram_size = (protect ? 0x1f200 :
|
||||
TG3_NVRAM_SIZE_256KB);
|
||||
else
|
||||
tp->nvram_size = (protect ? 0x1f200 : 0x20000);
|
||||
tp->nvram_size = (protect ? 0x1f200 :
|
||||
TG3_NVRAM_SIZE_128KB);
|
||||
break;
|
||||
case FLASH_5752VENDOR_ST_M45PE10:
|
||||
case FLASH_5752VENDOR_ST_M45PE20:
|
||||
@ -10047,11 +10112,17 @@ static void __devinit tg3_get_5755_nvram_info(struct tg3 *tp)
|
||||
tp->tg3_flags2 |= TG3_FLG2_FLASH;
|
||||
tp->nvram_pagesize = 256;
|
||||
if (nvcfg1 == FLASH_5752VENDOR_ST_M45PE10)
|
||||
tp->nvram_size = (protect ? 0x10000 : 0x20000);
|
||||
tp->nvram_size = (protect ?
|
||||
TG3_NVRAM_SIZE_64KB :
|
||||
TG3_NVRAM_SIZE_128KB);
|
||||
else if (nvcfg1 == FLASH_5752VENDOR_ST_M45PE20)
|
||||
tp->nvram_size = (protect ? 0x10000 : 0x40000);
|
||||
tp->nvram_size = (protect ?
|
||||
TG3_NVRAM_SIZE_64KB :
|
||||
TG3_NVRAM_SIZE_256KB);
|
||||
else
|
||||
tp->nvram_size = (protect ? 0x20000 : 0x80000);
|
||||
tp->nvram_size = (protect ?
|
||||
TG3_NVRAM_SIZE_128KB :
|
||||
TG3_NVRAM_SIZE_512KB);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -10145,25 +10216,25 @@ static void __devinit tg3_get_5761_nvram_info(struct tg3 *tp)
|
||||
case FLASH_5761VENDOR_ATMEL_MDB161D:
|
||||
case FLASH_5761VENDOR_ST_A_M45PE16:
|
||||
case FLASH_5761VENDOR_ST_M_M45PE16:
|
||||
tp->nvram_size = 0x100000;
|
||||
tp->nvram_size = TG3_NVRAM_SIZE_2MB;
|
||||
break;
|
||||
case FLASH_5761VENDOR_ATMEL_ADB081D:
|
||||
case FLASH_5761VENDOR_ATMEL_MDB081D:
|
||||
case FLASH_5761VENDOR_ST_A_M45PE80:
|
||||
case FLASH_5761VENDOR_ST_M_M45PE80:
|
||||
tp->nvram_size = 0x80000;
|
||||
tp->nvram_size = TG3_NVRAM_SIZE_1MB;
|
||||
break;
|
||||
case FLASH_5761VENDOR_ATMEL_ADB041D:
|
||||
case FLASH_5761VENDOR_ATMEL_MDB041D:
|
||||
case FLASH_5761VENDOR_ST_A_M45PE40:
|
||||
case FLASH_5761VENDOR_ST_M_M45PE40:
|
||||
tp->nvram_size = 0x40000;
|
||||
tp->nvram_size = TG3_NVRAM_SIZE_512KB;
|
||||
break;
|
||||
case FLASH_5761VENDOR_ATMEL_ADB021D:
|
||||
case FLASH_5761VENDOR_ATMEL_MDB021D:
|
||||
case FLASH_5761VENDOR_ST_A_M45PE20:
|
||||
case FLASH_5761VENDOR_ST_M_M45PE20:
|
||||
tp->nvram_size = 0x20000;
|
||||
tp->nvram_size = TG3_NVRAM_SIZE_256KB;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -11764,6 +11835,12 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
|
||||
tp->phy_otp = TG3_OTP_DEFAULT;
|
||||
}
|
||||
|
||||
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 ||
|
||||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5761)
|
||||
tp->mi_mode = MAC_MI_MODE_500KHZ_CONST;
|
||||
else
|
||||
tp->mi_mode = MAC_MI_MODE_BASE;
|
||||
|
||||
tp->coalesce_mode = 0;
|
||||
if (GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5700_AX &&
|
||||
GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5700_BX)
|
||||
@ -12692,7 +12769,7 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
|
||||
tp->mac_mode = TG3_DEF_MAC_MODE;
|
||||
tp->rx_mode = TG3_DEF_RX_MODE;
|
||||
tp->tx_mode = TG3_DEF_TX_MODE;
|
||||
tp->mi_mode = MAC_MI_MODE_BASE;
|
||||
|
||||
if (tg3_debug > 0)
|
||||
tp->msg_enable = tg3_debug;
|
||||
else
|
||||
|
@ -415,7 +415,7 @@
|
||||
#define MAC_MI_MODE_CLK_10MHZ 0x00000001
|
||||
#define MAC_MI_MODE_SHORT_PREAMBLE 0x00000002
|
||||
#define MAC_MI_MODE_AUTO_POLL 0x00000010
|
||||
#define MAC_MI_MODE_CORE_CLK_62MHZ 0x00008000
|
||||
#define MAC_MI_MODE_500KHZ_CONST 0x00008000
|
||||
#define MAC_MI_MODE_BASE 0x000c0000 /* XXX magic values XXX */
|
||||
#define MAC_AUTO_POLL_STATUS 0x00000458
|
||||
#define MAC_AUTO_POLL_ERROR 0x00000001
|
||||
@ -1429,6 +1429,7 @@
|
||||
#define GRC_LCLCTRL_AUTO_SEEPROM 0x01000000
|
||||
#define GRC_TIMER 0x0000680c
|
||||
#define GRC_RX_CPU_EVENT 0x00006810
|
||||
#define GRC_RX_CPU_DRIVER_EVENT 0x00004000
|
||||
#define GRC_RX_TIMER_REF 0x00006814
|
||||
#define GRC_RX_CPU_SEM 0x00006818
|
||||
#define GRC_REMOTE_RX_CPU_ATTN 0x0000681c
|
||||
@ -1676,6 +1677,7 @@
|
||||
#define FWCMD_NICDRV_IPV6ADDR_CHG 0x00000004
|
||||
#define FWCMD_NICDRV_FIX_DMAR 0x00000005
|
||||
#define FWCMD_NICDRV_FIX_DMAW 0x00000006
|
||||
#define FWCMD_NICDRV_LINK_UPDATE 0x0000000c
|
||||
#define FWCMD_NICDRV_ALIVE2 0x0000000d
|
||||
#define FWCMD_NICDRV_ALIVE3 0x0000000e
|
||||
#define NIC_SRAM_FW_CMD_LEN_MBOX 0x00000b7c
|
||||
@ -2576,6 +2578,13 @@ struct tg3 {
|
||||
|
||||
int nvram_lock_cnt;
|
||||
u32 nvram_size;
|
||||
#define TG3_NVRAM_SIZE_64KB 0x00010000
|
||||
#define TG3_NVRAM_SIZE_128KB 0x00020000
|
||||
#define TG3_NVRAM_SIZE_256KB 0x00040000
|
||||
#define TG3_NVRAM_SIZE_512KB 0x00080000
|
||||
#define TG3_NVRAM_SIZE_1MB 0x00100000
|
||||
#define TG3_NVRAM_SIZE_2MB 0x00200000
|
||||
|
||||
u32 nvram_pagesize;
|
||||
u32 nvram_jedecnum;
|
||||
|
||||
@ -2584,10 +2593,10 @@ struct tg3 {
|
||||
#define JEDEC_SAIFUN 0x4f
|
||||
#define JEDEC_SST 0xbf
|
||||
|
||||
#define ATMEL_AT24C64_CHIP_SIZE (64 * 1024)
|
||||
#define ATMEL_AT24C64_CHIP_SIZE TG3_NVRAM_SIZE_64KB
|
||||
#define ATMEL_AT24C64_PAGE_SIZE (32)
|
||||
|
||||
#define ATMEL_AT24C512_CHIP_SIZE (512 * 1024)
|
||||
#define ATMEL_AT24C512_CHIP_SIZE TG3_NVRAM_SIZE_512KB
|
||||
#define ATMEL_AT24C512_PAGE_SIZE (128)
|
||||
|
||||
#define ATMEL_AT45DB0X1B_PAGE_POS 9
|
||||
|
@ -691,6 +691,10 @@ struct b43_wl {
|
||||
|
||||
struct mutex mutex;
|
||||
spinlock_t irq_lock;
|
||||
/* R/W lock for data transmission.
|
||||
* Transmissions on 2+ queues can run concurrently, but somebody else
|
||||
* might sync with TX by write_lock_irqsave()'ing. */
|
||||
rwlock_t tx_lock;
|
||||
/* Lock for LEDs access. */
|
||||
spinlock_t leds_lock;
|
||||
/* Lock for SHM access. */
|
||||
|
@ -729,6 +729,7 @@ static void b43_synchronize_irq(struct b43_wldev *dev)
|
||||
*/
|
||||
void b43_dummy_transmission(struct b43_wldev *dev)
|
||||
{
|
||||
struct b43_wl *wl = dev->wl;
|
||||
struct b43_phy *phy = &dev->phy;
|
||||
unsigned int i, max_loop;
|
||||
u16 value;
|
||||
@ -755,6 +756,9 @@ void b43_dummy_transmission(struct b43_wldev *dev)
|
||||
return;
|
||||
}
|
||||
|
||||
spin_lock_irq(&wl->irq_lock);
|
||||
write_lock(&wl->tx_lock);
|
||||
|
||||
for (i = 0; i < 5; i++)
|
||||
b43_ram_write(dev, i * 4, buffer[i]);
|
||||
|
||||
@ -795,6 +799,9 @@ void b43_dummy_transmission(struct b43_wldev *dev)
|
||||
}
|
||||
if (phy->radio_ver == 0x2050 && phy->radio_rev <= 0x5)
|
||||
b43_radio_write16(dev, 0x0051, 0x0037);
|
||||
|
||||
write_unlock(&wl->tx_lock);
|
||||
spin_unlock_irq(&wl->irq_lock);
|
||||
}
|
||||
|
||||
static void key_write(struct b43_wldev *dev,
|
||||
@ -2840,24 +2847,31 @@ static int b43_op_tx(struct ieee80211_hw *hw,
|
||||
{
|
||||
struct b43_wl *wl = hw_to_b43_wl(hw);
|
||||
struct b43_wldev *dev = wl->current_dev;
|
||||
int err = -ENODEV;
|
||||
unsigned long flags;
|
||||
int err;
|
||||
|
||||
if (unlikely(skb->len < 2 + 2 + 6)) {
|
||||
/* Too short, this can't be a valid frame. */
|
||||
return -EINVAL;
|
||||
dev_kfree_skb_any(skb);
|
||||
return NETDEV_TX_OK;
|
||||
}
|
||||
B43_WARN_ON(skb_shinfo(skb)->nr_frags);
|
||||
|
||||
if (unlikely(!dev))
|
||||
goto out;
|
||||
if (unlikely(b43_status(dev) < B43_STAT_STARTED))
|
||||
goto out;
|
||||
/* TX is done without a global lock. */
|
||||
if (b43_using_pio_transfers(dev))
|
||||
err = b43_pio_tx(dev, skb, ctl);
|
||||
else
|
||||
err = b43_dma_tx(dev, skb, ctl);
|
||||
out:
|
||||
return NETDEV_TX_BUSY;
|
||||
|
||||
/* Transmissions on seperate queues can run concurrently. */
|
||||
read_lock_irqsave(&wl->tx_lock, flags);
|
||||
|
||||
err = -ENODEV;
|
||||
if (likely(b43_status(dev) >= B43_STAT_STARTED)) {
|
||||
if (b43_using_pio_transfers(dev))
|
||||
err = b43_pio_tx(dev, skb, ctl);
|
||||
else
|
||||
err = b43_dma_tx(dev, skb, ctl);
|
||||
}
|
||||
|
||||
read_unlock_irqrestore(&wl->tx_lock, flags);
|
||||
|
||||
if (unlikely(err))
|
||||
return NETDEV_TX_BUSY;
|
||||
return NETDEV_TX_OK;
|
||||
@ -3476,7 +3490,9 @@ static void b43_wireless_core_stop(struct b43_wldev *dev)
|
||||
spin_unlock_irqrestore(&wl->irq_lock, flags);
|
||||
b43_synchronize_irq(dev);
|
||||
|
||||
write_lock_irqsave(&wl->tx_lock, flags);
|
||||
b43_set_status(dev, B43_STAT_INITIALIZED);
|
||||
write_unlock_irqrestore(&wl->tx_lock, flags);
|
||||
|
||||
b43_pio_stop(dev);
|
||||
mutex_unlock(&wl->mutex);
|
||||
@ -3485,8 +3501,6 @@ static void b43_wireless_core_stop(struct b43_wldev *dev)
|
||||
cancel_delayed_work_sync(&dev->periodic_work);
|
||||
mutex_lock(&wl->mutex);
|
||||
|
||||
ieee80211_stop_queues(wl->hw); //FIXME this could cause a deadlock, as mac80211 seems buggy.
|
||||
|
||||
b43_mac_suspend(dev);
|
||||
free_irq(dev->dev->irq, dev);
|
||||
b43dbg(wl, "Wireless interface stopped\n");
|
||||
@ -4326,6 +4340,14 @@ static int b43_wireless_core_attach(struct b43_wldev *dev)
|
||||
err = -EOPNOTSUPP;
|
||||
goto err_powerdown;
|
||||
}
|
||||
if (1 /* disable A-PHY */) {
|
||||
/* FIXME: For now we disable the A-PHY on multi-PHY devices. */
|
||||
if (dev->phy.type != B43_PHYTYPE_N) {
|
||||
have_2ghz_phy = 1;
|
||||
have_5ghz_phy = 0;
|
||||
}
|
||||
}
|
||||
|
||||
dev->phy.gmode = have_2ghz_phy;
|
||||
tmp = dev->phy.gmode ? B43_TMSLOW_GMODE : 0;
|
||||
b43_wireless_core_reset(dev, tmp);
|
||||
@ -4490,6 +4512,7 @@ static int b43_wireless_init(struct ssb_device *dev)
|
||||
memset(wl, 0, sizeof(*wl));
|
||||
wl->hw = hw;
|
||||
spin_lock_init(&wl->irq_lock);
|
||||
rwlock_init(&wl->tx_lock);
|
||||
spin_lock_init(&wl->leds_lock);
|
||||
spin_lock_init(&wl->shm_lock);
|
||||
mutex_init(&wl->mutex);
|
||||
|
@ -742,7 +742,6 @@ struct iwl3945_priv {
|
||||
u8 direct_ssid_len;
|
||||
u8 direct_ssid[IW_ESSID_MAX_SIZE];
|
||||
struct iwl3945_scan_cmd *scan;
|
||||
u8 only_active_channel;
|
||||
|
||||
/* spinlock */
|
||||
spinlock_t lock; /* protect general shared data */
|
||||
|
@ -996,7 +996,6 @@ struct iwl_priv {
|
||||
u8 direct_ssid_len;
|
||||
u8 direct_ssid[IW_ESSID_MAX_SIZE];
|
||||
struct iwl4965_scan_cmd *scan;
|
||||
u8 only_active_channel;
|
||||
|
||||
/* spinlock */
|
||||
spinlock_t lock; /* protect general shared data */
|
||||
|
@ -4968,17 +4968,6 @@ static int iwl3945_get_channels_for_scan(struct iwl3945_priv *priv,
|
||||
if (channels[i].flags & IEEE80211_CHAN_DISABLED)
|
||||
continue;
|
||||
|
||||
if (channels[i].hw_value ==
|
||||
le16_to_cpu(priv->active_rxon.channel)) {
|
||||
if (iwl3945_is_associated(priv)) {
|
||||
IWL_DEBUG_SCAN
|
||||
("Skipping current channel %d\n",
|
||||
le16_to_cpu(priv->active_rxon.channel));
|
||||
continue;
|
||||
}
|
||||
} else if (priv->only_active_channel)
|
||||
continue;
|
||||
|
||||
scan_ch->channel = channels[i].hw_value;
|
||||
|
||||
ch_info = iwl3945_get_channel_info(priv, band, scan_ch->channel);
|
||||
@ -6303,12 +6292,17 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
|
||||
priv->direct_ssid, priv->direct_ssid_len);
|
||||
direct_mask = 1;
|
||||
} else if (!iwl3945_is_associated(priv) && priv->essid_len) {
|
||||
IWL_DEBUG_SCAN
|
||||
("Kicking off one direct scan for '%s' when not associated\n",
|
||||
iwl3945_escape_essid(priv->essid, priv->essid_len));
|
||||
scan->direct_scan[0].id = WLAN_EID_SSID;
|
||||
scan->direct_scan[0].len = priv->essid_len;
|
||||
memcpy(scan->direct_scan[0].ssid, priv->essid, priv->essid_len);
|
||||
direct_mask = 1;
|
||||
} else
|
||||
} else {
|
||||
IWL_DEBUG_SCAN("Kicking off one indirect scan.\n");
|
||||
direct_mask = 0;
|
||||
}
|
||||
|
||||
/* We don't build a direct scan probe request; the uCode will do
|
||||
* that based on the direct_mask added to each channel entry */
|
||||
@ -6346,23 +6340,18 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
|
||||
if (priv->iw_mode == IEEE80211_IF_TYPE_MNTR)
|
||||
scan->filter_flags = RXON_FILTER_PROMISC_MSK;
|
||||
|
||||
if (direct_mask) {
|
||||
IWL_DEBUG_SCAN
|
||||
("Initiating direct scan for %s.\n",
|
||||
iwl3945_escape_essid(priv->essid, priv->essid_len));
|
||||
if (direct_mask)
|
||||
scan->channel_count =
|
||||
iwl3945_get_channels_for_scan(
|
||||
priv, band, 1, /* active */
|
||||
direct_mask,
|
||||
(void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]);
|
||||
} else {
|
||||
IWL_DEBUG_SCAN("Initiating indirect scan.\n");
|
||||
else
|
||||
scan->channel_count =
|
||||
iwl3945_get_channels_for_scan(
|
||||
priv, band, 0, /* passive */
|
||||
direct_mask,
|
||||
(void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]);
|
||||
}
|
||||
|
||||
cmd.len += le16_to_cpu(scan->tx_cmd.len) +
|
||||
scan->channel_count * sizeof(struct iwl3945_scan_channel);
|
||||
@ -7314,8 +7303,6 @@ static void iwl3945_mac_reset_tsf(struct ieee80211_hw *hw)
|
||||
return;
|
||||
}
|
||||
|
||||
priv->only_active_channel = 0;
|
||||
|
||||
iwl3945_set_rate(priv);
|
||||
|
||||
mutex_unlock(&priv->mutex);
|
||||
|
@ -4633,17 +4633,6 @@ static int iwl4965_get_channels_for_scan(struct iwl_priv *priv,
|
||||
if (channels[i].flags & IEEE80211_CHAN_DISABLED)
|
||||
continue;
|
||||
|
||||
if (ieee80211_frequency_to_channel(channels[i].center_freq) ==
|
||||
le16_to_cpu(priv->active_rxon.channel)) {
|
||||
if (iwl_is_associated(priv)) {
|
||||
IWL_DEBUG_SCAN
|
||||
("Skipping current channel %d\n",
|
||||
le16_to_cpu(priv->active_rxon.channel));
|
||||
continue;
|
||||
}
|
||||
} else if (priv->only_active_channel)
|
||||
continue;
|
||||
|
||||
scan_ch->channel = ieee80211_frequency_to_channel(channels[i].center_freq);
|
||||
|
||||
ch_info = iwl_get_channel_info(priv, band,
|
||||
@ -5824,11 +5813,15 @@ static void iwl4965_bg_request_scan(struct work_struct *data)
|
||||
priv->direct_ssid, priv->direct_ssid_len);
|
||||
direct_mask = 1;
|
||||
} else if (!iwl_is_associated(priv) && priv->essid_len) {
|
||||
IWL_DEBUG_SCAN
|
||||
("Kicking off one direct scan for '%s' when not associated\n",
|
||||
iwl4965_escape_essid(priv->essid, priv->essid_len));
|
||||
scan->direct_scan[0].id = WLAN_EID_SSID;
|
||||
scan->direct_scan[0].len = priv->essid_len;
|
||||
memcpy(scan->direct_scan[0].ssid, priv->essid, priv->essid_len);
|
||||
direct_mask = 1;
|
||||
} else {
|
||||
IWL_DEBUG_SCAN("Kicking off one indirect scan.\n");
|
||||
direct_mask = 0;
|
||||
}
|
||||
|
||||
@ -5881,23 +5874,18 @@ static void iwl4965_bg_request_scan(struct work_struct *data)
|
||||
if (priv->iw_mode == IEEE80211_IF_TYPE_MNTR)
|
||||
scan->filter_flags = RXON_FILTER_PROMISC_MSK;
|
||||
|
||||
if (direct_mask) {
|
||||
IWL_DEBUG_SCAN
|
||||
("Initiating direct scan for %s.\n",
|
||||
iwl4965_escape_essid(priv->essid, priv->essid_len));
|
||||
if (direct_mask)
|
||||
scan->channel_count =
|
||||
iwl4965_get_channels_for_scan(
|
||||
priv, band, 1, /* active */
|
||||
direct_mask,
|
||||
(void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]);
|
||||
} else {
|
||||
IWL_DEBUG_SCAN("Initiating indirect scan.\n");
|
||||
else
|
||||
scan->channel_count =
|
||||
iwl4965_get_channels_for_scan(
|
||||
priv, band, 0, /* passive */
|
||||
direct_mask,
|
||||
(void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]);
|
||||
}
|
||||
|
||||
cmd.len += le16_to_cpu(scan->tx_cmd.len) +
|
||||
scan->channel_count * sizeof(struct iwl4965_scan_channel);
|
||||
@ -7061,8 +7049,6 @@ static void iwl4965_mac_reset_tsf(struct ieee80211_hw *hw)
|
||||
return;
|
||||
}
|
||||
|
||||
priv->only_active_channel = 0;
|
||||
|
||||
iwl4965_set_rate(priv);
|
||||
|
||||
mutex_unlock(&priv->mutex);
|
||||
|
@ -298,7 +298,8 @@ static int lbs_do_scan(struct lbs_private *priv, uint8_t bsstype,
|
||||
uint8_t *tlv; /* pointer into our current, growing TLV storage area */
|
||||
|
||||
lbs_deb_enter_args(LBS_DEB_SCAN, "bsstype %d, chanlist[].chan %d, chan_count %d",
|
||||
bsstype, chan_list[0].channumber, chan_count);
|
||||
bsstype, chan_list ? chan_list[0].channumber : -1,
|
||||
chan_count);
|
||||
|
||||
/* create the fixed part for scan command */
|
||||
scan_cmd = kzalloc(MAX_SCAN_CFG_ALLOC, GFP_KERNEL);
|
||||
|
@ -363,7 +363,7 @@ static void rt2400pci_config_erp(struct rt2x00_dev *rt2x00dev,
|
||||
rt2x00pci_register_write(rt2x00dev, TXCSR1, reg);
|
||||
|
||||
rt2x00pci_register_read(rt2x00dev, ARCSR2, ®);
|
||||
rt2x00_set_field32(®, ARCSR2_SIGNAL, 0x00 | preamble_mask);
|
||||
rt2x00_set_field32(®, ARCSR2_SIGNAL, 0x00);
|
||||
rt2x00_set_field32(®, ARCSR2_SERVICE, 0x04);
|
||||
rt2x00_set_field32(®, ARCSR2_LENGTH, get_duration(ACK_SIZE, 10));
|
||||
rt2x00pci_register_write(rt2x00dev, ARCSR2, reg);
|
||||
@ -1308,7 +1308,7 @@ static int rt2400pci_init_eeprom(struct rt2x00_dev *rt2x00dev)
|
||||
|
||||
if (value == LED_MODE_TXRX_ACTIVITY) {
|
||||
rt2x00dev->led_qual.rt2x00dev = rt2x00dev;
|
||||
rt2x00dev->led_radio.type = LED_TYPE_ACTIVITY;
|
||||
rt2x00dev->led_qual.type = LED_TYPE_ACTIVITY;
|
||||
rt2x00dev->led_qual.led_dev.brightness_set =
|
||||
rt2400pci_brightness_set;
|
||||
rt2x00dev->led_qual.led_dev.blink_set =
|
||||
|
@ -370,7 +370,7 @@ static void rt2500pci_config_erp(struct rt2x00_dev *rt2x00dev,
|
||||
rt2x00pci_register_write(rt2x00dev, TXCSR1, reg);
|
||||
|
||||
rt2x00pci_register_read(rt2x00dev, ARCSR2, ®);
|
||||
rt2x00_set_field32(®, ARCSR2_SIGNAL, 0x00 | preamble_mask);
|
||||
rt2x00_set_field32(®, ARCSR2_SIGNAL, 0x00);
|
||||
rt2x00_set_field32(®, ARCSR2_SERVICE, 0x04);
|
||||
rt2x00_set_field32(®, ARCSR2_LENGTH, get_duration(ACK_SIZE, 10));
|
||||
rt2x00pci_register_write(rt2x00dev, ARCSR2, reg);
|
||||
@ -1485,7 +1485,7 @@ static int rt2500pci_init_eeprom(struct rt2x00_dev *rt2x00dev)
|
||||
|
||||
if (value == LED_MODE_TXRX_ACTIVITY) {
|
||||
rt2x00dev->led_qual.rt2x00dev = rt2x00dev;
|
||||
rt2x00dev->led_radio.type = LED_TYPE_ACTIVITY;
|
||||
rt2x00dev->led_qual.type = LED_TYPE_ACTIVITY;
|
||||
rt2x00dev->led_qual.led_dev.brightness_set =
|
||||
rt2500pci_brightness_set;
|
||||
rt2x00dev->led_qual.led_dev.blink_set =
|
||||
|
@ -1394,7 +1394,7 @@ static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev)
|
||||
|
||||
if (value == LED_MODE_TXRX_ACTIVITY) {
|
||||
rt2x00dev->led_qual.rt2x00dev = rt2x00dev;
|
||||
rt2x00dev->led_radio.type = LED_TYPE_ACTIVITY;
|
||||
rt2x00dev->led_qual.type = LED_TYPE_ACTIVITY;
|
||||
rt2x00dev->led_qual.led_dev.brightness_set =
|
||||
rt2500usb_brightness_set;
|
||||
rt2x00dev->led_qual.led_dev.blink_set =
|
||||
|
@ -114,6 +114,7 @@ int rt2x00lib_enable_radio(struct rt2x00_dev *rt2x00dev)
|
||||
return status;
|
||||
|
||||
rt2x00leds_led_radio(rt2x00dev, true);
|
||||
rt2x00led_led_activity(rt2x00dev, true);
|
||||
|
||||
__set_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags);
|
||||
|
||||
@ -157,6 +158,7 @@ void rt2x00lib_disable_radio(struct rt2x00_dev *rt2x00dev)
|
||||
* Disable radio.
|
||||
*/
|
||||
rt2x00dev->ops->lib->set_device_state(rt2x00dev, STATE_RADIO_OFF);
|
||||
rt2x00led_led_activity(rt2x00dev, false);
|
||||
rt2x00leds_led_radio(rt2x00dev, false);
|
||||
}
|
||||
|
||||
|
@ -72,6 +72,21 @@ void rt2x00leds_led_quality(struct rt2x00_dev *rt2x00dev, int rssi)
|
||||
}
|
||||
}
|
||||
|
||||
void rt2x00led_led_activity(struct rt2x00_dev *rt2x00dev, bool enabled)
|
||||
{
|
||||
struct rt2x00_led *led = &rt2x00dev->led_qual;
|
||||
unsigned int brightness;
|
||||
|
||||
if ((led->type != LED_TYPE_ACTIVITY) || !(led->flags & LED_REGISTERED))
|
||||
return;
|
||||
|
||||
brightness = enabled ? LED_FULL : LED_OFF;
|
||||
if (brightness != led->led_dev.brightness) {
|
||||
led->led_dev.brightness_set(&led->led_dev, brightness);
|
||||
led->led_dev.brightness = brightness;
|
||||
}
|
||||
}
|
||||
|
||||
void rt2x00leds_led_assoc(struct rt2x00_dev *rt2x00dev, bool enabled)
|
||||
{
|
||||
struct rt2x00_led *led = &rt2x00dev->led_assoc;
|
||||
|
@ -185,6 +185,7 @@ static inline void rt2x00rfkill_resume(struct rt2x00_dev *rt2x00dev)
|
||||
*/
|
||||
#ifdef CONFIG_RT2X00_LIB_LEDS
|
||||
void rt2x00leds_led_quality(struct rt2x00_dev *rt2x00dev, int rssi);
|
||||
void rt2x00led_led_activity(struct rt2x00_dev *rt2x00dev, bool enabled);
|
||||
void rt2x00leds_led_assoc(struct rt2x00_dev *rt2x00dev, bool enabled);
|
||||
void rt2x00leds_led_radio(struct rt2x00_dev *rt2x00dev, bool enabled);
|
||||
void rt2x00leds_register(struct rt2x00_dev *rt2x00dev);
|
||||
@ -197,6 +198,11 @@ static inline void rt2x00leds_led_quality(struct rt2x00_dev *rt2x00dev,
|
||||
{
|
||||
}
|
||||
|
||||
static inline void rt2x00led_led_activity(struct rt2x00_dev *rt2x00dev,
|
||||
bool enabled)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void rt2x00leds_led_assoc(struct rt2x00_dev *rt2x00dev,
|
||||
bool enabled)
|
||||
{
|
||||
|
@ -2087,7 +2087,7 @@ static int rt61pci_init_eeprom(struct rt2x00_dev *rt2x00dev)
|
||||
|
||||
if (value == LED_MODE_SIGNAL_STRENGTH) {
|
||||
rt2x00dev->led_qual.rt2x00dev = rt2x00dev;
|
||||
rt2x00dev->led_radio.type = LED_TYPE_QUALITY;
|
||||
rt2x00dev->led_qual.type = LED_TYPE_QUALITY;
|
||||
rt2x00dev->led_qual.led_dev.brightness_set =
|
||||
rt61pci_brightness_set;
|
||||
rt2x00dev->led_qual.led_dev.blink_set =
|
||||
|
@ -1647,7 +1647,7 @@ static int rt73usb_init_eeprom(struct rt2x00_dev *rt2x00dev)
|
||||
|
||||
if (value == LED_MODE_SIGNAL_STRENGTH) {
|
||||
rt2x00dev->led_qual.rt2x00dev = rt2x00dev;
|
||||
rt2x00dev->led_radio.type = LED_TYPE_QUALITY;
|
||||
rt2x00dev->led_qual.type = LED_TYPE_QUALITY;
|
||||
rt2x00dev->led_qual.led_dev.brightness_set =
|
||||
rt73usb_brightness_set;
|
||||
rt2x00dev->led_qual.led_dev.blink_set =
|
||||
|
@ -1803,7 +1803,7 @@ static void __exit netif_exit(void)
|
||||
if (is_initial_xendomain())
|
||||
return;
|
||||
|
||||
return xenbus_unregister_driver(&netfront);
|
||||
xenbus_unregister_driver(&netfront);
|
||||
}
|
||||
module_exit(netif_exit);
|
||||
|
||||
|
@ -641,6 +641,23 @@ struct proc_dir_entry *proc_mkdir_mode(const char *name, mode_t mode,
|
||||
return ent;
|
||||
}
|
||||
|
||||
struct proc_dir_entry *proc_net_mkdir(struct net *net, const char *name,
|
||||
struct proc_dir_entry *parent)
|
||||
{
|
||||
struct proc_dir_entry *ent;
|
||||
|
||||
ent = __proc_create(&parent, name, S_IFDIR | S_IRUGO | S_IXUGO, 2);
|
||||
if (ent) {
|
||||
ent->data = net;
|
||||
if (proc_register(parent, ent) < 0) {
|
||||
kfree(ent);
|
||||
ent = NULL;
|
||||
}
|
||||
}
|
||||
return ent;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(proc_net_mkdir);
|
||||
|
||||
struct proc_dir_entry *proc_mkdir(const char *name,
|
||||
struct proc_dir_entry *parent)
|
||||
{
|
||||
|
@ -159,17 +159,6 @@ struct net *get_proc_net(const struct inode *inode)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(get_proc_net);
|
||||
|
||||
struct proc_dir_entry *proc_net_mkdir(struct net *net, const char *name,
|
||||
struct proc_dir_entry *parent)
|
||||
{
|
||||
struct proc_dir_entry *pde;
|
||||
pde = proc_mkdir_mode(name, S_IRUGO | S_IXUGO, parent);
|
||||
if (pde != NULL)
|
||||
pde->data = net;
|
||||
return pde;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(proc_net_mkdir);
|
||||
|
||||
static __net_init int proc_net_ns_init(struct net *net)
|
||||
{
|
||||
struct proc_dir_entry *netd, *net_statd;
|
||||
|
@ -113,7 +113,7 @@ struct ieee80211_hdr {
|
||||
struct ieee80211s_hdr {
|
||||
u8 flags;
|
||||
u8 ttl;
|
||||
u8 seqnum[3];
|
||||
__le32 seqnum;
|
||||
u8 eaddr1[6];
|
||||
u8 eaddr2[6];
|
||||
u8 eaddr3[6];
|
||||
|
@ -97,7 +97,9 @@ struct __fdb_entry
|
||||
__u8 port_no;
|
||||
__u8 is_local;
|
||||
__u32 ageing_timer_value;
|
||||
__u32 unused;
|
||||
__u8 port_hi;
|
||||
__u8 pad0;
|
||||
__u16 unused;
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
@ -69,14 +69,9 @@
|
||||
|
||||
/***************************** INCLUDES *****************************/
|
||||
|
||||
/* This header is used in user-space, therefore need to be sanitised
|
||||
* for that purpose. Those includes are usually not compatible with glibc.
|
||||
* To know which includes to use in user-space, check iwlib.h. */
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/types.h> /* for "caddr_t" et al */
|
||||
#include <linux/types.h> /* for __u* and __s* typedefs */
|
||||
#include <linux/socket.h> /* for "struct sockaddr" et al */
|
||||
#include <linux/if.h> /* for IFNAMSIZ and co... */
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
/***************************** VERSION *****************************/
|
||||
/*
|
||||
|
@ -176,12 +176,11 @@ int vlan_proc_add_dev(struct net_device *vlandev)
|
||||
struct vlan_dev_info *dev_info = vlan_dev_info(vlandev);
|
||||
struct vlan_net *vn = net_generic(dev_net(vlandev), vlan_net_id);
|
||||
|
||||
dev_info->dent = proc_create(vlandev->name, S_IFREG|S_IRUSR|S_IWUSR,
|
||||
vn->proc_vlan_dir, &vlandev_fops);
|
||||
dev_info->dent =
|
||||
proc_create_data(vlandev->name, S_IFREG|S_IRUSR|S_IWUSR,
|
||||
vn->proc_vlan_dir, &vlandev_fops, vlandev);
|
||||
if (!dev_info->dent)
|
||||
return -ENOBUFS;
|
||||
|
||||
dev_info->dent->data = vlandev;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -417,12 +417,10 @@ int atm_proc_dev_register(struct atm_dev *dev)
|
||||
goto err_out;
|
||||
sprintf(dev->proc_name,"%s:%d",dev->type, dev->number);
|
||||
|
||||
dev->proc_entry = proc_create(dev->proc_name, 0, atm_proc_root,
|
||||
&proc_atm_dev_ops);
|
||||
dev->proc_entry = proc_create_data(dev->proc_name, 0, atm_proc_root,
|
||||
&proc_atm_dev_ops, dev);
|
||||
if (!dev->proc_entry)
|
||||
goto err_free_name;
|
||||
dev->proc_entry->data = dev;
|
||||
dev->proc_entry->owner = THIS_MODULE;
|
||||
return 0;
|
||||
err_free_name:
|
||||
kfree(dev->proc_name);
|
||||
|
@ -135,7 +135,7 @@ static int bnep_ctrl_set_netfilter(struct bnep_session *s, __be16 *data, int len
|
||||
if (len < 2)
|
||||
return -EILSEQ;
|
||||
|
||||
n = ntohs(get_unaligned(data));
|
||||
n = get_unaligned_be16(data);
|
||||
data++; len -= 2;
|
||||
|
||||
if (len < n)
|
||||
@ -150,8 +150,8 @@ static int bnep_ctrl_set_netfilter(struct bnep_session *s, __be16 *data, int len
|
||||
int i;
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
f[i].start = ntohs(get_unaligned(data++));
|
||||
f[i].end = ntohs(get_unaligned(data++));
|
||||
f[i].start = get_unaligned_be16(data++);
|
||||
f[i].end = get_unaligned_be16(data++);
|
||||
|
||||
BT_DBG("proto filter start %d end %d",
|
||||
f[i].start, f[i].end);
|
||||
@ -180,7 +180,7 @@ static int bnep_ctrl_set_mcfilter(struct bnep_session *s, u8 *data, int len)
|
||||
if (len < 2)
|
||||
return -EILSEQ;
|
||||
|
||||
n = ntohs(get_unaligned((__be16 *) data));
|
||||
n = get_unaligned_be16(data);
|
||||
data += 2; len -= 2;
|
||||
|
||||
if (len < n)
|
||||
|
@ -129,8 +129,7 @@ static void hci_cc_write_link_policy(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
|
||||
conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle));
|
||||
if (conn) {
|
||||
__le16 policy = get_unaligned((__le16 *) (sent + 2));
|
||||
conn->link_policy = __le16_to_cpu(policy);
|
||||
conn->link_policy = get_unaligned_le16(sent + 2);
|
||||
}
|
||||
|
||||
hci_dev_unlock(hdev);
|
||||
@ -313,7 +312,7 @@ static void hci_cc_write_voice_setting(struct hci_dev *hdev, struct sk_buff *skb
|
||||
return;
|
||||
|
||||
if (!status) {
|
||||
__u16 setting = __le16_to_cpu(get_unaligned((__le16 *) sent));
|
||||
__u16 setting = get_unaligned_le16(sent);
|
||||
|
||||
if (hdev->voice_setting != setting) {
|
||||
hdev->voice_setting = setting;
|
||||
@ -1152,8 +1151,8 @@ static inline void hci_num_comp_pkts_evt(struct hci_dev *hdev, struct sk_buff *s
|
||||
struct hci_conn *conn;
|
||||
__u16 handle, count;
|
||||
|
||||
handle = __le16_to_cpu(get_unaligned(ptr++));
|
||||
count = __le16_to_cpu(get_unaligned(ptr++));
|
||||
handle = get_unaligned_le16(ptr++);
|
||||
count = get_unaligned_le16(ptr++);
|
||||
|
||||
conn = hci_conn_hash_lookup_handle(hdev, handle);
|
||||
if (conn) {
|
||||
|
@ -440,7 +440,7 @@ static int hci_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
|
||||
skb->dev = (void *) hdev;
|
||||
|
||||
if (bt_cb(skb)->pkt_type == HCI_COMMAND_PKT) {
|
||||
u16 opcode = __le16_to_cpu(get_unaligned((__le16 *) skb->data));
|
||||
u16 opcode = get_unaligned_le16(skb->data);
|
||||
u16 ogf = hci_opcode_ogf(opcode);
|
||||
u16 ocf = hci_opcode_ocf(opcode);
|
||||
|
||||
|
@ -1827,7 +1827,7 @@ static inline int l2cap_information_rsp(struct l2cap_conn *conn, struct l2cap_cm
|
||||
del_timer(&conn->info_timer);
|
||||
|
||||
if (type == L2CAP_IT_FEAT_MASK)
|
||||
conn->feat_mask = __le32_to_cpu(get_unaligned((__le32 *) rsp->data));
|
||||
conn->feat_mask = get_unaligned_le32(rsp->data);
|
||||
|
||||
l2cap_conn_start(conn);
|
||||
|
||||
|
@ -285,7 +285,11 @@ int br_fdb_fillbuf(struct net_bridge *br, void *buf,
|
||||
|
||||
/* convert from internal format to API */
|
||||
memcpy(fe->mac_addr, f->addr.addr, ETH_ALEN);
|
||||
|
||||
/* due to ABI compat need to split into hi/lo */
|
||||
fe->port_no = f->dst->port_no;
|
||||
fe->port_hi = f->dst->port_no >> 8;
|
||||
|
||||
fe->is_local = f->is_local;
|
||||
if (!f->is_static)
|
||||
fe->ageing_timer_value = jiffies_to_clock_t(jiffies - f->ageing_timer);
|
||||
|
@ -58,12 +58,12 @@ static inline void br_set_ticks(unsigned char *dest, int j)
|
||||
{
|
||||
unsigned long ticks = (STP_HZ * j)/ HZ;
|
||||
|
||||
put_unaligned(htons(ticks), (__be16 *)dest);
|
||||
put_unaligned_be16(ticks, dest);
|
||||
}
|
||||
|
||||
static inline int br_get_ticks(const unsigned char *src)
|
||||
{
|
||||
unsigned long ticks = ntohs(get_unaligned((__be16 *)src));
|
||||
unsigned long ticks = get_unaligned_be16(src);
|
||||
|
||||
return DIV_ROUND_UP(ticks * HZ, STP_HZ);
|
||||
}
|
||||
|
@ -162,7 +162,7 @@ struct net_dma {
|
||||
struct dma_client client;
|
||||
spinlock_t lock;
|
||||
cpumask_t channel_mask;
|
||||
struct dma_chan *channels[NR_CPUS];
|
||||
struct dma_chan **channels;
|
||||
};
|
||||
|
||||
static enum dma_state_client
|
||||
@ -2444,7 +2444,7 @@ static struct netif_rx_stats *softnet_get_online(loff_t *pos)
|
||||
{
|
||||
struct netif_rx_stats *rc = NULL;
|
||||
|
||||
while (*pos < NR_CPUS)
|
||||
while (*pos < nr_cpu_ids)
|
||||
if (cpu_online(*pos)) {
|
||||
rc = &per_cpu(netdev_rx_stat, *pos);
|
||||
break;
|
||||
@ -3776,6 +3776,7 @@ int register_netdevice(struct net_device *dev)
|
||||
}
|
||||
}
|
||||
|
||||
netdev_initialize_kobject(dev);
|
||||
ret = netdev_register_kobject(dev);
|
||||
if (ret)
|
||||
goto err_uninit;
|
||||
@ -4208,7 +4209,8 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
|
||||
}
|
||||
|
||||
/* Fixup kobjects */
|
||||
err = device_rename(&dev->dev, dev->name);
|
||||
netdev_unregister_kobject(dev);
|
||||
err = netdev_register_kobject(dev);
|
||||
WARN_ON(err);
|
||||
|
||||
/* Add the device back in the hashes */
|
||||
@ -4324,7 +4326,7 @@ netdev_dma_event(struct dma_client *client, struct dma_chan *chan,
|
||||
spin_lock(&net_dma->lock);
|
||||
switch (state) {
|
||||
case DMA_RESOURCE_AVAILABLE:
|
||||
for (i = 0; i < NR_CPUS; i++)
|
||||
for (i = 0; i < nr_cpu_ids; i++)
|
||||
if (net_dma->channels[i] == chan) {
|
||||
found = 1;
|
||||
break;
|
||||
@ -4339,7 +4341,7 @@ netdev_dma_event(struct dma_client *client, struct dma_chan *chan,
|
||||
}
|
||||
break;
|
||||
case DMA_RESOURCE_REMOVED:
|
||||
for (i = 0; i < NR_CPUS; i++)
|
||||
for (i = 0; i < nr_cpu_ids; i++)
|
||||
if (net_dma->channels[i] == chan) {
|
||||
found = 1;
|
||||
pos = i;
|
||||
@ -4366,6 +4368,13 @@ netdev_dma_event(struct dma_client *client, struct dma_chan *chan,
|
||||
*/
|
||||
static int __init netdev_dma_register(void)
|
||||
{
|
||||
net_dma.channels = kzalloc(nr_cpu_ids * sizeof(struct net_dma),
|
||||
GFP_KERNEL);
|
||||
if (unlikely(!net_dma.channels)) {
|
||||
printk(KERN_NOTICE
|
||||
"netdev_dma: no memory for net_dma.channels\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
spin_lock_init(&net_dma.lock);
|
||||
dma_cap_set(DMA_MEMCPY, net_dma.client.cap_mask);
|
||||
dma_async_client_register(&net_dma.client);
|
||||
|
@ -213,7 +213,7 @@ unsigned int sk_run_filter(struct sk_buff *skb, struct sock_filter *filter, int
|
||||
load_w:
|
||||
ptr = load_pointer(skb, k, 4, &tmp);
|
||||
if (ptr != NULL) {
|
||||
A = ntohl(get_unaligned((__be32 *)ptr));
|
||||
A = get_unaligned_be32(ptr);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
@ -222,7 +222,7 @@ load_w:
|
||||
load_h:
|
||||
ptr = load_pointer(skb, k, 2, &tmp);
|
||||
if (ptr != NULL) {
|
||||
A = ntohs(get_unaligned((__be16 *)ptr));
|
||||
A = get_unaligned_be16(ptr);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
|
@ -1430,11 +1430,10 @@ void neigh_table_init_no_netlink(struct neigh_table *tbl)
|
||||
panic("cannot create neighbour cache statistics");
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
tbl->pde = proc_create(tbl->id, 0, init_net.proc_net_stat,
|
||||
&neigh_stat_seq_fops);
|
||||
tbl->pde = proc_create_data(tbl->id, 0, init_net.proc_net_stat,
|
||||
&neigh_stat_seq_fops, tbl);
|
||||
if (!tbl->pde)
|
||||
panic("cannot create neighbour proc dir entry");
|
||||
tbl->pde->data = tbl;
|
||||
#endif
|
||||
|
||||
tbl->hash_mask = 1;
|
||||
|
@ -449,7 +449,6 @@ int netdev_register_kobject(struct net_device *net)
|
||||
struct device *dev = &(net->dev);
|
||||
struct attribute_group **groups = net->sysfs_groups;
|
||||
|
||||
device_initialize(dev);
|
||||
dev->class = &net_class;
|
||||
dev->platform_data = net;
|
||||
dev->groups = groups;
|
||||
@ -470,6 +469,12 @@ int netdev_register_kobject(struct net_device *net)
|
||||
return device_add(dev);
|
||||
}
|
||||
|
||||
void netdev_initialize_kobject(struct net_device *net)
|
||||
{
|
||||
struct device *device = &(net->dev);
|
||||
device_initialize(device);
|
||||
}
|
||||
|
||||
int netdev_kobject_init(void)
|
||||
{
|
||||
return class_register(&net_class);
|
||||
|
@ -4,5 +4,5 @@
|
||||
int netdev_kobject_init(void);
|
||||
int netdev_register_kobject(struct net_device *);
|
||||
void netdev_unregister_kobject(struct net_device *);
|
||||
|
||||
void netdev_initialize_kobject(struct net_device *);
|
||||
#endif
|
||||
|
@ -3570,15 +3570,14 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname)
|
||||
if (err)
|
||||
goto out1;
|
||||
|
||||
pkt_dev->entry = proc_create(ifname, 0600,
|
||||
pg_proc_dir, &pktgen_if_fops);
|
||||
pkt_dev->entry = proc_create_data(ifname, 0600, pg_proc_dir,
|
||||
&pktgen_if_fops, pkt_dev);
|
||||
if (!pkt_dev->entry) {
|
||||
printk(KERN_ERR "pktgen: cannot create %s/%s procfs entry.\n",
|
||||
PG_PROC_DIR, ifname);
|
||||
err = -EINVAL;
|
||||
goto out2;
|
||||
}
|
||||
pkt_dev->entry->data = pkt_dev;
|
||||
#ifdef CONFIG_XFRM
|
||||
pkt_dev->ipsmode = XFRM_MODE_TRANSPORT;
|
||||
pkt_dev->ipsproto = IPPROTO_ESP;
|
||||
@ -3628,7 +3627,8 @@ static int __init pktgen_create_thread(int cpu)
|
||||
kthread_bind(p, cpu);
|
||||
t->tsk = p;
|
||||
|
||||
pe = proc_create(t->tsk->comm, 0600, pg_proc_dir, &pktgen_thread_fops);
|
||||
pe = proc_create_data(t->tsk->comm, 0600, pg_proc_dir,
|
||||
&pktgen_thread_fops, t);
|
||||
if (!pe) {
|
||||
printk(KERN_ERR "pktgen: cannot create %s/%s procfs entry.\n",
|
||||
PG_PROC_DIR, t->tsk->comm);
|
||||
@ -3638,8 +3638,6 @@ static int __init pktgen_create_thread(int cpu)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
pe->data = t;
|
||||
|
||||
wake_up_process(p);
|
||||
|
||||
return 0;
|
||||
@ -3716,8 +3714,6 @@ static int __init pg_init(void)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
pe->data = NULL;
|
||||
|
||||
/* Register us to receive netdevice events */
|
||||
register_netdevice_notifier(&pktgen_notifier_block);
|
||||
|
||||
|
@ -228,11 +228,12 @@ static int sock_set_timeout(long *timeo_p, char __user *optval, int optlen)
|
||||
static int warned __read_mostly;
|
||||
|
||||
*timeo_p = 0;
|
||||
if (warned < 10 && net_ratelimit())
|
||||
if (warned < 10 && net_ratelimit()) {
|
||||
warned++;
|
||||
printk(KERN_INFO "sock_set_timeout: `%s' (pid %d) "
|
||||
"tries to set negative timeout\n",
|
||||
current->comm, task_pid_nr(current));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
*timeo_p = MAX_SCHEDULE_TIMEOUT;
|
||||
|
@ -716,7 +716,7 @@ static int ccid2_hc_tx_init(struct ccid *ccid, struct sock *sk)
|
||||
* packets for new connections, following the rules from [RFC3390]".
|
||||
* We need to convert the bytes of RFC3390 into the packets of RFC 4341.
|
||||
*/
|
||||
hctx->ccid2hctx_cwnd = min(4U, max(2U, 4380U / dp->dccps_mss_cache));
|
||||
hctx->ccid2hctx_cwnd = clamp(4380U / dp->dccps_mss_cache, 2U, 4U);
|
||||
|
||||
/* Make sure that Ack Ratio is enabled and within bounds. */
|
||||
max_ratio = DIV_ROUND_UP(hctx->ccid2hctx_cwnd, 2);
|
||||
|
@ -88,8 +88,8 @@ static void ccid3_hc_tx_set_state(struct sock *sk,
|
||||
static inline u64 rfc3390_initial_rate(struct sock *sk)
|
||||
{
|
||||
const struct ccid3_hc_tx_sock *hctx = ccid3_hc_tx_sk(sk);
|
||||
const __u32 w_init = min_t(__u32, 4 * hctx->ccid3hctx_s,
|
||||
max_t(__u32, 2 * hctx->ccid3hctx_s, 4380));
|
||||
const __u32 w_init = clamp_t(__u32, 4380U,
|
||||
2 * hctx->ccid3hctx_s, 4 * hctx->ccid3hctx_s);
|
||||
|
||||
return scaled_div(w_init << 6, hctx->ccid3hctx_rtt);
|
||||
}
|
||||
|
@ -983,7 +983,7 @@ static int cipso_v4_map_cat_enum_valid(const struct cipso_v4_doi *doi_def,
|
||||
return -EFAULT;
|
||||
|
||||
for (iter = 0; iter < enumcat_len; iter += 2) {
|
||||
cat = ntohs(get_unaligned((__be16 *)&enumcat[iter]));
|
||||
cat = get_unaligned_be16(&enumcat[iter]);
|
||||
if (cat <= cat_prev)
|
||||
return -EFAULT;
|
||||
cat_prev = cat;
|
||||
@ -1052,7 +1052,7 @@ static int cipso_v4_map_cat_enum_ntoh(const struct cipso_v4_doi *doi_def,
|
||||
|
||||
for (iter = 0; iter < net_cat_len; iter += 2) {
|
||||
ret_val = netlbl_secattr_catmap_setbit(secattr->attr.mls.cat,
|
||||
ntohs(get_unaligned((__be16 *)&net_cat[iter])),
|
||||
get_unaligned_be16(&net_cat[iter]),
|
||||
GFP_ATOMIC);
|
||||
if (ret_val != 0)
|
||||
return ret_val;
|
||||
@ -1086,10 +1086,9 @@ static int cipso_v4_map_cat_rng_valid(const struct cipso_v4_doi *doi_def,
|
||||
return -EFAULT;
|
||||
|
||||
for (iter = 0; iter < rngcat_len; iter += 4) {
|
||||
cat_high = ntohs(get_unaligned((__be16 *)&rngcat[iter]));
|
||||
cat_high = get_unaligned_be16(&rngcat[iter]);
|
||||
if ((iter + 4) <= rngcat_len)
|
||||
cat_low = ntohs(
|
||||
get_unaligned((__be16 *)&rngcat[iter + 2]));
|
||||
cat_low = get_unaligned_be16(&rngcat[iter + 2]);
|
||||
else
|
||||
cat_low = 0;
|
||||
|
||||
@ -1188,10 +1187,9 @@ static int cipso_v4_map_cat_rng_ntoh(const struct cipso_v4_doi *doi_def,
|
||||
u16 cat_high;
|
||||
|
||||
for (net_iter = 0; net_iter < net_cat_len; net_iter += 4) {
|
||||
cat_high = ntohs(get_unaligned((__be16 *)&net_cat[net_iter]));
|
||||
cat_high = get_unaligned_be16(&net_cat[net_iter]);
|
||||
if ((net_iter + 4) <= net_cat_len)
|
||||
cat_low = ntohs(
|
||||
get_unaligned((__be16 *)&net_cat[net_iter + 2]));
|
||||
cat_low = get_unaligned_be16(&net_cat[net_iter + 2]);
|
||||
else
|
||||
cat_low = 0;
|
||||
|
||||
@ -1562,7 +1560,7 @@ int cipso_v4_validate(unsigned char **option)
|
||||
}
|
||||
|
||||
rcu_read_lock();
|
||||
doi_def = cipso_v4_doi_search(ntohl(get_unaligned((__be32 *)&opt[2])));
|
||||
doi_def = cipso_v4_doi_search(get_unaligned_be32(&opt[2]));
|
||||
if (doi_def == NULL) {
|
||||
err_offset = 2;
|
||||
goto validate_return_locked;
|
||||
@ -1843,7 +1841,7 @@ static int cipso_v4_getattr(const unsigned char *cipso,
|
||||
if (cipso_v4_cache_check(cipso, cipso[1], secattr) == 0)
|
||||
return 0;
|
||||
|
||||
doi = ntohl(get_unaligned((__be32 *)&cipso[2]));
|
||||
doi = get_unaligned_be32(&cipso[2]);
|
||||
rcu_read_lock();
|
||||
doi_def = cipso_v4_doi_search(doi);
|
||||
if (doi_def == NULL)
|
||||
|
@ -169,14 +169,14 @@ clusterip_config_init(const struct ipt_clusterip_tgt_info *i, __be32 ip,
|
||||
|
||||
/* create proc dir entry */
|
||||
sprintf(buffer, "%u.%u.%u.%u", NIPQUAD(ip));
|
||||
c->pde = proc_create(buffer, S_IWUSR|S_IRUSR,
|
||||
clusterip_procdir, &clusterip_proc_fops);
|
||||
c->pde = proc_create_data(buffer, S_IWUSR|S_IRUSR,
|
||||
clusterip_procdir,
|
||||
&clusterip_proc_fops, c);
|
||||
if (!c->pde) {
|
||||
kfree(c);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
c->pde->data = c;
|
||||
#endif
|
||||
|
||||
write_lock_bh(&clusterip_lock);
|
||||
|
@ -101,8 +101,10 @@ static void hybla_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
|
||||
if (!tcp_is_cwnd_limited(sk, in_flight))
|
||||
return;
|
||||
|
||||
if (!ca->hybla_en)
|
||||
return tcp_reno_cong_avoid(sk, ack, in_flight);
|
||||
if (!ca->hybla_en) {
|
||||
tcp_reno_cong_avoid(sk, ack, in_flight);
|
||||
return;
|
||||
}
|
||||
|
||||
if (ca->rho == 0)
|
||||
hybla_recalc_param(sk);
|
||||
|
@ -1172,8 +1172,8 @@ static int tcp_check_dsack(struct tcp_sock *tp, struct sk_buff *ack_skb,
|
||||
struct tcp_sack_block_wire *sp, int num_sacks,
|
||||
u32 prior_snd_una)
|
||||
{
|
||||
u32 start_seq_0 = ntohl(get_unaligned(&sp[0].start_seq));
|
||||
u32 end_seq_0 = ntohl(get_unaligned(&sp[0].end_seq));
|
||||
u32 start_seq_0 = get_unaligned_be32(&sp[0].start_seq);
|
||||
u32 end_seq_0 = get_unaligned_be32(&sp[0].end_seq);
|
||||
int dup_sack = 0;
|
||||
|
||||
if (before(start_seq_0, TCP_SKB_CB(ack_skb)->ack_seq)) {
|
||||
@ -1181,8 +1181,8 @@ static int tcp_check_dsack(struct tcp_sock *tp, struct sk_buff *ack_skb,
|
||||
tcp_dsack_seen(tp);
|
||||
NET_INC_STATS_BH(LINUX_MIB_TCPDSACKRECV);
|
||||
} else if (num_sacks > 1) {
|
||||
u32 end_seq_1 = ntohl(get_unaligned(&sp[1].end_seq));
|
||||
u32 start_seq_1 = ntohl(get_unaligned(&sp[1].start_seq));
|
||||
u32 end_seq_1 = get_unaligned_be32(&sp[1].end_seq);
|
||||
u32 start_seq_1 = get_unaligned_be32(&sp[1].start_seq);
|
||||
|
||||
if (!after(end_seq_0, end_seq_1) &&
|
||||
!before(start_seq_0, start_seq_1)) {
|
||||
@ -1453,8 +1453,8 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb,
|
||||
for (i = 0; i < num_sacks; i++) {
|
||||
int dup_sack = !i && found_dup_sack;
|
||||
|
||||
sp[used_sacks].start_seq = ntohl(get_unaligned(&sp_wire[i].start_seq));
|
||||
sp[used_sacks].end_seq = ntohl(get_unaligned(&sp_wire[i].end_seq));
|
||||
sp[used_sacks].start_seq = get_unaligned_be32(&sp_wire[i].start_seq);
|
||||
sp[used_sacks].end_seq = get_unaligned_be32(&sp_wire[i].end_seq);
|
||||
|
||||
if (!tcp_is_sackblock_valid(tp, dup_sack,
|
||||
sp[used_sacks].start_seq,
|
||||
@ -3340,7 +3340,7 @@ void tcp_parse_options(struct sk_buff *skb, struct tcp_options_received *opt_rx,
|
||||
switch (opcode) {
|
||||
case TCPOPT_MSS:
|
||||
if (opsize == TCPOLEN_MSS && th->syn && !estab) {
|
||||
u16 in_mss = ntohs(get_unaligned((__be16 *)ptr));
|
||||
u16 in_mss = get_unaligned_be16(ptr);
|
||||
if (in_mss) {
|
||||
if (opt_rx->user_mss &&
|
||||
opt_rx->user_mss < in_mss)
|
||||
@ -3369,8 +3369,8 @@ void tcp_parse_options(struct sk_buff *skb, struct tcp_options_received *opt_rx,
|
||||
((estab && opt_rx->tstamp_ok) ||
|
||||
(!estab && sysctl_tcp_timestamps))) {
|
||||
opt_rx->saw_tstamp = 1;
|
||||
opt_rx->rcv_tsval = ntohl(get_unaligned((__be32 *)ptr));
|
||||
opt_rx->rcv_tsecr = ntohl(get_unaligned((__be32 *)(ptr+4)));
|
||||
opt_rx->rcv_tsval = get_unaligned_be32(ptr);
|
||||
opt_rx->rcv_tsecr = get_unaligned_be32(ptr + 4);
|
||||
}
|
||||
break;
|
||||
case TCPOPT_SACK_PERM:
|
||||
|
@ -2214,9 +2214,6 @@ static int tcp_seq_open(struct inode *inode, struct file *file)
|
||||
struct tcp_iter_state *s;
|
||||
int err;
|
||||
|
||||
if (unlikely(afinfo == NULL))
|
||||
return -EINVAL;
|
||||
|
||||
err = seq_open_net(inode, file, &afinfo->seq_ops,
|
||||
sizeof(struct tcp_iter_state));
|
||||
if (err < 0)
|
||||
@ -2241,10 +2238,9 @@ int tcp_proc_register(struct net *net, struct tcp_seq_afinfo *afinfo)
|
||||
afinfo->seq_ops.next = tcp_seq_next;
|
||||
afinfo->seq_ops.stop = tcp_seq_stop;
|
||||
|
||||
p = proc_net_fops_create(net, afinfo->name, S_IRUGO, &afinfo->seq_fops);
|
||||
if (p)
|
||||
p->data = afinfo;
|
||||
else
|
||||
p = proc_create_data(afinfo->name, S_IRUGO, net->proc_net,
|
||||
&afinfo->seq_fops, afinfo);
|
||||
if (!p)
|
||||
rc = -ENOMEM;
|
||||
return rc;
|
||||
}
|
||||
|
@ -167,8 +167,10 @@ static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
|
||||
struct tcp_sock *tp = tcp_sk(sk);
|
||||
struct vegas *vegas = inet_csk_ca(sk);
|
||||
|
||||
if (!vegas->doing_vegas_now)
|
||||
return tcp_reno_cong_avoid(sk, ack, in_flight);
|
||||
if (!vegas->doing_vegas_now) {
|
||||
tcp_reno_cong_avoid(sk, ack, in_flight);
|
||||
return;
|
||||
}
|
||||
|
||||
/* The key players are v_beg_snd_una and v_beg_snd_nxt.
|
||||
*
|
||||
|
@ -119,8 +119,10 @@ static void tcp_veno_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
|
||||
struct tcp_sock *tp = tcp_sk(sk);
|
||||
struct veno *veno = inet_csk_ca(sk);
|
||||
|
||||
if (!veno->doing_veno_now)
|
||||
return tcp_reno_cong_avoid(sk, ack, in_flight);
|
||||
if (!veno->doing_veno_now) {
|
||||
tcp_reno_cong_avoid(sk, ack, in_flight);
|
||||
return;
|
||||
}
|
||||
|
||||
/* limited by applications */
|
||||
if (!tcp_is_cwnd_limited(sk, in_flight))
|
||||
|
@ -1605,10 +1605,9 @@ int udp_proc_register(struct net *net, struct udp_seq_afinfo *afinfo)
|
||||
afinfo->seq_ops.next = udp_seq_next;
|
||||
afinfo->seq_ops.stop = udp_seq_stop;
|
||||
|
||||
p = proc_net_fops_create(net, afinfo->name, S_IRUGO, &afinfo->seq_fops);
|
||||
if (p)
|
||||
p->data = afinfo;
|
||||
else
|
||||
p = proc_create_data(afinfo->name, S_IRUGO, net->proc_net,
|
||||
&afinfo->seq_fops, afinfo);
|
||||
if (!p)
|
||||
rc = -ENOMEM;
|
||||
return rc;
|
||||
}
|
||||
|
@ -247,13 +247,11 @@ int snmp6_register_dev(struct inet6_dev *idev)
|
||||
if (!proc_net_devsnmp6)
|
||||
return -ENOENT;
|
||||
|
||||
p = proc_create(idev->dev->name, S_IRUGO,
|
||||
proc_net_devsnmp6, &snmp6_seq_fops);
|
||||
p = proc_create_data(idev->dev->name, S_IRUGO,
|
||||
proc_net_devsnmp6, &snmp6_seq_fops, idev);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
p->data = idev;
|
||||
|
||||
idev->stats.proc_dir_entry = p;
|
||||
return 0;
|
||||
}
|
||||
|
@ -197,6 +197,7 @@ static void ip6_frag_expire(unsigned long data)
|
||||
{
|
||||
struct frag_queue *fq;
|
||||
struct net_device *dev = NULL;
|
||||
struct net *net;
|
||||
|
||||
fq = container_of((struct inet_frag_queue *)data, struct frag_queue, q);
|
||||
|
||||
@ -207,7 +208,8 @@ static void ip6_frag_expire(unsigned long data)
|
||||
|
||||
fq_kill(fq);
|
||||
|
||||
dev = dev_get_by_index(&init_net, fq->iif);
|
||||
net = container_of(fq->q.net, struct net, ipv6.frags);
|
||||
dev = dev_get_by_index(net, fq->iif);
|
||||
if (!dev)
|
||||
goto out;
|
||||
|
||||
|
@ -451,12 +451,14 @@ static void iriap_getvaluebyclass_confirm(struct iriap_cb *self,
|
||||
n = 2;
|
||||
|
||||
/* Get length, MSB first */
|
||||
len = be16_to_cpu(get_unaligned((__be16 *)(fp+n))); n += 2;
|
||||
len = get_unaligned_be16(fp + n);
|
||||
n += 2;
|
||||
|
||||
IRDA_DEBUG(4, "%s(), len=%d\n", __func__, len);
|
||||
|
||||
/* Get object ID, MSB first */
|
||||
obj_id = be16_to_cpu(get_unaligned((__be16 *)(fp+n))); n += 2;
|
||||
obj_id = get_unaligned_be16(fp + n);
|
||||
n += 2;
|
||||
|
||||
type = fp[n++];
|
||||
IRDA_DEBUG(4, "%s(), Value type = %d\n", __func__, type);
|
||||
@ -506,7 +508,7 @@ static void iriap_getvaluebyclass_confirm(struct iriap_cb *self,
|
||||
value = irias_new_string_value(fp+n);
|
||||
break;
|
||||
case IAS_OCT_SEQ:
|
||||
value_len = be16_to_cpu(get_unaligned((__be16 *)(fp+n)));
|
||||
value_len = get_unaligned_be16(fp + n);
|
||||
n += 2;
|
||||
|
||||
/* Will truncate to IAS_MAX_OCTET_STRING bytes */
|
||||
|
@ -354,7 +354,7 @@ struct ieee80211_if_sta {
|
||||
int preq_queue_len;
|
||||
struct mesh_stats mshstats;
|
||||
struct mesh_config mshcfg;
|
||||
u8 mesh_seqnum[3];
|
||||
u32 mesh_seqnum;
|
||||
bool accepting_plinks;
|
||||
#endif
|
||||
u16 aid;
|
||||
|
@ -255,22 +255,8 @@ static int ieee80211_open(struct net_device *dev)
|
||||
|
||||
switch (sdata->vif.type) {
|
||||
case IEEE80211_IF_TYPE_WDS:
|
||||
if (is_zero_ether_addr(sdata->u.wds.remote_addr))
|
||||
if (!is_valid_ether_addr(sdata->u.wds.remote_addr))
|
||||
return -ENOLINK;
|
||||
|
||||
/* Create STA entry for the WDS peer */
|
||||
sta = sta_info_alloc(sdata, sdata->u.wds.remote_addr,
|
||||
GFP_KERNEL);
|
||||
if (!sta)
|
||||
return -ENOMEM;
|
||||
|
||||
sta->flags |= WLAN_STA_AUTHORIZED;
|
||||
|
||||
res = sta_info_insert(sta);
|
||||
if (res) {
|
||||
/* STA has been freed */
|
||||
return res;
|
||||
}
|
||||
break;
|
||||
case IEEE80211_IF_TYPE_VLAN:
|
||||
if (!sdata->u.vlan.ap)
|
||||
@ -337,10 +323,8 @@ static int ieee80211_open(struct net_device *dev)
|
||||
conf.type = sdata->vif.type;
|
||||
conf.mac_addr = dev->dev_addr;
|
||||
res = local->ops->add_interface(local_to_hw(local), &conf);
|
||||
if (res && !local->open_count && local->ops->stop)
|
||||
local->ops->stop(local_to_hw(local));
|
||||
if (res)
|
||||
return res;
|
||||
goto err_stop;
|
||||
|
||||
ieee80211_if_config(dev);
|
||||
ieee80211_reset_erp_info(dev);
|
||||
@ -353,9 +337,29 @@ static int ieee80211_open(struct net_device *dev)
|
||||
netif_carrier_on(dev);
|
||||
}
|
||||
|
||||
if (sdata->vif.type == IEEE80211_IF_TYPE_WDS) {
|
||||
/* Create STA entry for the WDS peer */
|
||||
sta = sta_info_alloc(sdata, sdata->u.wds.remote_addr,
|
||||
GFP_KERNEL);
|
||||
if (!sta) {
|
||||
res = -ENOMEM;
|
||||
goto err_del_interface;
|
||||
}
|
||||
|
||||
sta->flags |= WLAN_STA_AUTHORIZED;
|
||||
|
||||
res = sta_info_insert(sta);
|
||||
if (res) {
|
||||
/* STA has been freed */
|
||||
goto err_del_interface;
|
||||
}
|
||||
}
|
||||
|
||||
if (local->open_count == 0) {
|
||||
res = dev_open(local->mdev);
|
||||
WARN_ON(res);
|
||||
if (res)
|
||||
goto err_del_interface;
|
||||
tasklet_enable(&local->tx_pending_tasklet);
|
||||
tasklet_enable(&local->tasklet);
|
||||
}
|
||||
@ -390,6 +394,12 @@ static int ieee80211_open(struct net_device *dev)
|
||||
netif_start_queue(dev);
|
||||
|
||||
return 0;
|
||||
err_del_interface:
|
||||
local->ops->remove_interface(local_to_hw(local), &conf);
|
||||
err_stop:
|
||||
if (!local->open_count && local->ops->stop)
|
||||
local->ops->stop(local_to_hw(local));
|
||||
return res;
|
||||
}
|
||||
|
||||
static int ieee80211_stop(struct net_device *dev)
|
||||
@ -975,6 +985,7 @@ static int __ieee80211_if_config(struct net_device *dev,
|
||||
conf.ssid_len = sdata->u.sta.ssid_len;
|
||||
} else if (ieee80211_vif_is_mesh(&sdata->vif)) {
|
||||
conf.beacon = beacon;
|
||||
conf.beacon_control = control;
|
||||
ieee80211_start_mesh(dev);
|
||||
} else if (sdata->vif.type == IEEE80211_IF_TYPE_AP) {
|
||||
conf.ssid = sdata->u.ap.ssid;
|
||||
|
@ -8,6 +8,7 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <asm/unaligned.h>
|
||||
#include "ieee80211_i.h"
|
||||
#include "mesh.h"
|
||||
|
||||
@ -167,8 +168,8 @@ int mesh_rmc_check(u8 *sa, struct ieee80211s_hdr *mesh_hdr,
|
||||
struct rmc_entry *p, *n;
|
||||
|
||||
/* Don't care about endianness since only match matters */
|
||||
memcpy(&seqnum, mesh_hdr->seqnum, sizeof(mesh_hdr->seqnum));
|
||||
idx = mesh_hdr->seqnum[0] & rmc->idx_mask;
|
||||
memcpy(&seqnum, &mesh_hdr->seqnum, sizeof(mesh_hdr->seqnum));
|
||||
idx = le32_to_cpu(mesh_hdr->seqnum) & rmc->idx_mask;
|
||||
list_for_each_entry_safe(p, n, &rmc->bucket[idx].list, list) {
|
||||
++entries;
|
||||
if (time_after(jiffies, p->exp_time) ||
|
||||
@ -393,16 +394,8 @@ int ieee80211_new_mesh_header(struct ieee80211s_hdr *meshhdr,
|
||||
{
|
||||
meshhdr->flags = 0;
|
||||
meshhdr->ttl = sdata->u.sta.mshcfg.dot11MeshTTL;
|
||||
|
||||
meshhdr->seqnum[0] = sdata->u.sta.mesh_seqnum[0]++;
|
||||
meshhdr->seqnum[1] = sdata->u.sta.mesh_seqnum[1];
|
||||
meshhdr->seqnum[2] = sdata->u.sta.mesh_seqnum[2];
|
||||
|
||||
if (sdata->u.sta.mesh_seqnum[0] == 0) {
|
||||
sdata->u.sta.mesh_seqnum[1]++;
|
||||
if (sdata->u.sta.mesh_seqnum[1] == 0)
|
||||
sdata->u.sta.mesh_seqnum[2]++;
|
||||
}
|
||||
put_unaligned(cpu_to_le32(sdata->u.sta.mesh_seqnum), &meshhdr->seqnum);
|
||||
sdata->u.sta.mesh_seqnum++;
|
||||
|
||||
return 5;
|
||||
}
|
||||
|
@ -140,7 +140,7 @@ struct rmc_entry {
|
||||
|
||||
struct mesh_rmc {
|
||||
struct rmc_entry bucket[RMC_BUCKETS];
|
||||
u8 idx_mask;
|
||||
u32 idx_mask;
|
||||
};
|
||||
|
||||
|
||||
|
@ -230,10 +230,8 @@ void ieee80211_get_tkip_key(struct ieee80211_key_conf *keyconf,
|
||||
|
||||
iv16 = data[hdr_len] << 8;
|
||||
iv16 += data[hdr_len + 2];
|
||||
iv32 = data[hdr_len + 4] +
|
||||
(data[hdr_len + 5] >> 8) +
|
||||
(data[hdr_len + 6] >> 16) +
|
||||
(data[hdr_len + 7] >> 24);
|
||||
iv32 = data[hdr_len + 4] | (data[hdr_len + 5] << 8) |
|
||||
(data[hdr_len + 6] << 16) | (data[hdr_len + 7] << 24);
|
||||
|
||||
#ifdef CONFIG_TKIP_DEBUG
|
||||
printk(KERN_DEBUG "TKIP encrypt: iv16 = 0x%04x, iv32 = 0x%08x\n",
|
||||
|
@ -296,11 +296,11 @@ static int nf_conntrack_standalone_init_proc(void)
|
||||
pde = proc_net_fops_create(&init_net, "nf_conntrack", 0440, &ct_file_ops);
|
||||
if (!pde)
|
||||
goto out_nf_conntrack;
|
||||
pde = create_proc_entry("nf_conntrack", S_IRUGO, init_net.proc_net_stat);
|
||||
|
||||
pde = proc_create("nf_conntrack", S_IRUGO, init_net.proc_net_stat,
|
||||
&ct_cpu_seq_fops);
|
||||
if (!pde)
|
||||
goto out_stat_nf_conntrack;
|
||||
pde->proc_fops = &ct_cpu_seq_fops;
|
||||
pde->owner = THIS_MODULE;
|
||||
return 0;
|
||||
|
||||
out_stat_nf_conntrack:
|
||||
|
@ -936,25 +936,24 @@ int xt_proto_init(struct net *net, int af)
|
||||
#ifdef CONFIG_PROC_FS
|
||||
strlcpy(buf, xt_prefix[af], sizeof(buf));
|
||||
strlcat(buf, FORMAT_TABLES, sizeof(buf));
|
||||
proc = proc_net_fops_create(net, buf, 0440, &xt_table_ops);
|
||||
proc = proc_create_data(buf, 0440, net->proc_net, &xt_table_ops,
|
||||
(void *)(unsigned long)af);
|
||||
if (!proc)
|
||||
goto out;
|
||||
proc->data = (void *)(unsigned long)af;
|
||||
|
||||
|
||||
strlcpy(buf, xt_prefix[af], sizeof(buf));
|
||||
strlcat(buf, FORMAT_MATCHES, sizeof(buf));
|
||||
proc = proc_net_fops_create(net, buf, 0440, &xt_match_ops);
|
||||
proc = proc_create_data(buf, 0440, net->proc_net, &xt_match_ops,
|
||||
(void *)(unsigned long)af);
|
||||
if (!proc)
|
||||
goto out_remove_tables;
|
||||
proc->data = (void *)(unsigned long)af;
|
||||
|
||||
strlcpy(buf, xt_prefix[af], sizeof(buf));
|
||||
strlcat(buf, FORMAT_TARGETS, sizeof(buf));
|
||||
proc = proc_net_fops_create(net, buf, 0440, &xt_target_ops);
|
||||
proc = proc_create_data(buf, 0440, net->proc_net, &xt_target_ops,
|
||||
(void *)(unsigned long)af);
|
||||
if (!proc)
|
||||
goto out_remove_matches;
|
||||
proc->data = (void *)(unsigned long)af;
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
@ -237,15 +237,15 @@ static int htable_create_v0(struct xt_hashlimit_info *minfo, int family)
|
||||
hinfo->family = family;
|
||||
hinfo->rnd_initialized = 0;
|
||||
spin_lock_init(&hinfo->lock);
|
||||
hinfo->pde = proc_create(minfo->name, 0,
|
||||
hinfo->pde =
|
||||
proc_create_data(minfo->name, 0,
|
||||
family == AF_INET ? hashlimit_procdir4 :
|
||||
hashlimit_procdir6,
|
||||
&dl_file_ops);
|
||||
&dl_file_ops, hinfo);
|
||||
if (!hinfo->pde) {
|
||||
vfree(hinfo);
|
||||
return -1;
|
||||
}
|
||||
hinfo->pde->data = hinfo;
|
||||
|
||||
setup_timer(&hinfo->timer, htable_gc, (unsigned long )hinfo);
|
||||
hinfo->timer.expires = jiffies + msecs_to_jiffies(hinfo->cfg.gc_interval);
|
||||
@ -301,15 +301,15 @@ static int htable_create(struct xt_hashlimit_mtinfo1 *minfo,
|
||||
hinfo->rnd_initialized = 0;
|
||||
spin_lock_init(&hinfo->lock);
|
||||
|
||||
hinfo->pde = proc_create(minfo->name, 0,
|
||||
hinfo->pde =
|
||||
proc_create_data(minfo->name, 0,
|
||||
family == AF_INET ? hashlimit_procdir4 :
|
||||
hashlimit_procdir6,
|
||||
&dl_file_ops);
|
||||
&dl_file_ops, hinfo);
|
||||
if (hinfo->pde == NULL) {
|
||||
vfree(hinfo);
|
||||
return -1;
|
||||
}
|
||||
hinfo->pde->data = hinfo;
|
||||
|
||||
setup_timer(&hinfo->timer, htable_gc, (unsigned long)hinfo);
|
||||
hinfo->timer.expires = jiffies + msecs_to_jiffies(hinfo->cfg.gc_interval);
|
||||
|
@ -1066,12 +1066,12 @@ out:
|
||||
#ifdef CONFIG_PROC_FS
|
||||
|
||||
static void *rose_node_start(struct seq_file *seq, loff_t *pos)
|
||||
__acquires(rose_neigh_list_lock)
|
||||
__acquires(rose_node_list_lock)
|
||||
{
|
||||
struct rose_node *rose_node;
|
||||
int i = 1;
|
||||
|
||||
spin_lock_bh(&rose_neigh_list_lock);
|
||||
spin_lock_bh(&rose_node_list_lock);
|
||||
if (*pos == 0)
|
||||
return SEQ_START_TOKEN;
|
||||
|
||||
@ -1090,9 +1090,9 @@ static void *rose_node_next(struct seq_file *seq, void *v, loff_t *pos)
|
||||
}
|
||||
|
||||
static void rose_node_stop(struct seq_file *seq, void *v)
|
||||
__releases(rose_neigh_list_lock)
|
||||
__releases(rose_node_list_lock)
|
||||
{
|
||||
spin_unlock_bh(&rose_neigh_list_lock);
|
||||
spin_unlock_bh(&rose_node_list_lock);
|
||||
}
|
||||
|
||||
static int rose_node_show(struct seq_file *seq, void *v)
|
||||
|
@ -184,12 +184,13 @@ void rxrpc_put_transport(struct rxrpc_transport *trans)
|
||||
ASSERTCMP(atomic_read(&trans->usage), >, 0);
|
||||
|
||||
trans->put_time = get_seconds();
|
||||
if (unlikely(atomic_dec_and_test(&trans->usage)))
|
||||
if (unlikely(atomic_dec_and_test(&trans->usage))) {
|
||||
_debug("zombie");
|
||||
/* let the reaper determine the timeout to avoid a race with
|
||||
* overextending the timeout if the reaper is running at the
|
||||
* same time */
|
||||
rxrpc_queue_delayed_work(&rxrpc_transport_reap, 0);
|
||||
}
|
||||
_leave("");
|
||||
}
|
||||
|
||||
|
@ -219,6 +219,7 @@ static void dev_watchdog(unsigned long arg)
|
||||
printk(KERN_INFO "NETDEV WATCHDOG: %s: transmit timed out\n",
|
||||
dev->name);
|
||||
dev->tx_timeout(dev);
|
||||
WARN_ON_ONCE(1);
|
||||
}
|
||||
if (!mod_timer(&dev->watchdog_timer, round_jiffies(jiffies + dev->watchdog_timeo)))
|
||||
dev_hold(dev);
|
||||
|
@ -316,31 +316,28 @@ static int create_cache_proc_entries(struct cache_detail *cd)
|
||||
cd->proc_ent->owner = cd->owner;
|
||||
cd->channel_ent = cd->content_ent = NULL;
|
||||
|
||||
p = proc_create("flush", S_IFREG|S_IRUSR|S_IWUSR,
|
||||
cd->proc_ent, &cache_flush_operations);
|
||||
p = proc_create_data("flush", S_IFREG|S_IRUSR|S_IWUSR,
|
||||
cd->proc_ent, &cache_flush_operations, cd);
|
||||
cd->flush_ent = p;
|
||||
if (p == NULL)
|
||||
goto out_nomem;
|
||||
p->owner = cd->owner;
|
||||
p->data = cd;
|
||||
|
||||
if (cd->cache_request || cd->cache_parse) {
|
||||
p = proc_create("channel", S_IFREG|S_IRUSR|S_IWUSR,
|
||||
cd->proc_ent, &cache_file_operations);
|
||||
p = proc_create_data("channel", S_IFREG|S_IRUSR|S_IWUSR,
|
||||
cd->proc_ent, &cache_file_operations, cd);
|
||||
cd->channel_ent = p;
|
||||
if (p == NULL)
|
||||
goto out_nomem;
|
||||
p->owner = cd->owner;
|
||||
p->data = cd;
|
||||
}
|
||||
if (cd->cache_show) {
|
||||
p = proc_create("content", S_IFREG|S_IRUSR|S_IWUSR,
|
||||
cd->proc_ent, &content_file_operations);
|
||||
p = proc_create_data("content", S_IFREG|S_IRUSR|S_IWUSR,
|
||||
cd->proc_ent, &content_file_operations, cd);
|
||||
cd->content_ent = p;
|
||||
if (p == NULL)
|
||||
goto out_nomem;
|
||||
p->owner = cd->owner;
|
||||
p->data = cd;
|
||||
}
|
||||
return 0;
|
||||
out_nomem:
|
||||
|
@ -224,16 +224,10 @@ EXPORT_SYMBOL_GPL(rpc_print_iostats);
|
||||
static inline struct proc_dir_entry *
|
||||
do_register(const char *name, void *data, const struct file_operations *fops)
|
||||
{
|
||||
struct proc_dir_entry *ent;
|
||||
|
||||
rpc_proc_init();
|
||||
dprintk("RPC: registering /proc/net/rpc/%s\n", name);
|
||||
|
||||
ent = proc_create(name, 0, proc_net_rpc, fops);
|
||||
if (ent) {
|
||||
ent->data = data;
|
||||
}
|
||||
return ent;
|
||||
return proc_create_data(name, 0, proc_net_rpc, fops, data);
|
||||
}
|
||||
|
||||
struct proc_dir_entry *
|
||||
|
@ -82,6 +82,6 @@ EXPORT_SYMBOL_GPL(register_net_sysctl_table);
|
||||
|
||||
void unregister_net_sysctl_table(struct ctl_table_header *header)
|
||||
{
|
||||
return unregister_sysctl_table(header);
|
||||
unregister_sysctl_table(header);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(unregister_net_sysctl_table);
|
||||
|
Loading…
Reference in New Issue
Block a user