Commit Graph

44 Commits

Author SHA1 Message Date
Steve Muckle
96a28fcc7c ANDROID: add script to fetch android kernel config fragments
The Android kernel config fragments now live in a separate repository.
To prevent others from having to search for this location, add a script
to fetch and unpack the fragments.

Update .gitignore to include these fragments.

Change-Id: If2d4a59b86e4573b0a9b3190025dfe4191870b46
Signed-off-by: Steve Muckle <smuckle@google.com>
2017-10-03 17:19:26 +00:00
Steve Muckle
faf1269d4b ANDROID: configs: remove config fragments
The kernel config fragments for Android have moved into
their own repository located at

https://android.googlesource.com/kernel/configs/

Bug: 63994171
Change-Id: I837bac54cb5c90e6a6eb0f6f0ad5c90588c1a46a
Signed-off-by: Steve Muckle <smuckle@google.com>
2017-09-15 16:17:26 -07:00
Steve Muckle
9983305173 ANDROID: configs: require SYNC_FILE
CONFIG_SYNC_FILE is required in the absence of CONFIG_SYNC.

Change-Id: Ia52488a273c9e7b3080defe8cea19afc4ad21aaa
Signed-off-by: Steve Muckle <smuckle@google.com>
2017-09-07 08:47:51 +00:00
Steve Muckle
d3b81b5a2f ANDROID: configs: remove requirement for CONFIG_SYNC
CONFIG_SYNC was removed in 4.8.

Bug: 65268824
Change-Id: If4cbacbb55c034f2dd0f0c7bb36d638d83fcdab2
Signed-off-by: Steve Muckle <smuckle@google.com>
2017-09-06 11:06:00 -07:00
Amit Pundir
8c972e1bb1 android: android-base.config: enable IP6_NF_MATCH_RPFILTER
USB tethering has a hard dependency on ip6t_rpfilter module now.
So enable IP6_NF_MATCH_RPFILTER config to make it work again,
otherwise we run into following failures when we try to enable
USB tethering on Hikey:

W IptablesRestoreController: iptables-restore process 1893 terminated status=256
E IptablesRestoreController: iptables error:
E IptablesRestoreController: ------- COMMAND -------
E IptablesRestoreController: *raw
E IptablesRestoreController: -A natctrl_raw_PREROUTING -i usb0 -m rpfilter --invert ! -s fe80::/64 -j DROP
E IptablesRestoreController: COMMIT
E IptablesRestoreController:
E IptablesRestoreController: ------- ERROR -------
E IptablesRestoreController: ip6tables-restore: line 319 failed
E IptablesRestoreController: ----------------------
E NatController: Error setting forward rules
E Tethering: [usb0] ERROR Exception enabling NAT: java.lang.IllegalStateException: command '55 nat enable
  usb0 wlan0 1 192.168.42.0/24' failed with '400 55 Nat operation failed (No such device)'

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-08-31 07:57:37 +00:00
Steve Muckle
c6b2ed395f android: configs: move quota-related configs to recommended
Bug: 64468882
Change-Id: Ifdd59c83ca52ecaca00ddcea6a003a2611bf8694
Signed-off-by: Steve Muckle <smuckle@google.com>
2017-08-10 10:33:20 -07:00
Steve Muckle
2d33335737 ANDROID: android-base.cfg: remove CONFIG_CGROUP_DEBUG
This config option is not required by Android.

Bug: 63578267
Change-Id: I163fa19183734a1a343d525e885a000a495c242e
Signed-off-by: Steve Muckle <smuckle@google.com>
2017-07-11 10:12:35 -07:00
Steve Muckle
dc7257223f ANDROID: android-base.cfg: split out arm64-specific configs
These config options are specific to arm64 so should not be universally
required.

