Commit Graph

45 Commits

Author SHA1 Message Date
Wilson Sung
67711e47f3 Merge android-4.9-q (4.9.292) into android-msm-pixel-4.9-sc-lts
Merge 4.9.292 into android-4.9-q
Linux 4.9.292
  * serial: core: fix transmit-buffer reset and memleak
      drivers/tty/serial/serial_core.c
  * serial: pl011: Add ACPI SBSA UART match id
      drivers/tty/serial/amba-pl011.c
  * tty: serial: msm_serial: Deactivate RX DMA for polling support
      drivers/tty/serial/msm_serial.c
  * vgacon: Propagate console boot parameters before calling `vc_resize'
      drivers/video/console/vgacon.c
  * parisc: Fix "make install" on newer debian releases
      arch/parisc/install.sh
  * net/rds: correct socket tunable error in rds_tcp_tune()
      net/rds/tcp.c
  * siphash: use _unaligned version by default
      include/linux/siphash.h
      lib/siphash.c
  * net: qlogic: qlcnic: Fix a NULL pointer dereference in qlcnic_83xx_add_rings()
      drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
  * natsemi: xtensa: fix section mismatch warnings
      drivers/net/ethernet/natsemi/xtsonic.c
  * fget: check that the fd still exists after getting a ref to it
      fs/file.c
  * fs: add fget_many() and fput_many()
      fs/file.c
      fs/file_table.c
      include/linux/file.h
      include/linux/fs.h
  * sata_fsl: fix warning in remove_proc_entry when rmmod sata_fsl
      drivers/ata/sata_fsl.c
  * sata_fsl: fix UAF in sata_fsl_port_stop when rmmod sata_fsl
      drivers/ata/sata_fsl.c
  * kprobes: Limit max data_size of the kretprobe instances
      include/linux/kprobes.h
      kernel/kprobes.c
  * vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit
      drivers/net/vrf.c
  * net: ethernet: dec: tulip: de4x5: fix possible array overflows in type3_infoblock()
      drivers/net/ethernet/dec/tulip/de4x5.c
  * net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be out of bound
      drivers/net/ethernet/dec/tulip/de4x5.c
  * ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflow in hns_dsaf_ge_srst_by_port()
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c
  * scsi: iscsi: Unblock session then wake up error handler
      drivers/scsi/scsi_transport_iscsi.c
  * thermal: core: Reset previous low and high trip during thermal zone init
      drivers/thermal/thermal_core.c
  * s390/setup: avoid using memblock_enforce_memory_limit
      arch/s390/kernel/setup.c
  * platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3 deep
      drivers/platform/x86/thinkpad_acpi.c
  * net: return correct error code
      net/ipv4/devinet.c
  * hugetlb: take PMD sharing into account when flushing tlb/caches
      mm/hugetlb.c
  * NFSv42: Fix pagecache invalidation after COPY/CLONE
      fs/nfs/nfs42proc.c
  * shm: extend forced shm destroy to support objects from several IPC nses
      include/linux/ipc_namespace.h
      include/linux/sched.h
      include/linux/shm.h
      ipc/shm.c
  * tty: hvc: replace BUG_ON() with negative return value
      drivers/tty/hvc/hvc_xen.c
  * xen/netfront: don't trust the backend response data blindly
      drivers/net/xen-netfront.c
  * xen/netfront: disentangle tx_skb_freelist
      drivers/net/xen-netfront.c
  * xen/netfront: don't read data from request on the ring page
      drivers/net/xen-netfront.c
  * xen/netfront: read response from backend only once
      drivers/net/xen-netfront.c
  * xen/blkfront: don't trust the backend response data blindly
      drivers/block/xen-blkfront.c
  * xen/blkfront: don't take local copy of a request from the ring page
      drivers/block/xen-blkfront.c
  * xen/blkfront: read response from backend only once
      drivers/block/xen-blkfront.c
  * xen: sync include/xen/interface/io/ring.h with Xen's newest version
      include/xen/interface/io/ring.h
  * fuse: release pipe buf after last use
      fs/fuse/dev.c
  * NFC: add NCI_UNREG flag to eliminate the race
      include/net/nfc/nci_core.h
      net/nfc/nci/core.c
  * proc/vmcore: fix clearing user buffer by properly using clear_user()
      fs/proc/vmcore.c
  * vhost/vsock: fix incorrect used length reported to the guest
      drivers/vhost/vsock.c
  * hugetlbfs: flush TLBs correctly after huge_pmd_unshare
      arch/arm/include/asm/tlb.h
      arch/ia64/include/asm/tlb.h
      arch/s390/include/asm/tlb.h
      arch/sh/include/asm/tlb.h
      arch/um/include/asm/tlb.h
      include/asm-generic/tlb.h
      mm/hugetlb.c
      mm/memory.c
  * tracing: Check pid filtering when creating events
      kernel/trace/trace_events.c
  * tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited flows
      net/ipv4/tcp_cubic.c
  * PM: hibernate: use correct mode for swsusp_close()
      kernel/power/hibernate.c
  * drm/vc4: fix error code in vc4_create_object()
      drivers/gpu/drm/vc4/vc4_bo.c
  * scsi: mpt3sas: Fix kernel panic during drive powercycle test
      drivers/scsi/mpt3sas/mpt3sas_scsih.c
  * ARM: socfpga: Fix crash with CONFIG_FORTIRY_SOURCE
      arch/arm/mach-socfpga/core.h
      arch/arm/mach-socfpga/platsmp.c
  * NFSv42: Don't fail clone() unless the OP_CLONE operation failed
      fs/nfs/nfs42xdr.c
  * net: ieee802154: handle iftypes as u32
      include/net/nl802154.h
  * ASoC: topology: Add missing rwsem around snd_ctl_remove() calls
      sound/soc/soc-topology.c
  * ARM: dts: BCM5301X: Add interrupt properties to GPIO node
      arch/arm/boot/dts/bcm5301x.dtsi
  * tracing: Fix pid filtering when triggers are attached
      kernel/trace/trace.h
  * xen: detect uninitialized xenbus in xenbus_init
      drivers/xen/xenbus/xenbus_probe.c
  * xen: don't continue xenstore initialization in case of errors
      drivers/xen/xenbus/xenbus_probe.c
  * fuse: fix page stealing
      fs/fuse/dev.c
  * staging: rtl8192e: Fix use after free in _rtl92e_pci_disconnect()
      drivers/staging/rtl8192e/rtl8192e/rtl_core.c
  * ALSA: ctxfi: Fix out-of-range access
      sound/pci/ctxfi/ctamixer.c
      sound/pci/ctxfi/ctdaio.c
      sound/pci/ctxfi/ctresource.c
      sound/pci/ctxfi/ctresource.h
      sound/pci/ctxfi/ctsrc.c
  * binder: fix test regression due to sender_euid change
      drivers/android/binder.c
  * usb: hub: Fix locking issues with address0_mutex
      drivers/usb/core/hub.c
  * usb: hub: Fix usb enumeration issue due to address0 race
      drivers/usb/core/hub.c
  * USB: serial: option: add Fibocom FM101-GL variants
      drivers/usb/serial/option.c
  * USB: serial: option: add Telit LE910S1 0x9200 composition
      drivers/usb/serial/option.c
  * staging: ion: Prevent incorrect reference counting behavour
      drivers/staging/android/ion/ion.c
    Merge 4.9.291 into android-4.9-q
Linux 4.9.291
  * soc/tegra: pmc: Fix imbalanced clock disabling in error code path
      drivers/soc/tegra/pmc.c
  * usb: max-3421: Use driver data instead of maintaining a list of bound devices
      drivers/usb/host/max3421-hcd.c
  * ASoC: DAPM: Cover regression by kctl change notification fix
      sound/soc/soc-dapm.c
  * batman-adv: Don't always reallocate the fragmentation skb head
      net/batman-adv/fragmentation.c
  * batman-adv: Reserve needed_*room for fragments
      net/batman-adv/fragmentation.c
  * batman-adv: Consider fragmentation for needed_headroom
      net/batman-adv/hard-interface.c
  * batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh
      net/batman-adv/bridge_loop_avoidance.c
  * batman-adv: mcast: fix duplicate mcast packets in BLA backbone from LAN
      net/batman-adv/multicast.c
      net/batman-adv/multicast.h
      net/batman-adv/soft-interface.c
  * batman-adv: Fix own OGM check in aggregated OGMs
      net/batman-adv/bat_v_ogm.c
  * batman-adv: Keep fragments equally sized
      net/batman-adv/fragmentation.c
  * drm/amdgpu: fix set scaling mode Full/Full aspect/Center not works on vga and dvi connectors
      drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
  * drm/udl: fix control-message timeout
      drivers/gpu/drm/udl/udl_connector.c
  * cfg80211: call cfg80211_stop_ap when switch from P2P_GO type
      net/wireless/util.c
  * parisc/sticon: fix reverse colors
      drivers/video/console/sticon.c
  * btrfs: fix memory ordering between normal and ordered work functions
      fs/btrfs/async-thread.c
  * mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag
      mm/slab.h
  * hexagon: export raw I/O routines for modules
      arch/hexagon/lib/io.c
  * tun: fix bonding active backup with arp monitoring
      drivers/net/tun.c
  * perf/x86/intel/uncore: Fix IIO event constraints for Skylake Server
      arch/x86/events/intel/uncore_snbep.c
  * perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server
      arch/x86/events/intel/uncore_snbep.c
  * NFC: reorder the logic in nfc_{un,}register_device
      net/nfc/core.c
  * NFC: reorganize the functions in nci_request
      net/nfc/nci/core.c
  * platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()'
      drivers/platform/x86/hp_accel.c
  * mips: bcm63xx: add support for clk_get_parent()
      arch/mips/bcm63xx/clk.c
  * iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset
      drivers/net/ethernet/intel/i40evf/i40evf_main.c
  * net: bnx2x: fix variable dereferenced before check
      drivers/net/ethernet/broadcom/bnx2x/bnx2x_init_ops.h
  * sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain()
      kernel/sched/core.c
  * mips: BCM63XX: ensure that CPU_SUPPORTS_32BIT_KERNEL is set
      arch/mips/Kconfig
  * sh: define __BIG_ENDIAN for math-emu
      arch/sh/include/asm/sfp-machine.h
  * sh: fix kconfig unmet dependency warning for FRAME_POINTER
      arch/sh/Kconfig.debug
  * maple: fix wrong return value of maple_bus_init().
      drivers/sh/maple/maple.c
  * sh: check return code of request_irq
      arch/sh/kernel/cpu/sh4a/smp-shx3.c
  * powerpc/dcr: Use cmplwi instead of 3-argument cmpli
      arch/powerpc/sysdev/dcr-low.S
  * ALSA: gus: fix null pointer dereference on pointer block
      sound/isa/gus/gus_dma.c
  * powerpc/5200: dts: fix memory node unit name
      arch/powerpc/boot/dts/charon.dts
      arch/powerpc/boot/dts/digsy_mtc.dts
      arch/powerpc/boot/dts/lite5200.dts
      arch/powerpc/boot/dts/lite5200b.dts
      arch/powerpc/boot/dts/media5200.dts
      arch/powerpc/boot/dts/mpc5200b.dtsi
      arch/powerpc/boot/dts/o2d.dts
      arch/powerpc/boot/dts/o2d.dtsi
      arch/powerpc/boot/dts/o2dnt2.dts
      arch/powerpc/boot/dts/o3dnt.dts
      arch/powerpc/boot/dts/pcm032.dts
      arch/powerpc/boot/dts/tqm5200.dts
  * scsi: target: Fix alua_tg_pt_gps_count tracking
      drivers/target/target_core_alua.c
  * scsi: target: Fix ordered tag handling
      drivers/target/target_core_device.c
      drivers/target/target_core_internal.h
      drivers/target/target_core_transport.c
      include/target/target_core_base.h
  * MIPS: sni: Fix the build
      arch/mips/sni/time.c
  * tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc
      drivers/tty/tty_buffer.c
  * usb: host: ohci-tmio: check return value after calling platform_get_resource()
      drivers/usb/host/ohci-tmio.c
  * ARM: dts: omap: fix gpmc,mux-add-data type
      arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi
      arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi
  * scsi: advansys: Fix kernel pointer leak
      drivers/scsi/advansys.c
  * usb: musb: tusb6010: check return value after calling platform_get_resource()
      drivers/usb/musb/tusb6010.c
  * scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq()
      drivers/scsi/lpfc/lpfc_sli.c
  * PCI/MSI: Destroy sysfs before freeing entries
      drivers/pci/msi.c
  * parisc/entry: fix trace test in syscall exit path
      arch/parisc/kernel/entry.S
  * net: mdio-mux: fix unbalanced put_device
      drivers/net/phy/mdio-mux.c
  * PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
      include/uapi/linux/pci_regs.h
  * mm, oom: do not trigger out_of_memory from the #PF
      mm/oom_kill.c
  * mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
      mm/oom_kill.c
  * powerpc/bpf: Fix BPF_SUB when imm == 0x80000000
      arch/powerpc/net/bpf_jit_comp64.c
  * powerpc/bpf: Validate branch ranges
      arch/powerpc/net/bpf_jit.h
      arch/powerpc/net/bpf_jit_comp64.c
  * ARM: 9156/1: drop cc-option fallbacks for architecture selection
      arch/arm/Makefile
  * USB: chipidea: fix interrupt deadlock
      drivers/usb/chipidea/core.c
  * vsock: prevent unnecessary refcnt inc for nonblocking connect
      net/vmw_vsock/af_vsock.c
  * nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails
      drivers/nfc/pn533/pn533.c
  * llc: fix out-of-bound array index in llc_sk_dev_hash()
      include/net/llc.h
  * mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and zs_unregister_migration()
      mm/zsmalloc.c
  * bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed
      drivers/net/bonding/bond_sysfs_slave.c
  * ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
      drivers/acpi/pmic/intel_pmic.c
  * net: davinci_emac: Fix interrupt pacing disable
      drivers/net/ethernet/ti/davinci_emac.c
  * xen-pciback: Fix return in pm_ctrl_init()
      drivers/xen/xen-pciback/conf_space_capability.c
  * i2c: xlr: Fix a resource leak in the error handling path of 'xlr_i2c_probe()'
      drivers/i2c/busses/i2c-xlr.c
  * scsi: qla2xxx: Turn off target reset during issue_lip
      drivers/scsi/qla2xxx/qla_gbl.h
      drivers/scsi/qla2xxx/qla_mr.c
      drivers/scsi/qla2xxx/qla_os.c
  * watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT
      drivers/watchdog/f71808e_wdt.c
  * m68k: set a default value for MEMORY_RESERVE
      arch/m68k/Kconfig.machine
  * dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result`
      drivers/dma/dmaengine.h
  * netfilter: nfnetlink_queue: fix OOB when mac header was cleared
      net/netfilter/nfnetlink_queue.c
  * auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string
      drivers/auxdisplay/img-ascii-lcd.c
  * dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro
      drivers/dma/at_xdmac.c
  * mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare()
      drivers/mtd/spi-nor/hisi-sfc.c
  * fs: orangefs: fix error return code of orangefs_revalidate_lookup()
      fs/orangefs/dcache.c
  * PCI: aardvark: Don't spam about PIO Response Status
      drivers/pci/host/pci-aardvark.c
  * drm/plane-helper: fix uninitialized variable reference
      drivers/gpu/drm/drm_plane_helper.c
  * pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds
      fs/nfs/flexfilelayout/flexfilelayoutdev.c
      fs/nfs/pnfs_nfs.c
  * power: supply: bq27xxx: Fix kernel crash on IRQ handler register error
      drivers/power/supply/bq27xxx_battery_i2c.c
  * serial: xilinx_uartps: Fix race condition causing stuck TX
      drivers/tty/serial/xilinx_uartps.c
  * RDMA/mlx4: Return missed an error if device doesn't support steering
      drivers/infiniband/hw/mlx4/qp.c
  * scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn()
      drivers/scsi/csiostor/csio_lnode.c
  * power: supply: rt5033_battery: Change voltage values to µV
      drivers/power/supply/rt5033_battery.c
  * usb: gadget: hid: fix error code in do_config()
      drivers/usb/gadget/legacy/hid.c
  * serial: 8250_dw: Drop wrong use of ACPI_PTR()
      drivers/tty/serial/8250/8250_dw.c
  * video: fbdev: chipsfb: use memset_io() instead of memset()
      drivers/video/fbdev/chipsfb.c
  * memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe
      drivers/memory/fsl_ifc.c
  * soc/tegra: Fix an error handling path in tegra_powergate_power_up()
      drivers/soc/tegra/pmc.c
  * arm: dts: omap3-gta04a4: accelerometer irq fix
      arch/arm/boot/dts/omap3-gta04.dtsi
  * JFS: fix memleak in jfs_mount
      fs/jfs/jfs_mount.c
  * MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT
      arch/mips/Kconfig
  * scsi: dc395: Fix error case unwinding
      drivers/scsi/dc395x.c
  * ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc()
      drivers/irqchip/irq-s3c24xx.c
  * RDMA/rxe: Fix wrong port_cap_flags
      drivers/infiniband/sw/rxe/rxe_param.h
  * crypto: pcrypt - Delay write to padata->info
      crypto/pcrypt.c
  * libertas: Fix possible memory leak in probe and disconnect
      drivers/net/wireless/marvell/libertas/if_usb.c
  * libertas_tf: Fix possible memory leak in probe and disconnect
      drivers/net/wireless/marvell/libertas_tf/if_usb.c
  * samples/kretprobes: Fix return value if register_kretprobe() failed
      samples/kprobes/kretprobe_example.c
  * irq: mips: avoid nested irq_enter()
      drivers/irqchip/irq-bcm6345-l1.c
  * s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap()
      arch/s390/mm/gmap.c
  * smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi
      security/smack/smackfs.c
  * phy: micrel: ksz8041nl: do not use power down mode
      drivers/net/phy/micrel.c
  * mwifiex: Send DELBA requests according to spec
      drivers/net/wireless/marvell/mwifiex/11n.c
  * platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning
      drivers/platform/x86/thinkpad_acpi.c
  * mmc: mxs-mmc: disable regulator on error and in the remove function
      drivers/mmc/host/mxs-mmc.c
  * net: stream: don't purge sk_error_queue in sk_stream_kill_queues()
      net/core/stream.c
  * drm/msm: uninitialized variable in msm_gem_import()
      drivers/gpu/drm/msm/msm_gem.c
  * ath10k: fix max antenna gain unit
      drivers/net/wireless/ath/ath10k/mac.c
      drivers/net/wireless/ath/ath10k/wmi.h
  * hwmon: Fix possible memleak in __hwmon_device_register()
      drivers/hwmon/hwmon.c
  * memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host()
      drivers/memstick/host/jmb38x_ms.c
  * memstick: avoid out-of-range warning
      drivers/memstick/core/ms_block.c
  * b43: fix a lower bounds test
      drivers/net/wireless/broadcom/b43/phy_g.c
  * b43legacy: fix a lower bounds test
      drivers/net/wireless/broadcom/b43legacy/radio.c
  * crypto: qat - disregard spurious PFVF interrupts
      drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
      drivers/crypto/qat/qat_common/adf_vf_isr.c
  * crypto: qat - detect PFVF collision after ACK
      drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
  * ath9k: Fix potential interrupt storm on queue reset
      drivers/net/wireless/ath/ath9k/main.c
  * cpuidle: Fix kobject memory leaks in error paths
      drivers/cpuidle/sysfs.c
  * media: si470x: Avoid card name truncation
      drivers/media/radio/si470x/radio-si470x-i2c.c
      drivers/media/radio/si470x/radio-si470x-usb.c
  * media: mtk-vpu: Fix a resource leak in the error handling path of 'mtk_vpu_probe()'
      drivers/media/platform/mtk-vpu/mtk_vpu.c
  * media: dvb-usb: fix ununit-value in az6027_rc_query
      drivers/media/usb/dvb-usb/az6027.c
  * cgroup: Make rebind_subsystems() disable v2 controllers all at once
      kernel/cgroup.c
  * parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling
      arch/parisc/kernel/smp.c
  * parisc: fix warning in flush_tlb_all
      arch/parisc/mm/init.c
  * spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in bcm_qspi_probe()
      drivers/spi/spi-bcm-qspi.c
  * ARM: 9136/1: ARMv7-M uses BE-8, not BE-32
      arch/arm/mm/Kconfig
  * ARM: clang: Do not rely on lr register for stacktrace
      arch/arm/kernel/stacktrace.c
  * smackfs: use __GFP_NOFAIL for smk_cipso_doi()
      security/smack/smackfs.c
  * iwlwifi: mvm: disable RX-diversity in powersave
      drivers/net/wireless/intel/iwlwifi/mvm/utils.c
  * PM: hibernate: Get block device exclusively in swsusp_check()
      kernel/power/swap.c
  * mwl8k: Fix use-after-free in mwl8k_fw_state_machine()
      drivers/net/wireless/marvell/mwl8k.c
  * tracing/cfi: Fix cmp_entries_* functions signature mismatch
      kernel/trace/tracing_map.c
  * lib/xz: Validate the value before assigning it to an enum variable
      lib/xz/xz_dec_stream.c
  * lib/xz: Avoid overlapping memcpy() with invalid input with in-place decompression
      lib/decompress_unxz.c
      lib/xz/xz_dec_lzma2.c
  * memstick: r592: Fix a UAF bug when removing the driver
      drivers/memstick/host/r592.c
  * ACPI: battery: Accept charges over the design capacity as full
      drivers/acpi/battery.c
  * ath: dfs_pattern_detector: Fix possible null-pointer dereference in channel_detector_create()
      drivers/net/wireless/ath/dfs_pattern_detector.c
  * tracefs: Have tracefs directories not set OTH permission bits by default
      fs/tracefs/inode.c
  * media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte()
      drivers/media/usb/dvb-usb/dibusb-common.c
  * ACPICA: Avoid evaluating methods too early during system resume
      drivers/acpi/acpica/acglobal.h
      drivers/acpi/acpica/hwesleep.c
      drivers/acpi/acpica/hwsleep.c
      drivers/acpi/acpica/hwxfsleep.c
  * ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK
      arch/ia64/Kconfig.debug
  * media: mceusb: return without resubmitting URB in case of -EPROTO error.
      drivers/media/rc/mceusb.c
  * media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe()
      drivers/media/platform/s5p-mfc/s5p_mfc.c
  * media: uvcvideo: Set capability in s_param
      drivers/media/usb/uvc/uvc_v4l2.c
  * media: netup_unidvb: handle interrupt properly according to the firmware
      drivers/media/pci/netup_unidvb/netup_unidvb_core.c
  * media: mt9p031: Fix corrupted frame after restarting stream
      drivers/media/i2c/mt9p031.c
  * x86: Increase exception stack sizes
      arch/x86/include/asm/page_64_types.h
  * smackfs: Fix use-after-free in netlbl_catmap_walk()
      security/smack/smackfs.c
  * locking/lockdep: Avoid RCU-induced noinstr fail
      kernel/locking/lockdep.c
  * MIPS: lantiq: dma: reset correct number of channel
      arch/mips/lantiq/xway/dma.c
  * MIPS: lantiq: dma: add small delay after reset
      arch/mips/lantiq/xway/dma.c
  * platform/x86: wmi: do not fail if disabling fails
      drivers/platform/x86/wmi.c
  * Bluetooth: fix use-after-free error in lock_sock_nested()
      net/bluetooth/l2cap_sock.c
  * Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
      net/bluetooth/sco.c
  * USB: iowarrior: fix control-message timeouts
      drivers/usb/misc/iowarrior.c
  * USB: serial: keyspan: fix memleak on probe errors
      drivers/usb/serial/keyspan.c
  * iio: dac: ad5446: Fix ad5622_write() return value
      drivers/iio/dac/ad5446.c
  * quota: correct error number in free_dqentry()
      fs/quota/quota_tree.c
  * quota: check block number when reading the block in quota file
      fs/quota/quota_tree.c
  * PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG
      drivers/pci/host/pci-aardvark.c
  * ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume
      sound/core/oss/mixer_oss.c
  * ALSA: mixer: oss: Fix racy access to slots
      sound/core/oss/mixer_oss.c
  * serial: core: Fix initializing and restoring termios speed
      drivers/tty/serial/serial_core.c
      include/linux/console.h
  * powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found
      arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c
  * power: supply: max17042_battery: use VFSOC for capacity when no rsns
      drivers/power/supply/max17042_battery.c
  * power: supply: max17042_battery: Prevent int underflow in set_soc_threshold
      drivers/power/supply/max17042_battery.c
  * signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT
      arch/mips/kernel/r2300_fpu.S
      arch/mips/kernel/syscall.c
  * signal: Remove the bogus sigkill_pending in ptrace_stop
      kernel/signal.c
  * RDMA/qedr: Fix NULL deref for query_qp on the GSI QP
      drivers/infiniband/hw/qedr/verbs.c
  * wcn36xx: handle connection loss indication
      drivers/net/wireless/ath/wcn36xx/smd.c
  * mwifiex: Read a PCI register after writing the TX ring write pointer
      drivers/net/wireless/marvell/mwifiex/pcie.c
  * wcn36xx: Fix HT40 capability for 2Ghz band
      drivers/net/wireless/ath/wcn36xx/main.c
  * evm: mark evm_fixmode as __ro_after_init
      security/integrity/evm/evm_main.c
  * rtl8187: fix control-message timeouts
      drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.c
  * PCI: Mark Atheros QCA6174 to avoid bus reset
      drivers/pci/quirks.c
  * ath6kl: fix control-message timeout
      drivers/net/wireless/ath/ath6kl/usb.c
  * ath6kl: fix division by zero in send path
      drivers/net/wireless/ath/ath6kl/usb.c
  * mwifiex: fix division by zero in fw download path
      drivers/net/wireless/marvell/mwifiex/usb.c
  * EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell
      drivers/edac/sb_edac.c
  * regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-dvs-idx property
      Documentation/devicetree/bindings/regulator/samsung,s5m8767.txt
  * regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is disabled
      Documentation/devicetree/bindings/regulator/samsung,s5m8767.txt
      drivers/regulator/s5m8767.c
  * hwmon: (pmbus/lm25066) Add offset coefficients
      drivers/hwmon/pmbus/lm25066.c
  * btrfs: fix lost error handling when replaying directory deletes
      fs/btrfs/tree-log.c
  * vmxnet3: do not stop tx queues after netif_device_detach()
      drivers/net/vmxnet3/vmxnet3_drv.c
  * watchdog: Fix OMAP watchdog early handling
      drivers/watchdog/omap_wdt.c
  * spi: spl022: fix Microwire full duplex mode
      drivers/spi/spi-pl022.c
  * xen/netfront: stop tx queues during live migration
      drivers/net/xen-netfront.c
  * bpf: Prevent increasing bpf_jit_limit above max
      include/linux/filter.h
      kernel/bpf/core.c
      net/core/sysctl_net_core.c
  * mmc: winbond: don't build on M68K
      drivers/mmc/host/Kconfig
  * hyperv/vmbus: include linux/bitops.h
      drivers/hv/hyperv_vmbus.h
  * sfc: Don't use netif_info before net_device setup
      drivers/net/ethernet/sfc/ptp.c
      drivers/net/ethernet/sfc/siena_sriov.c
  * x86/irq: Ensure PI wakeup handler is unregistered before module unload
      arch/x86/kernel/irq.c
  * ALSA: timer: Unconditionally unlink slave instances, too
      sound/core/timer.c
  * ALSA: timer: Fix use-after-free problem
      sound/core/timer.c
  * ALSA: synth: missing check for possible NULL after the call to kstrdup
      sound/synth/emux/emux.c
  * ALSA: line6: fix control and interrupt message timeouts
      sound/usb/line6/driver.c
      sound/usb/line6/driver.h
      sound/usb/line6/podhd.c
      sound/usb/line6/toneport.c
  * ALSA: 6fire: fix control and bulk message timeouts
      sound/usb/6fire/comm.c
      sound/usb/6fire/firmware.c
  * ALSA: ua101: fix division by zero at probe
      sound/usb/misc/ua101.c
  * media: ite-cir: IR receiver stop working after receive overflow
      drivers/media/rc/ite-cir.c
  * parisc: Fix ptrace check on syscall return
      arch/parisc/kernel/entry.S
  * mmc: dw_mmc: Dont wait for DRTO on Write RSP error
      drivers/mmc/host/dw_mmc.c
  * ocfs2: fix data corruption on truncate
      fs/ocfs2/file.c
  * libata: fix read log timeout value
      drivers/ata/libata-eh.c
      include/linux/libata.h
  * Input: i8042 - Add quirk for Fujitsu Lifebook T725
      drivers/input/serio/i8042-x86ia64io.h
  * Input: elantench - fix misreporting trackpoint coordinates
      drivers/input/mouse/elantech.c
  * xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good delay
      drivers/usb/host/xhci-hub.c
  * binder: use cred instead of task for selinux checks
      drivers/android/binder.c
      include/linux/lsm_hooks.h
      include/linux/security.h
      security/security.c
      security/selinux/hooks.c
  * binder: use euid from cred instead of using task
      drivers/android/binder.c
  * ANDROID: arm64: process: Match upstream formatting when dumping memory areas
      arch/arm64/kernel/process.c
  * FROMGIT: binder: fix test regression due to sender_euid change
      drivers/android/binder.c
  * BACKPORT: binder: use cred instead of task for selinux checks
      drivers/android/binder.c
      include/linux/lsm_hooks.h
      include/linux/security.h
      security/security.c
      security/selinux/hooks.c
  * UPSTREAM: binder: use euid from cred instead of using task
      drivers/android/binder.c
    Merge 4.9.290 into android-4.9-q
