Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
authorPaul Mundt <lethal@linux-sh.org>
Mon, 20 Oct 2008 02:17:52 +0000 (11:17 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 20 Oct 2008 02:17:52 +0000 (11:17 +0900)
Conflicts:

Documentation/kernel-parameters.txt
arch/sh/include/asm/elf.h

1  2 
Documentation/kernel-parameters.txt
arch/sh/include/asm/elf.h
arch/sh/kernel/smp.c
drivers/net/sh_eth.c
drivers/rtc/rtc-sh.c

index abeff96e9d46979a2958df34ed2641527fa809f0,d4f4875fc7c6d2e463e9c2b6e26d2d278cf1399c..bcecfaa1e7701cea682367553551e4fb54791dca
@@@ -284,6 -284,11 +284,11 @@@ and is between 256 and 4096 characters
                        isolate - enable device isolation (each device, as far
                                  as possible, will get its own protection
                                  domain)
+                       fullflush - enable flushing of IO/TLB entries when
+                                   they are unmapped. Otherwise they are
+                                   flushed before they will be reused, which
+                                   is a lot of faster
        amd_iommu_size= [HW,X86-64]
                        Define the size of the aperture for the AMD IOMMU
                        driver. Possible values are:
                        Range: 0 - 8192
                        Default: 64
  
-       disable_8254_timer
-       enable_8254_timer
-                       [IA32/X86_64] Disable/Enable interrupt 0 timer routing
-                       over the 8254 in addition to over the IO-APIC. The
-                       kernel tries to set a sensible default.
        hpet=           [X86-32,HPET] option to control HPET usage
                        Format: { enable (default) | disable | force }
                        disable: disable HPET and use PIT instead
        earlyprintk=    [X86-32,X86-64,SH,BLACKFIN]
                        earlyprintk=vga
                        earlyprintk=serial[,ttySn[,baudrate]]
+                       earlyprintk=dbgp
  
                        Append ",keep" to not disable it when the real console
                        takes over.
  
-                       Only vga or serial at a time, not both.
+                       Only vga or serial or usb debug port at a time.
  
                        Currently only ttyS0 and ttyS1 are supported.
  
                        Defaults to the default architecture's huge page size
                        if not specified.
  
 +      hlt             [BUGS=ARM,SH]
 +
+       i8042.debug     [HW] Toggle i8042 debug mode
        i8042.direct    [HW] Put keyboard port into non-translated mode
        i8042.dumbkbd   [HW] Pretend that controller can only read data from
                             keyboard and cannot control its state
                        (only serial suported for now)
                        Format: <serial_device>[,baud]
  
+       kmac=           [MIPS] korina ethernet MAC address.
+                       Configure the RouterBoard 532 series on-chip
+                       Ethernet adapter MAC address.
        l2cr=           [PPC]
  
        l3cr=           [PPC]
        mem=nopentium   [BUGS=X86-32] Disable usage of 4MB pages for kernel
                        memory.
  
 +      memchunk=nn[KMG]
 +                      [KNL,SH] Allow user to override the default size for
 +                      per-device physically contiguous DMA buffers.
 +
        memmap=exactmap [KNL,X86-32,X86_64] Enable setting of an exact
                        E820 memory map, as specified by the user.
                        Such memmap=exactmap lines can be constructed based on
                                 or
                                 memmap=0x10000$0x18690000
  
+       memory_corruption_check=0/1 [X86]
+                       Some BIOSes seem to corrupt the first 64k of
+                       memory when doing things like suspend/resume.
+                       Setting this option will scan the memory
+                       looking for corruption.  Enabling this will
+                       both detect corruption and prevent the kernel
+                       from using the memory being corrupted.
+                       However, its intended as a diagnostic tool; if
+                       repeatable BIOS-originated corruption always
+                       affects the same memory, you can use memmap=
+                       to prevent the kernel from using that memory.
+       memory_corruption_check_size=size [X86]
+                       By default it checks for corruption in the low
+                       64k, making this memory unavailable for normal
+                       use.  Use this parameter to scan for
+                       corruption in more or less memory.
+       memory_corruption_check_period=seconds [X86]
+                       By default it checks for corruption every 60
+                       seconds.  Use this parameter to check at some
+                       other rate.  0 disables periodic checking.
        memtest=        [KNL,X86] Enable memtest
                        Format: <integer>
                        range: 0,4 : pattern number
  
        nodisconnect    [HW,SCSI,M68K] Disables SCSI disconnects.
  
 +      nodsp           [SH] Disable hardware DSP at boot time.
 +
        noefi           [X86-32,X86-64] Disable EFI runtime services support.
  
        noexec          [IA-64]
                        noexec32=off: disable non-executable mappings
                                read implies executable mappings
  
 +      nofpu           [SH] Disable hardware FPU at boot time.
 +
        nofxsr          [BUGS=X86-32] Disables x86 floating point extended
                        register save and restore. The kernel will only save
                        legacy floating-point registers on task switch.
  
        noclflush       [BUGS=X86] Don't use the CLFLUSH instruction
  
 -      nohlt           [BUGS=ARM]
 +      nohlt           [BUGS=ARM,SH]
  
        no-hlt          [BUGS=X86-32] Tells the kernel that the hlt
                        instruction doesn't work correctly and not to
  
        nolapic_timer   [X86-32,APIC] Do not use the local APIC timer.
  
+       nox2apic        [X86-64,APIC] Do not enable x2APIC mode.
+       x2apic_phys     [X86-64,APIC] Use x2apic physical mode instead of
+                       default x2apic cluster mode on platforms
+                       supporting x2apic.
        noltlbs         [PPC] Do not use large page/tlb entries for kernel
                        lowmem mapping on PPC40x.
  
                        autoconfiguration.
                        Ranges are in pairs (memory base and size).
  
+       dynamic_printk
+                       Enables pr_debug()/dev_dbg() calls if
+                       CONFIG_DYNAMIC_PRINTK_DEBUG has been enabled. These can also
+                       be switched on/off via <debugfs>/dynamic_printk/modules
        print-fatal-signals=
                        [KNL] debug: print fatal signals
                        print-fatal-signals=1: print segfault info to
        shapers=        [NET]
                        Maximal number of shapers.
  
+       show_msr=       [x86] show boot-time MSR settings
+                       Format: { <integer> }
+                       Show boot-time (BIOS-initialized) MSR settings.
+                       The parameter means the number of CPUs to show,
+                       for example 1 means boot CPU only.
        sim710=         [SCSI,HW]
                        See header of drivers/scsi/sim710.c.
  
                        autosuspended.  Devices for which the delay is set
                        to a negative value won't be autosuspended at all.
  
+       usbcore.usbfs_snoop=
+                       [USB] Set to log all usbfs traffic (default 0 = off).
+       usbcore.blinkenlights=
+                       [USB] Set to cycle leds on hubs (default 0 = off).
+       usbcore.old_scheme_first=
+                       [USB] Start with the old device initialization
+                       scheme (default 0 = off).
+       usbcore.use_both_schemes=
+                       [USB] Try the other device initialization scheme
+                       if the first one fails (default 1 = enabled).
+       usbcore.initial_descriptor_timeout=
+                       [USB] Specifies timeout for the initial 64-byte
+                         USB_REQ_GET_DESCRIPTOR request in milliseconds
+                       (default 5000 = 5.0 seconds).
        usbhid.mousepoll=
                        [USBHID] The interval which mice are to be polled at.
  
index 4da3a0b109119f3bc9259595272b3fb296b0e410,ee02db110f0da3b78aa0c5a4c66ba13c28c362a3..f7d0b8e6aa84aa529e7584856ad6e347732a308e
@@@ -108,14 -108,6 +108,14 @@@ typedef struct user_fpu_struct elf_fpre
  #define elf_check_fdpic(x)            ((x)->e_flags & EF_SH_FDPIC)
  #define elf_check_const_displacement(x)       ((x)->e_flags & EF_SH_PIC)
  
 +#ifdef CONFIG_SUPERH32
 +/*
 + * Enable dump using regset.
 + * This covers all of general/DSP/FPU regs.
 + */
 +#define CORE_DUMP_USE_REGSET
 +#endif
 +
  #define USE_ELF_CORE_DUMP
  #define ELF_FDPIC_CORE_EFLAGS EF_SH_FDPIC
  #define ELF_EXEC_PAGESIZE     PAGE_SIZE
@@@ -197,8 -189,14 +197,6 @@@ do {                                                                      
  } while (0)
  #endif
  
- #define SET_PERSONALITY(ex, ibcs2) set_personality(PER_LINUX_32BIT)
 -#define SET_PERSONALITY(ex) set_personality(PER_LINUX_32BIT)
 -struct task_struct;
 -extern int dump_task_regs (struct task_struct *, elf_gregset_t *);
 -extern int dump_task_fpu (struct task_struct *, elf_fpregset_t *);
 -
 -#define ELF_CORE_COPY_TASK_REGS(tsk, elf_regs) dump_task_regs(tsk, elf_regs)
 -#define ELF_CORE_COPY_FPREGS(tsk, elf_fpregs) dump_task_fpu(tsk, elf_fpregs)
--
  #ifdef CONFIG_VSYSCALL
  /* vDSO has arch_setup_additional_pages */
  #define ARCH_HAS_SETUP_ADDITIONAL_PAGES
diff --combined arch/sh/kernel/smp.c
index c55d314166c79bd8802464d1023fdd931e6967cf,001778f9adaf83eee6cb3766866809516d346bc0..508dfb023628d980233110f462802dd27f8c93d2
@@@ -3,7 -3,7 +3,7 @@@
   *
   * SMP support for the SuperH processors.
   *
 - * Copyright (C) 2002 - 2007 Paul Mundt
 + * Copyright (C) 2002 - 2008 Paul Mundt
   * Copyright (C) 2006 - 2007 Akio Idehara
   *
   * This file is subject to the terms and conditions of the GNU General Public
@@@ -82,14 -82,13 +82,16 @@@ asmlinkage void __cpuinit start_seconda
  
        preempt_disable();
  
+       notify_cpu_starting(smp_processor_id());
        local_irq_enable();
  
 +      cpu = smp_processor_id();
 +
 +      /* Enable local timers */
 +      local_timer_setup(cpu);
        calibrate_delay();
  
 -      cpu = smp_processor_id();
        smp_store_cpu_info(cpu);
  
        cpu_set(cpu, cpu_online_map);
@@@ -187,42 -186,6 +189,42 @@@ void arch_send_call_function_single_ipi
        plat_send_ipi(cpu, SMP_MSG_FUNCTION_SINGLE);
  }
  
 +void smp_timer_broadcast(cpumask_t mask)
 +{
 +      int cpu;
 +
 +      for_each_cpu_mask(cpu, mask)
 +              plat_send_ipi(cpu, SMP_MSG_TIMER);
 +}
 +
 +static void ipi_timer(void)
 +{
 +      irq_enter();
 +      local_timer_interrupt();
 +      irq_exit();
 +}
 +
 +void smp_message_recv(unsigned int msg)
 +{
 +      switch (msg) {
 +      case SMP_MSG_FUNCTION:
 +              generic_smp_call_function_interrupt();
 +              break;
 +      case SMP_MSG_RESCHEDULE:
 +              break;
 +      case SMP_MSG_FUNCTION_SINGLE:
 +              generic_smp_call_function_single_interrupt();
 +              break;
 +      case SMP_MSG_TIMER:
 +              ipi_timer();
 +              break;
 +      default:
 +              printk(KERN_WARNING "SMP %d: %s(): unknown IPI %d\n",
 +                     smp_processor_id(), __func__, msg);
 +              break;
 +      }
 +}
 +
  /* Not really SMP stuff ... */
  int setup_profiling_timer(unsigned int multiplier)
  {
diff --combined drivers/net/sh_eth.c
index 1a04814291c164c02d9802f714acf5cfce6e20fd,b39d1cc1ef04b022537ded766f1490bdcb83a342..a24bb68887ab24eb399137d8d6cf45366fa2b704
@@@ -1140,7 -1140,7 +1140,7 @@@ static int sh_mdio_init(struct net_devi
  
        /* Hook up MII support for ethtool */
        mdp->mii_bus->name = "sh_mii";
-       mdp->mii_bus->dev = &ndev->dev;
+       mdp->mii_bus->parent = &ndev->dev;
        mdp->mii_bus->id[0] = id;
  
        /* PHY IRQ */
@@@ -1166,7 -1166,7 +1166,7 @@@ out_free_irq
        kfree(mdp->mii_bus->irq);
  
  out_free_bus:
-       kfree(mdp->mii_bus);
+       free_mdio_bitbang(mdp->mii_bus);
  
  out_free_bitbang:
        kfree(bitbang);
@@@ -1205,12 -1205,11 +1205,12 @@@ static int sh_eth_drv_probe(struct plat
                devno = 0;
  
        ndev->dma = -1;
 -      ndev->irq = platform_get_irq(pdev, 0);
 -      if (ndev->irq < 0) {
 +      ret = platform_get_irq(pdev, 0);
 +      if (ret < 0) {
                ret = -ENODEV;
                goto out_release;
        }
 +      ndev->irq = ret;
  
        SET_NETDEV_DEV(ndev, &pdev->dev);
  
diff --combined drivers/rtc/rtc-sh.c
index 690a7800805aa4f73803c9c2f2b3adc2acf5519c,fcead4c4cd1f339b59b84de1c2d34ea95f38f9f1..3f393c82e32cba741c10f50cea4783fe536cceec
@@@ -257,12 -257,6 +257,6 @@@ static inline void sh_rtc_setaie(struc
        spin_unlock_irq(&rtc->lock);
  }
  
- static void sh_rtc_release(struct device *dev)
- {
-       sh_rtc_setpie(dev, 0);
-       sh_rtc_setaie(dev, 0);
- }
  static int sh_rtc_proc(struct device *dev, struct seq_file *seq)
  {
        struct sh_rtc *rtc = dev_get_drvdata(dev);
@@@ -559,7 -553,6 +553,6 @@@ static int sh_rtc_irq_set_freq(struct d
  }
  
  static struct rtc_class_ops sh_rtc_ops = {
-       .release        = sh_rtc_release,
        .ioctl          = sh_rtc_ioctl,
        .read_time      = sh_rtc_read_time,
        .set_time       = sh_rtc_set_time,
@@@ -575,7 -568,7 +568,7 @@@ static int __devinit sh_rtc_probe(struc
        struct sh_rtc *rtc;
        struct resource *res;
        unsigned int tmp;
 -      int ret = -ENOENT;
 +      int ret;
  
        rtc = kzalloc(sizeof(struct sh_rtc), GFP_KERNEL);
        if (unlikely(!rtc))
        spin_lock_init(&rtc->lock);
  
        /* get periodic/carry/alarm irqs */
 -      rtc->periodic_irq = platform_get_irq(pdev, 0);
 -      if (unlikely(rtc->periodic_irq < 0)) {
 +      ret = platform_get_irq(pdev, 0);
 +      if (unlikely(ret < 0)) {
 +              ret = -ENOENT;
                dev_err(&pdev->dev, "No IRQ for period\n");
                goto err_badres;
        }
 +      rtc->periodic_irq = ret;
  
 -      rtc->carry_irq = platform_get_irq(pdev, 1);
 -      if (unlikely(rtc->carry_irq < 0)) {
 +      ret = platform_get_irq(pdev, 1);
 +      if (unlikely(ret < 0)) {
 +              ret = -ENOENT;
                dev_err(&pdev->dev, "No IRQ for carry\n");
                goto err_badres;
        }
 +      rtc->carry_irq = ret;
  
 -      rtc->alarm_irq = platform_get_irq(pdev, 2);
 -      if (unlikely(rtc->alarm_irq < 0)) {
 +      ret = platform_get_irq(pdev, 2);
 +      if (unlikely(ret < 0)) {
 +              ret = -ENOENT;
                dev_err(&pdev->dev, "No IRQ for alarm\n");
                goto err_badres;
        }
 +      rtc->alarm_irq = ret;
  
        res = platform_get_resource(pdev, IORESOURCE_IO, 0);
        if (unlikely(res == NULL)) {
 +              ret = -ENOENT;
                dev_err(&pdev->dev, "No IO resource\n");
                goto err_badres;
        }
This page took 0.041193 seconds and 5 git commands to generate.