Bug: 62523096
Change-Id: Ic5f35db71d73919f2958120f45dd717f5d05f4c5
Signed-off-by: Steve Muckle <smuckle@google.com>
2017-06-19 09:46:42 -07:00
Roberto Pereira
7827566a5f android: base-cfg: disable CONFIG_NFSD and CONFIG_NFS_FS
Signed-off-by: Roberto Pereira <rpere@google.com>
Bug:37753761
Change-Id: I686c6ff59a1754b78cf11d302621920c9a0580de
2017-06-06 16:26:02 +00:00
Chenbo Feng
9e6b5ccfb9 ANDROID: Add CGROUP_BPF to android base config
Add CONFIG_CGROUP_BPF as a default configuration in android base config
since it is used to replace XT_QTAGUID in future.

Signed-off-by: Chenbo Feng <fengc@google.com>
Bug: 30950746
Change-Id: I14f340a12b9def11057bbd0a1d94a5baf558b314
2017-05-22 15:49:40 -07:00
Steve Muckle
99c809676f ANDROID: android-base.cfg: remove spurious CONFIG_MODULES line
CONFIG_MODULES must be enabled as part of the android base kernel
configuration. There is already a line specifying the option be
enabled, but there was a pre-existing line requiring it be disabled.
Remove it.

Bug: 38224475
Change-Id: I608de5ae68f3a03d5da4e5800bbf37cc71dff8b8
Signed-off-by: Steve Muckle <smuckle@google.com>
2017-05-12 10:47:01 -07:00
Steve Muckle
3e5807cff7 ANDROID: android-base.cfg: remove NETFILTER_XT_MATCH_QUOTA2_LOG
There are currently a couple different implementations for this
functionality. Until things are unified, remove the requirement
for this kernel config.

Bug: 37749708
Change-Id: I51cf883fd737412b0b9d3a1e570f92d9aa887f86
Signed-off-by: Steve Muckle <smuckle@google.com>
2017-05-09 18:29:26 -07:00
Steve Muckle
2632fef611 ANDROID: android-base.cfg: remove USB_OTG_WAKELOCK
CONFIG_USB_OTG_WAKELOCK is currently somewhat outdated
and as such is not applicable to all Android devices. Until
it is brought up to date, remove it from the base Android
kernel configuration.

Bug: 37750863
Change-Id: I93d1d7204b46c5fe9f98455be9276a5bb38f6382
Signed-off-by: Steve Muckle <smuckle@google.com>
2017-05-07 14:17:38 -07:00
Steve Muckle
cd36d9f49f ANDROID: android-base.cfg: remove defunct options
INET6_DIAG_DESTROY and NETFILTER_TPROXY are not used anymore
so they should not be part of the base Android kernel configuration.

Bug: 37749708
Change-Id: I59d0bf7d33a3b46e1f67f93f0b8e49eebbfce89c
Signed-off-by: Steve Muckle <smuckle@google.com>
2017-05-05 20:26:13 -07:00
Lorenzo Colitti
610f179d74 android: base-cfg: enable CONFIG_INET_DIAG_DESTROY
As of Android N, this is required to close sockets when a
network disconnects.

Change-Id: I9fe81c5fc5224c17bfd8d9e236ea9e436b5971cb
(cherry picked from commit 4a15cee4bdaf764756e98cd8f03784f330459ab1)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2017-04-04 20:57:56 +02:00
Greg Kroah-Hartman
755f1ee1da ANDROID: android-base.cfg: add CONFIG_MODULES option
This adds CONFIG_MODULES, CONFIG_MODULE_UNLOAD, and CONFIG_MODVERSIONS
which are required by the O release.

Bug: 35803310
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
(cherry picked from commit 56f22e654a311f3c2492b8b3609916265fe34e20)
2017-04-04 19:59:59 +02:00
Greg Kroah-Hartman
286cc3d714 ANDROID: android-base.cfg: add CONFIG_IKCONFIG option
This adds CONFIG_IKCONFIG and CONFIG_IKCONFIG_PROC options, which are a
requirement for the O release.

