Messages in this thread | | | From | Kevin Pouget <> | Date | Mon, 24 Jan 2011 09:11:23 +0100 | Subject | Re: [PATCH] Built kernel without -O2 option |
| |
I'm looking forward to testing in on ARM linux once it's ready, if it's on our roadmad :)
Kevin
(sorry if you got it twice, the first one might have been rejected because of HTML content)
On Mon, Jan 24, 2011 at 8:47 AM, Hui Zhu <teawater@gmail.com> wrote: > > https://lkml.org/lkml/2010/11/28/211 > > Update follow kernel trunk. > > I built and use it in i386 and x86_64 with 2.6.38-rc2+. > > And I will put new patch in here and > http://code.google.com/p/kgtp/downloads/list > > Thanks, > Hui > > Signed-off-by: Hui Zhu <teawater@gmail.com> > --- > > --- > Makefile | 2 ++ > arch/x86/crypto/Makefile | 6 ++++++ > arch/x86/include/asm/page_64_types.h | 4 ++++ > arch/x86/include/asm/uaccess_32.h | 4 ++++ > arch/x86/kernel/Makefile | 9 +++++++++ > arch/x86/kvm/Makefile | 6 ++++++ > arch/x86/lib/Makefile | 4 ++++ > arch/x86/power/Makefile | 4 ++++ > crypto/Makefile | 4 ++++ > drivers/char/mwave/Makefile | 4 ++++ > drivers/gpu/drm/i915/Makefile | 4 ++++ > drivers/gpu/drm/i915/i915_drv.h | 4 ++++ > drivers/gpu/drm/nouveau/Makefile | 4 ++++ > drivers/gpu/drm/radeon/Makefile | 4 ++++ > drivers/infiniband/hw/qib/Makefile | 4 ++++ > drivers/net/can/sja1000/Makefile | 4 ++++ > drivers/staging/comedi/drivers/Makefile | 4 ++++ > drivers/staging/et131x/et1310_address_map.h | 8 ++++++++ > drivers/staging/rtl8187se/ieee80211/ieee80211.h | 8 ++++++++ > drivers/staging/wlags49_h2/wl_internal.h | 9 ++++++++- > drivers/usb/gadget/f_loopback.c | 2 ++ > drivers/usb/gadget/f_sourcesink.c | 2 ++ > drivers/usb/gadget/g_zero.h | 2 ++ > drivers/usb/host/Makefile | 4 ++++ > fs/Makefile | 5 +++++ > include/linux/pagemap.h | 2 ++ > init/Kconfig | 1 + > kernel/Makefile | 4 ++++ > kernel/kfifo.c | 3 +++ > lib/Kconfig.debug | 8 ++++++++ > lib/raid6/Makefile | 6 ++++++ > mm/Makefile | 6 ++++++ > mm/memory.c | 6 ++++++ > mm/mincore.c | 2 ++ > mm/percpu.c | 4 ++++ > mm/rmap.c | 2 ++ > net/mac80211/cfg.c | 2 ++ > net/mac80211/iface.c | 8 ++++++++ > net/mac80211/mesh.h | 2 ++ > net/mac80211/rx.c | 8 ++++++++ > net/mac80211/sta_info.c | 2 ++ > net/mac80211/status.c | 2 ++ > net/mac80211/tx.c | 4 ++++ > net/netfilter/nf_conntrack_pptp.c | 3 ++- > 44 files changed, 188 insertions(+), 2 deletions(-) > > --- a/Makefile > +++ b/Makefile > @@ -541,8 +541,10 @@ all: vmlinux > ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE > KBUILD_CFLAGS += -Os > else > +ifndef CONFIG_CC_CLOSE_OPTIMIZATION > KBUILD_CFLAGS += -O2 > endif > +endif > > include $(srctree)/arch/$(SRCARCH)/Makefile > > --- a/arch/x86/crypto/Makefile > +++ b/arch/x86/crypto/Makefile > @@ -2,6 +2,12 @@ > # Arch-specific CryptoAPI modules. > # > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_fpu.o += -O2 > +CFLAGS_aesni-intel_glue.o += -O2 > +CFLAGS_ghash-clmulni-intel_glue.o += -O2 > +endif > + > obj-$(CONFIG_CRYPTO_FPU) += fpu.o > > obj-$(CONFIG_CRYPTO_AES_586) += aes-i586.o > --- a/arch/x86/include/asm/page_64_types.h > +++ b/arch/x86/include/asm/page_64_types.h > @@ -1,7 +1,11 @@ > #ifndef _ASM_X86_PAGE_64_DEFS_H > #define _ASM_X86_PAGE_64_DEFS_H > > +#ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +#define THREAD_ORDER 2 > +#else > #define THREAD_ORDER 1 > +#endif > #define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER) > #define CURRENT_MASK (~(THREAD_SIZE - 1)) > > --- a/arch/x86/include/asm/uaccess_32.h > +++ b/arch/x86/include/asm/uaccess_32.h > @@ -209,7 +209,11 @@ static inline unsigned long __must_check > if (likely(sz == -1 || sz >= n)) > n = _copy_from_user(to, from, n); > else > +#ifndef CONFIG_CC_CLOSE_OPTIMIZATION > copy_from_user_overflow(); > +#else > + n = -EFAULT; > +#endif > > return n; > } > --- a/arch/x86/kernel/Makefile > +++ b/arch/x86/kernel/Makefile > @@ -31,6 +31,15 @@ GCOV_PROFILE_hpet.o := n > GCOV_PROFILE_tsc.o := n > GCOV_PROFILE_paravirt.o := n > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_process_$(BITS).o += -O2 > +CFLAGS_entry_$(BITS).o += -O2 > +CFLAGS_traps.o += -O2 > +CFLAGS_i387.o += -O2 > +CFLAGS_xsave.o += -O2 > +CFLAGS_hpet.o += -O2 > +endif > + > obj-y := process_$(BITS).o signal.o entry_$(BITS).o > obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o > obj-y += time.o ioport.o ldt.o dumpstack.o > --- a/arch/x86/kvm/Makefile > +++ b/arch/x86/kvm/Makefile > @@ -5,6 +5,12 @@ CFLAGS_x86.o := -I. > CFLAGS_svm.o := -I. > CFLAGS_vmx.o := -I. > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_x86.o += -O2 > +CFLAGS_emulate.o += -O2 > +CFLAGS_svm.o += -O2 > +endif > + > kvm-y += $(addprefix ../../../virt/kvm/, kvm_main.o ioapic.o \ > coalesced_mmio.o irq_comm.o eventfd.o \ > assigned-dev.o) > --- a/arch/x86/lib/Makefile > +++ b/arch/x86/lib/Makefile > @@ -2,6 +2,10 @@ > # Makefile for x86 specific library files. > # > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_memmove_64.o += -O2 > +endif > + > inat_tables_script = $(srctree)/arch/x86/tools/gen-insn-attr-x86.awk > inat_tables_maps = $(srctree)/arch/x86/lib/x86-opcode-map.txt > quiet_cmd_inat_tables = GEN $@ > --- a/arch/x86/power/Makefile > +++ b/arch/x86/power/Makefile > @@ -3,5 +3,9 @@ > nostackp := $(call cc-option, -fno-stack-protector) > CFLAGS_cpu.o := $(nostackp) > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_cpu.o += -O2 > +endif > + > obj-$(CONFIG_PM_SLEEP) += cpu.o > obj-$(CONFIG_HIBERNATION) += hibernate_$(BITS).o hibernate_asm_$(BITS).o > --- a/crypto/Makefile > +++ b/crypto/Makefile > @@ -2,6 +2,10 @@ > # Cryptographic API > # > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_xor.o += -O2 > +endif > + > obj-$(CONFIG_CRYPTO) += crypto.o > crypto-y := api.o cipher.o compress.o > > --- a/drivers/char/mwave/Makefile > +++ b/drivers/char/mwave/Makefile > @@ -4,6 +4,10 @@ > # See the README file in this directory for more info. <paulsch@us.ibm.com> > # > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_smapi.o += -O2 > +endif > + > obj-$(CONFIG_MWAVE) += mwave.o > > mwave-y := mwavedd.o smapi.o tp3780i.o 3780i.o > --- a/drivers/gpu/drm/i915/Makefile > +++ b/drivers/gpu/drm/i915/Makefile > @@ -2,6 +2,10 @@ > # Makefile for the drm device driver. This driver provides support for the > # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_i915_gem.o += -O2 > +endif > + > ccflags-y := -Iinclude/drm > i915-y := i915_drv.o i915_dma.o i915_irq.o i915_mem.o \ > i915_debugfs.o \ > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -1221,7 +1221,11 @@ extern int intel_setup_gmbus(struct drm_ > extern void intel_teardown_gmbus(struct drm_device *dev); > extern void intel_gmbus_set_speed(struct i2c_adapter *adapter, int speed); > extern void intel_gmbus_force_bit(struct i2c_adapter *adapter, bool force_bit); > +#ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +static inline bool intel_gmbus_is_forced_bit(struct i2c_adapter *adapter) > +#else > extern inline bool intel_gmbus_is_forced_bit(struct i2c_adapter *adapter) > +#endif > { > return container_of(adapter, struct intel_gmbus, adapter)->force_bit; > } > --- a/drivers/gpu/drm/nouveau/Makefile > +++ b/drivers/gpu/drm/nouveau/Makefile > @@ -2,6 +2,10 @@ > # Makefile for the drm device driver. This driver provides support for the > # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_nv50_instmem.o += -O2 > +endif > + > ccflags-y := -Iinclude/drm > nouveau-y := nouveau_drv.o nouveau_state.o nouveau_channel.o nouveau_mem.o \ > nouveau_object.o nouveau_irq.o nouveau_notifier.o \ > --- a/drivers/gpu/drm/radeon/Makefile > +++ b/drivers/gpu/drm/radeon/Makefile > @@ -2,6 +2,10 @@ > # Makefile for the drm device driver. This driver provides support for the > # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_radeon_gem.o += -O2 > +endif > + > ccflags-y := -Iinclude/drm > > hostprogs-y := mkregtable > --- a/drivers/infiniband/hw/qib/Makefile > +++ b/drivers/infiniband/hw/qib/Makefile > @@ -1,5 +1,9 @@ > obj-$(CONFIG_INFINIBAND_QIB) += ib_qib.o > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_qib_iba7322.o += -O2 > +endif > + > ib_qib-y := qib_cq.o qib_diag.o qib_dma.o qib_driver.o qib_eeprom.o \ > qib_file_ops.o qib_fs.o qib_init.o qib_intr.o qib_keys.o \ > qib_mad.o qib_mmap.o qib_mr.o qib_pcie.o qib_pio_copy.o \ > --- a/drivers/net/can/sja1000/Makefile > +++ b/drivers/net/can/sja1000/Makefile > @@ -2,6 +2,10 @@ > # Makefile for the SJA1000 CAN controller drivers. > # > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_kvaser_pci.o += -O2 > +endif > + > obj-$(CONFIG_CAN_SJA1000) += sja1000.o > obj-$(CONFIG_CAN_SJA1000_ISA) += sja1000_isa.o > obj-$(CONFIG_CAN_SJA1000_PLATFORM) += sja1000_platform.o > --- a/drivers/staging/comedi/drivers/Makefile > +++ b/drivers/staging/comedi/drivers/Makefile > @@ -1,6 +1,10 @@ > # Makefile for individual comedi drivers > # > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_cb_pcidas64.o += -O2 > +endif > + > # Comedi "helper" modules > obj-$(CONFIG_COMEDI) += pcm_common.o > > --- a/drivers/staging/et131x/et1310_address_map.h > +++ b/drivers/staging/et131x/et1310_address_map.h > @@ -212,12 +212,20 @@ struct global_regs { /* Location: */ > #define INDEX10(x) ((x) & ET_DMA10_MASK) > #define INDEX4(x) ((x) & ET_DMA4_MASK) > > +#ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +static inline void add_10bit(u32 *v, int n) > +#else > extern inline void add_10bit(u32 *v, int n) > +#endif > { > *v = INDEX10(*v + n) | (*v & ET_DMA10_WRAP); > } > > +#ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +static inline void add_12bit(u32 *v, int n) > +#else > extern inline void add_12bit(u32 *v, int n) > +#endif > { > *v = INDEX12(*v + n) | (*v & ET_DMA12_WRAP); > } > --- a/drivers/staging/rtl8187se/ieee80211/ieee80211.h > +++ b/drivers/staging/rtl8187se/ieee80211/ieee80211.h > @@ -1221,7 +1221,11 @@ static inline void *ieee80211_priv(struc > return ((struct ieee80211_device *)netdev_priv(dev))->priv; > } > > +#ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +static inline int ieee80211_is_empty_essid(const char *essid, int essid_len) > +#else > extern inline int ieee80211_is_empty_essid(const char *essid, int essid_len) > +#endif > { > /* Single white space is for Linksys APs */ > if (essid_len == 1 && essid[0] == ' ') > @@ -1263,7 +1267,11 @@ extern inline int ieee80211_is_valid_mod > return 0; > } > > +#ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +static inline int ieee80211_get_hdrlen(u16 fc) > +#else > extern inline int ieee80211_get_hdrlen(u16 fc) > +#endif > { > int hdrlen = 24; > > --- a/drivers/staging/wlags49_h2/wl_internal.h > +++ b/drivers/staging/wlags49_h2/wl_internal.h > @@ -1022,8 +1022,11 @@ static inline void wl_unlock(struct wl_p > /********************************************************************/ > /* Interrupt enable disable functions */ > /********************************************************************/ > - > +#ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +static inline void wl_act_int_on(struct wl_private *lp) > +#else > extern inline void wl_act_int_on(struct wl_private *lp) > +#endif > { > /* > * Only do something when the driver is handling > @@ -1035,7 +1038,11 @@ extern inline void wl_act_int_on(struct > } > } > > +#ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +static inline void wl_act_int_off(struct wl_private *lp) > +#else > extern inline void wl_act_int_off(struct wl_private *lp) > +#endif > { > /* > * Only do something when the driver is handling > --- a/drivers/usb/gadget/f_loopback.c > +++ b/drivers/usb/gadget/f_loopback.c > @@ -376,10 +376,12 @@ int __init loopback_add(struct usb_compo > sourcesink_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP; > > /* support OTG systems */ > +#ifdef CONFIG_USB_OTG > if (gadget_is_otg(cdev->gadget)) { > loopback_driver.descriptors = otg_desc; > loopback_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP; > } > +#endif > > return usb_add_config(cdev, &loopback_driver, loopback_bind_config); > } > --- a/drivers/usb/gadget/f_sourcesink.c > +++ b/drivers/usb/gadget/f_sourcesink.c > @@ -526,10 +526,12 @@ int __init sourcesink_add(struct usb_com > sourcesink_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP; > > /* support OTG systems */ > +#ifdef CONFIG_USB_OTG > if (gadget_is_otg(cdev->gadget)) { > sourcesink_driver.descriptors = otg_desc; > sourcesink_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP; > } > +#endif > > return usb_add_config(cdev, &sourcesink_driver, sourcesink_bind_config); > } > --- a/drivers/usb/gadget/g_zero.h > +++ b/drivers/usb/gadget/g_zero.h > @@ -10,7 +10,9 @@ > > /* global state */ > extern unsigned buflen; > +#ifdef CONFIG_USB_OTG > extern const struct usb_descriptor_header *otg_desc[]; > +#endif > > /* common utilities */ > struct usb_request *alloc_ep_req(struct usb_ep *ep); > --- a/drivers/usb/host/Makefile > +++ b/drivers/usb/host/Makefile > @@ -4,6 +4,10 @@ > > ccflags-$(CONFIG_USB_DEBUG) := -DDEBUG > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_ehci-hcd.o += -O2 > +endif > + > isp1760-y := isp1760-hcd.o isp1760-if.o > > fhci-y := fhci-hcd.o fhci-hub.o fhci-q.o > --- a/fs/Makefile > +++ b/fs/Makefile > @@ -13,6 +13,11 @@ obj-y := open.o read_write.o file_table. > pnode.o drop_caches.o splice.o sync.o utimes.o \ > stack.o fs_struct.o statfs.o > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_compat_ioctl.o += -O2 > +CFLAGS_binfmt_elf.o += -O2 > +endif > + > ifeq ($(CONFIG_BLOCK),y) > obj-y += buffer.o bio.o block_dev.o direct-io.o mpage.o ioprio.o > else > --- a/include/linux/pagemap.h > +++ b/include/linux/pagemap.h > @@ -289,8 +289,10 @@ static inline pgoff_t linear_page_index( > unsigned long address) > { > pgoff_t pgoff; > +#ifdef CONFIG_HUGETLBFS > if (unlikely(is_vm_hugetlb_page(vma))) > return linear_hugepage_index(vma, address); > +#endif > pgoff = (address - vma->vm_start) >> PAGE_SHIFT; > pgoff += vma->vm_pgoff; > return pgoff >> (PAGE_CACHE_SHIFT - PAGE_SHIFT); > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -886,6 +886,7 @@ endif > > config CC_OPTIMIZE_FOR_SIZE > bool "Optimize for size" > + depends on !CC_CLOSE_OPTIMIZATION > default y > help > Enabling this option will pass "-Os" instead of "-O2" to gcc > --- a/kernel/Makefile > +++ b/kernel/Makefile > @@ -2,6 +2,10 @@ > # Makefile for the linux kernel. > # > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_sched.o += -O2 > +endif > + > obj-y = sched.o fork.o exec_domain.o panic.o printk.o \ > cpu.o exit.o itimer.o time.o softirq.o resource.o \ > sysctl.o sysctl_binary.o capability.o ptrace.o timer.o user.o \ > --- a/kernel/kfifo.c > +++ b/kernel/kfifo.c > @@ -402,6 +402,9 @@ unsigned int __kfifo_max_r(unsigned int > return max; > return len; > } > +#ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +EXPORT_SYMBOL(__kfifo_max_r); > +#endif > > #define __KFIFO_PEEK(data, out, mask) \ > ((data)[(out) & (mask)]) > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -136,6 +136,14 @@ config DEBUG_SECTION_MISMATCH > - Enable verbose reporting from modpost to help solving > the section mismatches reported. > > +config CC_CLOSE_OPTIMIZATION > + bool "Close GCC optimization" > + default n > + help > + Enabling this option will let gcc build kernel without "-O2". > + > + If unsure, say N. > + > config DEBUG_KERNEL > bool "Kernel debugging" > help > --- a/lib/raid6/Makefile > +++ b/lib/raid6/Makefile > @@ -1,3 +1,9 @@ > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_mmx.o += -O2 > +CFLAGS_sse1.o += -O2 > +CFLAGS_sse2.o += -O2 > +endif > + > obj-$(CONFIG_RAID6_PQ) += raid6_pq.o > > raid6_pq-y += algos.o recov.o tables.o int1.o int2.o int4.o \ > --- a/mm/Makefile > +++ b/mm/Makefile > @@ -2,6 +2,12 @@ > # Makefile for the linux memory manager. > # > > +ifdef CONFIG_CC_CLOSE_OPTIMIZATION > +CFLAGS_slob.o += -O2 > +CFLAGS_slab.o += -O2 > +CFLAGS_slub.o += -O2 > +endif > + > mmu-y := nommu.o > mmu-$(CONFIG_MMU) := fremap.o highmem.o madvise.o memory.o mincore.o \ > mlock.o mmap.o mprotect.o mremap.o msync.o rmap.o \ > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -1317,8 +1317,10 @@ struct page *follow_page(struct vm_area_ > spin_unlock(&mm->page_table_lock); > wait_split_huge_page(vma->anon_vma, pmd); > } else { > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > page = follow_trans_huge_pmd(mm, address, > pmd, flags); > +#endif > spin_unlock(&mm->page_table_lock); > goto out; > } > @@ -2775,7 +2777,9 @@ static int do_swap_page(struct mm_struct > > if (ksm_might_need_to_copy(page, vma, address)) { > swapcache = page; > +#ifdef CONFIG_KSM > page = ksm_does_need_to_copy(page, vma, address); > +#endif > > if (unlikely(!page)) { > ret = VM_FAULT_OOM; > @@ -3314,11 +3318,13 @@ int handle_mm_fault(struct mm_struct *mm > pmd_t orig_pmd = *pmd; > barrier(); > if (pmd_trans_huge(orig_pmd)) { > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > if (flags & FAULT_FLAG_WRITE && > !pmd_write(orig_pmd) && > !pmd_trans_splitting(orig_pmd)) > return do_huge_pmd_wp_page(mm, vma, address, > pmd, orig_pmd); > +#endif > return 0; > } > } > --- a/mm/mincore.c > +++ b/mm/mincore.c > @@ -155,10 +155,12 @@ static void mincore_pmd_range(struct vm_ > do { > next = pmd_addr_end(addr, end); > if (pmd_trans_huge(*pmd)) { > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > if (mincore_huge_pmd(vma, pmd, addr, next, vec)) { > vec += (next - addr) >> PAGE_SHIFT; > continue; > } > +#endif > /* fall through */ > } > if (pmd_none_or_clear_bad(pmd)) > --- a/mm/percpu.c > +++ b/mm/percpu.c > @@ -1886,7 +1886,11 @@ void __init percpu_init_late(void) > int *map; > const size_t size = PERCPU_DYNAMIC_EARLY_SLOTS * sizeof(map[0]); > > +#ifdef CONFIG_CC_CLOSE_OPTIMIZATION > + BUG_ON(size > PAGE_SIZE); > +#else > BUILD_BUG_ON(size > PAGE_SIZE); > +#endif > > map = pcpu_mem_alloc(size); > BUG_ON(!map); > --- a/mm/rmap.c > +++ b/mm/rmap.c > @@ -515,6 +515,7 @@ int page_referenced_one(struct page *pag > referenced++; > > if (unlikely(PageTransHuge(page))) { > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > pmd_t *pmd; > > spin_lock(&mm->page_table_lock); > @@ -524,6 +525,7 @@ int page_referenced_one(struct page *pag > pmdp_clear_flush_young_notify(vma, address, pmd)) > referenced++; > spin_unlock(&mm->page_table_lock); > +#endif > } else { > pte_t *pte; > spinlock_t *ptl; > --- a/net/mac80211/cfg.c > +++ b/net/mac80211/cfg.c > @@ -699,6 +699,7 @@ static void sta_apply_parameters(struct > params->ht_capa, > &sta->sta.ht_cap); > > +#ifdef CONFIG_MAC80211_MESH > if (ieee80211_vif_is_mesh(&sdata->vif) && params->plink_action) { > switch (params->plink_action) { > case PLINK_ACTION_OPEN: > @@ -709,6 +710,7 @@ static void sta_apply_parameters(struct > break; > } > } > +#endif > } > > static int ieee80211_add_station(struct wiphy *wiphy, struct net_device *dev, > --- a/net/mac80211/iface.c > +++ b/net/mac80211/iface.c > @@ -620,8 +620,10 @@ static void ieee80211_teardown_sdata(str > __skb_queue_purge(&sdata->fragments[i].skb_list); > sdata->fragment_next = 0; > > +#ifdef CONFIG_MAC80211_MESH > if (ieee80211_vif_is_mesh(&sdata->vif)) > mesh_rmc_free(sdata); > +#endif > > flushed = sta_info_flush(local, sdata); > WARN_ON(flushed); > @@ -797,7 +799,9 @@ static void ieee80211_iface_work(struct > case NL80211_IFTYPE_MESH_POINT: > if (!ieee80211_vif_is_mesh(&sdata->vif)) > break; > +#ifdef CONFIG_MAC80211_MESH > ieee80211_mesh_rx_queued_mgmt(sdata, skb); > +#endif > break; > default: > WARN(1, "frame for unexpected interface type"); > @@ -818,7 +822,9 @@ static void ieee80211_iface_work(struct > case NL80211_IFTYPE_MESH_POINT: > if (!ieee80211_vif_is_mesh(&sdata->vif)) > break; > +#ifdef CONFIG_MAC80211_MESH > ieee80211_mesh_work(sdata); > +#endif > break; > default: > break; > @@ -872,8 +878,10 @@ static void ieee80211_setup_sdata(struct > ieee80211_ibss_setup_sdata(sdata); > break; > case NL80211_IFTYPE_MESH_POINT: > +#ifdef CONFIG_MAC80211_MESH > if (ieee80211_vif_is_mesh(&sdata->vif)) > ieee80211_mesh_init_sdata(sdata); > +#endif > break; > case NL80211_IFTYPE_MONITOR: > sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP; > --- a/net/mac80211/mesh.h > +++ b/net/mac80211/mesh.h > @@ -189,8 +189,10 @@ int ieee80211_fill_mesh_addresses(struct > int ieee80211_new_mesh_header(struct ieee80211s_hdr *meshhdr, > struct ieee80211_sub_if_data *sdata, char *addr4or5, > char *addr6); > +#ifdef CONFIG_MAC80211_MESH > int mesh_rmc_check(u8 *addr, struct ieee80211s_hdr *mesh_hdr, > struct ieee80211_sub_if_data *sdata); > +#endif > bool mesh_matches_local(struct ieee802_11_elems *ie, > struct ieee80211_sub_if_data *sdata); > void mesh_ids_set_default(struct ieee80211_if_mesh *mesh); > --- a/net/mac80211/rx.c > +++ b/net/mac80211/rx.c > @@ -453,6 +453,14 @@ static int ieee80211_get_mmie_keyidx(str > } > > > +#ifndef CONFIG_MAC80211_MESH > +static int mesh_rmc_check(u8 *sa, struct ieee80211s_hdr *mesh_hdr, > + struct ieee80211_sub_if_data *sdata) > +{ > + return 0; > +} > +#endif > + > static ieee80211_rx_result > ieee80211_rx_mesh_check(struct ieee80211_rx_data *rx) > { > --- a/net/mac80211/sta_info.c > +++ b/net/mac80211/sta_info.c > @@ -470,8 +470,10 @@ int sta_info_insert_rcu(struct sta_info > rcu_read_lock(); > mutex_unlock(&local->sta_mtx); > > +#ifdef CONFIG_MAC80211_MESH > if (ieee80211_vif_is_mesh(&sdata->vif)) > mesh_accept_plinks_update(sdata); > +#endif > > return 0; > out_free: > --- a/net/mac80211/status.c > +++ b/net/mac80211/status.c > @@ -247,8 +247,10 @@ void ieee80211_tx_status(struct ieee8021 > } > > rate_control_tx_status(local, sband, sta, skb); > +#ifdef CONFIG_MAC80211_MESH > if (ieee80211_vif_is_mesh(&sta->sdata->vif)) > ieee80211s_update_metric(local, sta, skb); > +#endif > > if (!(info->flags & IEEE80211_TX_CTL_INJECTED) && acked) > ieee80211_frame_acked(sta, skb); > --- a/net/mac80211/tx.c > +++ b/net/mac80211/tx.c > @@ -1638,6 +1638,7 @@ static void ieee80211_xmit(struct ieee80 > hdr = (struct ieee80211_hdr *) skb->data; > info->control.vif = &sdata->vif; > > +#ifdef CONFIG_MAC80211_MESH > if (ieee80211_vif_is_mesh(&sdata->vif) && > ieee80211_is_data(hdr->frame_control) && > !is_multicast_ether_addr(hdr->addr1)) > @@ -1646,6 +1647,7 @@ static void ieee80211_xmit(struct ieee80 > rcu_read_unlock(); > return; > } > +#endif > > ieee80211_set_qos_hdr(local, skb); > ieee80211_tx(sdata, skb, false); > @@ -2322,7 +2324,9 @@ struct sk_buff *ieee80211_beacon_get_tim > *pos++ = WLAN_EID_SSID; > *pos++ = 0x0; > > +#ifdef CONFIG_MAC80211_MESH > mesh_mgmt_ies_add(skb, sdata); > +#endif > } else { > WARN_ON(1); > goto out; > --- a/net/netfilter/nf_conntrack_pptp.c > +++ b/net/netfilter/nf_conntrack_pptp.c > @@ -67,7 +67,8 @@ void > struct nf_conntrack_expect *exp) __read_mostly; > EXPORT_SYMBOL_GPL(nf_nat_pptp_hook_expectfn); > > -#if defined(DEBUG) || defined(CONFIG_DYNAMIC_DEBUG) > +#if defined(DEBUG) || defined(CONFIG_DYNAMIC_DEBUG) \ > + || defined(CONFIG_CC_CLOSE_OPTIMIZATION) > /* PptpControlMessageType names */ > const char *const pptp_msg_name[] = { > "UNKNOWN_MESSAGE", -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |