1. 30 Apr, 2016 1 commit
  2. 03 Jan, 2016 11 commits
  3. 25 Jul, 2015 1 commit
  4. 22 Jul, 2015 3 commits
  5. 12 Jun, 2015 1 commit
  6. 31 May, 2015 1 commit
  7. 15 Jan, 2015 1 commit
  8. 26 Nov, 2014 1 commit
    • Jiri Slaby's avatar
      parport: parport_pc, do not remove parent devices early · 91905b6f
      Jiri Slaby authored
      When the parport_pc module is removed from the system, all parport
      devices are iterated in parport_pc_exit and removed by a call to
      parport_pc_unregister_port. Note that some parport devices have its
      'struct device' parent, known as port->dev.  And when port->dev is a
      platform device, it is destroyed in parport_pc_exit too.
      
      Now, when parport_pc_unregister_port is called for a going port,
      drv->detach(port) is called for every parport driver in the system.
      ppdev can be one of them. ppdev's detach() tears down its per-port
      sysfs directory, which established port->dev as a parent earlier.
      
      But since parport_pc_exit kills port->dev parents before unregisters
      ports proper, ppdev's sysfs directory has no living parent anymore.
      This results in the following warning:
      
      WARNING: CPU: 1 PID: 785 at fs/sysfs/group.c:219 sysfs_remove_group+0x9b/0xa0
      sysfs group ffffffff81c69e20 not found for kobject 'parport1'
      Modules linked in: parport_pc(E-) ppdev(E) [last unloaded: ppdev]
      CPU: 1 PID: 785 Comm: rmmod Tainted: G        W   E  3.18.0-rc5-next-20141120+ #824
      ...
      Call Trace:
      ...
       [<ffffffff810aff76>] warn_slowpath_fmt+0x46/0x50
       [<ffffffff8123d81b>] sysfs_remove_group+0x9b/0xa0
       [<ffffffff814c27e7>] dpm_sysfs_remove+0x57/0x60
       [<ffffffff814b6ac9>] device_del+0x49/0x240
       [<ffffffff814b6ce2>] device_unregister+0x22/0x70
       [<ffffffff814b6dac>] device_destroy+0x3c/0x50
       [<ffffffffc012209a>] pp_detach+0x4a/0x60 [ppdev]
       [<ffffffff814b32dd>] parport_remove_port+0x11d/0x150
       [<ffffffffc0137328>] parport_pc_unregister_port+0x28/0xf0 [parport_pc]
       [<ffffffffc0138c0e>] parport_pc_exit+0x76/0x468 [parport_pc]
       [<ffffffff81128dbc>] SyS_delete_module+0x18c/0x230
      
      It is also easily reproducible on qemu with two dummy ports '-parallel
      /dev/null -parallel /dev/null'.
      
      So switch the order of killing the two structures. But since port is
      freed by parport_pc_unregister_port, we have to remember port->dev
      in a local variable.
      
      Perhaps nothing worse than the warning happens thanks to the device
      refcounting. We *should* be on the safe side.
      Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
      Reviewed-by: default avatarTakashi Iwai <tiwai@suse.de>
      Tested-by: default avatarMartin Pluskal <mpluskal@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      91905b6f
  9. 06 Nov, 2014 1 commit
  10. 20 Oct, 2014 1 commit
  11. 24 Sep, 2014 2 commits
  12. 08 Aug, 2014 1 commit
  13. 25 Jul, 2014 1 commit
  14. 06 Jun, 2014 1 commit
  15. 28 May, 2014 1 commit
    • Ezequiel Garcia's avatar
      parport: Add support for the WCH353 1S/1P multi-IO card · feb58142
      Ezequiel Garcia authored
      This Multi-IO card has one serial 16550-like and one parallel port connector.
      Here's the lspci output, after this commit is applied:
      
      03:07.0 Serial controller: Device 4348:5053 (rev 10) (prog-if 02 [16550])
      	Subsystem: Device 4348:5053
      	Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
      	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
      	Interrupt: pin A routed to IRQ 21
      	Region 0: I/O ports at cf00 [size=8]
      	Region 1: I/O ports at ce00 [size=8]
      	Kernel driver in use: parport_serial
      	Kernel modules: 8250_pci, parport_serial
      
      This commit adds an entry with the device ID to the blacklist declared in
      8250_pci to prevent the driver from taking ownership. Also, and as was done
      for the 2S/1P variant, add a quirk to skip autodetection and set the correct
      type to 16550A clone.
      
      Proper entries are added to parport_serial, to support the device parallel
      and serial ports.
      
      Cc: Gianluca Anzolin <gianluca@sottospazio.it>
      Cc: Alan Cox <alan@linux.intel.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      feb58142
  16. 28 Feb, 2014 1 commit
  17. 11 Dec, 2013 3 commits
  18. 08 Dec, 2013 1 commit
  19. 26 Nov, 2013 1 commit
  20. 14 Nov, 2013 1 commit
  21. 31 Oct, 2013 1 commit
  22. 23 Oct, 2013 1 commit
    • Mark Salter's avatar
      Kconfig cleanup (PARPORT_PC dependencies) · d90c3eb3
      Mark Salter authored
      Remove messy dependencies from PARPORT_PC by having it depend on one
      Kconfig symbol (ARCH_MIGHT_HAVE_PC_PARPORT) and having architectures
      which need it, select ARCH_MIGHT_HAVE_PC_PARPORT in arch/*/Kconfig.
      New architectures are unlikely to need PARPORT_PC, so this avoids
      having an ever growing list of architectures to exclude. Those
      architectures which do select ARCH_MIGHT_HAVE_PC_PARPORT in this
      patch are the ones which have an asm/parport.h (or use the generic
      version).
      Signed-off-by: default avatarMark Salter <msalter@redhat.com>
      Acked-by: default avatarIngo Molnar <mingo@redhat.com>
      CC: Richard Henderson <rth@twiddle.net>
      CC: linux-alpha@vger.kernel.org
      CC: Vineet Gupta <vgupta@synopsys.com>
      CC: Russell King <linux@arm.linux.org.uk>
      CC: linux-arm-kernel@lists.infradead.org
      CC: Tony Luck <tony.luck@intel.com>
      CC: Fenghua Yu <fenghua.yu@intel.com>
      CC: linux-ia64@vger.kernel.org
      CC: Geert Uytterhoeven <geert@linux-m68k.org>
      CC: linux-m68k@lists.linux-m68k.org
      CC: Michal Simek <monstr@monstr.eu>
      CC: microblaze-uclinux@itee.uq.edu.au
      CC: Ralf Baechle <ralf@linux-mips.org>
      CC: linux-mips@linux-mips.org
      CC: "James E.J. Bottomley" <jejb@parisc-linux.org>
      CC: Helge Deller <deller@gmx.de>
      CC: linux-parisc@vger.kernel.org
      CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      CC: Paul Mackerras <paulus@samba.org>
      CC: linuxppc-dev@lists.ozlabs.org
      CC: Paul Mundt <lethal@linux-sh.org>
      CC: linux-sh@vger.kernel.org
      CC: "David S. Miller" <davem@davemloft.net>
      CC: sparclinux@vger.kernel.org
      CC: Guan Xuetao <gxt@mprc.pku.edu.cn>
      CC: Thomas Gleixner <tglx@linutronix.de>
      CC: "H. Peter Anvin" <hpa@zytor.com>
      CC: x86@kernel.org
      d90c3eb3
  23. 30 Aug, 2013 1 commit
  24. 27 Aug, 2013 1 commit
  25. 03 Jul, 2013 1 commit