Bug: 35803310
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
(cherry picked from commit 7d9280f579ff0731facb1e10f32e4a88a07f33f8)
2017-04-04 19:58:52 +02:00
Greg Kroah-Hartman
b27c43ca7a ANDROID: android-base.cfg: properly sort the file
It somehow got out of alphabetical order, fix it to make merges and
testing easier.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
(cherry picked from commit 21afcf6ff8)
2017-04-04 19:57:45 +02:00
Martijn Coenen
b3bf53b117 ANDROID: binder: add hwbinder,vndbinder to BINDER_DEVICES.
These will be required going forward.

Change-Id: Idf0593461cef88051564ae0df495c156e31048c4
Signed-off-by: Martijn Coenen <maco@google.com>
2017-04-03 22:59:23 +00:00
Sami Tolvanen
c684441b00 ANDROID: android-recommended.cfg: CONFIG_CPU_SW_DOMAIN_PAN=y
Bug: 31374660
Change-Id: Id2710a5fa2694da66d3f34cbcc0c2a58a006cec5
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
(cherry picked from commit d501126457)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2017-04-01 19:10:30 +02:00
Jin Qian
24fac41ad5 ANDROID: fix up missing android-base.cfg option
This ports 6a61b529b4 to 4.9-common, where
the the cfg option was missed.

Cc: Jin Qian <jinqian@google.com>
Bug: 34198239
(cherry picked from commit 6a61b529b4)
[the config option was missed in 4.9, this syncs it back up - gregkh]
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2017-04-01 19:02:01 +02:00
Greg Kroah-Hartman
d1bafe51ce ANDROID: remove base config rule for UID_CPUTIME
There is no such option in the 4.9 kernel, so it's a bit impossible to
require to have it be set.  Because of this, it must be removed.

This is a partial revert of 611ef60db3

Cc: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2017-04-01 18:50:17 +02:00
Max Shi
5efd3843a8 config: disable CONFIG_USELIB and CONFIG_FHANDLE
turn off the two kernel configs to disable related system ABI.

Bug: 30903194
Change-Id: I32e2ff3323135ce4b67a86f106fa9327a71fe309
Signed-off-by: Max Shi <meixuanshi@google.com>
(cherry picked from commit 2474d8bad0)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2017-03-31 17:16:02 +02:00
Sami Tolvanen
3fa5b5beb9 ANDROID: kernel/configs: recommended: CONFIG_ARM64_SW_TTBR0_PAN=y
Bug: 31432001
Change-Id: Ia72c3aa70a463d3a7f52b76e5082520aa328d29b
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-01-31 10:46:02 -08:00
Jin Qian
580a5379c7 ANDROID: kernel/configs: base: Enable QUOTA related configs
Bug: 33757366
Change-Id: Iec4f55c3ca4a16dbc8695054f481d9261c56d0f6
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-01-31 10:46:01 -08:00
Amit Pundir
9998c6978e ANDROID: kernel/configs: recommended: Enable MEMORY_STATE_TIME
Enable qcom's memory state tracking driver config
CONFIG_MEMORY_STATE_TIME in android-recommended.config

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-01-31 10:46:00 -08:00
Amit Pundir
95bb7b31fb FROMLIST: config: android-base: enable hardened usercopy and kernel ASLR
Enable CONFIG_HARDENED_USERCOPY and CONFIG_RANDOMIZE_BASE in Android
base config fragment.

Reviewed at https://android-review.googlesource.com/#/c/283659/
Reviewed at https://android-review.googlesource.com/#/c/278133/

Link: http://lkml.kernel.org/r/1481113148-29204-2-git-send-email-amit.pundir@linaro.org
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Cc: Rob Herring <rob.herring@linaro.org>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Daniel Micay <danielmicay@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2017-01-31 10:46:00 -08:00
Daniel Micay
52e45973e7 FROMLIST: config: android-recommended: disable aio support
The aio interface adds substantial attack surface for a feature that's not
being exposed by Android at all.  It's unlikely that anyone is using the
kernel feature directly either.  This feature is rarely used even on
servers.  The glibc POSIX aio calls really use thread pools.  The lack of
widespread usage also means this is relatively poorly audited/tested.