Linux 4.9.290
  * rsi: fix control-message timeout
      drivers/net/wireless/rsi/rsi_91x_usb.c
  * staging: rtl8192u: fix control-message timeouts
      drivers/staging/rtl8192u/r8192U_core.c
  * staging: r8712u: fix control-message timeout
      drivers/staging/rtl8712/usb_ops_linux.c
  * comedi: vmk80xx: fix bulk and interrupt message timeouts
      drivers/staging/comedi/drivers/vmk80xx.c
  * comedi: vmk80xx: fix bulk-buffer overflow
      drivers/staging/comedi/drivers/vmk80xx.c
  * comedi: vmk80xx: fix transfer-buffer overflows
      drivers/staging/comedi/drivers/vmk80xx.c
  * comedi: ni_usb6501: fix NULL-deref in command paths
      drivers/staging/comedi/drivers/ni_usb6501.c
  * comedi: dt9812: fix DMA buffers on stack
      drivers/staging/comedi/drivers/dt9812.c
  * isofs: Fix out of bound access for corrupted isofs image
      fs/isofs/inode.c
  * printk/console: Allow to disable console output by using console="" or console=null
      kernel/printk/printk.c
  * usb-storage: Add compatibility quirk flags for iODD 2531/2541
      drivers/usb/storage/unusual_devs.h
  * usb: musb: Balance list entry in musb_gadget_queue
      drivers/usb/musb/musb_gadget.c
  * usb: gadget: Mark USB_FSL_QE broken on 64-bit
      drivers/usb/gadget/udc/Kconfig
  * IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
      drivers/infiniband/hw/qib/qib_user_sdma.c
  * IB/qib: Use struct_size() helper
      drivers/infiniband/hw/qib/qib_user_sdma.c
  * Revert "x86/kvm: fix vcpu-id indexed array sizes"
      arch/x86/kvm/ioapic.c
      arch/x86/kvm/ioapic.h
  * usb: hso: fix error handling code of hso_create_net_device
      drivers/net/usb/hso.c
  * net: hso: register netdev later to avoid a race condition
      drivers/net/usb/hso.c
  * ARM: 9120/1: Revert "amba: make use of -1 IRQs warn"
      drivers/amba/bus.c
  * arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed
      arch/arc/include/asm/pgtable.h
      arch/arm/include/asm/pgtable-2level.h
      arch/arm/include/asm/pgtable-3level.h
      arch/mips/include/asm/pgtable-32.h
      arch/powerpc/include/asm/pte-common.h
      include/asm-generic/pgtable.h
  * mm/zsmalloc: Prepare to variable MAX_PHYSMEM_BITS
      arch/x86/include/asm/pgtable-3level_types.h
      mm/zsmalloc.c
  * scsi: core: Put LLD module refcnt after SCSI device is released
      drivers/scsi/scsi.c
      drivers/scsi/scsi_sysfs.c
  * UPSTREAM: security: selinux: allow per-file labeling for bpffs
      security/selinux/hooks.c

