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

Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

+35 -61
+1
drivers/atm/solos-attrlist.c
··· 1 1 SOLOS_ATTR_RO(DriverVersion) 2 2 SOLOS_ATTR_RO(APIVersion) 3 3 SOLOS_ATTR_RO(FirmwareVersion) 4 + SOLOS_ATTR_RO(Version) 4 5 // SOLOS_ATTR_RO(DspVersion) 5 6 // SOLOS_ATTR_RO(CommonHandshake) 6 7 SOLOS_ATTR_RO(Connected)
+8
drivers/atm/solos-pci.c
··· 1161 1161 dev_info(&dev->dev, "Solos FPGA Version %d.%02d svn-%d\n", 1162 1162 major_ver, minor_ver, fpga_ver); 1163 1163 1164 + if (fpga_ver < 37 && (fpga_upgrade || firmware_upgrade || 1165 + db_fpga_upgrade || db_firmware_upgrade)) { 1166 + dev_warn(&dev->dev, 1167 + "FPGA too old; cannot upgrade flash. Use JTAG.\n"); 1168 + fpga_upgrade = firmware_upgrade = 0; 1169 + db_fpga_upgrade = db_firmware_upgrade = 0; 1170 + } 1171 + 1164 1172 if (card->fpga_version >= DMA_SUPPORTED){ 1165 1173 card->using_dma = 1; 1166 1174 } else {
-1
drivers/net/skge.c
··· 3858 3858 3859 3859 /* device is off until link detection */ 3860 3860 netif_carrier_off(dev); 3861 - netif_stop_queue(dev); 3862 3861 3863 3862 return dev; 3864 3863 }
-9
drivers/s390/net/qeth_core.h
··· 440 440 * index of buffer to be filled by driver; state EMPTY or PACKING 441 441 */ 442 442 int next_buf_to_fill; 443 - int sync_iqdio_error; 444 443 /* 445 444 * number of buffers that are currently filled (PRIMED) 446 445 * -> these buffers are hardware-owned ··· 693 694 unsigned char mc_addrlen; 694 695 int is_vmac; 695 696 }; 696 - 697 - struct qeth_skb_data { 698 - __u32 magic; 699 - int count; 700 - }; 701 - 702 - #define QETH_SKB_MAGIC 0x71657468 703 - #define QETH_SIGA_CC2_RETRIES 3 704 697 705 698 struct qeth_rx { 706 699 int b_count;
+9 -46
drivers/s390/net/qeth_core_main.c
··· 877 877 return; 878 878 } 879 879 880 - static void __qeth_clear_output_buffer(struct qeth_qdio_out_q *queue, 881 - struct qeth_qdio_out_buffer *buf, unsigned int qeth_skip_skb) 880 + static void qeth_clear_output_buffer(struct qeth_qdio_out_q *queue, 881 + struct qeth_qdio_out_buffer *buf) 882 882 { 883 883 int i; 884 884 struct sk_buff *skb; ··· 887 887 if (buf->buffer->element[0].flags & 0x40) 888 888 atomic_dec(&queue->set_pci_flags_count); 889 889 890 - if (!qeth_skip_skb) { 890 + skb = skb_dequeue(&buf->skb_list); 891 + while (skb) { 892 + atomic_dec(&skb->users); 893 + dev_kfree_skb_any(skb); 891 894 skb = skb_dequeue(&buf->skb_list); 892 - while (skb) { 893 - atomic_dec(&skb->users); 894 - dev_kfree_skb_any(skb); 895 - skb = skb_dequeue(&buf->skb_list); 896 - } 897 895 } 898 896 for (i = 0; i < QETH_MAX_BUFFER_ELEMENTS(queue->card); ++i) { 899 897 if (buf->buffer->element[i].addr && buf->is_header[i]) ··· 905 907 buf->buffer->element[15].flags = 0; 906 908 buf->next_element_to_fill = 0; 907 909 atomic_set(&buf->state, QETH_QDIO_BUF_EMPTY); 908 - } 909 - 910 - static void qeth_clear_output_buffer(struct qeth_qdio_out_q *queue, 911 - struct qeth_qdio_out_buffer *buf) 912 - { 913 - __qeth_clear_output_buffer(queue, buf, 0); 914 910 } 915 911 916 912 void qeth_clear_qdio_buffers(struct qeth_card *card) ··· 2825 2833 } 2826 2834 } 2827 2835 2828 - queue->sync_iqdio_error = 0; 2829 2836 queue->card->dev->trans_start = jiffies; 2830 2837 if (queue->card->options.performance_stats) { 2831 2838 queue->card->perf_stats.outbound_do_qdio_cnt++; ··· 2840 2849 queue->card->perf_stats.outbound_do_qdio_time += 2841 2850 qeth_get_micros() - 2842 2851 queue->card->perf_stats.outbound_do_qdio_start_time; 2843 - if (rc > 0) { 2844 - if (!(rc & QDIO_ERROR_SIGA_BUSY)) 2845 - queue->sync_iqdio_error = rc & 3; 2846 - } 2847 2852 if (rc) { 2848 2853 queue->card->stats.tx_errors += count; 2849 2854 /* ignore temporary SIGA errors without busy condition */ ··· 2903 2916 { 2904 2917 struct qeth_card *card = (struct qeth_card *)card_ptr; 2905 2918 2906 - if (card->dev) 2919 + if (card->dev && (card->dev->flags & IFF_UP)) 2907 2920 napi_schedule(&card->napi); 2908 2921 } 2909 2922 EXPORT_SYMBOL_GPL(qeth_qdio_start_poll); ··· 2927 2940 struct qeth_qdio_out_q *queue = card->qdio.out_qs[__queue]; 2928 2941 struct qeth_qdio_out_buffer *buffer; 2929 2942 int i; 2930 - unsigned qeth_send_err; 2931 2943 2932 2944 QETH_CARD_TEXT(card, 6, "qdouhdl"); 2933 2945 if (qdio_error & QDIO_ERROR_ACTIVATE_CHECK_CONDITION) { ··· 2942 2956 } 2943 2957 for (i = first_element; i < (first_element + count); ++i) { 2944 2958 buffer = &queue->bufs[i % QDIO_MAX_BUFFERS_PER_Q]; 2945 - qeth_send_err = qeth_handle_send_error(card, buffer, qdio_error); 2946 - __qeth_clear_output_buffer(queue, buffer, 2947 - (qeth_send_err == QETH_SEND_ERROR_RETRY) ? 1 : 0); 2959 + qeth_handle_send_error(card, buffer, qdio_error); 2960 + qeth_clear_output_buffer(queue, buffer); 2948 2961 } 2949 2962 atomic_sub(count, &queue->used_buffers); 2950 2963 /* check if we need to do something on this outbound queue */ ··· 3168 3183 int offset, int hd_len) 3169 3184 { 3170 3185 struct qeth_qdio_out_buffer *buffer; 3171 - struct sk_buff *skb1; 3172 - struct qeth_skb_data *retry_ctrl; 3173 3186 int index; 3174 - int rc; 3175 3187 3176 3188 /* spin until we get the queue ... */ 3177 3189 while (atomic_cmpxchg(&queue->state, QETH_OUT_Q_UNLOCKED, ··· 3187 3205 atomic_set(&queue->state, QETH_OUT_Q_UNLOCKED); 3188 3206 qeth_fill_buffer(queue, buffer, skb, hdr, offset, hd_len); 3189 3207 qeth_flush_buffers(queue, index, 1); 3190 - if (queue->sync_iqdio_error == 2) { 3191 - skb1 = skb_dequeue(&buffer->skb_list); 3192 - while (skb1) { 3193 - atomic_dec(&skb1->users); 3194 - skb1 = skb_dequeue(&buffer->skb_list); 3195 - } 3196 - retry_ctrl = (struct qeth_skb_data *) &skb->cb[16]; 3197 - if (retry_ctrl->magic != QETH_SKB_MAGIC) { 3198 - retry_ctrl->magic = QETH_SKB_MAGIC; 3199 - retry_ctrl->count = 0; 3200 - } 3201 - if (retry_ctrl->count < QETH_SIGA_CC2_RETRIES) { 3202 - retry_ctrl->count++; 3203 - rc = dev_queue_xmit(skb); 3204 - } else { 3205 - dev_kfree_skb_any(skb); 3206 - QETH_CARD_TEXT(card, 2, "qrdrop"); 3207 - } 3208 - } 3209 3208 return 0; 3210 3209 out: 3211 3210 atomic_set(&queue->state, QETH_OUT_Q_UNLOCKED);
+5
include/linux/netdevice.h
··· 1554 1554 1555 1555 static inline void netif_tx_stop_queue(struct netdev_queue *dev_queue) 1556 1556 { 1557 + if (WARN_ON(!dev_queue)) { 1558 + printk(KERN_INFO "netif_stop_queue() cannot be called before " 1559 + "register_netdev()"); 1560 + return; 1561 + } 1557 1562 set_bit(__QUEUE_STATE_XOFF, &dev_queue->state); 1558 1563 } 1559 1564
+1
include/net/dst_ops.h
··· 2 2 #define _NET_DST_OPS_H 3 3 #include <linux/types.h> 4 4 #include <linux/percpu_counter.h> 5 + #include <linux/cache.h> 5 6 6 7 struct dst_entry; 7 8 struct kmem_cachep;
+3 -3
net/core/pktgen.c
··· 887 887 i += len; 888 888 889 889 if (debug) { 890 - size_t copy = min(count, 1023); 890 + size_t copy = min_t(size_t, count, 1023); 891 891 char tb[copy + 1]; 892 892 if (copy_from_user(tb, user_buffer, copy)) 893 893 return -EFAULT; ··· 2612 2612 /* Update any of the values, used when we're incrementing various 2613 2613 * fields. 2614 2614 */ 2615 - queue_map = pkt_dev->cur_queue_map; 2616 2615 mod_cur_headers(pkt_dev); 2616 + queue_map = pkt_dev->cur_queue_map; 2617 2617 2618 2618 datalen = (odev->hard_header_len + 16) & ~0xf; 2619 2619 ··· 2976 2976 /* Update any of the values, used when we're incrementing various 2977 2977 * fields. 2978 2978 */ 2979 - queue_map = pkt_dev->cur_queue_map; 2980 2979 mod_cur_headers(pkt_dev); 2980 + queue_map = pkt_dev->cur_queue_map; 2981 2981 2982 2982 skb = __netdev_alloc_skb(odev, 2983 2983 pkt_dev->cur_pkt_size + 64
+1 -1
net/ipv6/reassembly.c
··· 349 349 350 350 /* Check for overlap with preceding fragment. */ 351 351 if (prev && 352 - (FRAG6_CB(prev)->offset + prev->len) - offset > 0) 352 + (FRAG6_CB(prev)->offset + prev->len) > offset) 353 353 goto discard_fq; 354 354 355 355 /* Look for overlap with succeeding segment. */
+3 -1
net/rds/message.c
··· 249 249 rm->m_inc.i_hdr.h_len = cpu_to_be32(total_len); 250 250 rm->data.op_nents = ceil(total_len, PAGE_SIZE); 251 251 rm->data.op_sg = rds_message_alloc_sgs(rm, num_sgs); 252 - if (!rm->data.op_sg) 252 + if (!rm->data.op_sg) { 253 + rds_message_put(rm); 253 254 return ERR_PTR(-ENOMEM); 255 + } 254 256 255 257 for (i = 0; i < rm->data.op_nents; ++i) { 256 258 sg_set_page(&rm->data.op_sg[i],
+4
net/sched/cls_basic.c
··· 268 268 goto nla_put_failure; 269 269 270 270 nla_nest_end(skb, nest); 271 + 272 + if (tcf_exts_dump_stats(skb, &f->exts, &basic_ext_map) < 0) 273 + goto nla_put_failure; 274 + 271 275 return skb->len; 272 276 273 277 nla_put_failure: