1. 17 9月, 2009 8 次提交
    • H
      af_iucv: handle non-accepted sockets after resuming from suspend · 56a73de3
      Hendrik Brueckner 提交于
      After resuming from suspend, all af_iucv sockets are disconnected.
      Ensure that iucv_accept_dequeue() can handle disconnected sockets
      which are not yet accepted.
      Signed-off-by: NHendrik Brueckner <brueckner@linux.vnet.ibm.com>
      Signed-off-by: NUrsula Braun <ursula.braun@de.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      56a73de3
    • H
      af_iucv: fix race in __iucv_sock_wait() · d9973179
      Hendrik Brueckner 提交于
      Moving prepare_to_wait before the condition to avoid a race between
      schedule_timeout and wake up.
      The race can appear during iucv_sock_connect() and iucv_callback_connack().
      Signed-off-by: NHendrik Brueckner <brueckner@linux.vnet.ibm.com>
      Signed-off-by: NUrsula Braun <ursula.braun@de.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d9973179
    • H
      iucv: use correct output register in iucv_query_maxconn() · b29e4da4
      Hendrik Brueckner 提交于
      The iucv_query_maxconn() function uses the wrong output register and
      stores the size of the interrupt buffer instead of the maximum number
      of connections.
      
      According to the QUERY IUCV function, general register 1 contains the
      maximum number of connections.
      
      If the maximum number of connections is not set properly, the following
      warning is displayed:
      
      Badness at /usr/src/kernel-source/2.6.30-39.x.20090806/net/iucv/iucv.c:1808
      Modules linked in: netiucv fsm af_iucv sunrpc qeth_l3 dm_multipath dm_mod vmur qeth ccwgroup
      CPU: 0 Tainted: G        W  2.6.30 #4
      Process seq (pid: 16925, task: 0000000030e24a40, ksp: 000000003033bd98)
      Krnl PSW : 0404200180000000 000000000053b270 (iucv_external_interrupt+0x64/0x224)
                 R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:2 PM:0 EA:3
      Krnl GPRS: 00000000011279c2 00000000014bdb70 0029000000000000 0000000000000029
                 000000000053b236 000000000001dba4 0000000000000000 0000000000859210
                 0000000000a67f68 00000000008a6100 000000003f83fb90 0000000000004000
                 000000003f8c7bc8 00000000005a2250 000000000053b236 000000003fc2fe08
      Krnl Code: 000000000053b262: e33010000021	clg	%r3,0(%r1)
                 000000000053b268: a7440010		brc	4,53b288
                 000000000053b26c: a7f40001		brc	15,53b26e
                >000000000053b270: c03000184134	larl	%r3,8434d8
                 000000000053b276: eb220030000c	srlg	%r2,%r2,48
                 000000000053b27c: eb6ff0a00004	lmg	%r6,%r15,160(%r15)
                 000000000053b282: c0f4fffff6a7	brcl	15,539fd0
                 000000000053b288: 4310a003		ic	%r1,3(%r10)
      Call Trace:
      ([<000000000053b236>] iucv_external_interrupt+0x2a/0x224)
       [<000000000010e09e>] do_extint+0x132/0x190
       [<00000000001184b6>] ext_no_vtime+0x1e/0x22
       [<0000000000549f7a>] _spin_unlock_irqrestore+0x96/0xa4
      ([<0000000000549f70>] _spin_unlock_irqrestore+0x8c/0xa4)
       [<00000000002101d6>] pipe_write+0x3da/0x5bc
       [<0000000000205d14>] do_sync_write+0xe4/0x13c
       [<0000000000206a7e>] vfs_write+0xae/0x15c
       [<0000000000206c24>] SyS_write+0x54/0xac
       [<0000000000117c8e>] sysc_noemu+0x10/0x16
       [<00000042ff8defcc>] 0x42ff8defcc
      Signed-off-by: NHendrik Brueckner <brueckner@linux.vnet.ibm.com>
      Signed-off-by: NUrsula Braun <ursula.braun@de.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b29e4da4
    • H
      iucv: fix iucv_buffer_cpumask check when calling IUCV functions · d28ecab0
      Hendrik Brueckner 提交于
      Prior to calling IUCV functions, the DECLARE BUFFER function must have been
      called for at least one CPU to receive IUCV interrupts.
      
      With commit "iucv: establish reboot notifier" (6c005961), a check has been
      introduced to avoid calling IUCV functions if the current CPU does not have
      an interrupt buffer declared.
      Because one interrupt buffer is sufficient, change the condition to ensure
      that one interrupt buffer is available.
      
      In addition, checking the buffer on the current CPU creates a race with
      CPU up/down notifications: before checking the buffer, the IUCV function
      might be interrupted by an smp_call_function() that retrieves the interrupt
      buffer for the current CPU.
      When the IUCV function continues, the check fails and -EIO is returned. If a
      buffer is available on any other CPU, the IUCV function call must be invoked
      (instead of failing with -EIO).
      Signed-off-by: NHendrik Brueckner <brueckner@linux.vnet.ibm.com>
      Signed-off-by: NUrsula Braun <ursula.braun@de.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d28ecab0
    • U
      iucv: suspend/resume error msg for left over pathes · 4c89d86b
      Ursula Braun 提交于
      During suspend IUCV exploiters have to close their IUCV connections.
      When restoring an image, it can be checked if all IUCV pathes had
      been closed before the Linux instance was suspended. If not, an
      error message is issued to indicate a problem in one of the
      used programs exploiting IUCV communication.
      Signed-off-by: NUrsula Braun <ursula.braun@de.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4c89d86b
    • J
      ipv6: Ignore route option with ROUTER_PREF_INVALID · 3933fc95
      Jens Rosenboom 提交于
      RFC4191 says that "If the Reserved (10) value is received, the Route
      Information Option MUST be ignored.", so this patch makes us conform
      to the RFC. This is different to the usage of the Default Router
      Preference, where an invalid value must indeed be treated as
      PREF_MEDIUM.
      Signed-off-by: NJens Rosenboom <me@jayr.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3933fc95
    • J
      cfg80211: fix SME connect · bbac31f4
      Johannes Berg 提交于
      There's a check saying
      	/* we're good if we have both BSSID and channel */
      	if (wdev->conn->params.bssid && wdev->conn->params.channel) {
      
      but that isn't true -- we need the BSS struct. This leads
      to errors such as
      
          Trying to associate with 00:1b:53:11:dc:40 (SSID='TEST' freq=2412 MHz)
          ioctl[SIOCSIWFREQ]: No such file or directory
          ioctl[SIOCSIWESSID]: No such file or directory
          Association request to the driver failed
          Associated with 00:1b:53:11:dc:40
      
      in wpa_supplicant, as reported by Holger.
      
      Instead, we really need to have the BSS struct, and if we
      don't, then we need to initiate a scan for it. But we may
      already have the BSS struct here, so hang on to it if we
      do and scan if we don't.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Tested-by: NHolger Schurig <hs4233@mail.mn-solutions.de>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      bbac31f4
    • P
      rc80211_minstrel: fix contention window calculation · 8c6c03fe
      Pavel Roskin 提交于
      The contention window is supposed to be a power of two minus one, i.e.
      15, 31, 63, 127...  minstrel_rate_init() forgets to subtract 1, so the
      sequence becomes 15, 32, 66, 134...
      
      Bug reported by Dan Halperin <dhalperi@cs.washington.edu>
      Signed-off-by: NPavel Roskin <proski@gnu.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8c6c03fe
  2. 16 9月, 2009 3 次提交
  3. 15 9月, 2009 21 次提交
  4. 12 9月, 2009 7 次提交
  5. 10 9月, 2009 1 次提交
    • P
      net_sched: fix estimator lock selection for mq child qdiscs · 23bcf634
      Patrick McHardy 提交于
      When new child qdiscs are attached to the mq qdisc, they are actually
      attached as root qdiscs to the device queues. The lock selection for
      new estimators incorrectly picks the root lock of the existing and
      to be replaced qdisc, which results in a use-after-free once the old
      qdisc has been destroyed.
      
      Mark mq qdisc instances with a new flag and treat qdiscs attached to
      mq as children similar to regular root qdiscs.
      
      Additionally prevent estimators from being attached to the mq qdisc
      itself since it only updates its byte and packet counters during dumps.
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      23bcf634