Bug: 210364486
Change-Id: Ia31d19943f4638a9b2ac8122a4c8728a56e8aa0a
Signed-off-by: JohnnLee <johnnlee@google.com>
2021-12-29 06:56:04 +00:00
Pali Rohár
d4787831e1 serial: core: Fix initializing and restoring termios speed
commit 027b57170bf8bb6999a28e4a5f3d78bf1db0f90c upstream.

Since commit edc6afc549 ("tty: switch to ktermios and new framework")
termios speed is no longer stored only in c_cflag member but also in new
additional c_ispeed and c_ospeed members. If BOTHER flag is set in c_cflag
then termios speed is stored only in these new members.

Therefore to correctly restore termios speed it is required to store also
ispeed and ospeed members, not only cflag member.

In case only cflag member with BOTHER flag is restored then functions
tty_termios_baud_rate() and tty_termios_input_baud_rate() returns baudrate
stored in c_ospeed / c_ispeed member, which is zero as it was not restored
too. If reported baudrate is invalid (e.g. zero) then serial core functions
report fallback baudrate value 9600. So it means that in this case original
baudrate is lost and kernel changes it to value 9600.

Simple reproducer of this issue is to boot kernel with following command
line argument: "console=ttyXXX,86400" (where ttyXXX is the device name).
For speed 86400 there is no Bnnn constant and therefore kernel has to
represent this speed via BOTHER c_cflag. Which means that speed is stored
only in c_ospeed and c_ispeed members, not in c_cflag anymore.

