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 master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
[PKT_SCHED] netem: Orphan SKB when adding to queue.
[NET]: kernel-doc fix for sock.h
[NET]: Reduce sizeof(struct flowi) by 20 bytes.
[IPv6] fib: initialize tb6_lock in common place to give lockdep a key
[ATM] nicstar: Fix a bogus casting warning
[ATM] firestream: handle thrown error
[ATM]: No need to return void
[ATM]: handle sysfs errors
[DCCP] ipv6: Fix opt_skb leak.
[DCCP]: Fix Oops in DCCPv6

+45 -28
+2 -2
drivers/atm/ambassador.c
··· 2452 2452 static void __exit amb_module_exit (void) 2453 2453 { 2454 2454 PRINTD (DBG_FLOW|DBG_INIT, "cleanup_module"); 2455 - 2456 - return pci_unregister_driver(&amb_driver); 2455 + 2456 + pci_unregister_driver(&amb_driver); 2457 2457 } 2458 2458 2459 2459 module_init(amb_module_init);
+4
drivers/atm/firestream.c
··· 1002 1002 r = ROUND_UP; 1003 1003 } 1004 1004 error = make_rate (pcr, r, &tmc0, NULL); 1005 + if (error) { 1006 + kfree(tc); 1007 + return error; 1008 + } 1005 1009 } 1006 1010 fs_dprintk (FS_DEBUG_OPEN, "pcr = %d.\n", pcr); 1007 1011 }
+2 -2
drivers/atm/horizon.c
··· 2932 2932 2933 2933 static void __exit hrz_module_exit (void) { 2934 2934 PRINTD (DBG_FLOW, "cleanup_module"); 2935 - 2936 - return pci_unregister_driver(&hrz_driver); 2935 + 2936 + pci_unregister_driver(&hrz_driver); 2937 2937 } 2938 2938 2939 2939 module_init(hrz_module_init);
+2 -2
drivers/atm/nicstar.c
··· 2759 2759 { 2760 2760 ns_dev *card; 2761 2761 pool_levels pl; 2762 - int btype; 2762 + long btype; 2763 2763 unsigned long flags; 2764 2764 2765 2765 card = dev->dev_data; ··· 2859 2859 case NS_ADJBUFLEV: 2860 2860 if (!capable(CAP_NET_ADMIN)) 2861 2861 return -EPERM; 2862 - btype = (int) arg; /* an int is the same size as a pointer */ 2862 + btype = (long) arg; /* a long is the same size as a pointer or bigger */ 2863 2863 switch (btype) 2864 2864 { 2865 2865 case NS_BUFTYPE_SMALL:
+2 -2
drivers/pci/quirks.c
··· 1634 1634 * is marked here since the boot video device will be the only enabled 1635 1635 * video device at this point. 1636 1636 */ 1637 - 1637 + #if 0 1638 1638 static void __devinit fixup_video(struct pci_dev *pdev) 1639 1639 { 1640 1640 struct pci_dev *bridge; ··· 1663 1663 } 1664 1664 } 1665 1665 DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, fixup_video); 1666 - 1666 + #endif 1667 1667 1668 1668 static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end) 1669 1669 {
-5
include/net/dn.h
··· 199 199 { 200 200 fl->uli_u.dnports.sport = scp->addrloc; 201 201 fl->uli_u.dnports.dport = scp->addrrem; 202 - fl->uli_u.dnports.objnum = scp->addr.sdn_objnum; 203 - if (fl->uli_u.dnports.objnum == 0) { 204 - fl->uli_u.dnports.objnamel = (__u8)dn_ntohs(scp->addr.sdn_objnamel); 205 - memcpy(fl->uli_u.dnports.objname, scp->addr.sdn_objname, 16); 206 - } 207 202 } 208 203 209 204 extern unsigned dn_mss_from_pmtu(struct net_device *dev, int mtu);
-3
include/net/flow.h
··· 68 68 struct { 69 69 __le16 sport; 70 70 __le16 dport; 71 - __u8 objnum; 72 - __u8 objnamel; /* Not 16 bits since max val is 16 */ 73 - __u8 objname[16]; /* Not zero terminated */ 74 71 } dnports; 75 72 76 73 __be32 spi;
+1 -2
include/net/sock.h
··· 884 884 885 885 /** 886 886 * sk_filter_release: Release a socket filter 887 - * @sk: socket 888 - * @fp: filter to remove 887 + * @rcu: rcu_head that contains the sk_filter info to remove 889 888 * 890 889 * Remove a filter from a socket and release its resources. 891 890 */
+12 -3
net/atm/atm_sysfs.c
··· 141 141 int atm_register_sysfs(struct atm_dev *adev) 142 142 { 143 143 struct class_device *cdev = &adev->class_dev; 144 - int i, err; 144 + int i, j, err; 145 145 146 146 cdev->class = &atm_class; 147 147 class_set_devdata(cdev, adev); ··· 151 151 if (err < 0) 152 152 return err; 153 153 154 - for (i = 0; atm_attrs[i]; i++) 155 - class_device_create_file(cdev, atm_attrs[i]); 154 + for (i = 0; atm_attrs[i]; i++) { 155 + err = class_device_create_file(cdev, atm_attrs[i]); 156 + if (err) 157 + goto err_out; 158 + } 156 159 157 160 return 0; 161 + 162 + err_out: 163 + for (j = 0; j < i; j++) 164 + class_device_remove_file(cdev, atm_attrs[j]); 165 + class_device_del(cdev); 166 + return err; 158 167 } 159 168 160 169 void atm_unregister_sysfs(struct atm_dev *adev)
+3 -1
net/dccp/ipv4.c
··· 449 449 dccp_hdr(skb)->dccph_sport); 450 450 } 451 451 452 + static struct request_sock_ops dccp_request_sock_ops; 453 + 452 454 int dccp_v4_conn_request(struct sock *sk, struct sk_buff *skb) 453 455 { 454 456 struct inet_request_sock *ireq; ··· 491 489 if (sk_acceptq_is_full(sk) && inet_csk_reqsk_queue_young(sk) > 1) 492 490 goto drop; 493 491 494 - req = reqsk_alloc(sk->sk_prot->rsk_prot); 492 + req = reqsk_alloc(&dccp_request_sock_ops); 495 493 if (req == NULL) 496 494 goto drop; 497 495
+9 -3
net/dccp/ipv6.c
··· 672 672 673 673 static int dccp_v6_conn_request(struct sock *sk, struct sk_buff *skb) 674 674 { 675 - struct inet_request_sock *ireq; 676 675 struct dccp_sock dp; 677 676 struct request_sock *req; 678 677 struct dccp_request_sock *dreq; ··· 700 701 if (sk_acceptq_is_full(sk) && inet_csk_reqsk_queue_young(sk) > 1) 701 702 goto drop; 702 703 703 - req = inet6_reqsk_alloc(sk->sk_prot->rsk_prot); 704 + req = inet6_reqsk_alloc(&dccp6_request_sock_ops); 704 705 if (req == NULL) 705 706 goto drop; 706 707 ··· 712 713 goto drop_and_free; 713 714 714 715 ireq6 = inet6_rsk(req); 715 - ireq = inet_rsk(req); 716 716 ipv6_addr_copy(&ireq6->rmt_addr, &skb->nh.ipv6h->saddr); 717 717 ipv6_addr_copy(&ireq6->loc_addr, &skb->nh.ipv6h->daddr); 718 718 req->rcv_wnd = dccp_feat_default_sequence_window; ··· 995 997 if (sk->sk_state == DCCP_OPEN) { /* Fast path */ 996 998 if (dccp_rcv_established(sk, skb, dccp_hdr(skb), skb->len)) 997 999 goto reset; 1000 + if (opt_skb) { 1001 + /* This is where we would goto ipv6_pktoptions. */ 1002 + __kfree_skb(opt_skb); 1003 + } 998 1004 return 0; 999 1005 } 1000 1006 ··· 1023 1021 1024 1022 if (dccp_rcv_state_process(sk, skb, dccp_hdr(skb), skb->len)) 1025 1023 goto reset; 1024 + if (opt_skb) { 1025 + /* This is where we would goto ipv6_pktoptions. */ 1026 + __kfree_skb(opt_skb); 1027 + } 1026 1028 return 0; 1027 1029 1028 1030 reset:
+6 -3
net/ipv6/ip6_fib.c
··· 169 169 170 170 static struct fib6_table fib6_main_tbl = { 171 171 .tb6_id = RT6_TABLE_MAIN, 172 - .tb6_lock = RW_LOCK_UNLOCKED, 173 172 .tb6_root = { 174 173 .leaf = &ip6_null_entry, 175 174 .fn_flags = RTN_ROOT | RTN_TL_ROOT | RTN_RTINFO, ··· 186 187 { 187 188 unsigned int h; 188 189 190 + /* 191 + * Initialize table lock at a single place to give lockdep a key, 192 + * tables aren't visible prior to being linked to the list. 193 + */ 194 + rwlock_init(&tb->tb6_lock); 195 + 189 196 h = tb->tb6_id & (FIB_TABLE_HASHSZ - 1); 190 197 191 198 /* ··· 204 199 #ifdef CONFIG_IPV6_MULTIPLE_TABLES 205 200 static struct fib6_table fib6_local_tbl = { 206 201 .tb6_id = RT6_TABLE_LOCAL, 207 - .tb6_lock = RW_LOCK_UNLOCKED, 208 202 .tb6_root = { 209 203 .leaf = &ip6_null_entry, 210 204 .fn_flags = RTN_ROOT | RTN_TL_ROOT | RTN_RTINFO, ··· 217 213 table = kzalloc(sizeof(*table), GFP_ATOMIC); 218 214 if (table != NULL) { 219 215 table->tb6_id = id; 220 - table->tb6_lock = RW_LOCK_UNLOCKED; 221 216 table->tb6_root.leaf = &ip6_null_entry; 222 217 table->tb6_root.fn_flags = RTN_ROOT | RTN_TL_ROOT | RTN_RTINFO; 223 218 }
+2
net/sched/sch_netem.c
··· 170 170 return NET_XMIT_BYPASS; 171 171 } 172 172 173 + skb_orphan(skb); 174 + 173 175 /* 174 176 * If we need to duplicate packet, then re-insert at top of the 175 177 * qdisc tree, since parent queuer expects that only one