- 24 3月, 2011 24 次提交
-
-
由 Mahesh Rajashekhara 提交于
Added new hardware device 0x28b interface for PMC-Sierra's SRC based controller family. - new src.c file for 0x28b specific functions - new XPORT header required - sync. command interface: doorbell bits shifted (SRC_ODR_SHIFT, SRC_IDR_SHIFT) - async. Interface: different inbound queue handling, no outbound I2O queue available, using doorbell ("PmDoorBellResponseSent") and response buffer on the host ("host_rrq") for status - changed AIF (adapter initiated FIBs) interface: "DoorBellAifPending" bit to inform about pending AIF, "AifRequest" command to read AIF, "NoMoreAifDataAvailable" to mark the end of the AIFs Signed-off-by: NMahesh Rajashekhara <aacraid@pmc-sierra.com> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Kashyap, Desai 提交于
Added Vendor specific branding message support. Signed-off-by: NKashyap Desai <kashyap.desai@lsi.com> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Nicholas Bellinger 提交于
This patch adds a target_core_mib.c statistics conversion for backend context struct se_subsystem_dev + struct se_device config_group based statistics in target_core_device.c using CONFIGFS_EATTR() based struct config_item_types from target_core_stat.c code. The conversion from backend /proc/scsi_target/mib/ context output to configfs default groups+attributes include scsi_dev, scsi_lu, and scsi_tgt_dev output from within individual: /sys/kernel/config/target/core/$HBA/DEV/ The legacy procfs output now appear as individual configfs attributes under: *) $HBA/$DEV/statistics/scsi_dev: |-- indx |-- inst |-- ports `-- role *) $HBA/$DEV/statistics/scsi_lu: |-- creation_time |-- dev |-- dev_type |-- full_stat |-- hs_num_cmds |-- indx |-- inst |-- lu_name |-- lun |-- num_cmds |-- prod |-- read_mbytes |-- resets |-- rev |-- state_bit |-- status |-- vend `-- write_mbytes *) $HBA/$DEV/statistics/scsi_tgt_dev: |-- indx |-- inst |-- non_access_lus |-- num_lus |-- resets `-- status The conversion from backend /proc/scsi_target/mib/ context output to configfs default groups+attributes include scsi_port, scsi_tgt_port and scsi_transport output from within individual: /sys/kernel/config/target/fabric/$WWN/tpgt_$TPGT/lun/lun_$LUN_ID/statistics/ The legacy procfs output now appear as individual configfs attributes under: *) fabric/$WWN/tpgt_$TPGT/lun/lun_$LUN_ID/statistics/scsi_port |-- busy_count |-- dev |-- indx |-- inst `-- role *) fabric/$WWN/tpgt_$TPGT/lun/lun_$LUN_ID/statistics/scsi_tgt_port |-- dev |-- hs_in_cmds |-- in_cmds |-- indx |-- inst |-- name |-- port_index |-- read_mbytes `-- write_mbytes *) fabric/$WWN/tpgt_$TPGT/lun/lun_$LUN_ID/statistics/scsi_transport |-- dev_name |-- device |-- indx `-- inst The conversion from backend /proc/scsi_target/mib/ context output to configfs default groups+attributes include scsi_att_intr_port and scsi_auth_intr output from within individual: /sys/kernel/config/target/fabric/$WWN/tpgt_$TPGT/acls/$INITIATOR_WWN/lun_$LUN_ID/statistics/ The legacy procfs output now appear as individual configfs attributes under: *) acls/$INITIATOR_WWN/lun_$LUN_ID/statistics/scsi_att_intr_port |-- dev |-- indx |-- inst |-- port |-- port_auth_indx `-- port_ident *) acls/$INITIATOR_WWN/lun_$LUN_ID/statistics/scsi_auth_intr |-- att_count |-- creation_time |-- dev |-- dev_or_port |-- hs_num_cmds |-- indx |-- inst |-- intr_name |-- map_indx |-- num_cmds |-- port |-- read_mbytes |-- row_status `-- write_mbytes Also, this includes adding struct target_fabric_configfs_template-> tfc_wwn_fabric_stats_cit and ->tfc_tpg_nacl_stat_cit respectively for use during target_core_fabric_configfs.c:target_fabric_setup_cits() Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Axel Lin 提交于
This patch fixes the follownig section mismatch warning: WARNING: vmlinux.o(.text+0x21617a): Section mismatch in reference from the function target_core_init_configfs() to the function .init.text:rd_module_init() The function target_core_init_configfs() references the function __init rd_module_init(). This is often because target_core_init_configfs() lacks a __init annotation or the annotation of rd_module_init is wrong. Signed-off-by: NAxel Lin <axel.lin@gmail.com> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Nicholas Bellinger 提交于
This patch fixes a token typo for the TCM/FILEIO match_table_t used for toggling O_SYNC usage for individual struct file backend access. Reported-by: NChristophe Fergeau <cfergeau@gmail.com> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Nicholas Bellinger 提交于
This patch removes a bogus conditional+return check within the failure path of transport_add_device_to_core_hba(). This breakage was introduced during the v4 conversion to remove struct se_cmd passthrough ops for INQUIRY / READ_CAPCITY during struct se_device creation and registration process. Reported-by: NJulia Lawall <julia@diku.dk> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Jesper Juhl 提交于
In drivers/target/target_core_transport.c::transport_generic_get_mem() there are a few potential memory leaks in the error paths. This patch makes sure that we free previously allocated memory when other allocations fail. It also moves some work (INIT_LIST_HEAD() and assignment to se_mem->se_len) below all the allocations so that if something fails we don't do the work at all. Signed-off-by: NJesper Juhl <jj@chaosbits.net> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Nicholas Bellinger 提交于
This patch changes include/target/target_core_tmr.h code to use target specific 'TMR_*' prefixed definitions for fabric independent SCSI Task Management Request/Request naming in include/scsi/scsi.h definitions for mainline target code. Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Dan Carpenter 提交于
This patch converts rd_build_device_space() to return errno usage for failures in rd_create_virtdevice(). Signed-off-by: NDan Carpenter <error27@gmail.com> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Dan Carpenter 提交于
This patch addresses the majority of sparse warnings and adds proper locking annotations. It also fixes the dubious one-bit signed bitfield, for which the signed one-bit types can be 0 or -1 which can cause a problem if someone ever checks if (foo->lu_gp_assoc == 1). The current code is fine because everyone just checks zero vs non-zero. But Sparse complains about it so lets change it. The warnings look like this: include/target/target_core_base.h:228:26: error: dubious one-bit signed bitfield Signed-off-by: NDan Carpenter <error27@gmail.com> Signed-off-by: NFubo Chen <fubo.chen@gmail.com> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Fubo Chen 提交于
This patch removes a legacy struct se_hba->hba_dev_list -> se_release_device_for_hba() list walk in core_delete_hba(), which is no longer required while using configfs VFS level parent/child struct config_group dependency referencing. The reason is because any struct se_hba->hba_dev_list-> struct se_device members are going to have to be released via: rmdir /sys/kernel/config/target/core/$HBA/* before rmdir release of struct se_hba via target_core_configfs.c: target_core_call_delhbafromtarget() -> core_delete_hba() rmdir /sys/kernel/config/target/core/$HBA to release struct se_hba in core_delete_hba(). This patch also removes the legacy se_clear_dev_ports() function, which is left-over pre-configfs shutdown logic for when se_free_virtual_device() was responsible for walking struct se_device->dev_sep_list and calling core_dev_del_lun() for each individual active struct se_port->se_lun. The reason this can be removed is because all struct se_device->dev_sep_list -> struct se_port communication is done via configfs symlinks, which means that an target fabric module's endpoints containg active struct se_port(s) will have to be released via target_core_fabric_configfs.c: target_fabric_port_unlink() via: unlink /sys/kernel/config/target/$FABRIC_MOD/$ENDPOINT/tpgt_$TPGT/lun/lun_$LUN_ID/<symlink> before rmdir release of struct se_device in target_core_configfs.c: target_core_drop_subdev() -> se_free_virtual_device() can happen via: rmdir /sys/kernel/config/target/core/$HBA/* to release struct se_subsystem_dev in target_core_drop_subdev() Reported-by: NStefan Richter <stefanr@s5r6.in-berlin.de> Reported-by: NFubo Chen <fubo.chen@gmail.com> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Nicholas Bellinger 提交于
This patch converts the target_core_store_dev_enable() -> struct se_subsystem_api->create_virtdevice() call to return proper ERR_PTR values back up to configfs logic during backend dependent struct se_device ENABLE exception conditions. Along with the change to target_core_configfs.c, this includes converting IBLOCK, FILEIO, pSCSI, and RAMDISK_* backend subsystem plugins to obtain upper level PTR_ERR return codes (where available), and return via ERR_PTR during a *_create_virtdev() failure. Reported-by: NFubo Chen <fubo.chen@gmail.com> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Christoph Hellwig 提交于
Add the current directory is superflous in general, and no includes in drivers/scsi are needed either. Signed-off-by: NChristoph Hellwig <hch@lst.de> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Jesper Juhl 提交于
match_strdup() dynamically allocates memory and it is the responsabillity of the caller to free that memory. The following three cases: drivers/target/target_core_file.c:fd_set_configfs_dev_params() drivers/target/target_core_iblock.c:iblock_set_configfs_dev_params() drivers/target/target_core_configfs.c:target_core_dev_pr_store_attr_res_aptpl_metadata() should be kfree()'ing the allocated memory once it is no longer needed. It also makes sure to return -ENOMEM if the memory allocation in match_strdup() should fail. For target_core_configfs.c, this patch adds kfree()'s around Opt_initiator_fabric, Opt_initiator_node, Opt_initiator_sid, Opt_sa_res_key, Opt_target_fabric, and Opt_target_node for the Persistent Reservations Activate Persistence across Target Power Loss (APTPL=1) token parsing. Signed-off-by: NJesper Juhl <jj@chaosbits.net> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Roland Dreier 提交于
If allocation of pt->pscsi_cdb fails, we need to free the just-allocated pt or else it will be leaked. Signed-off-by: NRoland Dreier <rolandd@cisco.com> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 James Smart 提交于
Update driver version to 8.3.22 Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: NJames Smart <james.smart@emulex.com> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 James Smart 提交于
Update Copyright Dates Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: NJames Smart <james.smart@emulex.com> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 James Smart 提交于
FC Discovery fixes - In lpfc_sli4_bpl2sgl byte swapping the SGL in word2. - In lpfc_sli4_iocb2wqe byteswap the data for CMD_GEN_REQUEST64_CR type WQE. - In lpfc_sli4_seq_abort_acc do not set the oxid into the iocb's xritag field. - In lpfc_sli4_seq_abort_acc check the return value of lpfc_sli_issue_iocb. - Inprove messages in this area. Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: NJames Smart <james.smart@emulex.com> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 James Smart 提交于
Periodically poll adapter registers to detect pci adapter failure (reads return -1). On failure, take port offline, set error indicators and wake up worker threads. Threads will take adapter offline. Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: NJames Smart <james.smart@emulex.com> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 James Smart 提交于
T10-DIF corrections - Add selective reset jump table entry - Split T10-DIF BDEs that cross 4K boundary Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: NJames Smart <james.smart@emulex.com> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 James Smart 提交于
- Add new Queue Create Mailbox version support - Make lpfc_bsg_wake_mbox_wait routine check the mailboxes job reference before using it. Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: NJames Smart <james.smart@emulex.com> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 HighPoint Linux Team 提交于
This patch is to add support for HighPoint RR27xx SAS/SATA HBA which is based on Marvell 88SE9480 chipset. Signed-off-by: NHighPoint Linux Team <linux@highpoint-tech.com> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Vasiliy Kulikov 提交于
Signed-off-by: NVasiliy Kulikov <segoon@openwall.com> Acked-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 John Hughes 提交于
enclosure page 7 gives us the "pretty" names of the enclosure slots. Without a page 7, we can still use the enclosure code as long as we make up numeric names for the slots. Unfortunately, the current code fails to add any devices because the check for page 10 is in the wrong place if we have no page 7. Fix it so that devices show up even if the enclosure has no page 7. Cc: stable@kernel.org Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
- 23 3月, 2011 16 次提交
-
-
由 Jim Keniston 提交于
Instead of always creating a huge (268K) deflate_workspace with the maximum compression parameters (windowBits=15, memLevel=8), allow the caller to obtain a smaller workspace by specifying smaller parameter values. For example, when capturing oops and panic reports to a medium with limited capacity, such as NVRAM, compression may be the only way to capture the whole report. In this case, a small workspace (24K works fine) is a win, whether you allocate the workspace when you need it (i.e., during an oops or panic) or at boot time. I've verified that this patch works with all accepted values of windowBits (positive and negative), memLevel, and compression level. Signed-off-by: NJim Keniston <jkenisto@us.ibm.com> Cc: Herbert Xu <herbert@gondor.apana.org.au> Cc: David Miller <davem@davemloft.net> Cc: Chris Mason <chris.mason@oracle.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Alexander Gordeev 提交于
Remove code enabled only when CONFIG_PREEMPT_RT is turned on because it is not used in the vanilla kernel. Signed-off-by: NAlexander Gordeev <lasaine@lvk.cs.msu.su> Cc: john stultz <johnstul@us.ibm.com> Cc: Rodolfo Giometti <giometti@linux.it> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 David Rientjes 提交于
IORESOURCE_DMA cannot be assigned without utilizing the interface provided by CONFIG_ISA_DMA_API, specifically request_dma() and free_dma(). Thus, there's a strict dependency on the config option and limits IORESOURCE_DMA only to architectures that support ISA-style DMA. ia64 is not one of those architectures, so pnp_check_dma() no longer needs to be special-cased for that architecture. pnp_assign_resources() will now return -EINVAL if IORESOURCE_DMA is attempted on such a kernel. Signed-off-by: NDavid Rientjes <rientjes@google.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Bjorn Helgaas <bjorn.helgaas@hp.com> Cc: Russell King <linux@arm.linux.org.uk> Cc: "Luck, Tony" <tony.luck@intel.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Andrew Chew 提交于
This is a platform driver that supports the built-in real-time clock on Tegra SOCs. Signed-off-by: NAndrew Chew <achew@nvidia.com> Acked-by: NAlessandro Zummo <a.zummo@towertech.it> Acked-by: NWan ZongShun <mcuos.com@gmail.com> Acked-by: NJon Mayo <jmayo@nvidia.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Vasiliy Kulikov 提交于
Don't allow everybogy to write to NVRAM. Signed-off-by: NVasiliy Kulikov <segoon@openwall.com> Cc: Andy Sharp <andy.sharp@onstor.com> Cc: Alessandro Zummo <a.zummo@towertech.it> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Ryan Mallon 提交于
Add alarm/wakeup support to rtc isl1208 driver Signed-off-by: NRyan Mallon <ryan@bluewatersys.com> Cc: Alessandro Zummo <a.zummo@towertech.it> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Mark Brown 提交于
There is a general move to replace bus-specific PM ops with dev_pm_ops in order to facilitate core improvements. Do this conversion for DS1374. Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com> Cc: Alessandro Zummo <a.zummo@towertech.it> Cc: john stultz <johnstul@us.ibm.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Chris Ball 提交于
Use resource_size(). Signed-off-by: NChris Ball <cjb@laptop.org> Cc: Madhusudhan Chikkature <madhu.cr@ti.com> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Chris Ball 提交于
Signed-off-by: NChris Ball <cjb@laptop.org> Cc: Jarkko Lavinen <jarkko.lavinen@nokia.com> Cc: Tony Lindgren <tony@atomide.com> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Mike Frysinger 提交于
Analog Devices' SigmaStudio can produce firmware blobs for devices with these DSPs embedded (like some audio codecs). Allow these device drivers to easily parse and load them. Signed-off-by: NMike Frysinger <vapier@gentoo.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Alexey Dobriyan 提交于
1. simple_strto*() do not contain overflow checks and crufty, libc way to indicate failure. 2. strict_strto*() also do not have overflow checks but the name and comments pretend they do. 3. Both families have only "long long" and "long" variants, but users want strtou8() 4. Both "simple" and "strict" prefixes are wrong: Simple doesn't exactly say what's so simple, strict should not exist because conversion should be strict by default. The solution is to use "k" prefix and add convertors for more types. Enter kstrtoull() kstrtoll() kstrtoul() kstrtol() kstrtouint() kstrtoint() kstrtou64() kstrtos64() kstrtou32() kstrtos32() kstrtou16() kstrtos16() kstrtou8() kstrtos8() Include runtime testsuite (somewhat incomplete) as well. strict_strto*() become deprecated, stubbed to kstrto*() and eventually will be removed altogether. Use kstrto*() in code today! Note: on some archs _kstrtoul() and _kstrtol() are left in tree, even if they'll be unused at runtime. This is temporarily solution, because I don't want to hardcode list of archs where these functions aren't needed. Current solution with sizeof() and __alignof__ at least always works. Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Kirill A. Shutemov 提交于
Signed-off-by: NKirill A. Shutemov <kirill@shutemov.name> Cc: Maciej Sosnowski <maciej.sosnowski@intel.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Axel Lin 提交于
The device table is required to load modules based on modaliases. Signed-off-by: NAxel Lin <axel.lin@gmail.com> Cc: Masayuki Ohtak <masa-korg@dsn.okisemi.com> Cc: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Vasiliy Kulikov 提交于
Don't allow everybody to change device settings. Signed-off-by: NVasiliy Kulikov <segoon@openwall.com> Acked-by: NHartley Sweeten <hartleys@visionengravers.com> Cc: Matthieu Crapet <mcrapet@gmail.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Axel Lin 提交于
request_mem_region() will call kzalloc to allocate memory for struct resource. release_resource() unregisters the resource but does not free the allocated memory, thus use release_mem_region() instead to fix the memory leak. Signed-off-by: NAxel Lin <axel.lin@gmail.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Axel Lin 提交于
i2c_master_recv() returns negative errno, or else the number of bytes read. Thus i2c_master_recv(client, i2c_data, 2) returns 2 instead of 1 in success case. [akpm@linux-foundation.org: make `ret' signed] Signed-off-by: NAxel Lin <axel.lin@gmail.com> Cc: Kalhan Trisal <kalhan.trisal@intel.com> Cc: Alan Cox <alan@linux.intel.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-