rpms/kernel/F-9 config-alpha-generic, NONE, 1.1 config-alpha-smp, NONE, 1.1 linux-2.6-alpha-eepro100-cleanup.patch, NONE, 1.1 linux-2.6-alpha-pci.c.patch, NONE, 1.1 linux-2.6-alpha-pci_get_bus_and_slot.patch, NONE, 1.1 linux-2.6.28-alpha-exec_range.patch, NONE, 1.1 linux-2.6.28-alpha-pci.h.patch, NONE, 1.1 Makefile.config, 1.64, 1.65 kernel.spec, 1.898, 1.899
Oliver Falk
oliver at fedoraproject.org
Thu Mar 12 12:57:36 UTC 2009
- Previous message (by thread): rpms/openoffice.org/devel workspace.transogl03redux.patch,1.3,1.4
- Next message (by thread): rpms/libselinux/devel libselinux-2.0.77-nlfd.patch, NONE, 1.1 .cvsignore, 1.180, 1.181 libselinux-rhat.patch, 1.185, 1.186 libselinux.spec, 1.362, 1.363 sources, 1.183, 1.184
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: oliver
Update of /cvs/pkgs/rpms/kernel/F-9
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv12971
Modified Files:
Makefile.config kernel.spec
Added Files:
config-alpha-generic config-alpha-smp
linux-2.6-alpha-eepro100-cleanup.patch
linux-2.6-alpha-pci.c.patch
linux-2.6-alpha-pci_get_bus_and_slot.patch
linux-2.6.28-alpha-exec_range.patch
linux-2.6.28-alpha-pci.h.patch
Log Message:
* Wed Mar 11 2009 Oliver Falk <oliver at linux-kernel.at> 2.6.28.2-7
- Modify kernel spec to build on alpha again
- Remove all alphaev* from spec, as we only build for 'alpha'
- Patches for alpha:
- linux-2.6.28-alpha-exec_range.patch
- add execshield dummy functions for alpha
- linux-2.6-alpha-pci_get_bus_and_slot.patch
- Do not limit bus/slot search to PCI domain 0 on alpha
- linux-2.6-alpha-eepro100-cleanup.patch
- cleanup extraneous "freeing mc frame" messages from driver
- linux-2.6.28-alpha-pci.h.patch, linux-2.6-alpha-pci.c.patch
- Platform support for /proc/bus/pci/X/Y mmap()s
--- NEW FILE config-alpha-generic ---
# alpha
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.28.2
# Fri Feb 13 06:26:22 2009
#
CONFIG_ALPHA=y
CONFIG_64BIT=y
CONFIG_MMU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
# CONFIG_GENERIC_IOMAP is not set
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
CONFIG_AUDIT=y
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=17
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
CONFIG_CGROUP_NS=y
# CONFIG_CGROUP_FREEZER is not set
CONFIG_CGROUP_DEVICE=y
CONFIG_GROUP_SCHED=y
# CONFIG_FAIR_GROUP_SCHED is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not set
CONFIG_CGROUP_CPUACCT=y
# CONFIG_RESOURCE_COUNTERS is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
CONFIG_RELAY=y
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_IPC_NS is not set
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_EXTRA_PASS=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
CONFIG_COMPAT_BRK=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_PROFILING=y
# CONFIG_MARKERS is not set
CONFIG_OPROFILE=m
CONFIG_HAVE_OPROFILE=y
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_INTEGRITY is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_CLASSIC_RCU=y
# CONFIG_FREEZER is not set
#
# System setup
#
CONFIG_ALPHA_GENERIC=y
# CONFIG_ALPHA_ALCOR is not set
# CONFIG_ALPHA_XL is not set
# CONFIG_ALPHA_BOOK1 is not set
# CONFIG_ALPHA_AVANTI_CH is not set
# CONFIG_ALPHA_CABRIOLET is not set
# CONFIG_ALPHA_DP264 is not set
# CONFIG_ALPHA_EB164 is not set
# CONFIG_ALPHA_EB64P_CH is not set
# CONFIG_ALPHA_EB66 is not set
# CONFIG_ALPHA_EB66P is not set
# CONFIG_ALPHA_EIGER is not set
# CONFIG_ALPHA_JENSEN is not set
# CONFIG_ALPHA_LX164 is not set
# CONFIG_ALPHA_LYNX is not set
# CONFIG_ALPHA_MARVEL is not set
# CONFIG_ALPHA_MIATA is not set
# CONFIG_ALPHA_MIKASA is not set
# CONFIG_ALPHA_NAUTILUS is not set
# CONFIG_ALPHA_NONAME_CH is not set
# CONFIG_ALPHA_NORITAKE is not set
# CONFIG_ALPHA_PC164 is not set
# CONFIG_ALPHA_P2K is not set
# CONFIG_ALPHA_RAWHIDE is not set
# CONFIG_ALPHA_RUFFIAN is not set
# CONFIG_ALPHA_RX164 is not set
# CONFIG_ALPHA_SX164 is not set
# CONFIG_ALPHA_SABLE is not set
# CONFIG_ALPHA_SHARK is not set
# CONFIG_ALPHA_TAKARA is not set
# CONFIG_ALPHA_TITAN is not set
# CONFIG_ALPHA_WILDFIRE is not set
CONFIG_ISA=y
CONFIG_ISA_DMA_API=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_SYSCALL=y
CONFIG_IOMMU_HELPER=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ALPHA_BROKEN_IRQ_MASK=y
CONFIG_VGA_HOSE=y
CONFIG_EISA=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
# CONFIG_SMP is not set
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_RESOURCES_64BIT=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_UNEVICTABLE_LRU=y
CONFIG_VERBOSE_MCHECK=y
CONFIG_VERBOSE_MCHECK_ON=1
CONFIG_HZ=1024
# CONFIG_ARCH_SUPPORTS_MSI is not set
CONFIG_PCI_LEGACY=y
# CONFIG_PCI_DEBUG is not set
CONFIG_EISA_PCI_EISA=y
CONFIG_EISA_VIRTUAL_ROOT=y
CONFIG_EISA_NAMES=y
CONFIG_PCCARD=y
[...3032 lines suppressed...]
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_SHIRQ=y
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
CONFIG_SCHED_DEBUG=y
CONFIG_SCHEDSTATS=y
CONFIG_TIMER_STATS=y
# CONFIG_DEBUG_OBJECTS is not set
CONFIG_SLUB_DEBUG_ON=y
# CONFIG_SLUB_STATS is not set
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_PI_LIST=y
# CONFIG_RT_MUTEX_TESTER is not set
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_VM=y
# CONFIG_DEBUG_WRITECOUNT is not set
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_DEBUG_LIST=y
# CONFIG_DEBUG_SG is not set
CONFIG_BOOT_PRINTK_DELAY=y
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
CONFIG_FAULT_INJECTION=y
CONFIG_FAILSLAB=y
CONFIG_FAIL_PAGE_ALLOC=y
CONFIG_FAIL_MAKE_REQUEST=y
# CONFIG_FAIL_IO_TIMEOUT is not set
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_SYSCTL_SYSCALL_CHECK=y
#
# Tracers
#
# CONFIG_SCHED_TRACER is not set
# CONFIG_CONTEXT_SWITCH_TRACER is not set
# CONFIG_BOOT_TRACER is not set
# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
# CONFIG_BUILD_DOCSRC is not set
# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
# CONFIG_SAMPLES is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_ALPHA_LEGACY_START_ADDRESS is not set
CONFIG_MATHEMU=y
#
# Security options
#
CONFIG_KEYS=y
CONFIG_KEYS_DEBUG_PROC_KEYS=y
CONFIG_SECURITY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_FILE_CAPABILITIES=y
# CONFIG_SECURITY_ROOTPLUG is not set
CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
CONFIG_SECURITY_SELINUX_DISABLE=y
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
# CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT is not set
# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
# CONFIG_SECURITY_SMACK is not set
CONFIG_XOR_BLOCKS=m
CONFIG_ASYNC_CORE=m
CONFIG_ASYNC_MEMCPY=m
CONFIG_ASYNC_XOR=m
CONFIG_CRYPTO=y
#
# Crypto core or helper
#
# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_NULL=m
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_AUTHENC=m
# CONFIG_CRYPTO_TEST is not set
#
# Authenticated Encryption with Associated Data
#
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_SEQIV is not set
#
# Block modes
#
CONFIG_CRYPTO_CBC=m
# CONFIG_CRYPTO_CTR is not set
CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_XTS=m
#
# Hash modes
#
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_XCBC=m
#
# Digest
#
CONFIG_CRYPTO_CRC32C=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
# CONFIG_CRYPTO_RMD128 is not set
# CONFIG_CRYPTO_RMD160 is not set
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_WP512=m
#
# Ciphers
#
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m
# CONFIG_CRYPTO_SALSA20 is not set
CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
#
# Compression
#
CONFIG_CRYPTO_DEFLATE=m
# CONFIG_CRYPTO_LZO is not set
#
# Random Number Generation
#
# CONFIG_CRYPTO_ANSI_CPRNG is not set
CONFIG_CRYPTO_HW=y
# CONFIG_CRYPTO_DEV_HIFN_795X is not set
#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
# CONFIG_CRC_T10DIF is not set
CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
CONFIG_LIBCRC32C=m
CONFIG_AUDIT_GENERIC=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_REED_SOLOMON=m
CONFIG_REED_SOLOMON_DEC16=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
--- NEW FILE config-alpha-smp ---
CONFIG_SMP=y
CONFIG_NR_CPUS=16
linux-2.6-alpha-eepro100-cleanup.patch:
--- NEW FILE linux-2.6-alpha-eepro100-cleanup.patch ---
--- a/drivers/net/eepro100.c.ORIG 2008-04-30 18:47:27.000000000 -0400
+++ b/drivers/net/eepro100.c 2008-04-30 18:51:31.000000000 -0400
@@ -487,7 +487,7 @@ static void speedo_tx_timeout(struct net
static int speedo_start_xmit(struct sk_buff *skb, struct net_device *dev);
static void speedo_refill_rx_buffers(struct net_device *dev, int force);
static int speedo_rx(struct net_device *dev);
-static void speedo_tx_buffer_gc(struct net_device *dev);
+static void speedo_tx_buffer_gc(struct net_device *dev, int flg);
static irqreturn_t speedo_interrupt(int irq, void *dev_instance);
static int speedo_close(struct net_device *dev);
static struct net_device_stats *speedo_get_stats(struct net_device *dev);
@@ -1383,7 +1383,7 @@ static void speedo_tx_timeout(struct net
/* Disable interrupts. */
iowrite16(SCBMaskAll, ioaddr + SCBCmd);
synchronize_irq(dev->irq);
- speedo_tx_buffer_gc(dev);
+ speedo_tx_buffer_gc(dev, 1);
/* Free as much as possible.
It helps to recover from a hang because of out-of-memory.
It also simplifies speedo_resume() in case TX ring is full or
@@ -1476,7 +1476,7 @@ speedo_start_xmit(struct sk_buff *skb, s
return 0;
}
-static void speedo_tx_buffer_gc(struct net_device *dev)
+static void speedo_tx_buffer_gc(struct net_device *dev, int flg)
{
unsigned int dirty_tx;
struct speedo_private *sp = netdev_priv(dev);
@@ -1521,8 +1521,8 @@ static void speedo_tx_buffer_gc(struct n
while (sp->mc_setup_head != NULL
&& (int)(dirty_tx - sp->mc_setup_head->tx - 1) > 0) {
struct speedo_mc_block *t;
- if (netif_msg_tx_err(sp))
- printk(KERN_DEBUG "%s: freeing mc frame.\n", dev->name);
+ if (flg && netif_msg_tx_err(sp))
+ printk(KERN_DEBUG "%s: Freeing mc frame.\n", dev->name);
pci_unmap_single(sp->pdev, sp->mc_setup_head->frame_dma,
sp->mc_setup_head->len, PCI_DMA_TODEVICE);
t = sp->mc_setup_head->next;
@@ -1607,7 +1607,7 @@ static irqreturn_t speedo_interrupt(int
/* User interrupt, Command/Tx unit interrupt or CU not active. */
if (status & 0xA400) {
- speedo_tx_buffer_gc(dev);
+ speedo_tx_buffer_gc(dev, 0);
if (sp->tx_full
&& (int)(sp->cur_tx - sp->dirty_tx) < TX_QUEUE_UNFULL) {
/* The ring is no longer full. */
linux-2.6-alpha-pci.c.patch:
--- NEW FILE linux-2.6-alpha-pci.c.patch ---
--- a/arch/alpha/kernel/pci.c.ORIG 2008-10-17 13:10:37.000000000 -0400
+++ a/arch/alpha/kernel/pci.c 2008-10-22 08:51:27.000000000 -0400
@@ -560,6 +560,176 @@ void pci_iounmap(struct pci_dev *dev, vo
EXPORT_SYMBOL(pci_iomap);
EXPORT_SYMBOL(pci_iounmap);
+/* Platform support for /proc/bus/pci/X/Y mmap()s. */
+
+/* If the user uses a host-bridge as the PCI device, he may use
+ * this to perform a raw mmap() of the I/O or MEM space behind
+ * that controller.
+ *
+ * This can be useful for execution of x86 PCI bios initialization code
+ * on a PCI card, like the xfree86 int10 stuff does.
+ */
+static int __pci_mmap_make_offset_bus(struct pci_dev *pdev,
+ struct vm_area_struct *vma,
+ enum pci_mmap_state mmap_state)
+{
+ struct pci_controller *hose = pdev->sysdata;
+ unsigned long space_size, user_offset, user_size;
+
+ if (mmap_state == pci_mmap_io) {
+ space_size = (hose->io_space->end -
+ hose->io_space->start) + 1;
+ } else {
+ space_size = (hose->mem_space->end -
+ hose->mem_space->start) + 1;
+ }
+
+ /* Make sure the request is in range. */
+ user_offset = vma->vm_pgoff << PAGE_SHIFT;
+ user_size = vma->vm_end - vma->vm_start;
+
+ if (user_offset >= space_size ||
+ (user_offset + user_size) > space_size)
+ return -EINVAL;
+
+ /* FIXME FIXME: for now, only worry about DENSE IO and MEM */
+ if (mmap_state == pci_mmap_io) {
+ vma->vm_pgoff = (hose->dense_io_base +
+ user_offset) >> PAGE_SHIFT;
+ } else {
+ vma->vm_pgoff = (hose->dense_mem_base +
+ user_offset) >> PAGE_SHIFT;
+ }
+
+ return 0;
+}
+
+/* Adjust vm_pgoff of VMA such that it is the physical page offset
+ * corresponding to the 32-bit pci bus offset for DEV requested by the user.
+ *
+ * Basically, the user finds the base address for his device which he wishes
+ * to mmap. They read the 32-bit value from the config space base register,
+ * add whatever PAGE_SIZE multiple offset they wish, and feed this into the
+ * offset parameter of mmap on /proc/bus/pci/XXX for that device.
+ *
+ * Returns negative error code on failure, zero on success.
+ */
+static int __pci_mmap_make_offset(struct pci_dev *pdev,
+ struct vm_area_struct *vma,
+ enum pci_mmap_state mmap_state)
+{
+ unsigned long user_paddr, user_size;
+ int i, err;
+ unsigned long orig_user_paddr = vma->vm_pgoff << PAGE_SHIFT;
+
+ /* First compute the physical address in vma->vm_pgoff,
+ * making sure the user offset is within range in the
+ * appropriate PCI space.
+ */
+ err = __pci_mmap_make_offset_bus(pdev, vma, mmap_state);
+ if (err)
+ return err;
+
+ /* If this is a mapping on a host bridge, any address
+ * is OK.
+ */
+ if ((pdev->class >> 8) == PCI_CLASS_BRIDGE_HOST)
+ return err;
+
+ /* Otherwise make sure it's in the range for one of the
+ * device's resources.
+ */
+ user_paddr = vma->vm_pgoff << PAGE_SHIFT;
+ user_size = vma->vm_end - vma->vm_start;
+
+ for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
+ struct resource *rp = &pdev->resource[i];
+
+ /* Active? */
+ if (!rp->flags)
+ continue;
+
+ /* Same type? */
+ if (i == PCI_ROM_RESOURCE) {
+ if (mmap_state != pci_mmap_mem)
+ continue;
+ } else {
+ if ((mmap_state == pci_mmap_io &&
+ (rp->flags & IORESOURCE_IO) == 0) ||
+ (mmap_state == pci_mmap_mem &&
+ (rp->flags & IORESOURCE_MEM) == 0))
+ continue;
+ }
+
+ if ((rp->start <= user_paddr) &&
+ (user_paddr + user_size) <= (rp->end + 1UL))
+ break;
+ if ((rp->start <= orig_user_paddr) &&
+ (orig_user_paddr + user_size) <= (rp->end + 1UL)) {
+ printk(KERN_WARNING "pci: res-range w/o bus base\n");
+ break;
+ }
+ }
+
+ if (i > PCI_ROM_RESOURCE)
+ return -EINVAL;
+
+ return 0;
+}
+
+/* Set vm_flags of VMA, as appropriate for this architecture, for a pci device
+ * mapping.
+ */
+static void __pci_mmap_set_flags(struct pci_dev *dev,
+ struct vm_area_struct *vma,
+ enum pci_mmap_state mmap_state)
+{
+ vma->vm_flags |= (VM_IO | VM_RESERVED);
+}
+
+/* Set vm_page_prot of VMA, as appropriate for this architecture, for a pci
+ * device mapping.
+ */
+static void __pci_mmap_set_pgprot(struct pci_dev *dev,
+ struct vm_area_struct *vma,
+ enum pci_mmap_state mmap_state)
+{
+ /* FIXME FIXME *//* Our io_remap_pfn_range takes care of this, do nothing. */
+}
+
+/* Perform the actual remap of the pages for a PCI device mapping, as appropriate
+ * for this architecture. The region in the process to map is described by vm_start
+ * and vm_end members of VMA, the base physical address is found in vm_pgoff.
+ * The pci device structure is provided so that architectures may make mapping
+ * decisions on a per-device or per-bus basis.
+ *
+ * Returns a negative error code on failure, zero on success.
+ */
+int pci_mmap_page_range(struct pci_dev *dev,
+ struct vm_area_struct *vma,
+ enum pci_mmap_state mmap_state,
+ int write_combine)
+{
+ int ret;
+
+ ret = __pci_mmap_make_offset(dev, vma, mmap_state);
+ if (ret < 0)
+ return ret;
+
+ __pci_mmap_set_flags(dev, vma, mmap_state);
+ __pci_mmap_set_pgprot(dev, vma, mmap_state);
+
+ vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
+ ret = io_remap_pfn_range(vma, vma->vm_start,
+ vma->vm_pgoff,
+ vma->vm_end - vma->vm_start,
+ vma->vm_page_prot);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
/* FIXME: Some boxes have multiple ISA bridges! */
struct pci_dev *isa_bridge;
EXPORT_SYMBOL(isa_bridge);
linux-2.6-alpha-pci_get_bus_and_slot.patch:
--- NEW FILE linux-2.6-alpha-pci_get_bus_and_slot.patch ---
--- linux/drivers/pci/search.c.ORIG 2007-11-07 14:44:41.000000000 -0500
+++ linux/drivers/pci/search.c 2007-11-07 14:48:02.000000000 -0500
@@ -145,7 +145,9 @@ struct pci_dev * pci_get_slot(struct pci
* device resides and the logical device number within that slot
* in case of multi-function devices.
*
- * Note: the bus/slot search is limited to PCI domain (segment) 0.
+ * Note: the bus/slot search is limited to PCI domain (segment) 0,
+ * EXCEPT on Alpha which requires ALL domains to be searched,
+ * thank you VERY much.
*
* Given a PCI bus and slot/function number, the desired PCI device
* is located in system global list of PCI devices. If the device
@@ -159,8 +161,12 @@ struct pci_dev * pci_get_bus_and_slot(un
struct pci_dev *dev = NULL;
while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
- if (pci_domain_nr(dev->bus) == 0 &&
- (dev->bus->number == bus && dev->devfn == devfn))
+ if (
+#ifndef __alpha__
+ pci_domain_nr(dev->bus) == 0 &&
+#endif
+ (dev->bus->number == bus && dev->devfn == devfn)
+ )
return dev;
}
return NULL;
linux-2.6.28-alpha-exec_range.patch:
--- NEW FILE linux-2.6.28-alpha-exec_range.patch ---
--- linux-2.6.28.alpha/arch/alpha/include/asm/pgalloc.h.alpha-exec_range 2009-02-12 12:07:47.000000000 +0100
+++ linux-2.6.28.alpha/arch/alpha/include/asm/pgalloc.h 2009-02-12 12:08:19.000000000 +0100
@@ -80,4 +80,8 @@ pte_free(struct mm_struct *mm, pgtable_t
#define check_pgt_cache() do { } while (0)
+#define arch_add_exec_range(mm, limit) do { ; } while (0)
+#define arch_flush_exec_range(mm) do { ; } while (0)
+#define arch_remove_exec_range(mm, limit) do { ; } while (0)
+
#endif /* _ALPHA_PGALLOC_H */
linux-2.6.28-alpha-pci.h.patch:
--- NEW FILE linux-2.6.28-alpha-pci.h.patch ---
diff -up linux-2.6.28.alpha/arch/alpha/include/asm/pci.h.ORIG linux-2.6.28.alpha/arch/alpha/include/asm/pci.h
--- linux-2.6.28.alpha/arch/alpha/include/asm/pci.h.ORIG 2009-02-13 04:31:18.000000000 +0100
+++ linux-2.6.28.alpha/arch/alpha/include/asm/pci.h 2009-02-13 04:32:01.000000000 +0100
@@ -225,6 +225,16 @@ static inline void pci_dma_burst_advice(
}
#endif
+/* Platform support for /proc/bus/pci/X/Y mmap()s. */
+
+#define HAVE_PCI_MMAP
+
+extern int pci_mmap_page_range(struct pci_dev *dev,
+ struct vm_area_struct *vma,
+ enum pci_mmap_state mmap_state,
+ int write_combine);
+
+
/* TODO: integrate with include/asm-generic/pci.h ? */
static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
{
Index: Makefile.config
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/Makefile.config,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- Makefile.config 30 Oct 2008 04:41:11 -0000 1.64
+++ Makefile.config 12 Mar 2009 12:57:36 -0000 1.65
@@ -13,9 +13,10 @@
$(CFG)-ppc.config $(CFG)-ppc-smp.config \
$(CFG)-sparc64.config $(CFG)-sparc64-smp.config \
$(CFG)-ppc64.config $(CFG)-ppc64-kdump.config $(CFG)-ppc64-debug.config \
- $(CFG)-ia64.config
+ $(CFG)-ia64.config \
+ $(CFG)-alpha.config $(CFG)-alpha-smp.config
-PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390x ia64 sparc64
+PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390x ia64 sparc64 alpha
TEMPFILES = $(addprefix temp-, $(addsuffix -generic, $(PLATFORMS)))
configs: $(CONFIGFILES)
@@ -63,6 +64,9 @@
temp-ia64-generic: config-ia64-generic temp-generic
perl merge.pl $^ > $@
+temp-alpha-generic: config-alpha-generic temp-generic
+ perl merge.pl $^ > $@
+
kernel-$(VERSION)-i686.config: config-i686 temp-x86-generic
perl merge.pl $^ i386 > $@
@@ -110,3 +114,9 @@
kernel-$(VERSION)-ia64.config: /dev/null temp-ia64-generic
perl merge.pl $^ ia64 > $@
+
+kernel-$(VERSION)-alpha.config: /dev/null temp-alpha-generic
+ perl merge.pl $^ alpha > $@
+
+kernel-$(VERSION)-alpha-smp.config: config-alpha-smp temp-alpha-generic
+ perl merge.pl $^ alpha > $@
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/kernel.spec,v
retrieving revision 1.898
retrieving revision 1.899
diff -u -r1.898 -r1.899
--- kernel.spec 27 Jan 2009 03:53:33 -0000 1.898
+++ kernel.spec 12 Mar 2009 12:57:36 -0000 1.899
@@ -74,7 +74,7 @@
#
# standard kernel
%define with_up %{?_without_up: 0} %{?!_without_up: 1}
-# kernel-smp (only valid for ppc 32-bit, sparc64)
+# kernel-smp (only valid for ppc 32-bit, sparc64 and alpha)
%define with_smp %{?_without_smp: 0} %{?!_without_smp: 1}
# kernel-PAE (only valid for i686)
%define with_pae %{?_without_pae: 0} %{?!_without_pae: 1}
@@ -223,8 +223,8 @@
# Overrides for generic default options
-# only ppc and sparc64 need separate smp kernels
-%ifnarch ppc sparc64 alphaev56
+# only ppc, sparc64, alpha need separate smp kernels
+%ifnarch ppc sparc64 alpha
%define with_smp 0
%endif
@@ -339,11 +339,13 @@
%define kernel_image vmlinux.gz
%endif
-%ifarch alpha alphaev56
+%ifarch alpha
%define all_arch_configs kernel-%{version}-alpha*.config
%define image_install_path boot
-%define make_target vmlinux
%define kernel_image vmlinux
+%define make_target boot
+%define kernel_image arch/alpha/boot/vmlinux.gz
+%define kernel_image_elf 1
%endif
%if %{nopatches}
@@ -462,7 +464,7 @@
Release: %{pkg_release}
# DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD.
# SET %%nobuildarches (ABOVE) INSTEAD
-ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ia64 sparc sparc64 s390x alpha alphaev56
+ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ia64 sparc sparc64 s390x alpha
ExclusiveOS: Linux
%kernel_reqprovconf
@@ -531,6 +533,9 @@
Source90: config-sparc64-generic
Source91: config-sparc64-smp
+Source100: config-alpha-generic
+Source101: config-alpha-smp
+
# Here should be only the patches up to the upstream canonical Linus tree.
# For a stable release kernel
@@ -679,6 +684,13 @@
Patch9000: skip-sanity-check-of-busy-resources.patch
+# Alpha-specific patches
+Patch10000: linux-2.6.28-alpha-exec_range.patch
+Patch10001: linux-2.6-alpha-pci_get_bus_and_slot.patch
+Patch10002: linux-2.6-alpha-eepro100-cleanup.patch
+Patch10003: linux-2.6.28-alpha-pci.h.patch
+Patch10004: linux-2.6-alpha-pci.c.patch
+
%endif
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -1200,6 +1212,14 @@
# fix #480700, acpi ec ioremap WARN_ON
ApplyPatch skip-sanity-check-of-busy-resources.patch
+# Alpha specific patches
+ApplyPatch linux-2.6.28-alpha-exec_range.patch
+ApplyPatch linux-2.6-alpha-pci_get_bus_and_slot.patch
+ApplyPatch linux-2.6-alpha-eepro100-cleanup.patch
+ApplyPatch linux-2.6.28-alpha-pci.h.patch
+ApplyPatch linux-2.6-alpha-pci.c.patch
+
+
# END OF PATCH APPLICATIONS
%endif
@@ -1775,6 +1795,19 @@
%kernel_variant_files -k vmlinux %{with_kdump} kdump
%changelog
+* Wed Mar 11 2009 Oliver Falk <oliver at linux-kernel.at> 2.6.28.2-7
+- Modify kernel spec to build on alpha again
+- Remove all alphaev* from spec, as we only build for 'alpha'
+- Patches for alpha:
+ - linux-2.6.28-alpha-exec_range.patch
+ - add execshield dummy functions for alpha
+ - linux-2.6-alpha-pci_get_bus_and_slot.patch
+ - Do not limit bus/slot search to PCI domain 0 on alpha
+ - linux-2.6-alpha-eepro100-cleanup.patch
+ - cleanup extraneous "freeing mc frame" messages from driver
+ - linux-2.6.28-alpha-pci.h.patch, linux-2.6-alpha-pci.c.patch
+ - Platform support for /proc/bus/pci/X/Y mmap()s
+
* Mon Jan 26 2009 Kyle McMartin <kyle at redhat.com> - 2.6.28.2-6
- add skip-sanity-check-of-busy-resources.patch, fixes #480700, ioremap
sanity check WARN_ON due to acpi ec.
- Previous message (by thread): rpms/openoffice.org/devel workspace.transogl03redux.patch,1.3,1.4
- Next message (by thread): rpms/libselinux/devel libselinux-2.0.77-nlfd.patch, NONE, 1.1 .cvsignore, 1.180, 1.181 libselinux-rhat.patch, 1.185, 1.186 libselinux.spec, 1.362, 1.363 sources, 1.183, 1.184
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list