[PATCH] 2.6.24-rc1-git9 - Missing include file in kallsyms.h
The Build with randconfig fails with following error with the 2.6.24-rc4-git9 include/linux/kallsyms.h:56: error: ‘NULL’ undeclared (first use in this function) include/linux/kallsyms.h:56: error: (Each undeclared identifier is reported only once include/linux/kallsyms.h:56: error: for each function it appears in.) make[2]: *** [arch/powerpc/platforms/cell/spu_callbacks.o] Error 1 make[1]: *** [arch/powerpc/platforms/cell] Error 2 make: *** [arch/powerpc/platforms] Error 2 Signed-off-by: Kamalesh Babulal [EMAIL PROTECTED] -- diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h index f73de6f..82de2fb 100644 --- a/include/linux/kallsyms.h +++ b/include/linux/kallsyms.h @@ -6,6 +6,7 @@ #define _LINUX_KALLSYMS_H #include linux/errno.h +#include linux/stddef.h #define KSYM_NAME_LEN 128 #define KSYM_SYMBOL_LEN (sizeof(%s+%#lx/%#lx [%s]) + (KSYM_NAME_LEN - 1) + \ -- Thanks Regards, Kamalesh Babulal, Linux Technology Center, IBM, ISTL. ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH 1/2] USB: Rework OHCI PPC OF for new bindings
Valentine Barshak wrote: Rework ohci-ppc-of driver to use big-endian property instead of ohci-be/ohci-le compatible strings. Also remove unnecessary user-selectable USB_OHCI_HCD_PPC_OF_LE/BE stuff, because USB_OHCI_BIG_ENDIAN_DESC/MMIO should always be enabled for ppc and USB_OHCI_LITTLE_ENDIAN is selected for USB_OHCI_HCD_PCI by default. I don't find those options useless. If you think the defauts are not the best change them but I find these options relevant. You don't always want the support for BE on PPC ... if the only controller you have is pci ... or if you're on a soc that use little endian ... Can we just make sure real quickly that the changing of compatibles doesn't break existing, not-easily-flashable firmwares? I tend to agree with Matt here. Do we really need to stop supporting the old values right now ? IMHO, Changing to the usb-ohci with a property sounds fine to me if you really want to but don't drop support for the old values. They are not bad. Change the dts to reflect the fact that the new way is preferred and a comment somewhere in the code and that should be fine. Sylvain ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: PPC405GP Walnut irq patch
On Wed, 31 Oct 2007 13:52:53 -0400 Steven A. Falco [EMAIL PROTECTED] wrote: Could you redo the patch with just this bit and send it again? josh Ok - this one is based off the Linus tree, and follows your style of one interrupt per line, with a comment indicating which one it is. Looks good. Thanks! josh Signed-off-by: Steve Falco sfalco at harris.com diff --git a/arch/powerpc/boot/dts/walnut.dts b/arch/powerpc/boot/dts/walnut.dts index fa681f5..754fa39 100644 --- a/arch/powerpc/boot/dts/walnut.dts +++ b/arch/powerpc/boot/dts/walnut.dts @@ -122,7 +122,9 @@ device_type = network; compatible = ibm,emac-405gp, ibm,emac; interrupt-parent = UIC0; - interrupts = 9 4 f 4; + interrupts = + f 4 /* Ethernet */ + 9 4 /* Ethernet Wake Up */; local-mac-address = []; /* Filled in by zImage */ reg = ef600800 70; mal-device = MAL; ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH v4] FEC - fast ethernet controller for mpc52xx
+ while (bcom_buffer_done(priv-tx_dmatsk)) { + struct sk_buff *skb; + skb = bcom_retrieve_buffer(priv-tx_dmatsk, NULL, NULL); + /* Here (and in rx routines) would be a good place for + * dma_unmap_single(), but bcom doesn't return bcom_bd of the + * finished transfer, and _unmap is empty on this platfrom. + */ + Of course bestcomm let's you get back the bcom_bd ... What do you think your second NULL parameter is for ? Give it a pointer to a bcom_bd * and it will fill your pointer for you to point to the bd you just got back. Sylvain ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH 1/2] USB: Rework OHCI PPC OF for new bindings
[EMAIL PROTECTED] wrote: USB_OHCI_BIG_ENDIAN_DESC/MMIO should always be enabled for ppc and USB_OHCI_LITTLE_ENDIAN is selected for USB_OHCI_HCD_PCI by default. I don't find those options useless. If you think the defauts are not the best change them but I find these options relevant. You don't always want the support for BE on PPC ... if the only controller you have is pci ... or if you're on a soc that use little endian ... If I have just a pci controller, and don't expect to to find/use the built-in one, why should I need the ohci-ppc-of driver then? I'm not aware of a soc that uses little endian, but I think that LE/BE still shouldn't be selected manually. It should be autoselected then, the same way we select LE for PCI for example. Do we really need to stop supporting the old values right now ? I've resubmitted the patches with the old mpc52xx bindings support. Keeping old ohci-be/le stuff along with the new bindings doesn't look good to me. However, I think we can live with the old ones and maybe find a better way for OF ohci support later. IMHO, Changing to the usb-ohci with a property sounds fine to me if you really want to but don't drop support for the old values. They are not bad. Change the dts to reflect the fact that the new way is preferred and a comment somewhere in the code and that should be fine. OK Sylvain Thanks, Valentine. ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: libfdt: Handle v16 and re-ordered trees for r/w
So, like, the other day David Gibson mumbled: Currently all the read/write functions in libfdt require that the given tree be v17, and further, that the tree has the memory reservation block, structure block and strings block stored in that physical order. This patch eases these constraints, by making fdt_open_int() reorder the blocks, and/or convert the tree to v17, so that it will then be ready for the other read-write functions. It also extends fdt_pack() to actually remove any gaps between blocks that might be present. Signed-off-by: David Gibson [EMAIL PROTECTED] Applied. jdl ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Please pull from 'for-2.6.24' branch of 4xx tree
Hi Paul, Please pull from: master.kernel.org:/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx.git for-2.6.24 to pick up a few items for 2.6.24. Mostly bugfixes, but also some documentation updates and a few bootwrapper changes. Particularly important is the TLB flushing fix from Ben. josh Benjamin Herrenschmidt (2): [POWERPC] 4xx: Fix 4xx flush_tlb_page() [POWERPC] 4xx: Deal with 44x virtually tagged icache Grant Likely (5): [POWERPC] bootwrapper: Allow wrapper script to execute verbosely [POWERPC] bootwrapper: Bail from script if any command fails [POWERPC] Device tree bindings for Xilinx devices [POWERPC] Uartlite: speed up console output [POWERPC] ppc405 Fix arithmatic rollover bug when memory size under 16M Roel Kluin (1): [POWERPC] allocation fix in ppc/platforms/4xx/luan.c Steven A. Falco (1): [POWERPC] 4xx: Fix Walnut DTS interrupt property Valentine Barshak (1): [POWERPC] 4xx: Workaround for the 440EP(x)/GR(x) processors identical PVR Documentation/powerpc/booting-without-of.txt | 261 ++ arch/powerpc/boot/dts/walnut.dts |4 +- arch/powerpc/boot/wrapper| 32 ++-- arch/powerpc/kernel/cputable.c | 36 +++- arch/powerpc/kernel/entry_32.S | 23 +++ arch/powerpc/kernel/misc_32.S| 32 +++- arch/powerpc/kernel/prom.c | 12 ++ arch/powerpc/mm/40x_mmu.c| 17 +- arch/powerpc/mm/44x_mmu.c|1 + arch/powerpc/mm/fault.c |2 +- arch/powerpc/mm/mmu_decl.h |4 +- arch/ppc/kernel/entry.S | 23 +++ arch/ppc/kernel/misc.S | 31 +++- arch/ppc/mm/44x_mmu.c|1 + arch/ppc/mm/4xx_mmu.c| 17 +- arch/ppc/mm/fault.c |2 +- arch/ppc/mm/mmu_decl.h |4 +- arch/ppc/platforms/4xx/ebony.c |2 +- arch/ppc/platforms/4xx/luan.c|7 +- arch/ppc/platforms/4xx/ocotea.c |2 +- arch/ppc/platforms/4xx/taishan.c |2 +- drivers/serial/uartlite.c| 10 +- include/asm-powerpc/pgtable-ppc32.h | 13 ++ include/asm-powerpc/tlbflush.h | 12 +- 24 files changed, 472 insertions(+), 78 deletions(-) ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: dtc: Move tree checking code to checks.c
So, like, the other day David Gibson mumbled: This patch moves the dtc code for checking the device tree its processing into a new checks.c. The tree accessor functions from livetree.c which the checks use are exported and added to dtc.h. Another small step towards a flexible checking architecture. Signed-off-by: David Gibson [EMAIL PROTECTED] Applied. jdl ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [linux-usb-devel] [PATCH 1/2] USB: Rework OHCI PPC OF for new bindings
Sylvain Munaut wrote: Valentine Barshak wrote: Rework ohci-ppc-of driver to use big-endian property instead of ohci-be/ohci-le compatible strings. Also remove unnecessary user-selectable USB_OHCI_HCD_PPC_OF_LE/BE stuff, because USB_OHCI_BIG_ENDIAN_DESC/MMIO should always be enabled for ppc and USB_OHCI_LITTLE_ENDIAN is selected for USB_OHCI_HCD_PCI by default. I don't find those options useless. If you think the defauts are not the best change them but I find these options relevant. You don't always want the support for BE on PPC ... if the only controller you have is pci ... or if you're on a soc that use little endian ... USB_OHCI_LITTLE_ENDIAN and USB_OHCI_BIG_ENDIAN are useful and I don't see anyone wanting to remove them. However, if all of the chips supported by the ohci-ppc-of driver are big-endian, then USB_OHCI_HCD_PPC_OF_LE and USB_OHCI_HCD_PPC_OF_BE are not needed. Just select USB_OHCI_BIG_ENDIAN when the ohci-ppc-of driver is selected, in the same way that we always select USB_OHCI_LITTLE_ENDIAN when the ohci-pci driver is selected. -Dale ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: libfdt as its own repo and submodule of dtc?
On Wed, 2007-10-31 at 17:56, David Gibson wrote: I'm not too keen on using a git feature that's more recent than the git in most distros. I'm going to consider this argument null and void on two fronts: You don't use git for patch generation and submission anyway. The Linux Community happily embraced and used early versions of git, installing it themselves if needed, long before it was available in _any_ distro. Thanks, jdl ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
[PATCH 1/2] 4xx: Add 405EX CPU type needed for EMAC support on Kilauea
For EMAC support, 405EX needs to be defined to enable the corresponding EMAC features (IBM_NEW_EMAC_EMAC4, etc.). Signed-off-by: Stefan Roese [EMAIL PROTECTED] --- A small new EMAC patch will follow in a short while, to enable 405EX support in the driver. arch/powerpc/platforms/40x/Kconfig |6 ++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/platforms/40x/Kconfig b/arch/powerpc/platforms/40x/Kconfig index 8f6699f..3ece0fd 100644 --- a/arch/powerpc/platforms/40x/Kconfig +++ b/arch/powerpc/platforms/40x/Kconfig @@ -33,6 +33,7 @@ config KILAUEA bool Kilauea depends on 40x default n + select 405EX help This option enables support for the AMCC PPC405EX evaluation board. @@ -105,6 +106,11 @@ config 405GP config 405EP bool +config 405EX + bool + select IBM_NEW_EMAC_EMAC4 + select IBM_NEW_EMAC_RGMII + config 405GPR bool -- 1.5.3.4.498.g9c514 ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: Please pull from 'for-2.6.24' branch of 4xx tree
Is this something anyone can do? I tried: git pull master.kernel.org:/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx.git for-2.6.24 but it asks me for a password. I'd like to be able to follow your development branch, so I can contribute patches where appropriate. Steve Josh Boyer wrote: Hi Paul, Please pull from: master.kernel.org:/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx.git for-2.6.24 to pick up a few items for 2.6.24. Mostly bugfixes, but also some documentation updates and a few bootwrapper changes. Particularly important is the TLB flushing fix from Ben. josh Benjamin Herrenschmidt (2): [POWERPC] 4xx: Fix 4xx flush_tlb_page() [POWERPC] 4xx: Deal with 44x virtually tagged icache Grant Likely (5): [POWERPC] bootwrapper: Allow wrapper script to execute verbosely [POWERPC] bootwrapper: Bail from script if any command fails [POWERPC] Device tree bindings for Xilinx devices [POWERPC] Uartlite: speed up console output [POWERPC] ppc405 Fix arithmatic rollover bug when memory size under 16M Roel Kluin (1): [POWERPC] allocation fix in ppc/platforms/4xx/luan.c Steven A. Falco (1): [POWERPC] 4xx: Fix Walnut DTS interrupt property Valentine Barshak (1): [POWERPC] 4xx: Workaround for the 440EP(x)/GR(x) processors identical PVR Documentation/powerpc/booting-without-of.txt | 261 ++ arch/powerpc/boot/dts/walnut.dts |4 +- arch/powerpc/boot/wrapper| 32 ++-- arch/powerpc/kernel/cputable.c | 36 +++- arch/powerpc/kernel/entry_32.S | 23 +++ arch/powerpc/kernel/misc_32.S| 32 +++- arch/powerpc/kernel/prom.c | 12 ++ arch/powerpc/mm/40x_mmu.c| 17 +- arch/powerpc/mm/44x_mmu.c|1 + arch/powerpc/mm/fault.c |2 +- arch/powerpc/mm/mmu_decl.h |4 +- arch/ppc/kernel/entry.S | 23 +++ arch/ppc/kernel/misc.S | 31 +++- arch/ppc/mm/44x_mmu.c|1 + arch/ppc/mm/4xx_mmu.c| 17 +- arch/ppc/mm/fault.c |2 +- arch/ppc/mm/mmu_decl.h |4 +- arch/ppc/platforms/4xx/ebony.c |2 +- arch/ppc/platforms/4xx/luan.c|7 +- arch/ppc/platforms/4xx/ocotea.c |2 +- arch/ppc/platforms/4xx/taishan.c |2 +- drivers/serial/uartlite.c| 10 +- include/asm-powerpc/pgtable-ppc32.h | 13 ++ include/asm-powerpc/tlbflush.h | 12 +- 24 files changed, 472 insertions(+), 78 deletions(-) ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: Please pull from 'for-2.6.24' branch of 4xx tree
On Thu, 01 Nov 2007 10:54:15 -0400 Steven A. Falco [EMAIL PROTECTED] wrote: Is this something anyone can do? I tried: git pull master.kernel.org:/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx.git for-2.6.24 but it asks me for a password. I'd like to be able to follow your development branch, so I can contribute patches where appropriate. Ah. No, you'd have to have an account on master.kernel.org for that specific pull request to work. Anonymous pulls should work with: git://git.kernel.org/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx.git as the URL instead. josh ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
[PATCH 2/2] 4xx: Add EMAC support to Kilauea defconfig
Signed-off-by: Stefan Roese [EMAIL PROTECTED] --- arch/powerpc/configs/kilauea_defconfig | 98 --- 1 files changed, 51 insertions(+), 47 deletions(-) diff --git a/arch/powerpc/configs/kilauea_defconfig b/arch/powerpc/configs/kilauea_defconfig index fd1c530..f75a62b 100644 --- a/arch/powerpc/configs/kilauea_defconfig +++ b/arch/powerpc/configs/kilauea_defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.23-rc9 -# Thu Oct 11 19:05:15 2007 +# Linux kernel version: 2.6.24-rc1 +# Thu Nov 1 15:15:23 2007 # # CONFIG_PPC64 is not set @@ -68,6 +68,10 @@ CONFIG_POSIX_MQUEUE=y # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_CGROUPS is not set +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FAIR_USER_SCHED=y +# CONFIG_FAIR_CGROUP_SCHED is not set CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y @@ -134,6 +138,7 @@ CONFIG_DEFAULT_IOSCHED=anticipatory CONFIG_KILAUEA=y # CONFIG_WALNUT is not set # CONFIG_XILINX_VIRTEX_GENERIC_BOARD is not set +CONFIG_405EX=y # CONFIG_MPIC is not set # CONFIG_MPIC_WEIRD is not set # CONFIG_PPC_I8259 is not set @@ -154,6 +159,7 @@ CONFIG_KILAUEA=y # CONFIG_TICK_ONESHOT is not set # CONFIG_NO_HZ is not set # CONFIG_HIGH_RES_TIMERS is not set +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y # CONFIG_HZ_100 is not set CONFIG_HZ_250=y # CONFIG_HZ_300 is not set @@ -175,6 +181,7 @@ CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set +# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_RESOURCES_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 @@ -198,10 +205,6 @@ CONFIG_ZONE_DMA=y # CONFIG_PCI_DOMAINS is not set # CONFIG_PCI_SYSCALL is not set # CONFIG_ARCH_SUPPORTS_MSI is not set - -# -# PCCARD (PCMCIA/CardBus) support -# # CONFIG_PCCARD is not set # @@ -215,7 +218,7 @@ CONFIG_ZONE_DMA=y CONFIG_HIGHMEM_START=0xfe00 CONFIG_LOWMEM_SIZE=0x3000 CONFIG_KERNEL_START=0xc000 -CONFIG_TASK_SIZE=0x8000 +CONFIG_TASK_SIZE=0xc000 CONFIG_CONSISTENT_START=0xff10 CONFIG_CONSISTENT_SIZE=0x0020 CONFIG_BOOT_LOAD=0x0040 @@ -252,6 +255,7 @@ CONFIG_IP_PNP_BOOTP=y # CONFIG_INET_XFRM_MODE_TRANSPORT is not set # CONFIG_INET_XFRM_MODE_TUNNEL is not set # CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y # CONFIG_TCP_CONG_ADVANCED is not set @@ -277,10 +281,6 @@ CONFIG_DEFAULT_TCP_CONG=cubic # CONFIG_LAPB is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set - -# -# QoS and/or fair queueing -# # CONFIG_NET_SCHED is not set # @@ -309,6 +309,7 @@ CONFIG_DEFAULT_TCP_CONG=cubic # # Generic Driver Options # +CONFIG_UEVENT_HELPER_PATH=/sbin/hotplug CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y @@ -336,6 +337,7 @@ CONFIG_MTD_BLOCK=m # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set +# CONFIG_MTD_OOPS is not set # # RAM/ROM/Flash chip drivers @@ -425,7 +427,22 @@ CONFIG_NETDEVICES=y # CONFIG_MACVLAN is not set # CONFIG_EQUALIZER is not set # CONFIG_TUN is not set -# CONFIG_NET_ETHERNET is not set +# CONFIG_VETH is not set +# CONFIG_PHYLIB is not set +CONFIG_NET_ETHERNET=y +# CONFIG_MII is not set +CONFIG_IBM_NEW_EMAC=y +CONFIG_IBM_NEW_EMAC_RXB=256 +CONFIG_IBM_NEW_EMAC_TXB=256 +CONFIG_IBM_NEW_EMAC_POLL_WEIGHT=32 +CONFIG_IBM_NEW_EMAC_RX_COPY_THRESHOLD=256 +CONFIG_IBM_NEW_EMAC_RX_SKB_HEADROOM=0 +CONFIG_IBM_NEW_EMAC_DEBUG=y +# CONFIG_IBM_NEW_EMAC_ZMII is not set +CONFIG_IBM_NEW_EMAC_RGMII=y +# CONFIG_IBM_NEW_EMAC_TAH is not set +CONFIG_IBM_NEW_EMAC_EMAC4=y +# CONFIG_B44 is not set # CONFIG_NETDEV_1000 is not set # CONFIG_NETDEV_1 is not set @@ -485,7 +502,6 @@ CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 # CONFIG_IPMI_HANDLER is not set -# CONFIG_WATCHDOG is not set # CONFIG_HW_RANDOM is not set # CONFIG_NVRAM is not set # CONFIG_GEN_RTC is not set @@ -502,6 +518,13 @@ CONFIG_LEGACY_PTY_COUNT=256 # CONFIG_W1 is not set # CONFIG_POWER_SUPPLY is not set # CONFIG_HWMON is not set +# CONFIG_WATCHDOG is not set + +# +# Sonics Silicon Backplane +# +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set # # Multifunction device drivers @@ -518,16 +541,15 @@ CONFIG_LEGACY_PTY_COUNT=256 # # Graphics support # +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +# CONFIG_FB is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set # # Display device support # # CONFIG_DISPLAY_SUPPORT is not set -# CONFIG_VGASTATE is not set -# CONFIG_VIDEO_OUTPUT_CONTROL is not set -# CONFIG_FB is not set -# CONFIG_FB_IBM_GXT4500 is not set # # Sound @@ -540,19 +562,6 @@ CONFIG_LEGACY_PTY_COUNT=256 # CONFIG_RTC_CLASS is not set # -# DMA Engine support -# -# CONFIG_DMA_ENGINE is not set - -# -# DMA Clients -# - -# -# DMA Devices -# - -# # Userspace I/O # #
[PATCH] net: Add 405EX support to new EMAC driver
This patch adds support for the 405EX to the new EMAC driver. Tested on AMCC Kilauea. Signed-off-by: Stefan Roese [EMAIL PROTECTED] --- drivers/net/ibm_newemac/core.c |3 ++- drivers/net/ibm_newemac/rgmii.c |6 -- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c index 0de3aa2..fd0a585 100644 --- a/drivers/net/ibm_newemac/core.c +++ b/drivers/net/ibm_newemac/core.c @@ -2466,7 +2466,8 @@ static int __devinit emac_init_config(struct emac_instance *dev) if (of_device_is_compatible(np, ibm,emac4)) dev-features |= EMAC_FTR_EMAC4; if (of_device_is_compatible(np, ibm,emac-axon) - || of_device_is_compatible(np, ibm,emac-440epx)) + || of_device_is_compatible(np, ibm,emac-440epx) + || of_device_is_compatible(np, ibm,emac-405ex)) dev-features |= EMAC_FTR_HAS_AXON_STACR | EMAC_FTR_STACR_OC_INVERT; if (of_device_is_compatible(np, ibm,emac-440spe)) diff --git a/drivers/net/ibm_newemac/rgmii.c b/drivers/net/ibm_newemac/rgmii.c index de41695..e393f68 100644 --- a/drivers/net/ibm_newemac/rgmii.c +++ b/drivers/net/ibm_newemac/rgmii.c @@ -140,9 +140,6 @@ void rgmii_get_mdio(struct of_device *ofdev, int input) RGMII_DBG2(dev, get_mdio(%d) NL, input); - if (dev-type != RGMII_AXON) - return; - mutex_lock(dev-lock); fer = in_be32(p-fer); @@ -161,9 +158,6 @@ void rgmii_put_mdio(struct of_device *ofdev, int input) RGMII_DBG2(dev, put_mdio(%d) NL, input); - if (dev-type != RGMII_AXON) - return; - fer = in_be32(p-fer); fer = ~(0x0008u input); out_be32(p-fer, fer); -- 1.5.3.4.498.g9c514 ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH] net: Add 405EX support to new EMAC driver
On Thu, 2007-11-01 at 15:54 +0100, Stefan Roese wrote: This patch adds support for the 405EX to the new EMAC driver. Tested on AMCC Kilauea. .../... diff --git a/drivers/net/ibm_newemac/rgmii.c b/drivers/net/ibm_newemac/rgmii.c index de41695..e393f68 100644 --- a/drivers/net/ibm_newemac/rgmii.c +++ b/drivers/net/ibm_newemac/rgmii.c @@ -140,9 +140,6 @@ void rgmii_get_mdio(struct of_device *ofdev, int input) RGMII_DBG2(dev, get_mdio(%d) NL, input); - if (dev-type != RGMII_AXON) - return; - mutex_lock(dev-lock); That will break 440GX boards that need to use the RGMII for data and the ZMII for MDIO. You may want to change the name RGMII_AXON something like RGMII_HAS_MDIO instead and set that for 405EX as well instead. Ben. ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH] net: Add 405EX support to new EMAC driver
On Fri, 02 Nov 2007 07:37:01 +1100 Benjamin Herrenschmidt [EMAIL PROTECTED] wrote: On Thu, 2007-11-01 at 15:54 +0100, Stefan Roese wrote: This patch adds support for the 405EX to the new EMAC driver. Tested on AMCC Kilauea. .../... diff --git a/drivers/net/ibm_newemac/rgmii.c b/drivers/net/ibm_newemac/rgmii.c index de41695..e393f68 100644 --- a/drivers/net/ibm_newemac/rgmii.c +++ b/drivers/net/ibm_newemac/rgmii.c @@ -140,9 +140,6 @@ void rgmii_get_mdio(struct of_device *ofdev, int input) RGMII_DBG2(dev, get_mdio(%d) NL, input); - if (dev-type != RGMII_AXON) - return; - mutex_lock(dev-lock); That will break 440GX boards that need to use the RGMII for data and the ZMII for MDIO. You may want to change the name RGMII_AXON something like RGMII_HAS_MDIO instead and set that for 405EX as well instead. And perhaps adding a comment about that since the meaning of that code isn't very obvious. That way people that aren't the original author of the driver don't get confused again. josh ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH] net: Add 405EX support to new EMAC driver
On Thursday 01 November 2007, Josh Boyer wrote: - if (dev-type != RGMII_AXON) - return; - mutex_lock(dev-lock); That will break 440GX boards that need to use the RGMII for data and the ZMII for MDIO. You may want to change the name RGMII_AXON something like RGMII_HAS_MDIO instead and set that for 405EX as well instead. And perhaps adding a comment about that since the meaning of that code isn't very obvious. That way people that aren't the original author of the driver don't get confused again. Will do. I'll send a fixed version tomorrow. Best regards, Stefan ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: Module with 36K relocation entries
Medve Emilian-EMMEDVE1 wrote: I have module with 36K relocation entries (I know, I know, how could that be...) and the count_relocs() function takes ~17 seconds to crunch through the relocation table from the .rela.text section. I don't think I can reduce the number of entries in the relocation table (can I?) so I'm thinking at improving the performance of count_relocs() (currently O(n^2)). Does anybody have a simpler idea? Does anyone have any constructive suggestion on how to improve the situation? This seems to come up every few months. There was a patch submitted here: http://ozlabs.org/pipermail/linuxppc-dev/2007-June/037641.html ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: libfdt as its own repo and submodule of dtc?
On Thu, Nov 01, 2007 at 09:04:42AM -0500, Jon Loeliger wrote: On Wed, 2007-10-31 at 17:56, David Gibson wrote: I'm not too keen on using a git feature that's more recent than the git in most distros. I'm going to consider this argument null and void on two fronts: You don't use git for patch generation and submission anyway. True. It wasn't clear to me whether using this git-submodule thing would also affect pulling. The Linux Community happily embraced and used early versions of git, installing it themselves if needed, long before it was available in _any_ distro. I don't think this is a comparable situation. For one, dtc does not have the clout of Linux. For another, at the time there was hardly anything in the way of suitable solutions that were out there in distros. That's not the case now - we can do nearly everything we want with the git in recent distros, I don't think there's call to require a newer version for one extra feature. -- David Gibson| I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Freescale I2C support and CONFIG_I2C_BOARDINFO
Freescale I2C support is being constructed as a platform driver in arch/powerpc/sysdev/fsl_soc.c and protected with #ifdef CONFIG_I2C_BOARDINFO. Could the I2C support instead be initialized in drivers/i2c/busses/i2c-mpc.c as an of_platform driver instead? I'm find it confusing that half my drivers are platform drivers and half are of_platform drivers. It would also eliminate the need for the ifdef. I'll trying coding it up and see if it works. -- Jon Smirl [EMAIL PROTECTED] ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
dtc: Further Makefile cleanups
Informed by the experience attempting to embed dtc into the kernel tree, make further simplification of the Makefiles. In particular make the Makefile.dtc and Makefile.libfdt fragments truly minimal. This change also stops linking dtc with libfdt, which it does not need. Signed-off-by: David Gibson [EMAIL PROTECTED] --- Makefile | 13 +++-- Makefile.dtc | 20 ++-- libfdt/Makefile.libfdt |6 -- tests/Makefile.tests | 49 ++--- 4 files changed, 31 insertions(+), 57 deletions(-) Index: dtc/Makefile === --- dtc.orig/Makefile 2007-11-02 14:36:22.0 +1100 +++ dtc/Makefile2007-11-02 14:36:43.0 +1100 @@ -17,7 +17,6 @@ CONFIG_LOCALVERSION = CPPFLAGS = -I libfdt CFLAGS = -Wall -g -Os -LDFLAGS = -Llibfdt BISON = bison LEX = flex @@ -138,15 +137,16 @@ LIBFDT_objdir = libfdt LIBFDT_srcdir = libfdt include libfdt/Makefile.libfdt +LIBFDT_lib = $(LIBFDT_objdir)/libfdt.a + .PHONY: libfdt -libfdt: $(LIBFDT_LIB) +libfdt: $(LIBFDT_lib) -$(LIBFDT_LIB): $(addprefix libfdt/,$(LIBFDT_OBJS)) +$(LIBFDT_lib): $(addprefix $(LIBFDT_objdir)/,$(LIBFDT_OBJS)) libfdt_clean: @$(VECHO) CLEAN (libfdt) rm -f $(addprefix libfdt/,$(STD_CLEANFILES)) - rm -f $(addprefix libfdt/,$(LIBFDT_CLEANFILES)) ifneq ($(DEPTARGETS),) -include $(LIBFDT_OBJS:%.o=$(LIBFDT_objdir)/%.d) @@ -155,7 +155,8 @@ endif # # Testsuite rules # -TESTS_PREFIX=tests/ +TESTS_srcdir = tests +TESTS_objdir = tests include tests/Makefile.tests # @@ -166,7 +167,7 @@ STD_CLEANFILES = *~ *.o *.d *.a *.i *.s clean: libfdt_clean tests_clean @$(VECHO) CLEAN - rm -f $(STD_CLEANFILES) $(DTC_CLEANFILES) + rm -f $(STD_CLEANFILES) rm -f $(VERSION_FILE) rm -f $(BIN) Index: dtc/libfdt/Makefile.libfdt === --- dtc.orig/libfdt/Makefile.libfdt 2007-11-02 14:36:16.0 +1100 +++ dtc/libfdt/Makefile.libfdt 2007-11-02 14:36:24.0 +1100 @@ -4,11 +4,5 @@ # be easily embeddable into other systems of Makefiles. # LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c -LIBFDT_INCLUDES = fdt.h libfdt.h -LIBFDT_EXTRA = libfdt_internal.h -LIBFDT_LIB = libfdt/libfdt.a - LIBFDT_OBJS = $(LIBFDT_SRCS:%.c=%.o) -$(LIBFDT_objdir)/$(LIBFDT_LIB): $(addprefix $(LIBFDT_objdir)/,$(LIBFDT_OBJS)) - Index: dtc/tests/Makefile.tests === --- dtc.orig/tests/Makefile.tests 2007-11-02 14:36:16.0 +1100 +++ dtc/tests/Makefile.tests2007-11-02 14:36:24.0 +1100 @@ -1,4 +1,4 @@ -LIB_TESTS_L = get_mem_rsv \ +LIB_TESTS = get_mem_rsv \ root_node find_property subnode_offset path_offset \ get_name getprop get_path supernode_atdepth_offset parent_offset \ node_offset_by_prop_value \ @@ -9,50 +9,45 @@ LIB_TESTS_L = get_mem_rsv \ move_and_save mangle-layout \ open_pack rw_tree1 setprop del_property del_node \ string_escapes dtbs_equal_ordered -LIB_TESTS = $(LIB_TESTS_L:%=$(TESTS_PREFIX)%) +LIBTREE_TESTS = truncated_property +ASM_DTBS = test_tree1.dtb -LIBTREE_TESTS_L = truncated_property -LIBTREE_TESTS = $(LIBTREE_TESTS_L:%=$(TESTS_PREFIX)%) +TESTS_util_obj = $(TESTS_objdir)/testutils.o +TESTS_tree_obj = $(TESTS_objdir)/trees.o -TESTS = $(LIB_TESTS) $(LIBTREE_TESTS) +TESTS_lib_exec = $(LIB_TESTS:%=$(TESTS_objdir)/%) +TESTS_libtree_exec = $(LIBTREE_TESTS:%=$(TESTS_objdir)/%) +TESTS_dumptrees_exec = $(TEST_objdir)/dumptrees +TESTS_exec = $(TESTS_lib_exec) $(TESTS_libtree_exec) $(TESTS_dumptrees_exec) -TESTS_TREES_L = test_tree1.dtb -TESTS_TREES = $(TESTS_TREES_L:%=$(TESTS_PREFIX)%) +TESTS_dtb = $(ASM_DTBS:%=$(TESTS_objdir)/%) -TESTS_TARGETS = $(TESTS) $(TESTS_TREES) - -TESTS_DEPFILES = $(TESTS:%=%.d) $(TESTS_PREFIX)testutils.d - -TESTS_CLEANFILES_L = *.output vgcore.* *.dtb -TESTS_CLEANFILES = $(TESTS_CLEANFILES_L:%=$(TESTS_PREFIX)%) - -BIN += $(TESTS) $(TESTS_PREFIX)dumptrees +BIN += $(TESTS_exec) .PHONY: tests -tests: $(TESTS) $(TESTS_TREES) +tests: $(TESTS_exec) $(TESTS_dtb) -$(LIB_TESTS): %: $(TESTS_PREFIX)testutils.o $(LIBFDT_LIB) +$(TESTS_lib_exec): %: $(TESTS_util_obj) $(LIBFDT_lib) -$(LIBTREE_TESTS): %: $(TESTS_PREFIX)testutils.o $(TESTS_PREFIX)trees.o $(LIBFDT_LIB) +$(TESTS_libtree_exec): %: $(TESTS_util_obj) $(TESTS_tree_obj) $(LIBFDT_lib) -$(TESTS_PREFIX)dumptrees: $(TESTS_PREFIX)trees.o +$(TESTS_dumptrees_exec): $(TESTS_tree_obj) -$(TESTS_TREES): $(TESTS_PREFIX)dumptrees +$(TESTS_dtb): $(TESTS_dumptrees_exec) @$(VECHO) DUMPTREES - cd $(TESTS_PREFIX); ./dumptrees /dev/null + cd $(TESTS_objdir); ./dumptrees /dev/null tests_clean: @$(VECHO) CLEAN (tests) - rm -f $(STD_CLEANFILES:%=$(TESTS_PREFIX)%) - rm -f $(TESTS_CLEANFILES) + rm -f
Re: dtc: Further Makefile cleanups
On Fri, Nov 02, 2007 at 02:40:16PM +1100, David Gibson wrote: Informed by the experience attempting to embed dtc into the kernel tree, make further simplification of the Makefiles. In particular make the Makefile.dtc and Makefile.libfdt fragments truly minimal. This change also stops linking dtc with libfdt, which it does not need. Signed-off-by: David Gibson [EMAIL PROTECTED] Sod. Don't apply, I screwed this one up somewhere along the line. -- David Gibson| I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
dtc: Don't include libfdt in global LDFLAGS
Remove the uneccessary LDFLAGS from the top-level makefile. It only added libfdt/ to the link path. dtc doesn't need libfdt at all, and the testcases which do, already link libfdt.a by explicit path. Signed-off-by: David Gibson [EMAIL PROTECTED] Index: dtc/Makefile === --- dtc.orig/Makefile 2007-11-02 15:06:24.0 +1100 +++ dtc/Makefile2007-11-02 15:06:30.0 +1100 @@ -17,7 +17,6 @@ CONFIG_LOCALVERSION = CPPFLAGS = -I libfdt CFLAGS = -Wall -g -Os -LDFLAGS = -Llibfdt BISON = bison LEX = flex -- David Gibson| I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
dtc: Make -Idts -Odts preserve node/property labels
This patch changes -Odts mode output so that labels on properties, nodes and memreserve entries in input source are preserved in the output. Preserving labels within property values is trickier - another patch coming later. Signed-off-by: David Gibson [EMAIL PROTECTED] Index: dtc/treesource.c === --- dtc.orig/treesource.c 2007-11-02 16:00:19.0 +1100 +++ dtc/treesource.c2007-11-02 16:02:33.0 +1100 @@ -176,6 +176,8 @@ static void write_tree_source_node(FILE struct node *child; write_prefix(f, level); + if (tree-label) + fprintf(f, %s: , tree-label); if (tree-name (*tree-name)) fprintf(f, %s {\n, tree-name); else @@ -184,8 +186,10 @@ static void write_tree_source_node(FILE for_each_property(tree, prop) { enum proptype type; - write_prefix(f, level); - fprintf(f, \t%s, prop-name); + write_prefix(f, level+1); + if (prop-label) + fprintf(f, %s: , prop-label); + fprintf(f, %s, prop-name); type = guess_type(prop); switch (type) { @@ -220,6 +224,8 @@ void dt_to_source(FILE *f, struct boot_i struct reserve_info *re; for (re = bi-reservelist; re; re = re-next) { + if (re-label) + fprintf(f, %s: , re-label); fprintf(f, /memreserve/\t%016llx-%016llx;\n, (unsigned long long)re-re.address, (unsigned long long)(re-re.address + re-re.size - 1)); -- David Gibson| I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
libfdt: Add more documentation (patch the third)
This patch adds documentation in libfdt.h for a few more libfdt functions. It also makes a slight update to the documentation of fdt_get_name(). Index: dtc/libfdt/libfdt.h === --- dtc.orig/libfdt/libfdt.h2007-11-02 15:44:58.0 +1100 +++ dtc/libfdt/libfdt.h 2007-11-02 15:46:37.0 +1100 @@ -319,28 +319,54 @@ int fdt_path_offset(const void *fdt, con * fdt_get_name - retreive the name of a given node * @fdt: pointer to the device tree blob * @nodeoffset: structure block offset of the starting node - * @len: pointer to an intger variable (will be overwritten) or NULL + * @lenp: pointer to an integer variable (will be overwritten) or NULL * * fdt_get_name() retrieves the name (including unit address) of the - * device tree node at structure block offset nodeoffset. If len is + * device tree node at structure block offset nodeoffset. If lenp is * non-NULL, the length of this name is also returned, in the integer - * pointed to by len. + * pointed to by lenp. * * returns: * pointer to the node's name, on success - * *len contains the length of that name (=0) + * If lenp is non-NULL, *lenp contains the length of that name (=0) * NULL, on error - * *len contains an error code (0): + * if lenp is non-NULL *lenp contains an error code (0): * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag * -FDT_ERR_BADMAGIC, * -FDT_ERR_BADVERSION, * -FDT_ERR_BADSTATE, standard meanings */ -const char *fdt_get_name(const void *fdt, int nodeoffset, int *len); +const char *fdt_get_name(const void *fdt, int nodeoffset, int *lenp); +/** + * fdt_get_property - find a given property in a given node + * @fdt: pointer to the device tree blob + * @nodeoffset: offset of the node whose property to find + * @name: name of the property to find + * @lenp: pointer to an integer variable (will be overwritten) or NULL + * + * fdt_get_property() retrieves a pointer to the fdt_property + * structure within the device tree blob corresponding to the property + * named 'name' of the node at offset nodeoffset. If lenp is + * non-NULL, the length of the property value also returned, in the + * integer pointed to by lenp. + * + * returns: + * pointer to the structure representing the property + * if lenp is non-NULL, *lenp contains the length of the property + * value (=0) + * NULL, on error + * if lenp is non-NULL, *lenp contains an error code (0): + * -FDT_ERR_NOTFOUND, node does not have named property + * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag + * -FDT_ERR_BADMAGIC, + * -FDT_ERR_BADVERSION, + * -FDT_ERR_BADSTATE, + * -FDT_ERR_BADSTRUCTURE, + * -FDT_ERR_TRUNCATED, standard meanings + */ const struct fdt_property *fdt_get_property(const void *fdt, int nodeoffset, const char *name, int *lenp); - static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset, const char *name, int *lenp) @@ -349,6 +375,33 @@ static inline struct fdt_property *fdt_g name, lenp); } +/** + * fdt_getprop - retrieve the value of a given property + * @fdt: pointer to the device tree blob + * @nodeoffset: offset of the node whose property to find + * @name: name of the property to find + * @lenp: pointer to an integer variable (will be overwritten) or NULL + * + * fdt_getprop() retrieves a pointer to the value of the property + * named 'name' of the node at offset nodeoffset (this will be a + * pointer to within the device blob itself, not a copy of the value). + * If lenp is non-NULL, the length of the property value also + * returned, in the integer pointed to by lenp. + * + * returns: + * pointer to the property's value + * if lenp is non-NULL, *lenp contains the length of the property + * value (=0) + * NULL, on error + * if lenp is non-NULL, *lenp contains an error code (0): + * -FDT_ERR_NOTFOUND, node does not have named property + * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag + * -FDT_ERR_BADMAGIC, + * -FDT_ERR_BADVERSION, + * -FDT_ERR_BADSTATE, + * -FDT_ERR_BADSTRUCTURE, + * -FDT_ERR_TRUNCATED, standard meanings + */ const void *fdt_getprop(const void *fdt, int nodeoffset, const char *name, int *lenp); static inline void *fdt_getprop_w(void *fdt, int nodeoffset, @@ -357,6 +410,31 @@ static inline void *fdt_getprop_w(void * return (void *)fdt_getprop(fdt, nodeoffset, name,
[PATCH] Restore deterministic CPU accounting on powerpc
Since powerpc started using CONFIG_GENERIC_CLOCKEVENTS, the deterministic CPU accounting (CONFIG_VIRT_CPU_ACCOUNTING) has been broken on powerpc, because we end up counting user time twice: once in timer_interrupt() and once in update_process_times(). This fixes the problem by pulling the code in update_process_times that updates utime and stime into a separate function called account_process_tick. If CONFIG_VIRT_CPU_ACCOUNTING is not defined, there is a version of account_process_tick in kernel/timer.c that simply accounts a whole tick to either utime or stime as before. If CONFIG_VIRT_CPU_ACCOUNTING is defined, then arch code gets to implement account_process_tick. This also lets us simplify the s390 code a bit; it means that the s390 timer interrupt can now call update_process_times even when CONFIG_VIRT_CPU_ACCOUNTING is turned on, and can just implement a suitable account_process_tick(). Signed-off-by: Paul Mackerras [EMAIL PROTECTED] --- I don't know who maintains kernel/timer.c, but I assume it's one of Ingo, Peter Z. or Thomas. In fact the arch bits here don't need to go in at the same time as the changes to include/linux/sched.h and kernel/timer.c, but could go in later. I have included them here so people can see how these changes help in the VIRT_CPU_ACCOUNTING=y case. The powerpc changes are tested, but the s390 changes aren't. In case it's not obvious, I'd like this (or at least the generic and powerpc bits) to go in 2.6.24 since it fixes a regression. arch/powerpc/kernel/process.c |4 +++- arch/powerpc/kernel/time.c| 29 +++-- arch/s390/kernel/time.c |4 arch/s390/kernel/vtime.c |9 ++--- include/asm-powerpc/time.h|6 -- include/asm-ppc/time.h|2 -- include/asm-s390/system.h |1 - include/linux/sched.h |1 + kernel/timer.c| 21 ++--- 9 files changed, 23 insertions(+), 54 deletions(-) diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index b9d8837..eba9332 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c @@ -349,9 +349,11 @@ struct task_struct *__switch_to(struct task_struct *prev, local_irq_save(flags); +#ifdef CONFIG_VIRT_CPU_ACCOUNTING account_system_vtime(current); - account_process_vtime(current); + account_process_tick(0); calculate_steal_time(); +#endif last = _switch(old_thread, new_thread); diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index 9eb3284..f950336 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c @@ -259,31 +259,19 @@ void account_system_vtime(struct task_struct *tsk) * user and system time records. * Must be called with interrupts disabled. */ -void account_process_vtime(struct task_struct *tsk) +void account_process_tick(int user_tick) { cputime_t utime, utimescaled; utime = get_paca()-user_time; get_paca()-user_time = 0; - account_user_time(tsk, utime); + account_user_time(current, utime); /* Estimate the scaled utime by scaling the real utime based * on the last spurr to purr ratio */ utimescaled = utime * get_paca()-spurrdelta / get_paca()-purrdelta; get_paca()-spurrdelta = get_paca()-purrdelta = 0; - account_user_time_scaled(tsk, utimescaled); -} - -static void account_process_time(struct pt_regs *regs) -{ - int cpu = smp_processor_id(); - - account_process_vtime(current); - run_local_timers(); - if (rcu_pending(cpu)) - rcu_check_callbacks(cpu, user_mode(regs)); - scheduler_tick(); - run_posix_cpu_timers(current); + account_user_time_scaled(current, utimescaled); } /* @@ -375,7 +363,6 @@ static void snapshot_purr(void) #else /* ! CONFIG_VIRT_CPU_ACCOUNTING */ #define calc_cputime_factors() -#define account_process_time(regs) update_process_times(user_mode(regs)) #define calculate_steal_time() do { } while (0) #endif @@ -599,16 +586,6 @@ void timer_interrupt(struct pt_regs * regs) get_lppaca()-int_dword.fields.decr_int = 0; #endif - /* -* We cannot disable the decrementer, so in the period -* between this cpu's being marked offline in cpu_online_map -* and calling stop-self, it is taking timer interrupts. -* Avoid calling into the scheduler rebalancing code if this -* is the case. -*/ - if (!cpu_is_offline(cpu)) - account_process_time(regs); - if (evt-event_handler) evt-event_handler(evt); else diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index 48dae49..6c6be1f 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c @@ -145,12 +145,8 @@ void account_ticks(u64 time) do_timer(ticks); #endif -#ifdef CONFIG_VIRT_CPU_ACCOUNTING -
dtc: Don't force alignment of cell list data
At present, defining a property as, say: foo = [abcd], ; Will cause dtc to insert 2 bytes of zeros between the abcd and the , to align the cell form data. Doing so seemed like a good idea at the time, but I don't believe there are any users who actually rely on this behaviour. Segher claims that OF has some defined bindings which include properties an unaligned subsection of which is interpreted as 32-bit ints (i.e. like cell data). Worse, this alignment will cause nothing but pain when we add expression support to dtc (when celldata is included in a larger bytestring expession, we won't know the size of the preceding chunk of the expression until it's evaluated, so we would have to carry alignment fixup information right through the expression evaluation process). Therefore, this patch kills off this alignment behaviour. Signed-off-by: David Gibson [EMAIL PROTECTED] Index: dtc/dtc-parser.y === --- dtc.orig/dtc-parser.y 2007-11-02 16:45:00.0 +1100 +++ dtc/dtc-parser.y2007-11-02 16:45:42.0 +1100 @@ -149,8 +149,7 @@ propdata: } | propdataprefix '' celllist '' { - $$ = data_merge(data_append_align($1, - sizeof(cell_t)), $3); + $$ = data_merge($1, $3); } | propdataprefix '[' bytestring ']' { -- David Gibson| I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [PATCH] ehea: add kexec support
On Wed, 2007-10-31 at 20:48 +0100, Christoph Raisch wrote: Michael Ellerman [EMAIL PROTECTED] wrote on 30.10.2007 23:50:36: On Tue, 2007-10-30 at 09:39 +0100, Christoph Raisch wrote: Michael Ellerman [EMAIL PROTECTED] wrote on 28.10.2007 23:32:17: Hope I didn't miss anything here... Perhaps. When we kdump the kernel does not call the reboot notifiers, so the code Jan-Bernd just added won't get called. So the eHEA resources won't be freed. When the kdump kernel tries to load the eHEA driver what will happen? Good point. If the device driver tries to allocate resources again (in the kdump kernel), which have been allocated before (in the crashed kernel) the hcalls will fail because from the hypervisor view the resources are still in use. Currently there's no method to find out the resource handles for these HEA resources allocated by the crashed kernel within the hypervisor... So the hypervisor can't allocate more resources, because they're already allocated, but it can't free the ones that are allocated because it doesn't know what they are? I don't think I understand. If that's really the way it works then eHEA is more or less broken for kdump I'm afraid. cheers -- Michael Ellerman OzLabs, IBM Australia Development Lab wwweb: http://michael.ellerman.id.au phone: +61 2 6212 1183 (tie line 70 21183) We do not inherit the earth from our ancestors, we borrow it from our children. - S.M.A.R.T Person signature.asc Description: This is a digitally signed message part ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev