1. 18 Sep, 2012 1 commit
    • Stephen M. Cameron's avatar
      [SCSI] hpsa: fix handling of protocol error · 256d0eaa
      Stephen M. Cameron authored
      If a command status of CMD_PROTOCOL_ERR is received, this
      information should be conveyed to the SCSI mid layer, not
      dropped on the floor.  CMD_PROTOCOL_ERR may be received
      from the Smart Array for any commands destined for an external
      RAID controller such as a P2000, or commands destined for tape
      drives or CD/DVD-ROM drives, if for instance a cable is
      disconnected.  This mostly affects multipath configurations, as
      disconnecting a cable on a non-multipath configuration is not
      going to do anything good regardless of whether CMD_PROTOCOL_ERR
      is handled correctly or not.  Not handling CMD_PROTOCOL_ERR
      correctly in a multipath configaration involving external RAID
      controllers may cause data corruption, so this is quite a serious
      bug.  This bug should not normally cause a problem for direct
      attached disk storage.
      Signed-off-by: default avatarStephen M. Cameron <scameron@beardog.cce.hp.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      256d0eaa
  2. 17 Sep, 2012 2 commits
    • sreekanth.reddy@lsi.com's avatar
      [SCSI] mpt2sas: Fix for issue - Unable to boot from the drive connected to HBA · 10cce6d8
      sreekanth.reddy@lsi.com authored
      This patch checks whether HBA is SAS2008 B0 controller.
      if it is a SAS2008 B0 controller then it use IO-APIC interrupt instead of MSIX,
      as SAS2008 B0 controller doesn't support MSIX interrupts.
      
      [jejb: fix whitespace problems]
      Signed-off-by: default avatarSreekanth Reddy <sreekanth.reddy@lsi.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      10cce6d8
    • Eddie Wai's avatar
      [SCSI] bnx2i: Fixed NULL ptr deference for 1G bnx2 Linux iSCSI offload · d6532207
      Eddie Wai authored
      This patch fixes the following kernel panic invoked by uninitialized fields
      in the chip initialization for the 1G bnx2 iSCSI offload.
      
      One of the bits in the chip initialization is being used by the latest
      firmware to control overflow packets.  When this control bit gets enabled
      erroneously, it would ultimately result in a bad packet placement which would
      cause the bnx2 driver to dereference a NULL ptr in the placement handler.
      
      This can happen under certain stress I/O environment under the Linux
      iSCSI offload operation.
      
      This change only affects Broadcom's 5709 chipset.
      
      Unable to handle kernel NULL pointer dereference at 0000000000000008 RIP:
       [<ffffffff881f0e7d>] :bnx2:bnx2_poll_work+0xd0d/0x13c5
      Pid: 0, comm: swapper Tainted: G     ---- 2.6.18-333.el5debug #2
      RIP: 0010:[<ffffffff881f0e7d>]  [<ffffffff881f0e7d>] :bnx2:bnx2_poll_work+0xd0d/0x13c5
      RSP: 0018:ffff8101b575bd50  EFLAGS: 00010216
      RAX: 0000000000000005 RBX: ffff81007c5fb180 RCX: 0000000000000000
      RDX: 0000000000000ffc RSI: 00000000817e8000 RDI: 0000000000000220
      RBP: ffff81015bbd7ec0 R08: ffff8100817e9000 R09: 0000000000000000
      R10: ffff81007c5fb180 R11: 00000000000000c8 R12: 000000007a25a010
      R13: 0000000000000000 R14: 0000000000000005 R15: ffff810159f80558
      FS:  0000000000000000(0000) GS:ffff8101afebc240(0000) knlGS:0000000000000000
      CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
      CR2: 0000000000000008 CR3: 0000000000201000 CR4: 00000000000006a0
      Process swapper (pid: 0, threadinfo ffff8101b5754000, task ffff8101afebd820)
      Stack:  000000000000000b ffff810159f80000 0000000000000040 ffff810159f80520
       ffff810159f80500 00cf00cf8008e84b ffffc200100939e0 ffff810009035b20
       0000502900000000 000000be00000001 ffff8100817e7810 00d08101b575bea8
      Call Trace:
       <IRQ>  [<ffffffff8008e0d0>] show_schedstat+0x1c2/0x25b
       [<ffffffff881f1886>] :bnx2:bnx2_poll+0xf6/0x231
       [<ffffffff8000c9b9>] net_rx_action+0xac/0x1b1
       [<ffffffff800125a0>] __do_softirq+0x89/0x133
       [<ffffffff8005e30c>] call_softirq+0x1c/0x28
       [<ffffffff8006d5de>] do_softirq+0x2c/0x7d
       [<ffffffff8006d46e>] do_IRQ+0xee/0xf7
       [<ffffffff8005d625>] ret_from_intr+0x0/0xa
       <EOI>  [<ffffffff801a5780>] acpi_processor_idle_simple+0x1c5/0x341
       [<ffffffff801a573d>] acpi_processor_idle_simple+0x182/0x341
       [<ffffffff801a55bb>] acpi_processor_idle_simple+0x0/0x341
       [<ffffffff80049560>] cpu_idle+0x95/0xb8
       [<ffffffff80078b1c>] start_secondary+0x479/0x488
      Signed-off-by: default avatarEddie Wai <eddie.wai@broadcom.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      d6532207
  3. 14 Sep, 2012 1 commit
    • Wang Sen's avatar
      [SCSI] scsi: virtio-scsi: Fix address translation failure of HighMem pages used by sg list · 27e99ade
      Wang Sen authored
      When using the commands below to write some data to a virtio-scsi LUN of the
      QEMU guest(32-bit) with 1G physical memory(qemu -m 1024), the qemu will crash.
      
              # sudo mkfs.ext4 /dev/sdb  (/dev/sdb is the virtio-scsi LUN.)
              # sudo mount /dev/sdb /mnt
              # dd if=/dev/zero of=/mnt/file bs=1M count=1024
      
      In current implementation, sg_set_buf is called to add buffers to sg list which
      is put into the virtqueue eventually. But if there are some HighMem pages in
      table->sgl you can not get virtual address by sg_virt. So, sg_virt(sg_elem) may
      return NULL value. This will cause QEMU exit when virtqueue_map_sg is called
      in QEMU because an invalid GPA is passed by virtqueue.
      
      Two solutions are discussed here:
      http://lkml.indiana.edu/hypermail/linux/kernel/1207.3/00675.html
      
      Finally, value assignment approach was adopted because:
      
      Value assignment creates a well-formed scatterlist, because the termination
      marker in source sg_list has been set in blk_rq_map_sg(). The last entry of the
      source sg_list is just copied to the the last entry in destination list.  Note
      that, for now, virtio_ring does not care about the form of the scatterlist and
      simply processes the first out_num + in_num consecutive elements of the sg[]
      array.
      
      I have tested the patch on my workstation. QEMU would not crash any more.
      
      Cc: <stable@vger.kernel.org> # 3.4: 4fe74b1c: [SCSI] virtio-scsi: SCSI driver
      Signed-off-by: default avatarWang Sen <senwang@linux.vnet.ibm.com>
      Acked-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      27e99ade
  4. 11 Sep, 2012 8 commits
    • Linus Torvalds's avatar
      Merge branch 'for-3.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · 0bd1189e
      Linus Torvalds authored
      Pull workqueue fixes from Tejun Heo:
       "It's later than I'd like but well the timing just didn't work out this
        time.
      
        There are three bug fixes.  One from before 3.6-rc1 and two from the
        new CPU hotplug code.  Kudos to Lai for discovering all of them and
        providing fixes.
      
         * Atomicity bug when clearing a flag and setting another.  The two
           operation should have been atomic but wasn't.  This bug has existed
           for a long time but is unlikely to have actually happened.  Fix is
           safe.  Marked for -stable.
      
         * If CPU hotplug cycles happen back-to-back before workers finish the
           previous cycle, the states could get out of sync and it could get
           stuck.  Fixed by waiting for workers to complete before finishing
           hotplug cycle.
      
         * While CPU hotplug is in progress, idle workers could be depleted
           which can then lead to deadlock.  I think both happening together
           is highly unlikely but still better to fix it and the fix isn't too
           scary.
      
        There's another workqueue related regression which reported a few days
        ago:
      
          https://bugzilla.kernel.org/show_bug.cgi?id=47301
      
        It's a bit of head scratcher but there is a semi-reliable reproduce
        case, so I'm hoping to resolve it soonish."
      
      * 'for-3.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: fix possible idle worker depletion across CPU hotplug
        workqueue: restore POOL_MANAGING_WORKERS
        workqueue: fix possible deadlock in idle worker rebinding
        workqueue: move WORKER_REBIND clearing in rebind_workers() to the end of the function
        workqueue: UNBOUND -> REBIND morphing in rebind_workers() should be atomic
      0bd1189e
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 274a2f5d
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This fixes the authenc self-test crash as well as a missing export of
        a symbol used by a module."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: authenc - Fix crash with zero-length assoc data
        crypto/caam: Export gen_split_key symbol for other modules
      274a2f5d
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lliubbo/blackfin · 2a1497c3
      Linus Torvalds authored
      Pull blackfin updates from Bob Liu:
       "One kbuild and a smp build fix."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lliubbo/blackfin:
        kbuild: add symbol prefix arg to kallsyms
        blackfin: smp: adapt to generic smp helpers
      2a1497c3
    • Herbert Xu's avatar
      crypto: authenc - Fix crash with zero-length assoc data · 9b2f4cb6
      Herbert Xu authored
      The authenc code doesn't deal with zero-length associated data
      correctly and ends up constructing a zero-length sg entry which
      causes a crash when it's fed into the crypto system.
      
      This patch fixes this by avoiding the code-path that triggers
      the SG construction if we have no associated data.
      
      This isn't the most optimal fix as it means that we'll end up
      using the fallback code-path even when we could still execute
      the digest function.  However, this isn't a big deal as nobody
      but the test path would supply zero-length associated data.
      Reported-by: default avatarRomain Francoise <romain@orebokech.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Tested-by: default avatarRomain Francoise <romain@orebokech.com>
      9b2f4cb6
    • James Hogan's avatar
      kbuild: add symbol prefix arg to kallsyms · 6895f97e
      James Hogan authored
      Commit 1f2bfbd0 ("kbuild: link of
      vmlinux moved to a script") introduced in v3.5-rc1 broke kallsyms on
      architectures which have symbol prefixes.
      
      The --symbol-prefix argument used to be added to the KALLSYMS command
      line from the architecture Makefile, however this isn't picked up by the
      new scripts/link-vmlinux.sh. This resulted in symbols like
      kallsyms_addresses being added which weren't correctly overriding the
      weak symbols such as _kallsyms_addresses. These could then trigger
      BUG_ONs in kallsyms code.
      
      This is fixed by removing the KALLSYMS addition from the architecture
      Makefile, and using CONFIG_SYMBOL_PREFIX in the link-vmlinux.sh script
      to determine whether to add the --symbol-prefix argument.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Signed-off-by: default avatarBob Liu <lliubbo@gmail.com>
      6895f97e
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 1a95620f
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "I had actually prepared this fix set before I left for KS + Plumbers,
        so it's been incubating much longer than it should have.  I'll be
        picking up my three week backlog this week, so more fixes will then be
        forthcoming
      
        This set consist of three minor and one fairly major (the device not
        ready causing offlining problem which is a serious regression
        introduced by the media change update) fixes.
      
        Signed-off-by: James Bottomley <JBottomley@Parallels.com>"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        [SCSI] Fix 'Device not ready' issue on mpt2sas
        [SCSI] scsi_lib: fix scsi_io_completion's SG_IO error propagation
        [SCSI] megaraid_sas: Move poll_aen_lock initializer
        [SCSI] mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth command line option to a very small value
      1a95620f
    • Linus Torvalds's avatar
      Merge tag 'kvm-3.6-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm · ffc29649
      Linus Torvalds authored
      Pull KVM updates from Avi Kivity:
       "A trio of KVM fixes: incorrect lookup of guest cpuid, an uninitialized
        variable fix, and error path cleanup fix."
      
      * tag 'kvm-3.6-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: fix error paths for failed gfn_to_page() calls
        KVM: x86: Check INVPCID feature bit in EBX of leaf 7
        KVM: PIC: fix use of uninitialised variable.
      ffc29649
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · 44346cfe
      Linus Torvalds authored
      Pull FUSE fixes from Miklos Szeredi:
       "This contains bugfixes for FUSE and CUSE and a compile warning fix."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: fix retrieve length
        fuse: mark variables uninitialized
        cuse: kill connection on initialization error
        cuse: fix fuse_conn_kill()
      44346cfe
  5. 10 Sep, 2012 10 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.samba.org/sfrench/cifs-2.6 · e9bd8f16
      Linus Torvalds authored
      Pull CIFS fixes from Steve French.
      
      * 'for-linus' of git://git.samba.org/sfrench/cifs-2.6:
        CIFS: Fix endianness conversion
        CIFS: Fix error handling in cifs_push_mandatory_locks
      e9bd8f16
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 1b0a9069
      Linus Torvalds authored
      Pull UDF and ext3 fixes from Jan Kara:
       "One UDF data corruption fix and one ext3 fix where we didn't write
        everything to disk on fsync in one corner case."
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Fix data corruption for files in ICB
        ext3: Fix fdatasync() for files with only i_size changes
      1b0a9069
    • Linus Torvalds's avatar
      Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging · 6562271a
      Linus Torvalds authored
      Pull i2c subsystem fixes from Jean Delvare.
      
      * 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
        i2c-core: Fix for lockdep validator
        i2c-designware: Fix build error if CONFIG_I2C_DESIGNWARE_PLATFORM=y && CONFIG_I2C_DESIGNWARE_PCI=y
        i2c-i801: Add Device IDs for Intel Lynx Point-LP PCH
      6562271a
    • Lai Jiangshan's avatar
      workqueue: fix possible idle worker depletion across CPU hotplug · ee378aa4
      Lai Jiangshan authored
      To simplify both normal and CPU hotplug paths, worker management is
      prevented while CPU hoplug is in progress.  This is achieved by CPU
      hotplug holding the same exclusion mechanism used by workers to ensure
      there's only one manager per pool.
      
      If someone else seems to be performing the manager role, workers
      proceed to execute work items.  CPU hotplug using the same mechanism
      can lead to idle worker depletion because all workers could proceed to
      execute work items while CPU hotplug is in progress and CPU hotplug
      itself wouldn't actually perform the worker management duty - it
      doesn't guarantee that there's an idle worker left when it releases
      management.
      
      This idle worker depletion, under extreme circumstances, can break
      forward-progress guarantee and thus lead to deadlock.
      
      This patch fixes the bug by using separate mechanisms for manager
      exclusion among workers and hotplug exclusion.  For manager exclusion,
      POOL_MANAGING_WORKERS which was restored by the previous patch is
      used.  pool->manager_mutex is now only used for exclusion between the
      elected manager and CPU hotplug.  The elected manager won't proceed
      without holding pool->manager_mutex.
      
      This ensures that the worker which won the manager position can't skip
      managing while CPU hotplug is in progress.  It will block on
      manager_mutex and perform management after CPU hotplug is complete.
      
      Note that hotplug may happen while waiting for manager_mutex.  A
      manager isn't either on idle or busy list and thus the hoplug code
      can't unbind/rebind it.  Make the manager handle its own un/rebinding.
      
      tj: Updated comment and description.
      Signed-off-by: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      ee378aa4
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 5d67f2e8
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Just noticed I hadn't send these out, nothing majorly urgent, I know
        AMD guys have some regression fixes coming soon.
      
        This contains:
         2 nouveau fixes so it loads on the retina MBP systems properly,
         2 vmwgfx fixes to load the driver earlier, and allow distros config it
         1 error->debug fix in ast
        and Keith was playing with 32-on-64 and decided we may as well stick
        the compat ioctl in all the drivers.  It fixes udl for him."
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/vmwgfx: add MODULE_DEVICE_TABLE so vmwgfx loads at boot
        drm/vmwgfx: allow a kconfig option to choose if fbcon is enabled
        drm: use drm_compat_ioctl for 32-bit apps
        drm/ast: drop debug level on error printk
        drm/nv50-/gpio: initialise to vbios defaults during init
        drm/nvd0/disp: hopefully fix selection of 6/8bpc mode on DP outputs
      5d67f2e8
    • Lai Jiangshan's avatar
      workqueue: restore POOL_MANAGING_WORKERS · 552a37e9
      Lai Jiangshan authored
      This patch restores POOL_MANAGING_WORKERS which was replaced by
      pool->manager_mutex by 60373152 "workqueue: use mutex for global_cwq
      manager exclusion".
      
      There's a subtle idle worker depletion bug across CPU hotplug events
      and we need to distinguish an actual manager and CPU hotplug
      preventing management.  POOL_MANAGING_WORKERS will be used for the
      former and manager_mutex the later.
      
      This patch just lays POOL_MANAGING_WORKERS on top of the existing
      manager_mutex and doesn't introduce any synchronization changes.  The
      next patch will update it.
      
      Note that this patch fixes a non-critical anomaly where
      too_many_workers() may return %true spuriously while CPU hotplug is in
      progress.  While the issue could schedule idle timer spuriously, it
      didn't trigger any actual misbehavior.
      
      tj: Rewrote patch description.
      Signed-off-by: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      552a37e9
    • Xiao Guangrong's avatar
      KVM: fix error paths for failed gfn_to_page() calls · 4484141a
      Xiao Guangrong authored
      This bug was triggered:
      [ 4220.198458] BUG: unable to handle kernel paging request at fffffffffffffffe
      [ 4220.203907] IP: [<ffffffff81104d85>] put_page+0xf/0x34
      ......
      [ 4220.237326] Call Trace:
      [ 4220.237361]  [<ffffffffa03830d0>] kvm_arch_destroy_vm+0xf9/0x101 [kvm]
      [ 4220.237382]  [<ffffffffa036fe53>] kvm_put_kvm+0xcc/0x127 [kvm]
      [ 4220.237401]  [<ffffffffa03702bc>] kvm_vcpu_release+0x18/0x1c [kvm]
      [ 4220.237407]  [<ffffffff81145425>] __fput+0x111/0x1ed
      [ 4220.237411]  [<ffffffff8114550f>] ____fput+0xe/0x10
      [ 4220.237418]  [<ffffffff81063511>] task_work_run+0x5d/0x88
      [ 4220.237424]  [<ffffffff8104c3f7>] do_exit+0x2bf/0x7ca
      
      The test case:
      
      	printf(fmt, ##args);		\
      	exit(-1);} while (0)
      
      static int create_vm(void)
      {
      	int sys_fd, vm_fd;
      
      	sys_fd = open("/dev/kvm", O_RDWR);
      	if (sys_fd < 0)
      		die("open /dev/kvm fail.\n");
      
      	vm_fd = ioctl(sys_fd, KVM_CREATE_VM, 0);
      	if (vm_fd < 0)
      		die("KVM_CREATE_VM fail.\n");
      
      	return vm_fd;
      }
      
      static int create_vcpu(int vm_fd)
      {
      	int vcpu_fd;
      
      	vcpu_fd = ioctl(vm_fd, KVM_CREATE_VCPU, 0);
      	if (vcpu_fd < 0)
      		die("KVM_CREATE_VCPU ioctl.\n");
      	printf("Create vcpu.\n");
      	return vcpu_fd;
      }
      
      static void *vcpu_thread(void *arg)
      {
      	int vm_fd = (int)(long)arg;
      
      	create_vcpu(vm_fd);
      	return NULL;
      }
      
      int main(int argc, char *argv[])
      {
      	pthread_t thread;
      	int vm_fd;
      
      	(void)argc;
      	(void)argv;
      
      	vm_fd = create_vm();
      	pthread_create(&thread, NULL, vcpu_thread, (void *)(long)vm_fd);
      	printf("Exit.\n");
      	return 0;
      }
      
      It caused by release kvm->arch.ept_identity_map_addr which is the
      error page.
      
      The parent thread can send KILL signal to the vcpu thread when it was
      exiting which stops faulting pages and potentially allocating memory.
      So gfn_to_pfn/gfn_to_page may fail at this time
      
      Fixed by checking the page before it is used
      Signed-off-by: default avatarXiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      4484141a
    • Jean Delvare's avatar
      i2c-core: Fix for lockdep validator · 390946b1
      Jean Delvare authored
      If kernel is compiled with CONFIG_PROVE_LOCKING the
      validator raises an error when a multiplexer is removed
      via sysfs and sub-clients are connected to it. This is a
      false positive.
      Documentation/lockdep-design.txt recommends to handle this
      via calls to mutex_lock_nested().
      
      Based on an earlier fix from Michael Lawnick.
      
      Note that the extra code resolves to nothing unless
      CONFIG_DEBUG_LOCK_ALLOC=y.
      Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
      Cc: Michael Lawnick <ml.lawnick@gmx.de>
      390946b1
    • Axel Lin's avatar
      i2c-designware: Fix build error if CONFIG_I2C_DESIGNWARE_PLATFORM=y && CONFIG_I2C_DESIGNWARE_PCI=y · e68bb91b
      Axel Lin authored
      This patch adds config I2C_DESIGNWARE_CORE in Kconfig, and let
      I2C_DESIGNWARE_PLATFORM and I2C_DESIGNWARE_PCI select I2C_DESIGNWARE_CORE.
      
      Because both I2C_DESIGNWARE_PLATFORM and I2C_DESIGNWARE_PCI can be built as
      built-in or module, we also need to export the functions in i2c-designware-core.
      
      This fixes below build error when CONFIG_I2C_DESIGNWARE_PLATFORM=y &&
      CONFIG_I2C_DESIGNWARE_PCI=y:
      
        LD      drivers/i2c/busses/built-in.o
      drivers/i2c/busses/i2c-designware-pci.o: In function `i2c_dw_clear_int':
      i2c-designware-core.c:(.text+0xa10): multiple definition of `i2c_dw_clear_int'
      drivers/i2c/busses/i2c-designware-platform.o:i2c-designware-platdrv.c:(.text+0x928): first defined here
      drivers/i2c/busses/i2c-designware-pci.o: In function `i2c_dw_init':
      i2c-designware-core.c:(.text+0x178): multiple definition of `i2c_dw_init'
      drivers/i2c/busses/i2c-designware-platform.o:i2c-designware-platdrv.c:(.text+0x90): first defined here
      drivers/i2c/busses/i2c-designware-pci.o: In function `dw_readl':
      i2c-designware-core.c:(.text+0xe8): multiple definition of `dw_readl'
      drivers/i2c/busses/i2c-designware-platform.o:i2c-designware-platdrv.c:(.text+0x0): first defined here
      drivers/i2c/busses/i2c-designware-pci.o: In function `i2c_dw_isr':
      i2c-designware-core.c:(.text+0x724): multiple definition of `i2c_dw_isr'
      drivers/i2c/busses/i2c-designware-platform.o:i2c-designware-platdrv.c:(.text+0x63c): first defined here
      drivers/i2c/busses/i2c-designware-pci.o: In function `i2c_dw_xfer':
      i2c-designware-core.c:(.text+0x4b0): multiple definition of `i2c_dw_xfer'
      drivers/i2c/busses/i2c-designware-platform.o:i2c-designware-platdrv.c:(.text+0x3c8): first defined here
      drivers/i2c/busses/i2c-designware-pci.o: In function `i2c_dw_is_enabled':
      i2c-designware-core.c:(.text+0x9d4): multiple definition of `i2c_dw_is_enabled'
      drivers/i2c/busses/i2c-designware-platform.o:i2c-designware-platdrv.c:(.text+0x8ec): first defined here
      drivers/i2c/busses/i2c-designware-pci.o: In function `dw_writel':
      i2c-designware-core.c:(.text+0x124): multiple definition of `dw_writel'
      drivers/i2c/busses/i2c-designware-platform.o:i2c-designware-platdrv.c:(.text+0x3c): first defined here
      drivers/i2c/busses/i2c-designware-pci.o: In function `i2c_dw_xfer_msg':
      i2c-designware-core.c:(.text+0x2e8): multiple definition of `i2c_dw_xfer_msg'
      drivers/i2c/busses/i2c-designware-platform.o:i2c-designware-platdrv.c:(.text+0x200): first defined here
      drivers/i2c/busses/i2c-designware-pci.o: In function `i2c_dw_enable':
      i2c-designware-core.c:(.text+0x9c8): multiple definition of `i2c_dw_enable'
      drivers/i2c/busses/i2c-designware-platform.o:i2c-designware-platdrv.c:(.text+0x8e0): first defined here
      drivers/i2c/busses/i2c-designware-pci.o: In function `i2c_dw_read_comp_param':
      i2c-designware-core.c:(.text+0xa24): multiple definition of `i2c_dw_read_comp_param'
      drivers/i2c/busses/i2c-designware-platform.o:i2c-designware-platdrv.c:(.text+0x93c): first defined here
      drivers/i2c/busses/i2c-designware-pci.o: In function `i2c_dw_disable':
      i2c-designware-core.c:(.text+0x9dc): multiple definition of `i2c_dw_disable'
      drivers/i2c/busses/i2c-designware-platform.o:i2c-designware-platdrv.c:(.text+0x8f4): first defined here
      drivers/i2c/busses/i2c-designware-pci.o: In function `i2c_dw_func':
      i2c-designware-core.c:(.text+0x710): multiple definition of `i2c_dw_func'
      drivers/i2c/busses/i2c-designware-platform.o:i2c-designware-platdrv.c:(.text+0x628): first defined here
      drivers/i2c/busses/i2c-designware-pci.o: In function `i2c_dw_disable_int':
      i2c-designware-core.c:(.text+0xa18): multiple definition of `i2c_dw_disable_int'
      drivers/i2c/busses/i2c-designware-platform.o:i2c-designware-platdrv.c:(.text+0x930): first defined here
      make[3]: *** [drivers/i2c/busses/built-in.o] Error 1
      make[2]: *** [drivers/i2c/busses] Error 2
      make[1]: *** [drivers/i2c] Error 2
      make: *** [drivers] Error 2
      Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
      Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
      Tested-by: default avatarJiri Slaby <jslaby@suse.cz>
      Cc: stable@vger.kernel.org [3.2+]
      e68bb91b
    • James Ralston's avatar
      i2c-i801: Add Device IDs for Intel Lynx Point-LP PCH · 4a8f1ddd
      James Ralston authored
      Add the SMBus Device IDs for the Intel Lynx Point-LP PCH.
      Signed-off-by: default avatarJames Ralston <james.d.ralston@intel.com>
      Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
      4a8f1ddd
  6. 09 Sep, 2012 1 commit
  7. 08 Sep, 2012 3 commits
    • Linus Torvalds's avatar
      Linux 3.6-rc5 · 55d512e2
      Linus Torvalds authored
      55d512e2
    • Linus Torvalds's avatar
      Merge branch 'fixes-for-3.6' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping · 32d687ca
      Linus Torvalds authored
      Pull DMA-mapping fixes from Marek Szyprowski:
       "Another set of fixes for ARM dma-mapping subsystem.
      
        Commit e9da6e99 replaced custom consistent buffer remapping code
        with generic vmalloc areas.  It however introduced some regressions
        caused by limited support for allocations in atomic context.  This
        series contains fixes for those regressions.
      
        For some subplatforms the default, pre-allocated pool for atomic
        allocations turned out to be too small, so a function for setting its
        size has been added.
      
        Another set of patches adds support for atomic allocations to
        IOMMU-aware DMA-mapping implementation.
      
        The last part of this pull request contains two fixes for Contiguous
        Memory Allocator, which relax too strict requirements."
      
      * 'fixes-for-3.6' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:
        ARM: dma-mapping: IOMMU allocates pages from atomic_pool with GFP_ATOMIC
        ARM: dma-mapping: Introduce __atomic_get_pages() for __iommu_get_pages()
        ARM: dma-mapping: Refactor out to introduce __in_atomic_pool
        ARM: dma-mapping: atomic_pool with struct page **pages
        ARM: Kirkwood: increase atomic coherent pool size
        ARM: DMA-Mapping: print warning when atomic coherent allocation fails
        ARM: DMA-Mapping: add function for setting coherent pool size from platform code
        ARM: relax conditions required for enabling Contiguous Memory Allocator
        mm: cma: fix alignment requirements for contiguous regions
      32d687ca
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 11be4bc6
      Linus Torvalds authored
      Pull input subsystem updates from Dmitry Torokhov.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: wacom - add support for EMR on Cintiq 24HD touch
        Input: i8042 - add Gigabyte T1005 series netbooks to noloop table
        Input: imx_keypad - reset the hardware before enabling
        Input: edt-ft5x06 - fix build error when compiling wthout CONFIG_DEBUG_FS
      11be4bc6
  8. 07 Sep, 2012 7 commits
  9. 06 Sep, 2012 7 commits