summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] Make sure to always check upper bits of tv_nsec in timespec_valid.Chris Wright2006-01-311-1/+1
| | | | | Signed-off-by: Chris Wright <chrisw@sous-sol.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/bnx2-2.6Linus Torvalds2006-01-313-524/+643
|\
| * [BNX2]: Update version and copyright yearMichael Chan2006-01-233-8/+7
| | | | | | | | | | | | | | | | | | Update version to 1.4.31 and add 2006 copyright. Skip the last digit when reporting the firmware version. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [BNX2]: Add PHY loopback testMichael Chan2006-01-231-22/+79
| | | | | | | | | | | | | | Enhance the ethtool loopback test with PHY loopback test. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [BNX2]: Use netdev_priv()Michael Chan2006-01-231-40/+40
| | | | | | | | | | | | | | Replace dev->priv with netdev_priv(dev) Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [BNX2]: Fix nvram sizingMichael Chan2006-01-232-3/+14
| | | | | | | | | | | | | | Add code to correctly determine nvram size. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [BNX2]: Workaround hw interrupt bugMichael Chan2006-01-231-2/+17
| | | | | | | | | | | | | | | | | | Add workaround for a hardware interrupt issue. When using INTA, unmasking of the interrupt and the tag update should be done separately to avoid some spurious interrupts, Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [BNX2]: Fix UDP checksum verificationMichael Chan2006-01-233-418/+439
| | | | | | | | | | | | | | | | | | | | | | | | Fix TCP/UDP checksum verification. Use status bits in the buffer descriptor instead of the checksum value to verify rx checksum. Using the checksum value will be incorrect if the UDP packet has zero in the UDP checksum field. Firmware update required for this fix. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [BNX2]: Misc. fixesMichael Chan2006-01-232-6/+15
| | | | | | | | | | | | | | Some misc. fixes for WoL, 5708 B1, and a typo '=' instead of '=='. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [BNX2]: Improve handshake with firmwareMichael Chan2006-01-232-23/+25
| | | | | | | | | | | | | | | | | | | | | | Improve handshake with bootcode with the following changes: 1. Increase timeout to 100msec and use msleep instead of udelay. 2. Add more error checking for timeouts and errors. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [BNX2]: Fix VLAN on ASFMichael Chan2006-01-232-3/+8
| | | | | | | | | | | | | | | | | | Always set up the device to strip incoming VLAN tags when ASF is enabled. ASF firmware will not parse packets correctly if VLAN tags are not stripped. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds2006-01-319-45/+51
|\ \
| * | [DCCP] ipv6: dccp_v6_send_response() has a DST leak too.David S. Miller2006-01-311-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | It was copy&pasted from tcp_v6_send_synack() which has a DST leak recently fixed by Eric W. Biederman. So dccp_v6_send_response() needs the same fix too. Signed-off-by: David S. Miller <davem@davemloft.net>
| * | [IPV6] tcp_v6_send_synack: release the destinationEric W. Biederman2006-01-311-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fix dst reference counting in tcp_v6_send_synack Analysis: Currently tcp_v6_send_synack is never called with a dst entry so dst always comes in as NULL. ip6_dst_lookup calls ip6_route_output which calls dst_hold before it returns the dst entry. Neither xfrm_lookup nor tcp_make_synack consume the dst entry so we still have a dst_entry with a bumped refrence count at the end of this function. Therefore we need to call dst_release just before we return just like tcp_v4_send_synack does. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | [NET]: Do not export inet_bind_bucket_create twice.Sam Ravnborg2006-01-311-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | inet_bind_bucket_create was exported twice. Keep the export in the file where inet_bind_bucket_create is defined. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | [BRIDGE]: Fix device delete race.Stephen Hemminger2006-01-312-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a simpler fix for the two races in bridge device removal. The Xen race of delif and notify is managed now by a new deleted flag. No need for barriers or other locking because of rtnl mutex. The del_timer_sync()'s are unnecessary, because br_stp_disable_port delete's the timers, and they will finish running before RCU callback. Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | [IPV4]: Always set fl.proto in ip_route_newportsPatrick McHardy2006-01-313-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ip_route_newports uses the struct flowi from the struct rtable returned by ip_route_connect for the new route lookup and just replaces the port numbers if they have changed. If an IPsec policy exists which doesn't match port 0 the struct flowi won't have the proto field set and no xfrm lookup is done for the changed ports. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | [SUNGEM]: Unbreak Sun GEM chips.David S. Miller2006-01-312-34/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert: 40727198bfb2ce5842a6e8c7f89cf8a40ff7bf14 These PHY changes hang the sungem driver on startup with Sun chips on sparc64. Hopefully we can redo these changes in a way that doesn't break non-Apple systems. Signed-off-by: David S. Miller <davem@davemloft.net>
* | | Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6Linus Torvalds2006-01-3121-404/+294
|\ \ \
| * | | [PATCH] PCI: handle bogus MCFG entriesAndi Kleen2006-01-312-7/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Handle more bogus MCFG entries Some Asus P4 boards seem to have broken MCFG tables with only a single entry for busses 0-0. Special case these and assume they mean all busses can be accessed. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] PCI: cyblafb: remove pci_module_init() return, really.Arthur Othieno2006-01-311-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Richard Knutsson <ricknu-0@student.ltu.se> did the original pci_module_init() cleanups: http://marc.theaimsgroup.com/?l=linux-kernel&m=113330872125068&w=2 http://marc.theaimsgroup.com/?l=linux-kernel&m=113330888507321&w=2 Greg, on it's way upstream, pci_module_init() return sneaked back in for cyblafb? http://marc.theaimsgroup.com/?l=linux-pci&m=113652969209562&w=2 http://marc.theaimsgroup.com/?l=linux-pci&m=113683930220421&w=2 Remove for good. Signed-off-by: Arthur Othieno <apgo@patchbomb.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] powerpc/PCI hotplug: shuffle error checking to better location.linas@austin.ibm.com2006-01-311-22/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Error checking is scattered through various layers of the dlpar code, leading to a somewhat opaque code structure. This patch consolidates error checking in one routine, simplifying the code a tad. There's also some whitespace cleanup here too. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Acked-by: John Rose <johnrose@austin.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] powerpc/PCI hotplug: minor cleanup forward declslinas@austin.ibm.com2006-01-311-19/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Minor cleanup. Move structure initializer to bottom of file, this allows elimination of eyeball-strain-inducing forward declarations. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Acked-by: John Rose <johnrose@austin.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] powerpc/PCI hotplug: cleanup: add prefixlinas@austin.ibm.com2006-01-315-24/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Minor cleanup. Add the prefix rpaphp_* to several generic-sounding routines. Remove rpaphp_remove_slot(), which is a one-liner. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Acked-by: John Rose <johnrose@austin.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] powerpc/PCI hotplug: merge rpaphp_enable_pci_slot()linas@austin.ibm.com2006-01-313-39/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove general baroqueness. The function rpaphp_enable_pci_slot() has a fairly simple logic structure, once all of the debug printk's are removed. Its called from only one place, and that place also has a very simple structure once he printk's are removed. Merge the two together. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Acked-by: John Rose <johnrose@austin.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] powerpc/PCI hotplug: de-convolute rpaphp_unconfig_pci_adaplinas@austin.ibm.com2006-01-314-29/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove general baroqueness. The function rpaphp_unconfig_pci_adapter() is really just three lines of code, once all the dbg printks are removed. And its called in only one place. So replace the call by the thre lines. Also, provide proper semaphore locking in the affected function disable_slot() Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Acked-by: John Rose <johnrose@austin.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] powerpc/PCI hotplug: remove remove_bus_device()linas@austin.ibm.com2006-01-311-19/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function rpaphp_eeh_remove_bus_device() is a dupe of eeh_remove_bus_device(). Remove it. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Acked-by: John Rose <johnrose@austin.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] powerpc/PCI hotplug: merge config_pci_adapterlinas@austin.ibm.com2006-01-312-32/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove general baroqueness. The function rpaphp_config_pci_adapter() is really just one line of code, once all the dbg printks are removed. And its called in only one place. So replace the call by the one line. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Acked-by: John Rose <johnrose@austin.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] powerpc/PCI hotplug: remove rpaphp_fixup_new_pci_devices()linas@austin.ibm.com2006-01-313-143/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function rpaphp_fixup_new_pci_devices() has been migrated to pcibios_fixup_new_pci_devices() in arch/powerpc/platforms/pseries/pci_dlpar.c This patch removes the old version. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Acked-by: John Rose <johnrose@austin.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] powerpc/PCI hotplug: remove rpaphp_find_bus()linas@austin.ibm.com2006-01-313-38/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function rpaphp_find_pci_bus() has been migrated to pcibios_find_pci_bus() in arch/powerpc/platforms/pseries/pci_dlpar.c This patch removes the old version. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Acked-by: John Rose <johnrose@austin.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] PCI Hotplug: shpchp: AMD POGO errata fixKeck, David2006-01-312-1/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the AMD POGO errata on the hotplug controller where the platform will lock up or reboot if PERR/SERR generation is enabled and a slot is sent an enable command. This fix disables PERR/SERR generation before a slot is sent the enable command by first saving related registers, turning off SERR/PERR generation, enabling the slot, then restoring the registers. Signed-off-by: David Keck <david.keck@amd.com> Cc: Kristen Accardi <kristen.c.accardi@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] PCI Hotplug: PCI panic on dlpar add (add pci slot to running partition)linas2006-01-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removing and then adding a PCI slot to a running partition results in a kernel panic. The current code attempts to add iospace for an entire root bus, which is inappropriate, and silently fails. When a pci device tries to use the iospace, a page fault is taken, as the iospace had not been mapped, and of course the page fault cannot be resolved. This only occurs for PCI adapters using pio, which may be why it hadn't been seen earlier (this seems to have been broken for a while). This patch has survived testing of dozens of slot add and removes. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Acked-by: John Rose <johnrose@austin.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] PCI Hotplug/powerpc: module build breaklinas2006-01-311-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The RPAPHP hoplug driver will not build as a module, because it calls on pci_claim_resource(), which is not exported. This exports the symbol. Problem reported by Olaf Hering <olh@suse.de> A grep indicates that building drivers/parisc/lba_pci.c would have trouble building as a module for the same reason. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] PCI: pci_ids: remove duplicates gathered during merge periodGrant Coady2006-01-311-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | pci_ids.h: remove duplicates. Compile tested allmodconfig. Signed-off-by: Grant Coady <gcoady@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] PCI: restore 2 missing pci idsMark Rustad2006-01-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Somewhere between 2.6.14 and 2.6.15-rc3, some PCI ids were apparently removed. The ecc.c module, which is not a part of the kernel.org tree, but included in some distributions, fails to compile. Signed-off-by: Mark Rustad <mrustad@mac.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] PCI Hotplug: fix up Kconfig help textPavel Machek2006-01-311-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | Remove reference to pcihpfs that no longer exists. Signed-off-by: Pavel Machek <pavel@suse.cz>
| * | | [PATCH] PCI Hotplug: fix up coding style issuesPavel Machek2006-01-312-14/+11
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Pavel Machek <pavel@suse.cz> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] PCI: make it easier to see that set_msi_affinity() is usedGrant Grundler2006-01-312-9/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I missed this usage in drivers/pci/msi.h: #ifdef CONFIG_SMP #define set_msi_irq_affinity set_msi_affinity #else #define set_msi_irq_affinity NULL #endif set_msi_affinity() is declared and exclusively used in msi.c. Here's a better way so (hopefully) history doesn't repeat itself. Signed-off-by: Grant Grundler <iod00d@hp.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] PCI: drivers/pci/pci.c: #if 0 pci_find_ext_capability()Adrian Bunk2006-01-312-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch #if 0's the unused global function pci_find_ext_capability(). Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] PCI: irq and pci_ids: patch for Intel ICH8Jason Gaston2006-01-312-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the Intel ICH8 DID's to the irq.c and pci_ids.h files. Signed-off-by: Jason Gaston <Jason.d.gaston@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] pci: Schedule removal of pci_module_initRichard Knutsson2006-01-311-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Scheduled the removal of pci_module_init. Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | [PATCH] PCI: schedule PCI_LEGACY_PROC for removalAdrian Bunk2006-01-311-0/+7
| |/ / | | | | | | | | | | | | | | | | | | PCI_LEGACY_PROC is deprecated since 2.5.53 in favor of lspci(8). Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | | [PATCH] USB: gadget zero and dma-coherent buffersDavid Brownell2006-01-311-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes sure that the correct length is reported when freeing a dma-coherent buffer; some platforms complain if that's wrong. It also makes two parameters readonly in sysfs, as they're not safe to change while tests are running. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | | [PATCH] USB: USB authentication statesDavid Brownell2006-01-311-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Another hook needed for wireless USB: there are states associated with the device authentication protocol. Wireless devices must authenticate using the host system's keystore. Note that wired connections could also use this authentication protocol, if for no other reason than to support the most secure "simple" key exchange protocols for wireless devices. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | | [PATCH] USB: yealink printk warning fixAndrew Morton2006-01-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | drivers/usb/input/yealink.c: In function `usb_probe': drivers/usb/input/yealink.c:910: warning: int format, different type arg (arg 4) Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | | [PATCH] USB: libusual: fix warning on 64bit boxesAlan Cox2006-01-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We cast an int to a void * which not unreasonably makes gcc suspicious. We don't actually care what type "type" is so use unsigned long so it matches pointer length on all platforms. Signed-off-by: Alan Cox <alan@redhat.com> Acked-by: Pete Zaitcev <zaitcev@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | | [PATCH] USB: arm26: fix compilation of drivers/usb/core/message.cAlexey Dobriyan2006-01-311-0/+1
| | | | | | | | | | | | | | | | | | | | | drivers/usb/core/message.c:395: error: invalid use of undefined type `struct scatterlist' Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | | [PATCH] USB: Au1xx0: replace casual readl() with au_readl() in the driversSergei Shtylylov2006-01-312-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | au_readl() does needed byteswapping, etc. Cc: Takashi Iwai <tiwai@suse.de> Cc: Jaroslav Kysela <perex@perex.cz> Acked-by: Jordan Crouse <jordan.crouse@amd.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | | [PATCH] USB: remove extra newline in hid_init_reportsOlaf Hering2006-01-311-1/+1
| | | | | | | | | | | | | | | | | | | | | The warn() macro in include/linux/usb.h adds a newline. Signed-off-by: Olaf Hering <olh@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | | [PATCH] USB: drivers/usb/media/ov511.c: remove hooks for the decomp moduleAdrian Bunk2006-01-311-194/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - the decomp module is not intended for inclusion into the kernel - people using the decomp module from upstream will usually simply use the complete upstream 2.xx driver Therefore, there seems to be no good reason spending some bytes of kernel memory for hooks for this module. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Mark McClelland <mark@ovcam.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>