If bootloader correctly configures serial device to speed 86400 then kernel
prints boot log to early console at speed speed 86400 without any issue.
But after kernel starts initializing real console device ttyXXX then speed
is changed to fallback value 9600 because information about speed was lost.

This patch fixes above issue by storing and restoring also ispeed and
ospeed members, which are required for BOTHER flag.

Fixes: edc6afc549 ("[PATCH] tty: switch to ktermios and new framework")
Cc: stable@vger.kernel.org
Signed-off-by: Pali Rohár <pali@kernel.org>
Link: https://lore.kernel.org/r/20211002130900.9518-1-pali@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-26 11:48:25 +01:00
josephjang
6fd287125c power: suspend: Add suspend timeout handler
Add suspend timeout handler to prevent device stuck during suspend/
resume process. Suspend timeout handler will dump disk sleep task
at first round timeout and trigger kernel panic at second round timeout.
The default timer for each round is 30 seconds.

Note: Can use following command to simulate suspend hang for testing.
    adb shell echo 1 > /sys/power/pm_hang
    adb shell echo mem > /sys/power/state

Bug: 140001706
Change-Id: Ifc8aa4ee9145187d14511e29529ba50a4b19324e
Signed-off-by: josephjang <josephjang@google.com>
2019-08-28 10:28:41 +08:00
Hans de Goede
c6c7d83b9c Revert "console: don't prefer first registered if DT specifies stdout-path"
This reverts commit 05fd007e46 ("console: don't prefer first
registered if DT specifies stdout-path").

The reverted commit changes existing behavior on which many ARM boards
rely.  Many ARM small-board-computers, like e.g.  the Raspberry Pi have
both a video output and a serial console.  Depending on whether the user
is using the device as a more regular computer; or as a headless device
we need to have the console on either one or the other.

Many users rely on the kernel behavior of the console being present on
both outputs, before the reverted commit the console setup with no
console= kernel arguments on an ARM board which sets stdout-path in dt
would look like this:

  [root@localhost ~]# cat /proc/consoles
  ttyS0                -W- (EC p a)    4:64
  tty0                 -WU (E  p  )    4:1

Where as after the reverted commit, it looks like this:

  [root@localhost ~]# cat /proc/consoles
  ttyS0                -W- (EC p a)    4:64

This commit reverts commit 05fd007e46 ("console: don't prefer first
registered if DT specifies stdout-path") restoring the original
behavior.

Fixes: 05fd007e46 ("console: don't prefer first registered if DT specifies stdout-path")
Link: http://lkml.kernel.org/r/20161104121135.4780-2-hdegoede@redhat.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Cc: Thorsten Leemhuis <regressions@leemhuis.info>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-11-11 08:12:37 -08:00
Paul Burton
05fd007e46 console: don't prefer first registered if DT specifies stdout-path
If a device tree specifies a preferred device for kernel console output
via the stdout-path or linux,stdout-path chosen node properties or the
stdout alias then the kernel ought to honor it & output the kernel
console to that device.  As it stands, this isn't the case.  Whilst we
parse the stdout-path properties & set an of_stdout variable from
of_alias_scan(), and use that from of_console_check() to determine
whether to add a console device as a preferred console whilst
registering it, we also prefer the first registered console if no other
has been selected at the time of its registration.

This means that if a console other than the one the device tree selects
via stdout-path is registered first, we will switch to using it & when
the stdout-path console is later registered the call to
add_preferred_console() via of_console_check() is too late to do
anything useful.  In practice this seems to mean that we switch to the
dummy console device fairly early & see no further console output:

    Console: colour dummy device 80x25
    console [tty0] enabled
    bootconsole [ns16550a0] disabled

Fix this by not automatically preferring the first registered console if
one is specified by the device tree.  This allows consoles to be
registered but not enabled, and once the driver for the console selected
by stdout-path calls of_console_check() the driver will be added to the
list of preferred consoles before any other console has been enabled.
When that console is then registered via register_console() it will be
enabled as expected.

Link: http://lkml.kernel.org/r/20160809151937.26118-1-paul.burton@imgtec.com
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Jiri Slaby <jslaby@suse.cz>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Ivan Delalande <colona@arista.com>
Cc: Thierry Reding <treding@nvidia.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Jan Kara <jack@suse.com>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Joe Perches <joe@perches.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-10-07 18:46:30 -07:00
Jiri Slaby
52ad1f38b4 tty: vt, remove consw->con_bmove
It is never called since commit 81732c3b2f (tty vt: Fix line
garbage in virtual console on command line edition) in 3.7. So remove
all the callbacks.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Thomas Winischhofer <thomas@winischhofer.net>
Cc: linux-usb@vger.kernel.org
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
Cc: Helge Deller <deller@gmx.de>
Cc: linux-fbdev@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-06-25 09:04:48 -07:00
Jiri Slaby
709280da62 tty: vt, consw->con_set_palette cleanup
* allow NULL consw->con_set_palette (some consoles define an empty
  hook)
* => remove empty hooks now
* return value of consw->con_set_palette is never checked => make the
  function void
* document consw->con_set_palette a bit

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Thomas Winischhofer <thomas@winischhofer.net>
Cc: linux-usb@vger.kernel.org
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
Cc: Helge Deller <deller@gmx.de>
Cc: linux-fbdev@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-06-25 09:04:48 -07:00
Jiri Slaby
97293de977 tty: vt, consw->con_scrolldelta cleanup
* allow NULL consw->con_scrolldelta (some consoles define an empty
  hook)
* => remove empty hooks now
* return value of consw->con_scrolldelta is never checked => make the
  function void
* document consw->con_scrolldelta a bit

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Thomas Winischhofer <thomas@winischhofer.net>
Cc: linux-usb@vger.kernel.org
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
Cc: Helge Deller <deller@gmx.de>
Cc: linux-fbdev@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-06-25 09:04:48 -07:00
Linus Torvalds
1d6da87a32 Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm updates from Dave Airlie:
 "Here's the main drm pull request for 4.7, it's been a busy one, and
  I've been a bit more distracted in real life this merge window.  Lots
  more ARM drivers, not sure if it'll ever end.  I think I've at least
  one more coming the next merge window.

  But changes are all over the place, support for AMD Polaris GPUs is in
  here, some missing GM108 support for nouveau (found in some Lenovos),
  a bunch of MST and skylake fixes.

  I've also noticed a few fixes from Arnd in my inbox, that I'll try and
  get in asap, but I didn't think they should hold this up.

  New drivers:
   - Hisilicon kirin display driver
   - Mediatek MT8173 display driver
   - ARC PGU - bitstreamer on Synopsys ARC SDP boards
   - Allwinner A13 initial RGB output driver
   - Analogix driver for DisplayPort IP found in exynos and rockchip

  DRM Core:
   - UAPI headers fixes and C++ safety
   - DRM connector reference counting
   - DisplayID mode parsing for Dell 5K monitors
   - Removal of struct_mutex from drivers
   - Connector registration cleanups
   - MST robustness fixes
   - MAINTAINERS updates
   - Lockless GEM object freeing
   - Generic fbdev deferred IO support

  panel:
   - Support for a bunch of new panels

  i915:
   - VBT refactoring
   - PLL computation cleanups
   - DSI support for BXT
   - Color manager support
   - More atomic patches
   - GEM improvements
   - GuC fw loading fixes
   - DP detection fixes
   - SKL GPU hang fixes
   - Lots of BXT fixes

  radeon/amdgpu:
   - Initial Polaris support
   - GPUVM/Scheduler/Clock/Power improvements
   - ASYNC pageflip support
   - New mesa feature support

  nouveau:
   - GM108 support
   - Power sensor support improvements
   - GR init + ucode fixes.
   - Use GPU provided topology information

  vmwgfx:
   - Add host messaging support

  gma500:
   - Some cleanups and fixes

  atmel:
   - Bridge support
   - Async atomic commit support

  fsl-dcu:
   - Timing controller for LCD support
   - Pixel clock polarity support

  rcar-du:
   - Misc fixes

  exynos:
   - Pipeline clock support
   - Exynoss4533 SoC support
   - HW trigger mode support
   - export HDMI_PHY clock
   - DECON5433 fixes
   - Use generic prime functions
   - use DMA mapping APIs

  rockchip:
   - Lots of little fixes

  vc4:
   - Render node support
   - Gamma ramp support
   - DPI output support

  msm:
   - Mostly cleanups and fixes
   - Conversion to generic struct fence

  etnaviv:
   - Fix for prime buffer handling
   - Allow hangcheck to be coalesced with other wakeups

  tegra:
   - Gamme table size fix"

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (1050 commits)
  drm/edid: add displayid detailed 1 timings to the modelist. (v1.1)
  drm/edid: move displayid validation to it's own function.
  drm/displayid: Iterate over all DisplayID blocks
  drm/edid: move displayid tiled block parsing into separate function.
  drm: Nuke ->vblank_disable_allowed
  drm/vmwgfx: Report vmwgfx version to vmware.log
  drm/vmwgfx: Add VMWare host messaging capability
  drm/vmwgfx: Kill some lockdep warnings
  drm/nouveau/gr/gf100-: fix race condition in fecs/gpccs ucode
  drm/nouveau/core: recognise GM108 chipsets
  drm/nouveau/gr/gm107-: fix touching non-existent ppcs in attrib cb setup
  drm/nouveau/gr/gk104-: share implementation of ppc exception init
  drm/nouveau/gr/gk104-: move rop_active_fbps init to nonctx
  drm/nouveau/bios/pll: check BIT table version before trying to parse it
  drm/nouveau/bios/pll: prevent oops when limits table can't be parsed
  drm/nouveau/volt/gk104: round up in gk104_volt_set
  drm/nouveau/fb/gm200: setup mmu debug buffer registers at init()
  drm/nouveau/fb/gk20a,gm20b: setup mmu debug buffer registers at init()
  drm/nouveau/fb/gf100-: allocate mmu debug buffers
  drm/nouveau/fb: allow chipset-specific actions for oneinit()
  ...
2016-05-23 11:48:48 -07:00
Jiri Slaby
8ede5cce4f tty: vt, make color_table const
This means all ->con_set_palette have to have the second parameter
const too now.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-04-30 09:26:55 -07:00
Daniel Vetter
44debe7a12 vgacon: dummy implementation for vgacon_text_force
This allows us to ditch a ton of ugly #ifdefs from a bunch of drm modeset
drivers.

v2: Make the dummy function actually return a sane value, spotted by
Ville.

v3: Because the patch is still in limbo there's no more drivers to
convert, noticed by Emil.

v4: Rebase once more, because hooray. I'll just go ahead an apply this
one later on to drm-misc.

Cc: Emil Velikov <emil.l.velikov@gmail.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-03-30 17:37:57 +02:00
Tejun Heo
8d91f8b153 printk: do cond_resched() between lines while outputting to consoles
@console_may_schedule tracks whether console_sem was acquired through
lock or trylock.  If the former, we're inside a sleepable context and
console_conditional_schedule() performs cond_resched().  This allows
console drivers which use console_lock for synchronization to yield
while performing time-consuming operations such as scrolling.

However, the actual console outputting is performed while holding
irq-safe logbuf_lock, so console_unlock() clears @console_may_schedule
before starting outputting lines.  Also, only a few drivers call
console_conditional_schedule() to begin with.  This means that when a
lot of lines need to be output by console_unlock(), for example on a
console registration, the task doing console_unlock() may not yield for
a long time on a non-preemptible kernel.

If this happens with a slow console devices, for example a serial
console, the outputting task may occupy the cpu for a very long time.
Long enough to trigger softlockup and/or RCU stall warnings, which in
turn pile more messages, sometimes enough to trigger the next cycle of
warnings incapacitating the system.

Fix it by making console_unlock() insert cond_resched() between lines if
@console_may_schedule.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Calvin Owens <calvinowens@fb.com>
Acked-by: Jan Kara <jack@suse.com>
Cc: Dave Jones <davej@codemonkey.org.uk>
Cc: Kyle McMartin <kyle@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-01-16 11:17:25 -08:00
Tejun Heo
6fe29354be printk: implement support for extended console drivers
printk log_buf keeps various metadata for each message including its
sequence number and timestamp.  The metadata is currently available only
through /dev/kmsg and stripped out before passed onto console drivers.  We
want this metadata to be available to console drivers too so that console
consumers can get full information including the metadata and dictionary,
which among other things can be used to detect whether messages got lost
in transit.

This patch implements support for extended console drivers.  Consoles can
indicate that they want extended messages by setting the new CON_EXTENDED
flag and they'll be fed messages formatted the same way as /dev/kmsg.

 "<level>,<sequnum>,<timestamp>,<contflag>;<message text>\n"

If extended consoles exist, in-kernel fragment assembly is disabled.  This
ensures that all messages emitted to consoles have full metadata including
sequence number.  The contflag carries enough information to reassemble
the fragments from the reader side trivially.  Note that this only affects
/dev/kmsg.  Regular console and /proc/kmsg outputs are not affected by
this change.

* Extended message formatting for console drivers is enabled iff there
  are registered extended consoles.

* Comment describing /dev/kmsg message format updated to add missing
  contflag field and help distinguishing variable from verbatim terms.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: David Miller <davem@davemloft.net>
Cc: Kay Sievers <kay@vrfy.org>
Reviewed-by: Petr Mladek <pmladek@suse.cz>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-06-25 17:00:38 -07:00
Peter Hurley
c7cef0a849 console: Add extensible console matching
Add match() method to struct console which allows the console to
perform console command line matching instead of (or in addition to)
default console matching (ie., by fixed name and index).

The match() method returns 0 to indicate a successful match; normal
console matching occurs if no match() method is defined or the
match() method returns non-zero. The match() method is expected to set
the console index if required.

Re-implement earlycon-to-console-handoff with direct matching of
"console=uart|uart8250,..." to the 8250 ttyS console.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-03-26 16:16:20 +01:00
Wang YanQing
50539dd4f8 vt: delete unneeded function unregister_con_driver
Now there is no place use unregister_con_driver,
and we can achieve unregister_con_driver's function
with unregister_con_driver easily, so just delete it
to reduce code size and duplication.

Signed-off-by: Wang YanQing <udknight@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-05-20 12:27:59 -07:00
Wang YanQing
dc9641895a vt: delete unneeded functions register_con_driver|take_over_console
Now there is no place use register_con_driver|take_over_console,
and we can achieve their function with do_register_con_driver|
do_take_over_console easily, so just delete them to reduce code duplication.

Signed-off-by: Wang YanQing <udknight@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-05-20 12:27:58 -07:00
Thomas Gleixner
d0380e6c3c early_printk: consolidate random copies of identical code
The early console implementations are the same all over the place.  Move
the print function to kernel/printk and get rid of the copies.

[akpm@linux-foundation.org: arch/mips/kernel/early_printk.c needs kernel.h for va_list]
[paul.gortmaker@windriver.com: sh4: make the bios early console support depend on EARLY_PRINTK]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Russell King <linux@arm.linux.org.uk>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Chris Metcalf <cmetcalf@tilera.com>
Cc: Richard Weinberger <richard@nod.at>
Reviewed-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-04-29 18:28:13 -07:00
Linus Torvalds
fffddfd6c8 Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm merge from Dave Airlie:
 "Highlights:

   - TI LCD controller KMS driver

   - TI OMAP KMS driver merged from staging

   - drop gma500 stub driver

   - the fbcon locking fixes

   - the vgacon dirty like zebra fix.

   - open firmware videomode and hdmi common code helpers

   - major locking rework for kms object handling - pageflip/cursor
     won't block on polling anymore!

   - fbcon helper and prime helper cleanups

   - i915: all over the map, haswell power well enhancements, valleyview
     macro horrors cleaned up, killing lots of legacy GTT code,

   - radeon: CS ioctl unification, deprecated UMS support, gpu reset
     rework, VM fixes

   - nouveau: reworked thermal code, external dp/tmds encoder support
     (anx9805), fences sleep instead of polling,

   - exynos: all over the driver fixes."

Lovely conflict in radeon/evergreen_cs.c between commit de0babd60d
("drm/radeon: enforce use of radeon_get_ib_value when reading user cmd")
and the new changes that modified that evergreen_dma_cs_parse()
function.

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (508 commits)
  drm/tilcdc: only build on arm
  drm/i915: Revert hdmi HDP pin checks
  drm/tegra: Add list of framebuffers to debugfs
  drm/tegra: Fix color expansion
  drm/tegra: Split DC_CMD_STATE_CONTROL register write
  drm/tegra: Implement page-flipping support
  drm/tegra: Implement VBLANK support
  drm/tegra: Implement .mode_set_base()
  drm/tegra: Add plane support
  drm/tegra: Remove bogus tegra_framebuffer structure
  drm: Add consistency check for page-flipping
  drm/radeon: Use generic HDMI infoframe helpers
  drm/tegra: Use generic HDMI infoframe helpers
  drm: Add EDID helper documentation
  drm: Add HDMI infoframe helpers
  video: Add generic HDMI infoframe helpers
  drm: Add some missing forward declarations
  drm: Move mode tables to drm_edid.c
  drm: Remove duplicate drm_mode_cea_vic()
  gma500: Fix n, m1 and m2 clock limits for sdvo and lvds
  ...
2013-02-25 16:46:44 -08:00
Takashi Iwai
e93a9a8687 fb: Yet another band-aid for fixing lockdep mess
I've still got lockdep warnings even after Alan's patch, and it seems that
yet more band aids are required to paper over similar paths for
unbind_con_driver() and unregister_con_driver().  After this hack, lockdep
warnings are finally gone.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: Alan Cox <alan@linux.intel.com>
Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: stable <stable@vger.kernel.org>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2013-02-08 12:02:41 +10:00
Alan Cox
50e244cc79 fb: rework locking to fix lock ordering on takeover
Adjust the console layer to allow a take over call where the caller
already holds the locks.  Make the fb layer lock in order.

This is partly a band aid, the fb layer is terminally confused about the
locking rules it uses for its notifiers it seems.

[akpm@linux-foundation.org: remove stray non-ascii char, tidy comment]
[akpm@linux-foundation.org: export do_take_over_console()]
[airlied: cleanup another non-ascii char]
Signed-off-by: Alan Cox <alan@linux.intel.com>
Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: stable <stable@vger.kernel.org>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2013-02-08 12:02:40 +10:00
Joe Millenbach
4f73bc4dd3 tty: Added a CONFIG_TTY option to allow removal of TTY
The option allows you to remove TTY and compile without errors. This
saves space on systems that won't support TTY interfaces anyway.
bloat-o-meter output is below.

The bulk of this patch consists of Kconfig changes adding "depends on
TTY" to various serial devices and similar drivers that require the TTY
layer.  Ideally, these dependencies would occur on a common intermediate
symbol such as SERIO, but most drivers "select SERIO" rather than
"depends on SERIO", and "select" does not respect dependencies.

bloat-o-meter output comparing our previous minimal to new minimal by
removing TTY.  The list is filtered to not show removed entries with awk
'$3 != "-"' as the list was very long.

add/remove: 0/226 grow/shrink: 2/14 up/down: 6/-35356 (-35350)
function                                     old     new   delta
chr_dev_init                                 166     170      +4
allow_signal                                  80      82      +2
static.__warned                              143     142      -1
disallow_signal                               63      62      -1
__set_special_pids                            95      94      -1
unregister_console                           126     121      -5
start_kernel                                 546     541      -5
register_console                             593     588      -5
copy_from_user                                45      40      -5
sys_setsid                                   128     120      -8
sys_vhangup                                   32      19     -13
do_exit                                     1543    1526     -17
bitmap_zero                                   60      40     -20
arch_local_irq_save                          137     117     -20
release_task                                 674     652     -22
static.spin_unlock_irqrestore                308     260     -48

Signed-off-by: Joe Millenbach <jmillenbach@gmail.com>
Reviewed-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-18 16:15:27 -08:00
Arnd Bergmann
f2f0945e35 tty/console: fix warnings in drivers/tty/serial/kgdboc.c
The con_debug_leave/con_debug_enter functions are stubbed out
by defining them to (0), which causes harmless build warnings.
Using proper inline functions is the normal way to deal with
this.

Without this patch, building the ARM bcm2835_defconfig results in:

drivers/tty/serial/kgdboc.c: In function 'kgdboc_pre_exp_handler':
drivers/tty/serial/kgdboc.c:279:3: warning: statement with no effect [-Wunused-value]
drivers/tty/serial/kgdboc.c: In function 'kgdboc_post_exp_handler':
drivers/tty/serial/kgdboc.c:293:3: warning: statement with no effect [-Wunused-value]

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Anton Vorontsov <anton.vorontsov@linaro.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2012-10-12 06:37:36 -05:00
Rusty Russell
90ab5ee941 module_param: make bool parameters really bool (drivers & misc)
module_param(bool) used to counter-intuitively take an int.  In
fddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy
trick.

It's time to remove the int/unsigned int option.  For this version
it'll simply give a warning, but it'll break next kernel version.

Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-01-13 09:32:20 +10:30
Torben Hohn
ac751efa6a console: rename acquire/release_console_sem() to console_lock/unlock()
The -rt patches change the console_semaphore to console_mutex.  As a
result, a quite large chunk of the patches changes all
acquire/release_console_sem() to acquire/release_console_mutex()

This commit makes things use more neutral function names which dont make
implications about the underlying lock.

The only real change is the return value of console_trylock which is
inverted from try_acquire_console_sem()

This patch also paves the way to switching console_sem from a semaphore to
a mutex.

[akpm@linux-foundation.org: coding-style fixes]
[akpm@linux-foundation.org: make console_trylock return 1 on success, per Geert]
Signed-off-by: Torben Hohn <torbenh@gmx.de>
Cc: Thomas Gleixner <tglx@tglx.de>
Cc: Greg KH <gregkh@suse.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-01-26 10:50:06 +10:00
Kay Sievers
fbc92a3455 tty: add 'active' sysfs attribute to tty0 and console device
tty: add 'active' sysfs attribute to tty0 and console device

Userspace can query the actual virtual console, and the configured
console devices behind /dev/tt0 and /dev/console.

The last entry in the list of devices is the active device, analog
to the console= kernel command line option.

The attribute supports poll(), which is raised when the virtual
console is changed or /dev/console is reconfigured.

Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

index 0000000..b138b66
2010-12-16 16:15:34 -08:00
Jiri Slaby
a75d946f42 console: move for_each_console to linux/console.h
Move it out of printk.c so that we can use it all over the code. There
are some potential users which will be converted to that macro in next
patches.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16 12:50:17 -08:00
Jason Wessel
9261ec1a8d console: Fix compilation regression
A regression of building without CONFIG_HW_CONSOLE was introduced with
commit b45cfba4e9 (vt,console,kdb:
implement atomic console enter/leave functions).

ERROR: "con_debug_enter" [drivers/serial/kgdboc.ko] undefined!
ERROR: "vc_cons" [drivers/serial/kgdboc.ko] undefined!
ERROR: "fg_console" [drivers/serial/kgdboc.ko] undefined!
ERROR: "con_debug_leave" [drivers/serial/kgdboc.ko] undefined!

When there is no HW console the con_debug_enter and con_debug_leave
functions should have no code.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
CC: Jesse Barnes <jbarnes@virtuousgeek.org>
Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
2010-08-06 15:36:47 -05:00
Jesse Barnes
b45cfba4e9 vt,console,kdb: implement atomic console enter/leave functions
These functions allow the kernel debugger to save and restore the
state of the system console.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
CC: David Airlie <airlied@linux.ie>
CC: Andrew Morton <akpm@linux-foundation.org>
2010-08-05 09:22:30 -05:00
Kay Sievers
4995f8ef9d vcs: hook sysfs devices into object lifetime instead of "binding"
During bootup performance tracing I noticed many occurrences of
vca* device creation and removal, leading to the usual userspace
uevent processing, which are, in this case, rather pointless.

A simple test showing the kernel timing (not including all the
work userspace has to do), gives us these numbers:
  $ time for i in `seq 1000`; do echo a > /dev/tty2; done
  real    0m1.142s
  user    0m0.015s
  sys     0m0.540s

If we move the hook for the vcs* driver core devices from the
tty "binding" to the vc allocation/deallocation, which is what
the vcs* devices represent, we get the following numbers:
  $ time for i in `seq 1000`; do echo a > /dev/tty2; done
  real    0m0.152s
  user    0m0.030s
  sys     0m0.072s

Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-03-24 16:38:26 -07:00
Dave Airlie
f453ba0460 DRM: add mode setting support
Add mode setting support to the DRM layer.

This is a fairly big chunk of work that allows DRM drivers to provide
full output control and configuration capabilities to userspace.  It was
motivated by several factors:
  - the fb layer's APIs aren't suited for anything but simple
    configurations
  - coordination between the fb layer, DRM layer, and various userspace
    drivers is poor to non-existent (radeonfb excepted)
  - user level mode setting drivers makes displaying panic & oops
    messages more difficult
  - suspend/resume of graphics state is possible in many more
    configurations with kernel level support

This commit just adds the core DRM part of the mode setting APIs.
Driver specific commits using these new structure and APIs will follow.

Co-authors: Jesse Barnes <jbarnes@virtuousgeek.org>, Jakob Bornecrantz <jakob@tungstengraphics.com>
Contributors: Alan Hourihane <alanh@tungstengraphics.com>, Maarten Maathuis <madman2003@gmail.com>

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2008-12-29 17:47:23 +10:00
Markus Armbruster
9e124fe16f xen: Enable console tty by default in domU if it's not a dummy
Without console= arguments on the kernel command line, the first
console to register becomes enabled and the preferred console (the one
behind /dev/console).  This is normally tty (assuming
CONFIG_VT_CONSOLE is enabled, which it commonly is).

This is okay as long tty is a useful console.  But unless we have the
PV framebuffer, and it is enabled for this domain, tty0 in domU is
merely a dummy.  In that case, we want the preferred console to be the
Xen console hvc0, and we want it without having to fiddle with the
kernel command line.  Commit b8c2d3dfbc
did that for us.

Since we now have the PV framebuffer, we want to enable and prefer tty
again, but only when PVFB is enabled.  But even then we still want to
enable the Xen console as well.

Problem: when tty registers, we can't yet know whether the PVFB is
enabled.  By the time we can know (xenstore is up), the console setup
game is over.

Solution: enable console tty by default, but keep hvc as the preferred
console.  Change the preferred console to tty when PVFB probes
successfully, unless we've been given console kernel parameters.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-05-27 10:11:36 +02:00
Samuel Thibault
f7511d5f66 Basic braille screen reader support
This adds a minimalistic braille screen reader support.  This is meant to
be used by blind people e.g.  on boot failures or when / cannot be mounted
etc and thus the userland screen readers can not work.

[akpm@linux-foundation.org: fix exports]
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: Jiri Kosina <jikos@jikos.cz>
Cc: Dmitry Torokhov <dtor@mail.ru>
Acked-by: Alan Cox <alan@redhat.com>
Cc: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-04-30 08:29:52 -07:00
Andres Salomon
8f4ce8c32f serial: turn serial console suspend a boot rather than compile time option
Currently, there's a CONFIG_DISABLE_CONSOLE_SUSPEND that allows one to stop
the serial console from being suspended when the rest of the machine goes
to sleep.  This is incredibly useful for debugging power management-related
things; however, having it as a compile-time option has proved to be
incredibly inconvenient for us (OLPC).  There are plenty of times that we
want serial console to not suspend, but for the most part we'd like serial
console to be suspended.

This drops CONFIG_DISABLE_CONSOLE_SUSPEND, and replaces it with a kernel
boot parameter (no_console_suspend).  By default, the serial console will
be suspended along with the rest of the system; by passing
'no_console_suspend' to the kernel during boot, serial console will remain
alive during suspend.

For now, this is pretty serial console specific; further fixes could be
applied to make this work for things like netconsole.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Acked-by: "Rafael J. Wysocki" <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Cc: Nigel Cunningham <nigel@suspend2.net>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-18 14:37:19 -07:00
Antonino A. Daplas
e400b6ec4e vt/vgacon: Check if screen resize request comes from userspace
Various console drivers are able to resize the screen via the con_resize()
hook.  This hook is also visible in userspace via the TIOCWINSZ, VT_RESIZE and
VT_RESIZEX ioctl's.  One particular utility, SVGATextMode, expects that
con_resize() of the VGA console will always return success even if the
resulting screen is not compatible with the hardware.  However, this
particular behavior of the VGA console, as reported in Kernel Bugzilla Bug
7513, can cause undefined behavior if the user starts with a console size
larger than 80x25.

To work around this problem, add an extra parameter to con_resize().  This
parameter is ignored by drivers except for vgacon.  If this parameter is
non-zero, then the resize request came from a VT_RESIZE or VT_RESIZEX ioctl
and vgacon will always return success.  If this parameter is zero, vgacon will
return -EINVAL if the requested size is not compatible with the hardware.  The
latter is the more correct behavior.

With this change, SVGATextMode should still work correctly while in-kernel and
stty resize calls can expect correct behavior from vgacon.

Signed-off-by: Antonino Daplas <adaplas@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-16 09:43:20 -07:00
Robert P. J. Day
0a3021f4e2 Remove unnecessary includes of spinlock.h under include/linux
Remove the obviously unnecessary includes of <linux/spinlock.h> under the
include/linux/ directory, and fix the couple errors that are introduced as
a result of that.

Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-16 09:05:42 -07:00
Yinghai Lu
18a8bd949d serial: convert early_uart to earlycon for 8250
Beacuse SERIAL_PORT_DFNS is removed from include/asm-i386/serial.h and
include/asm-x86_64/serial.h.  the serial8250_ports need to be probed late in
serial initializing stage.  the console_init=>serial8250_console_init=>
register_console=>serial8250_console_setup will return -ENDEV, and console
ttyS0 can not be enabled at that time.  need to wait till uart_add_one_port in
drivers/serial/serial_core.c to call register_console to get console ttyS0.
that is too late.

Make early_uart to use early_param, so uart console can be used earlier.  Make
it to be bootconsole with CON_BOOT flag, so can use console handover feature.
and it will switch to corresponding normal serial console automatically.

new command line will be:
	console=uart8250,io,0x3f8,9600n8
	console=uart8250,mmio,0xff5e0000,115200n8
or
	earlycon=uart8250,io,0x3f8,9600n8
	earlycon=uart8250,mmio,0xff5e0000,115200n8

it will print in very early stage:
	Early serial console at I/O port 0x3f8 (options '9600n8')
	console [uart0] enabled
later for console it will print:
	console handover: boot [uart0] -> real [ttyS0]

Signed-off-by: <yinghai.lu@sun.com>
Cc: Andi Kleen <ak@suse.de>
Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Gerd Hoffmann <kraxel@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-16 09:05:35 -07:00
Jan Engelhardt
fa6ce9ab5f vt: add color support to the "underline" and "italic" attributes
Add color support to the "underline" and "italic" attributes as in
OpenBSD/NetBSD-style (vt220) and xterm.

Signed-off-by: Jan Engelhardt <jengelh@gmx.de>
Acked-by: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08 11:15:27 -07:00
Andrew Morton
6ae9200f2c enlarge console.name
console.name[] is eight chars, but so is "earlyvga".  So when we try to print
console->name when using earlyvga it runs off the end of the string.

Make it bigger.

Diagnosed-by: Gerd Hoffmann <kraxel@redhat.com>

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08 11:15:04 -07:00
Adrian Bunk
1b135431ab [PATCH] drivers/char/vc_screen.c: proper prototypes
Add proper prototypes for two functions in drivers/char/vc_screen.c

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-11 10:51:27 -08:00
Adrian Bunk
3cb340ecbb [PATCH] vt: proper prototypes for some console functions
This patch adds proper prototypes to header files for three console init
functions used on drivers/char/vt.c

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-10-03 08:04:12 -07:00
Rafael J. Wysocki
c8eb8b4025 [PATCH] PM: make it possible to disable console suspending
Change suspend_console() so that it waits for all consoles to flush the
remaining messages and make it possible to switch the console suspending off
with the help of a Kconfig option.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Cc: Stefan Seyfried <seife@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-09-26 08:49:03 -07:00
Antonino A. Daplas
3e795de763 [PATCH] VT binding: Add binding/unbinding support for the VT console
The framebuffer console is now able to dynamically bind and unbind from the VT
console layer.  Due to the way the VT console layer works, the drivers
themselves decide when to bind or unbind.  However, it was decided that
binding must be controlled, not by the drivers themselves, but by the VT
console layer.  With this, dynamic binding is possible for all VT console
drivers, not just fbcon.

Thus, the VT console layer will impose the following to all VT console
drivers:

- all registered VT console drivers will be entered in a private list
- drivers can register themselves to the VT console layer, but they cannot
  decide when to bind or unbind. (Exception: To maintain backwards
  compatibility, take_over_console() will automatically bind the driver after
  registration.)
- drivers can remove themselves from the list by unregistering from the VT
  console layer. A prerequisite for unregistration is that the driver must not
  be bound.

The following functions are new in the vt.c:

register_con_driver() - public function, this function adds the VT console
driver to an internal list maintained by the VT console

bind_con_driver() - private function, it binds the driver to the console

take_over_console() is changed to call register_con_driver() followed by a
bind_con_driver().  This is the only time drivers can decide when to bind to
the VT layer.  This is to maintain backwards compatibility.

unbind_con_driver() - private function, it unbinds the driver from its
console.  The vacated consoles will be taken over by the default boot console
driver.

unregister_con_driver() - public function, removes the driver from the
internal list maintained by the VT console.  It will only succeed if the
driver is currently unbound.

con_is_bound() checks if the driver is currently bound or not

give_up_console() is just a wrapper to unregister_con_driver().

There are also 3 additional functions meant to be called only by the tty layer
for sysfs control:

	vt_bind() - calls bind_con_driver()
	vt_unbind() - calls unbind_con_driver()
	vt_show_drivers() - shows the list of registered drivers

Most VT console drivers will continue to work as is, but might have problems
when unbinding or binding which should be fixable with minimal changes.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-26 09:58:33 -07:00
Michael Ellerman
76a8ad2939 [PATCH] Make printk work for really early debugging
Currently printk is no use for early debugging because it refuses to
actually print anything to the console unless
cpu_online(smp_processor_id()) is true.

The stated explanation is that console drivers may require per-cpu
resources, or otherwise barf, because the system is not yet setup
correctly.  Fair enough.

However some console drivers might be quite happy running early during
boot, in fact we have one, and so it'd be nice if printk understood that.

So I added a flag (which I would have called CON_BOOT, but that's taken)
called CON_ANYTIME, which indicates that a console is happy to be called
anytime, even if the cpu is not yet online.

Tested on a Power 5 machine, with both a CON_ANYTIME driver and a bogus
console driver that BUG()s if called while offline.  No problems AFAICT.
Built for i386 UP & SMP.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-25 10:01:05 -07:00
Linus Torvalds
557240b48e Add support for suspending and resuming the whole console subsystem
Trying to suspend/resume with console messages flying all around is
doomed to failure, when the devices that the messages are trying to
go to are being shut down.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-19 18:16:01 -07:00
Linus Torvalds
1da177e4c3 Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.

Let it rip!
2005-04-16 15:20:36 -07:00