From: Philipp Marek <philipp@marek.priv.at>
To: "Jesper Juhl" <jesper.juhl@gmail.com>
Cc: "Johannes Weiner" <hannes@saeurebad.de>,
linux-kernel@vger.kernel.org, linux-trivial@kernel.org
Subject: Re: [patch v2] kmalloc returns (void*), don't do type conversions
Date: Thu, 22 May 2008 11:09:01 +0200 [thread overview]
Message-ID: <200805221109.03046@marek.priv.at> (raw)
In-Reply-To: <9a8748490805211524r10bac2c8ke6e3766c0b5152f1@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1742 bytes --]
On Thursday 22 May 2008 Jesper Juhl wrote:
> 2008/5/21 Johannes Weiner <hannes@saeurebad.de>:
> > Hi Phillip,
> >
> > Philipp Marek <philipp@marek.priv.at> writes:
> >> I tried a "make allyesconfig", but that gave some compile errors
> >> that don't seem related to my changes:
> >> drivers/block/cciss_scsi.c:75: error: 'MAX_CTLR' undeclared here
> >> (not in a function) drivers/block/cciss_scsi.c:76: error: field name not
> >> in record or union initializer
> >
> > You probably should write another email regarding this.
>
> I agree, keep things seperate. One mail with patch to fix casts,
> another to report build breakage.
Sorry, I didn't make myself understood.
A "make allyesconfig ; make" goes through (for amd64); just testing every file
for itself ("make drivers/block/cciss_scsi.o") gives errors - partly because
they're for the wrong architecture, or some other mismatches.
Please note that the first version had a bug (missing "{") which is corrected
here.
> > Added the trivial tree maintainer to CC. Jesper?
> Thank you, I'll keep an eye on this patch.
I didn't think that these changes were "trivial" - I'd have taken this
category for comment updates and suchlike.
But I'm ok with that :-)
> Philipp: Johannes makes some good points, please address his comments
> and re-submit the patch with trivial@kernel.org on Cc: if it draws no
> negative comments it looks good to me to add to the trivial tree.
Here you are.
I've got 57 other patches that deal with (void*)-returning functions getting
casted; diffstat says
151 files changed, 301 insertions(+), 368 deletions(-)
Should I just send them (as a whole) to trivial@ like this patch, or should I
cut them for different maintainers?
Regards,
Phil
[-- Attachment #2: kmalloc-type-changes.patch --]
[-- Type: text/x-diff, Size: 16319 bytes --]
---
Remove unneeded explicit casting from kmalloc() return values.
Signed-off-by: Ph. Marek <philipp@marek.priv.at>
--- linux-2.6.git/drivers/i2c/i2c-dev.c
+++ linux-2.6.git/drivers/i2c/i2c-dev.c
@@ -218,8 +218,7 @@ static noinline int i2cdev_ioctl_rdrw(st
if (rdwr_arg.nmsgs > I2C_RDRW_IOCTL_MAX_MSGS)
return -EINVAL;
- rdwr_pa = (struct i2c_msg *)
- kmalloc(rdwr_arg.nmsgs * sizeof(struct i2c_msg),
+ rdwr_pa = kmalloc(rdwr_arg.nmsgs * sizeof(struct i2c_msg),
GFP_KERNEL);
if (!rdwr_pa)
return -ENOMEM;
--- linux-2.6.git/drivers/net/s2io.c
+++ linux-2.6.git/drivers/net/s2io.c
@@ -899,7 +899,7 @@ static int init_shared_mem(struct s2io_n
while (k != rxd_count[nic->rxd_mode]) {
ba = &mac_control->rings[i].ba[j][k];
- ba->ba_0_org = (void *) kmalloc
+ ba->ba_0_org = kmalloc
(BUF0_LEN + ALIGN_SIZE, GFP_KERNEL);
if (!ba->ba_0_org)
return -ENOMEM;
@@ -910,7 +910,7 @@ static int init_shared_mem(struct s2io_n
tmp &= ~((unsigned long) ALIGN_SIZE);
ba->ba_0 = (void *) tmp;
- ba->ba_1_org = (void *) kmalloc
+ ba->ba_1_org = kmalloc
(BUF1_LEN + ALIGN_SIZE, GFP_KERNEL);
if (!ba->ba_1_org)
return -ENOMEM;
--- linux-2.6.git/drivers/net/wireless/hostap/hostap_ioctl.c
+++ linux-2.6.git/drivers/net/wireless/hostap/hostap_ioctl.c
@@ -3057,8 +3057,7 @@ static int prism2_ioctl_priv_download(lo
p->length > 1024 || !p->pointer)
return -EINVAL;
- param = (struct prism2_download_param *)
- kmalloc(p->length, GFP_KERNEL);
+ param = kmalloc(p->length, GFP_KERNEL);
if (param == NULL)
return -ENOMEM;
--- linux-2.6.git/drivers/net/wireless/hostap/hostap_80211_rx.c
+++ linux-2.6.git/drivers/net/wireless/hostap/hostap_80211_rx.c
@@ -335,8 +335,7 @@ static struct hostap_bss_info *__hostap_
list_del(&bss->list);
local->num_bss_info--;
} else {
- bss = (struct hostap_bss_info *)
- kmalloc(sizeof(*bss), GFP_ATOMIC);
+ bss = kmalloc(sizeof(*bss), GFP_ATOMIC);
if (bss == NULL)
return NULL;
}
--- linux-2.6.git/drivers/net/wireless/zd1211rw/zd_chip.c
+++ linux-2.6.git/drivers/net/wireless/zd1211rw/zd_chip.c
@@ -117,7 +117,7 @@ int zd_ioread32v_locked(struct zd_chip *
/* Allocate a single memory block for values and addresses. */
count16 = 2*count;
- a16 = (zd_addr_t *) kmalloc(count16 * (sizeof(zd_addr_t) + sizeof(u16)),
+ a16 = kmalloc(count16 * (sizeof(zd_addr_t) + sizeof(u16)),
GFP_KERNEL);
if (!a16) {
dev_dbg_f(zd_chip_dev(chip),
--- linux-2.6.git/drivers/net/wireless/ipw2100.c
+++ linux-2.6.git/drivers/net/wireless/ipw2100.c
@@ -3373,8 +3373,7 @@ static int ipw2100_msg_allocate(struct i
void *v;
dma_addr_t p;
- priv->msg_buffers =
- (struct ipw2100_tx_packet *)kmalloc(IPW_COMMAND_POOL_SIZE *
+ priv->msg_buffers = kmalloc(IPW_COMMAND_POOL_SIZE *
sizeof(struct
ipw2100_tx_packet),
GFP_KERNEL);
@@ -4406,8 +4405,7 @@ static int ipw2100_tx_allocate(struct ip
return err;
}
- priv->tx_buffers =
- (struct ipw2100_tx_packet *)kmalloc(TX_PENDED_QUEUE_LENGTH *
+ priv->tx_buffers = kmalloc(TX_PENDED_QUEUE_LENGTH *
sizeof(struct
ipw2100_tx_packet),
GFP_ATOMIC);
@@ -4559,8 +4557,8 @@ static int ipw2100_rx_allocate(struct ip
/*
* allocate packets
*/
- priv->rx_buffers = (struct ipw2100_rx_packet *)
- kmalloc(RX_QUEUE_LENGTH * sizeof(struct ipw2100_rx_packet),
+ priv->rx_buffers = kmalloc(RX_QUEUE_LENGTH *
+ sizeof(struct ipw2100_rx_packet),
GFP_KERNEL);
if (!priv->rx_buffers) {
IPW_DEBUG_INFO("can't allocate rx packet buffer table\n");
--- linux-2.6.git/drivers/net/tulip/eeprom.c
+++ linux-2.6.git/drivers/net/tulip/eeprom.c
@@ -121,8 +121,8 @@ static void __devinit tulip_build_fake_m
0x00, 0x06 /* ttm bit map */
};
- tp->mtable = (struct mediatable *)
- kmalloc(sizeof(struct mediatable) + sizeof(struct medialeaf), GFP_KERNEL);
+ tp->mtable = kmalloc(sizeof(struct mediatable) +
+ sizeof(struct medialeaf), GFP_KERNEL);
if (tp->mtable == NULL)
return; /* Horrible, impossible failure. */
@@ -224,8 +223,8 @@ subsequent_board:
return;
}
- mtable = (struct mediatable *)
- kmalloc(sizeof(struct mediatable) + count*sizeof(struct medialeaf),
+ mtable = kmalloc(sizeof(struct mediatable) +
+ count*sizeof(struct medialeaf),
GFP_KERNEL);
if (mtable == NULL)
return; /* Horrible, impossible failure. */
--- linux-2.6.git/drivers/net/gianfar.c
+++ linux-2.6.git/drivers/net/gianfar.c
@@ -737,8 +737,7 @@ int startup_gfar(struct net_device *dev)
gfar_write(®s->rbase0, addr);
/* Setup the skbuff rings */
- priv->tx_skbuff =
- (struct sk_buff **) kmalloc(sizeof (struct sk_buff *) *
+ priv->tx_skbuff = kmalloc(sizeof(struct sk_buff *) *
priv->tx_ring_size, GFP_KERNEL);
if (NULL == priv->tx_skbuff) {
@@ -752,8 +751,7 @@ int startup_gfar(struct net_device *dev)
for (i = 0; i < priv->tx_ring_size; i++)
priv->tx_skbuff[i] = NULL;
- priv->rx_skbuff =
- (struct sk_buff **) kmalloc(sizeof (struct sk_buff *) *
+ priv->rx_skbuff = kmalloc(sizeof(struct sk_buff *) *
priv->rx_ring_size, GFP_KERNEL);
if (NULL == priv->rx_skbuff) {
--- linux-2.6.git/drivers/s390/net/qeth_core_main.c
+++ linux-2.6.git/drivers/s390/net/qeth_core_main.c
@@ -634,8 +634,8 @@ static int qeth_setup_channel(struct qet
QETH_DBF_TEXT(SETUP, 2, "setupch");
for (cnt = 0; cnt < QETH_CMD_BUFFER_NO; cnt++) {
- channel->iob[cnt].data = (char *)
- kmalloc(QETH_BUFSIZE, GFP_DMA|GFP_KERNEL);
+ channel->iob[cnt].data =
+ kmalloc(QETH_BUFSIZE, GFP_DMA|GFP_KERNEL);
if (channel->iob[cnt].data == NULL)
break;
channel->iob[cnt].state = BUF_STATE_FREE;
--- linux-2.6.git/drivers/s390/net/ctcm_mpc.c
+++ linux-2.6.git/drivers/s390/net/ctcm_mpc.c
@@ -696,8 +696,7 @@ static void ctcmpc_send_sweep_resp(struc
goto done;
}
- header = (struct th_sweep *)
- kmalloc(sizeof(struct th_sweep), gfp_type());
+ header = kmalloc(sizeof(struct th_sweep), gfp_type());
if (!header) {
dev_kfree_skb_any(sweep_skb);
@@ -1308,8 +1307,7 @@ static void ctcmpc_unpack_skb(struct cha
skb_pull(pskb, new_len); /* point to next PDU */
}
} else {
- mpcginfo = (struct mpcg_info *)
- kmalloc(sizeof(struct mpcg_info), gfp_type());
+ mpcginfo = kmalloc(sizeof(struct mpcg_info), gfp_type());
if (mpcginfo == NULL)
goto done;
--- linux-2.6.git/drivers/isdn/capi/capidrv.c
+++ linux-2.6.git/drivers/isdn/capi/capidrv.c
@@ -469,8 +469,7 @@ static int capidrv_add_ack(struct capidr
{
struct ncci_datahandle_queue *n, **pp;
- n = (struct ncci_datahandle_queue *)
- kmalloc(sizeof(struct ncci_datahandle_queue), GFP_ATOMIC);
+ n = kmalloc(sizeof(struct ncci_datahandle_queue), GFP_ATOMIC);
if (!n) {
printk(KERN_ERR "capidrv: kmalloc ncci_datahandle failed\n");
return -1;
--- linux-2.6.git/drivers/isdn/hisax/hfc_sx.c
+++ linux-2.6.git/drivers/isdn/hisax/hfc_sx.c
@@ -1480,8 +1480,9 @@ setup_hfcsx(struct IsdnCard *card)
release_region(cs->hw.hfcsx.base, 2);
return(0);
}
- if (!(cs->hw.hfcsx.extra = (void *)
- kmalloc(sizeof(struct hfcsx_extra), GFP_ATOMIC))) {
+ cs->hw.hfcsx.extra = kmalloc(sizeof(struct hfcsx_extra),
+ GFP_ATOMIC);
+ if (!cs->hw.hfcsx.extra) {
release_region(cs->hw.hfcsx.base, 2);
printk(KERN_WARNING "HFC-SX: unable to allocate memory\n");
return(0);
--- linux-2.6.git/drivers/scsi/osst.c
+++ linux-2.6.git/drivers/scsi/osst.c
@@ -5758,8 +5758,7 @@ static int osst_probe(struct device *dev
/* if this is the first attach, build the infrastructure */
write_lock(&os_scsi_tapes_lock);
if (os_scsi_tapes == NULL) {
- os_scsi_tapes =
- (struct osst_tape **)kmalloc(osst_max_dev * sizeof(struct osst_tape *),
- GFP_ATOMIC);
+ os_scsi_tapes = kmalloc(osst_max_dev *
+ sizeof(struct osst_tape *), GFP_ATOMIC);
if (os_scsi_tapes == NULL) {
write_unlock(&os_scsi_tapes_lock);
--- linux-2.6.git/drivers/block/cciss_scsi.c
+++ linux-2.6.git/drivers/block/cciss_scsi.c
@@ -535,8 +535,7 @@ cciss_scsi_setup(int cntl_num)
struct cciss_scsi_adapter_data_t * shba;
ccissscsi[cntl_num].ndevices = 0;
- shba = (struct cciss_scsi_adapter_data_t *)
- kmalloc(sizeof(*shba), GFP_KERNEL);
+ shba = kmalloc(sizeof(*shba), GFP_KERNEL);
if (shba == NULL)
return;
shba->scsi_host = NULL;
--- linux-2.6.git/drivers/block/floppy.c
+++ linux-2.6.git/drivers/block/floppy.c
@@ -3194,8 +3194,7 @@ static inline int raw_cmd_copyin(int cmd
*rcmd = NULL;
while (1) {
- ptr = (struct floppy_raw_cmd *)
- kmalloc(sizeof(struct floppy_raw_cmd), GFP_USER);
+ ptr = kmalloc(sizeof(struct floppy_raw_cmd), GFP_USER);
if (!ptr)
return -ENOMEM;
*rcmd = ptr;
--- linux-2.6.git/drivers/block/cciss.c
+++ linux-2.6.git/drivers/block/cciss.c
@@ -1073,8 +1073,7 @@ static int cciss_ioctl(struct inode *ino
return -EINVAL;
if (!capable(CAP_SYS_RAWIO))
return -EPERM;
- ioc = (BIG_IOCTL_Command_struct *)
- kmalloc(sizeof(*ioc), GFP_KERNEL);
+ ioc = kmalloc(sizeof(*ioc), GFP_KERNEL);
if (!ioc) {
status = -ENOMEM;
goto cleanup1;
--- linux-2.6.git/drivers/media/video/vino.c
+++ linux-2.6.git/drivers/media/video/vino.c
@@ -848,8 +848,8 @@ static int vino_allocate_buffer(struct v
size, count);
/* allocate memory for table with virtual (page) addresses */
- fb->desc_table.virtual = (unsigned long *)
- kmalloc(count * sizeof(unsigned long), GFP_KERNEL);
+ fb->desc_table.virtual = kmalloc(count *
+ sizeof(unsigned long), GFP_KERNEL);
if (!fb->desc_table.virtual)
return -ENOMEM;
@@ -935,8 +934,8 @@ static int vino_prepare_user_buffer(stru
size, count);
/* allocate memory for table with virtual (page) addresses */
- fb->desc_table.virtual = (unsigned long *)
- kmalloc(count * sizeof(unsigned long), GFP_KERNEL);
+ fb->desc_table.virtual = kmalloc(count *
+ sizeof(unsigned long), GFP_KERNEL);
if (!fb->desc_table.virtual)
return -ENOMEM;
--- linux-2.6.git/drivers/message/i2o/i2o_config.c
+++ linux-2.6.git/drivers/message/i2o/i2o_config.c
@@ -1053,8 +1053,7 @@ static int i2o_cfg_ioctl(struct inode *i
static int cfg_open(struct inode *inode, struct file *file)
{
- struct i2o_cfg_info *tmp =
- (struct i2o_cfg_info *)kmalloc(sizeof(struct i2o_cfg_info),
+ struct i2o_cfg_info *tmp = kmalloc(sizeof(struct i2o_cfg_info),
GFP_KERNEL);
unsigned long flags;
--- linux-2.6.git/drivers/usb/storage/isd200.c
+++ linux-2.6.git/drivers/usb/storage/isd200.c
@@ -1496,8 +1496,7 @@ static int isd200_init_info(struct us_da
else {
info->id = (struct hd_driveid *)
kzalloc(sizeof(struct hd_driveid), GFP_KERNEL);
- info->RegsBuf = (unsigned char *)
- kmalloc(sizeof(info->ATARegs), GFP_KERNEL);
+ info->RegsBuf = kmalloc(sizeof(info->ATARegs), GFP_KERNEL);
info->srb.sense_buffer =
kmalloc(SCSI_SENSE_BUFFERSIZE, GFP_KERNEL);
if (!info->id || !info->RegsBuf || !info->srb.sense_buffer) {
--- linux-2.6.git/drivers/mtd/maps/tqm8xxl.c
+++ linux-2.6.git/drivers/mtd/maps/tqm8xxl.c
@@ -141,7 +141,7 @@ int __init init_tqm_mtd(void)
goto error_mem;
}
- map_banks[idx]->name = (char *)kmalloc(16, GFP_KERNEL);
+ map_banks[idx]->name = kmalloc(16, GFP_KERNEL);
if (!map_banks[idx]->name) {
ret = -ENOMEM;
--- linux-2.6.git/net/sctp/protocol.c
+++ linux-2.6.git/net/sctp/protocol.c
@@ -1188,8 +1188,8 @@ SCTP_STATIC __init int sctp_init(void)
/* Allocate and initialize the endpoint hash table. */
sctp_ep_hashsize = 64;
- sctp_ep_hashtable = (struct sctp_hashbucket *)
- kmalloc(64 * sizeof(struct sctp_hashbucket), GFP_KERNEL);
+ sctp_ep_hashtable = kmalloc(64 *
+ sizeof(struct sctp_hashbucket), GFP_KERNEL);
if (!sctp_ep_hashtable) {
printk(KERN_ERR "SCTP: Failed endpoint_hash alloc.\n");
status = -ENOMEM;
--- linux-2.6.git/net/ipv6/mcast.c
+++ linux-2.6.git/net/ipv6/mcast.c
@@ -2044,8 +2044,7 @@ static int sf_setstate(struct ifmcaddr6
&psf->sf_addr))
break;
if (!dpsf) {
- dpsf = (struct ip6_sf_list *)
- kmalloc(sizeof(*dpsf), GFP_ATOMIC);
+ dpsf = kmalloc(sizeof(*dpsf), GFP_ATOMIC);
if (!dpsf)
continue;
*dpsf = *psf;
--- linux-2.6.git/net/ipv4/igmp.c
+++ linux-2.6.git/net/ipv4/igmp.c
@@ -1638,8 +1638,7 @@ static int sf_setstate(struct ip_mc_list
if (dpsf->sf_inaddr == psf->sf_inaddr)
break;
if (!dpsf) {
- dpsf = (struct ip_sf_list *)
- kmalloc(sizeof(*dpsf), GFP_ATOMIC);
+ dpsf = kmalloc(sizeof(*dpsf), GFP_ATOMIC);
if (!dpsf)
continue;
*dpsf = *psf;
--- linux-2.6.git/fs/ufs/util.c
+++ linux-2.6.git/fs/ufs/util.c
@@ -26,8 +26,7 @@ struct ufs_buffer_head * _ubh_bread_ (st
count = size >> uspi->s_fshift;
if (count > UFS_MAXFRAG)
return NULL;
- ubh = (struct ufs_buffer_head *)
- kmalloc (sizeof (struct ufs_buffer_head), GFP_KERNEL);
+ ubh = kmalloc(sizeof(struct ufs_buffer_head), GFP_KERNEL);
if (!ubh)
return NULL;
ubh->fragment = fragment;
--- linux-2.6.git/fs/befs/btree.c
+++ linux-2.6.git/fs/befs/btree.c
@@ -436,8 +436,8 @@ befs_btree_read(struct super_block *sb,
goto error;
}
- if ((this_node = (befs_btree_node *)
- kmalloc(sizeof (befs_btree_node), GFP_NOFS)) == NULL) {
+ this_node = kmalloc(sizeof(befs_btree_node), GFP_NOFS);
+ if (!this_node) {
befs_error(sb, "befs_btree_read() failed to allocate %u "
"bytes of memory", sizeof (befs_btree_node));
goto error;
--- linux-2.6.git/security/selinux/ss/conditional.c
+++ linux-2.6.git/security/selinux/ss/conditional.c
@@ -171,8 +171,8 @@ void cond_policydb_destroy(struct policy
int cond_init_bool_indexes(struct policydb *p)
{
kfree(p->bool_val_to_struct);
- p->bool_val_to_struct = (struct cond_bool_datum **)
- kmalloc(p->p_bools.nprim * sizeof(struct cond_bool_datum *), GFP_KERNEL);
+ p->bool_val_to_struct = kmalloc(p->p_bools.nprim *
+ sizeof(struct cond_bool_datum *), GFP_KERNEL);
if (!p->bool_val_to_struct)
return -1;
return 0;
--- linux-2.6.git/arch/powerpc/kernel/nvram_64.c
+++ linux-2.6.git/arch/powerpc/kernel/nvram_64.c
@@ -527,8 +527,7 @@ static int nvram_scan_partitions(void)
"detected: 0-length partition\n");
goto out;
}
- tmp_part = (struct nvram_partition *)
- kmalloc(sizeof(struct nvram_partition), GFP_KERNEL);
+ tmp_part = kmalloc(sizeof(struct nvram_partition), GFP_KERNEL);
err = -ENOMEM;
if (!tmp_part) {
printk(KERN_ERR "nvram_scan_partitions: kmalloc failed\n");
--- linux-2.6.git/arch/cris/arch-v32/mm/intmem.c
+++ linux-2.6.git/arch/cris/arch-v32/mm/intmem.c
@@ -33,8 +33,8 @@ static void crisv32_intmem_init(void)
{
static int initiated = 0;
if (!initiated) {
- struct intmem_allocation* alloc =
- (struct intmem_allocation*)kmalloc(sizeof *alloc, GFP_KERNEL);
+ struct intmem_allocation *alloc =
+ kmalloc(sizeof(*alloc), GFP_KERNEL);
INIT_LIST_HEAD(&intmem_allocations);
intmem_virtual = ioremap(MEM_INTMEM_START + RESERVED_SIZE,
MEM_INTMEM_SIZE - RESERVED_SIZE);
@@ -62,9 +61,8 @@ void* crisv32_intmem_alloc(unsigned size
if (allocation->status == STATUS_FREE &&
allocation->size >= size + alignment) {
if (allocation->size > size + alignment) {
- struct intmem_allocation* alloc =
- (struct intmem_allocation*)
- kmalloc(sizeof *alloc, GFP_ATOMIC);
+ struct intmem_allocation *alloc =
+ kmalloc(sizeof(*alloc), GFP_ATOMIC);
alloc->status = STATUS_FREE;
alloc->size = allocation->size - size -
alignment;
@@ -74,8 +71,6 @@ void* crisv32_intmem_alloc(unsigned size
if (alignment) {
struct intmem_allocation *tmp;
- tmp = (struct intmem_allocation *)
- kmalloc(sizeof *tmp,
- GFP_ATOMIC);
+ tmp = kmalloc(sizeof(*tmp), GFP_ATOMIC);
tmp->offset = allocation->offset;
tmp->size = alignment;
--- linux-2.6.git/arch/ia64/kernel/mca_drv.c
+++ linux-2.6.git/arch/ia64/kernel/mca_drv.c
@@ -348,8 +348,8 @@ init_record_index_pools(void)
/* - 3 - */
slidx_pool.max_idx = (rec_max_size/sect_min_size) * 2 + 1;
- slidx_pool.buffer = (slidx_list_t *)
- kmalloc(slidx_pool.max_idx * sizeof(slidx_list_t), GFP_KERNEL);
+ slidx_pool.buffer = kmalloc(slidx_pool.max_idx *
+ sizeof(slidx_list_t), GFP_KERNEL);
return slidx_pool.buffer ? 0 : -ENOMEM;
}
prev parent reply other threads:[~2008-05-22 9:12 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-21 19:13 [patch] kmalloc returns (void*), don't do type conversions Philipp Marek
2008-05-21 20:17 ` Johannes Weiner
2008-05-21 22:15 ` Johannes Weiner
2008-05-21 22:24 ` Jesper Juhl
2008-05-22 9:09 ` Philipp Marek [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200805221109.03046@marek.priv.at \
--to=philipp@marek.priv.at \
--cc=hannes@saeurebad.de \
--cc=jesper.juhl@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trivial@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.