1. 26 2月, 2008 23 次提交
    • M
      x86: fix boot failure on 486 due to TSC breakage · 12c247a6
      Mikael Pettersson 提交于
       > Diffing dmesg between git7 and git8 doesn't sched any light since
       > git8 also removed the printouts of the x86 caps as they were being
       > initialised and updated. I'm currently adding those printouts back
       > in the hope of seeing where and when the caps get broken.
      
      That turned out to be very illuminating:
      
       --- dmesg-2.6.24-git7	2008-02-24 18:01:25.295851000 +0100
       +++ dmesg-2.6.24-git8	2008-02-24 18:01:25.530358000 +0100
       ...
       CPU: After generic identify, caps: 00000003 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      
       CPU: After all inits, caps: 00000003 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      +CPU: After applying cleared_cpu_caps, caps: 00000013 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      
      Notice how the TSC cap bit goes from Off to On.
      
      (The first two lines are printout loops from -git7 forward-ported
      to -git8, the third line is the same printout loop added just after
      the xor-with-cleared_cpu_caps[] loop.)
      
      Here's how the breakage occurs:
      1. arch/x86/kernel/tsc_32.c:tsc_init() sees !cpu_has_tsc,
         so bails and calls setup_clear_cpu_cap(X86_FEATURE_TSC).
      2. include/asm-x86/cpufeature.h:setup_clear_cpu_cap(bit) clears
         the bit in boot_cpu_data and sets it in cleared_cpu_caps
      3. arch/x86/kernel/cpu/common.c:identify_cpu() XORs all caps
         in with cleared_cpu_caps
         HOWEVER, at this point c->x86_capability correctly has TSC
         Off, cleared_cpu_caps has TSC On, so the XOR incorrectly
         sets TSC to On in c->x86_capability, with disastrous results.
      
      The real bug is that clearing bits with XOR only works if the
      bits are known to be 1 prior to the XOR, and that's not true here.
      
      A simple fix is to convert the XOR to AND-NOT instead. The following
      patch does that, and allows my 486 to boot 2.6.25-rc kernels again.
      
      [ mingo@elte.hu: fixed a similar bug in setup_64.c as well. ]
      
      The breakage was introduced via commit 7d851c8d.
      Signed-off-by: NMikael Pettersson <mikpe@it.uu.se>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      12c247a6
    • P
      x86: fix build on non-C locales. · 03994f01
      Priit Laes 提交于
      For some locales regex range [a-zA-Z] does not work as it is supposed to.
      so we have to use [:alnum:] and [:xdigit:] to make it work as intended.
      
      [1] http://en.wikipedia.org/wiki/Estonian_alphabetSigned-off-by: NIngo Molnar <mingo@elte.hu>
      03994f01
    • G
      x86: make c_idle.work have a static address. · 2b775a27
      Glauber Costa 提交于
      Currently, c_idle is declared in the stack, and thus, have no static address.
      
      Peter Zijlstra points out this simple solution, in which c_idle.work
      is initializated separatedly. Note that the INIT_WORK macro has a static
      declaration of a key inside.
      Signed-off-by: NGlauber Costa <gcosta@redhat.com>
      Acked-by: NPeter Zijlstra <pzijlstr@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2b775a27
    • V
      x86: don't save unreliable stack trace entries · 1650743c
      Vegard Nossum 提交于
      Currently, there is no way for print_stack_trace() to determine whether
      a given stack trace entry was deemed reliable or not, simply because
      save_stack_trace() does not record this information. (Perhaps needless
      to say, this makes the saved stack traces A LOT harder to read, and
      probably with no other benefits, since debugging features that use
      save_stack_trace() most likely also require frame pointers, etc.)
      
      This patch reverts to the old behaviour of only recording the reliable trace
      entries for saved stack traces.
      Signed-off-by: NVegard Nossum <vegardno@ifi.uio.no>
      Acked-by: NArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1650743c
    • A
      x86: don't make swapper_pg_pmd global · ed2b7e2b
      Adrian Bunk 提交于
      There doesn't seem to be any reason for swapper_pg_pmd being global.
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ed2b7e2b
    • J
      x86: don't print a warning when MTRR are blank and running in KVM · 4147c874
      Joerg Roedel 提交于
      Inside a KVM virtual machine the MTRRs are usually blank. This confuses Linux
      and causes a warning message at boot. This patch removes that warning message
      when running Linux as a KVM guest.
      Signed-off-by: NJoerg Roedel <joerg.roedel@amd.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4147c874
    • I
      x86: fix execve with -fstack-protect · 5d119b2c
      Ingo Molnar 提交于
      pointed out by pageexec@freemail.hu:
      
      > what happens here is that gcc treats the argument area as owned by the
      > callee, not the caller and is allowed to do certain tricks. for ssp it
      > will make a copy of the struct passed by value into the local variable
      > area and pass *its* address down, and it won't copy it back into the
      > original instance stored in the argument area.
      >
      > so once sys_execve returns, the pt_regs passed by value hasn't at all
      > changed and its default content will cause a nice double fault (FWIW,
      > this part took me the longest to debug, being down with cold didn't
      > help it either ;).
      
      To fix this we pass in pt_regs by pointer.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      5d119b2c
    • T
      x86: fix vsyscall wreckage · ce28b986
      Thomas Gleixner 提交于
      based on a report from Arne Georg Gleditsch about user-space apps
      misbehaving after toggling /proc/sys/kernel/vsyscall64, a review
      of the code revealed that the "NOP patching" done there is
      fundamentally unsafe for a number of reasons:
      
      1) the patching code runs without synchronizing other CPUs
      
      2) it inserts NOPs even if there is no clock source which provides vread
      
      3) when the clock source changes to one without vread we run in
         exactly the same problem as in #2
      
      4) if nobody toggles the proc entry from 1 to 0 and to 1 again, then
         the syscall is not patched out
      
      as a result it is possible to break user-space via this patching.
      The only safe thing for now is to remove the patching.
      
      This code was broken since v2.6.21.
      Reported-by: NArne Georg Gleditsch <arne.gleditsch@dolphinics.no>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ce28b986
    • I
      x86: rename KERNEL_TEXT_SIZE => KERNEL_IMAGE_SIZE · d4afe414
      Ingo Molnar 提交于
      The KERNEL_TEXT_SIZE constant was mis-named, as we not only map the kernel
      text but data, bss and init sections as well.
      
      That name led me on the wrong path with the KERNEL_TEXT_SIZE regression,
      because i knew how big of _text_ my images have and i knew about the 40 MB
      "text" limit so i wrongly thought to be on the safe side of the 40 MB limit
      with my 29 MB of text, while the total image size was slightly above 40 MB.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d4afe414
    • I
      x86: fix spontaneous reboot with allyesconfig bzImage · 88f3aec7
      Ingo Molnar 提交于
      recently the 64-bit allyesconfig bzImage kernel started spontaneously
      rebooting during early bootup.
      
      after a few fun hours spent with early init debugging, it turns out
      that we've got this rather annoying limit on the size of the kernel
      image:
      
            #define KERNEL_TEXT_SIZE  (40*1024*1024)
      
      which limit my vmlinux just happened to pass:
      
             text           data       bss        dec       hex   filename
         29703744        4222751   8646224c   42572719   2899baf   vmlinux
      
      40 MB is 42572719 bytes, so my vmlinux was just 1.5% above this limit :-/
      
      So it happily crashed right in head_64.S, which - as we all know - is
      the most debuggable code in the whole architecture ;-)
      
      So increase the limit to allow an up to 128MB kernel image to be mapped.
      (should anyone be that crazy or lazy)
      
      We have a full 4K of pagetable (level2_kernel_pgt) allocated for these
      mappings already, so there's no RAM overhead and the limit was rather
      pointless and arbitrary.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      88f3aec7
    • Y
      x86: remove double-checking empty zero pages debug · 3b57bc46
      Yinghai Lu 提交于
      so far no one complained about that.
      Signed-off-by: NYinghai Lu <yinghai.lu@sun.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      3b57bc46
    • P
      x86: notsc is ignored on common configurations · 7265b6f1
      Pavel Machek 提交于
      notsc is ignored in 32-bit kernels if CONFIG_X86_TSC is on.. which is
      bad, fix it.
      Signed-off-by: NPavel Machek <pavel@suse.cz>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      7265b6f1
    • R
      x86/mtrr: fix kernel-doc missing notation · f5106d91
      Randy Dunlap 提交于
      Fix mtrr kernel-doc warning:
      Warning(linux-2.6.24-git12//arch/x86/kernel/cpu/mtrr/main.c:677): No description found for parameter 'end_pfn'
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f5106d91
    • H
      x86: handle BIOSes which terminate e820 with CF=1 and no SMAP · 829157be
      H. Peter Anvin 提交于
      The proper way to terminate the e820 chain is with %ebx == 0 on the
      last legitimate memory block.  However, several BIOSes don't do that
      and instead return error (CF = 1) when trying to read off the end of
      the list.  For this error return, %eax doesn't necessarily return the
      SMAP signature -- correctly so, since %ah should contain an error code
      in this case.
      
      To deal with some particularly broken BIOSes, we clear the entire e820
      chain if the SMAP signature is missing in the middle, indicating a
      plain insane e820 implementation.  However, we need to make the test
      for CF = 1 before the SMAP check.
      
      This fixes at least one HP laptop (nc6400) for which none of the
      memory-probing methods (e820, e801, 88) functioned fully according to
      spec.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      829157be
    • H
      x86: add comments for NOPs · 4cd20952
      H. Peter Anvin 提交于
      Add comments describing the various NOP sequences.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      4cd20952
    • H
      x86: don't use P6_NOPs if compiling with CONFIG_X86_GENERIC · 959b3be6
      H. Peter Anvin 提交于
      P6_NOPs are definitely not supported on some VIA CPUs, and possibly
      (unverified) on AMD K7s.  It is also the only thing that prevents a
      686 kernel from running on Transmeta TM3x00/5x00 (Crusoe) series.
      
      The performance benefit over generic NOPs is very small, so when
      building for generic consumption, avoid using them.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      959b3be6
    • H
      x86: require family >= 6 if we are using P6 NOPs · 7343b3b3
      H. Peter Anvin 提交于
      The P6 family of NOPs are only available on family >= 6 or above, so
      enforce that in the boot code.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      7343b3b3
    • H
      x86: do not promote TM3x00/TM5x00 to i686-class · a7ef94e6
      H. Peter Anvin 提交于
      We have been promoting Transmeta TM3x00/TM5x00 chips to i686-class
      based on the notion that they contain all the user-space visible
      features of an i686-class chip.  However, this is not actually true:
      they lack the EA-taking long NOPs (0F 1F /0).  Since this is a
      userspace-visible incompatibility, downgrade these CPUs to the
      manufacturer-defined i586 level.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      a7ef94e6
    • P
      x86: hpet fix docbook comment · b02a7f22
      Pavel Machek 提交于
      Signed-off-by: NPavel Machek <Pavel@suse.cz>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      b02a7f22
    • I
      x86: make DEBUG_PAGEALLOC and CPA more robust · 92cb54a3
      Ingo Molnar 提交于
      Use PF_MEMALLOC to prevent recursive calls in the DBEUG_PAGEALLOC
      case. This makes the code simpler and more robust against allocation
      failures.
      
      This fixes the following fallback to non-mmconfig:
      
         http://lkml.org/lkml/2008/2/20/551
         http://bugzilla.kernel.org/show_bug.cgi?id=10083
      
      Also, for DEBUG_PAGEALLOC=n reduce the pool size to one page.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      92cb54a3
    • A
      x86/lguest: fix pgdir pmd index calculation · 1ce70c4f
      Ahmed S. Darwish 提交于
      Hi all,
      
      Beginning from commits close to v2.6.25-rc2, running lguest always oopses
      the host kernel. Oops is at [1].
      
      Bisection led to the following commit:
      
      commit 37cc8d7f
      
          x86/early_ioremap: don't assume we're using swapper_pg_dir
      
          At the early stages of boot, before the kernel pagetable has been
          fully initialized, a Xen kernel will still be running off the
          Xen-provided pagetables rather than swapper_pg_dir[].  Therefore,
          readback cr3 to determine the base of the pagetable rather than
          assuming swapper_pg_dir[].
      
       static inline pmd_t * __init early_ioremap_pmd(unsigned long addr)
       {
      -	pgd_t *pgd = &swapper_pg_dir[pgd_index(addr)];
      +	/* Don't assume we're using swapper_pg_dir at this point */
      +	pgd_t *base = __va(read_cr3());
      +	pgd_t *pgd = &base[pgd_index(addr)];
       	pud_t *pud = pud_offset(pgd, addr);
       	pmd_t *pmd = pmd_offset(pud, addr);
      
      Trying to analyze the problem, it seems on the guest side of lguest,
      %cr3 has a different value from &swapper_pg-dir (which
      is AFAIK fine on a pravirt guest):
      
      Putting some debugging messages in early_ioremap_pmd:
      
      /* Appears 3 times */
      [    0.000000] ***************************
      [    0.000000] __va(%cr3) = c0000000, &swapper_pg_dir = c02cc000
      [    0.000000] ***************************
      
      After 8 hours of debugging and staring on lguest code, I noticed something
      strange in paravirt_ops->set_pmd hypercall invocation:
      
      static void lguest_set_pmd(pmd_t *pmdp, pmd_t pmdval)
      {
      	*pmdp = pmdval;
      	lazy_hcall(LHCALL_SET_PMD, __pa(pmdp)&PAGE_MASK,
      		   (__pa(pmdp)&(PAGE_SIZE-1))/4, 0);
      }
      
      The first hcall parameter is global pgdir which looks fine. The second
      parameter is the pmd index in the pgdir which is suspectful.
      
      AFAIK, calculating the index of pmd does not need a divisoin over four.
      Removing the division made lguest work fine again . Patch is at [2].
      
      I am not sure why the division over four existed in the first place. It
      seems bogus, maybe the Xen patch just made the problem appear ?
      
      [2]: The patch:
      
      [PATCH] lguest: fix pgdir pmd index cacluation
      
      Remove an error in index calculation which leads to removing
      a not existing shadow page table (leading to a Null dereference).
      Signed-off-by: NAhmed S. Darwish <darwish.07@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1ce70c4f
    • T
      lguest: fix build breakage · db342d21
      Tony Breeds 提交于
      [ mingo@elte.hu: merged to Rusty's patch ]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      db342d21
    • H
      lguest: include function prototypes · cbc34973
      Harvey Harrison 提交于
      Added a declaration to asm-x86/lguest.h and moved the extern arrays there
      as well.  As an alternative to including asm/lguest.h directly, an
      include could be put in linux/lguest.h
      Signed-off-by: NHarvey Harrison <harvey.harrison@gmail.com>
      Cc: "rusty@rustcorp.com.au" <rusty@rustcorp.com.au>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      cbc34973
  2. 25 2月, 2008 8 次提交
  3. 24 2月, 2008 9 次提交
    • L
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 4fa2b1cd
      Linus Torvalds 提交于
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        libata-core: fix kernel-doc warning
        sata_fsl: fix build with ATA_VERBOSE_DEBUG
        [libata] ahci: AMD SB700/SB800 SATA support 64bit DMA
        libata-pmp: clear hob for pmp register accesses
        libata: automatically use DMADIR if drive/bridge requires it
        power_state: get rid of write-only variable in SATA
        pata_atiixp: Use 255 sector limit
      4fa2b1cd
    • R
      libata-core: fix kernel-doc warning · 4cdfa1b3
      Randy Dunlap 提交于
      Fix libata-core kernel-doc warning:
      Warning(linux-2.6.25-rc2-git6//drivers/ata/libata-core.c:168): No description found for parameter 'ap'
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      4cdfa1b3
    • A
      sata_fsl: fix build with ATA_VERBOSE_DEBUG · b1f5dc48
      Anton Vorontsov 提交于
      This patch fixes build and few warnings when ATA_VERBOSE_DEBUG
      is defined:
      
        CC      drivers/ata/sata_fsl.o
      drivers/ata/sata_fsl.c: In function ‘sata_fsl_fill_sg’:
      drivers/ata/sata_fsl.c:338: warning: format ‘%x’ expects type ‘unsigned int’, but argument 3 has type ‘void *’
      drivers/ata/sata_fsl.c:338: warning: format ‘%x’ expects type ‘unsigned int’, but argument 4 has type ‘struct prde *’
      drivers/ata/sata_fsl.c: In function ‘sata_fsl_qc_issue’:
      drivers/ata/sata_fsl.c:459: error: ‘csr_base’ undeclared (first use in this function)
      drivers/ata/sata_fsl.c:459: error: (Each undeclared identifier is reported only once
      drivers/ata/sata_fsl.c:459: error: for each function it appears in.)
      drivers/ata/sata_fsl.c: In function ‘sata_fsl_freeze’:
      drivers/ata/sata_fsl.c:525: error: ‘csr_base’ undeclared (first use in this function)
      make[2]: *** [drivers/ata/sata_fsl.o] Error 1
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      b1f5dc48
    • S
      [libata] ahci: AMD SB700/SB800 SATA support 64bit DMA · e39fc8c9
      Shane Huang 提交于
      SB700 SATA controller can support 64 bit DMA, the previous commit
      badc2341 was added with
      careless reference to SB600, which should be modified by this patch.
      Signed-off-by: NShane Huang <shane.huang@amd.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      e39fc8c9
    • M
      libata-pmp: clear hob for pmp register accesses · 39f25e70
      Mark Lord 提交于
      >> Mark Lord wrote:
      >>> Tejun, I've added PMP to sata_mv, and am now trying to get it
      >>> to work with a Marvell PM attached.
      
      > >>> And the behaviour I see is very bizarre.
      
      >>> After hard+soft resets, the PM signature is found,
      >>> and libata interrogates the PM registers.
      >>>
      >>> It successfully reads register 0, and then register 1.
      >>> But all subsequent registers read out (incorrectly) as zeros.
      ...
      
      This behavior has been confirmed by Marvell with a SATA analyzer.
      The Marvell port-multiplier apparently likes to see clean HOB
      information when accessing PMP registers.
      
      Since sata_mv uses PIO shadow register access, this doesn't happen
      automatically, as it might in a more purely FIS-based driver (eg. ahci).
      
      One way to fix this is to flag these commands with ATA_TFLAG_LBA48,
      forcing libata to write out the HOB fields with known (zero) values.
      Signed-off-by: NSaeed Bishara <saeed@marvell.com>
      Acked-by: NMark Lord <mlord@pobox.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      39f25e70
    • T
      libata: automatically use DMADIR if drive/bridge requires it · 91163006
      Tejun Heo 提交于
      Back in 2.6.17-rc2, a libata module parameter was added for atapi_dmadir.
      
      That's nice, but most SATA devices which need it will tell us about it
      in their IDENTIFY PACKET response, as bit-15 of word-62 of the
      returned data (as per ATA7, ATA8 specifications).
      
      So for those which specify it, we should automatically use the DMADIR bit.
      Otherwise, disc writing will fail by default on many SATA-ATAPI drives.
      
      This patch adds ATA_DFLAG_DMADIR and make ata_dev_configure() set it
      if atapi_dmadir is set or identify data indicates DMADIR is necessary.
      atapi_xlat() is converted to check ATA_DFLAG_DMADIR before setting
      DMADIR.
      
      Original patch is from Mark Lord.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Cc: Mark Lord <mlord@pobox.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      91163006
    • P
      power_state: get rid of write-only variable in SATA · 559bbe6c
      Pavel Machek 提交于
      power_state is scheduled for removal, and libata uses it in write-only
      mode. Remove it.
      Signed-off-by: NPavel Machek <pavel@suse.cz>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      559bbe6c
    • A
      pata_atiixp: Use 255 sector limit · 635adc28
      Alan Cox 提交于
      AHCI needs sorting too but this deals with the old interface
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      635adc28
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · bdc08942
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (37 commits)
        [NETFILTER]: fix ebtable targets return
        [IP_TUNNEL]: Don't limit the number of tunnels with generic name explicitly.
        [NET]: Restore sanity wrt. print_mac().
        [NEIGH]: Fix race between neighbor lookup and table's hash_rnd update.
        [RTNL]: Validate hardware and broadcast address attribute for RTM_NEWLINK
        tg3: ethtool phys_id default
        [BNX2]: Update version to 1.7.4.
        [BNX2]: Disable parallel detect on an HP blade.
        [BNX2]: More 5706S link down workaround.
        ssb: Fix support for PCI devices behind a SSB->PCI bridge
        zd1211rw: fix sparse warnings
        rtl818x: fix sparse warnings
        ssb: Fix pcicore cardbus mode
        ssb: Make the GPIO API reentrancy safe
        ssb: Fix the GPIO API
        ssb: Fix watchdog access for devices without a chipcommon
        ssb: Fix serial console on new bcm47xx devices
        ath5k: Fix build warnings on some 64-bit platforms.
        WDEV, ath5k, don't return int from bool function
        WDEV: ath5k, fix lock imbalance
        ...
      bdc08942