summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2022-03-09features/tpm: fix tpm-2.0 cfg namesStefan Herbrechtsmeier
Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-03-08features/tpm: split into tpm-1.2, tpm-2.0, tpm-2.0-crb and vtpm featureStefan Herbrechtsmeier
Split the tpm feature into individual features as the tpm feature is only usable on x86 because of its dependencies: Config 'TCG_NSC' has the following Direct dependencies (TCG_NSC=n): X86(undefined/n) && TCG_TPM(=y) Config 'TCG_ATMEL' has the following Direct dependencies (TCG_ATMEL=n): PPC64(undefined/n) || HAS_IOPORT_MAP(=n) (=n) && TCG_TPM(=y) Config 'TCG_INFINEON' has the following Direct dependencies (TCG_INFINEON=n): PNP(=n) && TCG_TPM(=y) Config 'TCG_CRB' has the following Direct dependencies (TCG_CRB=n): ACPI(undefined/n) && TCG_TPM(=y) Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-03-06sched/isolation: really align nohz_full with rcu_nocbsBruce Ashfield
1/2 [ Author: Paul Gortmaker Email: paul.gortmaker@windriver.com Subject: sched/isolation: really align nohz_full with rcu_nocbs Date: Fri, 4 Mar 2022 09:42:19 -0500 At the moment it is currently possible to sneak a core into nohz_full that lies between nr_possible and NR_CPUS - but you won't "see" it because cpumask_pr_args() implicitly hides anything above nr_cpu_ids. This becomes a problem when the nohz_full CPU set doesn't contain at least one other valid nohz CPU - in which case we end up with the tick_nohz_full_running set and no tick core specified, which trips an endless sequence of WARN() and renders the machine unusable. I inadvertently opened the door for this when fixing an overly restrictive nohz_full conditional in the below Fixes: commit - and then courtesy of my optimistic ACPI reporting nr_possible of 64 (the default Kconfig for NR_CPUS) and the not-so helpful implict filtering done by cpumask_pr_args, I unfortunately did not spot it during my testing. So here, I don't rely on what was printed anymore, but code exactly what our restrictions should be in order to be aligned with rcu_nocbs - which was the original goal. Since the checks lie in "__init" code it is largely free for us to do this anyway. Building with NOHZ_FULL and NR_CPUS=128 on an otherwise defconfig, and booting with "rcu_nocbs=8-127 nohz_full=96-127" on the same 16 core T5500 Dell machine now results in the following (only relevant lines shown): smpboot: Allowing 64 CPUs, 48 hotplug CPUs setup_percpu: NR_CPUS:128 nr_cpumask_bits:128 nr_cpu_ids:64 nr_node_ids:2 housekeeping: kernel parameter 'nohz_full=' or 'isolcpus=' contains nonexistent CPUs. housekeeping: kernel parameter 'nohz_full=' or 'isolcpus=' has no valid CPUs. rcu: RCU restricting CPUs from NR_CPUS=128 to nr_cpu_ids=64. rcu: Note: kernel parameter 'rcu_nocbs=', 'nohz_full', or 'isolcpus=' contains nonexistent CPUs. rcu: Offload RCU callbacks from CPUs: 8-63. One can see both new housekeeping checks are triggered in the above. The same invalid boot arg combination would have previously resulted in an infinitely scrolling mix of WARN from all cores per tick on this box. Link: https://lore.kernel.org/lkml/20211206145950.10927-2-paul.gortmaker@windriver.com Fixes: 915a2bc3c6b7 ("sched/isolation: Reconcile rcu_nocbs= and nohz_full=") Cc: Paul E. McKenney <paulmck@kernel.org> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@kernel.org> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ] 2/2 [ Author: Paul Gortmaker Email: paul.gortmaker@windriver.com Subject: tick/nohz: WARN_ON --> WARN_ON_ONCE to prevent console saturation Date: Fri, 4 Mar 2022 09:42:20 -0500 While running some testing on code that happened to allow the variable tick_nohz_full_running to get set but with no "possible" NOHZ cores to back up that setting, I tripped this WARN: if (unlikely(tick_do_timer_cpu == TICK_DO_TIMER_NONE)) WARN_ON(tick_nohz_full_running); The console was overwhemled with an endless stream of one WARN per tick per core and there was no way to even see what was going on w/o using a serial console to capture it and then trace it back to this guy. Changing it to ONCE reveals that we get the message we need in a civilized fashion, and the system can limp along until rebooted. Link: https://lore.kernel.org/lkml/20211206145950.10927-3-paul.gortmaker@windriver.com Fixes: 08ae95f4fd3b ("nohz_full: Allow the boot CPU to be nohz_full") Cc: Nicholas Piggin <npiggin@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@kernel.org> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ] Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-03-03riscv32: drop MAXPHYSMEM_128GBBruce Ashfield
The MAXPHYSMEM config options have been removed upstream via the following commit, so we drop our setting. commit 6250ecf5ba42292b652cd01c9fcb2239010c5c44 Author: Alexandre Ghiti <alexandre.ghiti@canonical.com> Date: Mon Jan 17 10:57:16 2022 +0100 riscv: Get rid of MAXPHYSMEM configs commit db1503d355a79d1d4255a9996f20e72848b74a56 upstream. CONFIG_MAXPHYSMEM_* are actually never used, even the nommu defconfigs selecting the MAXPHYSMEM_2GB had no effects on PAGE_OFFSET since it was preempted by !MMU case right before. In addition, the move of the kernel mapping at the end of the address space broke the use of MAXPHYSMEM_2G with MMU since it defines PAGE_OFFSET at the same address as the kernel mapping. Reported-by: Geert Uytterhoeven <geert@linux-m68k.org> Fixes: 2bfc6cd81bd1 ("riscv: Move kernel mapping outside of linear mapping") Signed-off-by: Alexandre Ghiti <alexandre.ghiti@canonical.com> Tested-by: Geert Uytterhoeven <geert@linux-m68k.org> Tested-by: Conor Dooley <Conor.Dooley@microchip.com> Cc: stable@vger.kernel.org Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-02-20kver: bump to v5.17-rc5Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-02-15riscv64: drop MAXPHYSMEM_128GBBruce Ashfield
The MAXPHYSMEM config options have been removed upstream via the following commit, so we drop our setting. commit 6250ecf5ba42292b652cd01c9fcb2239010c5c44 Author: Alexandre Ghiti <alexandre.ghiti@canonical.com> Date: Mon Jan 17 10:57:16 2022 +0100 riscv: Get rid of MAXPHYSMEM configs commit db1503d355a79d1d4255a9996f20e72848b74a56 upstream. CONFIG_MAXPHYSMEM_* are actually never used, even the nommu defconfigs selecting the MAXPHYSMEM_2GB had no effects on PAGE_OFFSET since it was preempted by !MMU case right before. In addition, the move of the kernel mapping at the end of the address space broke the use of MAXPHYSMEM_2G with MMU since it defines PAGE_OFFSET at the same address as the kernel mapping. Reported-by: Geert Uytterhoeven <geert@linux-m68k.org> Fixes: 2bfc6cd81bd1 ("riscv: Move kernel mapping outside of linear mapping") Signed-off-by: Alexandre Ghiti <alexandre.ghiti@canonical.com> Tested-by: Geert Uytterhoeven <geert@linux-m68k.org> Tested-by: Conor Dooley <Conor.Dooley@microchip.com> Cc: stable@vger.kernel.org Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-02-03patches: v5.17 prepBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-02-02dev: prep for v5.17Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-01-30qemuarm64: Add tiny ktype to qemuarm64 bspAlejandro Enedino Hernandez Samaniego
Allow LINUX_KERNEL_TYPE=tiny to be built on qemuarm64. Reduces size of kernel Image from 20MB to 9MB using reference config. Bootlog: [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd070] [ 0.000000] Linux version 5.15.14-yocto-tiny (oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37.20210721) #1 SMP PREEMPT Thu Jan 13 04:02:36 UTC 2022 [ 0.000000] Machine model: linux,dummy-virt [ 0.000000] Memory limited to 256MB [ 0.000000] efi: UEFI not found. [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000040000000-0x000000004fffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000040000000-0x000000004fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000004fffffff] [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv0.2 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: Trusted OS migration not required [ 0.000000] percpu: Embedded 16 pages/cpu s25432 r8192 d31912 u65536 [ 0.000000] Detected PIPT I-cache on CPU0 [ 0.000000] CPU features: detected: Spectre-v2 [ 0.000000] CPU features: detected: Spectre-v4 [ 0.000000] CPU features: detected: ARM erratum 832075 [ 0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 64512 [ 0.000000] Kernel command line: root=/dev/vda rw mem=256M ip=192.168.7.4::192.168.7.3:255.255.255.0::eth0:off:8.8.8.8 console=ttyAMA0 console=hvc0 [ 0.000000] Dentry cache hash table entries: 32768 (order: 6, 262144 bytes, linear) [ 0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] Memory: 246208K/262144K available (5760K kernel code, 784K rwdata, 1576K rodata, 1024K init, 326K bss, 15936K reserved, 0K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4. [ 0.000000] Trampoline variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] Root IRQ handler: gic_handle_irq [ 0.000000] GICv2m: range[mem 0x08020000-0x08020fff], SPI[80:143] [ 0.000000] random: get_random_bytes called from start_kernel+0x3d0/0x628 with crng_init=0 [ 0.000000] arch_timer: cp15 timer(s) running at 62.50MHz (virt). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1cd42e208c, max_idle_ns: 881590405314 ns [ 0.000105] sched_clock: 56 bits at 62MHz, resolution 16ns, wraps every 4398046511096ns [ 0.007727] Console: colour dummy device 80x25 [ 0.009317] Calibrating delay loop (skipped), value calculated using timer frequency.. 125.00 BogoMIPS (lpj=250000) [ 0.009502] pid_max: default: 32768 minimum: 301 [ 0.011186] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear) [ 0.011252] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear) [ 0.039464] /cpus/cpu-map: empty cluster [ 0.050167] rcu: Hierarchical SRCU implementation. [ 0.053712] EFI services will not be available. [ 0.055150] smp: Bringing up secondary CPUs ... [ 0.063065] Detected PIPT I-cache on CPU1 [ 0.066324] CPU1: Booted secondary processor 0x0000000001 [0x411fd070] [ 0.083365] Detected PIPT I-cache on CPU2 [ 0.084264] CPU2: Booted secondary processor 0x0000000002 [0x411fd070] [ 0.090920] Detected PIPT I-cache on CPU3 [ 0.092074] CPU3: Booted secondary processor 0x0000000003 [0x411fd070] [ 0.095353] smp: Brought up 1 node, 4 CPUs [ 0.095648] SMP: Total of 4 processors activated. [ 0.095889] CPU features: detected: 32-bit EL0 Support [ 0.097045] CPU features: detected: CRC32 instructions [ 0.105713] CPU: All CPU(s) started at EL1 [ 0.106600] alternatives: patching kernel code [ 0.145248] devtmpfs: initialized [ 0.182216] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [ 0.182756] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) [ 0.186134] DMI not present or invalid. [ 0.193390] NET: Registered PF_NETLINK/PF_ROUTE protocol family [ 0.200324] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations [ 0.200629] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations [ 0.200761] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations [ 0.205730] ASID allocator initialised with 65536 entries [ 0.205981] Serial: AMBA PL011 UART driver [ 0.245235] 9000000.pl011: ttyAMA0 at MMIO 0x9000000 (irq = 47, base_baud = 0) is a PL011 rev1 [ 0.255985] printk: console [ttyAMA0] enabled [ 0.354051] iommu: Default domain type: Translated [ 0.354371] iommu: DMA domain TLB invalidation policy: strict mode [ 0.356797] vgaarb: loaded [ 0.359924] SCSI subsystem initialized [ 0.361219] usbcore: registered new interface driver usbfs [ 0.362709] usbcore: registered new interface driver hub [ 0.363212] usbcore: registered new device driver usb [ 0.364144] pps_core: LinuxPPS API ver. 1 registered [ 0.364345] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.364717] PTP clock support registered [ 0.383530] clocksource: Switched to clocksource arch_sys_counter [ 0.473183] NET: Registered PF_INET protocol family [ 0.476165] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear) [ 0.486396] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear) [ 0.487278] TCP established hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.487734] TCP bind hash table entries: 2048 (order: 3, 32768 bytes, linear) [ 0.488089] TCP: Hash tables configured (established 2048 bind 2048) [ 0.489933] UDP hash table entries: 256 (order: 1, 8192 bytes, linear) [ 0.490386] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear) [ 0.493290] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 0.503104] RPC: Registered named UNIX socket transport module. [ 0.503347] RPC: Registered udp transport module. [ 0.503467] RPC: Registered tcp transport module. [ 0.503579] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.503828] PCI: CLS 0 bytes, default 64 [ 0.516042] workingset: timestamp_bits=62 max_order=16 bucket_order=0 [ 0.547737] NFS: Registering the id_resolver key type [ 0.549141] Key type id_resolver registered [ 0.549304] Key type id_legacy registered [ 0.552567] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250) [ 0.552926] io scheduler mq-deadline registered [ 0.553171] io scheduler kyber registered [ 0.559454] pci-host-generic 4010000000.pcie: host bridge /pcie@10000000 ranges: [ 0.560699] pci-host-generic 4010000000.pcie: IO 0x003eff0000..0x003effffff -> 0x0000000000 [ 0.561649] pci-host-generic 4010000000.pcie: MEM 0x0010000000..0x003efeffff -> 0x0010000000 [ 0.561938] pci-host-generic 4010000000.pcie: MEM 0x8000000000..0xffffffffff -> 0x8000000000 [ 0.563091] pci-host-generic 4010000000.pcie: Memory resource size exceeds max for 32 bits [ 0.563887] pci-host-generic 4010000000.pcie: ECAM at [mem 0x4010000000-0x401fffffff] for [bus 00-ff] [ 0.565617] pci-host-generic 4010000000.pcie: PCI host bridge to bus 0000:00 [ 0.566035] pci_bus 0000:00: root bus resource [bus 00-ff] [ 0.566264] pci_bus 0000:00: root bus resource [io 0x0000-0xffff] [ 0.566430] pci_bus 0000:00: root bus resource [mem 0x10000000-0x3efeffff] [ 0.567091] pci_bus 0000:00: root bus resource [mem 0x8000000000-0xffffffffff] [ 0.569360] pci 0000:00:00.0: [1b36:0008] type 00 class 0x060000 [ 0.575448] pci 0000:00:01.0: [1af4:1005] type 00 class 0x00ff00 [ 0.575935] pci 0000:00:01.0: reg 0x10: [io 0x0000-0x001f] [ 0.576192] pci 0000:00:01.0: reg 0x20: [mem 0x00000000-0x00003fff 64bit pref] [ 0.577373] pci 0000:00:02.0: [1b36:000d] type 00 class 0x0c0330 [ 0.577580] pci 0000:00:02.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit] [ 0.579551] pci 0000:00:03.0: [1af4:1050] type 00 class 0x038000 [ 0.579758] pci 0000:00:03.0: reg 0x14: [mem 0x00000000-0x00000fff] [ 0.579943] pci 0000:00:03.0: reg 0x20: [mem 0x00000000-0x00003fff 64bit pref] [ 0.584454] pci 0000:00:01.0: BAR 4: assigned [mem 0x8000000000-0x8000003fff 64bit pref] [ 0.585022] pci 0000:00:02.0: BAR 0: assigned [mem 0x8000004000-0x8000007fff 64bit] [ 0.585291] pci 0000:00:03.0: BAR 4: assigned [mem 0x8000008000-0x800000bfff 64bit pref] [ 0.585511] pci 0000:00:03.0: BAR 1: assigned [mem 0x10000000-0x10000fff] [ 0.585698] pci 0000:00:01.0: BAR 0: assigned [io 0x1000-0x101f] [ 0.587871] pci 0000:00:02.0: enabling device (0000 -> 0002) [ 0.601053] virtio-pci 0000:00:01.0: enabling device (0000 -> 0003) [ 0.604895] virtio-pci 0000:00:03.0: enabling device (0000 -> 0002) [ 0.621515] [drm] pci: virtio-gpu-pci detected at 0000:00:03.0 [ 0.622520] [drm] features: -virgl +edid -resource_blob -host_visible [ 0.623067] random: fast init done [ 0.626111] random: crng init done [ 0.629956] [drm] number of scanouts: 1 [ 0.630134] [drm] number of cap sets: 0 [ 0.654903] [drm] Initialized virtio_gpu 0.1.0 0 for virtio3 on minor 0 [ 0.716373] virtio_gpu virtio3: [drm] drm_plane_enable_fb_damage_clips() not called [ 0.767855] Console: switching to colour frame buffer device 128x48 [ 0.793492] virtio_gpu virtio3: [drm] fb0: virtio_gpudrmfb frame buffer device [ 0.799671] cacheinfo: Unable to detect cache hierarchy for CPU 0 [ 0.820170] brd: module loaded [ 0.845200] virtio_blk virtio0: [vda] 22268 512-byte logical blocks (11.4 MB/10.9 MiB) [ 0.878366] xhci_hcd 0000:00:02.0: xHCI Host Controller [ 0.879511] xhci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1 [ 0.885819] xhci_hcd 0000:00:02.0: hcc params 0x00087001 hci version 0x100 quirks 0x0000000000000010 [ 0.899982] hub 1-0:1.0: USB hub found [ 0.901162] hub 1-0:1.0: 4 ports detected [ 0.908986] xhci_hcd 0000:00:02.0: xHCI Host Controller [ 0.909162] xhci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 2 [ 0.909419] xhci_hcd 0000:00:02.0: Host supports USB 3.0 SuperSpeed [ 0.910829] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. [ 0.913705] hub 2-0:1.0: USB hub found [ 0.914138] hub 2-0:1.0: 4 ports detected [ 0.924386] rtc-pl031 9010000.pl031: registered as rtc0 [ 0.924946] rtc-pl031 9010000.pl031: setting system clock to 2022-01-27T19:55:25 UTC (1643313325) [ 0.928230] usbcore: registered new interface driver usbhid [ 0.928405] usbhid: USB HID core driver [ 0.940553] NET: Registered PF_INET6 protocol family [ 0.968191] Segment Routing with IPv6 [ 0.968627] In-situ OAM (IOAM) with IPv6 [ 0.969455] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 0.974404] NET: Registered PF_PACKET protocol family [ 0.976095] Key type dns_resolver registered [ 0.977583] NET: Registered PF_VSOCK protocol family [ 0.988876] printk: console [netcon0] enabled [ 0.989063] netconsole: network logging started [ 1.041136] IP-Config: Complete: [ 1.041584] device=eth0, hwaddr=52:54:00:12:34:04, ipaddr=192.168.7.4, mask=255.255.255.0, gw=192.168.7.3 [ 1.043089] host=192.168.7.4, domain=, nis-domain=(none) [ 1.043628] bootserver=255.255.255.255, rootserver=255.255.255.255, rootpath= [ 1.043835] nameserver0=8.8.8.8 [ 1.184446] usb 1-1: new high-speed USB device number 2 using xhci_hcd [ 1.249259] EXT4-fs (vda): recovery complete [ 1.253360] EXT4-fs (vda): mounted filesystem with ordered data mode. Opts: (null). Quota mode: disabled. [ 1.254218] VFS: Mounted root (ext4 filesystem) on device 254:0. [ 1.258140] devtmpfs: mounted [ 1.293410] Freeing unused kernel memory: 1024K [ 1.311148] Run /sbin/init as init process [ 1.381864] input: QEMU QEMU USB Tablet as /devices/platform/4010000000.pcie/pci0000:00/0000:00:02.0/usb1/1-1/1-1:1.0/0003:0627:0001.0001/input/input0 [ 1.383627] hid-generic 0003:0627:0001.0001: input: USB HID v0.01 Mouse [QEMU QEMU USB Tablet] on usb-0000:00:02.0-1/input0 INIT: version 3.01 booting [ 1.511666] usb 1-2: new high-speed USB device number 3 using xhci_hcd [ 1.686137] input: QEMU QEMU USB Keyboard as /devices/platform/4010000000.pcie/pci0000:00/0000:00:02.0/usb1/1-2/1-2:1.0/0003:0627:0001.0002/input/input1 [ 1.752883] hid-generic 0003:0627:0001.0002: input: USB HID v1.11 Keyboard [QEMU QEMU USB Keyboard] on usb-0000:00:02.0-2/input0 [ 1.888713] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready Starting udev [ 3.472356] udevd[86]: starting version 3.2.10 [ 3.575386] udevd[87]: starting eudev-3.2.10 [ 5.305739] EXT4-fs (vda): re-mounted. Opts: (null). Quota mode: disabled. INIT: Entering runlevel: 5 Configuring network interfaces... ip: RTNETLINK answers: File exists Starting syslogd/klogd: done Poky (Yocto Project Reference Distro) 3.4+snapshot-50409b5f1bef8670efad7126e6be564ffbbdec98 qemuarm64 /dev/ttyAMA0 qemuarm64 login:root root@qemuarm64:~# uname -ar Linux qemuarm64 5.15.14-yocto-tiny #1 SMP PREEMPT Thu Jan 13 04:02:36 UTC 2022 aarch64 GNU/Linux Signed-off-by: Alejandro Enedino Hernandez Samaniego <alhe@linux.microsoft.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-01-24x86_64_defconfig: Fix warningsBruce Ashfield
1/1 [ Author: Naveen Saini Email: naveen.kumar.saini@intel.com Subject: x86_64_defconfig: Fix warnings Date: Fri, 21 Jan 2022 16:46:21 +0800 Configure CONFIG_EEEPC_LAPTOP & CONFIG_SND_SEQ_DUMMY as modules, because dependencies are configured as modules. [NOTE]: 'CONFIG_EEEPC_LAPTOP' last val (y) and .config val (m) do not match [NOTE]: 'CONFIG_SND_SEQ_DUMMY' last val (y) and .config val (m) do not match Added dependency configurations: CONFIG_HID_LOGITECH for CONFIG_LOGITECH_FF CONFIG_NET_VENDOR_DEC for CONFIG_NET_TULIP CONFIG_IOMMU_SUPPORT for CONFIG_AMD_IOOMU & CONFIG_INTEL_IOMMU CONFIG_NET_VENDOR_NVIDIA for CONFIG_FORCEDETH Config 'LOGITECH_FF' has the following Direct dependencies (LOGITECH_FF=n): HID_LOGITECH(=n) && HID(=y) && INPUT(=y) Parent dependencies are: HID_LOGITECH [n] HID [y] INPUT [y] [INFO]: config 'CONFIG_LOGITECH_FF' was set, but it wasn't assignable, check (parent) dependencies Config 'NET_TULIP' has the following Direct dependencies (NET_TULIP=n): PCI(=y) || EISA(=n) || CARDBUS(=y) (=y) && NET_VENDOR_DEC(=n) && ETHERNET(=y) && NETDEVICES(=y) Parent dependencies are: NET_VENDOR_DEC [n] ETHERNET [y] EISA [n] PCI [y] CARDBUS [y] NETDEVICES [y] [INFO]: config 'CONFIG_NET_TULIP' was set, but it wasn't assignable, check (parent) dependencies Config 'FORCEDETH' has the following Direct dependencies (FORCEDETH=n): PCI(=y) && NET_VENDOR_NVIDIA(=n) && ETHERNET(=y) && NETDEVICES(=y) Parent dependencies are: NETDEVICES [y] PCI [y] NET_VENDOR_NVIDIA [n] ETHERNET [y] [INFO]: config 'CONFIG_FORCEDETH' was set, but it wasn't assignable, check (parent) dependencies Tested with qemux86-64 machine: $ oe-selftest --run-tests kerneldevelopment.KernelConfigs Disabled debug configurations. Yocto-kernel-cahce have seperate debug configurations. Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ] Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-01-24cfg: fix x86_64 defconfig warningsNaveen Saini
CONFIG_BLK_DEV_FD has dependeny on BLK_DEV, which is not enabled, as result throws warning. [NOTE]: 'CONFIG_BLK_DEV_FD' last val (m) and .config val (n) do not match Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-01-12arm: defconfig: drop unused POWER_AVS optionBruce Ashfield
1/2 [ Author: Ross Burton Email: ross@burtonini.com Subject: arm: defconfig: drop unused POWER_AVS option Date: Tue, 11 Jan 2022 12:02:35 +0000 Commit 785b5bb41b0a ("PM: AVS: Drop the avs directory and the corresponding Kconfig") moved AVS code to SOC-specific folders, and removed corresponding Kconfig from drivers/power, leaving original POWER_AVS config option enabled in some defconfigs. Remove the options, which have no references in the tree anymore. Fixes: 785b5bb41b0a ("PM: AVS: Drop the avs directory and the corresponding Kconfig") Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ] 2/2 [ Author: Ross Burton Email: ross@burtonini.com Subject: arm64: defconfig: cleanup config options Date: Tue, 11 Jan 2022 12:02:36 +0000 arm64: defconfig: drop unused POWER_AVS option Commit 785b5bb41b0a ("PM: AVS: Drop the avs directory and the corresponding Kconfig") moved AVS code to SOC-specific folders, and removed corresponding Kconfig from drivers/power, leaving original POWER_AVS config option enabled in some defconfigs. Remove the options, which have no references in the tree anymore. arm64: defconfig: set CONFIG_USB_CONN_GPIO=y Since 10a7b37b5b ("arm64: Update default configuration") PHY_TEGRA_XUSB is set to y. That option needs USB_CONN_GPIO to also be y not m, so set USB_CONN_GPIO explicitly to y to reflect reality. arm64: defconfig: remove obsolete CONFIG_ARCH_AGILEX and CONFIG_ARCH_N5X These config options were removed in 4a9a1a5602 ("arm64: socfpga: merge Agilex and N5X into ARCH_INTEL_SOCFPGA"), so remove them from the defconfig. arm64: defconfig: don't set CONFIG_ACPI_APEI_PCIEAER Since 8c8ff55 ("PCI/AER: Don't select CONFIG_PCIEAER by default"), PCIe Advanced Error Reporting isn't enabled by default.. As this means just enabling CONFIG_CPI_APEI_PCIEAR does not have an effect, remove it from the defconfig for clarity. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ] Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-01-04cfg/debug: add kcov kernel configsOvidiu Panait
KCOV exposes kernel code coverage information in a form suitable for coverage-guided fuzzing. This debug feature can be enabled to add support for kernel fuzzing (with tools such as syzkaller). Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
2022-01-04preempt-rt.scc: arm should come after ftraceAlexander Kanavin
arm.cfg unsets CONFIG_FUNCTION_GRAPH_TRACER and sets CONFIG_UNWINDER_ARM; this needs to happen after ftrace, otherwise this warning occurs in arm(32) builds: ====== [NOTE]: 'CONFIG_UNWINDER_ARM' last val (y) and .config val (n) do not match [INFO]: CONFIG_UNWINDER_ARM : n [INFO]: raw config text: config UNWINDER_ARM bool "ARM EABI stack unwinder" select ARM_UNWIND depends on AEABI && !FUNCTION_GRAPH_TRACER && <choice> help This option enables stack unwinding support in the kernel using the information automatically generated by the compiler. The resulting kernel image is slightly bigger but the performance is not affected. Currently, this feature only works with EABI compilers. Config 'UNWINDER_ARM' has the following Direct dependencies (UNWINDER_ARM=n): AEABI(=y) && !FUNCTION_GRAPH_TRACER(=y) (=n) && <choice> Parent dependencies are: choice [y] FUNCTION_GRAPH_TRACER [y] AEABI [y] [INFO]: config 'CONFIG_UNWINDER_ARM' was set, but it wasn't assignable, check (parent) dependencies ====== standard.scc already has this in the correct order. Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2022-01-04drivers-zynq.cfg: update CONFIG_NET_CADENCE optionAlexander Kanavin
It was renamed in https://github.com/torvalds/linux/commit/0df5f81c481e383f37f9f97eb014c885898b1773 Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-12-27xilinx-zynqmp: add event device support for zynqmpQuanyang Wang
Since graphic system use /dev/input/eventX as input device, we need enable CONFIG_INPUT_EVDEV kernel option. Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-12-13intel-x86: preempt-rt: Disable CONFIG_NUMA_BALANCINGHe Zhe
CONFIG_NUMA_BALANCING has been set to depend on !PREEMPT_RT according to https://git.yoctoproject.org/linux-yocto-dev/commit/?h=standard/preempt-rt/base&id=554b0f3ca6f4948fdbab5f199858d902061318d0 and thus causes the following warnings on all preempt branches. [NOTE]: 'CONFIG_NUMA_BALANCING' last val (y) and .config val (n) do not match [NOTE]: 'CONFIG_NUMA_BALANCING_DEFAULT_ENABLED' last val (y) and .config val (n) do not match Signed-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-12-02kver: bump to v5.16-rc3Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-12-02aufs: resync to v5.15Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-11-30aufs: fix against 5.15Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-11-23version: updating config/patches for v5.16Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-11-16cfg/remoteproc: Modify REMOTEPROC from'M' to'Y'Xiaolei Wang
The REMOTEPROC has been changed to bool type by commit 6334150e9a36 ("remoteproc: don't allow modular build"), so we should set it to "Y" instead of "M". Signed-off-by: Xiaolei Wang <xiaolei.wang@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-11-15beaglebone: Enable the new cpsw switch drvKevin Hao
The kernel commit c477358e66a3 ("ARM: dts: am335x-bone: switch to new cpsw switch drv") has switched to the new cpsw switch driver in the dts, so we need to enable the corresponding driver by default. We also keep the old switch driver to be compatible with the old version kernel. Signed-off-by: Kevin Hao <kexin.hao@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-11-03standard: drop CONFIG_MANDATORY_FILE_LOCKINGBruce Ashfield
commit f7e33bdbd6d1bdf9c3df8bba5abcf3399f957ac3 [fs: remove mandatory file locking support] removed mandatory file locking support from the kernel. We no longer need to explicitly disable it. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-11-02kver: bump to v5.15Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-10-20yaffs: replace IS_ERR with IS_ERR_OR_NULL to check both ERR and NULLBruce Ashfield
1/1 [ Author: Meng Li Email: Meng.Li@windriver.com Subject: yaffs: replace IS_ERR with IS_ERR_OR_NULL to check both ERR and NULL Date: Thu, 21 Oct 2021 09:27:20 +0800 When run below command to mount a yaffs2 FS to nor flash, there is kernel panic as below: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020 ...... Internal error: Oops: 96000004 [#1] PREEMPT SMP Modules linked in: CPU: 1 PID: 335 Comm: mount Not tainted 5.10.73-yocto-standard #1 ...... Call trace: yaffs_internal_read_super.constprop.0+0x24c/0x6fc yaffs2_internal_read_super_mtd+0x28/0x40 mount_bdev+0x1cc/0x200 ...... el0_sync_handler+0x1a4/0x1b0 el0_sync+0x180/0x1c0 Because in function yaffs_get_mtd_device(), it check the type of mtd device. If it is not NAND flash, NULL will be returned. This causes kernel panic if the ret value is not checked whether it is NULL or not. So, replace IS_ERR with IS_ERR_OR_NULL to check both ERR and NULL. Signed-off-by: Meng Li <Meng.Li@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ] Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-10-18common-pc*/qemux86*: set CONFIG_ATA_PIIX as built-inBruce Ashfield
Since the IDE options were made obselete in the kernel, and the PATA driver is the replacement, we haven't had one of the commonly used qemu boot devices enabled in our kernel by default. We change CONFIG_ATA_PIIX to built-in, to re-enable use cases that boot from default qemu 'hardware'. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-10-15hardware classfication: update classifications for 5.14+Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-10-13kver: bump to v5.15-rc5Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-10-12features/media: remove configs for drivers in stagingAnuj Mittal
av7110 and sp8870 have been moved to staging and will be removed in future. Remove the configs so we don't get warnings when including media-pci-capture.scc feature which doesn't enable STAGING_MEDIA explicitly. https://github.com/torvalds/linux/commit/989cf18ed08f8b6efd1d1592d1d0108fa09b98f5 https://github.com/torvalds/linux/commit/b998a59f82f1152605eae4f7617778020549e81a Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-10-08cfg/vmware-guest.cfg: Fix warnings with vmware-guest.cfgJate Sujjavanich
Add SCSI_FC_ATTRS for FUSION_FC Add NET_FC for FUSION_LAN Remove SCSI LOGGING configuration options no longer in kernel Signed-off-by: Jate Sujjavanich <jatedev@gmail.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-26bsp/qemuarm*-gfx: use virtio graphicsJon Mason
Remove Bochs and start using virtio graphics Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-23README: Update mail addressJon Mason
linux-yocto@yoctoproject.org bounces with a: I'm sorry to have to inform you that your message could not be delivered to one or more recipients. It's attached below. Update the email address to the new one to correct the issue. Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-23aufs: adjust to v5.15 fs changesBruce Ashfield
1/1 [ Author: Bruce Ashfield Email: bruce.ashfield@gmail.com Subject: aufs: adjust to v5.15 fs changes Date: Thu, 23 Sep 2021 16:43:13 -0400 Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ] Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-23aufs5: kbuildBruce Ashfield
1/5 [ Author: Bruce Ashfield Email: bruce.ashfield@gmail.com Subject: aufs5: kbuild Date: Thu, 23 Sep 2021 11:06:29 -0400 Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ] 2/5 [ Author: Bruce Ashfield Email: bruce.ashfield@gmail.com Subject: aufs5: base Date: Thu, 23 Sep 2021 11:07:01 -0400 Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ] 3/5 [ Author: Bruce Ashfield Email: bruce.ashfield@gmail.com Subject: aufs5: mmap Date: Thu, 23 Sep 2021 11:08:04 -0400 Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ] 4/5 [ Author: Bruce Ashfield Email: bruce.ashfield@gmail.com Subject: aufs5: standalone Date: Thu, 23 Sep 2021 11:08:37 -0400 Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ] 5/5 [ Author: Bruce Ashfield Email: bruce.ashfield@gmail.com Subject: aufs5: core Date: Thu, 23 Sep 2021 11:09:25 -0400 Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> ] Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-23prep: v5.15 patch refreshesBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-21meta: update hardware and non-hardware buckets for 5.14Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-20kver: set to v5.14.5Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-20config: drop remaining CONFIG_IDE optionsBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-19cfg: drop CONFIG_DRM_KMS_FB_HELPERBruce Ashfield
commit 91185d55b32e7e377f15fb46a62b216f8d3038d4 Author: Thomas Zimmermann <tzimmermann@suse.de> Date: Thu Apr 15 13:00:40 2021 +0200 drm: Remove DRM_KMS_FB_HELPER Kconfig option It's only used by DRM_FBDEV_EMULATION, so inline it there. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20210415110040.23525-5-tzimmermann@suse.de Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-19config: drop CONFIG_IDE*Bruce Ashfield
Drop references to config_ide, since the driver has been removed from the 5.14 kernel: commit b7fb14d3ac63117e0e8beabe75f4ea52051fbe3a Author: Christoph Hellwig <hch@lst.de> Date: Wed Jun 16 15:46:58 2021 +0200 ide: remove the legacy ide driver The legay ide driver has been replace with libata starting in 2003 and has been scheduled for removal for a while. Finally kill it off so that we can start cleaning up various bits of cruft it forced on the block layer. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-19patches: drop integrated patches for 5.14Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-02bsp/intel-x86: add NVMe hardware monitoring supportYongxin Liu
Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-02bsp/intel-x86: remove cfg80211 related overridesYongxin Liu
Fix the following warning: platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 cfg80211: failed to load regulatory.db If CFG80211 is a built-in driver, it will try to load regulatory.db from /lib/firmware. But file system may not be ready at that time. So remove the override and make CFG80211 a loadable module. Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-02features/media-platform: enable MEDIA_PLATFORM_SUPPORTAnuj Mittal
Commit 06b93644f4d10 (media: Kconfig: add an option to filter in/out platform drivers) adds an option to filter out platform drivers. Enable MEDIA_PLATFORM_SUPPORT when that feature is requested. Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-09-02qemu: fix do_kernel_configcheck warning about IDE_GD_ATA in qemu bspZqiang
WARNING: do_kernel_configcheck: [kernel config]: specified values did not make it into the kernel's final configuration: [NOTE]: 'CONFIG_IDE_GD_ATA' last val (y) and .config val (n) do not match [INFO]: CONFIG_IDE_GD_ATA : n [INFO]: raw config text: Config 'IDE_GD_ATA' has the following Direct dependencies (IDE_GD_ATA=n): n Parent dependencies are: [INFO]: config 'CONFIG_IDE_GD_ATA' was set, but it wasn't assignable, check (parent) dependencies remove CONFIG_IDE_GD_ATA from common-pc-drivers.cfg Signed-off-by: Zqiang <qiang.zhang@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-08-24bcm-2xxx-rpi: remove config CONFIG_MFD_ARIZONAMeng Li
Remove config CONFIG_MFD_ARIZONA, because it will be selected when enable CONFIG_MFD_ARIZONA_I2C. Signed-off-by: Meng Li <Meng.Li@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-08-22kver: bump to v5.14-rc7Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-08-22features/zram: addTrevor Woerner
Add support for enabling zram in the kernel. The zram module creates RAM-based block devices named /dev/zram<id> (<id> = 0, 1, ...). Pages written to these disks are compressed and stored in memory itself. These disks allow very fast I/O and compression provides good amounts of memory savings. Some of the use cases include /tmp storage, use as swap disks, various caches under /var and maybe many more. Different compression algorithms can be selected which give trade-offs between speed and compression. Signed-off-by: Trevor Woerner <twoerner@gmail.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-08-20ktypes/standard: disable CONFIG_MANDATORY_FILE_LOCKINGBruce Ashfield
As discussed here: https://lore.kernel.org/lkml/YRcyqbpVqwwq3P6n@casper.infradead.org/ And also disabled by other distros (ref: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1940392) There is a push to remove mandatory file locking. By disabling this option in our kernel types, we'll be prepared for the change. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>