The kernel's aio rarely provides performance benefits over using a thread
pool and is quite incomplete in terms of system call coverage along with
having edge cases where blocking can occur.  Part of the performance issue
is the fact that it only supports direct io, not buffered io.  The
existing API is considered fundamentally flawed and it's unlikely it will
be expanded, but rather replaced:

https://marc.info/?l=linux-aio&m=145255815216051&w=2

Since ext4 encryption means no direct io support, kernel aio isn't even
going to work properly on Android devices using file-based encryption.

Reviewed-at: https://android-review.googlesource.com/#/c/292158/

Link: http://lkml.kernel.org/r/1481113148-29204-1-git-send-email-amit.pundir@linaro.org
Signed-off-by: Daniel Micay <danielmicay@gmail.com>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Cc: Rob Herring <rob.herring@linaro.org>
Cc: John Stultz <john.stultz@linaro.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2017-01-31 10:45:59 -08:00
Jeff Vander Stoep
abfff41cc6 ANDROID: kernel/configs: recommended: enable fstack-protector-strong
If compiler has stack protector support, set
CONFIG_CC_STACKPROTECTOR_STRONG.

Bug: 28967314
Change-Id: I588c2d544250e9e4b5082b43c237b8f85b7313ca
Signed-off-by: Jeff Vander Stoep <jeffv@google.com>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-01-31 10:45:59 -08:00
Amit Pundir
611ef60db3 ANDROID: kernel/configs: base: enable UID_CPUTIME
Enabled UID_CPUTIME and dependent PROFILING config option.

UID_CPUTIME (/proc/uid_cputime) interfaces provide amount of time a
UID's processes spent executing in user-space and kernel-space. It is
used by batterystats service.

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-01-31 10:45:58 -08:00
Jeff Vander Stoep
270ef0c00a ANDROID: kernel/configs: base: restrict access to perf events
Add:
CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y

to android-base.cfg

The kernel.perf_event_paranoid sysctl is set to 3 by default.
No unprivileged use of the perf_event_open syscall will be
permitted unless it is changed.

Bug: 29054680
Change-Id: Ie7512259150e146d8e382dc64d40e8faaa438917
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-01-31 10:45:57 -08:00
Amit Pundir
c88356f9db ANDROID: configs: base: enable configfs gadget functions
Now that Android is moving towards ConfigFS based USB gadgets,
lets enable USB_CONFIGFS and relevant Android gadget functions
instead of obsolete USB_G_ANDROID composite driver which doesn't
exist now.

Enabled following ConfigFS gadget functions:

F_FS            for ADB
F_MTP/PTP       for MTP/PTP
F_ACC           for Android USB Accessory
F_AUDIO_SRC     for USB Audio Source
F_MIDI          for MIDI, and
CONFIGFS_UEVENT for communicating USB state change notifications to userspace.

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-01-31 10:45:56 -08:00
Amit Pundir
c250cd6ebb ANDROID: configs: merge AOSP config fragments
Upstream now supports AOSP kernel config fragments:
commit 27eb6622ab ("config: add android config fragments").

This patch merge non-upstream AOSP config fragments from
android/configs/android-* of common kernel experimental/android-4.9
to kernel/configs/android-*.

Added initial set of AOSP config fragments and a README.android,
from AOSP Change-ID: I3a4883f3b04d2820e90ceb3c4d02390d6458d6ce
("android: configs: Initial commit of Android config fragments"),
to explain the purpose of Android config fragments and how to use
them to generate a device config compatible with Android.

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-01-31 10:45:56 -08:00
Rob Herring
2489a1771a config: android: enable CONFIG_SECCOMP
As of Android N, SECCOMP is required. Without it, we will get
mediaextractor error:

