#define NUM_MACS      8
  
 -enum bnx2x_pci_bus_speed {
 -      BNX2X_PCI_LINK_SPEED_2500 = 2500,
 -      BNX2X_PCI_LINK_SPEED_5000 = 5000,
 -      BNX2X_PCI_LINK_SPEED_8000 = 8000
 -};
 -
  void bnx2x_set_local_cmng(struct bnx2x *bp);
+ 
+ #define MCPR_SCRATCH_BASE(bp) \
+       (CHIP_IS_E1x(bp) ? MCP_REG_MCPR_SCRATCH : MCP_A_REG_MCPR_SCRATCH)
+ 
  #endif /* bnx2x.h */
 
        dmae.len = len32;
  
        /* issue the command and wait for completion */
-       return bnx2x_issue_dmae_with_comp(bp, &dmae);
+       return bnx2x_issue_dmae_with_comp(bp, &dmae, bnx2x_sp(bp, wb_comp));
  }
  
 -static void bnx2x_vf_mbx_resp(struct bnx2x *bp, struct bnx2x_virtf *vf)
 +static void bnx2x_vf_mbx_resp_single_tlv(struct bnx2x *bp,
 +                                       struct bnx2x_virtf *vf)
  {
        struct bnx2x_vf_mbx *mbx = BP_VF_MBX(bp, vf->index);
 -      u64 vf_addr;
 -      dma_addr_t pf_addr;
        u16 length, type;
 -      int rc;
 -      struct pfvf_general_resp_tlv *resp = &mbx->msg->resp.general_resp;
  
        /* prepare response */
        type = mbx->first_tlv.tl.type;
 
        {QMI_FIXED_INTF(0x2357, 0x0201, 4)},    /* TP-LINK HSUPA Modem MA180 */
        {QMI_FIXED_INTF(0x2357, 0x9000, 4)},    /* TP-LINK MA260 */
        {QMI_FIXED_INTF(0x1bc7, 0x1200, 5)},    /* Telit LE920 */
 +      {QMI_FIXED_INTF(0x1bc7, 0x1201, 2)},    /* Telit LE920 */
+       {QMI_FIXED_INTF(0x0b3c, 0xc005, 6)},    /* Olivetti Olicard 200 */
        {QMI_FIXED_INTF(0x1e2d, 0x0060, 4)},    /* Cinterion PLxx */
  
        /* 4. Gobi 1000 devices */
 
  {
        return dst_orig;
  } 
+ 
+ static inline struct xfrm_state *dst_xfrm(const struct dst_entry *dst)
+ {
+       return NULL;
+ }
+ 
  #else
 -extern struct dst_entry *xfrm_lookup(struct net *net, struct dst_entry *dst_orig,
 -                                   const struct flowi *fl, struct sock *sk,
 -                                   int flags);
 +struct dst_entry *xfrm_lookup(struct net *net, struct dst_entry *dst_orig,
 +                            const struct flowi *fl, struct sock *sk,
 +                            int flags);
+ 
+ /* skb attached with this dst needs transformation if dst->xfrm is valid */
+ static inline struct xfrm_state *dst_xfrm(const struct dst_entry *dst)
+ {
+       return dst->xfrm;
+ }
  #endif
  
  #endif /* _NET_DST_H */
 
  
  static u32 net_secret[NET_SECRET_SIZE] ____cacheline_aligned;
  
 -static void net_secret_init(void)
 +static __always_inline void net_secret_init(void)
  {
 -      u32 tmp;
 -      int i;
 -
 -      if (likely(net_secret[0]))
 -              return;
 -
 -      for (i = NET_SECRET_SIZE; i > 0;) {
 -              do {
 -                      get_random_bytes(&tmp, sizeof(tmp));
 -              } while (!tmp);
 -              cmpxchg(&net_secret[--i], 0, tmp);
 -      }
 +      net_get_random_once(net_secret, sizeof(net_secret));
  }
+ #endif
  
  #ifdef CONFIG_INET
  static u32 seq_scale(u32 seq)