1. 02 2月, 2008 38 次提交
    • G
      USB: fix codingstyle issues in include/linux/usb/ · 41dceed5
      Greg Kroah-Hartman 提交于
      Fixes a number of coding style issues in the USB public header files.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      41dceed5
    • G
      USB: fix codingstyle issues in include/linux/usb.h · 969ab2ee
      Greg Kroah-Hartman 提交于
      No logical code changes were made, but checkpatch.pl is much happier now.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      969ab2ee
    • O
      USB: stop io performed by mos7720 upon close() · a1cd7e99
      Oliver Neukum 提交于
      This fixes a problem where the mos7720 driver will make io to a device from
      which it has been logically disconnected. It does so by introducing a flag by
      which the generic usb serial code can signal the subdrivers their
      disconnection and appropriate locking.
      Signed-off-by: NOliver Neukum <oneukum@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      a1cd7e99
    • D
      USB: at91_udc uses generic GPIO calls; minor cleanup · f3db6e82
      David Brownell 提交于
      Various small at91_udc cleanups:
      
       - Use generic GPIO calls, not older platform-specific ones
       - Use gpio_request()/gpio_free()
       - Use VERBOSE_DEBUG convention, not older VERBOSE
       - Fix sparse complaint about parameter type (changed to gfp_t)
       - Add missing newline to some rarely-seen debug messages
       - Fix some old cleanup bugs on probe() fault paths
      
      Also add a mechanism whereby rm9200 gpios can drive the D+ pullup
      through an inverting transistor, based on a patch from Steve Birtles.
      Most UDC drivers supporting a GPIO based pullup should probably have
      such an option, but testing it requries such a board in hand!
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: Steve Birtles <arm_kernel_development@micromark.net.cn>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      f3db6e82
    • S
      USB: Export suspend statistics · 15123006
      Sarah Sharp 提交于
      This patch exports two statistics to userspace:
      /sys/bus/usb/device/.../power/connected_duration
      /sys/bus/usb/device/.../power/active_duration
      
      connected_duration is the total time (in msec) that the device has
      been connected.  active_duration is the total time the device has not
      been suspended.  With these two statistics, tools like PowerTOP can
      calculate the percentage time that a device is active, i.e. not
      suspended or auto-suspended.
      
      Users can also use the active_duration to check if a device is actually
      autosuspended.  Currently, they can set power/level to auto and
      power/autosuspend to a positive timeout, but there's no way to know from
      userspace if a device was actually autosuspended without looking at the
      dmesg output.  These statistics will be useful in creating an automated
      userspace script to test autosuspend for USB devices.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      15123006
    • M
      USB: usbdevfs_urb: __user annotation · 7f9705b0
      Marcin Slusarz 提交于
      fix warning:
      drivers/usb/core/devio.c:1226:20: warning: incorrect type in assignment (different address spaces)
      drivers/usb/core/devio.c:1226:20:    expected void *usercontext
      drivers/usb/core/devio.c:1226:20:    got void [noderef] <asn:1>*
      Signed-off-by: NMarcin Slusarz <marcin.slusarz@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      7f9705b0
    • D
      USB: gadget: pxa2xx_udc supports inverted vbus · d4a8d46d
      Dmitry Baryshkov 提交于
      Some boards (like e.g. Tosa) invert the VBUS-detection signal:
      it's low when a host is supplying VBUS, and high otherwise.
      Allow specifying whether gpio_vbus value is inverted.
      Signed-off-by: NDmitry Baryshkov <dbaryshkov@gmail.com>
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      d4a8d46d
    • R
      USB: linux/usb/Kbuild needs only "header-y", not "unifdef-y" · 6d71190e
      Robert P. J. Day 提交于
      Given that none of the referenced header files test the proprocessor
      conditional __KERNEL__, there's no point "unifdef"fing them.
      Signed-off-by: NRobert P. J. Day <rpjday@crashcourse.ca>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      6d71190e
    • A
      USB: usb_serial: clean tty reference in the last close · 9a6b1efa
      Aristeu Rozanski 提交于
      When a usb serial adapter is used as console, the usb serial console
      driver bumps the open_count on the port struct used but doesn't attach
      a real tty to it (only a fake one temporaly). If this port is opened later
      using the regular character device interface, the open method won't
      initialize the port, which is the expected, and will receive a brand new
      tty struct created by tty layer, which will be stored in port->tty.
      
      When the last close is issued, open_count won't be 0 because of the
      console usage and the port->tty will still contain the old tty value. This
      is the last ttyUSB<n> close so the allocated tty will be freed by the
      tty layer. The usb_serial and usb_serial_port are still in use by the
      console, so port_free() won't be called (serial_close() ->
      usb_serial_put() -> destroy_serial() -> port_free()), so the scheduled
      work (port->work, usb_serial_port_work()) will still run. And
      usb_serial_port_work() does:
      (...)
              tty = port->tty;
              if (!tty)
                      return;
      
              tty_wakeup(tty);
      which causes (manually copied):
      
      Faulting instruction address: 0x6b6b6b68
      Oops: Kernel access of bad area, sig: 11 [#1]
      PREEMPT PowerMac
      Modules linked in: binfmt_misc ipv6 nfs lockd nfs_acl sunrpc dm_snapshot dm_mirror dm_mod hfsplus uinput ams input_polldev genrtc cpufreq_powersave i2c_powermac therm_adt746x snd_aoa_codec_tas snd_aoa_fabric_layout snd_aoa joydev snd_aoa_i2sbus snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc pmac_zilog serial_core evdev ide_cd cdrom snd appletouch soundcore snd_aoa_soundbus bcm43xx firmware_class usbhid ieee80211softmac ff_memless firewire_ohci firewire_core ieee80211 ieee80211_crypt crc_itu_t sungem sungem_phy uninorth_agp agpart ssb
      NIP: 6b6b6b68 LR: c01b2108 CTR: 6b6b6b6b
      REGS: c106de80 TRAP: 0400   Not tainted  (2.6.24-rc2)
      MSR: 40009032 <EE,ME,IR,DR>  CR: 82004024  XER: 00000000
      TASK = c106b4c0[5] 'events/0' THREAD: c106c000
      GPR00: 6b6b6b6b c106df30 c106b4c0 c2d613a0 00009032 00000001 00001a00 00000001
      GPR08: 00000008 00000000 00000000 c106c000 42004028 00000000 016ffbe0 0171a724
      GPR16: 016ffcf4 00240e24 00240e70 016fee68 016ff9a4 c03046c4 c0327f50 c03046fc
      GPR24: c106b6b9 c106b4c0 c101d610 c106c000 c02160fc c1eac1dc c2d613ac c2d613a0
      NIP [6b6b6b68] 0x6b6b6b68
      LR [c01b2108] tty_wakeup+0x6c/0x9c
      Call Trace:
      [c106df30] [c01b20e8] tty_wakeup+0x4c/0x9c (unreliable)
      [c106df40] [c0216138] usb_serial_port_work+0x3c/0x78
      [c106df50] [c00432e8] run_workqueue+0xc4/0x15c
      [c106df90] [c0043798] worker_thread+0xa0/0x124
      [c106dfd0] [c0048224] kthread+0x48/0x84
      [c106dff0] [c00129bc] kernel_thread+0x44/0x60
      Instruction dump:
      XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
      XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
      Slab corruption: size-2048 start=c2d613a0, len=2048
      Redzone: 0x9f911029d74e35b/0x9f911029d74e35b.
      Last user: [<c01b16d8>](release_one_tty+0xbc/0xf4)
      050: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
      Prev obj: start=c2d60b88, len=2048
      Redzone: 0x9f911029d74e35b/0x9f911029d74e35b.
      Last user: [<c00f30ec>](show_stat+0x410/0x428)
      000: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
      010: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
      
      This patch avoids this, clearing port->tty considering if the port is
      used as serial console or not
      Signed-off-by: NAristeu Rozanski <arozansk@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      9a6b1efa
    • C
      USB: add Printer Gadget Driver · 25a010c8
      Craig W. Nadler 提交于
      G_PRINTER: Adds a USB printer gadget driver for use in printer firmware.
      
      This adds a USB printer gadget driver for use in printer firmware.
      The printer gadget channels data between the USB host and a userspace
      program driving the print engine. The user space program reads and
      writes the device file /dev/g_printer to receive or send printer data.
      It can use ioctl calls to the device file to get or set printer status.
      Signed-off-by: NCraig W. Nadler <craig@nadler.us>
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      25a010c8
    • A
      USB: usb-storage: new "lockable" subclass 0x07 · 676d3aa1
      Alan Stern 提交于
      This patch (as1011) adds a #define for the newly-created Lockable
      (i.e., password-protected) subclass 0x07 for USB mass-storage devices.
      The private ISD200 entry (which had been mapped to subclass 0x07) is
      moved to 0xf0, which is unlikely to conflict with any official
      subclass designation.
      
      The US_SC_MIN and US_SC_MAX constants aren't used anywhere, so the
      patch removes them.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Cc: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      676d3aa1
    • T
      USB: Convert from class_device to device for USB core · 5a3201b2
      Tony Jones 提交于
      Convert from class_device to device for drivers/usb/core.
      Signed-off-by: NTony Jones <tonyj@suse.de>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      5a3201b2
    • B
      ide: use ide_remove_port_from_hwgroup in init_irq() · fbd13088
      Bartlomiej Zolnierkiewicz 提交于
      There should be no functionality changes caused by this patch.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      fbd13088
    • B
    • B
    • B
      ide: don't include <linux/hdsmart.h> · dac22420
      Bartlomiej Zolnierkiewicz 提交于
      IDE doesn't need it.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      dac22420
    • B
      ide: use ide_build_sglist() and ide_destroy_dmatable() in non-PCI host drivers · 062f9f02
      Bartlomiej Zolnierkiewicz 提交于
      * Make ide_build_sglist() and ide_destroy_dmatable() available also when
        CONFIG_BLK_DEV_IDEDMA_PCI=n.
      
      * Use ide_build_sglist() and ide_destroy_dmatable() in {ics,au1xxx-}ide.c
        and remove no longer needed {ics,au}ide_build_sglist().
      
      There should be no functionality changes caused by this patch.
      
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      062f9f02
    • B
      au1xxx-ide: use hwif->dev · 5df37c34
      Bartlomiej Zolnierkiewicz 提交于
      * Setup hwif->dev in au_ide_probe().
      
      * Use hwif->dev instead of ahwif->dev in auide_build_sglist(),
        auide_build_dmatable(), auide_dma_end() and auide_ddma_init().
      
      * Remove no longer needed 'dev' field from _auide_hwif type.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      5df37c34
    • B
      ide: keep pointer to struct device instead of struct pci_dev in ide_hwif_t · 36501650
      Bartlomiej Zolnierkiewicz 提交于
      Keep pointer to struct device instead of struct pci_dev in ide_hwif_t.
      
      While on it:
      * Use *dev->dma_mask instead of pci_dev->dma_mask in ide_toggle_bounce().
      
      There should be no functionality changes caused by this patch.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      36501650
    • B
      ide: add IDE_HFLAG_NO_DSC host flag · 4166c199
      Bartlomiej Zolnierkiewicz 提交于
      * Add IDE_HFLAG_NO_DSC host flag for hosts that doesn't support DSC overlap.
      
      * Set it in aec62xx (for ATP850UF only) and hpt34x host drivers.
      
      * Convert ide-tape device driver to check for IDE_HFLAG_NO_DSC flag.
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      4166c199
    • B
      ide: add IDE_HFLAG_CLEAR_SIMPLEX host flag · 8ac2b42a
      Bartlomiej Zolnierkiewicz 提交于
      * Rename 'simplex_stat' variable to 'dma_stat' in ide_get_or_set_dma_base().
      
      * Factor out code for forcing host out of "simplex" mode from
        ide_get_or_set_dma_base() to ide_pci_clear_simplex() helper.
      
      * Add IDE_HFLAG_CLEAR_SIMPLEX host flag and set it in alim15x3 (for M5229),
        amd74xx (for AMD 7409), cmd64x (for CMD643), generic (for Netcell) and
        serverworks (for CSB5) host drivers.
      
      * Make ide_get_or_set_dma_base() test for IDE_HFLAG_CLEAR_SIMPLEX host flag
        instead of checking dev->device (BTW the code was buggy because it didn't
        check for dev->vendor, luckily none of these PCI Device IDs was used by
        some other vendor for PCI IDE controller).
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      8ac2b42a
    • S
      ide: ide_setup_dma() assumes 8 ports · ecf32796
      Sergei Shtylyov 提交于
      According to http://marc.info/?l=linux-ide&m=114346138611631, the drivers must
      always register 8 DMA ports with ide_setup_dma(), so its last argument is not
      needed. While at it, kill some useless parens in that function...
      Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      ecf32796
    • B
      ide: add ide_dump_identify() debug helper · 7b9f25b5
      Bartlomiej Zolnierkiewicz 提交于
      * Add ide_dump_identify() debug helper for dumping raw identify data in
        the hdparm friendly format (== the identify data can be extracted from
        dmesg output and passed to hdparm --Istdin).
      
      * Dump identify data in ide-probe.c::do_identify() if DEBUG is enabled.
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      7b9f25b5
    • B
      ide-cd: move lba_to_msf() and msf_to_lba() to <linux/cdrom.h> · a1bb9457
      Bartlomiej Zolnierkiewicz 提交于
      * Move lba_to_msf() and msf_to_lba() to <linux/cdrom.h>
        (use 'u8' type instead of 'byte' while at it).
      
      * Remove msf_to_lba() copy from drivers/cdrom/cdrom.c.
      Acked-by: NJens Axboe <jens.axboe@oracle.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      a1bb9457
    • A
      ide: make wait_drive_not_busy() static again · da6f4c7f
      Adrian Bunk 提交于
      After commit 7267c337 
      wait_drive_not_busy() can become static again.
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      da6f4c7f
    • A
      ide: small ide-scan-pci.c cleanup · 2eae6ebb
      Adrian Bunk 提交于
      - ide_scan_pcibus() can become static
      - instead of ide_scan_pci() we can use ide_scan_pcibus() directly
        in module_init()
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      2eae6ebb
    • E
      [AUDIT] break large execve argument logging into smaller messages · de6bbd1d
      Eric Paris 提交于
      execve arguments can be quite large.  There is no limit on the number of
      arguments and a 4G limit on the size of an argument.
      
      this patch prints those aruguments in bite sized pieces.  a userspace size
      limitation of 8k was discovered so this keeps messages around 7.5k
      
      single arguments larger than 7.5k in length are split into multiple records
      and can be identified as aX[Y]=
      Signed-off-by: NEric Paris <eparis@redhat.com>
      de6bbd1d
    • E
      [AUDIT] Add End of Event record · c0641f28
      Eric Paris 提交于
      This patch adds an end of event record type. It will be sent by the kernel as
      the last record when a multi-record event is triggered. This will aid realtime
      analysis programs since they will now reliably know they have the last record
      to complete an event. The audit daemon filters this and will not write it to
      disk.
      
      Signed-off-by: Steve Grubb <sgrubb redhat com>
      Signed-off-by: NEric Paris <eparis@redhat.com>
      c0641f28
    • E
      [AUDIT] add session id to audit messages · 4746ec5b
      Eric Paris 提交于
      In order to correlate audit records to an individual login add a session
      id.  This is incremented every time a user logs in and is included in
      almost all messages which currently output the auid.  The field is
      labeled ses=  or oses=
      Signed-off-by: NEric Paris <eparis@redhat.com>
      4746ec5b
    • A
      [PATCH] get rid of loginuid races · bfef93a5
      Al Viro 提交于
      Keeping loginuid in audit_context is racy and results in messier
      code.  Taken to task_struct, out of the way of ->audit_context
      changes.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      bfef93a5
    • A
      [PATCH] switch audit_get_loginuid() to task_struct * · 0c11b942
      Al Viro 提交于
      all callers pass something->audit_context
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      0c11b942
    • A
      x86: avoid section mismatch involving arch_register_cpu · d9874026
      Alexander van Heukelum 提交于
      Avoid section mismatch involving arch_register_cpu.
      
      Marking arch_register_cpu as __init and removing the export
      for non-hotplug-cpu configurations makes the following warning
      go away:
      
      Section mismatch in reference from the function
      arch_register_cpu() to the function .devinit.text:register_cpu()
      The function  arch_register_cpu() references
      the function __devinit register_cpu().
      This is often because arch_register_cpu lacks a __devinit
      annotation or the annotation of register_cpu is wrong.
      
      The only external user of arch_register_cpu in the tree is
      in drivers/acpi/processor_core.c where it is guarded by
      ACPI_HOTPLUG_CPU (which depends on HOTPLUG_CPU).
      Signed-off-by: NAlexander van Heukelum <heukelum@fastmail.fm>
      CC: Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d9874026
    • Y
      x86_64: make bootmap_start page align v6 · 24a5da73
      Yinghai Lu 提交于
      boot oopses when a system has 64 or 128 GB of RAM installed:
      
      Calling initcall 0xffffffff80bc33b6: sctp_init+0x0/0x711()
      BUG: unable to handle kernel NULL pointer dereference at 000000000000005f
      IP: [<ffffffff802bfe55>] proc_register+0xe7/0x10f
      PGD 0
      Oops: 0000 [1] SMP
      CPU 0
      Modules linked in:
      Pid: 1, comm: swapper Not tainted 2.6.24-smp-g5a514e21-dirty #6
      RIP: 0010:[<ffffffff802bfe55>]  [<ffffffff802bfe55>] proc_register+0xe7/0x10f
      RSP: 0000:ffff810824c57e60  EFLAGS: 00010246
      RAX: 000000000000d7d7 RBX: ffff811024c5fa80 RCX: ffff810824c57e08
      RDX: 0000000000000000 RSI: 0000000000000195 RDI: ffffffff80cc2460
      RBP: ffffffffffffffff R08: 0000000000000000 R09: ffff811024c5fa80
      R10: 0000000000000000 R11: 0000000000000002 R12: ffff810824c57e6c
      R13: 0000000000000000 R14: ffff810824c57ee0 R15: 00000006abd25bee
      FS:  0000000000000000(0000) GS:ffffffff80b4d000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
      CR2: 000000000000005f CR3: 0000000000201000 CR4: 00000000000006e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process swapper (pid: 1, threadinfo ffff810824c56000, task ffff812024c52000)
      Stack:  ffffffff80a57348 0000019500000000 ffff811024c5fa80 0000000000000000
       00000000ffffff97 ffffffff802bfef0 0000000000000000 ffffffffffffffff
       0000000000000000 ffffffff80bc3b4b ffff810824c57ee0 ffffffff80bc34a5
      Call Trace:
       [<ffffffff802bfef0>] ? create_proc_entry+0x73/0x8a
       [<ffffffff80bc3b4b>] ? sctp_snmp_proc_init+0x1c/0x34
       [<ffffffff80bc34a5>] ? sctp_init+0xef/0x711
       [<ffffffff80b976e3>] ? kernel_init+0x175/0x2e1
       [<ffffffff8020ccf8>] ? child_rip+0xa/0x12
       [<ffffffff80b9756e>] ? kernel_init+0x0/0x2e1
       [<ffffffff8020ccee>] ? child_rip+0x0/0x12
      
      Code: 1e 48 83 7b 38 00 75 08 48 c7 43 38 f0 e8 82 80 48 83 7b 30 00 75 08 48 c7 43 30 d0 e9 82 80 48 c7 c7 60 24 cc 80 e8 bd 5a 54 00 <48> 8b 45 60 48 89 6b 58 48 89 5d 60 48 89 43 50 fe 05 f5 25 a0
      RIP  [<ffffffff802bfe55>] proc_register+0xe7/0x10f
       RSP <ffff810824c57e60>
      CR2: 000000000000005f
      ---[ end trace 02c2d78def82877a ]---
      Kernel panic - not syncing: Attempted to kill init!
      
      it turns out some variables near end of bss are corrupted already.
      
      in System.map we have
      ffffffff80d40420 b rsi_table
      ffffffff80d40620 B krb5_seq_lock
      ffffffff80d40628 b i.20437
      ffffffff80d40630 b xprt_rdma_inline_write_padding
      ffffffff80d40638 b sunrpc_table_header
      ffffffff80d40640 b zero
      ffffffff80d40644 b min_memreg
      ffffffff80d40648 b rpcrdma_tk_lock_g
      ffffffff80d40650 B sctp_assocs_id_lock
      ffffffff80d40658 B proc_net_sctp
      ffffffff80d40660 B sctp_assocs_id
      ffffffff80d40680 B sysctl_sctp_mem
      ffffffff80d40690 B sysctl_sctp_rmem
      ffffffff80d406a0 B sysctl_sctp_wmem
      ffffffff80d406b0 b sctp_ctl_socket
      ffffffff80d406b8 b sctp_pf_inet6_specific
      ffffffff80d406c0 b sctp_pf_inet_specific
      ffffffff80d406c8 b sctp_af_v4_specific
      ffffffff80d406d0 b sctp_af_v6_specific
      ffffffff80d406d8 b sctp_rand.33270
      ffffffff80d406dc b sctp_memory_pressure
      ffffffff80d406e0 b sctp_sockets_allocated
      ffffffff80d406e4 b sctp_memory_allocated
      ffffffff80d406e8 b sctp_sysctl_header
      ffffffff80d406f0 b zero
      ffffffff80d406f4 A __bss_stop
      ffffffff80d406f4 A _end
      
      and setup_node_bootmem() will use that page 0xd40000 for bootmap
      Bootmem setup node 0 0000000000000000-0000000828000000
        NODE_DATA [000000000008a485 - 0000000000091484]
        bootmap [0000000000d406f4 -  0000000000e456f3] pages 105
      Bootmem setup node 1 0000000828000000-0000001028000000
        NODE_DATA [0000000828000000 - 0000000828006fff]
        bootmap [0000000828007000 -  0000000828106fff] pages 100
      Bootmem setup node 2 0000001028000000-0000001828000000
        NODE_DATA [0000001028000000 - 0000001028006fff]
        bootmap [0000001028007000 -  0000001028106fff] pages 100
      Bootmem setup node 3 0000001828000000-0000002028000000
        NODE_DATA [0000001828000000 - 0000001828006fff]
        bootmap [0000001828007000 -  0000001828106fff] pages 100
      
      setup_node_bootmem() makes NODE_DATA cacheline aligned,
      and bootmap is page-aligned.
      
      the patch updates find_e820_area() to make sure we can meet
      the alignment constraints.
      Signed-off-by: NYinghai Lu <yinghai.lu@sun.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      24a5da73
    • Y
      x86_64: add debug name for early_res · 25eff8d4
      Yinghai Lu 提交于
      helps debugging problems in this rather murky area of code.
      Signed-off-by: NYinghai Lu <yinghai.lu@sun.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      25eff8d4
    • T
      futex: Add bitset conditional wait/wakeup functionality · cd689985
      Thomas Gleixner 提交于
      To allow the implementation of optimized rw-locks in user space, glibc
      needs a possibility to select waiters for wakeup depending on a bitset
      mask.
      
      This requires two new futex OPs: FUTEX_WAIT_BITS and FUTEX_WAKE_BITS
      These OPs are basically the same as FUTEX_WAIT and FUTEX_WAKE plus an
      additional argument - a bitset. Further the FUTEX_WAIT_BITS OP is
      expecting an absolute timeout value instead of the relative one, which
      is used for the FUTEX_WAIT OP.
      
      FUTEX_WAIT_BITS calls into the kernel with a bitset. The bitset is
      stored in the futex_q structure, which is used to enqueue the waiter
      into the hashed futex waitqueue.
      
      FUTEX_WAKE_BITS also calls into the kernel with a bitset. The wakeup
      function logically ANDs the bitset with the bitset stored in each
      waiters futex_q structure. If the result is zero (i.e. none of the set
      bits in the bitsets is matching), then the waiter is not woken up. If
      the result is not zero (i.e. one of the set bits in the bitsets is
      matching), then the waiter is woken.
      
      The bitset provided by the caller must be non zero. In case the
      provided bitset is zero the kernel returns EINVAL.
      
      Internaly the new OPs are only extensions to the existing FUTEX_WAIT
      and FUTEX_WAKE functions. The existing OPs hand a bitset with all bits
      set into the futex_wait() and futex_wake() functions.
      Signed-off-by: NThomas Gleixner <tgxl@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      cd689985
    • T
      x86: replace LOCK_PREFIX in futex.h · 9d55b992
      Thomas Gleixner 提交于
      The exception fixup for the futex macros __futex_atomic_op1/2 and
      futex_atomic_cmpxchg_inatomic() is missing an entry when the lock
      prefix is replaced by a NOP via SMP alternatives.
      
      Chuck Ebert tracked this down from the information provided in:
      https://bugzilla.redhat.com/show_bug.cgi?id=429412
      
      A possible solution would be to add another fixup after the
      LOCK_PREFIX, so both the LOCK and NOP case have their own entry in the
      exception table, but it's not really worth the trouble.
      
      Simply replace LOCK_PREFIX with lock and keep those untouched by SMP
      alternatives.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      9d55b992
    • T
      tick-sched: add more debug information · 5df7fa1c
      Thomas Gleixner 提交于
      To allow better diagnosis of tick-sched related, especially NOHZ
      related problems, we need to know when the last wakeup via an irq
      happened and when the CPU left the idle state.
      
      Add two fields (idle_waketime, idle_exittime) to the tick_sched
      structure and add them to the timer_list output.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      5df7fa1c
    • T
      timekeeping: update xtime_cache when time(zone) changes · 1001d0a9
      Thomas Gleixner 提交于
      xtime_cache needs to be updated whenever xtime and or wall_to_monotic
      are changed. Otherwise users of xtime_cache might see a stale (and in
      the case of timezone changes utterly wrong) value until the next
      update happens.
      
      Fixup the obvious places, which miss this update.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Acked-by: NJohn Stultz <johnstul@us.ibm.com>
      Tested-by: NDhaval Giani <dhaval@linux.vnet.ibm.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1001d0a9
  2. 01 2月, 2008 2 次提交