Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
mscan: too much data copied to CAN frame due to 16 bit accesses
gro: refetch inet6_protos[] after pulling ext headers
bnx2x: fix cl_id allocation for non-eth clients for NPAR mode
mlx4_en: fix endianness with blue frame support

+25 -13
+12 -6
drivers/net/bnx2x/bnx2x.h
··· 239 239 * FUNC_N_CLID_X = N * NUM_SPECIAL_CLIENTS + FUNC_0_CLID_X 240 240 * 241 241 */ 242 - /* iSCSI L2 */ 243 - #define BNX2X_ISCSI_ETH_CL_ID_IDX 1 244 - #define BNX2X_ISCSI_ETH_CID 49 242 + enum { 243 + BNX2X_ISCSI_ETH_CL_ID_IDX, 244 + BNX2X_FCOE_ETH_CL_ID_IDX, 245 + BNX2X_MAX_CNIC_ETH_CL_ID_IDX, 246 + }; 245 247 246 - /* FCoE L2 */ 247 - #define BNX2X_FCOE_ETH_CL_ID_IDX 2 248 - #define BNX2X_FCOE_ETH_CID 50 248 + #define BNX2X_CNIC_START_ETH_CID 48 249 + enum { 250 + /* iSCSI L2 */ 251 + BNX2X_ISCSI_ETH_CID = BNX2X_CNIC_START_ETH_CID, 252 + /* FCoE L2 */ 253 + BNX2X_FCOE_ETH_CID, 254 + }; 249 255 250 256 /** Additional rings budgeting */ 251 257 #ifdef BCM_CNIC
+1 -1
drivers/net/bnx2x/bnx2x_cmn.h
··· 1297 1297 static inline u8 bnx2x_cnic_eth_cl_id(struct bnx2x *bp, u8 cl_idx) 1298 1298 { 1299 1299 return bp->cnic_base_cl_id + cl_idx + 1300 - (bp->pf_num >> 1) * NON_ETH_CONTEXT_USE; 1300 + (bp->pf_num >> 1) * BNX2X_MAX_CNIC_ETH_CL_ID_IDX; 1301 1301 } 1302 1302 1303 1303 static inline u8 bnx2x_cnic_fw_sb_id(struct bnx2x *bp)
+8 -3
drivers/net/can/mscan/mscan.c
··· 261 261 void __iomem *data = &regs->tx.dsr1_0; 262 262 u16 *payload = (u16 *)frame->data; 263 263 264 - /* It is safe to write into dsr[dlc+1] */ 265 - for (i = 0; i < (frame->can_dlc + 1) / 2; i++) { 264 + for (i = 0; i < frame->can_dlc / 2; i++) { 266 265 out_be16(data, *payload++); 267 266 data += 2 + _MSCAN_RESERVED_DSR_SIZE; 268 267 } 268 + /* write remaining byte if necessary */ 269 + if (frame->can_dlc & 1) 270 + out_8(data, frame->data[frame->can_dlc - 1]); 269 271 } 270 272 271 273 out_8(&regs->tx.dlr, frame->can_dlc); ··· 332 330 void __iomem *data = &regs->rx.dsr1_0; 333 331 u16 *payload = (u16 *)frame->data; 334 332 335 - for (i = 0; i < (frame->can_dlc + 1) / 2; i++) { 333 + for (i = 0; i < frame->can_dlc / 2; i++) { 336 334 *payload++ = in_be16(data); 337 335 data += 2 + _MSCAN_RESERVED_DSR_SIZE; 338 336 } 337 + /* read remaining byte if necessary */ 338 + if (frame->can_dlc & 1) 339 + frame->data[frame->can_dlc - 1] = in_8(data); 339 340 } 340 341 341 342 out_8(&regs->canrflg, MSCAN_RXF);
+3 -3
drivers/net/mlx4/en_tx.c
··· 172 172 memset(ring->buf, 0, ring->buf_size); 173 173 174 174 ring->qp_state = MLX4_QP_STATE_RST; 175 - ring->doorbell_qpn = swab32(ring->qp.qpn << 8); 175 + ring->doorbell_qpn = ring->qp.qpn << 8; 176 176 177 177 mlx4_en_fill_qp_context(priv, ring->size, ring->stride, 1, 0, ring->qpn, 178 178 ring->cqn, &ring->context); ··· 791 791 skb_orphan(skb); 792 792 793 793 if (ring->bf_enabled && desc_size <= MAX_BF && !bounce && !vlan_tag) { 794 - *(u32 *) (&tx_desc->ctrl.vlan_tag) |= ring->doorbell_qpn; 794 + *(__be32 *) (&tx_desc->ctrl.vlan_tag) |= cpu_to_be32(ring->doorbell_qpn); 795 795 op_own |= htonl((bf_index & 0xffff) << 8); 796 796 /* Ensure new descirptor hits memory 797 797 * before setting ownership of this descriptor to HW */ ··· 812 812 wmb(); 813 813 tx_desc->ctrl.owner_opcode = op_own; 814 814 wmb(); 815 - writel(ring->doorbell_qpn, ring->bf.uar->map + MLX4_SEND_DOORBELL); 815 + iowrite32be(ring->doorbell_qpn, ring->bf.uar->map + MLX4_SEND_DOORBELL); 816 816 } 817 817 818 818 /* Poll CQ here */
+1
net/ipv6/af_inet6.c
··· 875 875 skb_reset_transport_header(skb); 876 876 __skb_push(skb, skb_gro_offset(skb)); 877 877 878 + ops = rcu_dereference(inet6_protos[proto]); 878 879 if (!ops || !ops->gro_receive) 879 880 goto out_unlock; 880 881