E /system/bin/mediaextractor: libminijail: prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER): Invalid argument

Link: http://lkml.kernel.org/r/20160908185934.18098-3-robh@kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
Acked-by: John Stultz <john.stultz@linaro.org>
Cc: Amit Pundir <amit.pundir@linaro.org>
Cc: Dmitry Shmidt <dimitrysh@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-10-11 15:06:32 -07:00
Rob Herring
d90ae51a3e config: android: set SELinux as default security mode
Android won't boot without SELinux enabled, so make it the default.

Link: http://lkml.kernel.org/r/20160908185934.18098-2-robh@kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-10-11 15:06:32 -07:00
Rob Herring
f023a3956f config: android: move device mapper options to recommended
CONFIG_MD is in recommended, but other dependent options like DM_CRYPT and
DM_VERITY options are in base.  The result is the options in base don't
get enabled when applying both base and recommended fragments.  Move all
the options to recommended.

Link: http://lkml.kernel.org/r/20160908185934.18098-1-robh@kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
Acked-by: John Stultz <john.stultz@linaro.org>
Cc: Amit Pundir <amit.pundir@linaro.org>
Cc: Dmitry Shmidt <dimitrysh@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-10-11 15:06:32 -07:00
Borislav Petkov
a2c6a235db config/android: Remove CONFIG_IPV6_PRIVACY
Option is long gone, see commit 5d9efa7ee9 ("ipv6: Remove privacy
config option.")

Link: http://lkml.kernel.org/r/20160811170340.9859-1-bp@alien8.de
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Rob Herring <robh@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-10-11 15:06:32 -07:00
Linus Torvalds
6218590bcb Merge tag 'kvm-4.9-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM updates from Radim Krčmář:
 "All architectures:
   - move `make kvmconfig` stubs from x86
   - use 64 bits for debugfs stats

  ARM:
   - Important fixes for not using an in-kernel irqchip
   - handle SError exceptions and present them to guests if appropriate
   - proxying of GICV access at EL2 if guest mappings are unsafe
   - GICv3 on AArch32 on ARMv8
   - preparations for GICv3 save/restore, including ABI docs
   - cleanups and a bit of optimizations

  MIPS:
   - A couple of fixes in preparation for supporting MIPS EVA host
     kernels
   - MIPS SMP host & TLB invalidation fixes

  PPC:
   - Fix the bug which caused guests to falsely report lockups
   - other minor fixes
   - a small optimization

  s390:
   - Lazy enablement of runtime instrumentation
   - up to 255 CPUs for nested guests
   - rework of machine check deliver
   - cleanups and fixes

  x86:
   - IOMMU part of AMD's AVIC for vmexit-less interrupt delivery
   - Hyper-V TSC page
   - per-vcpu tsc_offset in debugfs
   - accelerated INS/OUTS in nVMX
   - cleanups and fixes"

* tag 'kvm-4.9-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (140 commits)
  KVM: MIPS: Drop dubious EntryHi optimisation
  KVM: MIPS: Invalidate TLB by regenerating ASIDs
  KVM: MIPS: Split kernel/user ASID regeneration
  KVM: MIPS: Drop other CPU ASIDs on guest MMU changes
  KVM: arm/arm64: vgic: Don't flush/sync without a working vgic
  KVM: arm64: Require in-kernel irqchip for PMU support
  KVM: PPC: Book3s PR: Allow access to unprivileged MMCR2 register
  KVM: PPC: Book3S PR: Support 64kB page size on POWER8E and POWER8NVL
  KVM: PPC: Book3S: Remove duplicate setting of the B field in tlbie
  KVM: PPC: BookE: Fix a sanity check
  KVM: PPC: Book3S HV: Take out virtual core piggybacking code
  KVM: PPC: Book3S: Treat VTB as a per-subcore register, not per-thread
  ARM: gic-v3: Work around definition of gic_write_bpr1
  KVM: nVMX: Fix the NMI IDT-vectoring handling
  KVM: VMX: Enable MSR-BASED TPR shadow even if APICv is inactive
  KVM: nVMX: Fix reload apic access page warning
  kvmconfig: add virtio-gpu to config fragment
  config: move x86 kvm_guest.config to a common location
  arm64: KVM: Remove duplicating init code for setting VMID
  ARM: KVM: Support vgic-v3
  ...
2016-10-06 10:49:01 -07:00
Rob Herring
ce836c2974 kvmconfig: add virtio-gpu to config fragment
virtio-gpu is used for VMs, so add it to the kvm config.

Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Christoffer Dall <christoffer.dall@linaro.org>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Radim Krčmář" <rkrcmar@redhat.com>
Cc: kvmarm@lists.cs.columbia.edu
Cc: kvm@vger.kernel.org
[expanded "frag" to "fragment" in summary]
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
2016-09-23 01:08:13 +02:00
Rob Herring
bd6c92221d config: move x86 kvm_guest.config to a common location
kvm_guest.config is useful for KVM guests on other arches, and nothing
in it appears to be x86 specific, so just move the whole file. Kbuild
will find it in either location.

Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Christoffer Dall <christoffer.dall@linaro.org>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Radim Krčmář" <rkrcmar@redhat.com>
Cc: kvmarm@lists.cs.columbia.edu
Cc: kvm@vger.kernel.org
Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
2016-09-23 01:08:12 +02:00
Arnd Bergmann
236dec0510 kconfig: tinyconfig: provide whole choice blocks to avoid warnings
Using "make tinyconfig" produces a couple of annoying warnings that show
up for build test machines all the time:

    .config:966:warning: override: NOHIGHMEM changes choice state
    .config:965:warning: override: SLOB changes choice state
    .config:963:warning: override: KERNEL_XZ changes choice state
    .config:962:warning: override: CC_OPTIMIZE_FOR_SIZE changes choice state
    .config:933:warning: override: SLOB changes choice state
    .config:930:warning: override: CC_OPTIMIZE_FOR_SIZE changes choice state
    .config:870:warning: override: SLOB changes choice state
    .config:868:warning: override: KERNEL_XZ changes choice state
    .config:867:warning: override: CC_OPTIMIZE_FOR_SIZE changes choice state

I've made a previous attempt at fixing them and we discussed a number of
alternatives.

I tried changing the Makefile to use "merge_config.sh -n
$(fragment-list)" but couldn't get that to work properly.

This is yet another approach, based on the observation that we do want
to see a warning for conflicting 'choice' options, and that we can
simply make them non-conflicting by listing all other options as
disabled.  This is a trivial patch that we can apply independent of
plans for other changes.

Link: http://lkml.kernel.org/r/20160829214952.1334674-2-arnd@arndb.de
Link: https://storage.kernelci.org/mainline/v4.7-rc6/x86-tinyconfig/build.log
https://patchwork.kernel.org/patch/9212749/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-09-01 17:52:01 -07:00
Rob Herring
27eb6622ab config: add android config fragments
Copy the config fragments from the AOSP common kernel android-4.4
branch.  It is becoming possible to run mainline kernels with Android,
but the kernel defconfigs don't work as-is and debugging missing config
options is a pain.  Adding the config fragments into the kernel tree,
makes configuring a mainline kernel as simple as:

  make ARCH=arm multi_v7_defconfig android-base.config android-recommended.config

The following non-upstream config options were removed:

  CONFIG_NETFILTER_XT_MATCH_QTAGUID
  CONFIG_NETFILTER_XT_MATCH_QUOTA2
  CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG
  CONFIG_PPPOLAC
  CONFIG_PPPOPNS
  CONFIG_SECURITY_PERF_EVENTS_RESTRICT
  CONFIG_USB_CONFIGFS_F_MTP
  CONFIG_USB_CONFIGFS_F_PTP
  CONFIG_USB_CONFIGFS_F_ACC
  CONFIG_USB_CONFIGFS_F_AUDIO_SRC
  CONFIG_USB_CONFIGFS_UEVENT
  CONFIG_INPUT_KEYCHORD
  CONFIG_INPUT_KEYRESET

Link: http://lkml.kernel.org/r/1466708235-28593-1-git-send-email-robh@kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Amit Pundir <amit.pundir@linaro.org>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Dmitry Shmidt <dimitrysh@google.com>
Cc: Rom Lemarchand <romlem@android.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-08-02 19:35:42 -04:00
Luis R. Rodriguez
6c6685055a kconfig: add xenconfig defconfig helper
This lets you build a kernel which can support xen dom0
or xen guests on i386, x86-64 and arm64 by just using:

   make xenconfig

You can start from an allnoconfig and then switch to xenconfig.
This also splits out the options which are available currently
to be built with x86 and 'make ARCH=arm64' under a shared config.

Technically xen supports a dom0 kernel and also a guest
kernel configuration but upon review with the xen team
since we don't have many dom0 options its best to just
combine these two into one.

A few generic notes: we enable both of these:

CONFIG_INET=y
CONFIG_BINFMT_ELF=y

although technically not required given you likely will
end up with a pretty useless system otherwise.

A few architectural differences worth noting:

$ make allnoconfig; make xenconfig > /dev/null ; \
	grep XEN .config > 64-bit-config
$ make ARCH=i386 allnoconfig; make ARCH=i386 xenconfig > /dev/null; \
	grep XEN .config > 32-bit-config
$ make ARCH=arm64 allnoconfig; make ARCH=arm64 xenconfig > /dev/null; \
	grep XEN .config > arm64-config

Since the options are already split up with a generic config and
architecture specific configs you anything on the x86 configs
are known to only work right now on x86. For instance arm64 doesn't
support MEMORY_HOTPLUG yet as such although we try to enabe it
generically arm64 doesn't have it yet, so we leave the xen
specific kconfig option XEN_BALLOON_MEMORY_HOTPLUG on x86's config
file to set expecations correctly.

Then on x86 we have differences between i386 and x86-64. The difference
between 64-bit-config and 32-bit-config is you don't get XEN_MCE_LOG as
this is only supported on 64-bit. You also do not get on i386
XEN_BALLOON_MEMORY_HOTPLUG, there does not seem to be any technical
reasons to not allow this but I gave up after a few attempts.

Cc: Josh Triplett <josh@joshtriplett.org>
Cc: Borislav Petkov <bp@suse.de>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: penberg@kernel.org
Cc: levinsasha928@gmail.com
Cc: mtosatti@redhat.com
Cc: fengguang.wu@intel.com
Cc: David Vrabel <david.vrabel@citrix.com>
Cc: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: xen-devel@lists.xenproject.org
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Michal Marek <mmarek@suse.cz>
Acked-by: David Rientjes <rientjes@google.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
2015-06-16 11:04:29 +01:00
Josh Triplett
0da1d4a0b9 x86: Add "make tinyconfig" to configure the tiniest possible kernel
Since commit 5d2acfc7b9 ("kconfig: make
allnoconfig disable options behind EMBEDDED and EXPERT") in 3.15-rc1,
"make allnoconfig" disables every possible config option.

However, a few configuration options (CC_OPTIMIZE_FOR_SIZE,
OPTIMIZE_INLINING) produce a smaller kernel when turned on, and a few
choices exist (compression, highmem, allocator) for which a non-default
option produces a smaller kernel.

Add a "tinyconfig" option, which starts from allnoconfig and then sets
these options to configure the tiniest possible kernel.  This provides a
better baseline for embedded systems or efforts to reduce kernel size.

Signed-off-by: Josh Triplett <josh@joshtriplett.org>
2014-08-08 16:30:24 -07:00