1. 24 Aug, 2009 3 commits
    • Bruno Prémont's avatar
      ipv6: Fix commit 63d9950b (ipv6: Make... · ca6982b8
      Bruno Prémont authored
      ipv6: Fix commit 63d9950b (ipv6: Make v4-mapped bindings consistent with IPv4)
      
      Commit 63d9950b
        (ipv6: Make v4-mapped bindings consistent with IPv4)
      changes behavior of inet6_bind() for v4-mapped addresses so it should
      behave the same way as inet_bind().
      
      During this change setting of err to -EADDRNOTAVAIL got lost:
      
      af_inet.c:469 inet_bind()
      	err = -EADDRNOTAVAIL;
      	if (!sysctl_ip_nonlocal_bind &&
      	    !(inet->freebind || inet->transparent) &&
      	    addr->sin_addr.s_addr != htonl(INADDR_ANY) &&
      	    chk_addr_ret != RTN_LOCAL &&
      	    chk_addr_ret != RTN_MULTICAST &&
      	    chk_addr_ret != RTN_BROADCAST)
      		goto out;
      
      
      af_inet6.c:463 inet6_bind()
      	if (addr_type == IPV6_ADDR_MAPPED) {
      		int chk_addr_ret;
      
      		/* Binding to v4-mapped address on a v6-only socket                         
      		 * makes no sense                                                           
      		 */
      		if (np->ipv6only) {
      			err = -EINVAL;
      			goto out; 
      		}
      
      		/* Reproduce AF_INET checks to make the bindings consitant */               
      		v4addr = addr->sin6_addr.s6_addr32[3];                                      
      		chk_addr_ret = inet_addr_type(net, v4addr);                                 
      		if (!sysctl_ip_nonlocal_bind &&                                             
      		    !(inet->freebind || inet->transparent) &&                               
      		    v4addr != htonl(INADDR_ANY) &&
      		    chk_addr_ret != RTN_LOCAL &&                                            
      		    chk_addr_ret != RTN_MULTICAST &&                                        
      		    chk_addr_ret != RTN_BROADCAST)
      			goto out;
      	} else {
      
      
      Signed-off-by Bruno Prémont <bonbons@linux-vserver.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ca6982b8
    • Krzysztof Hałasa's avatar
      E100: fix interaction with swiotlb on X86. · 6ff9c2e7
      Krzysztof Hałasa authored
      E100 places it's RX packet descriptors inside skb->data and uses them
      with bidirectional streaming DMA mapping. Data in descriptors is
      accessed simultaneously by the chip (writing status and size when
      a packet is received) and CPU (reading to check if the packet was
      received). This isn't a valid usage of PCI DMA API, which requires use
      of the coherent (consistent) memory for such purpose. Unfortunately e100
      chips working in "simplified" RX mode have to store received data
      directly after the descriptor. Fixing the driver to conform to the API
      would require using unsupported "flexible" RX mode or receiving data
      into a coherent memory and using CPU to copy it to network buffers.
      
      This patch, while not yet making the driver conform to the PCI DMA API,
      allows it to work correctly on X86 with swiotlb (while not breaking
      other architectures).
      Signed-off-by: default avatarKrzysztof Hałasa <khc@pm.waw.pl>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6ff9c2e7
    • David S. Miller's avatar
      pkt_sched: Convert CBQ to tasklet_hrtimer. · 38acce2d
      David S. Miller authored
      This code expects to run in softirq context, and bare hrtimers
      run in hw IRQ context.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      38acce2d
  2. 23 Aug, 2009 1 commit
  3. 21 Aug, 2009 2 commits
  4. 20 Aug, 2009 1 commit
    • Petri Gynther's avatar
      ibm_newemac: emac_close() needs to call netif_carrier_off() · d3b325f9
      Petri Gynther authored
      When ibm_newemac netdev instance is shutdown with "ifconfig down",
      the netdev interface does not go properly down. netif_carrier_ok()
      keeps returning TRUE even after "ifconfig down".
      
      The problem can be seen when ibm_newemac instances are slaves of
      a bonding interface. The bonding interface code uses netif_carrier_ok()
      to determine the link status of its slaves. When ibm_newemac slave is
      shutdown with "ifconfig down", the bonding interface won't detect any
      link status change because netif_carrier_ok() keeps returning TRUE.
      Signed-off-by: default avatarPetri Gynther <pgynther@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d3b325f9
  5. 19 Aug, 2009 3 commits
  6. 18 Aug, 2009 3 commits
  7. 17 Aug, 2009 2 commits
  8. 16 Aug, 2009 7 commits
  9. 14 Aug, 2009 8 commits
  10. 13 Aug, 2009 7 commits
    • Dhananjay Phadke's avatar
      netxen: free napi resources during detach · 232e7d68
      Dhananjay Phadke authored
      o Defer napi resouce allocation to device attach.
      
      o Free napi resources and delete napi during detach.
      
      This ensures right behavior across firmware reset.
      Signed-off-by: default avatarDhananjay Phadke <dhananjay@netxen.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      232e7d68
    • Amit Kumar Salecha's avatar
      netxen: remove netxen workqueue · e424fa9d
      Amit Kumar Salecha authored
      o Remove private workqueue in the driver, move all
        scheduled tasks to keventd workqueues. This makes
        ports (interfaces) of same / different NIC boards
        independent, in terms of their link watchdog and
        reset tasks.
      
      o Move quick checks for link status and temperature
        in timer callback, schedule watchdog task only if
        link status changed or temperature reached critical
        threshold.
      
      This also fixes deadlock when thermal panic occurs,
      watchdog work was flushing workqueue that it was
      sitting on.
      Signed-off-by: default avatarAmit Kumar Salecha <amit@qlogic.com>
      Signed-off-by: default avatarDhananjay Phadke <dhananjay@netxen.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e424fa9d
    • Don Skidmore's avatar
      ixgbe: fix issues setting rx-usecs with legacy interrupts · 237057ad
      Don Skidmore authored
      Currently setting rx-usecs when the interface is in legacy interrupt
      mode it is not immediate.  We were only setting EITR for each MSIx
      vector and since this count would be zero for legacy mode it wasn't
      set until after a reset.  This patch corrects that by checking what
      mode we are in and then setting EITR accordingly.
      Signed-off-by: default avatarDon Skidmore <donald.skidmore@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      237057ad
    • Oliver Hartkopp's avatar
      can: fix oops caused by wrong rtnl newlink usage · 993e6f2f
      Oliver Hartkopp authored
      For 'real' hardware CAN devices the netlink interface is used to set CAN
      specific communication parameters. Real CAN hardware can not be created with
      the ip tool ...
      
      The invocation of 'ip link add type can' lead to an oops as the standard rtnl
      newlink function was called:
      
      http://bugzilla.kernel.org/show_bug.cgi?id=13954
      
      This patch adds a private newlink function for the CAN device driver interface
      that unconditionally returns -EOPNOTSUPP.
      Signed-off-by: default avatarOliver Hartkopp <oliver@hartkopp.net>
      Reported-by: default avatarDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
      CC: Patrick McHardy <kaber@trash.net>
      CC: Wolfgang Grandegger <wg@grandegger.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      993e6f2f
    • Luis R. Rodriguez's avatar
      mac80211: fix panic when splicing unprepared TIDs · 416fbdff
      Luis R. Rodriguez authored
      We splice skbs from the pending queue for a TID
      onto the local pending queue when tearing down a
      block ack request. This is not necessary unless we
      actually have received a request to start a block ack
      request (rate control, for example). If we never received
      that request we should not be splicing the tid pending
      queue as it would be null, causing a panic.
      
      Not sure yet how exactly we allowed through a call when the
      tid state does not have at least HT_ADDBA_REQUESTED_MSK set,
      that will require some further review as it is not quite
      obvious.
      
      For more information see the bug report:
      
      http://bugzilla.kernel.org/show_bug.cgi?id=13922
      
      This fixes this oops:
      
      BUG: unable to handle kernel NULL pointer dereference at 00000030
      IP: [<f8806c70>] ieee80211_agg_splice_packets+0x40/0xc0 [mac80211]
      *pdpt = 0000000002d1e001 *pde = 0000000000000000
      Thread overran stack, or stack corrupted
      Oops: 0000 [#1] SMP
      last sysfs file: /sys/module/aes_generic/initstate
      Modules linked in: <bleh>
      
      Pid: 0, comm: swapper Not tainted (2.6.31-rc5-wl #2) Dell DV051
      EIP: 0060:[<f8806c70>] EFLAGS: 00010292 CPU: 0
      EIP is at ieee80211_agg_splice_packets+0x40/0xc0 [mac80211]
      EAX: 00000030 EBX: 0000004c ECX: 00000003 EDX: 00000000
      ESI: c1c98000 EDI: f745a1c0 EBP: c076be58 ESP: c076be38
       DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
      Process swapper (pid: 0, ti=c076a000 task=c0709160 task.ti=c076a000)
      Stack: <bleh2>
      Call Trace:
       [<f8806edb>] ? ieee80211_stop_tx_ba_cb+0xab/0x150 [mac80211]
       [<f8802f1e>] ? ieee80211_tasklet_handler+0xce/0x110 [mac80211]
       [<c04862ff>] ? net_rx_action+0xef/0x1d0
       [<c0149378>] ? tasklet_action+0x58/0xc0
       [<c014a0f2>] ? __do_softirq+0xc2/0x190
       [<c018eb48>] ? handle_IRQ_event+0x58/0x140
       [<c01205fe>] ? ack_apic_level+0x7e/0x270
       [<c014a1fd>] ? do_softirq+0x3d/0x40
       [<c014a345>] ? irq_exit+0x65/0x90
       [<c010a6af>] ? do_IRQ+0x4f/0xc0
       [<c014a35d>] ? irq_exit+0x7d/0x90
       [<c011d547>] ? smp_apic_timer_interrupt+0x57/0x90
       [<c01094a9>] ? common_interrupt+0x29/0x30
       [<c010fd9e>] ? mwait_idle+0xbe/0x100
       [<c0107e42>] ? cpu_idle+0x52/0x90
       [<c054b1a5>] ? rest_init+0x55/0x60
       [<c077492d>] ? start_kernel+0x315/0x37d
       [<c07743ce>] ? unknown_bootoption+0x0/0x1f9
       [<c0774099>] ? i386_start_kernel+0x79/0x81
      Code: <bleh3>
      EIP: [<f8806c70>] ieee80211_agg_splice_packets+0x40/0xc0 [mac80211] SS:ESP 0068:c076be38
      CR2: 0000000000000030
      
      Cc: stable@kernel.org
      Testedy-by: default avatarJack Lau <jackelectronics@hotmail.com>
      Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      416fbdff
    • Francois Romieu's avatar
      8139cp: balance dma_map_single vs dma_unmap_single pair · 839d1624
      Francois Romieu authored
      The driver always:
      1. allocate cp->rx_buf_sz + NET_IP_ALIGN
      2. map cp->rx_buf_sz
      Signed-off-by: default avatarFrancois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      839d1624
    • David S. Miller's avatar
      Revert "libertas: Read buffer overflow" · 9799218a
      David S. Miller authored
      This reverts commit 57921c31.
      
      On request from John Linville:
      
      	It has been shown to create a new problem.  There is work
      	towards a solution to that one, but it isn't a simple
      	clean-up.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9799218a
  11. 10 Aug, 2009 3 commits